mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
powerpc/pseries: Define papr_indices_io_block for papr-indices ioctls
To issue ibm,get-indices, ibm,set-dynamic-indicator and ibm,get-dynamic-sensor-state in the user space, the RMO buffer is allocated for the work area which is restricted under system lockdown. So instead of user space execution, the kernel will provide /dev/papr-indices interface to execute these RTAS calls. The user space assigns data in papr_indices_io_block struct depends on the specific HCALL and passes to the following ioctls: PAPR_INDICES_IOC_GET: Use for ibm,get-indices. Returns a get-indices handle fd to read data. PAPR_DYNAMIC_SENSOR_IOC_GET: Use for ibm,get-dynamic-sensor-state. Updates the sensor state in papr_indices_io_block.dynamic_param.state PAPR_DYNAMIC_INDICATOR_IOC_SET: Use for ibm,set-dynamic-indicator. Sets the new state for the input indicator. Signed-off-by: Haren Myneni <haren@linux.ibm.com> Tested-by: Sathvika Vasireddy <sv@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20250416225743.596462-3-haren@linux.ibm.com
This commit is contained in:
parent
ecc45d4f8c
commit
43d869ac25
2 changed files with 43 additions and 0 deletions
|
@ -366,6 +366,8 @@ Code Seq# Include File Comments
|
|||
<mailto:linuxppc-dev>
|
||||
0xB2 01-02 arch/powerpc/include/uapi/asm/papr-sysparm.h powerpc/pseries system parameter API
|
||||
<mailto:linuxppc-dev>
|
||||
0xB2 03-05 arch/powerpc/include/uapi/asm/papr-indices.h powerpc/pseries indices API
|
||||
<mailto:linuxppc-dev>
|
||||
0xB3 00 linux/mmc/ioctl.h
|
||||
0xB4 00-0F linux/gpio.h <mailto:linux-gpio@vger.kernel.org>
|
||||
0xB5 00-0F uapi/linux/rpmsg.h <mailto:linux-remoteproc@vger.kernel.org>
|
||||
|
|
41
arch/powerpc/include/uapi/asm/papr-indices.h
Normal file
41
arch/powerpc/include/uapi/asm/papr-indices.h
Normal file
|
@ -0,0 +1,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_ */
|
Loading…
Add table
Reference in a new issue