mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 18:55:40 +03:00
core: move ShowStatus type into the core
Let's make the scope of the show-status stuff a bit smaller, and make it private to the core, rather than shared API in shared/.
This commit is contained in:
parent
ca37242e52
commit
4d7213b274
@ -1018,7 +1018,9 @@ libsystemd_core_la_SOURCES = \
|
||||
src/core/audit-fd.c \
|
||||
src/core/audit-fd.h \
|
||||
src/core/async.c \
|
||||
src/core/async.h
|
||||
src/core/async.h \
|
||||
src/core/show-status.c \
|
||||
src/core/show-status.h
|
||||
|
||||
if HAVE_KMOD
|
||||
libsystemd_core_la_SOURCES += \
|
||||
|
@ -468,16 +468,17 @@ DEFINE_SETTER(config_parse_target, log_set_target_from_string, "target")
|
||||
DEFINE_SETTER(config_parse_color, log_show_color_from_string, "color" )
|
||||
DEFINE_SETTER(config_parse_location, log_show_location_from_string, "location")
|
||||
|
||||
static int config_parse_cpu_affinity2(const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
const char *section,
|
||||
unsigned section_line,
|
||||
const char *lvalue,
|
||||
int ltype,
|
||||
const char *rvalue,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
static int config_parse_cpu_affinity2(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
const char *section,
|
||||
unsigned section_line,
|
||||
const char *lvalue,
|
||||
int ltype,
|
||||
const char *rvalue,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
|
||||
char *w;
|
||||
size_t l;
|
||||
@ -524,6 +525,36 @@ static int config_parse_cpu_affinity2(const char *unit,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int config_parse_show_status(
|
||||
const char* unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
const char *section,
|
||||
unsigned section_line,
|
||||
const char *lvalue,
|
||||
int ltype,
|
||||
const char *rvalue,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
|
||||
int k;
|
||||
ShowStatus *b = data;
|
||||
|
||||
assert(filename);
|
||||
assert(lvalue);
|
||||
assert(rvalue);
|
||||
assert(data);
|
||||
|
||||
k = parse_show_status(rvalue, b);
|
||||
if (k < 0) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, -k,
|
||||
"Failed to parse show status setting, ignoring: %s", rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void strv_free_free(char ***l) {
|
||||
char ***i;
|
||||
|
||||
|
@ -58,6 +58,7 @@ typedef enum ManagerExitCode {
|
||||
#include "execute.h"
|
||||
#include "unit-name.h"
|
||||
#include "exit-status.h"
|
||||
#include "show-status.h"
|
||||
|
||||
struct Manager {
|
||||
/* Note that the set of units we know of is allowed to be
|
||||
|
@ -565,35 +565,6 @@ int config_parse_bool(const char* unit,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_show_status(const char* unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
const char *section,
|
||||
unsigned section_line,
|
||||
const char *lvalue,
|
||||
int ltype,
|
||||
const char *rvalue,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
|
||||
int k;
|
||||
ShowStatus *b = data;
|
||||
|
||||
assert(filename);
|
||||
assert(lvalue);
|
||||
assert(rvalue);
|
||||
assert(data);
|
||||
|
||||
k = parse_show_status(rvalue, b);
|
||||
if (k < 0) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, -k,
|
||||
"Failed to parse show status setting, ignoring: %s", rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_string(const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
|
@ -101,7 +101,6 @@ int config_parse_iec_size(const char *unit, const char *filename, unsigned line,
|
||||
int config_parse_si_size(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_iec_off(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_bool(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_show_status(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_string(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_path(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_strv(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
|
@ -205,20 +205,3 @@ bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status) {
|
||||
code == CLD_EXITED &&
|
||||
(status == EXIT_NOTINSTALLED || status == EXIT_NOTCONFIGURED);
|
||||
}
|
||||
|
||||
int parse_show_status(const char *v, ShowStatus *ret) {
|
||||
int r;
|
||||
|
||||
assert(v);
|
||||
assert(ret);
|
||||
|
||||
if (streq(v, "auto")) {
|
||||
*ret = SHOW_STATUS_AUTO;
|
||||
return 0;
|
||||
}
|
||||
r = parse_boolean(v);
|
||||
if (r < 0)
|
||||
return r;
|
||||
*ret = r ? SHOW_STATUS_YES : SHOW_STATUS_NO;
|
||||
return 0;
|
||||
}
|
||||
|
@ -22,7 +22,9 @@
|
||||
***/
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "set.h"
|
||||
|
||||
typedef enum ExitStatus {
|
||||
/* EXIT_SUCCESS defined by libc */
|
||||
/* EXIT_FAILURE defined by libc */
|
||||
@ -91,15 +93,3 @@ const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) _con
|
||||
|
||||
bool is_clean_exit(int code, int status, ExitStatusSet *success_status);
|
||||
bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status);
|
||||
|
||||
/* Manager status */
|
||||
|
||||
typedef enum ShowStatus {
|
||||
_SHOW_STATUS_UNSET = -2,
|
||||
SHOW_STATUS_AUTO = -1,
|
||||
SHOW_STATUS_NO = 0,
|
||||
SHOW_STATUS_YES = 1,
|
||||
SHOW_STATUS_TEMPORARY = 2,
|
||||
} ShowStatus;
|
||||
|
||||
int parse_show_status(const char *v, ShowStatus *ret);
|
||||
|
Loading…
Reference in New Issue
Block a user