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