Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
a755a45d JG |
2 | #ifndef _ASM_S390_CLP_H |
3 | #define _ASM_S390_CLP_H | |
4 | ||
5 | /* CLP common request & response block size */ | |
add09d61 | 6 | #define CLP_BLK_SIZE PAGE_SIZE |
a755a45d | 7 | |
988b86e6 MS |
8 | #define CLP_LPS_BASE 0 |
9 | #define CLP_LPS_PCI 2 | |
10 | ||
a755a45d JG |
11 | struct clp_req_hdr { |
12 | u16 len; | |
13 | u16 cmd; | |
988b86e6 MS |
14 | u32 fmt : 4; |
15 | u32 reserved1 : 28; | |
16 | u64 reserved2; | |
a755a45d JG |
17 | } __packed; |
18 | ||
19 | struct clp_rsp_hdr { | |
20 | u16 len; | |
21 | u16 rsp; | |
988b86e6 MS |
22 | u32 fmt : 4; |
23 | u32 reserved1 : 28; | |
24 | u64 reserved2; | |
a755a45d JG |
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 | ||
988b86e6 MS |
38 | /* Store logical-processor characteristics request */ |
39 | struct clp_req_slpc { | |
40 | struct clp_req_hdr hdr; | |
41 | } __packed; | |
42 | ||
43 | struct 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 | ||
51 | struct clp_req_rsp_slpc { | |
52 | struct clp_req_slpc request; | |
53 | struct clp_rsp_slpc response; | |
54 | } __packed; | |
55 | ||
a755a45d | 56 | #endif |