14#define CRINIT_MONITOR_DEP_NAME "@crinitmon"
15#define CRINIT_PROVIDE_DEP_NAME "@provided"
16#define CRINIT_TASKDB_INITIAL_SIZE 256
51#define crinitTaskDbForEach(taskDb, task) \
52 for ((task) = (taskDb)->taskSet; (task) != (taskDb)->taskSet + (taskDb)->taskSetItems; (task)++)
77#define crinitTaskDBUpdate(ctx, t) crinitTaskDBInsert(ctx, t, true)
381#define crinitTaskDBInit(ctx, spawnFunc) crinitTaskDBInitWithSize(ctx, spawnFunc, CRINIT_TASKDB_INITIAL_SIZE);
unsigned long crinitTaskState_t
Type to store Task state bitmask.
Definition crinit-sdefs.h:17
pthread_mutex_t lock
Definition taskdb.h:40
pthread_cond_t changed
Condition variable to be signalled if taskSet or spawnInhibit is changed.
Definition taskdb.h:42
crinitTask_t * taskSet
Dynamic array of tasks, corresponds to task configs specified in the series config.
Definition taskdb.h:30
int(* spawnFunc)(struct crinitTaskDB *ctx, const crinitTask_t *, crinitDispatchThreadMode_t mode)
Definition taskdb.h:35
size_t taskSetItems
Number of elements in the task array.
Definition taskdb.h:32
bool spawnInhibit
Specifies if process spawning is currently inhibited, respected by crinitTaskDBSpawnReady().
Definition taskdb.h:38
size_t taskSetSize
Current maximum size of the task array.
Definition taskdb.h:31
Header defining the data structures belonging to a single task and related functions.
int crinitTaskDBInsert(crinitTaskDB_t *ctx, const crinitTask_t *t, bool overwrite)
Definition taskdb.c:114
int crinitTaskDBDestroy(crinitTaskDB_t *ctx)
Definition taskdb.c:94
int crinitTaskDBGetTaskState(crinitTaskDB_t *ctx, crinitTaskState_t *s, const char *taskName)
Definition taskdb.c:341
enum crinitDispatchThreadMode crinitDispatchThreadMode_t
int crinitTaskDBExportTaskNamesToArray(crinitTaskDB_t *ctx, char **tasks[], size_t *numTasks)
Definition taskdb.c:629
int crinitTaskDBSetTaskPID(crinitTaskDB_t *ctx, pid_t pid, const char *taskName)
Definition taskdb.c:361
int crinitTaskDBAddDepToTask(crinitTaskDB_t *ctx, const crinitTaskDep_t *dep, const char *taskName)
Definition taskdb.c:471
int crinitTaskDBSpawnReady(crinitTaskDB_t *ctx, crinitDispatchThreadMode_t mode)
Definition taskdb.c:174
int crinitTaskDBInitWithSize(crinitTaskDB_t *ctx, int(*spawnFunc)(crinitTaskDB_t *ctx, const crinitTask_t *, crinitDispatchThreadMode_t mode), size_t initialSize)
Definition taskdb.c:54
int crinitTaskDBGetTaskPID(crinitTaskDB_t *ctx, pid_t *pid, const char *taskName)
Definition taskdb.c:380
int crinitTaskDBProvideFeature(crinitTaskDB_t *ctx, const crinitTask_t *provider, crinitTaskState_t newState)
Definition taskdb.c:585
int crinitTaskRearmTrigger(crinitTaskDB_t *ctx, const char *taskName)
Definition taskdb.c:253
int crinitTaskDBSetTaskState(crinitTaskDB_t *ctx, crinitTaskState_t s, const char *taskName)
Definition taskdb.c:271
struct crinitTaskDB crinitTaskDB_t
int crinitTaskDBSetSpawnInhibit(crinitTaskDB_t *ctx, bool inh)
Definition taskdb.c:212
int crinitTaskDBFulfillDep(crinitTaskDB_t *ctx, const crinitTaskDep_t *dep, crinitTask_t *target)
Definition taskdb.c:564
crinitDispatchThreadMode
Definition taskdb.h:21
@ CRINIT_DISPATCH_THREAD_MODE_START
Definition taskdb.h:22
@ CRINIT_DISPATCH_THREAD_MODE_STOP
Definition taskdb.h:23
int crinitTaskDBGetTaskStateAndPID(crinitTaskDB_t *ctx, crinitTaskState_t *s, pid_t *pid, const char *taskName)
Definition taskdb.c:400
int crinitTaskDBGetTaskByName(crinitTaskDB_t *ctx, crinitTask_t **task, const char *taskName)
Definition taskdb.c:230
int crinitTaskDBRemoveDepFromTask(crinitTaskDB_t *ctx, const crinitTaskDep_t *dep, const char *taskName)
Definition taskdb.c:544
int crinitTaskDBSetTaskRespawnInhibit(crinitTaskDB_t *ctx, bool inhibit, const char *taskName)
Definition taskdb.c:422
int crinitTaskDBRemit(crinitTaskDB_t *ctx)
Definition taskdb.c:458
int crinitTaskDBProvideFeatureByTaskName(crinitTaskDB_t *ctx, const char *taskName, crinitTaskState_t newState)
Definition taskdb.c:611
crinitTask_t * crinitTaskDBBorrowTask(crinitTaskDB_t *ctx, const char *taskName)
Definition taskdb.c:441