validate: range and base arguments for numeric types, new types hexstring, regexp...
[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 enum {
18         SOURCE_KLOG = 0,
19         SOURCE_SYSLOG = 1,
20         SOURCE_INTERNAL = 2,
21         SOURCE_ANY = 0xff,
22 };
23
24 struct log_head {
25         unsigned int size;
26         unsigned int id;
27         int priority;
28         int source;
29         struct timespec ts;
30         char data[];
31 };
32
33 void log_init(void);
34 void log_shutdown(void);
35
36 typedef void (*log_list_cb)(struct log_head *h);
37 struct log_head* log_list(int count, struct log_head *h);
38 int log_buffer_init(int size);
39 void log_add(char *buf, int size, int source);
40 void ubus_notify_log(struct log_head *l);
41
42 #endif