Commit | Line | Data |
---|---|---|
1e494cf4 JB |
1 | /* utils/logger.h |
2 | ** | |
3 | ** Copyright 2007, The Android Open Source Project | |
4 | ** | |
5 | ** This file is dual licensed. It may be redistributed and/or modified | |
6 | ** under the terms of the Apache 2.0 License OR version 2 of the GNU | |
7 | ** General Public License. | |
8 | */ | |
9 | ||
10 | #ifndef _UTILS_LOGGER_H | |
11 | #define _UTILS_LOGGER_H | |
12 | ||
13 | #include <stdint.h> | |
14 | ||
15 | /* | |
16 | * The userspace structure for version 1 of the logger_entry ABI. | |
17 | * This structure is returned to userspace by the kernel logger | |
18 | * driver unless an upgrade to a newer ABI version is requested. | |
19 | */ | |
20 | struct logger_entry { | |
21 | uint16_t len; /* length of the payload */ | |
22 | uint16_t __pad; /* no matter what, we get 2 bytes of padding */ | |
23 | int32_t pid; /* generating process's pid */ | |
24 | int32_t tid; /* generating process's tid */ | |
25 | int32_t sec; /* seconds since Epoch */ | |
26 | int32_t nsec; /* nanoseconds */ | |
27 | char msg[0]; /* the entry's payload */ | |
28 | }; | |
29 | ||
30 | /* | |
31 | * The userspace structure for version 2 of the logger_entry ABI. | |
32 | * This structure is returned to userspace if ioctl(LOGGER_SET_VERSION) | |
33 | * is called with version==2 | |
34 | */ | |
35 | struct logger_entry_v2 { | |
36 | uint16_t len; /* length of the payload */ | |
37 | uint16_t hdr_size; /* sizeof(struct logger_entry_v2) */ | |
38 | int32_t pid; /* generating process's pid */ | |
39 | int32_t tid; /* generating process's tid */ | |
40 | int32_t sec; /* seconds since Epoch */ | |
41 | int32_t nsec; /* nanoseconds */ | |
42 | uint32_t euid; /* effective UID of logger */ | |
43 | char msg[0]; /* the entry's payload */ | |
44 | }; | |
45 | ||
46 | #define LOGGER_LOG_MAIN "alog/main" | |
47 | #define LOGGER_LOG_RADIO "alog/radio" | |
48 | #define LOGGER_LOG_EVENTS "alog/events" | |
49 | #define LOGGER_LOG_SYSTEM "alog/system" | |
50 | ||
51 | /* | |
52 | * The maximum size of the log entry payload that can be | |
53 | * written to the kernel logger driver. An attempt to write | |
54 | * more than this amount to /dev/log/* will result in a | |
55 | * truncated log entry. | |
56 | */ | |
57 | #define LOGGER_ENTRY_MAX_PAYLOAD 4076 | |
58 | ||
59 | /* | |
60 | * The maximum size of a log entry which can be read from the | |
61 | * kernel logger driver. An attempt to read less than this amount | |
62 | * may result in read() returning EINVAL. | |
63 | */ | |
64 | #define LOGGER_ENTRY_MAX_LEN (5*1024) | |
65 | ||
66 | #ifdef HAVE_IOCTL | |
67 | ||
68 | #include <sys/ioctl.h> | |
69 | ||
70 | #define __LOGGERIO 0xAE | |
71 | ||
72 | #define LOGGER_GET_LOG_BUF_SIZE _IO(__LOGGERIO, 1) /* size of log */ | |
73 | #define LOGGER_GET_LOG_LEN _IO(__LOGGERIO, 2) /* used log len */ | |
74 | #define LOGGER_GET_NEXT_ENTRY_LEN _IO(__LOGGERIO, 3) /* next entry len */ | |
75 | #define LOGGER_FLUSH_LOG _IO(__LOGGERIO, 4) /* flush log */ | |
76 | #define LOGGER_GET_VERSION _IO(__LOGGERIO, 5) /* abi version */ | |
77 | #define LOGGER_SET_VERSION _IO(__LOGGERIO, 6) /* abi version */ | |
78 | ||
79 | #endif // HAVE_IOCTL | |
80 | ||
81 | #endif /* _UTILS_LOGGER_H */ |