1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
2 | /* |
3 | * System Trace Module (STM) userspace interfaces |
4 | * Copyright (c) 2014, Intel Corporation. |
5 | * |
6 | * STM class implements generic infrastructure for System Trace Module devices |
7 | * as defined in MIPI STPv2 specification. |
8 | */ |
9 | |
10 | #ifndef _UAPI_LINUX_STM_H |
11 | #define _UAPI_LINUX_STM_H |
12 | |
13 | #include <linux/types.h> |
14 | |
15 | /* Maximum allowed master and channel values */ |
16 | #define STP_MASTER_MAX 0xffff |
17 | #define STP_CHANNEL_MAX 0xffff |
18 | |
19 | /** |
20 | * struct stp_policy_id - identification for the STP policy |
21 | * @size: size of the structure including real id[] length |
22 | * @master: assigned master |
23 | * @channel: first assigned channel |
24 | * @width: number of requested channels |
25 | * @id: identification string |
26 | * |
27 | * User must calculate the total size of the structure and put it into |
28 | * @size field, fill out the @id and desired @width. In return, kernel |
29 | * fills out @master, @channel and @width. |
30 | */ |
31 | struct stp_policy_id { |
32 | __u32 size; |
33 | __u16 master; |
34 | __u16 channel; |
35 | __u16 width; |
36 | /* padding */ |
37 | __u16 __reserved_0; |
38 | __u32 __reserved_1; |
39 | char id[]; |
40 | }; |
41 | |
42 | #define STP_POLICY_ID_SET _IOWR('%', 0, struct stp_policy_id) |
43 | #define STP_POLICY_ID_GET _IOR('%', 1, struct stp_policy_id) |
44 | #define STP_SET_OPTIONS _IOW('%', 2, __u64) |
45 | |
46 | #endif /* _UAPI_LINUX_STM_H */ |
47 | |