aboutsummaryrefslogtreecommitdiff
path: root/src/pies.h
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2016-02-13 12:48:59 +0200
committerSergey Poznyakoff <gray@gnu.org>2016-02-13 12:48:59 +0200
commit3c774556e22cd30c42304614e14218a767e4d700 (patch)
treecdcc278f470b2ef8863cf10655315f8579f679b2 /src/pies.h
parent92145d8331e824a54109c53032f0ca4b2df71f5f (diff)
downloadpies-3c774556e22cd30c42304614e14218a767e4d700.tar.gz
pies-3c774556e22cd30c42304614e14218a767e4d700.tar.bz2
Implement on-demaind components; implement control socket telinit interface.
* src/pies.h: Include json.h (sysvinit_report, sysvinit_set_runlevel) (json_object_set_string, json_object_set_number): New protos. * src/ctl.c (ctlio_resource)<predicate>: New member. (restab): New endpoint: runlevel. Available only if run as pid 1. (find_resource): If predicate is not NULL, call it to confirm that the endpoint is available. * src/piesctl.c: New subcommand "telinit". * src/sysvinit.c (sysvinit_set_runlevel): New function. (sysvinit_fifo_handler): Implement on-demaind components.
Diffstat (limited to 'src/pies.h')
-rw-r--r--src/pies.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/pies.h b/src/pies.h
index 1b77398..9fb87c6 100644
--- a/src/pies.h
+++ b/src/pies.h
@@ -53,12 +53,13 @@
#include "quotearg.h"
#include "fprintftime.h"
#include "identity.h"
#include "acl.h"
#include "libpies.h"
+#include "json.h"
#define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
#define TESTTIME 2*60
#define SLEEPTIME 5*60
#define MAXSPAWN 10
@@ -512,12 +513,15 @@ int telinit (const char *arg);
int inittab_parse (const char *file);
int sysvinit_sigtrans (int sig, int *pact);
void sysvinit_runlevel_setup (int mask, int *wait);
void sysvinit_sysdep_begin (void);
void sysvinit_power (void);
+void sysvinit_report (struct json_value *obj);
+int sysvinit_set_runlevel (int newlevel);
+
extern char *sysvinit_environ_hint[];
extern char *init_fifo;
#ifndef INIT_FIFO
# define INIT_FIFO "/dev/initctl"
#endif
@@ -575,6 +579,11 @@ struct control
char *realm; /* Authentication realm */
};
extern struct control control;
int ctl_open(void);
+
+void json_object_set_string (struct json_value *obj,
+ char const *name, char const *fmt, ...);
+void json_object_set_number (struct json_value *obj,
+ char const *name, double val);

Return to:

Send suggestions and report system problems to the System administrator.