mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-28 06:35:34 +07:00
target: introduce target_get_runlevel() for distilling SysV compatible runlevel information from a target
This commit is contained in:
parent
11857f8daf
commit
e293f0f07d
29
target.c
29
target.c
@ -89,6 +89,35 @@ static UnitActiveState target_active_state(Unit *u) {
|
|||||||
return state_translation_table[TARGET(u)->state];
|
return state_translation_table[TARGET(u)->state];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int target_get_runlevel(Target *t) {
|
||||||
|
|
||||||
|
static const struct {
|
||||||
|
const char *special;
|
||||||
|
const int runlevel;
|
||||||
|
} table[] = {
|
||||||
|
{ SPECIAL_RUNLEVEL5_TARGET, '5' },
|
||||||
|
{ SPECIAL_RUNLEVEL4_TARGET, '4' },
|
||||||
|
{ SPECIAL_RUNLEVEL3_TARGET, '3' },
|
||||||
|
{ SPECIAL_RUNLEVEL2_TARGET, '2' },
|
||||||
|
{ SPECIAL_RUNLEVEL1_TARGET, '1' },
|
||||||
|
{ SPECIAL_RUNLEVEL0_TARGET, '0' },
|
||||||
|
{ SPECIAL_RUNLEVEL6_TARGET, '6' },
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
|
assert(t);
|
||||||
|
|
||||||
|
/* Tries to determine if this is a SysV runlevel and returns
|
||||||
|
* it if that is so. */
|
||||||
|
|
||||||
|
for (i = 0; i < ELEMENTSOF(table); i++)
|
||||||
|
if (unit_has_name(UNIT(t), table[i].special))
|
||||||
|
return table[i].runlevel;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
const UnitVTable target_vtable = {
|
const UnitVTable target_vtable = {
|
||||||
.suffix = ".target",
|
.suffix = ".target",
|
||||||
|
|
||||||
|
5
target.h
5
target.h
@ -29,7 +29,8 @@ typedef struct Target Target;
|
|||||||
typedef enum TargetState {
|
typedef enum TargetState {
|
||||||
TARGET_DEAD,
|
TARGET_DEAD,
|
||||||
TARGET_ACTIVE,
|
TARGET_ACTIVE,
|
||||||
_TARGET_STATE_MAX
|
_TARGET_STATE_MAX,
|
||||||
|
_TARGET_STATE_INVALID = -1
|
||||||
} TargetState;
|
} TargetState;
|
||||||
|
|
||||||
struct Target {
|
struct Target {
|
||||||
@ -40,4 +41,6 @@ struct Target {
|
|||||||
|
|
||||||
extern const UnitVTable target_vtable;
|
extern const UnitVTable target_vtable;
|
||||||
|
|
||||||
|
int target_get_runlevel(Target *t);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user