logread: cleanup pid file handling
[project/ubox.git] / log / syslog.h
1 /*
2  * Copyright (C) 2013 John Crispin <blogic@openwrt.org>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License version 2.1
6  * as published by the Free Software Foundation
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  */
13
14 #ifndef __SYSLOG_H
15 #define __SYSLOG_H
16
17 #define LOG_LINE_SIZE           1024
18
19 enum {
20         SOURCE_KLOG = 0,
21         SOURCE_SYSLOG = 1,
22         SOURCE_INTERNAL = 2,
23         SOURCE_ANY = 0xff,
24 };
25
26 struct log_head {
27         unsigned int size;
28         unsigned int id;
29         int priority;
30         int source;
31         struct timespec ts;
32         char data[];
33 };
34
35 void log_init(int log_size);
36 void log_shutdown(void);
37
38 typedef void (*log_list_cb)(struct log_head *h);
39 struct log_head* log_list(int count, struct log_head *h);
40 int log_buffer_init(int size);
41 void log_add(char *buf, int size, int source);
42 void ubus_notify_log(struct log_head *l);
43
44 #endif