1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _UAPI_PAPR_INDICES_H_ 3 #define _UAPI_PAPR_INDICES_H_ 4 5 #include <linux/types.h> 6 #include <asm/ioctl.h> 7 #include <asm/papr-miscdev.h> 8 9 #define LOC_CODE_SIZE 80 10 #define RTAS_GET_INDICES_BUF_SIZE SZ_4K 11 12 struct papr_indices_io_block { 13 union { 14 struct { 15 __u8 is_sensor; /* 0 for indicator and 1 for sensor */ 16 __u32 indice_type; 17 } indices; 18 struct { 19 __u32 token; /* Sensor or indicator token */ 20 __u32 state; /* get / set state */ 21 /* 22 * PAPR+ 12.3.2.4 Converged Location Code Rules - Length 23 * Restrictions. 79 characters plus null. 24 */ 25 char location_code_str[LOC_CODE_SIZE]; /* location code */ 26 } dynamic_param; 27 }; 28 }; 29 30 /* 31 * ioctls for /dev/papr-indices. 32 * PAPR_INDICES_IOC_GET: Returns a get-indices handle fd to read data 33 * PAPR_DYNAMIC_SENSOR_IOC_GET: Gets the state of the input sensor 34 * PAPR_DYNAMIC_INDICATOR_IOC_SET: Sets the new state for the input indicator 35 */ 36 #define PAPR_INDICES_IOC_GET _IOW(PAPR_MISCDEV_IOC_ID, 3, struct papr_indices_io_block) 37 #define PAPR_DYNAMIC_SENSOR_IOC_GET _IOWR(PAPR_MISCDEV_IOC_ID, 4, struct papr_indices_io_block) 38 #define PAPR_DYNAMIC_INDICATOR_IOC_SET _IOW(PAPR_MISCDEV_IOC_ID, 5, struct papr_indices_io_block) 39 40 41 #endif /* _UAPI_PAPR_INDICES_H_ */ 42