summaryrefslogtreecommitdiff
path: root/arch/powerpc/include/uapi/asm/papr-indices.h
blob: c2999d89d52a092c7c607a4e0cb8eb3762e9617c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_PAPR_INDICES_H_
#define _UAPI_PAPR_INDICES_H_

#include <linux/types.h>
#include <asm/ioctl.h>
#include <asm/papr-miscdev.h>

#define LOC_CODE_SIZE			80
#define RTAS_GET_INDICES_BUF_SIZE	SZ_4K

struct papr_indices_io_block {
	union {
		struct {
			__u8 is_sensor; /* 0 for indicator and 1 for sensor */
			__u32 indice_type;
		} indices;
		struct {
			__u32 token; /* Sensor or indicator token */
			__u32 state; /* get / set state */
			/*
			 * PAPR+ 12.3.2.4 Converged Location Code Rules - Length
			 * Restrictions. 79 characters plus null.
			 */
			char location_code_str[LOC_CODE_SIZE]; /* location code */
		} dynamic_param;
	};
};

/*
 * ioctls for /dev/papr-indices.
 * PAPR_INDICES_IOC_GET: Returns a get-indices handle fd to read data
 * PAPR_DYNAMIC_SENSOR_IOC_GET: Gets the state of the input sensor
 * PAPR_DYNAMIC_INDICATOR_IOC_SET: Sets the new state for the input indicator
 */
#define PAPR_INDICES_IOC_GET		_IOW(PAPR_MISCDEV_IOC_ID, 3, struct papr_indices_io_block)
#define PAPR_DYNAMIC_SENSOR_IOC_GET	_IOWR(PAPR_MISCDEV_IOC_ID, 4, struct papr_indices_io_block)
#define PAPR_DYNAMIC_INDICATOR_IOC_SET	_IOW(PAPR_MISCDEV_IOC_ID, 5, struct papr_indices_io_block)


#endif /* _UAPI_PAPR_INDICES_H_ */