signal_linux_ppc64le.go (132732B)
1 // Code generated by 'ccgo signal/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o signal/signal_linux_ppc64le.go -pkgname signal', DO NOT EDIT. 2 3 package signal 4 5 import ( 6 "math" 7 "reflect" 8 "sync/atomic" 9 "unsafe" 10 ) 11 12 var _ = math.Pi 13 var _ reflect.Kind 14 var _ atomic.Value 15 var _ unsafe.Pointer 16 17 const ( 18 AT_DCACHEBSIZE = 19 // auxvec.h:9:1: 19 AT_ICACHEBSIZE = 20 // auxvec.h:10:1: 20 AT_IGNOREPPC = 22 // auxvec.h:13:1: 21 AT_L1D_CACHEGEOMETRY = 43 // auxvec.h:45:1: 22 AT_L1D_CACHESIZE = 42 // auxvec.h:44:1: 23 AT_L1I_CACHEGEOMETRY = 41 // auxvec.h:43:1: 24 AT_L1I_CACHESIZE = 40 // auxvec.h:42:1: 25 AT_L2_CACHEGEOMETRY = 45 // auxvec.h:47:1: 26 AT_L2_CACHESIZE = 44 // auxvec.h:46:1: 27 AT_L3_CACHEGEOMETRY = 47 // auxvec.h:49:1: 28 AT_L3_CACHESIZE = 46 // auxvec.h:48:1: 29 AT_SYSINFO_EHDR = 33 // auxvec.h:18:1: 30 AT_UCACHEBSIZE = 21 // auxvec.h:11:1: 31 AT_VECTOR_SIZE_ARCH = 14 // auxvec.h:51:1: 32 ELF_NEBB = 3 // elf.h:98:1: 33 ELF_NFPREG = 33 // elf.h:94:1: 34 ELF_NGREG = 48 // elf.h:93:1: 35 ELF_NPKEY = 3 // elf.h:100:1: 36 ELF_NPMU = 5 // elf.h:99:1: 37 ELF_NTMSPRREG = 3 // elf.h:97:1: 38 ELF_NVMX = 34 // elf.h:95:1: 39 ELF_NVRREG = 34 // elf.h:114:1: 40 ELF_NVRREG32 = 33 // elf.h:113:1: 41 ELF_NVSRHALFREG = 32 // elf.h:115:1: 42 ELF_NVSX = 32 // elf.h:96:1: 43 MINSIGSTKSZ = 4096 // sigstack.h:27:1: 44 NFPREG = 33 // ucontext.h:89:1: 45 NGREG = 48 // ucontext.h:88:1: 46 NSIG = 65 // signal.h:181:1: 47 NVRREG = 34 // ucontext.h:90:1: 48 PPC_BREAKPOINT_CONDITION_AND = 0x00000001 // ptrace.h:259:1: 49 PPC_BREAKPOINT_CONDITION_AND_OR = 0x00000003 // ptrace.h:262:1: 50 PPC_BREAKPOINT_CONDITION_BE_ALL = 0x00ff0000 // ptrace.h:263:1: 51 PPC_BREAKPOINT_CONDITION_BE_SHIFT = 16 // ptrace.h:264:1: 52 PPC_BREAKPOINT_CONDITION_EXACT = 1 // ptrace.h:260:1: 53 PPC_BREAKPOINT_CONDITION_MODE = 0x00000003 // ptrace.h:257:1: 54 PPC_BREAKPOINT_CONDITION_NONE = 0x00000000 // ptrace.h:258:1: 55 PPC_BREAKPOINT_CONDITION_OR = 0x00000002 // ptrace.h:261:1: 56 PPC_BREAKPOINT_MODE_EXACT = 0x00000000 // ptrace.h:249:1: 57 PPC_BREAKPOINT_MODE_MASK = 0x00000003 // ptrace.h:252:1: 58 PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE = 0x00000002 // ptrace.h:251:1: 59 PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE = 0x00000001 // ptrace.h:250:1: 60 PPC_BREAKPOINT_TRIGGER_EXECUTE = 0x00000001 // ptrace.h:240:1: 61 PPC_BREAKPOINT_TRIGGER_READ = 0x00000002 // ptrace.h:241:1: 62 PPC_BREAKPOINT_TRIGGER_RW = 6 // ptrace.h:243:1: 63 PPC_BREAKPOINT_TRIGGER_WRITE = 0x00000004 // ptrace.h:242:1: 64 PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 = 0x0000000000000020 // ptrace.h:221:1: 65 PPC_DEBUG_FEATURE_DATA_BP_DAWR = 0x0000000000000010 // ptrace.h:220:1: 66 PPC_DEBUG_FEATURE_DATA_BP_MASK = 0x0000000000000008 // ptrace.h:219:1: 67 PPC_DEBUG_FEATURE_DATA_BP_RANGE = 0x0000000000000004 // ptrace.h:218:1: 68 PPC_DEBUG_FEATURE_INSN_BP_MASK = 0x0000000000000002 // ptrace.h:217:1: 69 PPC_DEBUG_FEATURE_INSN_BP_RANGE = 0x0000000000000001 // ptrace.h:216:1: 70 PPC_FEATURE2_ARCH_2_07 = 0x80000000 // cputable.h:40:1: 71 PPC_FEATURE2_ARCH_3_00 = 0x00800000 // cputable.h:48:1: 72 PPC_FEATURE2_ARCH_3_1 = 0x00040000 // cputable.h:53:1: 73 PPC_FEATURE2_DARN = 0x00200000 // cputable.h:50:1: 74 PPC_FEATURE2_DSCR = 0x20000000 // cputable.h:42:1: 75 PPC_FEATURE2_EBB = 0x10000000 // cputable.h:43:1: 76 PPC_FEATURE2_HAS_IEEE128 = 0x00400000 // cputable.h:49:1: 77 PPC_FEATURE2_HTM = 0x40000000 // cputable.h:41:1: 78 PPC_FEATURE2_HTM_NOSC = 0x01000000 // cputable.h:47:1: 79 PPC_FEATURE2_HTM_NO_SUSPEND = 0x00080000 // cputable.h:52:1: 80 PPC_FEATURE2_ISEL = 0x08000000 // cputable.h:44:1: 81 PPC_FEATURE2_MMA = 0x00020000 // cputable.h:54:1: 82 PPC_FEATURE2_SCV = 0x00100000 // cputable.h:51:1: 83 PPC_FEATURE2_TAR = 0x04000000 // cputable.h:45:1: 84 PPC_FEATURE2_VEC_CRYPTO = 0x02000000 // cputable.h:46:1: 85 PPC_FEATURE_32 = 0x80000000 // cputable.h:6:1: 86 PPC_FEATURE_601_INSTR = 0x20000000 // cputable.h:8:1: 87 PPC_FEATURE_64 = 0x40000000 // cputable.h:7:1: 88 PPC_FEATURE_ARCH_2_05 = 0x00001000 // cputable.h:25:1: 89 PPC_FEATURE_ARCH_2_06 = 0x00000100 // cputable.h:29:1: 90 PPC_FEATURE_BOOKE = 0x00008000 // cputable.h:22:1: 91 PPC_FEATURE_CELL = 0x00010000 // cputable.h:21:1: 92 PPC_FEATURE_HAS_4xxMAC = 0x02000000 // cputable.h:12:1: 93 PPC_FEATURE_HAS_ALTIVEC = 0x10000000 // cputable.h:9:1: 94 PPC_FEATURE_HAS_DFP = 0x00000400 // cputable.h:27:1: 95 PPC_FEATURE_HAS_EFP_DOUBLE = 0x00200000 // cputable.h:16:1: 96 PPC_FEATURE_HAS_EFP_SINGLE = 0x00400000 // cputable.h:15:1: 97 PPC_FEATURE_HAS_FPU = 0x08000000 // cputable.h:10:1: 98 PPC_FEATURE_HAS_MMU = 0x04000000 // cputable.h:11:1: 99 PPC_FEATURE_HAS_SPE = 0x00800000 // cputable.h:14:1: 100 PPC_FEATURE_HAS_VSX = 0x00000080 // cputable.h:30:1: 101 PPC_FEATURE_ICACHE_SNOOP = 0x00002000 // cputable.h:24:1: 102 PPC_FEATURE_NO_TB = 0x00100000 // cputable.h:17:1: 103 PPC_FEATURE_PA6T = 0x00000800 // cputable.h:26:1: 104 PPC_FEATURE_POWER4 = 0x00080000 // cputable.h:18:1: 105 PPC_FEATURE_POWER5 = 0x00040000 // cputable.h:19:1: 106 PPC_FEATURE_POWER5_PLUS = 0x00020000 // cputable.h:20:1: 107 PPC_FEATURE_POWER6_EXT = 0x00000200 // cputable.h:28:1: 108 PPC_FEATURE_PPC_LE = 0x00000001 // cputable.h:37:1: 109 PPC_FEATURE_PSERIES_PERFMON_COMPAT = 0x00000040 // cputable.h:32:1: 110 PPC_FEATURE_SMT = 0x00004000 // cputable.h:23:1: 111 PPC_FEATURE_TRUE_LE = 0x00000002 // cputable.h:36:1: 112 PPC_FEATURE_UNIFIED_CACHE = 0x01000000 // cputable.h:13:1: 113 PPC_PTRACE_DELHWDEBUG = 0x87 // ptrace.h:197:1: 114 PPC_PTRACE_GETHWDBGINFO = 0x89 // ptrace.h:195:1: 115 PPC_PTRACE_PEEKDATA_3264 = 0x94 // ptrace.h:187:1: 116 PPC_PTRACE_PEEKTEXT_3264 = 0x95 // ptrace.h:186:1: 117 PPC_PTRACE_PEEKUSR_3264 = 0x91 // ptrace.h:190:1: 118 PPC_PTRACE_POKEDATA_3264 = 0x92 // ptrace.h:189:1: 119 PPC_PTRACE_POKETEXT_3264 = 0x93 // ptrace.h:188:1: 120 PPC_PTRACE_POKEUSR_3264 = 0x90 // ptrace.h:191:1: 121 PPC_PTRACE_SETHWDEBUG = 0x88 // ptrace.h:196:1: 122 PTRACE_GETEVRREGS = 0x14 // ptrace.h:157:1: 123 PTRACE_GETFPREGS = 0xe // ptrace.h:180:1: 124 PTRACE_GETREGS = 0xc // ptrace.h:178:1: 125 PTRACE_GETREGS64 = 0x16 // ptrace.h:182:1: 126 PTRACE_GETVRREGS = 0x12 // ptrace.h:152:1: 127 PTRACE_GETVSRREGS = 0x1b // ptrace.h:161:1: 128 PTRACE_GET_DEBUGREG = 0x19 // ptrace.h:172:1: 129 PTRACE_SETEVRREGS = 0x15 // ptrace.h:158:1: 130 PTRACE_SETFPREGS = 0xf // ptrace.h:181:1: 131 PTRACE_SETREGS = 0xd // ptrace.h:179:1: 132 PTRACE_SETREGS64 = 0x17 // ptrace.h:183:1: 133 PTRACE_SETVRREGS = 0x13 // ptrace.h:153:1: 134 PTRACE_SETVSRREGS = 0x1c // ptrace.h:162:1: 135 PTRACE_SET_DEBUGREG = 0x1a // ptrace.h:173:1: 136 PTRACE_SINGLEBLOCK = 0x100 // ptrace.h:193:1: 137 PTRACE_SYSEMU = 0x1d // ptrace.h:165:1: 138 PTRACE_SYSEMU_SINGLESTEP = 0x1e // ptrace.h:166:1: 139 PT_CCR = 38 // ptrace.h:103:1: 140 PT_CTR = 35 // ptrace.h:100:1: 141 PT_DAR = 41 // ptrace.h:110:1: 142 PT_DSCR = 44 // ptrace.h:113:1: 143 PT_DSISR = 42 // ptrace.h:111:1: 144 PT_FPR0 = 48 // ptrace.h:116:1: 145 PT_FPSCR = 80 // ptrace.h:125:1: 146 PT_LNK = 36 // ptrace.h:101:1: 147 PT_MSR = 33 // ptrace.h:98:1: 148 PT_NIP = 32 // ptrace.h:97:1: 149 PT_ORIG_R3 = 34 // ptrace.h:99:1: 150 PT_R0 = 0 // ptrace.h:64:1: 151 PT_R1 = 1 // ptrace.h:65:1: 152 PT_R10 = 10 // ptrace.h:74:1: 153 PT_R11 = 11 // ptrace.h:75:1: 154 PT_R12 = 12 // ptrace.h:76:1: 155 PT_R13 = 13 // ptrace.h:77:1: 156 PT_R14 = 14 // ptrace.h:78:1: 157 PT_R15 = 15 // ptrace.h:79:1: 158 PT_R16 = 16 // ptrace.h:80:1: 159 PT_R17 = 17 // ptrace.h:81:1: 160 PT_R18 = 18 // ptrace.h:82:1: 161 PT_R19 = 19 // ptrace.h:83:1: 162 PT_R2 = 2 // ptrace.h:66:1: 163 PT_R20 = 20 // ptrace.h:84:1: 164 PT_R21 = 21 // ptrace.h:85:1: 165 PT_R22 = 22 // ptrace.h:86:1: 166 PT_R23 = 23 // ptrace.h:87:1: 167 PT_R24 = 24 // ptrace.h:88:1: 168 PT_R25 = 25 // ptrace.h:89:1: 169 PT_R26 = 26 // ptrace.h:90:1: 170 PT_R27 = 27 // ptrace.h:91:1: 171 PT_R28 = 28 // ptrace.h:92:1: 172 PT_R29 = 29 // ptrace.h:93:1: 173 PT_R3 = 3 // ptrace.h:67:1: 174 PT_R30 = 30 // ptrace.h:94:1: 175 PT_R31 = 31 // ptrace.h:95:1: 176 PT_R4 = 4 // ptrace.h:68:1: 177 PT_R5 = 5 // ptrace.h:69:1: 178 PT_R6 = 6 // ptrace.h:70:1: 179 PT_R7 = 7 // ptrace.h:71:1: 180 PT_R8 = 8 // ptrace.h:72:1: 181 PT_R9 = 9 // ptrace.h:73:1: 182 PT_REGS_COUNT = 44 // ptrace.h:114:1: 183 PT_RESULT = 43 // ptrace.h:112:1: 184 PT_SOFTE = 39 // ptrace.h:107:1: 185 PT_TRAP = 40 // ptrace.h:109:1: 186 PT_VR0 = 82 // ptrace.h:128:1: 187 PT_VRSAVE = 148 // ptrace.h:130:1: 188 PT_VSCR = 147 // ptrace.h:129:1: 189 PT_VSR0 = 150 // ptrace.h:136:1: 190 PT_VSR31 = 212 // ptrace.h:137:1: 191 PT_XER = 37 // ptrace.h:102:1: 192 R_PPC64_ADDR14 = 7 // elf.h:175:1: 193 R_PPC64_ADDR14_BRNTAKEN = 9 // elf.h:177:1: 194 R_PPC64_ADDR14_BRTAKEN = 8 // elf.h:176:1: 195 R_PPC64_ADDR16 = 3 // elf.h:171:1: 196 R_PPC64_ADDR16_DS = 56 // elf.h:225:1: 197 R_PPC64_ADDR16_HA = 6 // elf.h:174:1: 198 R_PPC64_ADDR16_HI = 5 // elf.h:173:1: 199 R_PPC64_ADDR16_HIGHER = 39 // elf.h:207:1: 200 R_PPC64_ADDR16_HIGHERA = 40 // elf.h:208:1: 201 R_PPC64_ADDR16_HIGHEST = 41 // elf.h:209:1: 202 R_PPC64_ADDR16_HIGHESTA = 42 // elf.h:210:1: 203 R_PPC64_ADDR16_LO = 4 // elf.h:172:1: 204 R_PPC64_ADDR16_LO_DS = 57 // elf.h:226:1: 205 R_PPC64_ADDR24 = 2 // elf.h:170:1: 206 R_PPC64_ADDR30 = 37 // elf.h:205:1: 207 R_PPC64_ADDR32 = 1 // elf.h:169:1: 208 R_PPC64_ADDR64 = 38 // elf.h:206:1: 209 R_PPC64_COPY = 19 // elf.h:187:1: 210 R_PPC64_DTPMOD64 = 68 // elf.h:239:1: 211 R_PPC64_DTPREL16 = 74 // elf.h:245:1: 212 R_PPC64_DTPREL16_DS = 101 // elf.h:272:1: 213 R_PPC64_DTPREL16_HA = 77 // elf.h:248:1: 214 R_PPC64_DTPREL16_HI = 76 // elf.h:247:1: 215 R_PPC64_DTPREL16_HIGHER = 103 // elf.h:274:1: 216 R_PPC64_DTPREL16_HIGHERA = 104 // elf.h:275:1: 217 R_PPC64_DTPREL16_HIGHEST = 105 // elf.h:276:1: 218 R_PPC64_DTPREL16_HIGHESTA = 106 // elf.h:277:1: 219 R_PPC64_DTPREL16_LO = 75 // elf.h:246:1: 220 R_PPC64_DTPREL16_LO_DS = 102 // elf.h:273:1: 221 R_PPC64_DTPREL64 = 78 // elf.h:249:1: 222 R_PPC64_ENTRY = 118 // elf.h:282:1: 223 R_PPC64_GLOB_DAT = 20 // elf.h:188:1: 224 R_PPC64_GOT16 = 14 // elf.h:182:1: 225 R_PPC64_GOT16_DS = 58 // elf.h:227:1: 226 R_PPC64_GOT16_HA = 17 // elf.h:185:1: 227 R_PPC64_GOT16_HI = 16 // elf.h:184:1: 228 R_PPC64_GOT16_LO = 15 // elf.h:183:1: 229 R_PPC64_GOT16_LO_DS = 59 // elf.h:228:1: 230 R_PPC64_GOT_DTPREL16_DS = 91 // elf.h:262:1: 231 R_PPC64_GOT_DTPREL16_HA = 94 // elf.h:265:1: 232 R_PPC64_GOT_DTPREL16_HI = 93 // elf.h:264:1: 233 R_PPC64_GOT_DTPREL16_LO_DS = 92 // elf.h:263:1: 234 R_PPC64_GOT_TLSGD16 = 79 // elf.h:250:1: 235 R_PPC64_GOT_TLSGD16_HA = 82 // elf.h:253:1: 236 R_PPC64_GOT_TLSGD16_HI = 81 // elf.h:252:1: 237 R_PPC64_GOT_TLSGD16_LO = 80 // elf.h:251:1: 238 R_PPC64_GOT_TLSLD16 = 83 // elf.h:254:1: 239 R_PPC64_GOT_TLSLD16_HA = 86 // elf.h:257:1: 240 R_PPC64_GOT_TLSLD16_HI = 85 // elf.h:256:1: 241 R_PPC64_GOT_TLSLD16_LO = 84 // elf.h:255:1: 242 R_PPC64_GOT_TPREL16_DS = 87 // elf.h:258:1: 243 R_PPC64_GOT_TPREL16_HA = 90 // elf.h:261:1: 244 R_PPC64_GOT_TPREL16_HI = 89 // elf.h:260:1: 245 R_PPC64_GOT_TPREL16_LO_DS = 88 // elf.h:259:1: 246 R_PPC64_JMP_SLOT = 21 // elf.h:189:1: 247 R_PPC64_NONE = 0 // elf.h:168:1: 248 R_PPC64_NUM = 253 // elf.h:290:1: 249 R_PPC64_PLT16_HA = 31 // elf.h:199:1: 250 R_PPC64_PLT16_HI = 30 // elf.h:198:1: 251 R_PPC64_PLT16_LO = 29 // elf.h:197:1: 252 R_PPC64_PLT16_LO_DS = 60 // elf.h:229:1: 253 R_PPC64_PLT32 = 27 // elf.h:195:1: 254 R_PPC64_PLT64 = 45 // elf.h:213:1: 255 R_PPC64_PLTGOT16 = 52 // elf.h:220:1: 256 R_PPC64_PLTGOT16_DS = 65 // elf.h:234:1: 257 R_PPC64_PLTGOT16_HA = 55 // elf.h:223:1: 258 R_PPC64_PLTGOT16_HI = 54 // elf.h:222:1: 259 R_PPC64_PLTGOT16_LO = 53 // elf.h:221:1: 260 R_PPC64_PLTGOT16_LO_DS = 66 // elf.h:235:1: 261 R_PPC64_PLTREL32 = 28 // elf.h:196:1: 262 R_PPC64_PLTREL64 = 46 // elf.h:214:1: 263 R_PPC64_REL14 = 11 // elf.h:179:1: 264 R_PPC64_REL14_BRNTAKEN = 13 // elf.h:181:1: 265 R_PPC64_REL14_BRTAKEN = 12 // elf.h:180:1: 266 R_PPC64_REL16 = 249 // elf.h:284:1: 267 R_PPC64_REL16_HA = 252 // elf.h:287:1: 268 R_PPC64_REL16_HI = 251 // elf.h:286:1: 269 R_PPC64_REL16_LO = 250 // elf.h:285:1: 270 R_PPC64_REL24 = 10 // elf.h:178:1: 271 R_PPC64_REL32 = 26 // elf.h:194:1: 272 R_PPC64_REL64 = 44 // elf.h:212:1: 273 R_PPC64_RELATIVE = 22 // elf.h:190:1: 274 R_PPC64_SECTOFF = 33 // elf.h:201:1: 275 R_PPC64_SECTOFF_DS = 61 // elf.h:230:1: 276 R_PPC64_SECTOFF_HA = 36 // elf.h:204:1: 277 R_PPC64_SECTOFF_HI = 35 // elf.h:203:1: 278 R_PPC64_SECTOFF_LO = 34 // elf.h:202:1: 279 R_PPC64_SECTOFF_LO_DS = 62 // elf.h:231:1: 280 R_PPC64_TLS = 67 // elf.h:238:1: 281 R_PPC64_TLSGD = 107 // elf.h:278:1: 282 R_PPC64_TLSLD = 108 // elf.h:279:1: 283 R_PPC64_TOC = 51 // elf.h:219:1: 284 R_PPC64_TOC16 = 47 // elf.h:215:1: 285 R_PPC64_TOC16_DS = 63 // elf.h:232:1: 286 R_PPC64_TOC16_HA = 50 // elf.h:218:1: 287 R_PPC64_TOC16_HI = 49 // elf.h:217:1: 288 R_PPC64_TOC16_LO = 48 // elf.h:216:1: 289 R_PPC64_TOC16_LO_DS = 64 // elf.h:233:1: 290 R_PPC64_TOCSAVE = 109 // elf.h:280:1: 291 R_PPC64_TPREL16 = 69 // elf.h:240:1: 292 R_PPC64_TPREL16_DS = 95 // elf.h:266:1: 293 R_PPC64_TPREL16_HA = 72 // elf.h:243:1: 294 R_PPC64_TPREL16_HI = 71 // elf.h:242:1: 295 R_PPC64_TPREL16_HIGHER = 97 // elf.h:268:1: 296 R_PPC64_TPREL16_HIGHERA = 98 // elf.h:269:1: 297 R_PPC64_TPREL16_HIGHEST = 99 // elf.h:270:1: 298 R_PPC64_TPREL16_HIGHESTA = 100 // elf.h:271:1: 299 R_PPC64_TPREL16_LO = 70 // elf.h:241:1: 300 R_PPC64_TPREL16_LO_DS = 96 // elf.h:267:1: 301 R_PPC64_TPREL64 = 73 // elf.h:244:1: 302 R_PPC64_UADDR16 = 25 // elf.h:193:1: 303 R_PPC64_UADDR32 = 24 // elf.h:192:1: 304 R_PPC64_UADDR64 = 43 // elf.h:211:1: 305 R_PPC_ADDR14 = 7 // elf.h:28:1: 306 R_PPC_ADDR14_BRNTAKEN = 9 // elf.h:30:1: 307 R_PPC_ADDR14_BRTAKEN = 8 // elf.h:29:1: 308 R_PPC_ADDR16 = 3 // elf.h:24:1: 309 R_PPC_ADDR16_HA = 6 // elf.h:27:1: 310 R_PPC_ADDR16_HI = 5 // elf.h:26:1: 311 R_PPC_ADDR16_LO = 4 // elf.h:25:1: 312 R_PPC_ADDR24 = 2 // elf.h:23:1: 313 R_PPC_ADDR32 = 1 // elf.h:22:1: 314 R_PPC_COPY = 19 // elf.h:40:1: 315 R_PPC_DTPMOD32 = 68 // elf.h:61:1: 316 R_PPC_DTPREL16 = 74 // elf.h:67:1: 317 R_PPC_DTPREL16_HA = 77 // elf.h:70:1: 318 R_PPC_DTPREL16_HI = 76 // elf.h:69:1: 319 R_PPC_DTPREL16_LO = 75 // elf.h:68:1: 320 R_PPC_DTPREL32 = 78 // elf.h:71:1: 321 R_PPC_GLOB_DAT = 20 // elf.h:41:1: 322 R_PPC_GOT16 = 14 // elf.h:35:1: 323 R_PPC_GOT16_HA = 17 // elf.h:38:1: 324 R_PPC_GOT16_HI = 16 // elf.h:37:1: 325 R_PPC_GOT16_LO = 15 // elf.h:36:1: 326 R_PPC_GOT_DTPREL16 = 91 // elf.h:84:1: 327 R_PPC_GOT_DTPREL16_HA = 94 // elf.h:87:1: 328 R_PPC_GOT_DTPREL16_HI = 93 // elf.h:86:1: 329 R_PPC_GOT_DTPREL16_LO = 92 // elf.h:85:1: 330 R_PPC_GOT_TLSGD16 = 79 // elf.h:72:1: 331 R_PPC_GOT_TLSGD16_HA = 82 // elf.h:75:1: 332 R_PPC_GOT_TLSGD16_HI = 81 // elf.h:74:1: 333 R_PPC_GOT_TLSGD16_LO = 80 // elf.h:73:1: 334 R_PPC_GOT_TLSLD16 = 83 // elf.h:76:1: 335 R_PPC_GOT_TLSLD16_HA = 86 // elf.h:79:1: 336 R_PPC_GOT_TLSLD16_HI = 85 // elf.h:78:1: 337 R_PPC_GOT_TLSLD16_LO = 84 // elf.h:77:1: 338 R_PPC_GOT_TPREL16 = 87 // elf.h:80:1: 339 R_PPC_GOT_TPREL16_HA = 90 // elf.h:83:1: 340 R_PPC_GOT_TPREL16_HI = 89 // elf.h:82:1: 341 R_PPC_GOT_TPREL16_LO = 88 // elf.h:81:1: 342 R_PPC_JMP_SLOT = 21 // elf.h:42:1: 343 R_PPC_LOCAL24PC = 23 // elf.h:44:1: 344 R_PPC_NONE = 0 // elf.h:21:1: 345 R_PPC_NUM = 95 // elf.h:90:1: 346 R_PPC_PLT16_HA = 31 // elf.h:52:1: 347 R_PPC_PLT16_HI = 30 // elf.h:51:1: 348 R_PPC_PLT16_LO = 29 // elf.h:50:1: 349 R_PPC_PLT32 = 27 // elf.h:48:1: 350 R_PPC_PLTREL24 = 18 // elf.h:39:1: 351 R_PPC_PLTREL32 = 28 // elf.h:49:1: 352 R_PPC_REL14 = 11 // elf.h:32:1: 353 R_PPC_REL14_BRNTAKEN = 13 // elf.h:34:1: 354 R_PPC_REL14_BRTAKEN = 12 // elf.h:33:1: 355 R_PPC_REL24 = 10 // elf.h:31:1: 356 R_PPC_REL32 = 26 // elf.h:47:1: 357 R_PPC_RELATIVE = 22 // elf.h:43:1: 358 R_PPC_SDAREL16 = 32 // elf.h:53:1: 359 R_PPC_SECTOFF = 33 // elf.h:54:1: 360 R_PPC_SECTOFF_HA = 36 // elf.h:57:1: 361 R_PPC_SECTOFF_HI = 35 // elf.h:56:1: 362 R_PPC_SECTOFF_LO = 34 // elf.h:55:1: 363 R_PPC_TLS = 67 // elf.h:60:1: 364 R_PPC_TPREL16 = 69 // elf.h:62:1: 365 R_PPC_TPREL16_HA = 72 // elf.h:65:1: 366 R_PPC_TPREL16_HI = 71 // elf.h:64:1: 367 R_PPC_TPREL16_LO = 70 // elf.h:63:1: 368 R_PPC_TPREL32 = 73 // elf.h:66:1: 369 R_PPC_UADDR16 = 25 // elf.h:46:1: 370 R_PPC_UADDR32 = 24 // elf.h:45:1: 371 SA_INTERRUPT = 0x20000000 // sigaction.h:70:1: 372 SA_NOCLDSTOP = 1 // sigaction.h:56:1: 373 SA_NOCLDWAIT = 2 // sigaction.h:57:1: 374 SA_NODEFER = 0x40000000 // sigaction.h:65:1: 375 SA_NOMASK = 1073741824 // sigaction.h:73:1: 376 SA_ONESHOT = 2147483648 // sigaction.h:74:1: 377 SA_ONSTACK = 0x08000000 // sigaction.h:61:1: 378 SA_RESETHAND = 0x80000000 // sigaction.h:67:1: 379 SA_RESTART = 0x10000000 // sigaction.h:64:1: 380 SA_SIGINFO = 4 // sigaction.h:58:1: 381 SA_STACK = 134217728 // sigaction.h:75:1: 382 SIGABRT = 6 // signum-generic.h:50:1: 383 SIGALRM = 14 // signum-generic.h:63:1: 384 SIGBUS = 7 // signum.h:35:1: 385 SIGCHLD = 17 // signum.h:41:1: 386 SIGCLD = 17 // signum-generic.h:88:1: 387 SIGCONT = 18 // signum.h:43:1: 388 SIGFPE = 8 // signum-generic.h:51:1: 389 SIGHUP = 1 // signum-generic.h:56:1: 390 SIGILL = 4 // signum-generic.h:49:1: 391 SIGINT = 2 // signum-generic.h:48:1: 392 SIGIO = 29 // signum-generic.h:86:1: 393 SIGIOT = 6 // signum-generic.h:87:1: 394 SIGKILL = 9 // signum-generic.h:59:1: 395 SIGPIPE = 13 // signum-generic.h:62:1: 396 SIGPOLL = 29 // signum.h:51:1: 397 SIGPROF = 27 // signum-generic.h:77:1: 398 SIGPWR = 30 // signum.h:32:1: 399 SIGQUIT = 3 // signum-generic.h:57:1: 400 SIGSEGV = 11 // signum-generic.h:52:1: 401 SIGSTKFLT = 16 // signum.h:31:1: 402 SIGSTKSZ = 16384 // sigstack.h:30:1: 403 SIGSTOP = 19 // signum.h:45:1: 404 SIGSYS = 31 // signum.h:53:1: 405 SIGTERM = 15 // signum-generic.h:53:1: 406 SIGTRAP = 5 // signum-generic.h:58:1: 407 SIGTSTP = 20 // signum.h:47:1: 408 SIGTTIN = 21 // signum-generic.h:71:1: 409 SIGTTOU = 22 // signum-generic.h:72:1: 410 SIGURG = 23 // signum.h:49:1: 411 SIGUSR1 = 10 // signum.h:37:1: 412 SIGUSR2 = 12 // signum.h:39:1: 413 SIGVTALRM = 26 // signum-generic.h:76:1: 414 SIGWINCH = 28 // signum-generic.h:83:1: 415 SIGXCPU = 24 // signum-generic.h:74:1: 416 SIGXFSZ = 25 // signum-generic.h:75:1: 417 SIG_BLOCK = 0 // sigaction.h:79:1: 418 SIG_SETMASK = 2 // sigaction.h:81:1: 419 SIG_UNBLOCK = 1 // sigaction.h:80:1: 420 X_ARCH_PPC = 1 // <predefined>:198:1: 421 X_ARCH_PPC64 = 1 // <predefined>:402:1: 422 X_ARCH_PPCGR = 1 // <predefined>:15:1: 423 X_ARCH_PPCSQ = 1 // <predefined>:43:1: 424 X_ARCH_PWR4 = 1 // <predefined>:381:1: 425 X_ARCH_PWR5 = 1 // <predefined>:90:1: 426 X_ARCH_PWR5X = 1 // <predefined>:137:1: 427 X_ARCH_PWR6 = 1 // <predefined>:91:1: 428 X_ARCH_PWR7 = 1 // <predefined>:92:1: 429 X_ARCH_PWR8 = 1 // <predefined>:93:1: 430 X_ASM_GENERIC_INT_L64_H = 0 // int-l64.h:10:1: 431 X_ASM_POWERPC_AUXVEC_H = 0 // auxvec.h:3:1: 432 X_ASM_POWERPC_ELF_H = 0 // elf.h:11:1: 433 X_ASM_POWERPC_POSIX_TYPES_H = 0 // posix_types.h:3:1: 434 X_ASM_POWERPC_PTRACE_H = 0 // ptrace.h:25:1: 435 X_ASM_POWERPC_SIGCONTEXT_H = 0 // sigcontext.h:3:1: 436 X_ASM_POWERPC_TYPES_H = 0 // types.h:15:1: 437 X_ATFILE_SOURCE = 1 // features.h:342:1: 438 X_BITS_ENDIANNESS_H = 1 // endianness.h:2:1: 439 X_BITS_ENDIAN_H = 1 // endian.h:20:1: 440 X_BITS_PTHREADTYPES_ARCH_H = 1 // pthreadtypes-arch.h:21:1: 441 X_BITS_PTHREADTYPES_COMMON_H = 1 // pthreadtypes.h:20:1: 442 X_BITS_SIGACTION_H = 1 // sigaction.h:20:1: 443 X_BITS_SIGCONTEXT_H = 1 // sigcontext.h:19:1: 444 X_BITS_SIGEVENT_CONSTS_H = 1 // sigevent-consts.h:20:1: 445 X_BITS_SIGINFO_ARCH_H = 1 // siginfo-arch.h:3:1: 446 X_BITS_SIGINFO_CONSTS_H = 1 // siginfo-consts.h:20:1: 447 X_BITS_SIGNUM_GENERIC_H = 1 // signum-generic.h:20:1: 448 X_BITS_SIGNUM_H = 1 // signum.h:20:1: 449 X_BITS_SIGSTACK_H = 1 // sigstack.h:20:1: 450 X_BITS_SIGTHREAD_H = 1 // sigthread.h:20:1: 451 X_BITS_SS_FLAGS_H = 1 // ss_flags.h:20:1: 452 X_BITS_TIME64_H = 1 // time64.h:24:1: 453 X_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: 454 X_BITS_TYPES_H = 1 // types.h:24:1: 455 X_BSD_SIZE_T_ = 0 // stddef.h:189:1: 456 X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: 457 X_CALL_ELF = 2 // <predefined>:415:1: 458 X_CALL_LINUX = 1 // <predefined>:123:1: 459 X_DEFAULT_SOURCE = 1 // features.h:227:1: 460 X_FEATURES_H = 1 // features.h:19:1: 461 X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: 462 X_GCC_SIZE_T = 0 // stddef.h:195:1: 463 X_LINUX_POSIX_TYPES_H = 0 // posix_types.h:3:1: 464 X_LINUX_TYPES_H = 0 // types.h:3:1: 465 X_LITTLE_ENDIAN = 1 // <predefined>:37:1: 466 X_LP64 = 1 // <predefined>:335:1: 467 X_NSIG = 65 // signum-generic.h:100:1: 468 X_POSIX_C_SOURCE = 200809 // features.h:281:1: 469 X_POSIX_SOURCE = 1 // features.h:279:1: 470 X_RWLOCK_INTERNAL_H = 0 // struct_rwlock.h:21:1: 471 X_SIGNAL_H = 0 // signal.h:23:1: 472 X_SIZET_ = 0 // stddef.h:196:1: 473 X_SIZE_T = 0 // stddef.h:183:1: 474 X_SIZE_T_ = 0 // stddef.h:188:1: 475 X_SIZE_T_DECLARED = 0 // stddef.h:193:1: 476 X_SIZE_T_DEFINED = 0 // stddef.h:191:1: 477 X_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: 478 X_STDC_PREDEF_H = 1 // <predefined>:203:1: 479 X_STRUCT_TIMESPEC = 1 // struct_timespec.h:3:1: 480 X_SYS_CDEFS_H = 1 // cdefs.h:19:1: 481 X_SYS_SIZE_T_H = 0 // stddef.h:184:1: 482 X_SYS_UCONTEXT_H = 1 // ucontext.h:19:1: 483 X_THREAD_MUTEX_INTERNAL_H = 1 // struct_mutex.h:20:1: 484 X_THREAD_SHARED_TYPES_H = 1 // thread-shared-types.h:20:1: 485 X_T_SIZE = 0 // stddef.h:186:1: 486 X_T_SIZE_ = 0 // stddef.h:185:1: 487 Linux = 1 // <predefined>:263:1: 488 Unix = 1 // <predefined>:222:1: 489 ) 490 491 // POSIX names to access some of the members. 492 493 // sigevent constants. Linux version. 494 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 495 // This file is part of the GNU C Library. 496 // 497 // The GNU C Library is free software; you can redistribute it and/or 498 // modify it under the terms of the GNU Lesser General Public 499 // License as published by the Free Software Foundation; either 500 // version 2.1 of the License, or (at your option) any later version. 501 // 502 // The GNU C Library is distributed in the hope that it will be useful, 503 // but WITHOUT ANY WARRANTY; without even the implied warranty of 504 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 505 // Lesser General Public License for more details. 506 // 507 // You should have received a copy of the GNU Lesser General Public 508 // License along with the GNU C Library; if not, see 509 // <https://www.gnu.org/licenses/>. 510 511 // `sigev_notify' values. 512 const ( /* sigevent-consts.h:27:1: */ 513 SIGEV_SIGNAL = 0 // Notify via signal. 514 SIGEV_NONE = 1 // Other notification: meaningless. 515 SIGEV_THREAD = 2 // Deliver via thread creation. 516 517 SIGEV_THREAD_ID = 4 518 ) 519 520 // `si_code' values for SIGSEGV signal. 521 const ( /* siginfo-consts.h:119:1: */ 522 SEGV_MAPERR = 1 // Address not mapped to object. 523 SEGV_ACCERR = 2 // Invalid permissions for mapped object. 524 SEGV_BNDERR = 3 // Bounds checking failure. 525 SEGV_PKUERR = 4 // Protection key checking failure. 526 SEGV_ACCADI = 5 // ADI not enabled for mapped object. 527 SEGV_ADIDERR = 6 // Disrupting MCD error. 528 SEGV_ADIPERR = 7 529 ) 530 531 // `si_code' values for SIGBUS signal. 532 const ( /* siginfo-consts.h:138:1: */ 533 BUS_ADRALN = 1 // Invalid address alignment. 534 BUS_ADRERR = 2 // Non-existant physical address. 535 BUS_OBJERR = 3 // Object specific hardware error. 536 BUS_MCEERR_AR = 4 // Hardware memory error: action required. 537 BUS_MCEERR_AO = 5 538 ) 539 540 // `si_code' values for SIGCHLD signal. 541 const ( /* siginfo-consts.h:172:1: */ 542 CLD_EXITED = 1 // Child has exited. 543 CLD_KILLED = 2 // Child was killed. 544 CLD_DUMPED = 3 // Child terminated abnormally. 545 CLD_TRAPPED = 4 // Traced child has trapped. 546 CLD_STOPPED = 5 // Child has stopped. 547 CLD_CONTINUED = 6 548 ) 549 550 // `si_code' values for SIGPOLL signal. 551 const ( /* siginfo-consts.h:189:1: */ 552 POLL_IN = 1 // Data input available. 553 POLL_OUT = 2 // Output buffers available. 554 POLL_MSG = 3 // Input message available. 555 POLL_ERR = 4 // I/O error. 556 POLL_PRI = 5 // High priority input available. 557 POLL_HUP = 6 558 ) 559 560 // X/Open requires some more fields with fixed names. 561 562 // siginfo constants. Linux version. 563 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 564 // This file is part of the GNU C Library. 565 // 566 // The GNU C Library is free software; you can redistribute it and/or 567 // modify it under the terms of the GNU Lesser General Public 568 // License as published by the Free Software Foundation; either 569 // version 2.1 of the License, or (at your option) any later version. 570 // 571 // The GNU C Library is distributed in the hope that it will be useful, 572 // but WITHOUT ANY WARRANTY; without even the implied warranty of 573 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 574 // Lesser General Public License for more details. 575 // 576 // You should have received a copy of the GNU Lesser General Public 577 // License along with the GNU C Library; if not, see 578 // <https://www.gnu.org/licenses/>. 579 580 // Most of these constants are uniform across all architectures, but there 581 // is one exception. 582 // Architecture-specific adjustments to siginfo_t. 583 584 // Values for `si_code'. Positive values are reserved for kernel-generated 585 // 586 // signals. 587 const ( /* siginfo-consts.h:35:1: */ 588 SI_ASYNCNL = -60 // Sent by asynch name lookup completion. 589 SI_DETHREAD = -7 // Sent by execve killing subsidiary 590 // threads. 591 SI_TKILL = -6 // Sent by tkill. 592 SI_SIGIO = -5 // Sent by queued SIGIO. 593 SI_ASYNCIO = -4 // Sent by AIO completion. 594 SI_MESGQ = -3 // Sent by real time mesq state change. 595 SI_TIMER = -2 // Sent by timer expiration. 596 SI_QUEUE = -1 // Sent by sigqueue. 597 SI_USER = 0 // Sent by kill, sigsend. 598 SI_KERNEL = 128 599 ) 600 601 // `si_code' values for SIGILL signal. 602 const ( /* siginfo-consts.h:71:1: */ 603 ILL_ILLOPC = 1 // Illegal opcode. 604 ILL_ILLOPN = 2 // Illegal operand. 605 ILL_ILLADR = 3 // Illegal addressing mode. 606 ILL_ILLTRP = 4 // Illegal trap. 607 ILL_PRVOPC = 5 // Privileged opcode. 608 ILL_PRVREG = 6 // Privileged register. 609 ILL_COPROC = 7 // Coprocessor error. 610 ILL_BADSTK = 8 // Internal stack error. 611 ILL_BADIADDR = 9 612 ) 613 614 // `si_code' values for SIGFPE signal. 615 const ( /* siginfo-consts.h:94:1: */ 616 FPE_INTDIV = 1 // Integer divide by zero. 617 FPE_INTOVF = 2 // Integer overflow. 618 FPE_FLTDIV = 3 // Floating point divide by zero. 619 FPE_FLTOVF = 4 // Floating point overflow. 620 FPE_FLTUND = 5 // Floating point underflow. 621 FPE_FLTRES = 6 // Floating point inexact result. 622 FPE_FLTINV = 7 // Floating point invalid operation. 623 FPE_FLTSUB = 8 // Subscript out of range. 624 FPE_FLTUNK = 14 // Undiagnosed floating-point exception. 625 FPE_CONDTRAP = 15 626 ) 627 628 // sigstack, sigaltstack definitions. 629 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 630 // This file is part of the GNU C Library. 631 // 632 // The GNU C Library is free software; you can redistribute it and/or 633 // modify it under the terms of the GNU Lesser General Public 634 // License as published by the Free Software Foundation; either 635 // version 2.1 of the License, or (at your option) any later version. 636 // 637 // The GNU C Library is distributed in the hope that it will be useful, 638 // but WITHOUT ANY WARRANTY; without even the implied warranty of 639 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 640 // Lesser General Public License for more details. 641 // 642 // You should have received a copy of the GNU Lesser General Public 643 // License along with the GNU C Library; if not, see 644 // <https://www.gnu.org/licenses/>. 645 646 // Minimum stack size for a signal handler. 647 648 // System default stack size. 649 650 // ss_flags values for stack_t. Linux version. 651 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 652 // This file is part of the GNU C Library. 653 // 654 // The GNU C Library is free software; you can redistribute it and/or 655 // modify it under the terms of the GNU Lesser General Public 656 // License as published by the Free Software Foundation; either 657 // version 2.1 of the License, or (at your option) any later version. 658 // 659 // The GNU C Library is distributed in the hope that it will be useful, 660 // but WITHOUT ANY WARRANTY; without even the implied warranty of 661 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 662 // Lesser General Public License for more details. 663 // 664 // You should have received a copy of the GNU Lesser General Public 665 // License along with the GNU C Library; if not, see 666 // <https://www.gnu.org/licenses/>. 667 668 // Possible values for `ss_flags'. 669 const ( /* ss_flags.h:27:1: */ 670 SS_ONSTACK = 1 671 SS_DISABLE = 2 672 ) 673 674 type Ptrdiff_t = int64 /* <builtin>:3:26 */ 675 676 type Size_t = uint64 /* <builtin>:9:23 */ 677 678 type Wchar_t = int32 /* <builtin>:15:24 */ 679 680 type X__int128_t = struct { 681 Flo int64 682 Fhi int64 683 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 684 type X__uint128_t = struct { 685 Flo uint64 686 Fhi uint64 687 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 688 689 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 690 type X__ieee128 = float64 /* <builtin>:47:21 */ 691 692 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 693 // This file is part of the GNU C Library. 694 // 695 // The GNU C Library is free software; you can redistribute it and/or 696 // modify it under the terms of the GNU Lesser General Public 697 // License as published by the Free Software Foundation; either 698 // version 2.1 of the License, or (at your option) any later version. 699 // 700 // The GNU C Library is distributed in the hope that it will be useful, 701 // but WITHOUT ANY WARRANTY; without even the implied warranty of 702 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 703 // Lesser General Public License for more details. 704 // 705 // You should have received a copy of the GNU Lesser General Public 706 // License along with the GNU C Library; if not, see 707 // <https://www.gnu.org/licenses/>. 708 709 // ISO C99 Standard: 7.14 Signal handling <signal.h> 710 711 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 712 // This file is part of the GNU C Library. 713 // 714 // The GNU C Library is free software; you can redistribute it and/or 715 // modify it under the terms of the GNU Lesser General Public 716 // License as published by the Free Software Foundation; either 717 // version 2.1 of the License, or (at your option) any later version. 718 // 719 // The GNU C Library is distributed in the hope that it will be useful, 720 // but WITHOUT ANY WARRANTY; without even the implied warranty of 721 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 722 // Lesser General Public License for more details. 723 // 724 // You should have received a copy of the GNU Lesser General Public 725 // License along with the GNU C Library; if not, see 726 // <https://www.gnu.org/licenses/>. 727 728 // These are defined by the user (or the compiler) 729 // to specify the desired environment: 730 // 731 // __STRICT_ANSI__ ISO Standard C. 732 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 733 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 734 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 735 // __STDC_WANT_LIB_EXT2__ 736 // Extensions to ISO C99 from TR 27431-2:2010. 737 // __STDC_WANT_IEC_60559_BFP_EXT__ 738 // Extensions to ISO C11 from TS 18661-1:2014. 739 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 740 // Extensions to ISO C11 from TS 18661-4:2015. 741 // __STDC_WANT_IEC_60559_TYPES_EXT__ 742 // Extensions to ISO C11 from TS 18661-3:2015. 743 // 744 // _POSIX_SOURCE IEEE Std 1003.1. 745 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 746 // if >=199309L, add IEEE Std 1003.1b-1993; 747 // if >=199506L, add IEEE Std 1003.1c-1995; 748 // if >=200112L, all of IEEE 1003.1-2004 749 // if >=200809L, all of IEEE 1003.1-2008 750 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 751 // Single Unix conformance is wanted, to 600 for the 752 // sixth revision, to 700 for the seventh revision. 753 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 754 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 755 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 756 // _FILE_OFFSET_BITS=N Select default filesystem interface. 757 // _ATFILE_SOURCE Additional *at interfaces. 758 // _GNU_SOURCE All of the above, plus GNU extensions. 759 // _DEFAULT_SOURCE The default set of features (taking precedence over 760 // __STRICT_ANSI__). 761 // 762 // _FORTIFY_SOURCE Add security hardening to many library functions. 763 // Set to 1 or 2; 2 performs stricter checks than 1. 764 // 765 // _REENTRANT, _THREAD_SAFE 766 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 767 // 768 // The `-ansi' switch to the GNU C compiler, and standards conformance 769 // options such as `-std=c99', define __STRICT_ANSI__. If none of 770 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 771 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 772 // 200809L, as well as enabling miscellaneous functions from BSD and 773 // SVID. If more than one of these are defined, they accumulate. For 774 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 775 // give you ISO C, 1003.1, and 1003.2, but nothing else. 776 // 777 // These are defined by this file and are used by the 778 // header files to decide what to declare or define: 779 // 780 // __GLIBC_USE (F) Define things from feature set F. This is defined 781 // to 1 or 0; the subsequent macros are either defined 782 // or undefined, and those tests should be moved to 783 // __GLIBC_USE. 784 // __USE_ISOC11 Define ISO C11 things. 785 // __USE_ISOC99 Define ISO C99 things. 786 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 787 // __USE_ISOCXX11 Define ISO C++11 things. 788 // __USE_POSIX Define IEEE Std 1003.1 things. 789 // __USE_POSIX2 Define IEEE Std 1003.2 things. 790 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 791 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 792 // __USE_XOPEN Define XPG things. 793 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 794 // __USE_UNIX98 Define Single Unix V2 things. 795 // __USE_XOPEN2K Define XPG6 things. 796 // __USE_XOPEN2KXSI Define XPG6 XSI things. 797 // __USE_XOPEN2K8 Define XPG7 things. 798 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 799 // __USE_LARGEFILE Define correct standard I/O things. 800 // __USE_LARGEFILE64 Define LFS things with separate names. 801 // __USE_FILE_OFFSET64 Define 64bit interface as default. 802 // __USE_MISC Define things from 4.3BSD or System V Unix. 803 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 804 // __USE_GNU Define GNU extensions. 805 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 806 // 807 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 808 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 809 // only for compatibility. All new code should use the other symbols 810 // to test for features. 811 // 812 // All macros listed above as possibly being defined by this file are 813 // explicitly undefined if they are not explicitly defined. 814 // Feature-test macros that are not defined by the user or compiler 815 // but are implied by the other feature-test macros defined (or by the 816 // lack of any definitions) are defined by the file. 817 // 818 // ISO C feature test macros depend on the definition of the macro 819 // when an affected header is included, not when the first system 820 // header is included, and so they are handled in 821 // <bits/libc-header-start.h>, which does not have a multiple include 822 // guard. Feature test macros that can be handled from the first 823 // system header included are handled here. 824 825 // Undefine everything, so we get a clean slate. 826 827 // Suppress kernel-name space pollution unless user expressedly asks 828 // for it. 829 830 // Convenience macro to test the version of gcc. 831 // Use like this: 832 // #if __GNUC_PREREQ (2,8) 833 // ... code requiring gcc 2.8 or later ... 834 // #endif 835 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 836 // added in 2.0. 837 838 // Similarly for clang. Features added to GCC after version 4.2 may 839 // or may not also be available in clang, and clang's definitions of 840 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 841 // features can be queried via __has_extension/__has_feature. 842 843 // Whether to use feature set F. 844 845 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 846 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 847 // issue a warning; the expectation is that the source is being 848 // transitioned to use the new macro. 849 850 // If _GNU_SOURCE was defined by the user, turn on all the other features. 851 852 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 853 // define _DEFAULT_SOURCE. 854 855 // This is to enable the ISO C2X extension. 856 857 // This is to enable the ISO C11 extension. 858 859 // This is to enable the ISO C99 extension. 860 861 // This is to enable the ISO C90 Amendment 1:1995 extension. 862 863 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 864 // is defined, use POSIX.1-2008 (or another version depending on 865 // _XOPEN_SOURCE). 866 867 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 868 // defined in all multithreaded code. GNU libc has not required this 869 // for many years. We now treat them as compatibility synonyms for 870 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 871 // comprehensive support for multithreaded code. Using them never 872 // lowers the selected level of POSIX conformance, only raises it. 873 874 // The function 'gets' existed in C89, but is impossible to use 875 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 876 // compatibility with various implementations of <cstdio>, this test 877 // must consider only the value of __cplusplus when compiling C++. 878 879 // GNU formerly extended the scanf functions with modified format 880 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 881 // input using malloc. This extension conflicts with ISO C99, which 882 // defines %a as a standalone format specifier that reads a floating- 883 // point number; moreover, POSIX.1-2008 provides the same feature 884 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 885 // 886 // We now follow C99 unless GNU extensions are active and the compiler 887 // is specifically in C89 or C++98 mode (strict or not). For 888 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 889 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 890 // old extension. 891 892 // Get definitions of __STDC_* predefined macros, if the compiler has 893 // not preincluded this header automatically. 894 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 895 // This file is part of the GNU C Library. 896 // 897 // The GNU C Library is free software; you can redistribute it and/or 898 // modify it under the terms of the GNU Lesser General Public 899 // License as published by the Free Software Foundation; either 900 // version 2.1 of the License, or (at your option) any later version. 901 // 902 // The GNU C Library is distributed in the hope that it will be useful, 903 // but WITHOUT ANY WARRANTY; without even the implied warranty of 904 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 905 // Lesser General Public License for more details. 906 // 907 // You should have received a copy of the GNU Lesser General Public 908 // License along with the GNU C Library; if not, see 909 // <https://www.gnu.org/licenses/>. 910 911 // This macro indicates that the installed library is the GNU C Library. 912 // For historic reasons the value now is 6 and this will stay from now 913 // on. The use of this variable is deprecated. Use __GLIBC__ and 914 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 915 // GNU C library version and use the values in <gnu/lib-names.h> to get 916 // the sonames of the shared libraries. 917 918 // Major and minor version number of the GNU C library package. Use 919 // these macros to test for features in specific releases. 920 921 // This is here only because every header file already includes this one. 922 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 923 // This file is part of the GNU C Library. 924 // 925 // The GNU C Library is free software; you can redistribute it and/or 926 // modify it under the terms of the GNU Lesser General Public 927 // License as published by the Free Software Foundation; either 928 // version 2.1 of the License, or (at your option) any later version. 929 // 930 // The GNU C Library is distributed in the hope that it will be useful, 931 // but WITHOUT ANY WARRANTY; without even the implied warranty of 932 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 933 // Lesser General Public License for more details. 934 // 935 // You should have received a copy of the GNU Lesser General Public 936 // License along with the GNU C Library; if not, see 937 // <https://www.gnu.org/licenses/>. 938 939 // We are almost always included from features.h. 940 941 // The GNU libc does not support any K&R compilers or the traditional mode 942 // of ISO C compilers anymore. Check for some of the combinations not 943 // anymore supported. 944 945 // Some user header file might have defined this before. 946 947 // All functions, except those with callbacks or those that 948 // synchronize memory, are leaf functions. 949 950 // GCC can always grok prototypes. For C++ programs we add throw() 951 // to help it optimize the function calls. But this works only with 952 // gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions 953 // as non-throwing using a function attribute since programs can use 954 // the -fexceptions options for C code as well. 955 956 // Compilers that are not clang may object to 957 // #if defined __clang__ && __has_extension(...) 958 // even though they do not need to evaluate the right-hand side of the &&. 959 960 // These two macros are not used in glibc anymore. They are kept here 961 // only because some other projects expect the macros to be defined. 962 963 // For these things, GCC behaves the ANSI way normally, 964 // and the non-ANSI way under -traditional. 965 966 // This is not a typedef so `const __ptr_t' does the right thing. 967 968 // C++ needs to know that types and declarations are C, not C++. 969 970 // Fortify support. 971 972 // Support for flexible arrays. 973 // Headers that should use flexible arrays only if they're "real" 974 // (e.g. only if they won't affect sizeof()) should test 975 // #if __glibc_c99_flexarr_available. 976 977 // __asm__ ("xyz") is used throughout the headers to rename functions 978 // at the assembly language level. This is wrapped by the __REDIRECT 979 // macro, in order to support compilers that can do this some other 980 // way. When compilers don't support asm-names at all, we have to do 981 // preprocessor tricks instead (which don't have exactly the right 982 // semantics, but it's the best we can do). 983 // 984 // Example: 985 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 986 987 // 988 // #elif __SOME_OTHER_COMPILER__ 989 // 990 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 991 992 // GCC has various useful declarations that can be made with the 993 // `__attribute__' syntax. All of the ways we use this do fine if 994 // they are omitted for compilers that don't understand it. 995 996 // At some point during the gcc 2.96 development the `malloc' attribute 997 // for functions was introduced. We don't want to use it unconditionally 998 // (although this would be possible) since it generates warnings. 999 1000 // Tell the compiler which arguments to an allocation function 1001 // indicate the size of the allocation. 1002 1003 // At some point during the gcc 2.96 development the `pure' attribute 1004 // for functions was introduced. We don't want to use it unconditionally 1005 // (although this would be possible) since it generates warnings. 1006 1007 // This declaration tells the compiler that the value is constant. 1008 1009 // At some point during the gcc 3.1 development the `used' attribute 1010 // for functions was introduced. We don't want to use it unconditionally 1011 // (although this would be possible) since it generates warnings. 1012 1013 // Since version 3.2, gcc allows marking deprecated functions. 1014 1015 // Since version 4.5, gcc also allows one to specify the message printed 1016 // when a deprecated function is used. clang claims to be gcc 4.2, but 1017 // may also support this feature. 1018 1019 // At some point during the gcc 2.8 development the `format_arg' attribute 1020 // for functions was introduced. We don't want to use it unconditionally 1021 // (although this would be possible) since it generates warnings. 1022 // If several `format_arg' attributes are given for the same function, in 1023 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 1024 // all designated arguments are considered. 1025 1026 // At some point during the gcc 2.97 development the `strfmon' format 1027 // attribute for functions was introduced. We don't want to use it 1028 // unconditionally (although this would be possible) since it 1029 // generates warnings. 1030 1031 // The nonull function attribute allows to mark pointer parameters which 1032 // must not be NULL. 1033 1034 // If fortification mode, we warn about unused results of certain 1035 // function calls which can lead to problems. 1036 1037 // Forces a function to be always inlined. 1038 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 1039 // it conflicts with this definition. Therefore undefine it first to 1040 // allow either header to be included first. 1041 1042 // Associate error messages with the source location of the call site rather 1043 // than with the source location inside the function. 1044 1045 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 1046 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 1047 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 1048 // older than 4.3 may define these macros and still not guarantee GNU inlining 1049 // semantics. 1050 // 1051 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 1052 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 1053 // __GNUC_GNU_INLINE__ macro definitions. 1054 1055 // GCC 4.3 and above allow passing all anonymous arguments of an 1056 // __extern_always_inline function to some other vararg function. 1057 1058 // It is possible to compile containing GCC extensions even if GCC is 1059 // run in pedantic mode if the uses are carefully marked using the 1060 // `__extension__' keyword. But this is not generally available before 1061 // version 2.8. 1062 1063 // __restrict is known in EGCS 1.2 and above. 1064 1065 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 1066 // array_name[restrict] 1067 // GCC 3.1 supports this. 1068 1069 // Describes a char array whose address can safely be passed as the first 1070 // argument to strncpy and strncat, as the char array is not necessarily 1071 // a NUL-terminated string. 1072 1073 // Undefine (also defined in libc-symbols.h). 1074 // Copies attributes from the declaration or type referenced by 1075 // the argument. 1076 1077 // Determine the wordsize from the preprocessor defines. 1078 1079 // Properties of long double type. ldbl-opt version. 1080 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 1081 // This file is part of the GNU C Library. 1082 // 1083 // The GNU C Library is free software; you can redistribute it and/or 1084 // modify it under the terms of the GNU Lesser General Public 1085 // License published by the Free Software Foundation; either 1086 // version 2.1 of the License, or (at your option) any later version. 1087 // 1088 // The GNU C Library is distributed in the hope that it will be useful, 1089 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1090 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1091 // Lesser General Public License for more details. 1092 // 1093 // You should have received a copy of the GNU Lesser General Public 1094 // License along with the GNU C Library; if not, see 1095 // <https://www.gnu.org/licenses/>. 1096 1097 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 1098 // intended for use in preprocessor macros. 1099 // 1100 // Note: MESSAGE must be a _single_ string; concatenation of string 1101 // literals is not supported. 1102 1103 // Generic selection (ISO C11) is a C-only feature, available in GCC 1104 // since version 4.9. Previous versions do not provide generic 1105 // selection, even though they might set __STDC_VERSION__ to 201112L, 1106 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 1107 // when testing __STDC_VERSION__ for generic selection support. 1108 // On the other hand, Clang also defines __GNUC__, so a clang-specific 1109 // check is required to enable the use of generic selection. 1110 1111 // If we don't have __REDIRECT, prototypes will be missing if 1112 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 1113 1114 // Decide whether we can define 'extern inline' functions in headers. 1115 1116 // This is here only because every header file already includes this one. 1117 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 1118 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 1119 // that will always return failure (and set errno to ENOSYS). 1120 // This file is automatically generated. 1121 // This file selects the right generated file of `__stub_FUNCTION' macros 1122 // based on the architecture being compiled for. 1123 1124 // Determine the wordsize from the preprocessor defines. 1125 1126 // This file is automatically generated. 1127 // It defines a symbol `__stub_FUNCTION' for each function 1128 // in the C library which is a stub, meaning it will fail 1129 // every time called, usually setting errno to ENOSYS. 1130 1131 // bits/types.h -- definitions of __*_t types underlying *_t types. 1132 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1133 // This file is part of the GNU C Library. 1134 // 1135 // The GNU C Library is free software; you can redistribute it and/or 1136 // modify it under the terms of the GNU Lesser General Public 1137 // License as published by the Free Software Foundation; either 1138 // version 2.1 of the License, or (at your option) any later version. 1139 // 1140 // The GNU C Library is distributed in the hope that it will be useful, 1141 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1142 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1143 // Lesser General Public License for more details. 1144 // 1145 // You should have received a copy of the GNU Lesser General Public 1146 // License along with the GNU C Library; if not, see 1147 // <https://www.gnu.org/licenses/>. 1148 1149 // Never include this file directly; use <sys/types.h> instead. 1150 1151 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1152 // This file is part of the GNU C Library. 1153 // 1154 // The GNU C Library is free software; you can redistribute it and/or 1155 // modify it under the terms of the GNU Lesser General Public 1156 // License as published by the Free Software Foundation; either 1157 // version 2.1 of the License, or (at your option) any later version. 1158 // 1159 // The GNU C Library is distributed in the hope that it will be useful, 1160 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1161 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1162 // Lesser General Public License for more details. 1163 // 1164 // You should have received a copy of the GNU Lesser General Public 1165 // License along with the GNU C Library; if not, see 1166 // <https://www.gnu.org/licenses/>. 1167 1168 // Determine the wordsize from the preprocessor defines. 1169 1170 // Bit size of the time_t type at glibc build time, general case. 1171 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 1172 // This file is part of the GNU C Library. 1173 // 1174 // The GNU C Library is free software; you can redistribute it and/or 1175 // modify it under the terms of the GNU Lesser General Public 1176 // License as published by the Free Software Foundation; either 1177 // version 2.1 of the License, or (at your option) any later version. 1178 // 1179 // The GNU C Library is distributed in the hope that it will be useful, 1180 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1181 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1182 // Lesser General Public License for more details. 1183 // 1184 // You should have received a copy of the GNU Lesser General Public 1185 // License along with the GNU C Library; if not, see 1186 // <https://www.gnu.org/licenses/>. 1187 1188 // Determine the wordsize from the preprocessor defines. 1189 1190 // Size in bits of the 'time_t' type of the default ABI. 1191 1192 // Convenience types. 1193 type X__u_char = uint8 /* types.h:31:23 */ 1194 type X__u_short = uint16 /* types.h:32:28 */ 1195 type X__u_int = uint32 /* types.h:33:22 */ 1196 type X__u_long = uint64 /* types.h:34:27 */ 1197 1198 // Fixed-size types, underlying types depend on word size and compiler. 1199 type X__int8_t = int8 /* types.h:37:21 */ 1200 type X__uint8_t = uint8 /* types.h:38:23 */ 1201 type X__int16_t = int16 /* types.h:39:26 */ 1202 type X__uint16_t = uint16 /* types.h:40:28 */ 1203 type X__int32_t = int32 /* types.h:41:20 */ 1204 type X__uint32_t = uint32 /* types.h:42:22 */ 1205 type X__int64_t = int64 /* types.h:44:25 */ 1206 type X__uint64_t = uint64 /* types.h:45:27 */ 1207 1208 // Smallest types with at least a given width. 1209 type X__int_least8_t = X__int8_t /* types.h:52:18 */ 1210 type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ 1211 type X__int_least16_t = X__int16_t /* types.h:54:19 */ 1212 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ 1213 type X__int_least32_t = X__int32_t /* types.h:56:19 */ 1214 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ 1215 type X__int_least64_t = X__int64_t /* types.h:58:19 */ 1216 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ 1217 1218 // quad_t is also 64 bits. 1219 type X__quad_t = int64 /* types.h:63:18 */ 1220 type X__u_quad_t = uint64 /* types.h:64:27 */ 1221 1222 // Largest integral types. 1223 type X__intmax_t = int64 /* types.h:72:18 */ 1224 type X__uintmax_t = uint64 /* types.h:73:27 */ 1225 1226 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 1227 // macros for each of the OS types we define below. The definitions 1228 // of those macros must use the following macros for underlying types. 1229 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 1230 // variants of each of the following integer types on this machine. 1231 // 1232 // 16 -- "natural" 16-bit type (always short) 1233 // 32 -- "natural" 32-bit type (always int) 1234 // 64 -- "natural" 64-bit type (long or long long) 1235 // LONG32 -- 32-bit type, traditionally long 1236 // QUAD -- 64-bit type, traditionally long long 1237 // WORD -- natural type of __WORDSIZE bits (int or long) 1238 // LONGWORD -- type of __WORDSIZE bits, traditionally long 1239 // 1240 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 1241 // conventional uses of `long' or `long long' type modifiers match the 1242 // types we define, even when a less-adorned type would be the same size. 1243 // This matters for (somewhat) portably writing printf/scanf formats for 1244 // these types, where using the appropriate l or ll format modifiers can 1245 // make the typedefs and the formats match up across all GNU platforms. If 1246 // we used `long' when it's 64 bits where `long long' is expected, then the 1247 // compiler would warn about the formats not matching the argument types, 1248 // and the programmer changing them to shut up the compiler would break the 1249 // program's portability. 1250 // 1251 // Here we assume what is presently the case in all the GCC configurations 1252 // we support: long long is always 64 bits, long is always word/address size, 1253 // and int is always 32 bits. 1254 1255 // No need to mark the typedef with __extension__. 1256 // bits/typesizes.h -- underlying types for *_t. Generic version. 1257 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1258 // This file is part of the GNU C Library. 1259 // 1260 // The GNU C Library is free software; you can redistribute it and/or 1261 // modify it under the terms of the GNU Lesser General Public 1262 // License as published by the Free Software Foundation; either 1263 // version 2.1 of the License, or (at your option) any later version. 1264 // 1265 // The GNU C Library is distributed in the hope that it will be useful, 1266 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1267 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1268 // Lesser General Public License for more details. 1269 // 1270 // You should have received a copy of the GNU Lesser General Public 1271 // License along with the GNU C Library; if not, see 1272 // <https://www.gnu.org/licenses/>. 1273 1274 // See <bits/types.h> for the meaning of these macros. This file exists so 1275 // that <bits/types.h> need not vary across different GNU platforms. 1276 1277 // Tell the libc code that off_t and off64_t are actually the same type 1278 // for all ABI purposes, even if possibly expressed as different base types 1279 // for C type-checking purposes. 1280 1281 // Same for ino_t and ino64_t. 1282 1283 // And for rlim_t and rlim64_t. 1284 1285 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. 1286 1287 // Number of descriptors that can fit in an `fd_set'. 1288 1289 // bits/time64.h -- underlying types for __time64_t. Generic version. 1290 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 1291 // This file is part of the GNU C Library. 1292 // 1293 // The GNU C Library is free software; you can redistribute it and/or 1294 // modify it under the terms of the GNU Lesser General Public 1295 // License as published by the Free Software Foundation; either 1296 // version 2.1 of the License, or (at your option) any later version. 1297 // 1298 // The GNU C Library is distributed in the hope that it will be useful, 1299 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1300 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1301 // Lesser General Public License for more details. 1302 // 1303 // You should have received a copy of the GNU Lesser General Public 1304 // License along with the GNU C Library; if not, see 1305 // <https://www.gnu.org/licenses/>. 1306 1307 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 1308 1309 // If we already have 64-bit time type then use it. 1310 1311 type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. 1312 type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 1313 type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 1314 type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. 1315 type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). 1316 type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 1317 type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. 1318 type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. 1319 type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 1320 type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 1321 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 1322 type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. 1323 type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. 1324 type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). 1325 type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 1326 type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. 1327 type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 1328 type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. 1329 1330 type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. 1331 type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. 1332 1333 // Clock ID used in clock and timer functions. 1334 type X__clockid_t = int32 /* types.h:168:29 */ 1335 1336 // Timer ID returned by `timer_create'. 1337 type X__timer_t = uintptr /* types.h:171:12 */ 1338 1339 // Type to represent block size. 1340 type X__blksize_t = int64 /* types.h:174:29 */ 1341 1342 // Types from the Large File Support interface. 1343 1344 // Type to count number of disk blocks. 1345 type X__blkcnt_t = int64 /* types.h:179:28 */ 1346 type X__blkcnt64_t = int64 /* types.h:180:30 */ 1347 1348 // Type to count file system blocks. 1349 type X__fsblkcnt_t = uint64 /* types.h:183:30 */ 1350 type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ 1351 1352 // Type to count file system nodes. 1353 type X__fsfilcnt_t = uint64 /* types.h:187:30 */ 1354 type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ 1355 1356 // Type of miscellaneous file system fields. 1357 type X__fsword_t = int64 /* types.h:191:28 */ 1358 1359 type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. 1360 1361 // Signed long type used in system calls. 1362 type X__syscall_slong_t = int64 /* types.h:196:33 */ 1363 // Unsigned long type used in system calls. 1364 type X__syscall_ulong_t = uint64 /* types.h:198:33 */ 1365 1366 // These few don't really vary by system, they always correspond 1367 // 1368 // to one of the other defined types. 1369 type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). 1370 type X__caddr_t = uintptr /* types.h:203:14 */ 1371 1372 // Duplicates info from stdint.h but this is used in unistd.h. 1373 type X__intptr_t = int64 /* types.h:206:25 */ 1374 1375 // Duplicate info from sys/socket.h. 1376 type X__socklen_t = uint32 /* types.h:209:23 */ 1377 1378 // C99: An integer type that can be accessed as an atomic entity, 1379 // 1380 // even in the presence of asynchronous interrupts. 1381 // It is not currently necessary for this to be machine-specific. 1382 type X__sig_atomic_t = int32 /* types.h:214:13 */ 1383 1384 // Seconds since the Epoch, visible to user code when time_t is too 1385 // narrow only for consistency with the old way of widening too-narrow 1386 // types. User code should never use __time64_t. 1387 1388 // Signal number definitions. Linux version. 1389 // Copyright (C) 1995-2020 Free Software Foundation, Inc. 1390 // This file is part of the GNU C Library. 1391 // 1392 // The GNU C Library is free software; you can redistribute it and/or 1393 // modify it under the terms of the GNU Lesser General Public 1394 // License as published by the Free Software Foundation; either 1395 // version 2.1 of the License, or (at your option) any later version. 1396 // 1397 // The GNU C Library is distributed in the hope that it will be useful, 1398 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1399 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1400 // Lesser General Public License for more details. 1401 // 1402 // You should have received a copy of the GNU Lesser General Public 1403 // License along with the GNU C Library; if not, see 1404 // <https://www.gnu.org/licenses/>. 1405 1406 // Signal number constants. Generic template. 1407 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1408 // This file is part of the GNU C Library. 1409 // 1410 // The GNU C Library is free software; you can redistribute it and/or 1411 // modify it under the terms of the GNU Lesser General Public 1412 // License as published by the Free Software Foundation; either 1413 // version 2.1 of the License, or (at your option) any later version. 1414 // 1415 // The GNU C Library is distributed in the hope that it will be useful, 1416 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1417 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1418 // Lesser General Public License for more details. 1419 // 1420 // You should have received a copy of the GNU Lesser General Public 1421 // License along with the GNU C Library; if not, see 1422 // <https://www.gnu.org/licenses/>. 1423 1424 // Fake signal functions. 1425 1426 // We define here all the signal names listed in POSIX (1003.1-2008); 1427 // as of 1003.1-2013, no additional signals have been added by POSIX. 1428 // We also define here signal names that historically exist in every 1429 // real-world POSIX variant (e.g. SIGWINCH). 1430 // 1431 // Signals in the 1-15 range are defined with their historical numbers. 1432 // For other signals, we use the BSD numbers. 1433 // There are two unallocated signal numbers in the 1-31 range: 7 and 29. 1434 // Signal number 0 is reserved for use as kill(pid, 0), to test whether 1435 // a process exists without sending it a signal. 1436 1437 // ISO C99 signals. 1438 1439 // Historical signals specified by POSIX. 1440 1441 // New(er) POSIX signals (1003.1-2008, 1003.1-2013). 1442 1443 // Nonstandard signals found in all modern POSIX systems 1444 // (including both BSD and Linux). 1445 1446 // Archaic names for compatibility. 1447 1448 // Not all systems support real-time signals. bits/signum.h indicates 1449 // that they are supported by overriding __SIGRTMAX to a value greater 1450 // than __SIGRTMIN. These constants give the kernel-level hard limits, 1451 // but some real-time signals may be used internally by glibc. Do not 1452 // use these constants in application code; use SIGRTMIN and SIGRTMAX 1453 // (defined in signal.h) instead. 1454 1455 // Biggest signal number + 1 (including real-time signals). 1456 1457 // Adjustments and additions to the signal number constants for 1458 // most Linux systems. 1459 1460 // bits/types.h -- definitions of __*_t types underlying *_t types. 1461 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1462 // This file is part of the GNU C Library. 1463 // 1464 // The GNU C Library is free software; you can redistribute it and/or 1465 // modify it under the terms of the GNU Lesser General Public 1466 // License as published by the Free Software Foundation; either 1467 // version 2.1 of the License, or (at your option) any later version. 1468 // 1469 // The GNU C Library is distributed in the hope that it will be useful, 1470 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1471 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1472 // Lesser General Public License for more details. 1473 // 1474 // You should have received a copy of the GNU Lesser General Public 1475 // License along with the GNU C Library; if not, see 1476 // <https://www.gnu.org/licenses/>. 1477 1478 // Never include this file directly; use <sys/types.h> instead. 1479 1480 // An integral type that can be modified atomically, without the 1481 // 1482 // possibility of a signal arriving in the middle of the operation. 1483 type Sig_atomic_t = X__sig_atomic_t /* sig_atomic_t.h:8:24 */ 1484 1485 type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */ 1486 1487 // A set of signals to be blocked, unblocked, or waited for. 1488 type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ 1489 1490 type Pid_t = X__pid_t /* signal.h:40:17 */ 1491 type Uid_t = X__uid_t /* signal.h:46:17 */ 1492 1493 // We need `struct timespec' later on. 1494 // NB: Include guard matches what <linux/time.h> uses. 1495 1496 // bits/types.h -- definitions of __*_t types underlying *_t types. 1497 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1498 // This file is part of the GNU C Library. 1499 // 1500 // The GNU C Library is free software; you can redistribute it and/or 1501 // modify it under the terms of the GNU Lesser General Public 1502 // License as published by the Free Software Foundation; either 1503 // version 2.1 of the License, or (at your option) any later version. 1504 // 1505 // The GNU C Library is distributed in the hope that it will be useful, 1506 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1507 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1508 // Lesser General Public License for more details. 1509 // 1510 // You should have received a copy of the GNU Lesser General Public 1511 // License along with the GNU C Library; if not, see 1512 // <https://www.gnu.org/licenses/>. 1513 1514 // Never include this file directly; use <sys/types.h> instead. 1515 1516 // Endian macros for string.h functions 1517 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1518 // This file is part of the GNU C Library. 1519 // 1520 // The GNU C Library is free software; you can redistribute it and/or 1521 // modify it under the terms of the GNU Lesser General Public 1522 // License as published by the Free Software Foundation; either 1523 // version 2.1 of the License, or (at your option) any later version. 1524 // 1525 // The GNU C Library is distributed in the hope that it will be useful, 1526 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1527 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1528 // Lesser General Public License for more details. 1529 // 1530 // You should have received a copy of the GNU Lesser General Public 1531 // License along with the GNU C Library; if not, see 1532 // <http://www.gnu.org/licenses/>. 1533 1534 // Definitions for byte order, according to significance of bytes, 1535 // from low addresses to high addresses. The value is what you get by 1536 // putting '4' in the most significant byte, '3' in the second most 1537 // significant byte, '2' in the second least significant byte, and '1' 1538 // in the least significant byte, and then writing down one digit for 1539 // each byte, starting with the byte at the lowest address at the left, 1540 // and proceeding to the byte with the highest address at the right. 1541 1542 // This file defines `__BYTE_ORDER' for the particular machine. 1543 1544 // PowerPC has selectable endianness. 1545 1546 // Some machines may need to use a different endianness for floating point 1547 // values. 1548 1549 // POSIX.1b structure for a time value. This is like a `struct timeval' but 1550 // 1551 // has nanoseconds instead of microseconds. 1552 type Timespec = struct { 1553 Ftv_sec X__time_t 1554 Ftv_nsec X__syscall_slong_t 1555 } /* struct_timespec.h:10:1 */ 1556 1557 // Determine the wordsize from the preprocessor defines. 1558 1559 // bits/types.h -- definitions of __*_t types underlying *_t types. 1560 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1561 // This file is part of the GNU C Library. 1562 // 1563 // The GNU C Library is free software; you can redistribute it and/or 1564 // modify it under the terms of the GNU Lesser General Public 1565 // License as published by the Free Software Foundation; either 1566 // version 2.1 of the License, or (at your option) any later version. 1567 // 1568 // The GNU C Library is distributed in the hope that it will be useful, 1569 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1570 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1571 // Lesser General Public License for more details. 1572 // 1573 // You should have received a copy of the GNU Lesser General Public 1574 // License along with the GNU C Library; if not, see 1575 // <https://www.gnu.org/licenses/>. 1576 1577 // Never include this file directly; use <sys/types.h> instead. 1578 1579 // Define __sigval_t. 1580 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1581 // This file is part of the GNU C Library. 1582 // 1583 // The GNU C Library is free software; you can redistribute it and/or 1584 // modify it under the terms of the GNU Lesser General Public 1585 // License as published by the Free Software Foundation; either 1586 // version 2.1 of the License, or (at your option) any later version. 1587 // 1588 // The GNU C Library is distributed in the hope that it will be useful, 1589 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1590 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1591 // Lesser General Public License for more details. 1592 // 1593 // You should have received a copy of the GNU Lesser General Public 1594 // License along with the GNU C Library; if not, see 1595 // <https://www.gnu.org/licenses/>. 1596 1597 // Type for data associated with a signal. 1598 type Sigval = struct { 1599 F__ccgo_pad1 [0]uint64 1600 Fsival_int int32 1601 F__ccgo_pad2 [4]byte 1602 } /* __sigval_t.h:24:1 */ 1603 1604 type X__sigval_t = Sigval /* __sigval_t.h:30:22 */ 1605 1606 // Some fields of siginfo_t have architecture-specific variations. 1607 // Architecture-specific adjustments to siginfo_t. 1608 1609 // This architecture has no adjustments to make to siginfo_t. 1610 1611 type Siginfo_t = struct { 1612 Fsi_signo int32 1613 Fsi_errno int32 1614 Fsi_code int32 1615 F__pad0 int32 1616 F_sifields struct { 1617 F__ccgo_pad1 [0]uint64 1618 F_pad [28]int32 1619 } 1620 } /* siginfo_t.h:124:5 */ 1621 1622 // Architectures might also add architecture-specific constants. 1623 // These are all considered GNU extensions. 1624 1625 // Define __sigval_t. 1626 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1627 // This file is part of the GNU C Library. 1628 // 1629 // The GNU C Library is free software; you can redistribute it and/or 1630 // modify it under the terms of the GNU Lesser General Public 1631 // License as published by the Free Software Foundation; either 1632 // version 2.1 of the License, or (at your option) any later version. 1633 // 1634 // The GNU C Library is distributed in the hope that it will be useful, 1635 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1636 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1637 // Lesser General Public License for more details. 1638 // 1639 // You should have received a copy of the GNU Lesser General Public 1640 // License along with the GNU C Library; if not, see 1641 // <https://www.gnu.org/licenses/>. 1642 1643 // To avoid sigval_t (not a standard type name) having C++ name 1644 // mangling depending on whether the selected standard includes union 1645 // sigval, it should not be defined at all when using a standard for 1646 // which the sigval name is not reserved; in that case, headers should 1647 // not include <bits/types/sigval_t.h> and should use only the 1648 // internal __sigval_t name. 1649 1650 type Sigval_t = X__sigval_t /* sigval_t.h:16:20 */ 1651 1652 // Determine the wordsize from the preprocessor defines. 1653 1654 // bits/types.h -- definitions of __*_t types underlying *_t types. 1655 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1656 // This file is part of the GNU C Library. 1657 // 1658 // The GNU C Library is free software; you can redistribute it and/or 1659 // modify it under the terms of the GNU Lesser General Public 1660 // License as published by the Free Software Foundation; either 1661 // version 2.1 of the License, or (at your option) any later version. 1662 // 1663 // The GNU C Library is distributed in the hope that it will be useful, 1664 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1665 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1666 // Lesser General Public License for more details. 1667 // 1668 // You should have received a copy of the GNU Lesser General Public 1669 // License along with the GNU C Library; if not, see 1670 // <https://www.gnu.org/licenses/>. 1671 1672 // Never include this file directly; use <sys/types.h> instead. 1673 1674 // Define __sigval_t. 1675 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1676 // This file is part of the GNU C Library. 1677 // 1678 // The GNU C Library is free software; you can redistribute it and/or 1679 // modify it under the terms of the GNU Lesser General Public 1680 // License as published by the Free Software Foundation; either 1681 // version 2.1 of the License, or (at your option) any later version. 1682 // 1683 // The GNU C Library is distributed in the hope that it will be useful, 1684 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1685 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1686 // Lesser General Public License for more details. 1687 // 1688 // You should have received a copy of the GNU Lesser General Public 1689 // License along with the GNU C Library; if not, see 1690 // <https://www.gnu.org/licenses/>. 1691 1692 // Forward declaration. 1693 type Pthread_attr_t1 = struct { 1694 F__ccgo_pad1 [0]uint64 1695 F__size [56]uint8 1696 } /* sigevent_t.h:17:9 */ 1697 1698 // Determine the wordsize from the preprocessor defines. 1699 1700 // bits/types.h -- definitions of __*_t types underlying *_t types. 1701 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1702 // This file is part of the GNU C Library. 1703 // 1704 // The GNU C Library is free software; you can redistribute it and/or 1705 // modify it under the terms of the GNU Lesser General Public 1706 // License as published by the Free Software Foundation; either 1707 // version 2.1 of the License, or (at your option) any later version. 1708 // 1709 // The GNU C Library is distributed in the hope that it will be useful, 1710 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1711 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1712 // Lesser General Public License for more details. 1713 // 1714 // You should have received a copy of the GNU Lesser General Public 1715 // License along with the GNU C Library; if not, see 1716 // <https://www.gnu.org/licenses/>. 1717 1718 // Never include this file directly; use <sys/types.h> instead. 1719 1720 // Define __sigval_t. 1721 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1722 // This file is part of the GNU C Library. 1723 // 1724 // The GNU C Library is free software; you can redistribute it and/or 1725 // modify it under the terms of the GNU Lesser General Public 1726 // License as published by the Free Software Foundation; either 1727 // version 2.1 of the License, or (at your option) any later version. 1728 // 1729 // The GNU C Library is distributed in the hope that it will be useful, 1730 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1731 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1732 // Lesser General Public License for more details. 1733 // 1734 // You should have received a copy of the GNU Lesser General Public 1735 // License along with the GNU C Library; if not, see 1736 // <https://www.gnu.org/licenses/>. 1737 1738 // Forward declaration. 1739 type Pthread_attr_t = Pthread_attr_t1 /* sigevent_t.h:17:30 */ 1740 1741 // Structure to transport application-defined values with signals. 1742 type Sigevent = struct { 1743 Fsigev_value X__sigval_t 1744 Fsigev_signo int32 1745 Fsigev_notify int32 1746 F_sigev_un struct { 1747 F__ccgo_pad1 [0]uint64 1748 F_pad [12]int32 1749 } 1750 } /* sigevent_t.h:22:9 */ 1751 1752 // Structure to transport application-defined values with signals. 1753 type Sigevent_t = Sigevent /* sigevent_t.h:42:5 */ 1754 1755 // Type of a signal handler. 1756 type X__sighandler_t = uintptr /* signal.h:72:14 */ 1757 1758 // 4.4 BSD uses the name `sig_t' for this. 1759 type Sig_t = X__sighandler_t /* signal.h:190:24 */ 1760 1761 // Get the system-specific definitions of `struct sigaction' 1762 // and the `SA_*' and `SIG_*'. constants. 1763 // The proper definitions for Linux's sigaction. 1764 // Copyright (C) 1993-2020 Free Software Foundation, Inc. 1765 // This file is part of the GNU C Library. 1766 // 1767 // The GNU C Library is free software; you can redistribute it and/or 1768 // modify it under the terms of the GNU Lesser General Public 1769 // License as published by the Free Software Foundation; either 1770 // version 2.1 of the License, or (at your option) any later version. 1771 // 1772 // The GNU C Library is distributed in the hope that it will be useful, 1773 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1774 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1775 // Lesser General Public License for more details. 1776 // 1777 // You should have received a copy of the GNU Lesser General Public 1778 // License along with the GNU C Library; if not, see 1779 // <https://www.gnu.org/licenses/>. 1780 1781 // Structure describing the action to be taken when a signal arrives. 1782 type Sigaction = struct { 1783 F__sigaction_handler struct{ Fsa_handler X__sighandler_t } 1784 Fsa_mask X__sigset_t 1785 Fsa_flags int32 1786 F__ccgo_pad1 [4]byte 1787 Fsa_restorer uintptr 1788 } /* sigaction.h:27:1 */ 1789 1790 // Get machine-dependent `struct sigcontext' and signal subcodes. 1791 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 1792 // This file is part of the GNU C Library. 1793 // 1794 // The GNU C Library is free software; you can redistribute it and/or 1795 // modify it under the terms of the GNU Lesser General Public 1796 // License as published by the Free Software Foundation; either 1797 // version 2.1 of the License, or (at your option) any later version. 1798 // 1799 // The GNU C Library is distributed in the hope that it will be useful, 1800 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1801 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1802 // Lesser General Public License for more details. 1803 // 1804 // You should have received a copy of the GNU Lesser General Public 1805 // License along with the GNU C Library; if not, see 1806 // <https://www.gnu.org/licenses/>. 1807 1808 // Kernel headers before 2.1.1 define a struct sigcontext_struct, but 1809 // we need sigcontext. 1810 1811 // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 1812 1813 // This program is free software; you can redistribute it and/or 1814 // modify it under the terms of the GNU General Public License 1815 // as published by the Free Software Foundation; either version 1816 // 2 of the License, or (at your option) any later version. 1817 1818 // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 1819 // Copyright (C) 2001 PPC64 Team, IBM Corp 1820 // 1821 // This struct defines the way the registers are stored on the 1822 // kernel stack during a system call or other kernel entry. 1823 // 1824 // this should only contain __volatile__ regs 1825 // since we can keep non-volatile in the thread_struct 1826 // should set this up when only volatiles are saved 1827 // by intr code. 1828 // 1829 // Since this is going on the stack, *CARE MUST BE TAKEN* to insure 1830 // that the overall structure is a multiple of 16 bytes in length. 1831 // 1832 // Note that the offsets of the fields in this struct correspond with 1833 // the PT_* values below. This simplifies arch/powerpc/kernel/ptrace.c. 1834 // 1835 // This program is free software; you can redistribute it and/or 1836 // modify it under the terms of the GNU General Public License 1837 // as published by the Free Software Foundation; either version 1838 // 2 of the License, or (at your option) any later version. 1839 1840 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1841 1842 // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 1843 // This file is never included by application software unless 1844 // explicitly requested (e.g., via linux/types.h) in which case the 1845 // application is Linux specific so (user-) name space pollution is 1846 // not a major issue. However, for interoperability, libraries still 1847 // need to be careful to avoid a name clashes. 1848 // 1849 // This program is free software; you can redistribute it and/or 1850 // modify it under the terms of the GNU General Public License 1851 // as published by the Free Software Foundation; either version 1852 // 2 of the License, or (at your option) any later version. 1853 1854 // This is here because we used to use l64 for 64bit powerpc 1855 // and we don't want to impact user mode with our change to ll64 1856 // in the kernel. 1857 // 1858 // However, some user programs are fine with this. They can 1859 // flag __SANE_USERSPACE_TYPES__ to get int-ll64.h here. 1860 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1861 // asm-generic/int-l64.h 1862 // 1863 // Integer declarations for architectures which use "long" 1864 // for 64-bit types. 1865 1866 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1867 1868 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1869 1870 // There seems to be no way of detecting this automatically from user 1871 // space, so 64 bit architectures should override this in their 1872 // bitsperlong.h. In particular, an architecture that supports 1873 // both 32 and 64 bit user space must not rely on CONFIG_64BIT 1874 // to decide it, but rather check a compiler provided macro. 1875 1876 // __xx is ok: it doesn't pollute the POSIX namespace. Use these in the 1877 // header files exported to user space 1878 1879 type X__s8 = int8 /* int-l64.h:20:25 */ 1880 type X__u8 = uint8 /* int-l64.h:21:23 */ 1881 1882 type X__s16 = int16 /* int-l64.h:23:26 */ 1883 type X__u16 = uint16 /* int-l64.h:24:24 */ 1884 1885 type X__s32 = int32 /* int-l64.h:26:24 */ 1886 type X__u32 = uint32 /* int-l64.h:27:22 */ 1887 1888 type X__s64 = int64 /* int-l64.h:29:25 */ 1889 type X__u64 = uint64 /* int-l64.h:30:23 */ 1890 1891 type X__vector128 = struct { 1892 F__ccgo_pad1 [0]uint64 1893 Fu [4]X__u32 1894 } /* types.h:36:32 */ 1895 1896 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1897 1898 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1899 1900 // This allows for 1024 file descriptors: if NR_OPEN is ever grown 1901 // beyond that you'll have to change this too. But 1024 fd's seem to be 1902 // enough even for such "real" unices like OSF/1, so hopefully this is 1903 // one limit that doesn't have to be changed [again]. 1904 // 1905 // Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in 1906 // <sys/time.h> (and thus <linux/time.h>) - but this is a more logical 1907 // place for them. Solved by having dummy defines in <sys/time.h>. 1908 1909 // This macro may have been defined in <gnu/types.h>. But we always 1910 // use the one here. 1911 1912 type X__kernel_fd_set = struct{ Ffds_bits [16]uint64 } /* posix_types.h:27:3 */ 1913 1914 // Type of a signal handler. 1915 type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */ 1916 1917 // Type of a SYSV IPC key. 1918 type X__kernel_key_t = int32 /* posix_types.h:33:13 */ 1919 type X__kernel_mqd_t = int32 /* posix_types.h:34:13 */ 1920 1921 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1922 1923 // This file is generally used by user-level software, so you need to 1924 // be a little careful about namespace pollution etc. Also, we cannot 1925 // assume GCC is being used. 1926 1927 type X__kernel_old_dev_t = uint64 /* posix_types.h:12:23 */ 1928 1929 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1930 1931 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1932 // This file is generally used by user-level software, so you need to 1933 // be a little careful about namespace pollution etc. 1934 // 1935 // First the types that are often defined in different ways across 1936 // architectures, so that you can override them. 1937 1938 type X__kernel_long_t = int64 /* posix_types.h:15:15 */ 1939 type X__kernel_ulong_t = uint64 /* posix_types.h:16:23 */ 1940 1941 type X__kernel_ino_t = X__kernel_ulong_t /* posix_types.h:20:26 */ 1942 1943 type X__kernel_mode_t = uint32 /* posix_types.h:24:22 */ 1944 1945 type X__kernel_pid_t = int32 /* posix_types.h:28:14 */ 1946 1947 type X__kernel_ipc_pid_t = int32 /* posix_types.h:32:14 */ 1948 1949 type X__kernel_uid_t = uint32 /* posix_types.h:36:22 */ 1950 type X__kernel_gid_t = uint32 /* posix_types.h:37:22 */ 1951 1952 type X__kernel_suseconds_t = X__kernel_long_t /* posix_types.h:41:26 */ 1953 1954 type X__kernel_daddr_t = int32 /* posix_types.h:45:14 */ 1955 1956 type X__kernel_uid32_t = uint32 /* posix_types.h:49:22 */ 1957 type X__kernel_gid32_t = uint32 /* posix_types.h:50:22 */ 1958 1959 type X__kernel_old_uid_t = X__kernel_uid_t /* posix_types.h:54:24 */ 1960 type X__kernel_old_gid_t = X__kernel_gid_t /* posix_types.h:55:24 */ 1961 1962 // Most 32 bit architectures use "unsigned int" size_t, 1963 // and all 64 bit architectures use "unsigned long" size_t. 1964 type X__kernel_size_t = X__kernel_ulong_t /* posix_types.h:72:26 */ 1965 type X__kernel_ssize_t = X__kernel_long_t /* posix_types.h:73:25 */ 1966 type X__kernel_ptrdiff_t = X__kernel_long_t /* posix_types.h:74:25 */ 1967 1968 type X__kernel_fsid_t = struct{ Fval [2]int32 } /* posix_types.h:81:3 */ 1969 1970 // anything below here should be completely generic 1971 type X__kernel_off_t = X__kernel_long_t /* posix_types.h:87:25 */ 1972 type X__kernel_loff_t = int64 /* posix_types.h:88:19 */ 1973 type X__kernel_old_time_t = X__kernel_long_t /* posix_types.h:89:25 */ 1974 type X__kernel_time_t = X__kernel_long_t /* posix_types.h:90:25 */ 1975 type X__kernel_time64_t = int64 /* posix_types.h:91:19 */ 1976 type X__kernel_clock_t = X__kernel_long_t /* posix_types.h:92:25 */ 1977 type X__kernel_timer_t = int32 /* posix_types.h:93:14 */ 1978 type X__kernel_clockid_t = int32 /* posix_types.h:94:14 */ 1979 type X__kernel_caddr_t = uintptr /* posix_types.h:95:14 */ 1980 type X__kernel_uid16_t = uint16 /* posix_types.h:96:24 */ 1981 type X__kernel_gid16_t = uint16 /* posix_types.h:97:24 */ 1982 1983 // Below are truly Linux-specific types that should never collide with 1984 // any application/library that wants linux/types.h. 1985 1986 type X__le16 = X__u16 /* types.h:24:25 */ 1987 type X__be16 = X__u16 /* types.h:25:25 */ 1988 type X__le32 = X__u32 /* types.h:26:25 */ 1989 type X__be32 = X__u32 /* types.h:27:25 */ 1990 type X__le64 = X__u64 /* types.h:28:25 */ 1991 type X__be64 = X__u64 /* types.h:29:25 */ 1992 1993 type X__sum16 = X__u16 /* types.h:31:25 */ 1994 type X__wsum = X__u32 /* types.h:32:25 */ 1995 1996 // aligned_u64 should be used in defining kernel<->userspace ABIs to avoid 1997 // common 32/64-bit compat problems. 1998 // 64-bit values align to 4-byte boundaries on x86_32 (and possibly other 1999 // architectures) and to 8-byte boundaries on 64-bit architectures. The new 2000 // aligned_64 type enforces 8-byte alignment so that structs containing 2001 // aligned_64 values have the same alignment on 32-bit and 64-bit architectures. 2002 // No conversions are necessary between 32-bit user-space and a 64-bit kernel. 2003 2004 type X__poll_t = uint32 /* types.h:47:28 */ 2005 2006 type Pt_regs = struct { 2007 Fgpr [32]uint64 2008 Fnip uint64 2009 Fmsr uint64 2010 Forig_gpr3 uint64 2011 Fctr uint64 2012 Flink uint64 2013 Fxer uint64 2014 Fccr uint64 2015 Fsofte uint64 2016 Ftrap uint64 2017 Fdar uint64 2018 Fdsisr uint64 2019 Fresult uint64 2020 } /* ptrace.h:32:1 */ 2021 2022 // Offsets used by 'ptrace' system call interface. 2023 // These can't be changed without breaking binary compatibility 2024 // with MkLinux, etc. 2025 2026 // Only store first 32 VSRs here. The second 32 VSRs in VR0-31 2027 2028 // Get/set all the altivec registers v0..v31, vscr, vrsave, in one go. 2029 // The transfer totals 34 quadword. Quadwords 0-31 contain the 2030 // corresponding vector registers. Quadword 32 contains the vscr as the 2031 // last word (offset 12) within that quadword. Quadword 33 contains the 2032 // vrsave as the first word (offset 0) within the quadword. 2033 // 2034 // This definition of the VMX state is compatible with the current PPC32 2035 // ptrace interface. This allows signal handling and ptrace to use the same 2036 // structures. This also simplifies the implementation of a bi-arch 2037 // (combined (32- and 64-bit) gdb. 2038 2039 // Get/set all the upper 32-bits of the SPE registers, accumulator, and 2040 // spefscr, in one go 2041 2042 // Get the first 32 128bit VSX registers 2043 2044 // Syscall emulation defines 2045 2046 // Get or set a debug register. The first 16 are DABR registers and the 2047 // second 16 are IABR registers. 2048 2049 // (new) PTRACE requests using the same numbers as x86 and the same 2050 // argument ordering. Additionally, they support more registers too 2051 2052 // Calls to trace a 64bit program from a 32bit program 2053 2054 type Ppc_debug_info = struct { 2055 Fversion X__u32 2056 Fnum_instruction_bps X__u32 2057 Fnum_data_bps X__u32 2058 Fnum_condition_regs X__u32 2059 Fdata_bp_alignment X__u32 2060 Fsizeof_condition X__u32 2061 Ffeatures X__u64 2062 } /* ptrace.h:201:1 */ 2063 2064 // features will have bits indication whether there is support for: 2065 2066 type Ppc_hw_breakpoint = struct { 2067 Fversion X__u32 2068 Ftrigger_type X__u32 2069 Faddr_mode X__u32 2070 Fcondition_mode X__u32 2071 Faddr X__u64 2072 Faddr2 X__u64 2073 Fcondition_value X__u64 2074 } /* ptrace.h:225:1 */ 2075 2076 // Trigger Type 2077 2078 // Address Mode 2079 2080 // Condition Mode 2081 2082 // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 2083 // ELF register definitions.. 2084 // 2085 // This program is free software; you can redistribute it and/or 2086 // modify it under the terms of the GNU General Public License 2087 // as published by the Free Software Foundation; either version 2088 // 2 of the License, or (at your option) any later version. 2089 2090 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2091 2092 // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 2093 // Copyright (C) 2001 PPC64 Team, IBM Corp 2094 // 2095 // This struct defines the way the registers are stored on the 2096 // kernel stack during a system call or other kernel entry. 2097 // 2098 // this should only contain __volatile__ regs 2099 // since we can keep non-volatile in the thread_struct 2100 // should set this up when only volatiles are saved 2101 // by intr code. 2102 // 2103 // Since this is going on the stack, *CARE MUST BE TAKEN* to insure 2104 // that the overall structure is a multiple of 16 bytes in length. 2105 // 2106 // Note that the offsets of the fields in this struct correspond with 2107 // the PT_* values below. This simplifies arch/powerpc/kernel/ptrace.c. 2108 // 2109 // This program is free software; you can redistribute it and/or 2110 // modify it under the terms of the GNU General Public License 2111 // as published by the Free Software Foundation; either version 2112 // 2 of the License, or (at your option) any later version. 2113 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2114 2115 // in AT_HWCAP 2116 2117 // Reserved - do not use 0x00000004 2118 2119 // in AT_HWCAP2 2120 2121 // IMPORTANT! 2122 // All future PPC_FEATURE definitions should be allocated in cooperation with 2123 // OPAL / skiboot firmware, in accordance with the ibm,powerpc-cpu-features 2124 // device tree binding. 2125 2126 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2127 2128 // We need to put in some extra aux table entries to tell glibc what 2129 // the cache block size is, so it can use the dcbz instruction safely. 2130 // A special ignored type value for PPC, for glibc compatibility. 2131 2132 // The vDSO location. We have to use the same value as x86 for glibc's 2133 // sake :-) 2134 2135 // AT_*CACHEBSIZE above represent the cache *block* size which is 2136 // the size that is affected by the cache management instructions. 2137 // 2138 // It doesn't nececssarily matches the cache *line* size which is 2139 // more of a performance tuning hint. Additionally the latter can 2140 // be different for the different cache levels. 2141 // 2142 // The set of entries below represent more extensive information 2143 // about the caches, in the form of two entry per cache type, 2144 // one entry containing the cache size in bytes, and the other 2145 // containing the cache line size in bytes in the bottom 16 bits 2146 // and the cache associativity in the next 16 bits. 2147 // 2148 // The associativity is such that if N is the 16-bit value, the 2149 // cache is N way set associative. A value if 0xffff means fully 2150 // associative, a value of 1 means directly mapped. 2151 // 2152 // For all these fields, a value of 0 means that the information 2153 // is not known. 2154 2155 // PowerPC relocations defined by the ABIs 2156 2157 // PowerPC relocations defined for the TLS access ABI. 2158 2159 // keep this the last entry. 2160 2161 type Elf_greg_t64 = uint64 /* elf.h:102:23 */ 2162 type Elf_gregset_t64 = [48]Elf_greg_t64 /* elf.h:103:22 */ 2163 2164 type Elf_greg_t32 = uint32 /* elf.h:105:22 */ 2165 type Elf_gregset_t32 = [48]Elf_greg_t32 /* elf.h:106:22 */ 2166 type Compat_elf_gregset_t = Elf_gregset_t32 /* elf.h:107:25 */ 2167 2168 // ELF_ARCH, CLASS, and DATA are used to set parameters in the core dumps. 2169 type Elf_greg_t = Elf_greg_t64 /* elf.h:119:22 */ 2170 type Elf_gregset_t = Elf_gregset_t64 /* elf.h:120:25 */ 2171 2172 // Floating point registers 2173 type Elf_fpreg_t = float64 /* elf.h:138:16 */ 2174 type Elf_fpregset_t = [33]Elf_fpreg_t /* elf.h:139:21 */ 2175 2176 // Altivec registers 2177 // The entries with indexes 0-31 contain the corresponding vector registers. 2178 // The entry with index 32 contains the vscr as the last word (offset 12) 2179 // within the quadword. This allows the vscr to be stored as either a 2180 // quadword (since it must be copied via a vector register to/from storage) 2181 // or as a word. 2182 // 2183 // 64-bit kernel notes: The entry at index 33 contains the vrsave as the first 2184 // word (offset 0) within the quadword. 2185 // 2186 // This definition of the VMX state is compatible with the current PPC32 2187 // ptrace interface. This allows signal handling and ptrace to use the same 2188 // structures. This also simplifies the implementation of a bi-arch 2189 // (combined (32- and 64-bit) gdb. 2190 // 2191 // Note that it's _not_ compatible with 32 bits ucontext which stuffs the 2192 // vrsave along with vscr and so only uses 33 vectors for the register set 2193 type Elf_vrreg_t = X__vector128 /* elf.h:160:21 */ 2194 type Elf_vrregset_t = [34]Elf_vrreg_t /* elf.h:161:21 */ 2195 type Elf_vrregset_t32 = [33]Elf_vrreg_t /* elf.h:163:21 */ 2196 type Elf_vsrreghalf_t32 = [32]Elf_fpreg_t /* elf.h:164:21 */ 2197 2198 // PowerPC64 relocations defined by the ABIs 2199 2200 // PowerPC64 relocations defined for the TLS access ABI. 2201 2202 // Keep this the last entry. 2203 2204 // There's actually a third entry here, but it's unused 2205 type Ppc64_opd_entry = struct { 2206 Ffuncaddr uint64 2207 Fr2 uint64 2208 } /* elf.h:293:1 */ 2209 2210 type Sigcontext = struct { 2211 F_unused [4]uint64 2212 Fsignal int32 2213 F_pad0 int32 2214 Fhandler uint64 2215 Foldmask uint64 2216 Fregs uintptr 2217 Fgp_regs Elf_gregset_t 2218 Ffp_regs Elf_fpregset_t 2219 Fv_regs uintptr 2220 Fvmx_reserve [101]int64 2221 } /* sigcontext.h:17:1 */ 2222 2223 // Wide character type. 2224 // Locale-writers should change this as necessary to 2225 // be big enough to hold unique values not between 0 and 127, 2226 // and not (wchar_t) -1, for each defined multibyte character. 2227 2228 // Define this type if we are doing the whole job, 2229 // or if we want this type in particular. 2230 2231 // A null pointer constant. 2232 2233 // Define stack_t. Linux version. 2234 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 2235 // This file is part of the GNU C Library. 2236 // 2237 // The GNU C Library is free software; you can redistribute it and/or 2238 // modify it under the terms of the GNU Lesser General Public 2239 // License as published by the Free Software Foundation; either 2240 // version 2.1 of the License, or (at your option) any later version. 2241 // 2242 // The GNU C Library is distributed in the hope that it will be useful, 2243 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2244 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2245 // Lesser General Public License for more details. 2246 // 2247 // You should have received a copy of the GNU Lesser General Public 2248 // License along with the GNU C Library; if not, see 2249 // <https://www.gnu.org/licenses/>. 2250 2251 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 2252 // 2253 // This file is part of GCC. 2254 // 2255 // GCC is free software; you can redistribute it and/or modify 2256 // it under the terms of the GNU General Public License as published by 2257 // the Free Software Foundation; either version 3, or (at your option) 2258 // any later version. 2259 // 2260 // GCC is distributed in the hope that it will be useful, 2261 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2262 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2263 // GNU General Public License for more details. 2264 // 2265 // Under Section 7 of GPL version 3, you are granted additional 2266 // permissions described in the GCC Runtime Library Exception, version 2267 // 3.1, as published by the Free Software Foundation. 2268 // 2269 // You should have received a copy of the GNU General Public License and 2270 // a copy of the GCC Runtime Library Exception along with this program; 2271 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 2272 // <http://www.gnu.org/licenses/>. 2273 2274 // ISO C Standard: 7.17 Common definitions <stddef.h> 2275 2276 // Any one of these symbols __need_* means that GNU libc 2277 // wants us just to define one data type. So don't define 2278 // the symbols that indicate this file's entire job has been done. 2279 2280 // This avoids lossage on SunOS but only if stdtypes.h comes first. 2281 // There's no way to win with the other order! Sun lossage. 2282 2283 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 2284 // Just ignore it. 2285 2286 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 2287 // _TYPE_size_t which will typedef size_t. fixincludes patched the 2288 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 2289 // not defined, and so that defining this macro defines _GCC_SIZE_T. 2290 // If we find that the macros are still defined at this point, we must 2291 // invoke them so that the type is defined as expected. 2292 2293 // In case nobody has defined these types, but we aren't running under 2294 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 2295 // __WCHAR_TYPE__ have reasonable values. This can happen if the 2296 // parts of GCC is compiled by an older compiler, that actually 2297 // include gstddef.h, such as collect2. 2298 2299 // Signed type of difference of two pointers. 2300 2301 // Define this type if we are doing the whole job, 2302 // or if we want this type in particular. 2303 2304 // Unsigned type of `sizeof' something. 2305 2306 // Define this type if we are doing the whole job, 2307 // or if we want this type in particular. 2308 2309 // Wide character type. 2310 // Locale-writers should change this as necessary to 2311 // be big enough to hold unique values not between 0 and 127, 2312 // and not (wchar_t) -1, for each defined multibyte character. 2313 2314 // Define this type if we are doing the whole job, 2315 // or if we want this type in particular. 2316 2317 // A null pointer constant. 2318 2319 // Structure describing a signal stack. 2320 type Stack_t = struct { 2321 Fss_sp uintptr 2322 Fss_flags int32 2323 F__ccgo_pad1 [4]byte 2324 Fss_size Size_t 2325 } /* stack_t.h:31:5 */ 2326 2327 // For 64-bit kernels with Altivec support, a machine context is exactly 2328 // a sigcontext. For older kernel (without Altivec) the sigcontext matches 2329 // the mcontext upto but not including the v_regs field. For kernels that 2330 // don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the 2331 // v_regs field may not exist and should not be referenced. The v_regs field 2332 // can be referenced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC 2333 // is set in AT_HWCAP. 2334 2335 // Number of general registers. 2336 2337 type Gregset_t = [48]uint64 /* ucontext.h:93:23 */ 2338 type Fpregset_t = [33]float64 /* ucontext.h:94:16 */ 2339 2340 // Container for Altivec/VMX Vector Status and Control Register. Only 32-bits 2341 // 2342 // but can only be copied to/from a 128-bit vector register. So we allocated 2343 // a whole quadword speedup save/restore. 2344 type X_libc_vscr = struct { 2345 Fvscr_word uint32 2346 F__pad [3]uint32 2347 } /* ucontext.h:99:9 */ 2348 2349 // Container for Altivec/VMX Vector Status and Control Register. Only 32-bits 2350 // 2351 // but can only be copied to/from a 128-bit vector register. So we allocated 2352 // a whole quadword speedup save/restore. 2353 type Vscr_t = X_libc_vscr /* ucontext.h:108:3 */ 2354 2355 // Container for Altivec/VMX registers and status. 2356 // 2357 // Must to be aligned on a 16-byte boundary. 2358 type X_libc_vrstate = struct { 2359 Fvrregs [32][4]uint32 2360 Fvscr Vscr_t 2361 Fvrsave uint32 2362 F__pad [3]uint32 2363 } /* ucontext.h:112:9 */ 2364 2365 // Container for Altivec/VMX registers and status. 2366 // 2367 // Must to be aligned on a 16-byte boundary. 2368 type Vrregset_t = X_libc_vrstate /* ucontext.h:118:3 */ 2369 2370 type Mcontext_t = struct { 2371 F__glibc_reserved [4]uint64 2372 Fsignal int32 2373 F__pad0 int32 2374 Fhandler uint64 2375 Foldmask uint64 2376 Fregs uintptr 2377 Fgp_regs Gregset_t 2378 Ffp_regs Fpregset_t 2379 Fv_regs uintptr 2380 Fvmx_reserve [69]int64 2381 } /* ucontext.h:150:3 */ 2382 2383 // Userlevel context. 2384 type Ucontext_t1 = struct { 2385 Fuc_flags uint64 2386 Fuc_link uintptr 2387 Fuc_stack Stack_t 2388 Fuc_sigmask Sigset_t 2389 Fuc_mcontext Mcontext_t 2390 } /* ucontext.h:155:9 */ 2391 2392 // Userlevel context. 2393 type Ucontext_t = Ucontext_t1 /* ucontext.h:196:5 */ 2394 2395 // Define struct sigstack. 2396 // Copyright (C) 1998-2020 Free Software Foundation, Inc. 2397 // This file is part of the GNU C Library. 2398 // 2399 // The GNU C Library is free software; you can redistribute it and/or 2400 // modify it under the terms of the GNU Lesser General Public 2401 // License as published by the Free Software Foundation; either 2402 // version 2.1 of the License, or (at your option) any later version. 2403 // 2404 // The GNU C Library is distributed in the hope that it will be useful, 2405 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2406 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2407 // Lesser General Public License for more details. 2408 // 2409 // You should have received a copy of the GNU Lesser General Public 2410 // License along with the GNU C Library; if not, see 2411 // <https://www.gnu.org/licenses/>. 2412 2413 // Structure describing a signal stack (obsolete). 2414 type Sigstack = struct { 2415 Fss_sp uintptr 2416 Fss_onstack int32 2417 F__ccgo_pad1 [4]byte 2418 } /* struct_sigstack.h:23:1 */ 2419 2420 // Some of the functions for handling signals in threaded programs must 2421 // be defined here. 2422 // Declaration of common pthread types for all architectures. 2423 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2424 // This file is part of the GNU C Library. 2425 // 2426 // The GNU C Library is free software; you can redistribute it and/or 2427 // modify it under the terms of the GNU Lesser General Public 2428 // License as published by the Free Software Foundation; either 2429 // version 2.1 of the License, or (at your option) any later version. 2430 // 2431 // The GNU C Library is distributed in the hope that it will be useful, 2432 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2433 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2434 // Lesser General Public License for more details. 2435 // 2436 // You should have received a copy of the GNU Lesser General Public 2437 // License along with the GNU C Library; if not, see 2438 // <https://www.gnu.org/licenses/>. 2439 2440 // For internal mutex and condition variable definitions. 2441 // Common threading primitives definitions for both POSIX and C11. 2442 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2443 // This file is part of the GNU C Library. 2444 // 2445 // The GNU C Library is free software; you can redistribute it and/or 2446 // modify it under the terms of the GNU Lesser General Public 2447 // License as published by the Free Software Foundation; either 2448 // version 2.1 of the License, or (at your option) any later version. 2449 // 2450 // The GNU C Library is distributed in the hope that it will be useful, 2451 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2452 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2453 // Lesser General Public License for more details. 2454 // 2455 // You should have received a copy of the GNU Lesser General Public 2456 // License along with the GNU C Library; if not, see 2457 // <https://www.gnu.org/licenses/>. 2458 2459 // Arch-specific definitions. Each architecture must define the following 2460 // macros to define the expected sizes of pthread data types: 2461 // 2462 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 2463 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 2464 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 2465 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 2466 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 2467 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 2468 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 2469 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 2470 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 2471 // 2472 // The additional macro defines any constraint for the lock alignment 2473 // inside the thread structures: 2474 // 2475 // __LOCK_ALIGNMENT - for internal lock/futex usage. 2476 // 2477 // Same idea but for the once locking primitive: 2478 // 2479 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 2480 2481 // Machine-specific pthread type layouts. Generic version. 2482 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2483 // 2484 // This file is part of the GNU C Library. 2485 // 2486 // The GNU C Library is free software; you can redistribute it and/or 2487 // modify it under the terms of the GNU Lesser General Public 2488 // License as published by the Free Software Foundation; either 2489 // version 2.1 of the License, or (at your option) any later version. 2490 // 2491 // The GNU C Library is distributed in the hope that it will be useful, 2492 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2493 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2494 // Lesser General Public License for more details. 2495 // 2496 // You should have received a copy of the GNU Lesser General Public 2497 // License along with the GNU C Library; if not, see 2498 // <http://www.gnu.org/licenses/>. 2499 2500 // Determine the wordsize from the preprocessor defines. 2501 2502 // Common definition of pthread_mutex_t. 2503 2504 type X__pthread_internal_list = struct { 2505 F__prev uintptr 2506 F__next uintptr 2507 } /* thread-shared-types.h:49:9 */ 2508 2509 // Some of the functions for handling signals in threaded programs must 2510 // be defined here. 2511 // Declaration of common pthread types for all architectures. 2512 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2513 // This file is part of the GNU C Library. 2514 // 2515 // The GNU C Library is free software; you can redistribute it and/or 2516 // modify it under the terms of the GNU Lesser General Public 2517 // License as published by the Free Software Foundation; either 2518 // version 2.1 of the License, or (at your option) any later version. 2519 // 2520 // The GNU C Library is distributed in the hope that it will be useful, 2521 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2522 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2523 // Lesser General Public License for more details. 2524 // 2525 // You should have received a copy of the GNU Lesser General Public 2526 // License along with the GNU C Library; if not, see 2527 // <https://www.gnu.org/licenses/>. 2528 2529 // For internal mutex and condition variable definitions. 2530 // Common threading primitives definitions for both POSIX and C11. 2531 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2532 // This file is part of the GNU C Library. 2533 // 2534 // The GNU C Library is free software; you can redistribute it and/or 2535 // modify it under the terms of the GNU Lesser General Public 2536 // License as published by the Free Software Foundation; either 2537 // version 2.1 of the License, or (at your option) any later version. 2538 // 2539 // The GNU C Library is distributed in the hope that it will be useful, 2540 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2541 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2542 // Lesser General Public License for more details. 2543 // 2544 // You should have received a copy of the GNU Lesser General Public 2545 // License along with the GNU C Library; if not, see 2546 // <https://www.gnu.org/licenses/>. 2547 2548 // Arch-specific definitions. Each architecture must define the following 2549 // macros to define the expected sizes of pthread data types: 2550 // 2551 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 2552 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 2553 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 2554 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 2555 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 2556 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 2557 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 2558 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 2559 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 2560 // 2561 // The additional macro defines any constraint for the lock alignment 2562 // inside the thread structures: 2563 // 2564 // __LOCK_ALIGNMENT - for internal lock/futex usage. 2565 // 2566 // Same idea but for the once locking primitive: 2567 // 2568 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 2569 2570 // Machine-specific pthread type layouts. Generic version. 2571 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2572 // 2573 // This file is part of the GNU C Library. 2574 // 2575 // The GNU C Library is free software; you can redistribute it and/or 2576 // modify it under the terms of the GNU Lesser General Public 2577 // License as published by the Free Software Foundation; either 2578 // version 2.1 of the License, or (at your option) any later version. 2579 // 2580 // The GNU C Library is distributed in the hope that it will be useful, 2581 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2582 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2583 // Lesser General Public License for more details. 2584 // 2585 // You should have received a copy of the GNU Lesser General Public 2586 // License along with the GNU C Library; if not, see 2587 // <http://www.gnu.org/licenses/>. 2588 2589 // Determine the wordsize from the preprocessor defines. 2590 2591 // Common definition of pthread_mutex_t. 2592 2593 type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ 2594 2595 type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ 2596 2597 type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ 2598 2599 // Arch-specific mutex definitions. A generic implementation is provided 2600 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 2601 // can override it by defining: 2602 // 2603 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 2604 // definition). It should contains at least the internal members 2605 // defined in the generic version. 2606 // 2607 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 2608 // atomic operations. 2609 // 2610 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 2611 // It should initialize the mutex internal flag. 2612 2613 // PowerPC internal mutex struct definitions. 2614 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2615 // This file is part of the GNU C Library. 2616 // 2617 // The GNU C Library is free software; you can redistribute it and/or 2618 // modify it under the terms of the GNU Lesser General Public 2619 // License as published by the Free Software Foundation; either 2620 // version 2.1 of the License, or (at your option) any later version. 2621 // 2622 // The GNU C Library is distributed in the hope that it will be useful, 2623 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2624 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2625 // Lesser General Public License for more details. 2626 // 2627 // You should have received a copy of the GNU Lesser General Public 2628 // License along with the GNU C Library; if not, see 2629 // <http://www.gnu.org/licenses/>. 2630 2631 type X__pthread_mutex_s = struct { 2632 F__lock int32 2633 F__count uint32 2634 F__owner int32 2635 F__nusers uint32 2636 F__kind int32 2637 F__spins int16 2638 F__elision int16 2639 F__list X__pthread_list_t 2640 } /* struct_mutex.h:22:1 */ 2641 2642 // Arch-sepecific read-write lock definitions. A generic implementation is 2643 // provided by struct_rwlock.h. If required, an architecture can override it 2644 // by defining: 2645 // 2646 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 2647 // It should contain at least the internal members defined in the 2648 // generic version. 2649 // 2650 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 2651 // It should initialize the rwlock internal type. 2652 2653 // PowerPC internal rwlock struct definitions. 2654 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2655 // 2656 // This file is part of the GNU C Library. 2657 // 2658 // The GNU C Library is free software; you can redistribute it and/or 2659 // modify it under the terms of the GNU Lesser General Public 2660 // License as published by the Free Software Foundation; either 2661 // version 2.1 of the License, or (at your option) any later version. 2662 // 2663 // The GNU C Library is distributed in the hope that it will be useful, 2664 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2665 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2666 // Lesser General Public License for more details. 2667 // 2668 // You should have received a copy of the GNU Lesser General Public 2669 // License along with the GNU C Library; if not, see 2670 // <http://www.gnu.org/licenses/>. 2671 2672 type X__pthread_rwlock_arch_t = struct { 2673 F__readers uint32 2674 F__writers uint32 2675 F__wrphase_futex uint32 2676 F__writers_futex uint32 2677 F__pad3 uint32 2678 F__pad4 uint32 2679 F__cur_writer int32 2680 F__shared int32 2681 F__rwelision uint8 2682 F__pad1 [7]uint8 2683 F__pad2 uint64 2684 F__flags uint32 2685 F__ccgo_pad1 [4]byte 2686 } /* struct_rwlock.h:23:1 */ 2687 2688 // Common definition of pthread_cond_t. 2689 2690 type X__pthread_cond_s = struct { 2691 F__0 struct{ F__wseq uint64 } 2692 F__8 struct{ F__g1_start uint64 } 2693 F__g_refs [2]uint32 2694 F__g_size [2]uint32 2695 F__g1_orig_size uint32 2696 F__wrefs uint32 2697 F__g_signals [2]uint32 2698 } /* thread-shared-types.h:92:1 */ 2699 2700 // Thread identifiers. The structure of the attribute type is not 2701 // 2702 // exposed on purpose. 2703 type Pthread_t = uint64 /* pthreadtypes.h:27:27 */ 2704 2705 // Data structures for mutex handling. The structure of the attribute 2706 // 2707 // type is not exposed on purpose. 2708 type Pthread_mutexattr_t = struct { 2709 F__ccgo_pad1 [0]uint32 2710 F__size [4]uint8 2711 } /* pthreadtypes.h:36:3 */ 2712 2713 // Data structure for condition variable handling. The structure of 2714 // 2715 // the attribute type is not exposed on purpose. 2716 type Pthread_condattr_t = struct { 2717 F__ccgo_pad1 [0]uint32 2718 F__size [4]uint8 2719 } /* pthreadtypes.h:45:3 */ 2720 2721 // Keys for thread-specific data 2722 type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 2723 2724 // Once-only execution 2725 type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */ 2726 2727 type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */ 2728 2729 type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */ 2730 2731 // Data structure for reader-writer lock variable handling. The 2732 // 2733 // structure of the attribute type is deliberately not exposed. 2734 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 2735 2736 type Pthread_rwlockattr_t = struct { 2737 F__ccgo_pad1 [0]uint64 2738 F__size [8]uint8 2739 } /* pthreadtypes.h:97:3 */ 2740 2741 // POSIX spinlock data type. 2742 type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 2743 2744 // POSIX barriers data type. The structure of the type is 2745 // 2746 // deliberately not exposed. 2747 type Pthread_barrier_t = struct { 2748 F__ccgo_pad1 [0]uint64 2749 F__size [32]uint8 2750 } /* pthreadtypes.h:112:3 */ 2751 2752 type Pthread_barrierattr_t = struct { 2753 F__ccgo_pad1 [0]uint32 2754 F__size [4]uint8 2755 } /* pthreadtypes.h:118:3 */ 2756 2757 // System-specific extensions. 2758 // System-specific extensions of <signal.h>, Linux version. 2759 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2760 // This file is part of the GNU C Library. 2761 // 2762 // The GNU C Library is free software; you can redistribute it and/or 2763 // modify it under the terms of the GNU Lesser General Public 2764 // License as published by the Free Software Foundation; either 2765 // version 2.1 of the License, or (at your option) any later version. 2766 // 2767 // The GNU C Library is distributed in the hope that it will be useful, 2768 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2769 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2770 // Lesser General Public License for more details. 2771 // 2772 // You should have received a copy of the GNU Lesser General Public 2773 // License along with the GNU C Library; if not, see 2774 // <https://www.gnu.org/licenses/>. 2775 2776 var _ uint8 /* gen.c:2:13: */