1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_ASM_POWERPC_PAPR_PDSM_H_ 8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_ASM_POWERPC_PAPR_PDSM_H_ 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <linux/ndctl.h> 11*8d67ca89SAndroid Build Coastguard Worker #define ND_PDSM_PAYLOAD_MAX_SIZE 184 12*8d67ca89SAndroid Build Coastguard Worker #define ND_PDSM_HDR_SIZE (sizeof(struct nd_pkg_pdsm) - ND_PDSM_PAYLOAD_MAX_SIZE) 13*8d67ca89SAndroid Build Coastguard Worker #define PAPR_PDSM_DIMM_HEALTHY 0 14*8d67ca89SAndroid Build Coastguard Worker #define PAPR_PDSM_DIMM_UNHEALTHY 1 15*8d67ca89SAndroid Build Coastguard Worker #define PAPR_PDSM_DIMM_CRITICAL 2 16*8d67ca89SAndroid Build Coastguard Worker #define PAPR_PDSM_DIMM_FATAL 3 17*8d67ca89SAndroid Build Coastguard Worker #define PDSM_DIMM_HEALTH_RUN_GAUGE_VALID 1 18*8d67ca89SAndroid Build Coastguard Worker #define PDSM_DIMM_DSC_VALID 2 19*8d67ca89SAndroid Build Coastguard Worker struct nd_papr_pdsm_health { 20*8d67ca89SAndroid Build Coastguard Worker union { 21*8d67ca89SAndroid Build Coastguard Worker struct { 22*8d67ca89SAndroid Build Coastguard Worker __u32 extension_flags; 23*8d67ca89SAndroid Build Coastguard Worker __u8 dimm_unarmed; 24*8d67ca89SAndroid Build Coastguard Worker __u8 dimm_bad_shutdown; 25*8d67ca89SAndroid Build Coastguard Worker __u8 dimm_bad_restore; 26*8d67ca89SAndroid Build Coastguard Worker __u8 dimm_scrubbed; 27*8d67ca89SAndroid Build Coastguard Worker __u8 dimm_locked; 28*8d67ca89SAndroid Build Coastguard Worker __u8 dimm_encrypted; 29*8d67ca89SAndroid Build Coastguard Worker __u16 dimm_health; 30*8d67ca89SAndroid Build Coastguard Worker __u16 dimm_fuel_gauge; 31*8d67ca89SAndroid Build Coastguard Worker __u64 dimm_dsc; 32*8d67ca89SAndroid Build Coastguard Worker }; 33*8d67ca89SAndroid Build Coastguard Worker __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE]; 34*8d67ca89SAndroid Build Coastguard Worker }; 35*8d67ca89SAndroid Build Coastguard Worker }; 36*8d67ca89SAndroid Build Coastguard Worker #define PDSM_SMART_INJECT_HEALTH_FATAL (1 << 0) 37*8d67ca89SAndroid Build Coastguard Worker #define PDSM_SMART_INJECT_BAD_SHUTDOWN (1 << 1) 38*8d67ca89SAndroid Build Coastguard Worker struct nd_papr_pdsm_smart_inject { 39*8d67ca89SAndroid Build Coastguard Worker union { 40*8d67ca89SAndroid Build Coastguard Worker struct { 41*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 42*8d67ca89SAndroid Build Coastguard Worker __u8 fatal_enable; 43*8d67ca89SAndroid Build Coastguard Worker __u8 unsafe_shutdown_enable; 44*8d67ca89SAndroid Build Coastguard Worker }; 45*8d67ca89SAndroid Build Coastguard Worker __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE]; 46*8d67ca89SAndroid Build Coastguard Worker }; 47*8d67ca89SAndroid Build Coastguard Worker }; 48*8d67ca89SAndroid Build Coastguard Worker enum papr_pdsm { 49*8d67ca89SAndroid Build Coastguard Worker PAPR_PDSM_MIN = 0x0, 50*8d67ca89SAndroid Build Coastguard Worker PAPR_PDSM_HEALTH, 51*8d67ca89SAndroid Build Coastguard Worker PAPR_PDSM_SMART_INJECT, 52*8d67ca89SAndroid Build Coastguard Worker PAPR_PDSM_MAX, 53*8d67ca89SAndroid Build Coastguard Worker }; 54*8d67ca89SAndroid Build Coastguard Worker union nd_pdsm_payload { 55*8d67ca89SAndroid Build Coastguard Worker struct nd_papr_pdsm_health health; 56*8d67ca89SAndroid Build Coastguard Worker struct nd_papr_pdsm_smart_inject smart_inject; 57*8d67ca89SAndroid Build Coastguard Worker __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE]; 58*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__)); 59*8d67ca89SAndroid Build Coastguard Worker struct nd_pkg_pdsm { 60*8d67ca89SAndroid Build Coastguard Worker __s32 cmd_status; 61*8d67ca89SAndroid Build Coastguard Worker __u16 reserved[2]; 62*8d67ca89SAndroid Build Coastguard Worker union nd_pdsm_payload payload; 63*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__)); 64*8d67ca89SAndroid Build Coastguard Worker #endif 65