1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* 2 /* 3 * System Trace Module (STM) userspace interfa 3 * System Trace Module (STM) userspace interfaces 4 * Copyright (c) 2014, Intel Corporation. 4 * Copyright (c) 2014, Intel Corporation. 5 * 5 * >> 6 * This program is free software; you can redistribute it and/or modify it >> 7 * under the terms and conditions of the GNU General Public License, >> 8 * version 2, as published by the Free Software Foundation. >> 9 * >> 10 * This program is distributed in the hope it will be useful, but WITHOUT >> 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or >> 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for >> 13 * more details. >> 14 * 6 * STM class implements generic infrastructure 15 * STM class implements generic infrastructure for System Trace Module devices 7 * as defined in MIPI STPv2 specification. 16 * as defined in MIPI STPv2 specification. 8 */ 17 */ 9 18 10 #ifndef _UAPI_LINUX_STM_H 19 #ifndef _UAPI_LINUX_STM_H 11 #define _UAPI_LINUX_STM_H 20 #define _UAPI_LINUX_STM_H 12 21 13 #include <linux/types.h> 22 #include <linux/types.h> 14 23 15 /* Maximum allowed master and channel values * << 16 #define STP_MASTER_MAX 0xffff << 17 #define STP_CHANNEL_MAX 0xffff << 18 << 19 /** 24 /** 20 * struct stp_policy_id - identification for t 25 * struct stp_policy_id - identification for the STP policy 21 * @size: size of the structure includin 26 * @size: size of the structure including real id[] length 22 * @master: assigned master 27 * @master: assigned master 23 * @channel: first assigned channel 28 * @channel: first assigned channel 24 * @width: number of requested channels 29 * @width: number of requested channels 25 * @id: identification string 30 * @id: identification string 26 * 31 * 27 * User must calculate the total size of the s 32 * User must calculate the total size of the structure and put it into 28 * @size field, fill out the @id and desired @ 33 * @size field, fill out the @id and desired @width. In return, kernel 29 * fills out @master, @channel and @width. 34 * fills out @master, @channel and @width. 30 */ 35 */ 31 struct stp_policy_id { 36 struct stp_policy_id { 32 __u32 size; 37 __u32 size; 33 __u16 master; 38 __u16 master; 34 __u16 channel; 39 __u16 channel; 35 __u16 width; 40 __u16 width; 36 /* padding */ 41 /* padding */ 37 __u16 __reserved_0; 42 __u16 __reserved_0; 38 __u32 __reserved_1; 43 __u32 __reserved_1; 39 char id[]; !! 44 char id[0]; 40 }; 45 }; 41 46 42 #define STP_POLICY_ID_SET _IOWR('%', 0, 47 #define STP_POLICY_ID_SET _IOWR('%', 0, struct stp_policy_id) 43 #define STP_POLICY_ID_GET _IOR('%', 1, s 48 #define STP_POLICY_ID_GET _IOR('%', 1, struct stp_policy_id) 44 #define STP_SET_OPTIONS _IOW('%', 2, _ 49 #define STP_SET_OPTIONS _IOW('%', 2, __u64) 45 50 46 #endif /* _UAPI_LINUX_STM_H */ 51 #endif /* _UAPI_LINUX_STM_H */ 47 52
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.