xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/papr_pdsm.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
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