1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ASM_S390_CLP_H 3 #define _ASM_S390_CLP_H 4 5 /* CLP common request & response block size */ 6 #define CLP_BLK_SIZE PAGE_SIZE 7 8 /* Call Logical Processor - Command Code */ 9 #define CLP_SLPC 0x0001 10 11 #define CLP_LPS_BASE 0 12 #define CLP_LPS_PCI 2 13 14 struct clp_req_hdr { 15 u16 len; 16 u16 cmd; 17 u32 fmt : 4; 18 u32 reserved1 : 28; 19 u64 reserved2; 20 } __packed; 21 22 struct clp_rsp_hdr { 23 u16 len; 24 u16 rsp; 25 u32 fmt : 4; 26 u32 reserved1 : 28; 27 u64 reserved2; 28 } __packed; 29 30 /* CLP Response Codes */ 31 #define CLP_RC_OK 0x0010 /* Command request successfully */ 32 #define CLP_RC_CMD 0x0020 /* Command code not recognized */ 33 #define CLP_RC_PERM 0x0030 /* Command not authorized */ 34 #define CLP_RC_FMT 0x0040 /* Invalid command request format */ 35 #define CLP_RC_LEN 0x0050 /* Invalid command request length */ 36 #define CLP_RC_8K 0x0060 /* Command requires 8K LPCB */ 37 #define CLP_RC_RESNOT0 0x0070 /* Reserved field not zero */ 38 #define CLP_RC_NODATA 0x0080 /* No data available */ 39 #define CLP_RC_FC_UNKNOWN 0x0100 /* Function code not recognized */ 40 41 /* Store logical-processor characteristics request */ 42 struct clp_req_slpc { 43 struct clp_req_hdr hdr; 44 } __packed; 45 46 struct clp_rsp_slpc { 47 struct clp_rsp_hdr hdr; 48 u32 reserved2[4]; 49 u32 lpif[8]; 50 u32 reserved3[8]; 51 u32 lpic[8]; 52 } __packed; 53 54 struct clp_req_rsp_slpc { 55 struct clp_req_slpc request; 56 struct clp_rsp_slpc response; 57 } __packed; 58 59 #endif 60