master
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef _PAPR_INDICES_H_
3#define _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
12struct 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 /* _PAPR_INDICES_H_ */