mirror of
https://github.com/troglobit/finit.git
synced 2026-10-04 23:04:12 +07:00
As a real life example, this can be useful for a mfgtest mode for the device, wherein the bootloader can be set to finit.cond=test_mode or finit.cond=user_mode and then specific services can start up in test mode which wouldn't normally start. Or even custom firmware update mode such as finit.cond=fw_update_mode which performs some specific firmware update steps and doesn't launch normal processes. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
59 lines
1.6 KiB
C
59 lines
1.6 KiB
C
#ifndef FINIT_COND_H_
|
|
#define FINIT_COND_H_
|
|
|
|
#include <paths.h>
|
|
|
|
#include "svc.h"
|
|
|
|
#define COND_BASE "finit/cond"
|
|
#define COND_PID "pid/"
|
|
#define COND_SYS "sys/"
|
|
#define COND_USR "usr/"
|
|
|
|
#define _PATH_COND _PATH_VARRUN COND_BASE "/"
|
|
#define _PATH_CONDPID _PATH_COND COND_PID
|
|
#define _PATH_CONDSYS _PATH_COND COND_SYS
|
|
#define _PATH_CONDUSR _PATH_COND COND_USR
|
|
#define _PATH_RECONF _PATH_COND "reconf"
|
|
|
|
typedef enum cond_state {
|
|
COND_OFF = 0,
|
|
COND_FLUX,
|
|
COND_ON
|
|
} cond_state_t;
|
|
|
|
char *mkcond (svc_t *svc, char *buf, size_t len);
|
|
const char *condstr (enum cond_state s);
|
|
const char *cond_path (const char *name);
|
|
unsigned int cond_get_gen (const char *path);
|
|
enum cond_state cond_get_path(const char *path);
|
|
enum cond_state cond_get (const char *name);
|
|
enum cond_state cond_get_agg (const char *names);
|
|
int cond_affects (const char *name, const char *names);
|
|
|
|
void cond_boot_parse (char *arg);
|
|
int cond_update (const char *name);
|
|
int cond_set_path (const char *path, enum cond_state new);
|
|
void cond_set (const char *name);
|
|
void cond_set_oneshot (const char *name);
|
|
void cond_clear (const char *name);
|
|
void cond_reload (void);
|
|
|
|
int cond_set_noupdate(const char *name);
|
|
int cond_set_oneshot_noupdate(const char *name);
|
|
int cond_clear_noupdate(const char *name);
|
|
|
|
void cond_reassert (const char *pat);
|
|
void cond_deassert (const char *pat);
|
|
|
|
void cond_init (void);
|
|
|
|
#endif /* FINIT_COND_H_ */
|
|
|
|
/**
|
|
* Local Variables:
|
|
* indent-tabs-mode: t
|
|
* c-file-style: "linux"
|
|
* End:
|
|
*/
|