Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/jail/jailp.h
Show All 39 Lines | |||||
#define DEP_FROM 0 | #define DEP_FROM 0 | ||||
#define DEP_TO 1 | #define DEP_TO 1 | ||||
#define DF_SEEN 0x01 /* Dependency has been followed */ | #define DF_SEEN 0x01 /* Dependency has been followed */ | ||||
#define DF_LIGHT 0x02 /* Implied dependency on jail existence only */ | #define DF_LIGHT 0x02 /* Implied dependency on jail existence only */ | ||||
#define DF_NOFAIL 0x04 /* Don't propagate failed jails */ | #define DF_NOFAIL 0x04 /* Don't propagate failed jails */ | ||||
#define PF_VAR 0x01 /* This is a variable, not a true parameter */ | #define PF_VAR 0x0001 /* This is a variable, not a true parameter */ | ||||
#define PF_APPEND 0x02 /* Append to existing parameter list */ | #define PF_APPEND 0x0002 /* Append to existing parameter list */ | ||||
#define PF_BAD 0x04 /* Unable to resolve parameter value */ | #define PF_BAD 0x0004 /* Unable to resolve parameter value */ | ||||
#define PF_INTERNAL 0x08 /* Internal parameter, not passed to kernel */ | #define PF_INTERNAL 0x0008 /* Internal parameter, not passed to kernel */ | ||||
#define PF_BOOL 0x10 /* Boolean parameter */ | #define PF_BOOL 0x0010 /* Boolean parameter */ | ||||
#define PF_INT 0x20 /* Integer parameter */ | #define PF_INT 0x0020 /* Integer parameter */ | ||||
#define PF_CONV 0x40 /* Parameter duplicated in converted form */ | #define PF_CONV 0x0040 /* Parameter duplicated in converted form */ | ||||
#define PF_REV 0x80 /* Run commands in reverse order on stopping */ | #define PF_REV 0x0080 /* Run commands in reverse order on stopping */ | ||||
#define PF_IMMUTABLE 0x100 /* Immutable parameter */ | #define PF_IMMUTABLE 0x0100 /* Immutable parameter */ | ||||
#define PF_NAMEVAL 0x0200 /* Parameter is in "name value" form */ | |||||
#define JF_START 0x0001 /* -c */ | #define JF_START 0x0001 /* -c */ | ||||
#define JF_SET 0x0002 /* -m */ | #define JF_SET 0x0002 /* -m */ | ||||
#define JF_STOP 0x0004 /* -r */ | #define JF_STOP 0x0004 /* -r */ | ||||
#define JF_DEPEND 0x0008 /* Operation required by dependency */ | #define JF_DEPEND 0x0008 /* Operation required by dependency */ | ||||
#define JF_WILD 0x0010 /* Not specified on the command line */ | #define JF_WILD 0x0010 /* Not specified on the command line */ | ||||
#define JF_FAILED 0x0020 /* Operation failed */ | #define JF_FAILED 0x0020 /* Operation failed */ | ||||
#define JF_PARAMS 0x0040 /* Parameters checked and imported */ | #define JF_PARAMS 0x0040 /* Parameters checked and imported */ | ||||
▲ Show 20 Lines • Show All 106 Lines • ▼ Show 20 Lines | |||||
struct cfjail { | struct cfjail { | ||||
TAILQ_ENTRY(cfjail) tq; | TAILQ_ENTRY(cfjail) tq; | ||||
char *name; | char *name; | ||||
char *comline; | char *comline; | ||||
struct cfparams params; | struct cfparams params; | ||||
struct cfdepends dep[2]; | struct cfdepends dep[2]; | ||||
struct cfjails *queue; | struct cfjails *queue; | ||||
struct cfjail *cfparent; | |||||
struct cfparam *intparams[IP_NPARAM]; | struct cfparam *intparams[IP_NPARAM]; | ||||
struct cfstring *comstring; | struct cfstring *comstring; | ||||
struct jailparam *jp; | struct jailparam *jp; | ||||
struct timespec timeout; | struct timespec timeout; | ||||
const enum intparam *comparam; | const enum intparam *comparam; | ||||
unsigned flags; | unsigned flags; | ||||
int jid; | int jid; | ||||
int seq; | int seq; | ||||
int pstatus; | int pstatus; | ||||
int ndeps; | int ndeps; | ||||
int njp; | int njp; | ||||
int nprocs; | int nprocs; | ||||
}; | }; | ||||
struct cfdepend { | struct cfdepend { | ||||
STAILQ_ENTRY(cfdepend) tq[2]; | STAILQ_ENTRY(cfdepend) tq[2]; | ||||
struct cfjail *j[2]; | struct cfjail *j[2]; | ||||
unsigned flags; | unsigned flags; | ||||
}; | }; | ||||
struct cflex { | |||||
const char *cfname; | |||||
struct cfjail *injail; | |||||
int error; | |||||
}; | |||||
extern void *emalloc(size_t); | extern void *emalloc(size_t); | ||||
extern void *erealloc(void *, size_t); | extern void *erealloc(void *, size_t); | ||||
extern char *estrdup(const char *); | extern char *estrdup(const char *); | ||||
extern int create_jail(struct cfjail *j); | extern int create_jail(struct cfjail *j); | ||||
extern void failed(struct cfjail *j); | extern void failed(struct cfjail *j); | ||||
extern void jail_note(const struct cfjail *j, const char *fmt, ...); | extern void jail_note(const struct cfjail *j, const char *fmt, ...); | ||||
extern void jail_warnx(const struct cfjail *j, const char *fmt, ...); | extern void jail_warnx(const struct cfjail *j, const char *fmt, ...); | ||||
extern int next_command(struct cfjail *j); | extern int next_command(struct cfjail *j); | ||||
extern int finish_command(struct cfjail *j); | extern int finish_command(struct cfjail *j); | ||||
extern struct cfjail *next_proc(int nonblock); | extern struct cfjail *next_proc(int nonblock); | ||||
extern void load_config(void); | extern void load_config(const char *cfname); | ||||
extern void include_config(const char *cfname, struct cflex *cflex, | |||||
int from_stdin); | |||||
extern struct cfjail *add_jail(void); | extern struct cfjail *add_jail(void); | ||||
extern void add_param(struct cfjail *j, const struct cfparam *p, | extern void add_param(struct cfjail *j, const struct cfparam *p, | ||||
enum intparam ipnum, const char *value); | enum intparam ipnum, const char *value); | ||||
extern int bool_param(const struct cfparam *p); | extern int bool_param(const struct cfparam *p); | ||||
extern int int_param(const struct cfparam *p, int *ip); | extern int int_param(const struct cfparam *p, int *ip); | ||||
extern const char *string_param(const struct cfparam *p); | extern const char *string_param(const struct cfparam *p); | ||||
extern int check_intparams(struct cfjail *j); | extern int check_intparams(struct cfjail *j); | ||||
extern int import_params(struct cfjail *j); | extern int import_params(struct cfjail *j); | ||||
extern int equalopts(const char *opt1, const char *opt2); | extern int equalopts(const char *opt1, const char *opt2); | ||||
extern int wild_jail_name(const char *wname); | extern int wild_jail_name(const char *wname); | ||||
extern int wild_jail_match(const char *jname, const char *wname); | extern int wild_jail_match(const char *jname, const char *wname); | ||||
extern void free_param_strings(struct cfparam *p); | |||||
extern void dep_setup(int docf); | extern void dep_setup(int docf); | ||||
extern int dep_check(struct cfjail *j); | extern int dep_check(struct cfjail *j); | ||||
extern void dep_done(struct cfjail *j, unsigned flags); | extern void dep_done(struct cfjail *j, unsigned flags); | ||||
extern void dep_reset(struct cfjail *j); | extern void dep_reset(struct cfjail *j); | ||||
extern struct cfjail *next_jail(void); | extern struct cfjail *next_jail(void); | ||||
extern int start_state(const char *target, int docf, unsigned state, | extern int start_state(const char *target, int docf, unsigned state, | ||||
int running); | int running); | ||||
extern void requeue(struct cfjail *j, struct cfjails *queue); | extern void requeue(struct cfjail *j, struct cfjails *queue); | ||||
extern void requeue_head(struct cfjail *j, struct cfjails *queue); | extern void requeue_head(struct cfjail *j, struct cfjails *queue); | ||||
extern void yyerror(const char *); | |||||
extern int yylex(void); | |||||
extern struct cfjails cfjails; | extern struct cfjails cfjails; | ||||
extern struct cfjails ready; | extern struct cfjails ready; | ||||
extern struct cfjails depend; | extern struct cfjails depend; | ||||
extern const char *cfname; | |||||
extern int iflag; | extern int iflag; | ||||
extern int note_remove; | extern int note_remove; | ||||
extern int paralimit; | extern int paralimit; | ||||
extern int verbose; | extern int verbose; |