1 /*
2  * Copyright (C) 2018-2022 Intel Corporation.
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 
6 #ifndef __EVENT_QUEUE_H__
7 #define __EVENT_QUEUE_H__
8 
9 #include <sys/queue.h>
10 
11 enum event_type_t {
12 	CRASH,
13 	INFO,
14 	UPTIME,
15 	HEART_BEAT,
16 	REBOOT,
17 	VM,
18 	UNKNOWN
19 };
20 
21 extern const char *etype_str[];
22 
23 __extension__
24 struct event_t {
25 	int watchfd;
26 	enum event_type_t event_type;
27 	const char *channel;
28 	void *private;
29 
30 	TAILQ_ENTRY(event_t) entries;
31 
32 	/* dir to storage logs */
33 	char *dir;
34 	size_t dlen;
35 	int len;
36 	char path[0]; /* keep this at tail*/
37 };
38 
39 void event_enqueue(struct event_t *event);
40 int events_count(void);
41 struct event_t *event_dequeue(void);
42 void init_event_queue(void);
43 
44 #endif
45