summaryrefslogtreecommitdiff
path: root/src/server/state.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/state.h')
-rw-r--r--src/server/state.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/server/state.h b/src/server/state.h
index f0149bc..f49ffb4 100644
--- a/src/server/state.h
+++ b/src/server/state.h
@@ -17,11 +17,12 @@ struct stateatom_s
uint8_t current : 1 ;
uint8_t transitioning : 1 ;
} ;
+#define STATEATOM_ZERO { .wanted = 0, .current = 0, .transitioning = 0 }
typedef struct instance_s instance_t, *instance_t_ref ;
struct instance_s
{
- char const *param ;
+ char const *param ; /* refcounted pointer to dynstorage */
stateatom_t state ;
} ;
@@ -32,14 +33,15 @@ struct state_s
genalloc *dyn[S6RC_STYPE_PHAIL] ; /* every genalloc is a list of instance_t */
} ;
+extern void instance_free (instance_t *) ;
+extern int instance_new (instance_t *, stateatom_t const *, char const *) ;
+
extern void state_free (state_t *, uint32_t const *) ;
-extern int state_ready (state_t *, uint32_t const *) ;
+extern int state_init (state_t *, uint32_t const *) ;
extern int state_write (char const *, state_t const *, uint32_t const *) ;
-extern int state_read (char const *, state_t *, uint32_t const *) ;
-
+extern int state_read (char const *, state_t *, uint32_t const *) ; /* also inits */
extern stateatom_t *state_atom (s6rc_db_t const *, state_t const *, s6rc_sid_t const *) ;
-
#endif