#ifndef XCE_CLUSTER_DEF_H #define XCE_CLUSTER_DEF_H #include "config.h" #include #include #include "delay.h" #include "hook.h" #include "htab.h" #include "kvmgr.h" #include "myconf.h" #include "mylock.h" #include "netio.h" #include "objmgr.h" #include "vtaskmgr.h" #include "xce/types.h" #include "xlist.h" #include "zarray.h" #define N_CONTROLLER_MAX (16) enum { XCE_CONTROLLER_HOOK_JOB = 0, XCE_CONTROLLER_HOOK_WORKER, XCE_CONTROLLER_HOOK_SCHEDULER, XCE_CONTROLLER_HOOK_CLUSTER, XCE_CONTROLLER_HOOK_RESOURCE, XCE_CONTROLLER_HOOK_QUEUE, XCE_CONTROLLER_HOOK_USERGROUP, XCE_CONTROLLER_HOOK_HOSTGROUP, XCE_CONTROLLER_HOOK_MAX /* keep this as the max */ }; enum { HOOK_DETAIL_JOB_NEW = 0, HOOK_DETAIL_JOB_START, HOOK_DETAIL_JOB_EXIT, HOOK_DETAIL_JOB_FAIL, HOOK_DETAIL_JOB_UPDATE, HOOK_DETAIL_JOB_CKPT, HOOK_DETAIL_SETPREASON, HOOK_DETAIL_CLRPREASON, HOOK_DETAIL_WORKER_JOIN, HOOK_DETAIL_WORKER_DEAD, HOOK_DETAIL_WORKER_UPDATE, HOOK_DETAIL_SCHEDULER_JOIN, HOOK_DETAIL_SCHEDULER_DEAD, HOOK_DETAIL_CLUSTER_INIT, HOOK_DETAIL_CLUSTER_SHUTDOWN, HOOK_DETAIL_RESOURCE_UPDATE, HOOK_DETAIL_RESOURCE_LOC_UPDATE, HOOK_DETAIL_QUEUE_UPDATE, HOOK_DETAIL_USERGROUP_UPDATE, HOOK_DETAIL_HOSTGROUP_UPDATE, HOOK_DETAIL_JOB_RUSAGE_UPDATE }; #define XCE_NS_CONFIG (0) #define XCE_NS_UGROUP (1) #define XCE_NS_HGROUP (2) #define XCE_NS_MAX (2) typedef struct { int role; union { int idx; } u; } ep_private_t; typedef struct { endpoint_t* ep; } controller_t; typedef struct { } metrics_t; typedef struct { mylock_t lock; endpoint_t* ep; } scheduler_t; typedef struct { myconf_t* myconf; xce_peerinfo_t* myhost; hooksys_t hooksys; iomgr_t iomgr; objmgr_t objmgr; zarray_t endpoints; endpoint_t ep; zarray_t configs; zarray_t sharedinst; controller_t controllers[N_CONTROLLER_MAX]; int myidx; int master; int ncontrollers; delaymgr_t delaymgr; scheduler_t sched; jobmgr_t jobmgr; resmgr_t resmgr; workermgr_t workermgr; qmgr_t qmgr; kvmgr_t configmgr; kvmgr_t ugmgr; kvmgr_t hgmgr; vtaskmgr_t vtaskmgr; cbuf_t wbuf; int running; } cluster_t; #endif /* XCE_CLUSTER_DEF_H */