golang.org/x/sys@v0.20.1-0.20240517151509-673e0f94c16d/unix/ztypes_zos_s390x.go (about) 1 // Copyright 2020 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build zos && s390x 6 7 // Hand edited based on ztypes_linux_s390x.go 8 // TODO: auto-generate. 9 10 package unix 11 12 const ( 13 SizeofPtr = 0x8 14 SizeofShort = 0x2 15 SizeofInt = 0x4 16 SizeofLong = 0x8 17 SizeofLongLong = 0x8 18 PathMax = 0x1000 19 ) 20 21 const ( 22 SizeofSockaddrAny = 128 23 SizeofCmsghdr = 12 24 SizeofIPMreq = 8 25 SizeofIPv6Mreq = 20 26 SizeofICMPv6Filter = 32 27 SizeofIPv6MTUInfo = 32 28 SizeofInet4Pktinfo = 8 29 SizeofInet6Pktinfo = 20 30 SizeofLinger = 8 31 SizeofSockaddrInet4 = 16 32 SizeofSockaddrInet6 = 28 33 SizeofTCPInfo = 0x68 34 SizeofUcred = 12 35 ) 36 37 type ( 38 _C_short int16 39 _C_int int32 40 _C_long int64 41 _C_long_long int64 42 ) 43 44 type Timespec struct { 45 Sec int64 46 Nsec int64 47 } 48 49 type Timeval struct { 50 Sec int64 51 Usec int64 52 } 53 54 type timeval_zos struct { //correct (with padding and all) 55 Sec int64 56 _ [4]byte // pad 57 Usec int32 58 } 59 60 type Tms struct { //clock_t is 4-byte unsigned int in zos 61 Utime uint32 62 Stime uint32 63 Cutime uint32 64 Cstime uint32 65 } 66 67 type Time_t int64 68 69 type Utimbuf struct { 70 Actime int64 71 Modtime int64 72 } 73 74 type Utsname struct { 75 Sysname [16]byte 76 Nodename [32]byte 77 Release [8]byte 78 Version [8]byte 79 Machine [16]byte 80 } 81 82 type Ucred struct { 83 Pid int32 84 Uid uint32 85 Gid uint32 86 } 87 88 type RawSockaddrInet4 struct { 89 Len uint8 90 Family uint8 91 Port uint16 92 Addr [4]byte /* in_addr */ 93 Zero [8]uint8 94 } 95 96 type RawSockaddrInet6 struct { 97 Len uint8 98 Family uint8 99 Port uint16 100 Flowinfo uint32 101 Addr [16]byte /* in6_addr */ 102 Scope_id uint32 103 } 104 105 type RawSockaddrUnix struct { 106 Len uint8 107 Family uint8 108 Path [108]int8 109 } 110 111 type RawSockaddr struct { 112 Len uint8 113 Family uint8 114 Data [14]uint8 115 } 116 117 type RawSockaddrAny struct { 118 Addr RawSockaddr 119 _ [112]uint8 // pad 120 } 121 122 type _Socklen uint32 123 124 type Linger struct { 125 Onoff int32 126 Linger int32 127 } 128 129 type Iovec struct { 130 Base *byte 131 Len uint64 132 } 133 134 type IPMreq struct { 135 Multiaddr [4]byte /* in_addr */ 136 Interface [4]byte /* in_addr */ 137 } 138 139 type IPv6Mreq struct { 140 Multiaddr [16]byte /* in6_addr */ 141 Interface uint32 142 } 143 144 type Msghdr struct { 145 Name *byte 146 Iov *Iovec 147 Control *byte 148 Flags int32 149 Namelen int32 150 Iovlen int32 151 Controllen int32 152 } 153 154 type Cmsghdr struct { 155 Len int32 156 Level int32 157 Type int32 158 } 159 160 type Inet4Pktinfo struct { 161 Addr [4]byte /* in_addr */ 162 Ifindex uint32 163 } 164 165 type Inet6Pktinfo struct { 166 Addr [16]byte /* in6_addr */ 167 Ifindex uint32 168 } 169 170 type IPv6MTUInfo struct { 171 Addr RawSockaddrInet6 172 Mtu uint32 173 } 174 175 type ICMPv6Filter struct { 176 Data [8]uint32 177 } 178 179 type TCPInfo struct { 180 State uint8 181 Ca_state uint8 182 Retransmits uint8 183 Probes uint8 184 Backoff uint8 185 Options uint8 186 Rto uint32 187 Ato uint32 188 Snd_mss uint32 189 Rcv_mss uint32 190 Unacked uint32 191 Sacked uint32 192 Lost uint32 193 Retrans uint32 194 Fackets uint32 195 Last_data_sent uint32 196 Last_ack_sent uint32 197 Last_data_recv uint32 198 Last_ack_recv uint32 199 Pmtu uint32 200 Rcv_ssthresh uint32 201 Rtt uint32 202 Rttvar uint32 203 Snd_ssthresh uint32 204 Snd_cwnd uint32 205 Advmss uint32 206 Reordering uint32 207 Rcv_rtt uint32 208 Rcv_space uint32 209 Total_retrans uint32 210 } 211 212 type _Gid_t uint32 213 214 type rusage_zos struct { 215 Utime timeval_zos 216 Stime timeval_zos 217 } 218 219 type Rusage struct { 220 Utime Timeval 221 Stime Timeval 222 Maxrss int64 223 Ixrss int64 224 Idrss int64 225 Isrss int64 226 Minflt int64 227 Majflt int64 228 Nswap int64 229 Inblock int64 230 Oublock int64 231 Msgsnd int64 232 Msgrcv int64 233 Nsignals int64 234 Nvcsw int64 235 Nivcsw int64 236 } 237 238 type Rlimit struct { 239 Cur uint64 240 Max uint64 241 } 242 243 // { int, short, short } in poll.h 244 type PollFd struct { 245 Fd int32 246 Events int16 247 Revents int16 248 } 249 250 type Stat_t struct { //Linux Definition 251 Dev uint64 252 Ino uint64 253 Nlink uint64 254 Mode uint32 255 Uid uint32 256 Gid uint32 257 _ int32 258 Rdev uint64 259 Size int64 260 Atim Timespec 261 Mtim Timespec 262 Ctim Timespec 263 Blksize int64 264 Blocks int64 265 _ [3]int64 266 } 267 268 type Stat_LE_t struct { 269 _ [4]byte // eye catcher 270 Length uint16 271 Version uint16 272 Mode int32 273 Ino uint32 274 Dev uint32 275 Nlink int32 276 Uid int32 277 Gid int32 278 Size int64 279 Atim31 [4]byte 280 Mtim31 [4]byte 281 Ctim31 [4]byte 282 Rdev uint32 283 Auditoraudit uint32 284 Useraudit uint32 285 Blksize int32 286 Creatim31 [4]byte 287 AuditID [16]byte 288 _ [4]byte // rsrvd1 289 File_tag struct { 290 Ccsid uint16 291 Txtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14 292 } 293 CharsetID [8]byte 294 Blocks int64 295 Genvalue uint32 296 Reftim31 [4]byte 297 Fid [8]byte 298 Filefmt byte 299 Fspflag2 byte 300 _ [2]byte // rsrvd2 301 Ctimemsec int32 302 Seclabel [8]byte 303 _ [4]byte // rsrvd3 304 _ [4]byte // rsrvd4 305 Atim Time_t 306 Mtim Time_t 307 Ctim Time_t 308 Creatim Time_t 309 Reftim Time_t 310 _ [24]byte // rsrvd5 311 } 312 313 type Statvfs_t struct { 314 ID [4]byte 315 Len int32 316 Bsize uint64 317 Blocks uint64 318 Usedspace uint64 319 Bavail uint64 320 Flag uint64 321 Maxfilesize int64 322 _ [16]byte 323 Frsize uint64 324 Bfree uint64 325 Files uint32 326 Ffree uint32 327 Favail uint32 328 Namemax31 uint32 329 Invarsec uint32 330 _ [4]byte 331 Fsid uint64 332 Namemax uint64 333 } 334 335 type Statfs_t struct { 336 Type uint64 337 Bsize uint64 338 Blocks uint64 339 Bfree uint64 340 Bavail uint64 341 Files uint32 342 Ffree uint32 343 Fsid uint64 344 Namelen uint64 345 Frsize uint64 346 Flags uint64 347 _ [4]uint64 348 } 349 350 type direntLE struct { 351 Reclen uint16 352 Namlen uint16 353 Ino uint32 354 Extra uintptr 355 Name [256]byte 356 } 357 358 type Dirent struct { 359 Ino uint64 360 Off int64 361 Reclen uint16 362 Type uint8 363 Name [256]uint8 364 _ [5]byte 365 } 366 367 type FdSet struct { 368 Bits [64]int32 369 } 370 371 // This struct is packed on z/OS so it can't be used directly. 372 type Flock_t struct { 373 Type int16 374 Whence int16 375 Start int64 376 Len int64 377 Pid int32 378 } 379 380 type Termios struct { 381 Cflag uint32 382 Iflag uint32 383 Lflag uint32 384 Oflag uint32 385 Cc [11]uint8 386 } 387 388 type Winsize struct { 389 Row uint16 390 Col uint16 391 Xpixel uint16 392 Ypixel uint16 393 } 394 395 type W_Mnth struct { 396 Hid [4]byte 397 Size int32 398 Cur1 int32 //32bit pointer 399 Cur2 int32 //^ 400 Devno uint32 401 _ [4]byte 402 } 403 404 type W_Mntent struct { 405 Fstype uint32 406 Mode uint32 407 Dev uint32 408 Parentdev uint32 409 Rootino uint32 410 Status byte 411 Ddname [9]byte 412 Fstname [9]byte 413 Fsname [45]byte 414 Pathlen uint32 415 Mountpoint [1024]byte 416 Jobname [8]byte 417 PID int32 418 Parmoffset int32 419 Parmlen int16 420 Owner [8]byte 421 Quiesceowner [8]byte 422 _ [38]byte 423 } 424 425 type EpollEvent struct { 426 Events uint32 427 _ int32 428 Fd int32 429 Pad int32 430 } 431 432 type InotifyEvent struct { 433 Wd int32 434 Mask uint32 435 Cookie uint32 436 Len uint32 437 Name string 438 } 439 440 const ( 441 SizeofInotifyEvent = 0x10 442 ) 443 444 type ConsMsg2 struct { 445 Cm2Format uint16 446 Cm2R1 uint16 447 Cm2Msglength uint32 448 Cm2Msg *byte 449 Cm2R2 [4]byte 450 Cm2R3 [4]byte 451 Cm2Routcde *uint32 452 Cm2Descr *uint32 453 Cm2Msgflag uint32 454 Cm2Token uint32 455 Cm2Msgid *uint32 456 Cm2R4 [4]byte 457 Cm2DomToken uint32 458 Cm2DomMsgid *uint32 459 Cm2ModCartptr *byte 460 Cm2ModConsidptr *byte 461 Cm2MsgCart [8]byte 462 Cm2MsgConsid [4]byte 463 Cm2R5 [12]byte 464 } 465 466 const ( 467 CC_modify = 1 468 CC_stop = 2 469 CONSOLE_FORMAT_2 = 2 470 CONSOLE_FORMAT_3 = 3 471 CONSOLE_HRDCPY = 0x80000000 472 ) 473 474 type OpenHow struct { 475 Flags uint64 476 Mode uint64 477 Resolve uint64 478 } 479 480 const SizeofOpenHow = 0x18 481 482 const ( 483 RESOLVE_CACHED = 0x20 484 RESOLVE_BENEATH = 0x8 485 RESOLVE_IN_ROOT = 0x10 486 RESOLVE_NO_MAGICLINKS = 0x2 487 RESOLVE_NO_SYMLINKS = 0x4 488 RESOLVE_NO_XDEV = 0x1 489 ) 490 491 type Siginfo struct { 492 Signo int32 493 Errno int32 494 Code int32 495 Pid int32 496 Uid uint32 497 _ [44]byte 498 } 499 500 type SysvIpcPerm struct { 501 Uid uint32 502 Gid uint32 503 Cuid uint32 504 Cgid uint32 505 Mode int32 506 } 507 508 type SysvShmDesc struct { 509 Perm SysvIpcPerm 510 _ [4]byte 511 Lpid int32 512 Cpid int32 513 Nattch uint32 514 _ [4]byte 515 _ [4]byte 516 _ [4]byte 517 _ int32 518 _ uint8 519 _ uint8 520 _ uint16 521 _ *byte 522 Segsz uint64 523 Atime Time_t 524 Dtime Time_t 525 Ctime Time_t 526 } 527 528 type SysvShmDesc64 struct { 529 Perm SysvIpcPerm 530 _ [4]byte 531 Lpid int32 532 Cpid int32 533 Nattch uint32 534 _ [4]byte 535 _ [4]byte 536 _ [4]byte 537 _ int32 538 _ byte 539 _ uint8 540 _ uint16 541 _ *byte 542 Segsz uint64 543 Atime int64 544 Dtime int64 545 Ctime int64 546 }