/
usr
/
src
/
linux-headers-5.15.0-190
/
arch
/
powerpc
/
include
/
uapi
/
asm
/
/usr/src/linux-headers-5.15.0-190/arch/powerpc/include/uapi/asm
mkdir
upload
Name
Size
Mode
Actions
auxvec.h
1774
0644
edit
dl
rm
bitsperlong.h
312
0644
edit
dl
rm
bootx.h
4417
0644
edit
dl
rm
byteorder.h
550
0644
edit
dl
rm
cputable.h
2399
0644
edit
dl
rm
eeh.h
2233
0644
edit
dl
rm
elf.h
13356
0644
edit
dl
rm
epapr_hcalls.h
4274
0644
edit
dl
rm
errno.h
278
0644
edit
dl
rm
fcntl.h
367
0644
edit
dl
rm
ioctl.h
302
0644
edit
dl
rm
ioctls.h
4359
0644
edit
dl
rm
ipcbuf.h
1057
0644
edit
dl
rm
Kbuild
89
0644
edit
dl
rm
kvm.h
24887
0644
edit
dl
rm
kvm_para.h
2793
0644
edit
dl
rm
mman.h
1294
0644
edit
dl
rm
msgbuf.h
1159
0644
edit
dl
rm
nvram.h
2077
0644
edit
dl
rm
opal-prd.h
1782
0644
edit
dl
rm
papr_pdsm.h
5287
0644
edit
dl
rm
perf_event.h
565
0644
edit
dl
rm
perf_regs.h
2343
0644
edit
dl
rm
posix_types.h
594
0644
edit
dl
rm
ps3fb.h
1781
0644
edit
dl
rm
ptrace.h
7787
0644
edit
dl
rm
sembuf.h
1144
0644
edit
dl
rm
setup.h
203
0644
edit
dl
rm
shmbuf.h
1661
0644
edit
dl
rm
sigcontext.h
4444
0644
edit
dl
rm
signal.h
2504
0644
edit
dl
rm
socket.h
600
0644
edit
dl
rm
spu_info.h
832
0644
edit
dl
rm
stat.h
2318
0644
edit
dl
rm
swab.h
602
0644
edit
dl
rm
termbits.h
5224
0644
edit
dl
rm
termios.h
1712
0644
edit
dl
rm
tm.h
734
0644
edit
dl
rm
types.h
1319
0644
edit
dl
rm
ucontext.h
975
0644
edit
dl
rm
unistd.h
577
0644
edit
dl
rm
vas-api.h
664
0644
edit
dl
rm
Edit:
/usr/src/linux-headers-5.15.0-190/arch/powerpc/include/uapi/asm/papr_pdsm.h
(5287B)
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * PAPR nvDimm Specific Methods (PDSM) and structs for libndctl * * (C) Copyright IBM 2020 * * Author: Vaibhav Jain <vaibhav at linux.ibm.com> */ #ifndef _UAPI_ASM_POWERPC_PAPR_PDSM_H_ #define _UAPI_ASM_POWERPC_PAPR_PDSM_H_ #include <linux/types.h> #include <linux/ndctl.h> /* * PDSM Envelope: * * The ioctl ND_CMD_CALL exchange data between user-space and kernel via * envelope which consists of 2 headers sections and payload sections as * illustrated below: * +-----------------+---------------+---------------------------+ * | 64-Bytes | 8-Bytes | Max 184-Bytes | * +-----------------+---------------+---------------------------+ * | ND-HEADER | PDSM-HEADER | PDSM-PAYLOAD | * +-----------------+---------------+---------------------------+ * | nd_family | | | * | nd_size_out | cmd_status | | * | nd_size_in | reserved | nd_pdsm_payload | * | nd_command | payload --> | | * | nd_fw_size | | | * | nd_payload ---> | | | * +---------------+-----------------+---------------------------+ * * ND Header: * This is the generic libnvdimm header described as 'struct nd_cmd_pkg' * which is interpreted by libnvdimm before passed on to papr_scm. Important * member fields used are: * 'nd_family' : (In) NVDIMM_FAMILY_PAPR_SCM * 'nd_size_in' : (In) PDSM-HEADER + PDSM-IN-PAYLOAD (usually 0) * 'nd_size_out' : (In) PDSM-HEADER + PDSM-RETURN-PAYLOAD * 'nd_command' : (In) One of PAPR_PDSM_XXX * 'nd_fw_size' : (Out) PDSM-HEADER + size of actual payload returned * * PDSM Header: * This is papr-scm specific header that precedes the payload. This is defined * as nd_cmd_pdsm_pkg. Following fields aare available in this header: * * 'cmd_status' : (Out) Errors if any encountered while servicing PDSM. * 'reserved' : Not used, reserved for future and should be set to 0. * 'payload' : A union of all the possible payload structs * * PDSM Payload: * * The layout of the PDSM Payload is defined by various structs shared between * papr_scm and libndctl so that contents of payload can be interpreted. As such * its defined as a union of all possible payload structs as * 'union nd_pdsm_payload'. Based on the value of 'nd_cmd_pkg.nd_command' * appropriate member of the union is accessed. */ /* Max payload size that we can handle */ #define ND_PDSM_PAYLOAD_MAX_SIZE 184 /* Max payload size that we can handle */ #define ND_PDSM_HDR_SIZE \ (sizeof(struct nd_pkg_pdsm) - ND_PDSM_PAYLOAD_MAX_SIZE) /* Various nvdimm health indicators */ #define PAPR_PDSM_DIMM_HEALTHY 0 #define PAPR_PDSM_DIMM_UNHEALTHY 1 #define PAPR_PDSM_DIMM_CRITICAL 2 #define PAPR_PDSM_DIMM_FATAL 3 /* struct nd_papr_pdsm_health.extension_flags field flags */ /* Indicate that the 'dimm_fuel_gauge' field is valid */ #define PDSM_DIMM_HEALTH_RUN_GAUGE_VALID 1 /* Indicate that the 'dimm_dsc' field is valid */ #define PDSM_DIMM_DSC_VALID 2 /* * Struct exchanged between kernel & ndctl in for PAPR_PDSM_HEALTH * Various flags indicate the health status of the dimm. * * extension_flags : Any extension fields present in the struct. * dimm_unarmed : Dimm not armed. So contents wont persist. * dimm_bad_shutdown : Previous shutdown did not persist contents. * dimm_bad_restore : Contents from previous shutdown werent restored. * dimm_scrubbed : Contents of the dimm have been scrubbed. * dimm_locked : Contents of the dimm cant be modified until CEC reboot * dimm_encrypted : Contents of dimm are encrypted. * dimm_health : Dimm health indicator. One of PAPR_PDSM_DIMM_XXXX * dimm_fuel_gauge : Life remaining of DIMM as a percentage from 0-100 */ struct nd_papr_pdsm_health { union { struct { __u32 extension_flags; __u8 dimm_unarmed; __u8 dimm_bad_shutdown; __u8 dimm_bad_restore; __u8 dimm_scrubbed; __u8 dimm_locked; __u8 dimm_encrypted; __u16 dimm_health; /* Extension flag PDSM_DIMM_HEALTH_RUN_GAUGE_VALID */ __u16 dimm_fuel_gauge; /* Extension flag PDSM_DIMM_DSC_VALID */ __u64 dimm_dsc; }; __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE]; }; }; /* * Methods to be embedded in ND_CMD_CALL request. These are sent to the kernel * via 'nd_cmd_pkg.nd_command' member of the ioctl struct */ enum papr_pdsm { PAPR_PDSM_MIN = 0x0, PAPR_PDSM_HEALTH, PAPR_PDSM_MAX, }; /* Maximal union that can hold all possible payload types */ union nd_pdsm_payload { struct nd_papr_pdsm_health health; __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE]; } __packed; /* * PDSM-header + payload expected with ND_CMD_CALL ioctl from libnvdimm * Valid member of union 'payload' is identified via 'nd_cmd_pkg.nd_command' * that should always precede this struct when sent to papr_scm via CMD_CALL * interface. */ struct nd_pkg_pdsm { __s32 cmd_status; /* Out: Sub-cmd status returned back */ __u16 reserved[2]; /* Ignored and to be set as '0' */ union nd_pdsm_payload payload; } __packed; #endif /* _UAPI_ASM_POWERPC_PAPR_PDSM_H_ */
Save
cmd:
run