1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * STHYI related flags and structure definitions. 4 * 5 * Copyright 2018 IBM Corp. 6 * 7 * Authors: 8 * Janosch Frank <frankja@linux.vnet.ibm.com> 9 */ 10 #ifndef S390X_STHYI_H 11 #define S390X_STHYI_H 12 13 #include <stdint.h> 14 15 enum sthyi_rtn_code { 16 CODE_UNSUPP = 0x04, /* with cc = 3 */ 17 CODE_SUCCES = 0x00, /* with cc = 0 */ 18 }; 19 20 enum sthyi_hdr_flags { 21 HDR_PERF_UNAV = 0x80, 22 HDR_STSI_UNAV = 0x40, 23 HDR_STACK_INCM = 0x20, 24 HDR_NOT_LPAR = 0x10, 25 }; 26 27 enum sthyi_mach_validity { 28 MACH_CNT_VLD = 0x80, 29 MACH_ID_VLD = 0x40, 30 MACH_NAME_VLD = 0x20, 31 }; 32 33 enum sthyi_par_flag { 34 PART_MT_EN = 0x80, 35 }; 36 37 enum sthyi_par_validity { 38 PART_CNT_VLD = 0x80, 39 PART_WGHT_CAP = 0x40, 40 PART_ABS_CAP = 0x20, 41 PART_STSI_SUC = 0x10, 42 PART_GRP_VLD = 0x08, 43 }; 44 45 struct sthyi_hdr_sctn { 46 uint8_t INFHFLG1; 47 uint8_t INFHFLG2; /* reserved */ 48 uint8_t INFHVAL1; /* reserved */ 49 uint8_t INFHVAL2; /* reserved */ 50 uint8_t reserved[3]; 51 uint8_t INFHYGCT; 52 uint16_t INFHTOTL; 53 uint16_t INFHDLN; 54 uint16_t INFMOFF; 55 uint16_t INFMLEN; 56 uint16_t INFPOFF; 57 uint16_t INFPLEN; 58 uint16_t INFHOFF1; 59 uint16_t INFHLEN1; 60 uint16_t INFGOFF1; 61 uint16_t INFGLEN1; 62 uint16_t INFHOFF2; 63 uint16_t INFHLEN2; 64 uint16_t INFGOFF2; 65 uint16_t INFGLEN2; 66 uint16_t INFHOFF3; 67 uint16_t INFHLEN3; 68 uint16_t INFGOFF3; 69 uint16_t INFGLEN3; 70 uint8_t reserved2[4]; 71 } __attribute__((packed)); 72 73 struct sthyi_mach_sctn { 74 uint8_t INFMFLG1; /* reserved */ 75 uint8_t INFMFLG2; /* reserved */ 76 uint8_t INFMVAL1; 77 uint8_t INFMVAL2; /* reserved */ 78 uint16_t INFMSCPS; 79 uint16_t INFMDCPS; 80 uint16_t INFMSIFL; 81 uint16_t INFMDIFL; 82 char INFMNAME[8]; 83 char INFMTYPE[4]; 84 char INFMMANU[16]; 85 char INFMSEQ[16]; 86 char INFMPMAN[4]; 87 uint8_t reserved[4]; 88 } __attribute__((packed)); 89 90 struct sthyi_par_sctn { 91 uint8_t INFPFLG1; 92 uint8_t INFPFLG2; /* reserved */ 93 uint8_t INFPVAL1; 94 uint8_t INFPVAL2; /* reserved */ 95 uint16_t INFPPNUM; 96 uint16_t INFPSCPS; 97 uint16_t INFPDCPS; 98 uint16_t INFPSIFL; 99 uint16_t INFPDIFL; 100 uint16_t reserved; 101 char INFPPNAM[8]; 102 uint32_t INFPWBCP; 103 uint32_t INFPABCP; 104 uint32_t INFPWBIF; 105 uint32_t INFPABIF; 106 } __attribute__((packed)); 107 108 struct sthyi_par_sctn_ext { 109 uint8_t INFPFLG1; 110 uint8_t INFPFLG2; /* reserved */ 111 uint8_t INFPVAL1; 112 uint8_t INFPVAL2; /* reserved */ 113 uint16_t INFPPNUM; 114 uint16_t INFPSCPS; 115 uint16_t INFPDCPS; 116 uint16_t INFPSIFL; 117 uint16_t INFPDIFL; 118 uint16_t reserved; 119 char INFPPNAM[8]; 120 uint32_t INFPWBCP; 121 uint32_t INFPABCP; 122 uint32_t INFPWBIF; 123 uint32_t INFPABIF; 124 char INFPLGNM[8]; 125 uint32_t INFPLGCP; 126 uint32_t INFPLGIF; 127 } __attribute__((packed)); 128 129 #endif 130