child.h
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;
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
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