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