00001 #ifndef _KLONED_CHILD_S_H_ 00002 #define _KLONED_CHILD_S_H_ 00003 #include "klone_conf.h" 00004 #include <time.h> 00005 #include <u/libu.h> 00006 #include <klone/backend.h> 00007 00008 struct child_s 00009 { 00010 TAILQ_ENTRY(child_s) np; /* next & prev pointers */ 00011 pid_t pid; 00012 backend_t *be; 00013 time_t birth; 00014 }; 00015 00016 typedef struct child_s child_t; 00017 00018 struct children_s; 00019 typedef struct children_s children_t; 00020 00021 int child_create(pid_t pid, backend_t *be, child_t **pchild); 00022 int child_free(child_t *child); 00023 00024 backend_t* child_backend(child_t *child); 00025 pid_t* child_pid(child_t *child); 00026 time_t* child_birth(child_t *child); 00027 00028 /* list of child objects */ 00029 int children_create(children_t **pcs); 00030 int children_free(children_t *cs); 00031 int children_clear(children_t *cs); 00032 size_t children_count(children_t *cs); 00033 int children_del(children_t *cs, child_t *child); 00034 int children_add(children_t *cs, child_t *child); 00035 int children_getn(children_t *cs, size_t i, child_t **pc); 00036 int children_get_by_pid(children_t *cs, pid_t pid, child_t **pc); 00037 00038 #endif