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