github.com/afumu/libc@v0.0.6/stdio/stdio_netbsd_amd64.go (about)

     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: */