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_CXL_MEM_H_ 8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_CXL_MEM_H_ 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands) 11*8d67ca89SAndroid Build Coastguard Worker #define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command) 12*8d67ca89SAndroid Build Coastguard Worker #define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___DEPRECATED(GET_POISON, "Get Poison List"), ___DEPRECATED(INJECT_POISON, "Inject Poison"), ___DEPRECATED(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___DEPRECATED(SCAN_MEDIA, "Scan Media"), ___DEPRECATED(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(GET_TIMESTAMP, "Get Timestamp"), ___C(GET_LOG_CAPS, "Get Log Capabilities"), ___C(CLEAR_LOG, "Clear Log"), ___C(GET_SUP_LOG_SUBLIST, "Get Supported Logs Sub-List"), ___C(MAX, "invalid / last command") 13*8d67ca89SAndroid Build Coastguard Worker #define ___C(a,b) CXL_MEM_COMMAND_ID_ ##a 14*8d67ca89SAndroid Build Coastguard Worker #define ___DEPRECATED(a,b) CXL_MEM_DEPRECATED_ID_ ##a 15*8d67ca89SAndroid Build Coastguard Worker enum { 16*8d67ca89SAndroid Build Coastguard Worker CXL_CMDS 17*8d67ca89SAndroid Build Coastguard Worker }; 18*8d67ca89SAndroid Build Coastguard Worker #undef ___C 19*8d67ca89SAndroid Build Coastguard Worker #undef ___DEPRECATED 20*8d67ca89SAndroid Build Coastguard Worker #define ___C(a,b) { b } 21*8d67ca89SAndroid Build Coastguard Worker #define ___DEPRECATED(a,b) { "Deprecated " b } 22*8d67ca89SAndroid Build Coastguard Worker static const struct { 23*8d67ca89SAndroid Build Coastguard Worker const char * name; 24*8d67ca89SAndroid Build Coastguard Worker } cxl_command_names[] __attribute__((__unused__)) = { 25*8d67ca89SAndroid Build Coastguard Worker CXL_CMDS 26*8d67ca89SAndroid Build Coastguard Worker }; 27*8d67ca89SAndroid Build Coastguard Worker #undef ___C 28*8d67ca89SAndroid Build Coastguard Worker #undef ___DEPRECATED 29*8d67ca89SAndroid Build Coastguard Worker #define ___C(a,b) (0) 30*8d67ca89SAndroid Build Coastguard Worker #define ___DEPRECATED(a,b) (1) 31*8d67ca89SAndroid Build Coastguard Worker #undef ___C 32*8d67ca89SAndroid Build Coastguard Worker #undef ___DEPRECATED 33*8d67ca89SAndroid Build Coastguard Worker struct cxl_command_info { 34*8d67ca89SAndroid Build Coastguard Worker __u32 id; 35*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 36*8d67ca89SAndroid Build Coastguard Worker #define CXL_MEM_COMMAND_FLAG_MASK GENMASK(1, 0) 37*8d67ca89SAndroid Build Coastguard Worker #define CXL_MEM_COMMAND_FLAG_ENABLED BIT(0) 38*8d67ca89SAndroid Build Coastguard Worker #define CXL_MEM_COMMAND_FLAG_EXCLUSIVE BIT(1) 39*8d67ca89SAndroid Build Coastguard Worker __u32 size_in; 40*8d67ca89SAndroid Build Coastguard Worker __u32 size_out; 41*8d67ca89SAndroid Build Coastguard Worker }; 42*8d67ca89SAndroid Build Coastguard Worker struct cxl_mem_query_commands { 43*8d67ca89SAndroid Build Coastguard Worker __u32 n_commands; 44*8d67ca89SAndroid Build Coastguard Worker __u32 rsvd; 45*8d67ca89SAndroid Build Coastguard Worker struct cxl_command_info commands[]; 46*8d67ca89SAndroid Build Coastguard Worker }; 47*8d67ca89SAndroid Build Coastguard Worker struct cxl_send_command { 48*8d67ca89SAndroid Build Coastguard Worker __u32 id; 49*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 50*8d67ca89SAndroid Build Coastguard Worker union { 51*8d67ca89SAndroid Build Coastguard Worker struct { 52*8d67ca89SAndroid Build Coastguard Worker __u16 opcode; 53*8d67ca89SAndroid Build Coastguard Worker __u16 rsvd; 54*8d67ca89SAndroid Build Coastguard Worker } raw; 55*8d67ca89SAndroid Build Coastguard Worker __u32 rsvd; 56*8d67ca89SAndroid Build Coastguard Worker }; 57*8d67ca89SAndroid Build Coastguard Worker __u32 retval; 58*8d67ca89SAndroid Build Coastguard Worker struct { 59*8d67ca89SAndroid Build Coastguard Worker __u32 size; 60*8d67ca89SAndroid Build Coastguard Worker __u32 rsvd; 61*8d67ca89SAndroid Build Coastguard Worker __u64 payload; 62*8d67ca89SAndroid Build Coastguard Worker } in; 63*8d67ca89SAndroid Build Coastguard Worker struct { 64*8d67ca89SAndroid Build Coastguard Worker __u32 size; 65*8d67ca89SAndroid Build Coastguard Worker __u32 rsvd; 66*8d67ca89SAndroid Build Coastguard Worker __u64 payload; 67*8d67ca89SAndroid Build Coastguard Worker } out; 68*8d67ca89SAndroid Build Coastguard Worker }; 69*8d67ca89SAndroid Build Coastguard Worker #endif 70