| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * STHYI related flags and structure definitions. |
| * |
| * Copyright 2018 IBM Corp. |
| * |
| * Authors: |
| * Janosch Frank <frankja@linux.vnet.ibm.com> |
| */ |
| #ifndef S390X_STHYI_H |
| #define S390X_STHYI_H |
| |
| #include <stdint.h> |
| |
| enum sthyi_rtn_code { |
| CODE_UNSUPP = 0x04, /* with cc = 3 */ |
| CODE_SUCCES = 0x00, /* with cc = 0 */ |
| }; |
| |
| enum sthyi_hdr_flags { |
| HDR_PERF_UNAV = 0x80, |
| HDR_STSI_UNAV = 0x40, |
| HDR_STACK_INCM = 0x20, |
| HDR_NOT_LPAR = 0x10, |
| }; |
| |
| enum sthyi_mach_validity { |
| MACH_CNT_VLD = 0x80, |
| MACH_ID_VLD = 0x40, |
| MACH_NAME_VLD = 0x20, |
| }; |
| |
| enum sthyi_par_flag { |
| PART_MT_EN = 0x80, |
| }; |
| |
| enum sthyi_par_validity { |
| PART_CNT_VLD = 0x80, |
| PART_WGHT_CAP = 0x40, |
| PART_ABS_CAP = 0x20, |
| PART_STSI_SUC = 0x10, |
| PART_GRP_VLD = 0x08, |
| }; |
| |
| struct sthyi_hdr_sctn { |
| uint8_t INFHFLG1; |
| uint8_t INFHFLG2; /* reserved */ |
| uint8_t INFHVAL1; /* reserved */ |
| uint8_t INFHVAL2; /* reserved */ |
| uint8_t reserved[3]; |
| uint8_t INFHYGCT; |
| uint16_t INFHTOTL; |
| uint16_t INFHDLN; |
| uint16_t INFMOFF; |
| uint16_t INFMLEN; |
| uint16_t INFPOFF; |
| uint16_t INFPLEN; |
| uint16_t INFHOFF1; |
| uint16_t INFHLEN1; |
| uint16_t INFGOFF1; |
| uint16_t INFGLEN1; |
| uint16_t INFHOFF2; |
| uint16_t INFHLEN2; |
| uint16_t INFGOFF2; |
| uint16_t INFGLEN2; |
| uint16_t INFHOFF3; |
| uint16_t INFHLEN3; |
| uint16_t INFGOFF3; |
| uint16_t INFGLEN3; |
| uint8_t reserved2[4]; |
| } __attribute__((packed)); |
| |
| struct sthyi_mach_sctn { |
| uint8_t INFMFLG1; /* reserved */ |
| uint8_t INFMFLG2; /* reserved */ |
| uint8_t INFMVAL1; |
| uint8_t INFMVAL2; /* reserved */ |
| uint16_t INFMSCPS; |
| uint16_t INFMDCPS; |
| uint16_t INFMSIFL; |
| uint16_t INFMDIFL; |
| char INFMNAME[8]; |
| char INFMTYPE[4]; |
| char INFMMANU[16]; |
| char INFMSEQ[16]; |
| char INFMPMAN[4]; |
| uint8_t reserved[4]; |
| } __attribute__((packed)); |
| |
| struct sthyi_par_sctn { |
| uint8_t INFPFLG1; |
| uint8_t INFPFLG2; /* reserved */ |
| uint8_t INFPVAL1; |
| uint8_t INFPVAL2; /* reserved */ |
| uint16_t INFPPNUM; |
| uint16_t INFPSCPS; |
| uint16_t INFPDCPS; |
| uint16_t INFPSIFL; |
| uint16_t INFPDIFL; |
| uint16_t reserved; |
| char INFPPNAM[8]; |
| uint32_t INFPWBCP; |
| uint32_t INFPABCP; |
| uint32_t INFPWBIF; |
| uint32_t INFPABIF; |
| } __attribute__((packed)); |
| |
| struct sthyi_par_sctn_ext { |
| uint8_t INFPFLG1; |
| uint8_t INFPFLG2; /* reserved */ |
| uint8_t INFPVAL1; |
| uint8_t INFPVAL2; /* reserved */ |
| uint16_t INFPPNUM; |
| uint16_t INFPSCPS; |
| uint16_t INFPDCPS; |
| uint16_t INFPSIFL; |
| uint16_t INFPDIFL; |
| uint16_t reserved; |
| char INFPPNAM[8]; |
| uint32_t INFPWBCP; |
| uint32_t INFPABCP; |
| uint32_t INFPWBIF; |
| uint32_t INFPABIF; |
| char INFPLGNM[8]; |
| uint32_t INFPLGCP; |
| uint32_t INFPLGIF; |
| } __attribute__((packed)); |
| |
| #endif |