gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

stdio_netbsd_amd64.go (20090B)


      1 // Code generated by 'ccgo stdio/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 stdio/stdio_netbsd_amd64.go -pkgname stdio', DO NOT EDIT.
      2 
      3 package stdio
      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 	BUFSIZ                    = 1024      // stdio.h:182:1:
     19 	EOF                       = -1        // stdio.h:183:1:
     20 	FILENAME_MAX              = 1024      // stdio.h:192:1:
     21 	FOPEN_MAX                 = 20        // stdio.h:191:1:
     22 	FPARSELN_UNESCALL         = 0x0f      // stdio.h:411:1:
     23 	FPARSELN_UNESCCOMM        = 0x04      // stdio.h:409:1:
     24 	FPARSELN_UNESCCONT        = 0x02      // stdio.h:408:1:
     25 	FPARSELN_UNESCESC         = 0x01      // stdio.h:407:1:
     26 	FPARSELN_UNESCREST        = 0x08      // stdio.h:410:1:
     27 	L_ctermid                 = 1024      // stdio.h:292:1:
     28 	L_cuserid                 = 9         // stdio.h:293:1:
     29 	L_tmpnam                  = 1024      // stdio.h:198:1:
     30 	P_tmpdir                  = "/tmp/"   // stdio.h:196:1:
     31 	SEEK_CUR                  = 1         // stdio.h:209:1:
     32 	SEEK_END                  = 2         // stdio.h:212:1:
     33 	SEEK_SET                  = 0         // stdio.h:206:1:
     34 	TMP_MAX                   = 308915776 // stdio.h:201:1:
     35 	X_AMD64_INT_TYPES_H_      = 0         // int_types.h:35:1:
     36 	X_FILE_OFFSET_BITS        = 64        // <builtin>:25:1:
     37 	X_FSTDIO                  = 0         // stdio.h:72:1:
     38 	X_IOFBF                   = 0         // stdio.h:178:1:
     39 	X_IOLBF                   = 1         // stdio.h:179:1:
     40 	X_IONBF                   = 2         // stdio.h:180:1:
     41 	X_LP64                    = 1         // <predefined>:268:1:
     42 	X_NETBSD_SOURCE           = 1         // featuretest.h:70:1:
     43 	X_STDIO_H_                = 0         // stdio.h:38:1:
     44 	X_SYS_ANSI_H_             = 0         // ansi.h:33:1:
     45 	X_SYS_CDEFS_ELF_H_        = 0         // cdefs_elf.h:31:1:
     46 	X_SYS_CDEFS_H_            = 0         // cdefs.h:37:1:
     47 	X_SYS_COMMON_ANSI_H_      = 0         // common_ansi.h:33:1:
     48 	X_SYS_COMMON_INT_TYPES_H_ = 0         // common_int_types.h:33:1:
     49 	X_SYS_NULL_H_             = 0         // null.h:9:1:
     50 	X_X86_64_CDEFS_H_         = 0         // cdefs.h:4:1:
     51 )
     52 
     53 type Ptrdiff_t = int64 /* <builtin>:3:26 */
     54 
     55 type Size_t = uint64 /* <builtin>:9:23 */
     56 
     57 type Wchar_t = int32 /* <builtin>:15:24 */
     58 
     59 type X__int128_t = struct {
     60 	Flo int64
     61 	Fhi int64
     62 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
     63 type X__uint128_t = struct {
     64 	Flo uint64
     65 	Fhi uint64
     66 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
     67 
     68 type X__builtin_va_list = uintptr /* <builtin>:46:14 */
     69 type X__float128 = float64        /* <builtin>:47:21 */
     70 
     71 // return true if value 'a' fits in type 't'
     72 
     73 //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
     74 
     75 // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
     76 // Public domain.
     77 //
     78 // NOTE: Do not protect this header against multiple inclusion.  Doing
     79 // so can have subtle side-effects due to header file inclusion order
     80 // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
     81 // protect each CPP macro that we want to supply.
     82 
     83 // Feature-test macros are defined by several standards, and allow an
     84 // application to specify what symbols they want the system headers to
     85 // expose, and hence what standard they want them to conform to.
     86 // There are two classes of feature-test macros.  The first class
     87 // specify complete standards, and if one of these is defined, header
     88 // files will try to conform to the relevant standard.  They are:
     89 //
     90 // ANSI macros:
     91 // _ANSI_SOURCE			ANSI C89
     92 //
     93 // POSIX macros:
     94 // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
     95 // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
     96 // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
     97 // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
     98 // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
     99 // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
    100 // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
    101 //
    102 // X/Open macros:
    103 // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
    104 // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
    105 // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
    106 // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
    107 // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
    108 // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
    109 //
    110 // NetBSD macros:
    111 // _NETBSD_SOURCE == 1		Make all NetBSD features available.
    112 //
    113 // If more than one of these "major" feature-test macros is defined,
    114 // then the set of facilities provided (and namespace used) is the
    115 // union of that specified by the relevant standards, and in case of
    116 // conflict, the earlier standard in the above list has precedence (so
    117 // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
    118 // of rename() that's used is the POSIX one).  If none of the "major"
    119 // feature-test macros is defined, _NETBSD_SOURCE is assumed.
    120 //
    121 // There are also "minor" feature-test macros, which enable extra
    122 // functionality in addition to some base standard.  They should be
    123 // defined along with one of the "major" macros.  The "minor" macros
    124 // are:
    125 //
    126 // _REENTRANT
    127 // _ISOC99_SOURCE
    128 // _ISOC11_SOURCE
    129 // _LARGEFILE_SOURCE		Large File Support
    130 //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
    131 
    132 //	$NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
    133 
    134 // -
    135 // Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
    136 // All rights reserved.
    137 //
    138 // This code is derived from software contributed to The NetBSD Foundation
    139 // by Jun-ichiro itojun Hagino and by Klaus Klein.
    140 //
    141 // Redistribution and use in source and binary forms, with or without
    142 // modification, are permitted provided that the following conditions
    143 // are met:
    144 // 1. Redistributions of source code must retain the above copyright
    145 //    notice, this list of conditions and the following disclaimer.
    146 // 2. Redistributions in binary form must reproduce the above copyright
    147 //    notice, this list of conditions and the following disclaimer in the
    148 //    documentation and/or other materials provided with the distribution.
    149 //
    150 // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
    151 // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
    152 // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    153 // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
    154 // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    155 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    156 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    157 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    158 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    159 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    160 // POSSIBILITY OF SUCH DAMAGE.
    161 
    162 //	$NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
    163 
    164 //	$NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
    165 
    166 // -
    167 // Copyright (c) 2014 The NetBSD Foundation, Inc.
    168 // All rights reserved.
    169 //
    170 // This code is derived from software contributed to The NetBSD Foundation
    171 // by Matt Thomas of 3am Software Foundry.
    172 //
    173 // Redistribution and use in source and binary forms, with or without
    174 // modification, are permitted provided that the following conditions
    175 // are met:
    176 // 1. Redistributions of source code must retain the above copyright
    177 //    notice, this list of conditions and the following disclaimer.
    178 // 2. Redistributions in binary form must reproduce the above copyright
    179 //    notice, this list of conditions and the following disclaimer in the
    180 //    documentation and/or other materials provided with the distribution.
    181 //
    182 // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
    183 // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
    184 // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    185 // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
    186 // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    187 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    188 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    189 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    190 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    191 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    192 // POSSIBILITY OF SUCH DAMAGE.
    193 
    194 //	$NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
    195 
    196 // * Copyright (c) 1991, 1993
    197 //	The Regents of the University of California.  All rights reserved.
    198 //
    199 // This code is derived from software contributed to Berkeley by
    200 // Berkeley Software Design, Inc.
    201 //
    202 // Redistribution and use in source and binary forms, with or without
    203 // modification, are permitted provided that the following conditions
    204 // are met:
    205 // 1. Redistributions of source code must retain the above copyright
    206 //    notice, this list of conditions and the following disclaimer.
    207 // 2. Redistributions in binary form must reproduce the above copyright
    208 //    notice, this list of conditions and the following disclaimer in the
    209 //    documentation and/or other materials provided with the distribution.
    210 // 3. Neither the name of the University nor the names of its contributors
    211 //    may be used to endorse or promote products derived from this software
    212 //    without specific prior written permission.
    213 //
    214 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    215 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    216 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    217 // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    218 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    219 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    220 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    221 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    222 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    223 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    224 // SUCH DAMAGE.
    225 //
    226 //	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
    227 
    228 //	$NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
    229 
    230 // -
    231 // Copyright (c) 1990 The Regents of the University of California.
    232 // All rights reserved.
    233 //
    234 // Redistribution and use in source and binary forms, with or without
    235 // modification, are permitted provided that the following conditions
    236 // are met:
    237 // 1. Redistributions of source code must retain the above copyright
    238 //    notice, this list of conditions and the following disclaimer.
    239 // 2. Redistributions in binary form must reproduce the above copyright
    240 //    notice, this list of conditions and the following disclaimer in the
    241 //    documentation and/or other materials provided with the distribution.
    242 // 3. Neither the name of the University nor the names of its contributors
    243 //    may be used to endorse or promote products derived from this software
    244 //    without specific prior written permission.
    245 //
    246 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    247 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    248 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    249 // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    250 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    251 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    252 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    253 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    254 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    255 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    256 // SUCH DAMAGE.
    257 //
    258 //	from: @(#)types.h	7.5 (Berkeley) 3/9/91
    259 
    260 //	$NetBSD: common_int_types.h,v 1.1 2014/07/25 21:43:13 joerg Exp $
    261 
    262 // -
    263 // Copyright (c) 2014 The NetBSD Foundation, Inc.
    264 // All rights reserved.
    265 //
    266 // This code is derived from software contributed to The NetBSD Foundation
    267 // by Joerg Sonnenberger.
    268 //
    269 // Redistribution and use in source and binary forms, with or without
    270 // modification, are permitted provided that the following conditions
    271 // are met:
    272 // 1. Redistributions of source code must retain the above copyright
    273 //    notice, this list of conditions and the following disclaimer.
    274 // 2. Redistributions in binary form must reproduce the above copyright
    275 //    notice, this list of conditions and the following disclaimer in the
    276 //    documentation and/or other materials provided with the distribution.
    277 //
    278 // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
    279 // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
    280 // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    281 // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
    282 // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    283 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    284 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    285 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    286 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    287 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    288 // POSSIBILITY OF SUCH DAMAGE.
    289 
    290 // 7.18.1 Integer types
    291 
    292 // 7.18.1.1 Exact-width integer types
    293 
    294 type X__int8_t = int8     /* common_int_types.h:45:27 */
    295 type X__uint8_t = uint8   /* common_int_types.h:46:27 */
    296 type X__int16_t = int16   /* common_int_types.h:47:27 */
    297 type X__uint16_t = uint16 /* common_int_types.h:48:27 */
    298 type X__int32_t = int32   /* common_int_types.h:49:27 */
    299 type X__uint32_t = uint32 /* common_int_types.h:50:27 */
    300 type X__int64_t = int64   /* common_int_types.h:51:27 */
    301 type X__uint64_t = uint64 /* common_int_types.h:52:27 */
    302 
    303 // 7.18.1.4 Integer types capable of holding object pointers
    304 
    305 type X__intptr_t = int64   /* common_int_types.h:58:27 */
    306 type X__uintptr_t = uint64 /* common_int_types.h:59:26 */
    307 
    308 // Types which are fundamental to the implementation and may appear in
    309 // more than one standard header are defined here.  Standard headers
    310 // then use:
    311 //	#ifdef	_BSD_SIZE_T_
    312 //	typedef	_BSD_SIZE_T_ size_t;
    313 //	#undef	_BSD_SIZE_T_
    314 //	#endif
    315 
    316 type X__caddr_t = uintptr        /* ansi.h:37:14 */ // core address
    317 type X__gid_t = X__uint32_t      /* ansi.h:38:20 */ // group id
    318 type X__in_addr_t = X__uint32_t  /* ansi.h:39:20 */ // IP(v4) address
    319 type X__in_port_t = X__uint16_t  /* ansi.h:40:20 */ // "Internet" port number
    320 type X__mode_t = X__uint32_t     /* ansi.h:41:20 */ // file permissions
    321 type X__off_t = X__int64_t       /* ansi.h:42:19 */ // file offset
    322 type X__pid_t = X__int32_t       /* ansi.h:43:19 */ // process id
    323 type X__sa_family_t = X__uint8_t /* ansi.h:44:19 */ // socket address family
    324 type X__socklen_t = uint32       /* ansi.h:45:22 */ // socket-related datum length
    325 type X__uid_t = X__uint32_t      /* ansi.h:46:20 */ // user id
    326 type X__fsblkcnt_t = X__uint64_t /* ansi.h:47:20 */ // fs block count (statvfs)
    327 type X__fsfilcnt_t = X__uint64_t /* ansi.h:48:20 */
    328 type X__wctrans_t = uintptr      /* ansi.h:51:32 */
    329 type X__wctype_t = uintptr       /* ansi.h:54:31 */
    330 
    331 // mbstate_t is an opaque object to keep conversion state, during multibyte
    332 // stream conversions.  The content must not be referenced by user programs.
    333 type X__mbstate_t = struct {
    334 	F__mbstateL  X__int64_t
    335 	F__ccgo_pad1 [120]byte
    336 } /* ansi.h:63:3 */
    337 
    338 type X__va_list = X__builtin_va_list /* ansi.h:72:27 */
    339 type Ssize_t = int64                 /* stdio.h:49:23 */
    340 
    341 //	$NetBSD: null.h,v 1.9 2010/07/06 11:56:20 kleink Exp $
    342 
    343 // Written by Klaus Klein <kleink@NetBSD.org>, December 22, 1999.
    344 // Public domain.
    345 
    346 // This is fairly grotesque, but pure ANSI code must not inspect the
    347 // innards of an fpos_t anyway.  The library internally uses off_t,
    348 // which we assume is exactly as big as eight chars.
    349 type X__sfpos = struct {
    350 	F_pos         X__off_t
    351 	F_mbstate_in  X__mbstate_t
    352 	F_mbstate_out X__mbstate_t
    353 } /* stdio.h:67:9 */
    354 
    355 //	$NetBSD: null.h,v 1.9 2010/07/06 11:56:20 kleink Exp $
    356 
    357 // Written by Klaus Klein <kleink@NetBSD.org>, December 22, 1999.
    358 // Public domain.
    359 
    360 // This is fairly grotesque, but pure ANSI code must not inspect the
    361 // innards of an fpos_t anyway.  The library internally uses off_t,
    362 // which we assume is exactly as big as eight chars.
    363 type Fpos_t = X__sfpos /* stdio.h:70:3 */
    364 
    365 // NB: to fit things in six character monocase externals, the stdio
    366 // code uses the prefix `__s' for stdio objects, typically followed
    367 // by a three-character attempt at a mnemonic.
    368 
    369 // stdio buffers
    370 type X__sbuf = struct {
    371 	F_base       uintptr
    372 	F_size       int32
    373 	F__ccgo_pad1 [4]byte
    374 } /* stdio.h:81:1 */
    375 
    376 // stdio state variables.
    377 //
    378 // The following always hold:
    379 //
    380 //	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
    381 //		_lbfsize is -_bf._size, else _lbfsize is 0
    382 //	if _flags&__SRD, _w is 0
    383 //	if _flags&__SWR, _r is 0
    384 //
    385 // This ensures that the getc and putc macros (or inline functions) never
    386 // try to write or read from a file that is in `read' or `write' mode.
    387 // (Moreover, they can, and do, automatically switch from read mode to
    388 // write mode, and back, on "r+" and "w+" files.)
    389 //
    390 // _lbfsize is used only to make the inline line-buffered output stream
    391 // code as compact as possible.
    392 //
    393 // _ub, _up, and _ur are used when ungetc() pushes back more characters
    394 // than fit in the current _bf, or when ungetc() pushes back a character
    395 // that does not match the previous one in _bf.  When this happens,
    396 // _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
    397 // _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
    398 //
    399 // NB: see WARNING above before changing the layout of this structure!
    400 type X__sFILE = struct {
    401 	F_p          uintptr
    402 	F_r          int32
    403 	F_w          int32
    404 	F_flags      uint16
    405 	F_file       int16
    406 	F__ccgo_pad1 [4]byte
    407 	F_bf         struct {
    408 		F_base       uintptr
    409 		F_size       int32
    410 		F__ccgo_pad1 [4]byte
    411 	}
    412 	F_lbfsize    int32
    413 	F__ccgo_pad2 [4]byte
    414 	F_cookie     uintptr
    415 	F_close      uintptr
    416 	F_read       uintptr
    417 	F_seek       uintptr
    418 	F_write      uintptr
    419 	F_ext        struct {
    420 		F_base       uintptr
    421 		F_size       int32
    422 		F__ccgo_pad1 [4]byte
    423 	}
    424 	F_up         uintptr
    425 	F_ur         int32
    426 	F_ubuf       [3]uint8
    427 	F_nbuf       [1]uint8
    428 	F_flush      uintptr
    429 	F_lb_unused  [8]int8
    430 	F_blksize    int32
    431 	F__ccgo_pad3 [4]byte
    432 	F_offset     X__off_t
    433 } /* stdio.h:112:9 */
    434 
    435 // stdio state variables.
    436 //
    437 // The following always hold:
    438 //
    439 //	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
    440 //		_lbfsize is -_bf._size, else _lbfsize is 0
    441 //	if _flags&__SRD, _w is 0
    442 //	if _flags&__SWR, _r is 0
    443 //
    444 // This ensures that the getc and putc macros (or inline functions) never
    445 // try to write or read from a file that is in `read' or `write' mode.
    446 // (Moreover, they can, and do, automatically switch from read mode to
    447 // write mode, and back, on "r+" and "w+" files.)
    448 //
    449 // _lbfsize is used only to make the inline line-buffered output stream
    450 // code as compact as possible.
    451 //
    452 // _ub, _up, and _ur are used when ungetc() pushes back more characters
    453 // than fit in the current _bf, or when ungetc() pushes back a character
    454 // that does not match the previous one in _bf.  When this happens,
    455 // _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
    456 // _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
    457 //
    458 // NB: see WARNING above before changing the layout of this structure!
    459 type FILE = X__sFILE /* stdio.h:146:3 */
    460 
    461 // X/Open CAE Specification Issue 5 Version 2
    462 type Off_t = X__off_t /* stdio.h:376:18 */
    463 
    464 type Locale_t = uintptr /* stdio.h:543:25 */
    465 
    466 var _ int8 /* gen.c:2:13: */