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