misc/trinity: Fix invalid spdx identifiers for uapi haeder
[platform/kernel/linux-rpi.git] / include / uapi / linux / logger.h
1 /* include/linux/logger.h
2  *
3  * Copyright (C) 2007-2008 Google, Inc.
4  * Author: Robert Love <rlove@android.com>
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16
17 #ifndef _LINUX_LOGGER_H
18 #define _LINUX_LOGGER_H
19
20 #include <linux/types.h>
21 #include <linux/ioctl.h>
22
23 /**
24  * struct user_logger_entry_compat - defines a single entry that is given to a logger
25  * @len:        The length of the payload
26  * @__pad:      Two bytes of padding that appear to be required
27  * @pid:        The generating process' process ID
28  * @tid:        The generating process' thread ID
29  * @sec:        The number of seconds that have elapsed since the Epoch
30  * @nsec:       The number of nanoseconds that have elapsed since @sec
31  * @msg:        The message that is to be logged
32  *
33  * The userspace structure for version 1 of the logger_entry ABI.
34  * This structure is returned to userspace unless the caller requests
35  * an upgrade to a newer ABI version.
36  */
37 struct user_logger_entry_compat {
38         __u16           len;
39         __u16           __pad;
40         __s32           pid;
41         __s32           tid;
42         __s32           sec;
43         __s32           nsec;
44         char            msg[0];
45 };
46
47 /**
48  * struct logger_entry - defines a single entry that is given to a logger
49  * @len:        The length of the payload
50  * @hdr_size:   sizeof(struct logger_entry_v2)
51  * @pid:        The generating process' process ID
52  * @tid:        The generating process' thread ID
53  * @sec:        The number of seconds that have elapsed since the Epoch
54  * @nsec:       The number of nanoseconds that have elapsed since @sec
55  * @euid:       Effective UID of logger
56  * @msg:        The message that is to be logged
57  *
58  * The structure for version 2 of the logger_entry ABI.
59  * This structure is returned to userspace if ioctl(LOGGER_SET_VERSION)
60  * is called with version >= 2
61  */
62 struct logger_entry {
63         __u16           len;
64         __u16           hdr_size;
65         __s32           pid;
66         __s32           tid;
67         __s32           sec;
68         __s32           nsec;
69 #ifndef __KERNEL__
70         __s32           euid;
71 #else
72         kuid_t          euid;
73 #endif
74         char            msg[0];
75 };
76
77 /**
78  * struct logger_set_tag
79  * @len:        Length of a NULL-terminated tag including '\0'
80  * @ptr:        Pointer to a user buffer containing the tag
81  */
82 struct logger_set_tag {
83         __u64           len;
84         __u64           ptr;
85 };
86
87 #define LOGGER_LOG_RADIO        "log_radio"     /* radio-related messages */
88 #define LOGGER_LOG_EVENTS       "log_events"    /* system/hardware events */
89 #define LOGGER_LOG_SYSTEM       "log_system"    /* system/framework messages */
90 #define LOGGER_LOG_MAIN         "log_main"      /* everything else */
91
92 #define LOGGER_ENTRY_MAX_PAYLOAD        4076
93
94 #define __LOGGERIO      0xAE
95
96 #define LOGGER_GET_LOG_BUF_SIZE         _IO(__LOGGERIO, 1) /* size of log */
97 #define LOGGER_GET_LOG_LEN              _IO(__LOGGERIO, 2) /* used log len */
98 #define LOGGER_GET_NEXT_ENTRY_LEN       _IO(__LOGGERIO, 3) /* next entry len */
99 #define LOGGER_FLUSH_LOG                _IO(__LOGGERIO, 4) /* flush log */
100 #define LOGGER_GET_VERSION              _IO(__LOGGERIO, 5) /* abi version */
101 #define LOGGER_SET_VERSION              _IO(__LOGGERIO, 6) /* abi version */
102 #define LOGGER_SET_TAG                  _IO(__LOGGERIO, 7) /* stdio tag */
103 #define LOGGER_SET_PRIO                 _IO(__LOGGERIO, 8) /* stdio priority */
104
105 #endif /* _LINUX_LOGGER_H */