Libecoli 0.4.0
Extensible COmmand LIne library
 
Loading...
Searching...
No Matches
ecoli_init.h
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2016, Olivier MATZ <zer0@droids-corp.org>
3 */
4
9
10#ifndef ECOLI_INIT_
11#define ECOLI_INIT_
12
13#include <sys/queue.h>
14
15#include <ecoli_log.h>
16#include <ecoli_node.h>
17
23#define EC_INIT_REGISTER(t) \
24 static void ec_init_init_##t(void); \
25 static void __attribute__((constructor, used)) \
26 ec_init_init_##t(void) \
27 { \
28 ec_init_register(&t); \
29 }
30
34typedef int (ec_init_t)(void);
35
39typedef void (ec_exit_t)(void);
40
41TAILQ_HEAD(ec_init_list, ec_init);
42
46struct ec_init {
47 TAILQ_ENTRY(ec_init) next;
48 ec_init_t *init;
49 ec_exit_t *exit;
50 unsigned int priority;
51};
52
59void ec_init_register(struct ec_init *test);
60
70int ec_init(void);
71
75void ec_exit(void);
76
77#endif
78
void ec_exit_t(void)
Definition ecoli_init.h:39
int ec_init_t(void)
Definition ecoli_init.h:34
int ec_init(void)
void ec_exit(void)
void ec_init_register(struct ec_init *test)