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