xref: /linux/arch/powerpc/include/uapi/asm/papr-indices.h (revision fb7399cf2d0b33825b8039f95c45395c7deba25c)
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