Provide our own newlib libc
Newlib 2.2.0 w/ nan ofeatures, xtensa patches, locking implementation. Built from https://github.com/projectgus/newlib-xtensa branch xtensa-2_2_0-lock commit daa6ae40cdc8099f54c3e68a586fc1b906169c5a For more details, see: https://github.com/SuperHouse/esp-open-rtos/wiki/libc-configuration Closes #1
This commit is contained in:
		
							parent
							
								
									a566a51c09
								
							
						
					
					
						commit
						689cf874b2
					
				
					 112 changed files with 23413 additions and 0 deletions
				
			
		| 
						 | 
					@ -67,6 +67,9 @@ SDK_LIBS		?= main net80211 phy pp wpa
 | 
				
			||||||
# open source libraries linked in
 | 
					# open source libraries linked in
 | 
				
			||||||
LIBS ?= hal gcc c
 | 
					LIBS ?= hal gcc c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# set to 0 if you want to use the toolchain libc instead of esp-open-rtos newlib
 | 
				
			||||||
 | 
					OWN_LIBC ?= 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Note: this isn't overridable without a not-yet-merged patch to esptool
 | 
					# Note: this isn't overridable without a not-yet-merged patch to esptool
 | 
				
			||||||
ENTRY_SYMBOL = call_user_start
 | 
					ENTRY_SYMBOL = call_user_start
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,6 +119,11 @@ FW_FILE_2    = $(addprefix $(FW_BASE),$(FW_2).bin)
 | 
				
			||||||
# , which is useful for overriding things.
 | 
					# , which is useful for overriding things.
 | 
				
			||||||
INC_DIRS      = $(PROGRAM_DIR) $(PROGRAM_DIR)include $(ROOT)include
 | 
					INC_DIRS      = $(PROGRAM_DIR) $(PROGRAM_DIR)include $(ROOT)include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifeq ($(OWN_LIBC),1)
 | 
				
			||||||
 | 
					    INC_DIRS += $(ROOT)libc/xtensa-lx106-elf/include
 | 
				
			||||||
 | 
					    LDFLAGS += -L$(ROOT)libc/xtensa-lx106-elf/lib
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ("$(V)","1")
 | 
					ifeq ("$(V)","1")
 | 
				
			||||||
Q :=
 | 
					Q :=
 | 
				
			||||||
vecho := @true
 | 
					vecho := @true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								libc/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								libc/README.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					Newlib 2.2.0 with xtensa & locking patches, built from commit daa6ae40cdc8099f54c3e68a586fc1b906169c5a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For details on newlib in esp-open-rtos, see https://github.com/SuperHouse/esp-open-rtos/wiki/libc-configuration
 | 
				
			||||||
							
								
								
									
										2721
									
								
								libc/share/info/configure.info
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2721
									
								
								libc/share/info/configure.info
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										5720
									
								
								libc/share/info/standards.info
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5720
									
								
								libc/share/info/standards.info
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										140
									
								
								libc/xtensa-lx106-elf/include/_ansi.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								libc/xtensa-lx106-elf/include/_ansi.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,140 @@
 | 
				
			||||||
 | 
					/* Provide support for both ANSI and non-ANSI environments.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Some ANSI environments are "broken" in the sense that __STDC__ cannot be
 | 
				
			||||||
 | 
					   relied upon to have it's intended meaning.  Therefore we must use our own
 | 
				
			||||||
 | 
					   concoction: _HAVE_STDC.  Always use _HAVE_STDC instead of __STDC__ in newlib
 | 
				
			||||||
 | 
					   sources!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
 | 
				
			||||||
 | 
					   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
 | 
				
			||||||
 | 
					   files aren't affected).  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_ANSIDECL_H_
 | 
				
			||||||
 | 
					#define	_ANSIDECL_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <newlib.h>
 | 
				
			||||||
 | 
					#include <sys/config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* First try to figure out whether we really are in an ANSI C environment.  */
 | 
				
			||||||
 | 
					/* FIXME: This probably needs some work.  Perhaps sys/config.h can be
 | 
				
			||||||
 | 
					   prevailed upon to give us a clue.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __STDC__
 | 
				
			||||||
 | 
					#define _HAVE_STDC
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  ISO C++.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					#if !(defined(_BEGIN_STD_C) && defined(_END_STD_C))
 | 
				
			||||||
 | 
					#ifdef _HAVE_STD_CXX
 | 
				
			||||||
 | 
					#define _BEGIN_STD_C namespace std { extern "C" {
 | 
				
			||||||
 | 
					#define _END_STD_C  } }
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _BEGIN_STD_C extern "C" {
 | 
				
			||||||
 | 
					#define _END_STD_C  }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ (3, 3)
 | 
				
			||||||
 | 
					#define _NOTHROW __attribute__ ((__nothrow__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _NOTHROW throw()
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _BEGIN_STD_C
 | 
				
			||||||
 | 
					#define _END_STD_C
 | 
				
			||||||
 | 
					#define _NOTHROW
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _HAVE_STDC
 | 
				
			||||||
 | 
					#define	_PTR		void *
 | 
				
			||||||
 | 
					#define	_AND		,
 | 
				
			||||||
 | 
					#define	_NOARGS		void
 | 
				
			||||||
 | 
					#define	_CONST		const
 | 
				
			||||||
 | 
					#define	_VOLATILE	volatile
 | 
				
			||||||
 | 
					#define	_SIGNED		signed
 | 
				
			||||||
 | 
					#define	_DOTS		, ...
 | 
				
			||||||
 | 
					#define _VOID void
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define	_EXFUN_NOTHROW(name, proto)	__cdecl name proto _NOTHROW
 | 
				
			||||||
 | 
					#define	_EXFUN(name, proto)		__cdecl name proto
 | 
				
			||||||
 | 
					#define	_EXPARM(name, proto)		(* __cdecl name) proto
 | 
				
			||||||
 | 
					#define	_EXFNPTR(name, proto)		(__cdecl * name) proto
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_EXFUN_NOTHROW(name, proto)	name proto _NOTHROW
 | 
				
			||||||
 | 
					#define	_EXFUN(name, proto)		name proto
 | 
				
			||||||
 | 
					#define _EXPARM(name, proto)		(* name) proto
 | 
				
			||||||
 | 
					#define _EXFNPTR(name, proto)		(* name) proto
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	_DEFUN(name, arglist, args)	name(args)
 | 
				
			||||||
 | 
					#define	_DEFUN_VOID(name)		name(_NOARGS)
 | 
				
			||||||
 | 
					#define _CAST_VOID (void)
 | 
				
			||||||
 | 
					#ifndef _LONG_DOUBLE
 | 
				
			||||||
 | 
					#define _LONG_DOUBLE long double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef _PARAMS
 | 
				
			||||||
 | 
					#define _PARAMS(paramlist)		paramlist
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else	
 | 
				
			||||||
 | 
					#define	_PTR		char *
 | 
				
			||||||
 | 
					#define	_AND		;
 | 
				
			||||||
 | 
					#define	_NOARGS
 | 
				
			||||||
 | 
					#define	_CONST
 | 
				
			||||||
 | 
					#define	_VOLATILE
 | 
				
			||||||
 | 
					#define	_SIGNED
 | 
				
			||||||
 | 
					#define	_DOTS
 | 
				
			||||||
 | 
					#define _VOID void
 | 
				
			||||||
 | 
					#define	_EXFUN(name, proto)		name()
 | 
				
			||||||
 | 
					#define	_EXFUN_NOTHROW(name, proto)	name()
 | 
				
			||||||
 | 
					#define	_DEFUN(name, arglist, args)	name arglist args;
 | 
				
			||||||
 | 
					#define	_DEFUN_VOID(name)		name()
 | 
				
			||||||
 | 
					#define _CAST_VOID
 | 
				
			||||||
 | 
					#define _LONG_DOUBLE double
 | 
				
			||||||
 | 
					#ifndef _PARAMS
 | 
				
			||||||
 | 
					#define _PARAMS(paramlist)		()
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Support gcc's __attribute__ facility.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					#define _ATTRIBUTE(attrs) __attribute__ (attrs)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _ATTRIBUTE(attrs)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  The traditional meaning of 'extern inline' for GCC is not
 | 
				
			||||||
 | 
					  to emit the function body unless the address is explicitly
 | 
				
			||||||
 | 
					  taken.  However this behaviour is changing to match the C99
 | 
				
			||||||
 | 
					  standard, which uses 'extern inline' to indicate that the
 | 
				
			||||||
 | 
					  function body *must* be emitted.  Likewise, a function declared
 | 
				
			||||||
 | 
					  without either 'extern' or 'static' defaults to extern linkage
 | 
				
			||||||
 | 
					  (C99 6.2.2p5), and the compiler may choose whether to use the
 | 
				
			||||||
 | 
					  inline version or call the extern linkage version (6.7.4p6).
 | 
				
			||||||
 | 
					  If we are using GCC, but do not have the new behaviour, we need
 | 
				
			||||||
 | 
					  to use extern inline; if we are using a new GCC with the
 | 
				
			||||||
 | 
					  C99-compatible behaviour, or a non-GCC compiler (which we will
 | 
				
			||||||
 | 
					  have to hope is C99, since there is no other way to achieve the
 | 
				
			||||||
 | 
					  effect of omitting the function if it isn't referenced) we use
 | 
				
			||||||
 | 
					  'static inline', which c99 defines to mean more-or-less the same
 | 
				
			||||||
 | 
					  as the Gnu C 'extern inline'.  */
 | 
				
			||||||
 | 
					#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
 | 
				
			||||||
 | 
					/* We're using GCC, but without the new C99-compatible behaviour.  */
 | 
				
			||||||
 | 
					#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* We're using GCC in C99 mode, or an unknown compiler which
 | 
				
			||||||
 | 
					  we just have to hope obeys the C99 semantics of inline.  */
 | 
				
			||||||
 | 
					#define _ELIDABLE_INLINE static __inline__
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ (3, 1)
 | 
				
			||||||
 | 
					#define _NOINLINE		__attribute__ ((__noinline__))
 | 
				
			||||||
 | 
					#define _NOINLINE_STATIC	_NOINLINE static
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* On non-GNU compilers and GCC prior to version 3.1 the compiler can't be
 | 
				
			||||||
 | 
					   trusted not to inline if it is static. */
 | 
				
			||||||
 | 
					#define _NOINLINE
 | 
				
			||||||
 | 
					#define _NOINLINE_STATIC
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _ANSIDECL_H_ */
 | 
				
			||||||
							
								
								
									
										40
									
								
								libc/xtensa-lx106-elf/include/_syslist.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								libc/xtensa-lx106-elf/include/_syslist.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					/* internal use only -- mapping of "system calls" for libraries that lose
 | 
				
			||||||
 | 
					   and only provide C names, so that we end up in violation of ANSI */
 | 
				
			||||||
 | 
					#ifndef __SYSLIST_H
 | 
				
			||||||
 | 
					#define __SYSLIST_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MISSING_SYSCALL_NAMES
 | 
				
			||||||
 | 
					#define _close close
 | 
				
			||||||
 | 
					#define _execve execve
 | 
				
			||||||
 | 
					#define _fcntl fcntl
 | 
				
			||||||
 | 
					#define _fork fork
 | 
				
			||||||
 | 
					#define _fstat fstat
 | 
				
			||||||
 | 
					#define _getpid getpid
 | 
				
			||||||
 | 
					#define _gettimeofday gettimeofday
 | 
				
			||||||
 | 
					#define _isatty isatty
 | 
				
			||||||
 | 
					#define _kill kill
 | 
				
			||||||
 | 
					#define _link link
 | 
				
			||||||
 | 
					#define _lseek lseek
 | 
				
			||||||
 | 
					#define _mkdir mkdir
 | 
				
			||||||
 | 
					#define _open open
 | 
				
			||||||
 | 
					#define _read read
 | 
				
			||||||
 | 
					#define _sbrk sbrk
 | 
				
			||||||
 | 
					#define _stat stat
 | 
				
			||||||
 | 
					#define _times times
 | 
				
			||||||
 | 
					#define _unlink unlink
 | 
				
			||||||
 | 
					#define _wait wait
 | 
				
			||||||
 | 
					#define _write write
 | 
				
			||||||
 | 
					#endif /* MISSING_SYSCALL_NAMES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined MISSING_SYSCALL_NAMES || !defined HAVE_OPENDIR
 | 
				
			||||||
 | 
					/* If the system call interface is missing opendir, readdir, and
 | 
				
			||||||
 | 
					   closedir, there is an implementation of these functions in
 | 
				
			||||||
 | 
					   libc/posix that is implemented using open, getdents, and close. 
 | 
				
			||||||
 | 
					   Note, these functions are currently not in the libc/syscalls
 | 
				
			||||||
 | 
					   directory.  */
 | 
				
			||||||
 | 
					#define _opendir opendir
 | 
				
			||||||
 | 
					#define _readdir readdir
 | 
				
			||||||
 | 
					#define _closedir closedir
 | 
				
			||||||
 | 
					#endif /* MISSING_SYSCALL_NAMES || !HAVE_OPENDIR */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__SYSLIST_H_ */
 | 
				
			||||||
							
								
								
									
										21
									
								
								libc/xtensa-lx106-elf/include/alloca.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								libc/xtensa-lx106-elf/include/alloca.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					/* libc/include/alloca.h - Allocate memory on stack */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Written 2000 by Werner Almesberger */
 | 
				
			||||||
 | 
					/* Rearranged for general inclusion by stdlib.h.
 | 
				
			||||||
 | 
					   2001, Corinna Vinschen <vinschen@redhat.com> */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _NEWLIB_ALLOCA_H
 | 
				
			||||||
 | 
					#define _NEWLIB_ALLOCA_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef alloca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					#define alloca(size) __builtin_alloca(size)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					void * _EXFUN(alloca,(size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										69
									
								
								libc/xtensa-lx106-elf/include/ar.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								libc/xtensa-lx106-elf/include/ar.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,69 @@
 | 
				
			||||||
 | 
					/*	$NetBSD: ar.h,v 1.4 1994/10/26 00:55:43 cgd Exp $	*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1991, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 * (c) UNIX System Laboratories, Inc.
 | 
				
			||||||
 | 
					 * All or some portions of this file are derived from material licensed
 | 
				
			||||||
 | 
					 * to the University of California by American Telephone and Telegraph
 | 
				
			||||||
 | 
					 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
 | 
				
			||||||
 | 
					 * the permission of UNIX System Laboratories, Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is derived from software contributed to Berkeley by
 | 
				
			||||||
 | 
					 * Hugh Smith at The University of Guelph.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 3. All advertising materials mentioning features or use of this software
 | 
				
			||||||
 | 
					 *    must display the following acknowledgement:
 | 
				
			||||||
 | 
					 *	This product includes software developed by the University of
 | 
				
			||||||
 | 
					 *	California, Berkeley and its contributors.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)ar.h	8.2 (Berkeley) 1/21/94
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _AR_H_
 | 
				
			||||||
 | 
					#define	_AR_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Pre-4BSD archives had these magic numbers in them. */
 | 
				
			||||||
 | 
					#define	OARMAG1	0177555
 | 
				
			||||||
 | 
					#define	OARMAG2	0177545
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	ARMAG		"!<arch>\n"	/* ar "magic number" */
 | 
				
			||||||
 | 
					#define	SARMAG		8		/* strlen(ARMAG); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	AR_EFMT1	"#1/"		/* extended format #1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct ar_hdr {
 | 
				
			||||||
 | 
						char ar_name[16];		/* name */
 | 
				
			||||||
 | 
						char ar_date[12];		/* modification time */
 | 
				
			||||||
 | 
						char ar_uid[6];			/* user id */
 | 
				
			||||||
 | 
						char ar_gid[6];			/* group id */
 | 
				
			||||||
 | 
						char ar_mode[8];		/* octal file permissions */
 | 
				
			||||||
 | 
						char ar_size[10];		/* size in bytes */
 | 
				
			||||||
 | 
					#define	ARFMAG	"`\n"
 | 
				
			||||||
 | 
						char ar_fmag[2];		/* consistency check */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_AR_H_ */
 | 
				
			||||||
							
								
								
									
										33
									
								
								libc/xtensa-lx106-elf/include/argz.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								libc/xtensa-lx106-elf/include/argz.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					/* Copyright (C) 2002 by  Red Hat, Incorporated. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _ARGZ_H_
 | 
				
			||||||
 | 
					#define _ARGZ_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The newlib implementation of these functions assumes that sizeof(char) == 1. */
 | 
				
			||||||
 | 
					error_t argz_create (char *const argv[], char **argz, size_t *argz_len);
 | 
				
			||||||
 | 
					error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len);
 | 
				
			||||||
 | 
					size_t argz_count (const char *argz, size_t argz_len);
 | 
				
			||||||
 | 
					void argz_extract (char *argz, size_t argz_len, char **argv);
 | 
				
			||||||
 | 
					void argz_stringify (char *argz, size_t argz_len, int sep);
 | 
				
			||||||
 | 
					error_t argz_add (char **argz, size_t *argz_len, const char *str);
 | 
				
			||||||
 | 
					error_t argz_add_sep (char **argz, size_t *argz_len, const char *str, int sep);
 | 
				
			||||||
 | 
					error_t argz_append (char **argz, size_t *argz_len, const char *buf, size_t buf_len);
 | 
				
			||||||
 | 
					error_t argz_delete (char **argz, size_t *argz_len, char *entry);
 | 
				
			||||||
 | 
					error_t argz_insert (char **argz, size_t *argz_len, char *before, const char *entry);
 | 
				
			||||||
 | 
					char * argz_next (char *argz, size_t argz_len, const char *entry);
 | 
				
			||||||
 | 
					error_t argz_replace (char **argz, size_t *argz_len, const char *str, const char *with, unsigned *replace_count);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _ARGZ_H_ */
 | 
				
			||||||
							
								
								
									
										50
									
								
								libc/xtensa-lx106-elf/include/assert.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								libc/xtensa-lx106-elf/include/assert.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
						assert.h
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef assert
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef NDEBUG           /* required by ANSI standard */
 | 
				
			||||||
 | 
					# define assert(__e) ((void)0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \
 | 
				
			||||||
 | 
											       __ASSERT_FUNC, #__e))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef __ASSERT_FUNC
 | 
				
			||||||
 | 
					  /* Use g++'s demangled names in C++.  */
 | 
				
			||||||
 | 
					#  if defined __cplusplus && defined __GNUC__
 | 
				
			||||||
 | 
					#   define __ASSERT_FUNC __PRETTY_FUNCTION__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* C99 requires the use of __func__.  */
 | 
				
			||||||
 | 
					#  elif __STDC_VERSION__ >= 199901L
 | 
				
			||||||
 | 
					#   define __ASSERT_FUNC __func__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Older versions of gcc don't have __func__ but can use __FUNCTION__.  */
 | 
				
			||||||
 | 
					#  elif __GNUC__ >= 2
 | 
				
			||||||
 | 
					#   define __ASSERT_FUNC __FUNCTION__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* failed to detect __func__ support.  */
 | 
				
			||||||
 | 
					#  else
 | 
				
			||||||
 | 
					#   define __ASSERT_FUNC ((char *) 0)
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					# endif /* !__ASSERT_FUNC */
 | 
				
			||||||
 | 
					#endif /* !NDEBUG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _EXFUN(__assert, (const char *, int, const char *)
 | 
				
			||||||
 | 
						    _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					void _EXFUN(__assert_func, (const char *, int, const char *, const char *)
 | 
				
			||||||
 | 
						    _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __STDC_VERSION__ >= 201112L && !defined __cplusplus
 | 
				
			||||||
 | 
					# define static_assert _Static_assert
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										124
									
								
								libc/xtensa-lx106-elf/include/complex.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								libc/xtensa-lx106-elf/include/complex.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,124 @@
 | 
				
			||||||
 | 
					/* $NetBSD: complex.h,v 1.3 2010/09/15 16:11:30 christos Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Written by Matthias Drochner.
 | 
				
			||||||
 | 
					 * Public domain.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_COMPLEX_H
 | 
				
			||||||
 | 
					#define	_COMPLEX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define complex _Complex
 | 
				
			||||||
 | 
					#define _Complex_I 1.0fi
 | 
				
			||||||
 | 
					#define I _Complex_I
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5 Trigonometric functions */
 | 
				
			||||||
 | 
					/* 7.3.5.1 The cacos functions */
 | 
				
			||||||
 | 
					double complex cacos(double complex);
 | 
				
			||||||
 | 
					float complex cacosf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.2 The casin functions */
 | 
				
			||||||
 | 
					double complex casin(double complex);
 | 
				
			||||||
 | 
					float complex casinf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.1 The catan functions */
 | 
				
			||||||
 | 
					double complex catan(double complex);
 | 
				
			||||||
 | 
					float complex catanf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.1 The ccos functions */
 | 
				
			||||||
 | 
					double complex ccos(double complex);
 | 
				
			||||||
 | 
					float complex ccosf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.1 The csin functions */
 | 
				
			||||||
 | 
					double complex csin(double complex);
 | 
				
			||||||
 | 
					float complex csinf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.1 The ctan functions */
 | 
				
			||||||
 | 
					double complex ctan(double complex);
 | 
				
			||||||
 | 
					float complex ctanf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6 Hyperbolic functions */
 | 
				
			||||||
 | 
					/* 7.3.6.1 The cacosh functions */
 | 
				
			||||||
 | 
					double complex cacosh(double complex);
 | 
				
			||||||
 | 
					float complex cacoshf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.2 The casinh functions */
 | 
				
			||||||
 | 
					double complex casinh(double complex);
 | 
				
			||||||
 | 
					float complex casinhf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.3 The catanh functions */
 | 
				
			||||||
 | 
					double complex catanh(double complex);
 | 
				
			||||||
 | 
					float complex catanhf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.4 The ccosh functions */
 | 
				
			||||||
 | 
					double complex ccosh(double complex);
 | 
				
			||||||
 | 
					float complex ccoshf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.5 The csinh functions */
 | 
				
			||||||
 | 
					double complex csinh(double complex);
 | 
				
			||||||
 | 
					float complex csinhf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.6 The ctanh functions */
 | 
				
			||||||
 | 
					double complex ctanh(double complex);
 | 
				
			||||||
 | 
					float complex ctanhf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.7 Exponential and logarithmic functions */
 | 
				
			||||||
 | 
					/* 7.3.7.1 The cexp functions */
 | 
				
			||||||
 | 
					double complex cexp(double complex);
 | 
				
			||||||
 | 
					float complex cexpf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.7.2 The clog functions */
 | 
				
			||||||
 | 
					double complex clog(double complex);
 | 
				
			||||||
 | 
					float complex clogf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.8 Power and absolute-value functions */
 | 
				
			||||||
 | 
					/* 7.3.8.1 The cabs functions */
 | 
				
			||||||
 | 
					/*#ifndef __LIBM0_SOURCE__ */
 | 
				
			||||||
 | 
					/* avoid conflict with historical cabs(struct complex) */
 | 
				
			||||||
 | 
					/* double cabs(double complex) __RENAME(__c99_cabs);
 | 
				
			||||||
 | 
					   float cabsf(float complex) __RENAME(__c99_cabsf);
 | 
				
			||||||
 | 
					   #endif
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					double cabs(double complex) ;
 | 
				
			||||||
 | 
					float cabsf(float complex) ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.8.2 The cpow functions */
 | 
				
			||||||
 | 
					double complex cpow(double complex, double complex);
 | 
				
			||||||
 | 
					float complex cpowf(float complex, float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.8.3 The csqrt functions */
 | 
				
			||||||
 | 
					double complex csqrt(double complex);
 | 
				
			||||||
 | 
					float complex csqrtf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9 Manipulation functions */
 | 
				
			||||||
 | 
					/* 7.3.9.1 The carg functions */ 
 | 
				
			||||||
 | 
					double carg(double complex);
 | 
				
			||||||
 | 
					float cargf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9.2 The cimag functions */
 | 
				
			||||||
 | 
					double cimag(double complex);
 | 
				
			||||||
 | 
					float cimagf(float complex);
 | 
				
			||||||
 | 
					/*long double cimagl(long double complex); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9.3 The conj functions */
 | 
				
			||||||
 | 
					double complex conj(double complex);
 | 
				
			||||||
 | 
					float complex conjf(float complex);
 | 
				
			||||||
 | 
					/*long double complex conjl(long double complex); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9.4 The cproj functions */
 | 
				
			||||||
 | 
					double complex cproj(double complex);
 | 
				
			||||||
 | 
					float complex cprojf(float complex);
 | 
				
			||||||
 | 
					/*long double complex cprojl(long double complex); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9.5 The creal functions */
 | 
				
			||||||
 | 
					double creal(double complex);
 | 
				
			||||||
 | 
					float crealf(float complex);
 | 
				
			||||||
 | 
					/*long double creall(long double complex); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* ! _COMPLEX_H */
 | 
				
			||||||
							
								
								
									
										113
									
								
								libc/xtensa-lx106-elf/include/ctype.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								libc/xtensa-lx106-elf/include/ctype.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,113 @@
 | 
				
			||||||
 | 
					#ifndef _CTYPE_H_
 | 
				
			||||||
 | 
					#define _CTYPE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(isalnum, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isalpha, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(iscntrl, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isdigit, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isgraph, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(islower, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isprint, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(ispunct, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isspace, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isupper, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isxdigit,(int __c));
 | 
				
			||||||
 | 
					int _EXFUN(tolower, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(toupper, (int __c));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L
 | 
				
			||||||
 | 
					int _EXFUN(isblank, (int __c));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					int _EXFUN(isascii, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(toascii, (int __c));
 | 
				
			||||||
 | 
					#define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a')
 | 
				
			||||||
 | 
					#define _toupper(__c) ((unsigned char)(__c) - 'a' + 'A')
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_U	01
 | 
				
			||||||
 | 
					#define	_L	02
 | 
				
			||||||
 | 
					#define	_N	04
 | 
				
			||||||
 | 
					#define	_S	010
 | 
				
			||||||
 | 
					#define _P	020
 | 
				
			||||||
 | 
					#define _C	040
 | 
				
			||||||
 | 
					#define _X	0100
 | 
				
			||||||
 | 
					#define	_B	0200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _MB_CAPABLE
 | 
				
			||||||
 | 
					_CONST
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					extern	__IMPORT char	*__ctype_ptr__;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __cplusplus
 | 
				
			||||||
 | 
					/* These macros are intentionally written in a manner that will trigger
 | 
				
			||||||
 | 
					   a gcc -Wall warning if the user mistakenly passes a 'char' instead
 | 
				
			||||||
 | 
					   of an int containing an 'unsigned char'.  Note that the sizeof will
 | 
				
			||||||
 | 
					   always be 1, which is what we want for mapping EOF to __ctype_ptr__[0];
 | 
				
			||||||
 | 
					   the use of a raw index inside the sizeof triggers the gcc warning if
 | 
				
			||||||
 | 
					   __c was of type char, and sizeof masks side effects of the extra __c.
 | 
				
			||||||
 | 
					   Meanwhile, the real index to __ctype_ptr__+1 must be cast to int,
 | 
				
			||||||
 | 
					   since isalpha(0x100000001LL) must equal isalpha(1), rather than being
 | 
				
			||||||
 | 
					   an out-of-bounds reference on a 64-bit machine.  */
 | 
				
			||||||
 | 
					#define __ctype_lookup(__c) ((__ctype_ptr__+sizeof(""[__c]))[(int)(__c)])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	isalpha(__c)	(__ctype_lookup(__c)&(_U|_L))
 | 
				
			||||||
 | 
					#define	isupper(__c)	((__ctype_lookup(__c)&(_U|_L))==_U)
 | 
				
			||||||
 | 
					#define	islower(__c)	((__ctype_lookup(__c)&(_U|_L))==_L)
 | 
				
			||||||
 | 
					#define	isdigit(__c)	(__ctype_lookup(__c)&_N)
 | 
				
			||||||
 | 
					#define	isxdigit(__c)	(__ctype_lookup(__c)&(_X|_N))
 | 
				
			||||||
 | 
					#define	isspace(__c)	(__ctype_lookup(__c)&_S)
 | 
				
			||||||
 | 
					#define ispunct(__c)	(__ctype_lookup(__c)&_P)
 | 
				
			||||||
 | 
					#define isalnum(__c)	(__ctype_lookup(__c)&(_U|_L|_N))
 | 
				
			||||||
 | 
					#define isprint(__c)	(__ctype_lookup(__c)&(_P|_U|_L|_N|_B))
 | 
				
			||||||
 | 
					#define	isgraph(__c)	(__ctype_lookup(__c)&(_P|_U|_L|_N))
 | 
				
			||||||
 | 
					#define iscntrl(__c)	(__ctype_lookup(__c)&_C)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__) && \
 | 
				
			||||||
 | 
					    (!defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901L)
 | 
				
			||||||
 | 
					#define isblank(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);		\
 | 
				
			||||||
 | 
					        (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';})
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Non-gcc versions will get the library versions, and will be
 | 
				
			||||||
 | 
					   slightly slower.  These macros are not NLS-aware so they are
 | 
				
			||||||
 | 
					   disabled if the system supports the extended character sets. */
 | 
				
			||||||
 | 
					# if defined(__GNUC__)
 | 
				
			||||||
 | 
					#  if !defined (_MB_EXTENDED_CHARSETS_ISO) && !defined (_MB_EXTENDED_CHARSETS_WINDOWS)
 | 
				
			||||||
 | 
					#   define toupper(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);	\
 | 
				
			||||||
 | 
					      islower (__x) ? (int) __x - 'a' + 'A' : (int) __x;})
 | 
				
			||||||
 | 
					#   define tolower(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);	\
 | 
				
			||||||
 | 
					      isupper (__x) ? (int) __x - 'A' + 'a' : (int) __x;})
 | 
				
			||||||
 | 
					#  else /* _MB_EXTENDED_CHARSETS* */
 | 
				
			||||||
 | 
					/* Allow a gcc warning if the user passed 'char', but defer to the
 | 
				
			||||||
 | 
					   function.  */
 | 
				
			||||||
 | 
					#   define toupper(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);	\
 | 
				
			||||||
 | 
					      (void) __ctype_ptr__[__x]; (toupper) (__x);})
 | 
				
			||||||
 | 
					#   define tolower(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);	\
 | 
				
			||||||
 | 
					      (void) __ctype_ptr__[__x]; (tolower) (__x);})
 | 
				
			||||||
 | 
					#  endif /* _MB_EXTENDED_CHARSETS* */
 | 
				
			||||||
 | 
					# endif /* __GNUC__ */
 | 
				
			||||||
 | 
					#endif /* !__cplusplus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#define isascii(__c)	((unsigned)(__c)<=0177)
 | 
				
			||||||
 | 
					#define toascii(__c)	((__c)&0177)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* For C++ backward-compatibility only.  */
 | 
				
			||||||
 | 
					extern	__IMPORT _CONST char	_ctype_[];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _CTYPE_H_ */
 | 
				
			||||||
							
								
								
									
										15
									
								
								libc/xtensa-lx106-elf/include/dirent.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								libc/xtensa-lx106-elf/include/dirent.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					#ifndef _DIRENT_H_
 | 
				
			||||||
 | 
					#define _DIRENT_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#include <sys/dirent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(MAXNAMLEN) && !defined(_POSIX_SOURCE)
 | 
				
			||||||
 | 
					#define MAXNAMLEN 1024
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /*_DIRENT_H_*/
 | 
				
			||||||
							
								
								
									
										15
									
								
								libc/xtensa-lx106-elf/include/envlock.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								libc/xtensa-lx106-elf/include/envlock.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					/* envlock.h -- header file for env routines.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_ENVLOCK_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_ENVLOCK_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ENV_LOCK __env_lock(reent_ptr)
 | 
				
			||||||
 | 
					#define ENV_UNLOCK __env_unlock(reent_ptr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _EXFUN(__env_lock,(struct _reent *reent));
 | 
				
			||||||
 | 
					void _EXFUN(__env_unlock,(struct _reent *reent));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _INCLUDE_ENVLOCK_H_ */
 | 
				
			||||||
							
								
								
									
										16
									
								
								libc/xtensa-lx106-elf/include/envz.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								libc/xtensa-lx106-elf/include/envz.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					/* Copyright (C) 2002 by  Red Hat, Incorporated. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The newlib implementation of these functions assumes that sizeof(char) == 1. */
 | 
				
			||||||
 | 
					char * envz_entry (const char *envz, size_t envz_len, const char *name);
 | 
				
			||||||
 | 
					char * envz_get (const char *envz, size_t envz_len, const char *name);
 | 
				
			||||||
 | 
					error_t envz_add (char **envz, size_t *envz_len, const char *name, const char *value);
 | 
				
			||||||
 | 
					error_t envz_merge (char **envz, size_t *envz_len, const char *envz2, size_t envz2_len, int override);
 | 
				
			||||||
 | 
					void envz_remove(char **envz, size_t *envz_len, const char *name);
 | 
				
			||||||
 | 
					void envz_strip (char **envz, size_t *envz_len);
 | 
				
			||||||
							
								
								
									
										11
									
								
								libc/xtensa-lx106-elf/include/errno.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								libc/xtensa-lx106-elf/include/errno.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					#ifndef __ERRNO_H__
 | 
				
			||||||
 | 
					#define __ERRNO_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __error_t_defined
 | 
				
			||||||
 | 
					typedef int error_t;
 | 
				
			||||||
 | 
					#define __error_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/errno.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__ERRNO_H__ */
 | 
				
			||||||
							
								
								
									
										13
									
								
								libc/xtensa-lx106-elf/include/fastmath.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								libc/xtensa-lx106-elf/include/fastmath.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					#ifndef _FASTMATH_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _FASTMATH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <math.h>
 | 
				
			||||||
 | 
					#include <machine/fastmath.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _FASTMATH_H_ */
 | 
				
			||||||
							
								
								
									
										1
									
								
								libc/xtensa-lx106-elf/include/fcntl.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								libc/xtensa-lx106-elf/include/fcntl.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					#include <sys/fcntl.h>
 | 
				
			||||||
							
								
								
									
										88
									
								
								libc/xtensa-lx106-elf/include/fenv.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								libc/xtensa-lx106-elf/include/fenv.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,88 @@
 | 
				
			||||||
 | 
					/* Copyright (c) 2011 Tensilica Inc.  ALL RIGHTS RESERVED.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					   modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					   are met:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					      notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   2. Redistributions in binary form must reproduce the above
 | 
				
			||||||
 | 
					      copyright notice, this list of conditions and the following
 | 
				
			||||||
 | 
					      disclaimer in the documentation and/or other materials provided
 | 
				
			||||||
 | 
					      with the distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
				
			||||||
 | 
					   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
				
			||||||
 | 
					   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 | 
				
			||||||
 | 
					   FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
 | 
				
			||||||
 | 
					   TENSILICA INCORPORATED BE LIABLE FOR ANY DIRECT, INDIRECT,
 | 
				
			||||||
 | 
					   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
				
			||||||
 | 
					   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
				
			||||||
 | 
					   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 | 
				
			||||||
 | 
					   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | 
				
			||||||
 | 
					   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 | 
				
			||||||
 | 
					   OF THE POSSIBILITY OF SUCH DAMAGE.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FENV_H
 | 
				
			||||||
 | 
					#define _FENV_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef unsigned long fenv_t;
 | 
				
			||||||
 | 
					typedef unsigned long fexcept_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FE_DIVBYZERO   0x08
 | 
				
			||||||
 | 
					#define FE_INEXACT     0x01
 | 
				
			||||||
 | 
					#define FE_INVALID     0x10
 | 
				
			||||||
 | 
					#define FE_OVERFLOW    0x04
 | 
				
			||||||
 | 
					#define FE_UNDERFLOW   0x02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FE_ALL_EXCEPT \
 | 
				
			||||||
 | 
					  (FE_DIVBYZERO  |		      \
 | 
				
			||||||
 | 
					   FE_INEXACT    |		      \
 | 
				
			||||||
 | 
					   FE_INVALID    |		      \
 | 
				
			||||||
 | 
					   FE_OVERFLOW   |		      \
 | 
				
			||||||
 | 
					   FE_UNDERFLOW)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FE_DOWNWARD   0x3
 | 
				
			||||||
 | 
					#define FE_TONEAREST  0x0
 | 
				
			||||||
 | 
					#define FE_TOWARDZERO 0x1
 | 
				
			||||||
 | 
					#define FE_UPWARD     0x2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FE_DFL_ENV ((const fenv_t *) 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int  feclearexcept(int);
 | 
				
			||||||
 | 
					int  fegetexceptflag(fexcept_t *, int);
 | 
				
			||||||
 | 
					int  feraiseexcept(int);
 | 
				
			||||||
 | 
					int  fesetexceptflag(const fexcept_t *, int);
 | 
				
			||||||
 | 
					int  fetestexcept(int);
 | 
				
			||||||
 | 
					int  fegetround(void);
 | 
				
			||||||
 | 
					int  fesetround(int);
 | 
				
			||||||
 | 
					int  fegetenv(fenv_t *);
 | 
				
			||||||
 | 
					int  feholdexcept(fenv_t *);
 | 
				
			||||||
 | 
					int  fesetenv(const fenv_t *);
 | 
				
			||||||
 | 
					int  feupdateenv(const fenv_t *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* glibc extensions  */
 | 
				
			||||||
 | 
					int feenableexcept(int excepts);
 | 
				
			||||||
 | 
					int fedisableexcept(int excepts);
 | 
				
			||||||
 | 
					int fegetexcept(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _FE_EXCEPTION_FLAGS_OFFSET 7
 | 
				
			||||||
 | 
					#define _FE_EXCEPTION_FLAG_MASK (FE_ALL_EXCEPT << _FE_EXCEPTION_FLAGS_OFFSET)
 | 
				
			||||||
 | 
					#define _FE_EXCEPTION_ENABLE_OFFSET 2
 | 
				
			||||||
 | 
					#define _FE_EXCEPTION_ENABLE_MASK (FE_ALL_EXCEPT << _FE_EXCEPTION_ENABLE_OFFSET)
 | 
				
			||||||
 | 
					#define _FE_ROUND_MODE_OFFSET 0
 | 
				
			||||||
 | 
					#define _FE_ROUND_MODE_MASK (0x3 << _FE_ROUND_MODE_OFFSET)
 | 
				
			||||||
 | 
					#define _FE_FLOATING_ENV_MASK (_FE_EXCEPTION_FLAG_MASK | _FE_EXCEPTION_ENABLE_MASK | _FE_ROUND_MODE_MASK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										55
									
								
								libc/xtensa-lx106-elf/include/fnmatch.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								libc/xtensa-lx106-elf/include/fnmatch.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,55 @@
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1992, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * $FreeBSD: src/include/fnmatch.h,v 1.10 2002/03/23 17:24:53 imp Exp $
 | 
				
			||||||
 | 
					 *	@(#)fnmatch.h	8.1 (Berkeley) 6/2/93
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_FNMATCH_H_
 | 
				
			||||||
 | 
					#define	_FNMATCH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	FNM_NOMATCH	1	/* Match failed. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	FNM_NOESCAPE	0x01	/* Disable backslash escaping. */
 | 
				
			||||||
 | 
					#define	FNM_PATHNAME	0x02	/* Slash must be matched by slash. */
 | 
				
			||||||
 | 
					#define	FNM_PERIOD	0x04	/* Period must be matched by period. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_GNU_SOURCE) || !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
 | 
				
			||||||
 | 
					#define	FNM_LEADING_DIR	0x08	/* Ignore /<tail> after Imatch. */
 | 
				
			||||||
 | 
					#define	FNM_CASEFOLD	0x10	/* Case insensitive search. */
 | 
				
			||||||
 | 
					#define	FNM_IGNORECASE	FNM_CASEFOLD
 | 
				
			||||||
 | 
					#define	FNM_FILE_NAME	FNM_PATHNAME
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					int	 fnmatch(const char *, const char *, int);
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_FNMATCH_H_ */
 | 
				
			||||||
							
								
								
									
										190
									
								
								libc/xtensa-lx106-elf/include/getopt.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								libc/xtensa-lx106-elf/include/getopt.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,190 @@
 | 
				
			||||||
 | 
					/****************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getopt.h - Read command line options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AUTHOR: Gregory Pietsch
 | 
				
			||||||
 | 
					CREATED Thu Jan 09 22:37:00 1997
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The getopt() function parses the command line arguments.  Its arguments argc
 | 
				
			||||||
 | 
					and argv are the argument count and array as passed to the main() function
 | 
				
			||||||
 | 
					on program invocation.  The argument optstring is a list of available option
 | 
				
			||||||
 | 
					characters.  If such a character is followed by a colon (`:'), the option
 | 
				
			||||||
 | 
					takes an argument, which is placed in optarg.  If such a character is
 | 
				
			||||||
 | 
					followed by two colons, the option takes an optional argument, which is
 | 
				
			||||||
 | 
					placed in optarg.  If the option does not take an argument, optarg is NULL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The external variable optind is the index of the next array element of argv
 | 
				
			||||||
 | 
					to be processed; it communicates from one call to the next which element to
 | 
				
			||||||
 | 
					process.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The getopt_long() function works like getopt() except that it also accepts
 | 
				
			||||||
 | 
					long options started by two dashes `--'.  If these take values, it is either
 | 
				
			||||||
 | 
					in the form
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--arg=value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 or
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--arg value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It takes the additional arguments longopts which is a pointer to the first
 | 
				
			||||||
 | 
					element of an array of type GETOPT_LONG_OPTION_T, defined below.  The last
 | 
				
			||||||
 | 
					element of the array has to be filled with NULL for the name field.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The longind pointer points to the index of the current long option relative
 | 
				
			||||||
 | 
					to longopts if it is non-NULL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The getopt() function returns the option character if the option was found
 | 
				
			||||||
 | 
					successfully, `:' if there was a missing parameter for one of the options,
 | 
				
			||||||
 | 
					`?' for an unknown option character, and EOF for the end of the option list.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The getopt_long() function's return value is described below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The function getopt_long_only() is identical to getopt_long(), except that a
 | 
				
			||||||
 | 
					plus sign `+' can introduce long options as well as `--'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Describe how to deal with options that follow non-option ARGV-elements.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If the caller did not specify anything, the default is REQUIRE_ORDER if the
 | 
				
			||||||
 | 
					environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRE_ORDER means don't recognize them as options; stop option processing
 | 
				
			||||||
 | 
					when the first non-option is seen.  This is what Unix does.  This mode of
 | 
				
			||||||
 | 
					operation is selected by either setting the environment variable
 | 
				
			||||||
 | 
					POSIXLY_CORRECT, or using `+' as the first character of the optstring
 | 
				
			||||||
 | 
					parameter.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PERMUTE is the default.  We permute the contents of ARGV as we scan, so that
 | 
				
			||||||
 | 
					eventually all the non-options are at the end.  This allows options to be
 | 
				
			||||||
 | 
					given in any order, even with programs that were not written to expect this.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RETURN_IN_ORDER is an option available to programs that were written to
 | 
				
			||||||
 | 
					expect options and other ARGV-elements in any order and that care about the
 | 
				
			||||||
 | 
					ordering of the two.  We describe each non-option ARGV-element as if it were
 | 
				
			||||||
 | 
					the argument of an option with character code 1.  Using `-' as the first
 | 
				
			||||||
 | 
					character of the optstring parameter selects this mode of operation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The special argument `--' forces an end of option-scanning regardless of the
 | 
				
			||||||
 | 
					value of `ordering'.  In the case of RETURN_IN_ORDER, only `--' can cause
 | 
				
			||||||
 | 
					getopt() and friends to return EOF with optind != argc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYRIGHT NOTICE AND DISCLAIMER:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (C) 1997 Gregory Pietsch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This file and the accompanying getopt.c implementation file are hereby 
 | 
				
			||||||
 | 
					placed in the public domain without restrictions.  Just give the author 
 | 
				
			||||||
 | 
					credit, don't claim you wrote it or prevent anyone else from using it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Gregory Pietsch's current e-mail address:
 | 
				
			||||||
 | 
					gpietsch@comcast.net
 | 
				
			||||||
 | 
					****************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is a glibc-extension header file. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef GETOPT_H
 | 
				
			||||||
 | 
					#define GETOPT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* include files needed by this include file */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define no_argument		0
 | 
				
			||||||
 | 
					#define required_argument	1
 | 
				
			||||||
 | 
					#define optional_argument	2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C"
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif				/* __cplusplus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* types defined by this include file */
 | 
				
			||||||
 | 
					  struct option
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    const char *name;		/* the name of the long option */
 | 
				
			||||||
 | 
					    int has_arg;		/* one of the above macros */
 | 
				
			||||||
 | 
					    int *flag;			/* determines if getopt_long() returns a
 | 
				
			||||||
 | 
									 * value for a long option; if it is
 | 
				
			||||||
 | 
									 * non-NULL, 0 is returned as a function
 | 
				
			||||||
 | 
									 * value and the value of val is stored in
 | 
				
			||||||
 | 
									 * the area pointed to by flag.  Otherwise,
 | 
				
			||||||
 | 
									 * val is returned. */
 | 
				
			||||||
 | 
					    int val;			/* determines the value to return if flag is
 | 
				
			||||||
 | 
									 * NULL. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* While getopt.h is a glibc extension, the following are newlib extensions.
 | 
				
			||||||
 | 
					 * They are optionally included via the __need_getopt_newlib flag.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __need_getopt_newlib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* macros defined by this include file */
 | 
				
			||||||
 | 
					  #define NO_ARG          	no_argument
 | 
				
			||||||
 | 
					  #define REQUIRED_ARG    	required_argument
 | 
				
			||||||
 | 
					  #define OPTIONAL_ARG    	optional_argument
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* The GETOPT_DATA_INITIALIZER macro is used to initialize a statically-
 | 
				
			||||||
 | 
					     allocated variable of type struct getopt_data.  */
 | 
				
			||||||
 | 
					  #define GETOPT_DATA_INITIALIZER	{0,0,0,0,0}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* These #defines are to make accessing the reentrant functions easier.  */
 | 
				
			||||||
 | 
					  #define getopt_r		__getopt_r
 | 
				
			||||||
 | 
					  #define getopt_long_r		__getopt_long_r
 | 
				
			||||||
 | 
					  #define getopt_long_only_r	__getopt_long_only_r
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* The getopt_data structure is for reentrancy. Its members are similar to
 | 
				
			||||||
 | 
					     the externally-defined variables.  */
 | 
				
			||||||
 | 
					  typedef struct getopt_data
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    char *optarg;
 | 
				
			||||||
 | 
					    int optind, opterr, optopt, optwhere;
 | 
				
			||||||
 | 
					  } getopt_data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __need_getopt_newlib */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* externally-defined variables */
 | 
				
			||||||
 | 
					  extern char *optarg;
 | 
				
			||||||
 | 
					  extern int optind;
 | 
				
			||||||
 | 
					  extern int opterr;
 | 
				
			||||||
 | 
					  extern int optopt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* function prototypes */
 | 
				
			||||||
 | 
					  int _EXFUN (getopt,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__optstring));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _EXFUN (getopt_long,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__shortopts,
 | 
				
			||||||
 | 
						       const struct option * __longopts, int *__longind));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _EXFUN (getopt_long_only,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__shortopts,
 | 
				
			||||||
 | 
						       const struct option * __longopts, int *__longind));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __need_getopt_newlib
 | 
				
			||||||
 | 
					  int _EXFUN (__getopt_r,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__optstring,
 | 
				
			||||||
 | 
						       struct getopt_data * __data));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _EXFUN (__getopt_long_r,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__shortopts,
 | 
				
			||||||
 | 
						       const struct option * __longopts, int *__longind,
 | 
				
			||||||
 | 
						       struct getopt_data * __data));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _EXFUN (__getopt_long_only_r,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__shortopts,
 | 
				
			||||||
 | 
						       const struct option * __longopts, int *__longind,
 | 
				
			||||||
 | 
						       struct getopt_data * __data));
 | 
				
			||||||
 | 
					#endif /* __need_getopt_newlib */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __cplusplus  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* GETOPT_H */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* END OF FILE getopt.h */
 | 
				
			||||||
							
								
								
									
										90
									
								
								libc/xtensa-lx106-elf/include/glob.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								libc/xtensa-lx106-elf/include/glob.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,90 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 1989, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is derived from software contributed to Berkeley by
 | 
				
			||||||
 | 
					 * Guido van Rossum.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)glob.h	8.1 (Berkeley) 6/2/93
 | 
				
			||||||
 | 
					 * $FreeBSD: src/include/glob.h,v 1.6 2002/03/23 17:24:53 imp Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _GLOB_H_
 | 
				
			||||||
 | 
					#define	_GLOB_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct stat;
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						int gl_pathc;		/* Count of total paths so far. */
 | 
				
			||||||
 | 
						int gl_matchc;		/* Count of paths matching pattern. */
 | 
				
			||||||
 | 
						int gl_offs;		/* Reserved at beginning of gl_pathv. */
 | 
				
			||||||
 | 
						int gl_flags;		/* Copy of flags parameter to glob. */
 | 
				
			||||||
 | 
						char **gl_pathv;	/* List of paths matching pattern. */
 | 
				
			||||||
 | 
									/* Copy of errfunc parameter to glob. */
 | 
				
			||||||
 | 
						int (*gl_errfunc)(const char *, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * Alternate filesystem access methods for glob; replacement
 | 
				
			||||||
 | 
						 * versions of closedir(3), readdir(3), opendir(3), stat(2)
 | 
				
			||||||
 | 
						 * and lstat(2).
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						void (*gl_closedir)(void *);
 | 
				
			||||||
 | 
						struct dirent *(*gl_readdir)(void *);
 | 
				
			||||||
 | 
						void *(*gl_opendir)(const char *);
 | 
				
			||||||
 | 
						int (*gl_lstat)(const char *, struct stat *);
 | 
				
			||||||
 | 
						int (*gl_stat)(const char *, struct stat *);
 | 
				
			||||||
 | 
					} glob_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	GLOB_APPEND	0x0001	/* Append to output from previous call. */
 | 
				
			||||||
 | 
					#define	GLOB_DOOFFS	0x0002	/* Use gl_offs. */
 | 
				
			||||||
 | 
					#define	GLOB_ERR	0x0004	/* Return on error. */
 | 
				
			||||||
 | 
					#define	GLOB_MARK	0x0008	/* Append / to matching directories. */
 | 
				
			||||||
 | 
					#define	GLOB_NOCHECK	0x0010	/* Return pattern itself if nothing matches. */
 | 
				
			||||||
 | 
					#define	GLOB_NOSORT	0x0020	/* Don't sort. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	GLOB_ALTDIRFUNC	0x0040	/* Use alternately specified directory funcs. */
 | 
				
			||||||
 | 
					#define	GLOB_BRACE	0x0080	/* Expand braces ala csh. */
 | 
				
			||||||
 | 
					#define	GLOB_MAGCHAR	0x0100	/* Pattern had globbing characters. */
 | 
				
			||||||
 | 
					#define	GLOB_NOMAGIC	0x0200	/* GLOB_NOCHECK without magic chars (csh). */
 | 
				
			||||||
 | 
					#define	GLOB_QUOTE	0x0400	/* Quote special chars with \. */
 | 
				
			||||||
 | 
					#define	GLOB_TILDE	0x0800	/* Expand tilde names from the passwd file. */
 | 
				
			||||||
 | 
					#define	GLOB_LIMIT	0x1000	/* limit number of returned paths */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* backwards compatibility, this is the old name for this option */
 | 
				
			||||||
 | 
					#define GLOB_MAXPATH	GLOB_LIMIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	GLOB_NOSPACE	(-1)	/* Malloc call failed. */
 | 
				
			||||||
 | 
					#define	GLOB_ABEND	(-2)	/* Unignored error. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					int	glob(const char *__restrict, int, int (*)(const char *, int), 
 | 
				
			||||||
 | 
							glob_t *__restrict);
 | 
				
			||||||
 | 
					void	globfree(glob_t *);
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_GLOB_H_ */
 | 
				
			||||||
							
								
								
									
										95
									
								
								libc/xtensa-lx106-elf/include/grp.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								libc/xtensa-lx106-elf/include/grp.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,95 @@
 | 
				
			||||||
 | 
					/*	$NetBSD: grp.h,v 1.7 1995/04/29 05:30:40 cgd Exp $	*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1989, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 * (c) UNIX System Laboratories, Inc.
 | 
				
			||||||
 | 
					 * All or some portions of this file are derived from material licensed
 | 
				
			||||||
 | 
					 * to the University of California by American Telephone and Telegraph
 | 
				
			||||||
 | 
					 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
 | 
				
			||||||
 | 
					 * the permission of UNIX System Laboratories, Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 3. All advertising materials mentioning features or use of this software
 | 
				
			||||||
 | 
					 *    must display the following acknowledgement:
 | 
				
			||||||
 | 
					 *	This product includes software developed by the University of
 | 
				
			||||||
 | 
					 *	California, Berkeley and its contributors.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)grp.h	8.2 (Berkeley) 1/21/94
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _GRP_H_
 | 
				
			||||||
 | 
					#define	_GRP_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/grp.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
 | 
				
			||||||
 | 
					#define	_PATH_GROUP		"/etc/group"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct group {
 | 
				
			||||||
 | 
						char	*gr_name;		/* group name */
 | 
				
			||||||
 | 
						char	*gr_passwd;		/* group password */
 | 
				
			||||||
 | 
						gid_t	gr_gid;			/* group id */
 | 
				
			||||||
 | 
						char	**gr_mem;		/* group members */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INSIDE_CYGWIN__
 | 
				
			||||||
 | 
					struct group	*getgrgid (gid_t);
 | 
				
			||||||
 | 
					struct group	*getgrnam (const char *);
 | 
				
			||||||
 | 
					int		 getgrnam_r (const char *, struct group *,
 | 
				
			||||||
 | 
								char *, size_t, struct group **);
 | 
				
			||||||
 | 
					int		 getgrgid_r (gid_t, struct group *,
 | 
				
			||||||
 | 
								char *, size_t, struct group **);
 | 
				
			||||||
 | 
					#ifndef _POSIX_SOURCE
 | 
				
			||||||
 | 
					struct group	*getgrent (void);
 | 
				
			||||||
 | 
					void		 setgrent (void);
 | 
				
			||||||
 | 
					void		 endgrent (void);
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					void		 setgrfile (const char *);
 | 
				
			||||||
 | 
					#endif /* !__CYGWIN__ */
 | 
				
			||||||
 | 
					#ifndef _XOPEN_SOURCE
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					char		*group_from_gid (gid_t, int);
 | 
				
			||||||
 | 
					int		 setgroupent (int);
 | 
				
			||||||
 | 
					#endif /* !__CYGWIN__ */
 | 
				
			||||||
 | 
					int		 initgroups (const char *, gid_t);
 | 
				
			||||||
 | 
					#endif /* !_XOPEN_SOURCE */
 | 
				
			||||||
 | 
					#endif /* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					#endif /* !__INSIDE_CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_GRP_H_ */
 | 
				
			||||||
							
								
								
									
										63
									
								
								libc/xtensa-lx106-elf/include/iconv.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								libc/xtensa-lx106-elf/include/iconv.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,63 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2003-2004, Artem B. Bityuckiy, SoftMine Corporation.
 | 
				
			||||||
 | 
					 * Rights transferred to Franklin Electronic Publishers.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef _ICONV_H_
 | 
				
			||||||
 | 
					#define _ICONV_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <reent.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* iconv_t: charset conversion descriptor type */
 | 
				
			||||||
 | 
					typedef _iconv_t iconv_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					iconv_t
 | 
				
			||||||
 | 
					_EXFUN(iconv_open, (_CONST char *, _CONST char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t
 | 
				
			||||||
 | 
					_EXFUN(iconv, (iconv_t, char **__restrict, size_t *__restrict, 
 | 
				
			||||||
 | 
					               char **__restrict, size_t *__restrict));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(iconv_close, (iconv_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					iconv_t
 | 
				
			||||||
 | 
					_EXFUN(_iconv_open_r, (struct _reent *, _CONST char *, _CONST char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t
 | 
				
			||||||
 | 
					_EXFUN(_iconv_r, (struct _reent *, iconv_t, _CONST char **,
 | 
				
			||||||
 | 
					                  size_t *, char **, size_t *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_close_r, (struct _reent *, iconv_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* #ifndef _ICONV_H_ */
 | 
				
			||||||
							
								
								
									
										256
									
								
								libc/xtensa-lx106-elf/include/ieeefp.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								libc/xtensa-lx106-elf/include/ieeefp.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,256 @@
 | 
				
			||||||
 | 
					#ifndef _IEEE_FP_H_
 | 
				
			||||||
 | 
					#define _IEEE_FP_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* FIXME FIXME FIXME:
 | 
				
			||||||
 | 
					   Neither of __ieee_{float,double}_shape_tape seem to be used anywhere
 | 
				
			||||||
 | 
					   except in libm/test.  If that is the case, please delete these from here.
 | 
				
			||||||
 | 
					   If that is not the case, please insert documentation here describing why
 | 
				
			||||||
 | 
					   they're needed.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  double value;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					    unsigned int exponent: 11;
 | 
				
			||||||
 | 
					    unsigned int fraction0:4;
 | 
				
			||||||
 | 
					    unsigned int fraction1:16;
 | 
				
			||||||
 | 
					    unsigned int fraction2:16;
 | 
				
			||||||
 | 
					    unsigned int fraction3:16;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  } number;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					    unsigned int exponent: 11;
 | 
				
			||||||
 | 
					    unsigned int quiet:1;
 | 
				
			||||||
 | 
					    unsigned int function0:3;
 | 
				
			||||||
 | 
					    unsigned int function1:16;
 | 
				
			||||||
 | 
					    unsigned int function2:16;
 | 
				
			||||||
 | 
					    unsigned int function3:16;
 | 
				
			||||||
 | 
					  } nan;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned long msw;
 | 
				
			||||||
 | 
					    unsigned long lsw;
 | 
				
			||||||
 | 
					  } parts;
 | 
				
			||||||
 | 
					    long aslong[2];
 | 
				
			||||||
 | 
					} __ieee_double_shape_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  double value;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					#ifdef __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					    unsigned int fraction3:16;
 | 
				
			||||||
 | 
					    unsigned int fraction2:16;
 | 
				
			||||||
 | 
					    unsigned int fraction1:16;
 | 
				
			||||||
 | 
					    unsigned int fraction0: 4;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    unsigned int fraction1:32;
 | 
				
			||||||
 | 
					    unsigned int fraction0:20;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    unsigned int exponent :11;
 | 
				
			||||||
 | 
					    unsigned int sign     : 1;
 | 
				
			||||||
 | 
					  } number;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					#ifdef __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					    unsigned int function3:16;
 | 
				
			||||||
 | 
					    unsigned int function2:16;
 | 
				
			||||||
 | 
					    unsigned int function1:16;
 | 
				
			||||||
 | 
					    unsigned int function0:3;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    unsigned int function1:32;
 | 
				
			||||||
 | 
					    unsigned int function0:19;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    unsigned int quiet:1;
 | 
				
			||||||
 | 
					    unsigned int exponent: 11;
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					  } nan;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned long lsw;
 | 
				
			||||||
 | 
					    unsigned long msw;
 | 
				
			||||||
 | 
					  } parts;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  long aslong[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} __ieee_double_shape_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  float value;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					    unsigned int exponent: 8;
 | 
				
			||||||
 | 
					    unsigned int fraction0: 7;
 | 
				
			||||||
 | 
					    unsigned int fraction1: 16;
 | 
				
			||||||
 | 
					  } number;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int sign:1;
 | 
				
			||||||
 | 
					    unsigned int exponent:8;
 | 
				
			||||||
 | 
					    unsigned int quiet:1;
 | 
				
			||||||
 | 
					    unsigned int function0:6;
 | 
				
			||||||
 | 
					    unsigned int function1:16;
 | 
				
			||||||
 | 
					  } nan;
 | 
				
			||||||
 | 
					  long p1;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					} __ieee_float_shape_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  float value;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int fraction0: 7;
 | 
				
			||||||
 | 
					    unsigned int fraction1: 16;
 | 
				
			||||||
 | 
					    unsigned int exponent: 8;
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					  } number;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int function1:16;
 | 
				
			||||||
 | 
					    unsigned int function0:6;
 | 
				
			||||||
 | 
					    unsigned int quiet:1;
 | 
				
			||||||
 | 
					    unsigned int exponent:8;
 | 
				
			||||||
 | 
					    unsigned int sign:1;
 | 
				
			||||||
 | 
					  } nan;
 | 
				
			||||||
 | 
					  long p1;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					} __ieee_float_shape_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* FLOATING ROUNDING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int fp_rnd;
 | 
				
			||||||
 | 
					#define FP_RN 0 	/* Round to nearest 		*/
 | 
				
			||||||
 | 
					#define FP_RM 1		/* Round down 			*/
 | 
				
			||||||
 | 
					#define FP_RP 2		/* Round up 			*/
 | 
				
			||||||
 | 
					#define FP_RZ 3		/* Round to zero (trunate) 	*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fp_rnd _EXFUN(fpgetround,(void));
 | 
				
			||||||
 | 
					fp_rnd _EXFUN(fpsetround, (fp_rnd));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* EXCEPTIONS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int fp_except;
 | 
				
			||||||
 | 
					#define FP_X_INV 0x10	/* Invalid operation 		*/
 | 
				
			||||||
 | 
					#define FP_X_DX  0x80	/* Divide by zero		*/
 | 
				
			||||||
 | 
					#define FP_X_OFL 0x04	/* Overflow exception		*/
 | 
				
			||||||
 | 
					#define FP_X_UFL 0x02	/* Underflow exception		*/
 | 
				
			||||||
 | 
					#define FP_X_IMP 0x01	/* imprecise exception		*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fp_except _EXFUN(fpgetmask,(void));
 | 
				
			||||||
 | 
					fp_except _EXFUN(fpsetmask,(fp_except));
 | 
				
			||||||
 | 
					fp_except _EXFUN(fpgetsticky,(void));
 | 
				
			||||||
 | 
					fp_except _EXFUN(fpsetsticky, (fp_except));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* INTEGER ROUNDING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int fp_rdi;
 | 
				
			||||||
 | 
					#define FP_RDI_TOZ 0	/* Round to Zero 		*/
 | 
				
			||||||
 | 
					#define FP_RDI_RD  1	/* Follow float mode		*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fp_rdi _EXFUN(fpgetroundtoi,(void));
 | 
				
			||||||
 | 
					fp_rdi _EXFUN(fpsetroundtoi,(fp_rdi));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef isnan
 | 
				
			||||||
 | 
					#undef isinf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(isnan, (double));
 | 
				
			||||||
 | 
					int _EXFUN(isinf, (double));
 | 
				
			||||||
 | 
					int _EXFUN(finite, (double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(isnanf, (float));
 | 
				
			||||||
 | 
					int _EXFUN(isinff, (float));
 | 
				
			||||||
 | 
					int _EXFUN(finitef, (float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_EXPBIAS 1023
 | 
				
			||||||
 | 
					#define __IEEE_FLT_EXPBIAS 127
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_EXPLEN 11
 | 
				
			||||||
 | 
					#define __IEEE_FLT_EXPLEN 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_FRACLEN (64 - (__IEEE_DBL_EXPLEN + 1))
 | 
				
			||||||
 | 
					#define __IEEE_FLT_FRACLEN (32 - (__IEEE_FLT_EXPLEN + 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_MAXPOWTWO	((double)(1L << 32 - 2) * (1L << (32-11) - 32 + 1))
 | 
				
			||||||
 | 
					#define __IEEE_FLT_MAXPOWTWO	((float)(1L << (32-8) - 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_NAN_EXP 0x7ff
 | 
				
			||||||
 | 
					#define __IEEE_FLT_NAN_EXP 0xff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ieeefp_isnanf
 | 
				
			||||||
 | 
					#define __ieeefp_isnanf(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
 | 
				
			||||||
 | 
								    ((*(long *)&(x) & 0x007fffffL)!=0000000000L))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define isnanf(x)	__ieeefp_isnanf(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ieeefp_isinff
 | 
				
			||||||
 | 
					#define __ieeefp_isinff(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
 | 
				
			||||||
 | 
								    ((*(long *)&(x) & 0x007fffffL)==0000000000L))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define isinff(x)	__ieeefp_isinff(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ieeefp_finitef
 | 
				
			||||||
 | 
					#define __ieeefp_finitef(x) (((*(long *)&(x) & 0x7f800000L)!=0x7f800000L))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define finitef(x)	__ieeefp_finitef(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_EXPBIAS
 | 
				
			||||||
 | 
					#define __IEEE_DBL_EXPBIAS __IEEE_FLT_EXPBIAS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_EXPLEN
 | 
				
			||||||
 | 
					#define __IEEE_DBL_EXPLEN __IEEE_FLT_EXPLEN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_FRACLEN
 | 
				
			||||||
 | 
					#define __IEEE_DBL_FRACLEN __IEEE_FLT_FRACLEN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_MAXPOWTWO
 | 
				
			||||||
 | 
					#define __IEEE_DBL_MAXPOWTWO __IEEE_FLT_MAXPOWTWO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_NAN_EXP
 | 
				
			||||||
 | 
					#define __IEEE_DBL_NAN_EXP __IEEE_FLT_NAN_EXP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __ieee_double_shape_type
 | 
				
			||||||
 | 
					#define __ieee_double_shape_type __ieee_float_shape_type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _DOUBLE_IS_32BITS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _IEEE_FP_H_ */
 | 
				
			||||||
							
								
								
									
										319
									
								
								libc/xtensa-lx106-elf/include/inttypes.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										319
									
								
								libc/xtensa-lx106-elf/include/inttypes.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,319 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2004, 2005 by
 | 
				
			||||||
 | 
					 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *  @file  inttypes.h
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INTTYPES_H
 | 
				
			||||||
 | 
					#define _INTTYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <newlib.h>
 | 
				
			||||||
 | 
					#include <sys/_intsup.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					#define __need_wchar_t
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __STRINGIFY(a) #a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 8-bit types */
 | 
				
			||||||
 | 
					#define __PRI8(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* NOTICE: scanning 8-bit types requires use of the hh specifier
 | 
				
			||||||
 | 
					 * which is only supported on newlib platforms that
 | 
				
			||||||
 | 
					 * are built with C99 I/O format support enabled.  If the flag in
 | 
				
			||||||
 | 
					 * newlib.h hasn't been set during configuration to indicate this, the 8-bit
 | 
				
			||||||
 | 
					 * scanning format macros are disabled here as they result in undefined
 | 
				
			||||||
 | 
					 * behaviour which can include memory overwrite.  Overriding the flag after the
 | 
				
			||||||
 | 
					 * library has been built is not recommended as it will expose the underlying
 | 
				
			||||||
 | 
					 * undefined behaviour.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_WANT_IO_C99_FORMATS)
 | 
				
			||||||
 | 
					  #define __SCN8(x) __STRINGIFY(hh##x)
 | 
				
			||||||
 | 
					#endif /* _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRId8		__PRI8(d)
 | 
				
			||||||
 | 
					#define PRIi8		__PRI8(i)
 | 
				
			||||||
 | 
					#define PRIo8		__PRI8(o)
 | 
				
			||||||
 | 
					#define PRIu8		__PRI8(u)
 | 
				
			||||||
 | 
					#define PRIx8		__PRI8(x)
 | 
				
			||||||
 | 
					#define PRIX8		__PRI8(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros below are only enabled for a newlib built with C99 I/O format support. */
 | 
				
			||||||
 | 
					#if defined(_WANT_IO_C99_FORMATS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNd8		__SCN8(d)
 | 
				
			||||||
 | 
					#define SCNi8		__SCN8(i)
 | 
				
			||||||
 | 
					#define SCNo8		__SCN8(o)
 | 
				
			||||||
 | 
					#define SCNu8		__SCN8(u)
 | 
				
			||||||
 | 
					#define SCNx8		__SCN8(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdLEAST8	__PRI8(d)
 | 
				
			||||||
 | 
					#define PRIiLEAST8	__PRI8(i)
 | 
				
			||||||
 | 
					#define PRIoLEAST8	__PRI8(o)
 | 
				
			||||||
 | 
					#define PRIuLEAST8	__PRI8(u)
 | 
				
			||||||
 | 
					#define PRIxLEAST8	__PRI8(x)
 | 
				
			||||||
 | 
					#define PRIXLEAST8	__PRI8(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros below are only enabled for a newlib built with C99 I/O format support. */
 | 
				
			||||||
 | 
					#if defined(_WANT_IO_C99_FORMATS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #define SCNdLEAST8	__SCN8(d)
 | 
				
			||||||
 | 
					  #define SCNiLEAST8	__SCN8(i)
 | 
				
			||||||
 | 
					  #define SCNoLEAST8	__SCN8(o)
 | 
				
			||||||
 | 
					  #define SCNuLEAST8	__SCN8(u)
 | 
				
			||||||
 | 
					  #define SCNxLEAST8	__SCN8(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdFAST8	__PRI8(d)
 | 
				
			||||||
 | 
					#define PRIiFAST8	__PRI8(i)
 | 
				
			||||||
 | 
					#define PRIoFAST8	__PRI8(o)
 | 
				
			||||||
 | 
					#define PRIuFAST8	__PRI8(u)
 | 
				
			||||||
 | 
					#define PRIxFAST8	__PRI8(x)
 | 
				
			||||||
 | 
					#define PRIXFAST8	__PRI8(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros below are only enabled for a newlib built with C99 I/O format support. */
 | 
				
			||||||
 | 
					#if defined(_WANT_IO_C99_FORMATS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #define SCNdFAST8	__SCN8(d)
 | 
				
			||||||
 | 
					  #define SCNiFAST8	__SCN8(i)
 | 
				
			||||||
 | 
					  #define SCNoFAST8	__SCN8(o)
 | 
				
			||||||
 | 
					  #define SCNuFAST8	__SCN8(u)
 | 
				
			||||||
 | 
					  #define SCNxFAST8	__SCN8(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 16-bit types */
 | 
				
			||||||
 | 
					#define __PRI16(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#define __SCN16(x) __STRINGIFY(h##x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRId16		__PRI16(d)
 | 
				
			||||||
 | 
					#define PRIi16		__PRI16(i)
 | 
				
			||||||
 | 
					#define PRIo16		__PRI16(o)
 | 
				
			||||||
 | 
					#define PRIu16		__PRI16(u)
 | 
				
			||||||
 | 
					#define PRIx16		__PRI16(x)
 | 
				
			||||||
 | 
					#define PRIX16		__PRI16(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNd16		__SCN16(d)
 | 
				
			||||||
 | 
					#define SCNi16		__SCN16(i)
 | 
				
			||||||
 | 
					#define SCNo16		__SCN16(o)
 | 
				
			||||||
 | 
					#define SCNu16		__SCN16(u)
 | 
				
			||||||
 | 
					#define SCNx16		__SCN16(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdLEAST16	__PRI16(d)
 | 
				
			||||||
 | 
					#define PRIiLEAST16	__PRI16(i)
 | 
				
			||||||
 | 
					#define PRIoLEAST16	__PRI16(o)
 | 
				
			||||||
 | 
					#define PRIuLEAST16	__PRI16(u)
 | 
				
			||||||
 | 
					#define PRIxLEAST16	__PRI16(x)
 | 
				
			||||||
 | 
					#define PRIXLEAST16	__PRI16(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdLEAST16	__SCN16(d)
 | 
				
			||||||
 | 
					#define SCNiLEAST16	__SCN16(i)
 | 
				
			||||||
 | 
					#define SCNoLEAST16	__SCN16(o)
 | 
				
			||||||
 | 
					#define SCNuLEAST16	__SCN16(u)
 | 
				
			||||||
 | 
					#define SCNxLEAST16	__SCN16(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdFAST16	__PRI16(d)
 | 
				
			||||||
 | 
					#define PRIiFAST16	__PRI16(i)
 | 
				
			||||||
 | 
					#define PRIoFAST16	__PRI16(o)
 | 
				
			||||||
 | 
					#define PRIuFAST16	__PRI16(u)
 | 
				
			||||||
 | 
					#define PRIxFAST16	__PRI16(x)
 | 
				
			||||||
 | 
					#define PRIXFAST16	__PRI16(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdFAST16	__SCN16(d)
 | 
				
			||||||
 | 
					#define SCNiFAST16	__SCN16(i)
 | 
				
			||||||
 | 
					#define SCNoFAST16	__SCN16(o)
 | 
				
			||||||
 | 
					#define SCNuFAST16	__SCN16(u)
 | 
				
			||||||
 | 
					#define SCNxFAST16	__SCN16(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 32-bit types */
 | 
				
			||||||
 | 
					#if __have_long32
 | 
				
			||||||
 | 
					#define __PRI32(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#define __SCN32(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __PRI32(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#define __SCN32(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRId32		__PRI32(d)
 | 
				
			||||||
 | 
					#define PRIi32		__PRI32(i)
 | 
				
			||||||
 | 
					#define PRIo32		__PRI32(o)
 | 
				
			||||||
 | 
					#define PRIu32		__PRI32(u)
 | 
				
			||||||
 | 
					#define PRIx32		__PRI32(x)
 | 
				
			||||||
 | 
					#define PRIX32		__PRI32(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNd32		__SCN32(d)
 | 
				
			||||||
 | 
					#define SCNi32		__SCN32(i)
 | 
				
			||||||
 | 
					#define SCNo32		__SCN32(o)
 | 
				
			||||||
 | 
					#define SCNu32		__SCN32(u)
 | 
				
			||||||
 | 
					#define SCNx32		__SCN32(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdLEAST32	__PRI32(d)
 | 
				
			||||||
 | 
					#define PRIiLEAST32	__PRI32(i)
 | 
				
			||||||
 | 
					#define PRIoLEAST32	__PRI32(o)
 | 
				
			||||||
 | 
					#define PRIuLEAST32	__PRI32(u)
 | 
				
			||||||
 | 
					#define PRIxLEAST32	__PRI32(x)
 | 
				
			||||||
 | 
					#define PRIXLEAST32	__PRI32(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdLEAST32	__SCN32(d)
 | 
				
			||||||
 | 
					#define SCNiLEAST32	__SCN32(i)
 | 
				
			||||||
 | 
					#define SCNoLEAST32	__SCN32(o)
 | 
				
			||||||
 | 
					#define SCNuLEAST32	__SCN32(u)
 | 
				
			||||||
 | 
					#define SCNxLEAST32	__SCN32(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdFAST32	__PRI32(d)
 | 
				
			||||||
 | 
					#define PRIiFAST32	__PRI32(i)
 | 
				
			||||||
 | 
					#define PRIoFAST32	__PRI32(o)
 | 
				
			||||||
 | 
					#define PRIuFAST32	__PRI32(u)
 | 
				
			||||||
 | 
					#define PRIxFAST32	__PRI32(x)
 | 
				
			||||||
 | 
					#define PRIXFAST32	__PRI32(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdFAST32	__SCN32(d)
 | 
				
			||||||
 | 
					#define SCNiFAST32	__SCN32(i)
 | 
				
			||||||
 | 
					#define SCNoFAST32	__SCN32(o)
 | 
				
			||||||
 | 
					#define SCNuFAST32	__SCN32(u)
 | 
				
			||||||
 | 
					#define SCNxFAST32	__SCN32(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 64-bit types */
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define __PRI64(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#define __SCN64(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					#define __PRI64(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#define __SCN64(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __PRI64(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#define __SCN64(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRId64		__PRI64(d)
 | 
				
			||||||
 | 
					#define PRIi64		__PRI64(i)
 | 
				
			||||||
 | 
					#define PRIo64		__PRI64(o)
 | 
				
			||||||
 | 
					#define PRIu64		__PRI64(u)
 | 
				
			||||||
 | 
					#define PRIx64		__PRI64(x)
 | 
				
			||||||
 | 
					#define PRIX64		__PRI64(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNd64		__SCN64(d)
 | 
				
			||||||
 | 
					#define SCNi64		__SCN64(i)
 | 
				
			||||||
 | 
					#define SCNo64		__SCN64(o)
 | 
				
			||||||
 | 
					#define SCNu64		__SCN64(u)
 | 
				
			||||||
 | 
					#define SCNx64		__SCN64(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __int64_t_defined
 | 
				
			||||||
 | 
					#define PRIdLEAST64	__PRI64(d)
 | 
				
			||||||
 | 
					#define PRIiLEAST64	__PRI64(i)
 | 
				
			||||||
 | 
					#define PRIoLEAST64	__PRI64(o)
 | 
				
			||||||
 | 
					#define PRIuLEAST64	__PRI64(u)
 | 
				
			||||||
 | 
					#define PRIxLEAST64	__PRI64(x)
 | 
				
			||||||
 | 
					#define PRIXLEAST64	__PRI64(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdLEAST64	__SCN64(d)
 | 
				
			||||||
 | 
					#define SCNiLEAST64	__SCN64(i)
 | 
				
			||||||
 | 
					#define SCNoLEAST64	__SCN64(o)
 | 
				
			||||||
 | 
					#define SCNuLEAST64	__SCN64(u)
 | 
				
			||||||
 | 
					#define SCNxLEAST64	__SCN64(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdFAST64	__PRI64(d)
 | 
				
			||||||
 | 
					#define PRIiFAST64	__PRI64(i)
 | 
				
			||||||
 | 
					#define PRIoFAST64	__PRI64(o)
 | 
				
			||||||
 | 
					#define PRIuFAST64	__PRI64(u)
 | 
				
			||||||
 | 
					#define PRIxFAST64	__PRI64(x)
 | 
				
			||||||
 | 
					#define PRIXFAST64	__PRI64(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdFAST64	__SCN64(d)
 | 
				
			||||||
 | 
					#define SCNiFAST64	__SCN64(i)
 | 
				
			||||||
 | 
					#define SCNoFAST64	__SCN64(o)
 | 
				
			||||||
 | 
					#define SCNuFAST64	__SCN64(u)
 | 
				
			||||||
 | 
					#define SCNxFAST64	__SCN64(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* max-bit types */
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define __PRIMAX(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#define __SCNMAX(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					#define __PRIMAX(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#define __SCNMAX(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __PRIMAX(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#define __SCNMAX(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdMAX		__PRIMAX(d)
 | 
				
			||||||
 | 
					#define PRIiMAX		__PRIMAX(i)
 | 
				
			||||||
 | 
					#define PRIoMAX		__PRIMAX(o)
 | 
				
			||||||
 | 
					#define PRIuMAX		__PRIMAX(u)
 | 
				
			||||||
 | 
					#define PRIxMAX		__PRIMAX(x)
 | 
				
			||||||
 | 
					#define PRIXMAX		__PRIMAX(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdMAX		__SCNMAX(d)
 | 
				
			||||||
 | 
					#define SCNiMAX		__SCNMAX(i)
 | 
				
			||||||
 | 
					#define SCNoMAX		__SCNMAX(o)
 | 
				
			||||||
 | 
					#define SCNuMAX		__SCNMAX(u)
 | 
				
			||||||
 | 
					#define SCNxMAX		__SCNMAX(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ptr types */
 | 
				
			||||||
 | 
					#if defined(_UINTPTR_EQ_ULONGLONG)
 | 
				
			||||||
 | 
					# define __PRIPTR(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					# define __SCNPTR(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#elif defined(_UINTPTR_EQ_ULONG)
 | 
				
			||||||
 | 
					# define __PRIPTR(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					# define __SCNPTR(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define __PRIPTR(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					# define __SCNPTR(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdPTR		__PRIPTR(d)
 | 
				
			||||||
 | 
					#define PRIiPTR		__PRIPTR(i)
 | 
				
			||||||
 | 
					#define PRIoPTR		__PRIPTR(o)
 | 
				
			||||||
 | 
					#define PRIuPTR		__PRIPTR(u)
 | 
				
			||||||
 | 
					#define PRIxPTR		__PRIPTR(x)
 | 
				
			||||||
 | 
					#define PRIXPTR		__PRIPTR(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdPTR		__SCNPTR(d)
 | 
				
			||||||
 | 
					#define SCNiPTR		__SCNPTR(i)
 | 
				
			||||||
 | 
					#define SCNoPTR		__SCNPTR(o)
 | 
				
			||||||
 | 
					#define SCNuPTR		__SCNPTR(u)
 | 
				
			||||||
 | 
					#define SCNxPTR		__SCNPTR(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  intmax_t	quot;
 | 
				
			||||||
 | 
					  intmax_t	rem;
 | 
				
			||||||
 | 
					} imaxdiv_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern intmax_t  imaxabs(intmax_t j);
 | 
				
			||||||
 | 
					extern imaxdiv_t imaxdiv(intmax_t numer, intmax_t denomer);
 | 
				
			||||||
 | 
					extern intmax_t  strtoimax(const char *__restrict, char **__restrict, int);
 | 
				
			||||||
 | 
					extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
 | 
				
			||||||
 | 
					extern intmax_t  wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);
 | 
				
			||||||
 | 
					extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										316
									
								
								libc/xtensa-lx106-elf/include/langinfo.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										316
									
								
								libc/xtensa-lx106-elf/include/langinfo.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,316 @@
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * $FreeBSD: src/include/langinfo.h,v 1.5 2002/03/23 17:24:53 imp Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _LANGINFO_H_
 | 
				
			||||||
 | 
					#define	_LANGINFO_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <newlib.h>
 | 
				
			||||||
 | 
					#include <sys/config.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int nl_item;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum __nl_item
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* POSIX and BSD defined items have to stick to the original values
 | 
				
			||||||
 | 
					     to maintain backward compatibility. */
 | 
				
			||||||
 | 
					  _NL_CTYPE_CODESET_NAME = 0,	/* codeset name */
 | 
				
			||||||
 | 
					#define CODESET _NL_CTYPE_CODESET_NAME
 | 
				
			||||||
 | 
					  D_T_FMT,			/* string for formatting date and time */
 | 
				
			||||||
 | 
					#define D_T_FMT D_T_FMT
 | 
				
			||||||
 | 
					  D_FMT,			/* date format string */
 | 
				
			||||||
 | 
					#define D_FMT D_FMT
 | 
				
			||||||
 | 
					  T_FMT,			/* time format string */
 | 
				
			||||||
 | 
					#define T_FMT T_FMT
 | 
				
			||||||
 | 
					  T_FMT_AMPM,			/* a.m. or p.m. time formatting string */
 | 
				
			||||||
 | 
					#define T_FMT_AMPM T_FMT_AMPM
 | 
				
			||||||
 | 
					  AM_STR,			/* Ante Meridian affix */
 | 
				
			||||||
 | 
					#define AM_STR AM_STR
 | 
				
			||||||
 | 
					  PM_STR,			/* Post Meridian affix */
 | 
				
			||||||
 | 
					#define PM_STR PM_STR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* week day names */
 | 
				
			||||||
 | 
					  DAY_1,
 | 
				
			||||||
 | 
					#define DAY_1 DAY_1
 | 
				
			||||||
 | 
					  DAY_2,
 | 
				
			||||||
 | 
					#define DAY_2 DAY_2
 | 
				
			||||||
 | 
					  DAY_3,
 | 
				
			||||||
 | 
					#define DAY_3 DAY_3
 | 
				
			||||||
 | 
					  DAY_4,
 | 
				
			||||||
 | 
					#define DAY_4 DAY_4
 | 
				
			||||||
 | 
					  DAY_5,
 | 
				
			||||||
 | 
					#define DAY_5 DAY_5
 | 
				
			||||||
 | 
					  DAY_6,
 | 
				
			||||||
 | 
					#define DAY_6 DAY_6
 | 
				
			||||||
 | 
					  DAY_7,
 | 
				
			||||||
 | 
					#define DAY_7 DAY_7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* abbreviated week day names */
 | 
				
			||||||
 | 
					  ABDAY_1,
 | 
				
			||||||
 | 
					#define ABDAY_1 ABDAY_1
 | 
				
			||||||
 | 
					  ABDAY_2,
 | 
				
			||||||
 | 
					#define ABDAY_2 ABDAY_2
 | 
				
			||||||
 | 
					  ABDAY_3,
 | 
				
			||||||
 | 
					#define ABDAY_3 ABDAY_3
 | 
				
			||||||
 | 
					  ABDAY_4,
 | 
				
			||||||
 | 
					#define ABDAY_4 ABDAY_4
 | 
				
			||||||
 | 
					  ABDAY_5,
 | 
				
			||||||
 | 
					#define ABDAY_5 ABDAY_5
 | 
				
			||||||
 | 
					  ABDAY_6,
 | 
				
			||||||
 | 
					#define ABDAY_6 ABDAY_6
 | 
				
			||||||
 | 
					  ABDAY_7,
 | 
				
			||||||
 | 
					#define ABDAY_7 ABDAY_7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* month names */
 | 
				
			||||||
 | 
					  MON_1,
 | 
				
			||||||
 | 
					#define MON_1 MON_1
 | 
				
			||||||
 | 
					  MON_2,
 | 
				
			||||||
 | 
					#define MON_2 MON_2
 | 
				
			||||||
 | 
					  MON_3,
 | 
				
			||||||
 | 
					#define MON_3 MON_3
 | 
				
			||||||
 | 
					  MON_4,
 | 
				
			||||||
 | 
					#define MON_4 MON_4
 | 
				
			||||||
 | 
					  MON_5,
 | 
				
			||||||
 | 
					#define MON_5 MON_5
 | 
				
			||||||
 | 
					  MON_6,
 | 
				
			||||||
 | 
					#define MON_6 MON_6
 | 
				
			||||||
 | 
					  MON_7,
 | 
				
			||||||
 | 
					#define MON_7 MON_7
 | 
				
			||||||
 | 
					  MON_8,
 | 
				
			||||||
 | 
					#define MON_8 MON_8
 | 
				
			||||||
 | 
					  MON_9,
 | 
				
			||||||
 | 
					#define MON_9 MON_9
 | 
				
			||||||
 | 
					  MON_10,
 | 
				
			||||||
 | 
					#define MON_10 MON_10
 | 
				
			||||||
 | 
					  MON_11,
 | 
				
			||||||
 | 
					#define MON_11 MON_11
 | 
				
			||||||
 | 
					  MON_12,
 | 
				
			||||||
 | 
					#define MON_12 MON_12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* abbreviated month names */
 | 
				
			||||||
 | 
					  ABMON_1,
 | 
				
			||||||
 | 
					#define ABMON_1 ABMON_1
 | 
				
			||||||
 | 
					  ABMON_2,
 | 
				
			||||||
 | 
					#define ABMON_2 ABMON_2
 | 
				
			||||||
 | 
					  ABMON_3,
 | 
				
			||||||
 | 
					#define ABMON_3 ABMON_3
 | 
				
			||||||
 | 
					  ABMON_4,
 | 
				
			||||||
 | 
					#define ABMON_4 ABMON_4
 | 
				
			||||||
 | 
					  ABMON_5,
 | 
				
			||||||
 | 
					#define ABMON_5 ABMON_5
 | 
				
			||||||
 | 
					  ABMON_6,
 | 
				
			||||||
 | 
					#define ABMON_6 ABMON_6
 | 
				
			||||||
 | 
					  ABMON_7,
 | 
				
			||||||
 | 
					#define ABMON_7 ABMON_7
 | 
				
			||||||
 | 
					  ABMON_8,
 | 
				
			||||||
 | 
					#define ABMON_8 ABMON_8
 | 
				
			||||||
 | 
					  ABMON_9,
 | 
				
			||||||
 | 
					#define ABMON_9 ABMON_9
 | 
				
			||||||
 | 
					  ABMON_10,
 | 
				
			||||||
 | 
					#define ABMON_10 ABMON_10
 | 
				
			||||||
 | 
					  ABMON_11,
 | 
				
			||||||
 | 
					#define ABMON_11 ABMON_11
 | 
				
			||||||
 | 
					  ABMON_12,
 | 
				
			||||||
 | 
					#define ABMON_12 ABMON_12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ERA,				/* era description segments */
 | 
				
			||||||
 | 
					#define ERA ERA
 | 
				
			||||||
 | 
					  ERA_D_FMT,			/* era date format string */
 | 
				
			||||||
 | 
					#define ERA_D_FMT ERA_D_FMT
 | 
				
			||||||
 | 
					  ERA_D_T_FMT,			/* era date and time format string */
 | 
				
			||||||
 | 
					#define ERA_D_T_FMT ERA_D_T_FMT
 | 
				
			||||||
 | 
					  ERA_T_FMT,			/* era time format string */
 | 
				
			||||||
 | 
					#define ERA_T_FMT ERA_T_FMT
 | 
				
			||||||
 | 
					  ALT_DIGITS,			/* alternative symbols for digits */
 | 
				
			||||||
 | 
					#define ALT_DIGITS ALT_DIGITS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  RADIXCHAR,			/* radix char */
 | 
				
			||||||
 | 
					#define RADIXCHAR RADIXCHAR
 | 
				
			||||||
 | 
					  THOUSEP,			/* separator for thousands */
 | 
				
			||||||
 | 
					#define THOUSEP THOUSEP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  YESEXPR,			/* affirmative response expression */
 | 
				
			||||||
 | 
					#define YESEXPR YESEXPR
 | 
				
			||||||
 | 
					  NOEXPR,			/* negative response expression */
 | 
				
			||||||
 | 
					#define NOEXPR NOEXPR
 | 
				
			||||||
 | 
					  YESSTR,			/* affirmative response for yes/no queries */
 | 
				
			||||||
 | 
					#define YESSTR YESSTR
 | 
				
			||||||
 | 
					  NOSTR,			/* negative response for yes/no queries */
 | 
				
			||||||
 | 
					#define NOSTR NOSTR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  CRNCYSTR,			/* currency symbol */
 | 
				
			||||||
 | 
					#define CRNCYSTR CRNCYSTR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  D_MD_ORDER,			/* month/day order (BSD extension) */
 | 
				
			||||||
 | 
					#define D_MD_ORDER D_MD_ORDER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_TIME_DATE_FMT = 84,	/* date fmt used by date(1) (GNU extension) */
 | 
				
			||||||
 | 
					#define _DATE_FMT _NL_TIME_DATE_FMT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __HAVE_LOCALE_INFO__
 | 
				
			||||||
 | 
					  _NL_CTYPE_MB_CUR_MAX,
 | 
				
			||||||
 | 
					  _NL_MESSAGES_CODESET,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __HAVE_LOCALE_INFO_EXTENDED__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* NOTE:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					     Always maintain the order and position of existing entries!
 | 
				
			||||||
 | 
					     Always append new entry to the list, prior to the definition
 | 
				
			||||||
 | 
					     of _NL_LOCALE_EXTENDED_LAST_ENTRY. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_LOCALE_EXTENDED_FIRST_ENTRY,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS0_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS1_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS2_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS3_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS4_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS5_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS6_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS7_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS8_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS9_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS0_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS1_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS2_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS3_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS4_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS5_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS6_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS7_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS8_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS9_WC,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_TIME_CODESET,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_1,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_2,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_3,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_4,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_5,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_6,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_7,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_8,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_9,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_10,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_11,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_12,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_1,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_2,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_3,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_4,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_5,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_6,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_7,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_8,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_9,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_10,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_11,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_12,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_1,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_2,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_3,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_4,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_5,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_6,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_7,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_1,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_2,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_3,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_4,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_5,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_6,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_7,
 | 
				
			||||||
 | 
					  _NL_TIME_WT_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WD_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WD_T_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WAM_STR,
 | 
				
			||||||
 | 
					  _NL_TIME_WPM_STR,
 | 
				
			||||||
 | 
					  _NL_TIME_WDATE_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WT_FMT_AMPM,
 | 
				
			||||||
 | 
					  _NL_TIME_WERA,
 | 
				
			||||||
 | 
					  _NL_TIME_WERA_D_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WERA_D_T_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WERA_T_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WALT_DIGITS,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_NUMERIC_CODESET,
 | 
				
			||||||
 | 
					  _NL_NUMERIC_GROUPING,
 | 
				
			||||||
 | 
					  _NL_NUMERIC_DECIMAL_POINT_WC,
 | 
				
			||||||
 | 
					  _NL_NUMERIC_THOUSANDS_SEP_WC,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_CURR_SYMBOL,
 | 
				
			||||||
 | 
					  _NL_MONETARY_CURRENCY_SYMBOL,
 | 
				
			||||||
 | 
					  _NL_MONETARY_MON_DECIMAL_POINT,
 | 
				
			||||||
 | 
					  _NL_MONETARY_MON_THOUSANDS_SEP,
 | 
				
			||||||
 | 
					  _NL_MONETARY_MON_GROUPING,
 | 
				
			||||||
 | 
					  _NL_MONETARY_POSITIVE_SIGN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_NEGATIVE_SIGN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_FRAC_DIGITS,
 | 
				
			||||||
 | 
					  _NL_MONETARY_FRAC_DIGITS,
 | 
				
			||||||
 | 
					  _NL_MONETARY_P_CS_PRECEDES,
 | 
				
			||||||
 | 
					  _NL_MONETARY_P_SEP_BY_SPACE,
 | 
				
			||||||
 | 
					  _NL_MONETARY_N_CS_PRECEDES,
 | 
				
			||||||
 | 
					  _NL_MONETARY_N_SEP_BY_SPACE,
 | 
				
			||||||
 | 
					  _NL_MONETARY_P_SIGN_POSN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_N_SIGN_POSN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_P_CS_PRECEDES,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_P_SEP_BY_SPACE,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_N_CS_PRECEDES,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_N_SEP_BY_SPACE,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_P_SIGN_POSN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_N_SIGN_POSN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_CODESET,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WINT_CURR_SYMBOL,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WCURRENCY_SYMBOL,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WMON_DECIMAL_POINT,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WMON_THOUSANDS_SEP,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WPOSITIVE_SIGN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WNEGATIVE_SIGN,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_MESSAGES_WYESEXPR,
 | 
				
			||||||
 | 
					  _NL_MESSAGES_WNOEXPR,
 | 
				
			||||||
 | 
					  _NL_MESSAGES_WYESSTR,
 | 
				
			||||||
 | 
					  _NL_MESSAGES_WNOSTR,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_COLLATE_CODESET,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* This MUST be the last entry since it's used to check for an array
 | 
				
			||||||
 | 
					     index in nl_langinfo(). */
 | 
				
			||||||
 | 
					  _NL_LOCALE_EXTENDED_LAST_ENTRY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __HAVE_LOCALE_INFO_EXTENDED__ */
 | 
				
			||||||
 | 
					#endif /* __HAVE_LOCALE_INFO__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					char	*nl_langinfo(nl_item);
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_LANGINFO_H_ */
 | 
				
			||||||
							
								
								
									
										23
									
								
								libc/xtensa-lx106-elf/include/libgen.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								libc/xtensa-lx106-elf/include/libgen.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * libgen.h - defined by XPG4
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _LIBGEN_H_
 | 
				
			||||||
 | 
					#define _LIBGEN_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char      *_EXFUN(basename,     (char *));
 | 
				
			||||||
 | 
					char      *_EXFUN(dirname,     (char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _LIBGEN_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										146
									
								
								libc/xtensa-lx106-elf/include/limits.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								libc/xtensa-lx106-elf/include/limits.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,146 @@
 | 
				
			||||||
 | 
					#ifndef _LIBC_LIMITS_H_
 | 
				
			||||||
 | 
					# define _LIBC_LIMITS_H_	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <newlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifdef _MB_LEN_MAX
 | 
				
			||||||
 | 
					#  define MB_LEN_MAX	_MB_LEN_MAX
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define MB_LEN_MAX    1
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum number of positional arguments, if _WANT_IO_POS_ARGS.  */
 | 
				
			||||||
 | 
					# ifndef NL_ARGMAX
 | 
				
			||||||
 | 
					#  define NL_ARGMAX 32
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* if do not have #include_next support, then we
 | 
				
			||||||
 | 
					   have to define the limits here. */
 | 
				
			||||||
 | 
					# if !defined __GNUC__ || __GNUC__ < 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  ifndef _LIMITS_H
 | 
				
			||||||
 | 
					#   define _LIMITS_H	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   include <sys/config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Number of bits in a `char'.  */
 | 
				
			||||||
 | 
					#   undef CHAR_BIT
 | 
				
			||||||
 | 
					#   define CHAR_BIT 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed char' can hold.  */
 | 
				
			||||||
 | 
					#   undef SCHAR_MIN
 | 
				
			||||||
 | 
					#   define SCHAR_MIN (-128)
 | 
				
			||||||
 | 
					#   undef SCHAR_MAX
 | 
				
			||||||
 | 
					#   define SCHAR_MAX 127
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned char' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#   undef UCHAR_MAX
 | 
				
			||||||
 | 
					#   define UCHAR_MAX 255
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `char' can hold.  */
 | 
				
			||||||
 | 
					#   ifdef __CHAR_UNSIGNED__
 | 
				
			||||||
 | 
					#    undef CHAR_MIN
 | 
				
			||||||
 | 
					#    define CHAR_MIN 0
 | 
				
			||||||
 | 
					#    undef CHAR_MAX
 | 
				
			||||||
 | 
					#    define CHAR_MAX 255
 | 
				
			||||||
 | 
					#   else
 | 
				
			||||||
 | 
					#    undef CHAR_MIN
 | 
				
			||||||
 | 
					#    define CHAR_MIN (-128)
 | 
				
			||||||
 | 
					#    undef CHAR_MAX
 | 
				
			||||||
 | 
					#    define CHAR_MAX 127
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed short int' can hold.  */
 | 
				
			||||||
 | 
					#   undef SHRT_MIN
 | 
				
			||||||
 | 
					/* For the sake of 16 bit hosts, we may not use -32768 */
 | 
				
			||||||
 | 
					#   define SHRT_MIN (-32767-1)
 | 
				
			||||||
 | 
					#   undef SHRT_MAX
 | 
				
			||||||
 | 
					#   define SHRT_MAX 32767
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned short int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#   undef USHRT_MAX
 | 
				
			||||||
 | 
					#   define USHRT_MAX 65535
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed int' can hold.  */
 | 
				
			||||||
 | 
					#   ifndef __INT_MAX__
 | 
				
			||||||
 | 
					#    define __INT_MAX__ 2147483647
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					#   undef INT_MIN
 | 
				
			||||||
 | 
					#   define INT_MIN (-INT_MAX-1)
 | 
				
			||||||
 | 
					#   undef INT_MAX
 | 
				
			||||||
 | 
					#   define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#   undef UINT_MAX
 | 
				
			||||||
 | 
					#   define UINT_MAX (INT_MAX * 2U + 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed long int' can hold.
 | 
				
			||||||
 | 
					   (Same as `int').  */
 | 
				
			||||||
 | 
					#   ifndef __LONG_MAX__
 | 
				
			||||||
 | 
					#    if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) || defined (__sparcv9)
 | 
				
			||||||
 | 
					#     define __LONG_MAX__ 9223372036854775807L
 | 
				
			||||||
 | 
					#    else
 | 
				
			||||||
 | 
					#     define __LONG_MAX__ 2147483647L
 | 
				
			||||||
 | 
					#    endif /* __alpha__ || sparc64 */
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					#   undef LONG_MIN
 | 
				
			||||||
 | 
					#   define LONG_MIN (-LONG_MAX-1)
 | 
				
			||||||
 | 
					#   undef LONG_MAX
 | 
				
			||||||
 | 
					#   define LONG_MAX __LONG_MAX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned long int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#   undef ULONG_MAX
 | 
				
			||||||
 | 
					#   define ULONG_MAX (LONG_MAX * 2UL + 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   ifndef __LONG_LONG_MAX__
 | 
				
			||||||
 | 
					#    define __LONG_LONG_MAX__ 9223372036854775807LL
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) ||   \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed long long int' can hold.  */
 | 
				
			||||||
 | 
					#    undef LLONG_MIN
 | 
				
			||||||
 | 
					#    define LLONG_MIN (-LLONG_MAX-1)
 | 
				
			||||||
 | 
					#    undef LLONG_MAX
 | 
				
			||||||
 | 
					#    define LLONG_MAX __LONG_LONG_MAX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#    undef ULLONG_MAX
 | 
				
			||||||
 | 
					#    define ULLONG_MAX (LLONG_MAX * 2ULL + 1)
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed long long int' can hold.  */
 | 
				
			||||||
 | 
					#    undef LONG_LONG_MIN
 | 
				
			||||||
 | 
					#    define LONG_LONG_MIN (-LONG_LONG_MAX-1)
 | 
				
			||||||
 | 
					#    undef LONG_LONG_MAX
 | 
				
			||||||
 | 
					#    define LONG_LONG_MAX __LONG_LONG_MAX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#    undef ULONG_LONG_MAX
 | 
				
			||||||
 | 
					#    define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  endif /* _LIMITS_H  */
 | 
				
			||||||
 | 
					# endif	 /* GCC 2.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	 /* !_LIBC_LIMITS_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined __GNUC__ && !defined _GCC_LIMITS_H_
 | 
				
			||||||
 | 
					/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
 | 
				
			||||||
 | 
					# include_next <limits.h>
 | 
				
			||||||
 | 
					#endif /* __GNUC__ && !_GCC_LIMITS_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _POSIX2_RE_DUP_MAX
 | 
				
			||||||
 | 
					/* The maximum number of repeated occurrences of a regular expression
 | 
				
			||||||
 | 
					 *    permitted when using the interval notation `\{M,N\}'.  */
 | 
				
			||||||
 | 
					#define _POSIX2_RE_DUP_MAX              255
 | 
				
			||||||
 | 
					#endif /* _POSIX2_RE_DUP_MAX  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef ARG_MAX
 | 
				
			||||||
 | 
					#define ARG_MAX		4096
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef PATH_MAX
 | 
				
			||||||
 | 
					#define PATH_MAX	4096
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										64
									
								
								libc/xtensa-lx106-elf/include/locale.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								libc/xtensa-lx106-elf/include/locale.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
						locale.h
 | 
				
			||||||
 | 
						Values appropriate for the formatting of monetary and other
 | 
				
			||||||
 | 
						numberic quantities.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _LOCALE_H_
 | 
				
			||||||
 | 
					#define _LOCALE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LC_ALL	    0
 | 
				
			||||||
 | 
					#define LC_COLLATE  1
 | 
				
			||||||
 | 
					#define LC_CTYPE    2
 | 
				
			||||||
 | 
					#define LC_MONETARY 3
 | 
				
			||||||
 | 
					#define LC_NUMERIC  4
 | 
				
			||||||
 | 
					#define LC_TIME     5
 | 
				
			||||||
 | 
					#define LC_MESSAGES 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct lconv
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char *decimal_point;
 | 
				
			||||||
 | 
					  char *thousands_sep;
 | 
				
			||||||
 | 
					  char *grouping;
 | 
				
			||||||
 | 
					  char *int_curr_symbol;
 | 
				
			||||||
 | 
					  char *currency_symbol;
 | 
				
			||||||
 | 
					  char *mon_decimal_point;
 | 
				
			||||||
 | 
					  char *mon_thousands_sep;
 | 
				
			||||||
 | 
					  char *mon_grouping;
 | 
				
			||||||
 | 
					  char *positive_sign;
 | 
				
			||||||
 | 
					  char *negative_sign;
 | 
				
			||||||
 | 
					  char int_frac_digits;
 | 
				
			||||||
 | 
					  char frac_digits;
 | 
				
			||||||
 | 
					  char p_cs_precedes;
 | 
				
			||||||
 | 
					  char p_sep_by_space;
 | 
				
			||||||
 | 
					  char n_cs_precedes;
 | 
				
			||||||
 | 
					  char n_sep_by_space;
 | 
				
			||||||
 | 
					  char p_sign_posn;
 | 
				
			||||||
 | 
					  char n_sign_posn;
 | 
				
			||||||
 | 
					  char int_n_cs_precedes;
 | 
				
			||||||
 | 
					  char int_n_sep_by_space;
 | 
				
			||||||
 | 
					  char int_n_sign_posn;
 | 
				
			||||||
 | 
					  char int_p_cs_precedes;
 | 
				
			||||||
 | 
					  char int_p_sep_by_space;
 | 
				
			||||||
 | 
					  char int_p_sign_posn;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					char *_EXFUN(setlocale,(int category, const char *locale));
 | 
				
			||||||
 | 
					struct lconv *_EXFUN(localeconv,(void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _reent;
 | 
				
			||||||
 | 
					char *_EXFUN(_setlocale_r,(struct _reent *, int category, const char *locale));
 | 
				
			||||||
 | 
					struct lconv *_EXFUN(_localeconv_r,(struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _LOCALE_H_ */
 | 
				
			||||||
							
								
								
									
										220
									
								
								libc/xtensa-lx106-elf/include/machine/_default_types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								libc/xtensa-lx106-elf/include/machine/_default_types.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,220 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _MACHINE__DEFAULT_TYPES_H
 | 
				
			||||||
 | 
					#define _MACHINE__DEFAULT_TYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Guess on types by examining *_MIN / *_MAX defines.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ (3, 3)
 | 
				
			||||||
 | 
					/* GCC >= 3.3.0 has __<val>__ implicitly defined. */
 | 
				
			||||||
 | 
					#define __EXP(x) __##x##__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* Fall back to POSIX versions from <limits.h> */
 | 
				
			||||||
 | 
					#define __EXP(x) x
 | 
				
			||||||
 | 
					#include <limits.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT8_TYPE__
 | 
				
			||||||
 | 
					typedef __INT8_TYPE__ __int8_t;
 | 
				
			||||||
 | 
					#ifdef __UINT8_TYPE__
 | 
				
			||||||
 | 
					typedef __UINT8_TYPE__ __uint8_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INT8_TYPE__ __uint8_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ___int8_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(SCHAR_MAX) == 0x7f
 | 
				
			||||||
 | 
					typedef signed char __int8_t ;
 | 
				
			||||||
 | 
					typedef unsigned char __uint8_t ;
 | 
				
			||||||
 | 
					#define ___int8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT16_TYPE__
 | 
				
			||||||
 | 
					typedef __INT16_TYPE__ __int16_t;
 | 
				
			||||||
 | 
					#ifdef __UINT16_TYPE__
 | 
				
			||||||
 | 
					typedef __UINT16_TYPE__ __uint16_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INT16_TYPE__ __uint16_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ___int16_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(INT_MAX) == 0x7fff
 | 
				
			||||||
 | 
					typedef signed int __int16_t;
 | 
				
			||||||
 | 
					typedef unsigned int __uint16_t;
 | 
				
			||||||
 | 
					#define ___int16_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(SHRT_MAX) == 0x7fff
 | 
				
			||||||
 | 
					typedef signed short __int16_t;
 | 
				
			||||||
 | 
					typedef unsigned short __uint16_t;
 | 
				
			||||||
 | 
					#define ___int16_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(SCHAR_MAX) == 0x7fff
 | 
				
			||||||
 | 
					typedef signed char __int16_t;
 | 
				
			||||||
 | 
					typedef unsigned char __uint16_t;
 | 
				
			||||||
 | 
					#define ___int16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT32_TYPE__
 | 
				
			||||||
 | 
					typedef __INT32_TYPE__ __int32_t;
 | 
				
			||||||
 | 
					#ifdef __UINT32_TYPE__
 | 
				
			||||||
 | 
					typedef __UINT32_TYPE__ __uint32_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INT32_TYPE__ __uint32_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ___int32_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(INT_MAX) == 0x7fffffffL
 | 
				
			||||||
 | 
					typedef signed int __int32_t;
 | 
				
			||||||
 | 
					typedef unsigned int __uint32_t;
 | 
				
			||||||
 | 
					#define ___int32_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(LONG_MAX) == 0x7fffffffL
 | 
				
			||||||
 | 
					typedef signed long __int32_t;
 | 
				
			||||||
 | 
					typedef unsigned long __uint32_t;
 | 
				
			||||||
 | 
					#define ___int32_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(SHRT_MAX) == 0x7fffffffL
 | 
				
			||||||
 | 
					typedef signed short __int32_t;
 | 
				
			||||||
 | 
					typedef unsigned short __uint32_t;
 | 
				
			||||||
 | 
					#define ___int32_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(SCHAR_MAX) == 0x7fffffffL
 | 
				
			||||||
 | 
					typedef signed char __int32_t;
 | 
				
			||||||
 | 
					typedef unsigned char __uint32_t;
 | 
				
			||||||
 | 
					#define ___int32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT64_TYPE__
 | 
				
			||||||
 | 
					typedef __INT64_TYPE__ __int64_t;
 | 
				
			||||||
 | 
					#ifdef __UINT64_TYPE__
 | 
				
			||||||
 | 
					typedef __UINT64_TYPE__ __uint64_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INT64_TYPE__ __uint64_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ___int64_t_defined 1
 | 
				
			||||||
 | 
					#elif __EXP(LONG_MAX) > 0x7fffffff
 | 
				
			||||||
 | 
					typedef signed long __int64_t;
 | 
				
			||||||
 | 
					typedef unsigned long __uint64_t;
 | 
				
			||||||
 | 
					#define ___int64_t_defined 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* GCC has __LONG_LONG_MAX__ */
 | 
				
			||||||
 | 
					#elif  defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff)
 | 
				
			||||||
 | 
					typedef signed long long __int64_t;
 | 
				
			||||||
 | 
					typedef unsigned long long __uint64_t;
 | 
				
			||||||
 | 
					#define ___int64_t_defined 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX mandates LLONG_MAX in <limits.h> */
 | 
				
			||||||
 | 
					#elif  defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff)
 | 
				
			||||||
 | 
					typedef signed long long __int64_t;
 | 
				
			||||||
 | 
					typedef unsigned long long __uint64_t;
 | 
				
			||||||
 | 
					#define ___int64_t_defined 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#elif  __EXP(INT_MAX) > 0x7fffffff
 | 
				
			||||||
 | 
					typedef signed int __int64_t;
 | 
				
			||||||
 | 
					typedef unsigned int __uint64_t;
 | 
				
			||||||
 | 
					#define ___int64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST8_TYPE__
 | 
				
			||||||
 | 
					typedef __INT_LEAST8_TYPE__ __int_least8_t;
 | 
				
			||||||
 | 
					#ifdef __UINT_LEAST8_TYPE__
 | 
				
			||||||
 | 
					typedef __UINT_LEAST8_TYPE__ __uint_least8_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INT_LEAST8_TYPE__ __uint_least8_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ___int_least8_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int8_t_defined)
 | 
				
			||||||
 | 
					typedef __int8_t __int_least8_t;
 | 
				
			||||||
 | 
					typedef __uint8_t __uint_least8_t;
 | 
				
			||||||
 | 
					#define ___int_least8_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int16_t_defined)
 | 
				
			||||||
 | 
					typedef __int16_t __int_least8_t;
 | 
				
			||||||
 | 
					typedef __uint16_t __uint_least8_t;
 | 
				
			||||||
 | 
					#define ___int_least8_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int32_t_defined)
 | 
				
			||||||
 | 
					typedef __int32_t __int_least8_t;
 | 
				
			||||||
 | 
					typedef __uint32_t __uint_least8_t;
 | 
				
			||||||
 | 
					#define ___int_least8_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int64_t_defined)
 | 
				
			||||||
 | 
					typedef __int64_t __int_least8_t;
 | 
				
			||||||
 | 
					typedef __uint64_t __uint_least8_t;
 | 
				
			||||||
 | 
					#define ___int_least8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST16_TYPE__
 | 
				
			||||||
 | 
					typedef __INT_LEAST16_TYPE__ __int_least16_t;
 | 
				
			||||||
 | 
					#ifdef __UINT_LEAST16_TYPE__
 | 
				
			||||||
 | 
					typedef __UINT_LEAST16_TYPE__ __uint_least16_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INT_LEAST16_TYPE__ __uint_least16_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ___int_least16_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int16_t_defined)
 | 
				
			||||||
 | 
					typedef __int16_t __int_least16_t;
 | 
				
			||||||
 | 
					typedef __uint16_t __uint_least16_t;
 | 
				
			||||||
 | 
					#define ___int_least16_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int32_t_defined)
 | 
				
			||||||
 | 
					typedef __int32_t __int_least16_t;
 | 
				
			||||||
 | 
					typedef __uint32_t __uint_least16_t;
 | 
				
			||||||
 | 
					#define ___int_least16_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int64_t_defined)
 | 
				
			||||||
 | 
					typedef __int64_t __int_least16_t;
 | 
				
			||||||
 | 
					typedef __uint64_t __uint_least16_t;
 | 
				
			||||||
 | 
					#define ___int_least16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST32_TYPE__
 | 
				
			||||||
 | 
					typedef __INT_LEAST32_TYPE__ __int_least32_t;
 | 
				
			||||||
 | 
					#ifdef __UINT_LEAST32_TYPE__
 | 
				
			||||||
 | 
					typedef __UINT_LEAST32_TYPE__ __uint_least32_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INT_LEAST32_TYPE__ __uint_least32_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ___int_least32_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int32_t_defined)
 | 
				
			||||||
 | 
					typedef __int32_t __int_least32_t;
 | 
				
			||||||
 | 
					typedef __uint32_t __uint_least32_t;
 | 
				
			||||||
 | 
					#define ___int_least32_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int64_t_defined)
 | 
				
			||||||
 | 
					typedef __int64_t __int_least32_t;
 | 
				
			||||||
 | 
					typedef __uint64_t __uint_least32_t;
 | 
				
			||||||
 | 
					#define ___int_least32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST64_TYPE__
 | 
				
			||||||
 | 
					typedef __INT_LEAST64_TYPE__ __int_least64_t;
 | 
				
			||||||
 | 
					#ifdef __UINT_LEAST64_TYPE__
 | 
				
			||||||
 | 
					typedef __UINT_LEAST64_TYPE__ __uint_least64_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INT_LEAST64_TYPE__ __uint_least64_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ___int_least64_t_defined 1
 | 
				
			||||||
 | 
					#elif defined(___int64_t_defined)
 | 
				
			||||||
 | 
					typedef __int64_t __int_least64_t;
 | 
				
			||||||
 | 
					typedef __uint64_t __uint_least64_t;
 | 
				
			||||||
 | 
					#define ___int_least64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INTPTR_TYPE__
 | 
				
			||||||
 | 
					typedef __INTPTR_TYPE__ __intptr_t;
 | 
				
			||||||
 | 
					#ifdef __UINTPTR_TYPE__
 | 
				
			||||||
 | 
					typedef __UINTPTR_TYPE__ __uintptr_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned __INTPTR_TYPE__ __uintptr_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#elif defined(__PTRDIFF_TYPE__)
 | 
				
			||||||
 | 
					typedef __PTRDIFF_TYPE__ __intptr_t;
 | 
				
			||||||
 | 
					typedef unsigned __PTRDIFF_TYPE__ __uintptr_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef long __intptr_t;
 | 
				
			||||||
 | 
					typedef unsigned long __uintptr_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __EXP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _MACHINE__DEFAULT_TYPES_H */
 | 
				
			||||||
							
								
								
									
										8
									
								
								libc/xtensa-lx106-elf/include/machine/_types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								libc/xtensa-lx106-elf/include/machine/_types.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _MACHINE__TYPES_H
 | 
				
			||||||
 | 
					#define _MACHINE__TYPES_H
 | 
				
			||||||
 | 
					#include <machine/_default_types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										1
									
								
								libc/xtensa-lx106-elf/include/machine/ansi.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								libc/xtensa-lx106-elf/include/machine/ansi.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					/* dummy header file to support BSD compiler */
 | 
				
			||||||
							
								
								
									
										20
									
								
								libc/xtensa-lx106-elf/include/machine/endian.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								libc/xtensa-lx106-elf/include/machine/endian.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					#ifndef __MACHINE_ENDIAN_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef BIG_ENDIAN
 | 
				
			||||||
 | 
					#define BIG_ENDIAN 4321
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define LITTLE_ENDIAN 1234
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef BYTE_ORDER
 | 
				
			||||||
 | 
					#if defined(__IEEE_LITTLE_ENDIAN) || defined(__IEEE_BYTES_LITTLE_ENDIAN)
 | 
				
			||||||
 | 
					#define BYTE_ORDER LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define BYTE_ORDER BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __MACHINE_ENDIAN_H__ */
 | 
				
			||||||
							
								
								
									
										100
									
								
								libc/xtensa-lx106-elf/include/machine/fastmath.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								libc/xtensa-lx106-elf/include/machine/fastmath.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,100 @@
 | 
				
			||||||
 | 
					#ifdef __sysvnecv70_target
 | 
				
			||||||
 | 
					double EXFUN(fast_sin,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_cos,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_tan,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double EXFUN(fast_asin,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_acos,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_atan,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double EXFUN(fast_sinh,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_cosh,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_tanh,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double EXFUN(fast_asinh,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_acosh,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_atanh,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double EXFUN(fast_abs,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_sqrt,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_exp2,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_exp10,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_expe,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_log10,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_log2,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_loge,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	sin(x)		fast_sin(x)
 | 
				
			||||||
 | 
					#define	cos(x)		fast_cos(x)
 | 
				
			||||||
 | 
					#define	tan(x)		fast_tan(x)
 | 
				
			||||||
 | 
					#define	asin(x)		fast_asin(x)
 | 
				
			||||||
 | 
					#define	acos(x)		fast_acos(x)
 | 
				
			||||||
 | 
					#define	atan(x)		fast_atan(x)
 | 
				
			||||||
 | 
					#define	sinh(x)		fast_sinh(x)
 | 
				
			||||||
 | 
					#define	cosh(x)		fast_cosh(x)
 | 
				
			||||||
 | 
					#define	tanh(x)		fast_tanh(x)
 | 
				
			||||||
 | 
					#define	asinh(x)	fast_asinh(x)
 | 
				
			||||||
 | 
					#define	acosh(x)	fast_acosh(x)
 | 
				
			||||||
 | 
					#define	atanh(x)	fast_atanh(x)
 | 
				
			||||||
 | 
					#define	abs(x)		fast_abs(x)
 | 
				
			||||||
 | 
					#define	sqrt(x)		fast_sqrt(x)
 | 
				
			||||||
 | 
					#define	exp2(x)		fast_exp2(x)
 | 
				
			||||||
 | 
					#define	exp10(x)	fast_exp10(x)
 | 
				
			||||||
 | 
					#define	expe(x)		fast_expe(x)
 | 
				
			||||||
 | 
					#define	log10(x)	fast_log10(x)
 | 
				
			||||||
 | 
					#define	log2(x)		fast_log2(x)
 | 
				
			||||||
 | 
					#define	loge(x)		fast_loge(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _HAVE_STDC
 | 
				
			||||||
 | 
					/* These functions are in assembler, they really do take floats. This
 | 
				
			||||||
 | 
					   can only be used with a real ANSI compiler */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_sinf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_cosf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_tanf,(float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_asinf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_acosf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_atanf,(float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_sinhf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_coshf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_tanhf,(float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_asinhf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_acoshf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_atanhf,(float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_absf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_sqrtf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_exp2f,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_exp10f,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_expef,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_log10f,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_log2f,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_logef,(float));
 | 
				
			||||||
 | 
					#define	sinf(x)		fast_sinf(x)
 | 
				
			||||||
 | 
					#define	cosf(x)		fast_cosf(x)
 | 
				
			||||||
 | 
					#define	tanf(x)		fast_tanf(x)
 | 
				
			||||||
 | 
					#define	asinf(x)	fast_asinf(x)
 | 
				
			||||||
 | 
					#define	acosf(x)	fast_acosf(x)
 | 
				
			||||||
 | 
					#define	atanf(x)	fast_atanf(x)
 | 
				
			||||||
 | 
					#define	sinhf(x)	fast_sinhf(x)
 | 
				
			||||||
 | 
					#define	coshf(x)	fast_coshf(x)
 | 
				
			||||||
 | 
					#define	tanhf(x)	fast_tanhf(x)
 | 
				
			||||||
 | 
					#define	asinhf(x)	fast_asinhf(x)
 | 
				
			||||||
 | 
					#define	acoshf(x)	fast_acoshf(x)
 | 
				
			||||||
 | 
					#define	atanhf(x)	fast_atanhf(x)
 | 
				
			||||||
 | 
					#define	absf(x)		fast_absf(x)
 | 
				
			||||||
 | 
					#define	sqrtf(x)	fast_sqrtf(x)
 | 
				
			||||||
 | 
					#define	exp2f(x)	fast_exp2f(x)
 | 
				
			||||||
 | 
					#define	exp10f(x)	fast_exp10f(x)
 | 
				
			||||||
 | 
					#define	expef(x)	fast_expef(x)
 | 
				
			||||||
 | 
					#define	log10f(x)	fast_log10f(x)
 | 
				
			||||||
 | 
					#define	log2f(x)	fast_log2f(x)
 | 
				
			||||||
 | 
					#define	logef(x)	fast_logef(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* Override the functions defined in math.h */
 | 
				
			||||||
 | 
					#endif /* __sysvnecv70_target */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										434
									
								
								libc/xtensa-lx106-elf/include/machine/ieeefp.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										434
									
								
								libc/xtensa-lx106-elf/include/machine/ieeefp.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,434 @@
 | 
				
			||||||
 | 
					#ifndef __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#ifndef __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This file can define macros to choose variations of the IEEE float
 | 
				
			||||||
 | 
					   format:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   _FLT_LARGEST_EXPONENT_IS_NORMAL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Defined if the float format uses the largest exponent for finite
 | 
				
			||||||
 | 
						numbers rather than NaN and infinity representations.  Such a
 | 
				
			||||||
 | 
						format cannot represent NaNs or infinities at all, but it's FLT_MAX
 | 
				
			||||||
 | 
						is twice the IEEE value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   _FLT_NO_DENORMALS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Defined if the float format does not support IEEE denormals.  Every
 | 
				
			||||||
 | 
						float with a zero exponent is taken to be a zero representation.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   ??? At the moment, there are no equivalent macros above for doubles and
 | 
				
			||||||
 | 
					   the macros are not fully supported by --enable-newlib-hw-fp.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Defined if the float format is big endian.  This is mutually exclusive
 | 
				
			||||||
 | 
					        with __IEEE_LITTLE_ENDIAN.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					        Defined if the float format is little endian.  This is mutually exclusive
 | 
				
			||||||
 | 
					        with __IEEE_BIG_ENDIAN.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Note that one of __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN must be specified for a
 | 
				
			||||||
 | 
					   platform or error will occur.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   __IEEE_BYTES_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        This flag is used in conjunction with __IEEE_BIG_ENDIAN to describe a situation 
 | 
				
			||||||
 | 
						whereby multiple words of an IEEE floating point are in big endian order, but the
 | 
				
			||||||
 | 
						words themselves are little endian with respect to the bytes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   _DOUBLE_IS_32BITS 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        This is used on platforms that support double by using the 32-bit IEEE
 | 
				
			||||||
 | 
					        float type.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   _FLOAT_ARG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        This represents what type a float arg is passed as.  It is used when the type is
 | 
				
			||||||
 | 
					        not promoted to double.
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__arm__) || defined(__thumb__)) && !defined(__MAVERICK__)
 | 
				
			||||||
 | 
					/* ARM traditionally used big-endian words; and within those words the
 | 
				
			||||||
 | 
					   byte ordering was big or little endian depending upon the target.
 | 
				
			||||||
 | 
					   Modern floating-point formats are naturally ordered; in this case
 | 
				
			||||||
 | 
					   __VFP_FP__ will be defined, even if soft-float.  */
 | 
				
			||||||
 | 
					#ifdef __VFP_FP__
 | 
				
			||||||
 | 
					# ifdef __ARMEL__
 | 
				
			||||||
 | 
					#  define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					# ifdef __ARMEL__
 | 
				
			||||||
 | 
					#  define __IEEE_BYTES_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__aarch64__)
 | 
				
			||||||
 | 
					#if defined (__AARCH64EL__)
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __epiphany__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define Sudden_Underflow 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __hppa__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __nds32__
 | 
				
			||||||
 | 
					#ifdef __big_endian__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SPU__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isfinite(__y) \
 | 
				
			||||||
 | 
						(__extension__ ({int __cy; \
 | 
				
			||||||
 | 
							(sizeof (__y) == sizeof (float))  ? (1) : \
 | 
				
			||||||
 | 
							(__cy = fpclassify(__y)) != FP_INFINITE && __cy != FP_NAN;}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isinf(__x) ((sizeof (__x) == sizeof (float))  ?  (0) : __isinfd(__x))
 | 
				
			||||||
 | 
					#define isnan(__x) ((sizeof (__x) == sizeof (float))  ?  (0) : __isnand(__x))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Macros for use in ieeefp.h. We can't just define the real ones here
 | 
				
			||||||
 | 
					 * (like those above) as we have name space issues when this is *not*
 | 
				
			||||||
 | 
					 * included via generic the ieeefp.h.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define __ieeefp_isnanf(x)	0
 | 
				
			||||||
 | 
					#define __ieeefp_isinff(x)	0
 | 
				
			||||||
 | 
					#define __ieeefp_finitef(x)	1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __sparc__
 | 
				
			||||||
 | 
					#ifdef __LITTLE_ENDIAN_DATA__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__m68k__) || defined(__mc68000__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#ifdef __HAVE_SHORT_DOUBLE__
 | 
				
			||||||
 | 
					# define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) || defined (__H8500__) || defined (__H8300SX__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#define _FLOAT_ARG float
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__)
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define _FLOAT_ARG float
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __sh__
 | 
				
			||||||
 | 
					#ifdef __LITTLE_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__SH2E__) || defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A_SINGLE_ONLY__)
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _AM29K
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _WIN32
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i960__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __lm32__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __M32R__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_C4x) || defined(_C3x)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __TMS320C6X__
 | 
				
			||||||
 | 
					#ifdef _BIG_ENDIAN
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __TIC80__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MIPSEL__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __MIPSEB__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MMIX__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __D30V__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* necv70 was __IEEE_LITTLE_ENDIAN. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __W65__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__Z8001__) || defined(__Z8002__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m88k__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mn10300__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mn10200__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __v800
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __v850
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __D10V__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#if __DOUBLE__ == 32
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __PPC__
 | 
				
			||||||
 | 
					#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32)
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __xstormy16__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __arc__
 | 
				
			||||||
 | 
					#ifdef __big_endian__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CRX__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __fr30__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mcore__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mt__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __frv__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __moxie__
 | 
				
			||||||
 | 
					#ifdef __MOXIE_BIG_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __ia64__
 | 
				
			||||||
 | 
					#ifdef __BIG_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __AVR__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__or1k__) || defined(__OR1K__) || defined(__OR1KND__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IP2K__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __iq2000__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MAVERICK__
 | 
				
			||||||
 | 
					#ifdef __ARMEL__
 | 
				
			||||||
 | 
					#  define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else  /* must be __ARMEB__ */
 | 
				
			||||||
 | 
					#  define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif /* __ARMEL__ */
 | 
				
			||||||
 | 
					#endif /* __MAVERICK__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m32c__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CRIS__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __BFIN__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __x86_64__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mep__
 | 
				
			||||||
 | 
					#ifdef __LITTLE_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MICROBLAZE__
 | 
				
			||||||
 | 
					#ifndef __MICROBLAZEEL__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MSP430__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS	/* 16 Bit INT */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RL78__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS	/* 16 Bit INT */
 | 
				
			||||||
 | 
					#ifndef __RL78_64BIT_DOUBLES__
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RX_BIG_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __RX_64BIT_DOUBLES__
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RX_16BIT_INTS__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS	/* 16 Bit INT */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __NIOS2__
 | 
				
			||||||
 | 
					# ifdef __nios2_big_endian__
 | 
				
			||||||
 | 
					#  define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__XTENSA__))
 | 
				
			||||||
 | 
					# ifdef __XTENSA_EB__
 | 
				
			||||||
 | 
					#  define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#ifndef __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#error Endianess not declared!!
 | 
				
			||||||
 | 
					#endif /* not __IEEE_LITTLE_ENDIAN */
 | 
				
			||||||
 | 
					#endif /* not __IEEE_BIG_ENDIAN */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* not __IEEE_LITTLE_ENDIAN */
 | 
				
			||||||
 | 
					#endif /* not __IEEE_BIG_ENDIAN */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								libc/xtensa-lx106-elf/include/machine/malloc.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								libc/xtensa-lx106-elf/include/machine/malloc.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					#ifndef	_MACHMALLOC_H_
 | 
				
			||||||
 | 
					#define	_MACHMALLOC_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* place holder so platforms may add malloc.h extensions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _MACHMALLOC_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								libc/xtensa-lx106-elf/include/machine/param.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								libc/xtensa-lx106-elf/include/machine/param.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					/* Place holder for machine-specific param.h.  */
 | 
				
			||||||
							
								
								
									
										43
									
								
								libc/xtensa-lx106-elf/include/machine/setjmp-dj.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								libc/xtensa-lx106-elf/include/machine/setjmp-dj.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (C) 1991 DJ Delorie
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution, modification, and use in source and binary forms is permitted
 | 
				
			||||||
 | 
					 * provided that the above copyright notice and following paragraph are
 | 
				
			||||||
 | 
					 * duplicated in all such forms.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This file is distributed WITHOUT ANY WARRANTY; without even the implied
 | 
				
			||||||
 | 
					 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Modified to use SETJMP_DJ_H rather than SETJMP_H to avoid
 | 
				
			||||||
 | 
					   conflicting with setjmp.h.  Ian Taylor, Cygnus support, April,
 | 
				
			||||||
 | 
					   1993.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SETJMP_DJ_H_
 | 
				
			||||||
 | 
					#define _SETJMP_DJ_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  unsigned long eax;
 | 
				
			||||||
 | 
					  unsigned long ebx;
 | 
				
			||||||
 | 
					  unsigned long ecx;
 | 
				
			||||||
 | 
					  unsigned long edx;
 | 
				
			||||||
 | 
					  unsigned long esi;
 | 
				
			||||||
 | 
					  unsigned long edi;
 | 
				
			||||||
 | 
					  unsigned long ebp;
 | 
				
			||||||
 | 
					  unsigned long esp;
 | 
				
			||||||
 | 
					  unsigned long eip;
 | 
				
			||||||
 | 
					} jmp_buf[1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int setjmp(jmp_buf);
 | 
				
			||||||
 | 
					extern void longjmp(jmp_buf, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										453
									
								
								libc/xtensa-lx106-elf/include/machine/setjmp.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										453
									
								
								libc/xtensa-lx106-elf/include/machine/setjmp.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,453 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__or1k__) || defined(__or1knd__)
 | 
				
			||||||
 | 
					#define _JBLEN 31 /* 32 GPRs - r0 */
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__arm__) || defined(__thumb__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * All callee preserved registers:
 | 
				
			||||||
 | 
					 * v1 - v7, fp, ip, sp, lr, f4, f5, f6, f7
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define _JBLEN 23
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__aarch64__)
 | 
				
			||||||
 | 
					#define _JBLEN 22
 | 
				
			||||||
 | 
					#define _JBTYPE long long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__AVR__)
 | 
				
			||||||
 | 
					#define _JBLEN 24
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __sparc__
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext).
 | 
				
			||||||
 | 
					 * All else recovered by under/over(flow) handling.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_JBLEN	13
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __BFIN__
 | 
				
			||||||
 | 
					#define _JBLEN  40
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __epiphany__
 | 
				
			||||||
 | 
					/* All callee preserved registers: r4-r10,fp, sp, lr,r15, r32-r39  */
 | 
				
			||||||
 | 
					#define _JBTYPE long long
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* necv70 was 9 as well. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__m68k__) || defined(__mc68000__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6,
 | 
				
			||||||
 | 
					 * fp2-fp7	for 68881.
 | 
				
			||||||
 | 
					 * All else recovered by under/over(flow) handling.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_JBLEN	34
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * D, X, Y are not saved.
 | 
				
			||||||
 | 
					 * Only take into account the pseudo soft registers (max 32).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define _JBLEN  32
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __nds32__
 | 
				
			||||||
 | 
					/* 17 words for GPRs,
 | 
				
			||||||
 | 
					   1 word for $fpcfg.freg and 30 words for FPUs
 | 
				
			||||||
 | 
					   Reserved 2 words for aligement-adjustment. When storeing double-precision
 | 
				
			||||||
 | 
					   floating-point register into memory, the address has to be
 | 
				
			||||||
 | 
					   double-word-aligned.
 | 
				
			||||||
 | 
					   Check libc/machine/nds32/setjmp.S for more information.  */
 | 
				
			||||||
 | 
					#if __NDS32_EXT_FPU_SP__ || __NDS32_EXT_FPU_DP__
 | 
				
			||||||
 | 
					#define	_JBLEN 50
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBLEN 18
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__Z8001__) || defined(__Z8002__)
 | 
				
			||||||
 | 
					/* 16 regs + pc */
 | 
				
			||||||
 | 
					#define _JBLEN 20
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _AM29K
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext).
 | 
				
			||||||
 | 
					 * All else recovered by under/over(flow) handling.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_JBLEN	9
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					# if defined(__CYGWIN__) && !defined (_JBLEN)
 | 
				
			||||||
 | 
					#  define _JBLEN (13 * 4)
 | 
				
			||||||
 | 
					# elif defined(__unix__) || defined(__rtems__)
 | 
				
			||||||
 | 
					#  define _JBLEN	9
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  include "setjmp-dj.h"
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __x86_64__
 | 
				
			||||||
 | 
					# ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#  define _JBTYPE long
 | 
				
			||||||
 | 
					#  define _JBLEN  32
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define _JBTYPE long long
 | 
				
			||||||
 | 
					#  define _JBLEN  8
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i960__
 | 
				
			||||||
 | 
					#define _JBLEN 35
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __M32R__
 | 
				
			||||||
 | 
					/* Only 8 words are currently needed.  10 gives us some slop if we need
 | 
				
			||||||
 | 
					   to expand.  */
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mips__
 | 
				
			||||||
 | 
					# if defined(__mips64)
 | 
				
			||||||
 | 
					#  define _JBTYPE long long
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					# ifdef __mips_soft_float
 | 
				
			||||||
 | 
					#  define _JBLEN 11
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define _JBLEN 23
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m88000__
 | 
				
			||||||
 | 
					#define _JBLEN 21
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __H8300__
 | 
				
			||||||
 | 
					#define _JBLEN 5
 | 
				
			||||||
 | 
					#define _JBTYPE int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __H8300H__
 | 
				
			||||||
 | 
					/* same as H8/300 but registers are twice as big */
 | 
				
			||||||
 | 
					#define _JBLEN 5
 | 
				
			||||||
 | 
					#define _JBTYPE long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__H8300S__) || defined (__H8300SX__)
 | 
				
			||||||
 | 
					/* same as H8/300 but registers are twice as big */
 | 
				
			||||||
 | 
					#define _JBLEN 5
 | 
				
			||||||
 | 
					#define _JBTYPE long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __H8500__
 | 
				
			||||||
 | 
					#define _JBLEN 4
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef  __sh__
 | 
				
			||||||
 | 
					#if __SH5__
 | 
				
			||||||
 | 
					#define _JBLEN 50
 | 
				
			||||||
 | 
					#define _JBTYPE long long
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBLEN 20
 | 
				
			||||||
 | 
					#endif /* __SH5__ */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef  __v800
 | 
				
			||||||
 | 
					#define _JBLEN 28
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __PPC__
 | 
				
			||||||
 | 
					#ifdef __ALTIVEC__
 | 
				
			||||||
 | 
					#define _JBLEN 64
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBLEN 32
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _JBTYPE double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MICROBLAZE__
 | 
				
			||||||
 | 
					#define _JBLEN  20
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __hppa__
 | 
				
			||||||
 | 
					/* %r30, %r2-%r18, %r27, pad, %fr12-%fr15.
 | 
				
			||||||
 | 
					   Note space exists for the FP registers, but they are not
 | 
				
			||||||
 | 
					   saved.  */
 | 
				
			||||||
 | 
					#define _JBLEN 28
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mn10300__) || defined(__mn10200__)
 | 
				
			||||||
 | 
					#ifdef __AM33_2__
 | 
				
			||||||
 | 
					#define _JBLEN 26
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* A guess */
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __v850
 | 
				
			||||||
 | 
					/* I think our setjmp is saving 15 regs at the moment.  Gives us one word
 | 
				
			||||||
 | 
					   slop if we need to expand.  */
 | 
				
			||||||
 | 
					#define _JBLEN 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_C4x)
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(_C3x)
 | 
				
			||||||
 | 
					#define _JBLEN 9
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __TMS320C6X__
 | 
				
			||||||
 | 
					#define _JBLEN 13
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __TIC80__
 | 
				
			||||||
 | 
					#define _JBLEN 13
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __D10V__
 | 
				
			||||||
 | 
					#define _JBLEN 8
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __D30V__
 | 
				
			||||||
 | 
					#define _JBLEN ((64 /* GPR */ + (2*2) /* ACs */ + 18 /* CRs */) / 2)
 | 
				
			||||||
 | 
					#define _JBTYPE double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __frv__
 | 
				
			||||||
 | 
					#define _JBLEN (68/2)  /* room for 68 32-bit regs */
 | 
				
			||||||
 | 
					#define _JBTYPE double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __moxie__
 | 
				
			||||||
 | 
					#define _JBLEN 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CRX__
 | 
				
			||||||
 | 
					#define _JBLEN 9
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
 | 
				
			||||||
 | 
					/* r6, r7, r8, r9, r10, r11, r12 (r12L, r12H), 
 | 
				
			||||||
 | 
					 * r13 (r13L, r13H), ra(raL, raH), sp(spL, spH) */
 | 
				
			||||||
 | 
					#define _JBLEN 14
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __fr30__
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __iq2000__
 | 
				
			||||||
 | 
					#define _JBLEN 32
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mcore__
 | 
				
			||||||
 | 
					#define _JBLEN 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MMIX__
 | 
				
			||||||
 | 
					/* Using a layout compatible with GCC's built-in.  */
 | 
				
			||||||
 | 
					#define _JBLEN 5
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mt__
 | 
				
			||||||
 | 
					#define _JBLEN 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SPU__
 | 
				
			||||||
 | 
					#define _JBLEN 50 
 | 
				
			||||||
 | 
					#define _JBTYPE __vector signed int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __xstormy16__
 | 
				
			||||||
 | 
					/* 4 GPRs plus SP plus PC. */
 | 
				
			||||||
 | 
					#define _JBLEN 8
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __XTENSA__
 | 
				
			||||||
 | 
					#if __XTENSA_WINDOWED_ABI__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The jmp_buf structure for Xtensa windowed ABI holds the following
 | 
				
			||||||
 | 
					   (where "proc" is the procedure that calls setjmp): 4-12 registers
 | 
				
			||||||
 | 
					   from the window of proc, the 4 words from the save area at proc's $sp
 | 
				
			||||||
 | 
					   (in case a subsequent alloca in proc moves $sp), and the return
 | 
				
			||||||
 | 
					   address within proc.  Everything else is saved on the stack in the
 | 
				
			||||||
 | 
					   normal save areas.  The jmp_buf structure is:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  	struct jmp_buf {
 | 
				
			||||||
 | 
					  	    int regs[12];
 | 
				
			||||||
 | 
					  	    int save[4];
 | 
				
			||||||
 | 
					  	    void *return_address;
 | 
				
			||||||
 | 
					  	}
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					   See the setjmp code for details.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _JBLEN		17	/* 12 + 4 + 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* __XTENSA_CALL0_ABI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _JBLEN		6	/* a0, a1, a12, a13, a14, a15 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __XTENSA_CALL0_ABI__ */
 | 
				
			||||||
 | 
					#endif /* __XTENSA__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mep__
 | 
				
			||||||
 | 
					/* 16 GPRs, pc, hi, lo */
 | 
				
			||||||
 | 
					#define _JBLEN 19
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CRIS__
 | 
				
			||||||
 | 
					#define _JBLEN 18
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __lm32__
 | 
				
			||||||
 | 
					#define _JBLEN 19
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m32c__
 | 
				
			||||||
 | 
					#if defined(__r8c_cpu__) || defined(__m16c_cpu__)
 | 
				
			||||||
 | 
					#define _JBLEN (22/2)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBLEN (34/2)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned short
 | 
				
			||||||
 | 
					#endif /* __m32c__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MSP430__
 | 
				
			||||||
 | 
					#define _JBLEN 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MSP430X_LARGE__
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned long
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RL78__
 | 
				
			||||||
 | 
					/* Three banks of registers, SP, CS, ES, PC */
 | 
				
			||||||
 | 
					#define _JBLEN (8*3+8)
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned char
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * There are two versions of setjmp()/longjmp():
 | 
				
			||||||
 | 
					 *   1) Compiler (gcc) built-in versions.
 | 
				
			||||||
 | 
					 *   2) Function-call versions.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The built-in versions are used most of the time.  When used, gcc replaces
 | 
				
			||||||
 | 
					 * calls to setjmp()/longjmp() with inline assembly code.  The built-in 
 | 
				
			||||||
 | 
					 * versions save/restore a variable number of registers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 * _JBLEN is set to 40 to be ultra-safe with the built-in versions.
 | 
				
			||||||
 | 
					 * It only needs to be 12 for the function-call versions
 | 
				
			||||||
 | 
					 * but this data structure is used by both versions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef __NIOS2__
 | 
				
			||||||
 | 
					#define _JBLEN 40
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RX__
 | 
				
			||||||
 | 
					#define _JBLEN 0x44
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _JBLEN
 | 
				
			||||||
 | 
					#ifdef _JBTYPE
 | 
				
			||||||
 | 
					typedef	_JBTYPE jmp_buf[_JBLEN];
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef	int jmp_buf[_JBLEN];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX sigsetjmp/siglongjmp macros */
 | 
				
			||||||
 | 
					#ifdef _JBTYPE
 | 
				
			||||||
 | 
					typedef _JBTYPE sigjmp_buf[_JBLEN+1+((sizeof (_JBTYPE) + sizeof (sigset_t) - 1)
 | 
				
			||||||
 | 
									     /sizeof (_JBTYPE))];
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _SAVEMASK	_JBLEN
 | 
				
			||||||
 | 
					#define _SIGMASK	(_JBLEN+1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					# define _CYGWIN_WORKING_SIGSETJMP
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _POSIX_THREADS
 | 
				
			||||||
 | 
					#define __SIGMASK_FUNC pthread_sigmask
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __SIGMASK_FUNC sigprocmask
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define sigsetjmp(env, savemask) \
 | 
				
			||||||
 | 
					            __extension__ \
 | 
				
			||||||
 | 
					            ({ \
 | 
				
			||||||
 | 
					              sigjmp_buf *_sjbuf = &(env); \
 | 
				
			||||||
 | 
					              ((*_sjbuf)[_SAVEMASK] = savemask,\
 | 
				
			||||||
 | 
					              __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *)((*_sjbuf) + _SIGMASK)),\
 | 
				
			||||||
 | 
					              setjmp (*_sjbuf)); \
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define siglongjmp(env, val) \
 | 
				
			||||||
 | 
					            __extension__ \
 | 
				
			||||||
 | 
					            ({ \
 | 
				
			||||||
 | 
					              sigjmp_buf *_sjbuf = &(env); \
 | 
				
			||||||
 | 
					              ((((*_sjbuf)[_SAVEMASK]) ? \
 | 
				
			||||||
 | 
					               __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *)((*_sjbuf) + _SIGMASK), 0)\
 | 
				
			||||||
 | 
					               : 0), \
 | 
				
			||||||
 | 
					               longjmp (*_sjbuf, val)); \
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !__GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define sigsetjmp(env, savemask) ((env)[_SAVEMASK] = savemask,\
 | 
				
			||||||
 | 
					               __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *) ((env) + _SIGMASK)),\
 | 
				
			||||||
 | 
					               setjmp (env))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define siglongjmp(env, val) ((((env)[_SAVEMASK])?\
 | 
				
			||||||
 | 
					               __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *) ((env) + _SIGMASK), 0):0),\
 | 
				
			||||||
 | 
					               longjmp (env, val))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX _setjmp/_longjmp, maintained for XSI compatibility.  These
 | 
				
			||||||
 | 
					   are equivalent to sigsetjmp/siglongjmp when not saving the signal mask.
 | 
				
			||||||
 | 
					   New applications should use sigsetjmp/siglongjmp instead. */
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					extern void _longjmp(jmp_buf, int);
 | 
				
			||||||
 | 
					extern int _setjmp(jmp_buf);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _setjmp(env)		sigsetjmp ((env), 0)
 | 
				
			||||||
 | 
					#define _longjmp(env, val)	siglongjmp ((env), (val))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ or __rtems__ */
 | 
				
			||||||
							
								
								
									
										8
									
								
								libc/xtensa-lx106-elf/include/machine/stdlib.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								libc/xtensa-lx106-elf/include/machine/stdlib.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					#ifndef	_MACHSTDLIB_H_
 | 
				
			||||||
 | 
					#define	_MACHSTDLIB_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* place holder so platforms may add stdlib.h extensions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _MACHSTDLIB_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								libc/xtensa-lx106-elf/include/machine/termios.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								libc/xtensa-lx106-elf/include/machine/termios.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					#define __MAX_BAUD  B4000000
 | 
				
			||||||
							
								
								
									
										19
									
								
								libc/xtensa-lx106-elf/include/machine/time.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								libc/xtensa-lx106-elf/include/machine/time.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					#ifndef	_MACHTIME_H_
 | 
				
			||||||
 | 
					#define	_MACHTIME_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#define _CLOCKS_PER_SEC_  sysconf(_SC_CLK_TCK)
 | 
				
			||||||
 | 
					#else  /* !__rtems__ */
 | 
				
			||||||
 | 
					#if defined(__aarch64__) || defined(__arm__) || defined(__thumb__)
 | 
				
			||||||
 | 
					#define _CLOCKS_PER_SEC_ 100
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* !__rtems__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SPU__
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					int nanosleep (const struct timespec *, struct timespec *);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _MACHTIME_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								libc/xtensa-lx106-elf/include/machine/types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								libc/xtensa-lx106-elf/include/machine/types.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					#ifndef	_MACHTYPES_H_
 | 
				
			||||||
 | 
					#define	_MACHTYPES_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  The following section is RTEMS specific and is needed to more
 | 
				
			||||||
 | 
					 *  closely match the types defined in the BSD machine/types.h.
 | 
				
			||||||
 | 
					 *  This is needed to let the RTEMS/BSD TCP/IP stack compile.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#include <machine/_types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_CLOCK_T_	unsigned long		/* clock() */
 | 
				
			||||||
 | 
					#define	_TIME_T_	long			/* time() */
 | 
				
			||||||
 | 
					#define _CLOCKID_T_ 	unsigned long
 | 
				
			||||||
 | 
					#define _TIMER_T_   	unsigned long
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _HAVE_SYSTYPES
 | 
				
			||||||
 | 
					typedef long int __off_t;
 | 
				
			||||||
 | 
					typedef int __pid_t;
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					__extension__ typedef long long int __loff_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef long int __loff_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _MACHTYPES_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										169
									
								
								libc/xtensa-lx106-elf/include/malloc.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								libc/xtensa-lx106-elf/include/malloc.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,169 @@
 | 
				
			||||||
 | 
					/* malloc.h -- header file for memory routines.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_MALLOC_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_MALLOC_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* include any machine-specific extensions */
 | 
				
			||||||
 | 
					#include <machine/malloc.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This version of struct mallinfo must match the one in
 | 
				
			||||||
 | 
					   libc/stdlib/mallocr.c.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct mallinfo {
 | 
				
			||||||
 | 
					  size_t arena;    /* total space allocated from system */
 | 
				
			||||||
 | 
					  size_t ordblks;  /* number of non-inuse chunks */
 | 
				
			||||||
 | 
					  size_t smblks;   /* unused -- always zero */
 | 
				
			||||||
 | 
					  size_t hblks;    /* number of mmapped regions */
 | 
				
			||||||
 | 
					  size_t hblkhd;   /* total space in mmapped regions */
 | 
				
			||||||
 | 
					  size_t usmblks;  /* unused -- always zero */
 | 
				
			||||||
 | 
					  size_t fsmblks;  /* unused -- always zero */
 | 
				
			||||||
 | 
					  size_t uordblks; /* total allocated space */
 | 
				
			||||||
 | 
					  size_t fordblks; /* total non-inuse space */
 | 
				
			||||||
 | 
					  size_t keepcost; /* top-most, releasable (via malloc_trim) space */
 | 
				
			||||||
 | 
					};	
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The routines.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR malloc _PARAMS ((size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _malloc_r
 | 
				
			||||||
 | 
					#define _malloc_r(r, s) malloc (s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _malloc_r _PARAMS ((struct _reent *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _VOID free _PARAMS ((_PTR));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _free_r
 | 
				
			||||||
 | 
					#define _free_r(r, p) free (p)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _VOID _free_r _PARAMS ((struct _reent *, _PTR));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR realloc _PARAMS ((_PTR, size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _realloc_r
 | 
				
			||||||
 | 
					#define _realloc_r(r, p, s) realloc (p, s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR calloc _PARAMS ((size_t, size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _calloc_r
 | 
				
			||||||
 | 
					#define _calloc_r(r, s1, s2) calloc (s1, s2);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _calloc_r _PARAMS ((struct _reent *, size_t, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR memalign _PARAMS ((size_t, size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _memalign_r
 | 
				
			||||||
 | 
					#define _memalign_r(r, s1, s2) memalign (s1, s2);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _memalign_r _PARAMS ((struct _reent *, size_t, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern struct mallinfo mallinfo _PARAMS ((void));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _mallinfo_r
 | 
				
			||||||
 | 
					#define _mallinfo_r(r) mallinfo ()
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern struct mallinfo _mallinfo_r _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern void malloc_stats _PARAMS ((void));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _malloc_stats_r
 | 
				
			||||||
 | 
					#define _malloc_stats_r(r) malloc_stats ()
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern void _malloc_stats_r _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int mallopt _PARAMS ((int, int));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _mallopt_r
 | 
				
			||||||
 | 
					#define _mallopt_r(i1, i2) mallopt (i1, i2)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern int _mallopt_r _PARAMS ((struct _reent *, int, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern size_t malloc_usable_size _PARAMS ((_PTR));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _malloc_usable_size_r
 | 
				
			||||||
 | 
					#define _malloc_usable_size_r(r, p) malloc_usable_size (p)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern size_t _malloc_usable_size_r _PARAMS ((struct _reent *, _PTR));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* These aren't too useful on an embedded system, but we define them
 | 
				
			||||||
 | 
					   anyhow.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR valloc _PARAMS ((size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _valloc_r
 | 
				
			||||||
 | 
					#define _valloc_r(r, s) valloc (s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _valloc_r _PARAMS ((struct _reent *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR pvalloc _PARAMS ((size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _pvalloc_r
 | 
				
			||||||
 | 
					#define _pvalloc_r(r, s) pvalloc (s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _pvalloc_r _PARAMS ((struct _reent *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int malloc_trim _PARAMS ((size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _malloc_trim_r
 | 
				
			||||||
 | 
					#define _malloc_trim_r(r, s) malloc_trim (s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern int _malloc_trim_r _PARAMS ((struct _reent *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* A compatibility routine for an earlier version of the allocator.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _VOID mstats _PARAMS ((char *));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _mstats_r
 | 
				
			||||||
 | 
					#define _mstats_r(r, p) mstats (p)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _VOID _mstats_r _PARAMS ((struct _reent *, char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SVID2/XPG mallopt options */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define M_MXFAST  1    /* UNUSED in this malloc */
 | 
				
			||||||
 | 
					#define M_NLBLKS  2    /* UNUSED in this malloc */
 | 
				
			||||||
 | 
					#define M_GRAIN   3    /* UNUSED in this malloc */
 | 
				
			||||||
 | 
					#define M_KEEP    4    /* UNUSED in this malloc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* mallopt options that actually do something */
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					#define M_TRIM_THRESHOLD    -1
 | 
				
			||||||
 | 
					#define M_TOP_PAD           -2
 | 
				
			||||||
 | 
					#define M_MMAP_THRESHOLD    -3 
 | 
				
			||||||
 | 
					#define M_MMAP_MAX          -4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					/* Some systems provide this, so do too for compatibility.  */
 | 
				
			||||||
 | 
					extern void cfree _PARAMS ((_PTR));
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _INCLUDE_MALLOC_H_ */
 | 
				
			||||||
							
								
								
									
										615
									
								
								libc/xtensa-lx106-elf/include/math.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										615
									
								
								libc/xtensa-lx106-elf/include/math.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,615 @@
 | 
				
			||||||
 | 
					#ifndef  _MATH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define  _MATH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* __dmath, __fmath, and __ldmath are only here for backwards compatibility
 | 
				
			||||||
 | 
					 * in case any code used them.  They are no longer used by Newlib, itself,
 | 
				
			||||||
 | 
					 * other than legacy.  */
 | 
				
			||||||
 | 
					union __dmath
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  double d;
 | 
				
			||||||
 | 
					  __ULong i[2];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					union __fmath
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  float f;
 | 
				
			||||||
 | 
					  __ULong i[1];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_HAVE_LONG_DOUBLE)
 | 
				
			||||||
 | 
					union __ldmath
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  long double ld;
 | 
				
			||||||
 | 
					  __ULong i[4];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Natural log of 2 */
 | 
				
			||||||
 | 
					#define _M_LN2        0.693147180559945309417
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ (3, 3)
 | 
				
			||||||
 | 
					 /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef HUGE_VAL
 | 
				
			||||||
 | 
					#  define HUGE_VAL (__builtin_huge_val())
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef HUGE_VALF
 | 
				
			||||||
 | 
					#  define HUGE_VALF (__builtin_huge_valf())
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef HUGE_VALL
 | 
				
			||||||
 | 
					#  define HUGE_VALL (__builtin_huge_vall())
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef INFINITY
 | 
				
			||||||
 | 
					#  define INFINITY (__builtin_inff())
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef NAN
 | 
				
			||||||
 | 
					#  define NAN (__builtin_nanf(""))
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !gcc >= 3.3  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /*      No builtins.  Use fixed defines instead.  (All 3 HUGE plus the INFINITY
 | 
				
			||||||
 | 
					  * and NAN macros are required to be constant expressions.  Using a variable--
 | 
				
			||||||
 | 
					  * even a static const--does not meet this requirement, as it cannot be
 | 
				
			||||||
 | 
					  * evaluated at translation time.)
 | 
				
			||||||
 | 
					  *      The infinities are done using numbers that are far in excess of
 | 
				
			||||||
 | 
					  * something that would be expected to be encountered in a floating-point
 | 
				
			||||||
 | 
					  * implementation.  (A more certain way uses values from float.h, but that is
 | 
				
			||||||
 | 
					  * avoided because system includes are not supposed to include each other.)
 | 
				
			||||||
 | 
					  *      This method might produce warnings from some compilers.  (It does in
 | 
				
			||||||
 | 
					  * newer GCCs, but not for ones that would hit this #else.)  If this happens,
 | 
				
			||||||
 | 
					  * please report details to the Newlib mailing list.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #ifndef HUGE_VAL
 | 
				
			||||||
 | 
					  #define HUGE_VAL (1.0e999999999)
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #ifndef HUGE_VALF
 | 
				
			||||||
 | 
					  #define HUGE_VALF (1.0e999999999F)
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #if !defined(HUGE_VALL)  &&  defined(_HAVE_LONG_DOUBLE)
 | 
				
			||||||
 | 
					  #define HUGE_VALL (1.0e999999999L)
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #if !defined(INFINITY)
 | 
				
			||||||
 | 
					  #define INFINITY (HUGE_VALF)
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #if !defined(NAN)
 | 
				
			||||||
 | 
					  #if defined(__GNUC__)  &&  defined(__cplusplus)
 | 
				
			||||||
 | 
					    /* Exception:  older g++ versions warn about the divide by 0 used in the
 | 
				
			||||||
 | 
					     * normal case (even though older gccs do not).  This trick suppresses the
 | 
				
			||||||
 | 
					     * warning, but causes errors for plain gcc, so is only used in the one
 | 
				
			||||||
 | 
					     * special case.  */
 | 
				
			||||||
 | 
					    static const union { __ULong __i[1]; float __d; } __Nanf = {0x7FC00000};
 | 
				
			||||||
 | 
					    #define NAN (__Nanf.__d)
 | 
				
			||||||
 | 
					  #else
 | 
				
			||||||
 | 
					    #define NAN (0.0F/0.0F)
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !gcc >= 3.3  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Reentrant ANSI C functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern double atan _PARAMS((double));
 | 
				
			||||||
 | 
					extern double cos _PARAMS((double));
 | 
				
			||||||
 | 
					extern double sin _PARAMS((double));
 | 
				
			||||||
 | 
					extern double tan _PARAMS((double));
 | 
				
			||||||
 | 
					extern double tanh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double frexp _PARAMS((double, int *));
 | 
				
			||||||
 | 
					extern double modf _PARAMS((double, double *));
 | 
				
			||||||
 | 
					extern double ceil _PARAMS((double));
 | 
				
			||||||
 | 
					extern double fabs _PARAMS((double));
 | 
				
			||||||
 | 
					extern double floor _PARAMS((double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Non reentrant ANSI C functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern double acos _PARAMS((double));
 | 
				
			||||||
 | 
					extern double asin _PARAMS((double));
 | 
				
			||||||
 | 
					extern double atan2 _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double cosh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double sinh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double exp _PARAMS((double));
 | 
				
			||||||
 | 
					extern double ldexp _PARAMS((double, int));
 | 
				
			||||||
 | 
					extern double log _PARAMS((double));
 | 
				
			||||||
 | 
					extern double log10 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double pow _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double sqrt _PARAMS((double));
 | 
				
			||||||
 | 
					extern double fmod _PARAMS((double, double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ISO C99 types and macros. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* FIXME:  FLT_EVAL_METHOD should somehow be gotten from float.h (which is hard,
 | 
				
			||||||
 | 
					 * considering that the standard says the includes it defines should not
 | 
				
			||||||
 | 
					 * include other includes that it defines) and that value used.  (This can be
 | 
				
			||||||
 | 
					 * solved, but autoconf has a bug which makes the solution more difficult, so
 | 
				
			||||||
 | 
					 * it has been skipped for now.)  */
 | 
				
			||||||
 | 
					#if !defined(FLT_EVAL_METHOD) && defined(__FLT_EVAL_METHOD__)
 | 
				
			||||||
 | 
					  #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
 | 
				
			||||||
 | 
					  #define __TMP_FLT_EVAL_METHOD
 | 
				
			||||||
 | 
					#endif /* FLT_EVAL_METHOD */
 | 
				
			||||||
 | 
					#if defined FLT_EVAL_METHOD
 | 
				
			||||||
 | 
					  #if FLT_EVAL_METHOD == 0
 | 
				
			||||||
 | 
					    typedef float  float_t;
 | 
				
			||||||
 | 
					    typedef double double_t;
 | 
				
			||||||
 | 
					   #elif FLT_EVAL_METHOD == 1
 | 
				
			||||||
 | 
					    typedef double float_t;
 | 
				
			||||||
 | 
					    typedef double double_t;
 | 
				
			||||||
 | 
					   #elif FLT_EVAL_METHOD == 2
 | 
				
			||||||
 | 
					    typedef long double float_t;
 | 
				
			||||||
 | 
					    typedef long double double_t;
 | 
				
			||||||
 | 
					   #else
 | 
				
			||||||
 | 
					    /* Implementation-defined.  Assume float_t and double_t have been
 | 
				
			||||||
 | 
					     * defined previously for this configuration (e.g. config.h). */
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    /* Assume basic definitions.  */
 | 
				
			||||||
 | 
					    typedef float  float_t;
 | 
				
			||||||
 | 
					    typedef double double_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__TMP_FLT_EVAL_METHOD)
 | 
				
			||||||
 | 
					  #undef FLT_EVAL_METHOD
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FP_NAN         0
 | 
				
			||||||
 | 
					#define FP_INFINITE    1
 | 
				
			||||||
 | 
					#define FP_ZERO        2
 | 
				
			||||||
 | 
					#define FP_SUBNORMAL   3
 | 
				
			||||||
 | 
					#define FP_NORMAL      4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef FP_ILOGB0
 | 
				
			||||||
 | 
					# define FP_ILOGB0 (-INT_MAX)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef FP_ILOGBNAN
 | 
				
			||||||
 | 
					# define FP_ILOGBNAN INT_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef MATH_ERRNO
 | 
				
			||||||
 | 
					# define MATH_ERRNO 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef MATH_ERREXCEPT
 | 
				
			||||||
 | 
					# define MATH_ERREXCEPT 2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef math_errhandling
 | 
				
			||||||
 | 
					# define math_errhandling MATH_ERRNO
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int __isinff (float x);
 | 
				
			||||||
 | 
					extern int __isinfd (double x);
 | 
				
			||||||
 | 
					extern int __isnanf (float x);
 | 
				
			||||||
 | 
					extern int __isnand (double x);
 | 
				
			||||||
 | 
					extern int __fpclassifyf (float x);
 | 
				
			||||||
 | 
					extern int __fpclassifyd (double x);
 | 
				
			||||||
 | 
					extern int __signbitf (float x);
 | 
				
			||||||
 | 
					extern int __signbitd (double x);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define fpclassify(__x) \
 | 
				
			||||||
 | 
						((sizeof(__x) == sizeof(float))  ? __fpclassifyf(__x) : \
 | 
				
			||||||
 | 
						__fpclassifyd(__x))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef isfinite
 | 
				
			||||||
 | 
					  #define isfinite(__y) \
 | 
				
			||||||
 | 
					          (__extension__ ({int __cy = fpclassify(__y); \
 | 
				
			||||||
 | 
					                           __cy != FP_INFINITE && __cy != FP_NAN;}))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Note: isinf and isnan were once functions in newlib that took double
 | 
				
			||||||
 | 
					 *       arguments.  C99 specifies that these names are reserved for macros
 | 
				
			||||||
 | 
					 *       supporting multiple floating point types.  Thus, they are
 | 
				
			||||||
 | 
					 *       now defined as macros.  Implementations of the old functions
 | 
				
			||||||
 | 
					 *       taking double arguments still exist for compatibility purposes
 | 
				
			||||||
 | 
					 *       (prototypes for them are in <ieeefp.h>).  */
 | 
				
			||||||
 | 
					#ifndef isinf
 | 
				
			||||||
 | 
					  #define isinf(y) (fpclassify(y) == FP_INFINITE)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef isnan
 | 
				
			||||||
 | 
					  #define isnan(y) (fpclassify(y) == FP_NAN)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isnormal(y) (fpclassify(y) == FP_NORMAL)
 | 
				
			||||||
 | 
					#define signbit(__x) \
 | 
				
			||||||
 | 
						((sizeof(__x) == sizeof(float))  ?  __signbitf(__x) : \
 | 
				
			||||||
 | 
							__signbitd(__x))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isgreater(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x > __y);}))
 | 
				
			||||||
 | 
					#define isgreaterequal(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x >= __y);}))
 | 
				
			||||||
 | 
					#define isless(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x < __y);}))
 | 
				
			||||||
 | 
					#define islessequal(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x <= __y);}))
 | 
				
			||||||
 | 
					#define islessgreater(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x < __y || __x > __y);}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isunordered(a,b) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(a) __a = (a); __typeof__(b) __b = (b); \
 | 
				
			||||||
 | 
					                           fpclassify(__a) == FP_NAN || fpclassify(__b) == FP_NAN;}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Non ANSI double precision functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double infinity _PARAMS((void));
 | 
				
			||||||
 | 
					extern double nan _PARAMS((const char *));
 | 
				
			||||||
 | 
					extern int finite _PARAMS((double));
 | 
				
			||||||
 | 
					extern double copysign _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double logb _PARAMS((double));
 | 
				
			||||||
 | 
					extern int ilogb _PARAMS((double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double asinh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double cbrt _PARAMS((double));
 | 
				
			||||||
 | 
					extern double nextafter _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double rint _PARAMS((double));
 | 
				
			||||||
 | 
					extern double scalbn _PARAMS((double, int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double exp2 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double scalbln _PARAMS((double, long int));
 | 
				
			||||||
 | 
					extern double tgamma _PARAMS((double));
 | 
				
			||||||
 | 
					extern double nearbyint _PARAMS((double));
 | 
				
			||||||
 | 
					extern long int lrint _PARAMS((double));
 | 
				
			||||||
 | 
					extern long long int llrint _PARAMS((double));
 | 
				
			||||||
 | 
					extern double round _PARAMS((double));
 | 
				
			||||||
 | 
					extern long int lround _PARAMS((double));
 | 
				
			||||||
 | 
					extern long long int llround _PARAMS((double));
 | 
				
			||||||
 | 
					extern double trunc _PARAMS((double));
 | 
				
			||||||
 | 
					extern double remquo _PARAMS((double, double, int *));
 | 
				
			||||||
 | 
					extern double fdim _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double fmax _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double fmin _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double fma _PARAMS((double, double, double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern double log1p _PARAMS((double));
 | 
				
			||||||
 | 
					extern double expm1 _PARAMS((double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					extern double acosh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double atanh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double remainder _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double gamma _PARAMS((double));
 | 
				
			||||||
 | 
					extern double lgamma _PARAMS((double));
 | 
				
			||||||
 | 
					extern double erf _PARAMS((double));
 | 
				
			||||||
 | 
					extern double erfc _PARAMS((double));
 | 
				
			||||||
 | 
					extern double log2 _PARAMS((double));
 | 
				
			||||||
 | 
					#if !defined(__cplusplus)
 | 
				
			||||||
 | 
					#define log2(x) (log (x) / _M_LN2)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern double hypot _PARAMS((double, double));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Single precision versions of ANSI functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float atanf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float cosf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float sinf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float tanf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float tanhf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float frexpf _PARAMS((float, int *));
 | 
				
			||||||
 | 
					extern float modff _PARAMS((float, float *));
 | 
				
			||||||
 | 
					extern float ceilf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float fabsf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float floorf _PARAMS((float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					extern float acosf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float asinf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float atan2f _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float coshf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float sinhf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float expf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float ldexpf _PARAMS((float, int));
 | 
				
			||||||
 | 
					extern float logf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float log10f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float powf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float sqrtf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float fmodf _PARAMS((float, float));
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Other single precision functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float exp2f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float scalblnf _PARAMS((float, long int));
 | 
				
			||||||
 | 
					extern float tgammaf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float nearbyintf _PARAMS((float));
 | 
				
			||||||
 | 
					extern long int lrintf _PARAMS((float));
 | 
				
			||||||
 | 
					extern long long int llrintf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float roundf _PARAMS((float));
 | 
				
			||||||
 | 
					extern long int lroundf _PARAMS((float));
 | 
				
			||||||
 | 
					extern long long int llroundf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float truncf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float remquof _PARAMS((float, float, int *));
 | 
				
			||||||
 | 
					extern float fdimf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float fmaxf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float fminf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float fmaf _PARAMS((float, float, float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float infinityf _PARAMS((void));
 | 
				
			||||||
 | 
					extern float nanf _PARAMS((const char *));
 | 
				
			||||||
 | 
					extern int finitef _PARAMS((float));
 | 
				
			||||||
 | 
					extern float copysignf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float logbf _PARAMS((float));
 | 
				
			||||||
 | 
					extern int ilogbf _PARAMS((float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float asinhf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float cbrtf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float nextafterf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float rintf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float scalbnf _PARAMS((float, int));
 | 
				
			||||||
 | 
					extern float log1pf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float expm1f _PARAMS((float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					extern float acoshf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float atanhf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float remainderf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float gammaf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float lgammaf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float erff _PARAMS((float));
 | 
				
			||||||
 | 
					extern float erfcf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float log2f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float hypotf _PARAMS((float, float));
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* On platforms where long double equals double.  */
 | 
				
			||||||
 | 
					#ifdef _LDBL_EQ_DBL
 | 
				
			||||||
 | 
					/* Reentrant ANSI C functions.  */
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern long double atanl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double cosl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double sinl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double tanl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double tanhl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double frexpl _PARAMS((long double, int *));
 | 
				
			||||||
 | 
					extern long double modfl _PARAMS((long double, long double *));
 | 
				
			||||||
 | 
					extern long double ceill _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double fabsl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double floorl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double log1pl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double expm1l _PARAMS((long double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					/* Non reentrant ANSI C functions.  */
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern long double acosl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double asinl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double atan2l _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double coshl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double sinhl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double expl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double ldexpl _PARAMS((long double, int));
 | 
				
			||||||
 | 
					extern long double logl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double log10l _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double powl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double sqrtl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double fmodl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double hypotl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					extern long double copysignl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double nanl _PARAMS((const char *));
 | 
				
			||||||
 | 
					extern int ilogbl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double asinhl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double cbrtl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double nextafterl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern float nexttowardf _PARAMS((float, long double));
 | 
				
			||||||
 | 
					extern double nexttoward _PARAMS((double, long double));
 | 
				
			||||||
 | 
					extern long double nexttowardl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double logbl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double log2l _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double rintl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double scalbnl _PARAMS((long double, int));
 | 
				
			||||||
 | 
					extern long double exp2l _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double scalblnl _PARAMS((long double, long));
 | 
				
			||||||
 | 
					extern long double tgammal _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double nearbyintl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long int lrintl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long long int llrintl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double roundl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long lroundl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long long int llroundl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double truncl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double remquol _PARAMS((long double, long double, int *));
 | 
				
			||||||
 | 
					extern long double fdiml _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double fmaxl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double fminl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double fmal _PARAMS((long double, long double, long double));
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					extern long double acoshl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double atanhl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double remainderl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double lgammal _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double erfl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double erfcl _PARAMS((long double));
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					#else /* !_LDBL_EQ_DBL */
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					/* Other long double precision functions.  */
 | 
				
			||||||
 | 
					extern _LONG_DOUBLE rintl _PARAMS((_LONG_DOUBLE));
 | 
				
			||||||
 | 
					extern long int lrintl _PARAMS((_LONG_DOUBLE));
 | 
				
			||||||
 | 
					extern long long int llrintl _PARAMS((_LONG_DOUBLE));
 | 
				
			||||||
 | 
					#endif /* __i386__ */
 | 
				
			||||||
 | 
					#endif /* !_LDBL_EQ_DBL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined (__STRICT_ANSI__) || defined(__cplusplus)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double drem _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern void sincos _PARAMS((double, double *, double *));
 | 
				
			||||||
 | 
					extern double gamma_r _PARAMS((double, int *));
 | 
				
			||||||
 | 
					extern double lgamma_r _PARAMS((double, int *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double y0 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double y1 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double yn _PARAMS((int, double));
 | 
				
			||||||
 | 
					extern double j0 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double j1 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double jn _PARAMS((int, double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float dremf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern void sincosf _PARAMS((float, float *, float *));
 | 
				
			||||||
 | 
					extern float gammaf_r _PARAMS((float, int *));
 | 
				
			||||||
 | 
					extern float lgammaf_r _PARAMS((float, int *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float y0f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float y1f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float ynf _PARAMS((int, float));
 | 
				
			||||||
 | 
					extern float j0f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float j1f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float jnf _PARAMS((int, float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* GNU extensions */
 | 
				
			||||||
 | 
					# ifndef exp10
 | 
				
			||||||
 | 
					extern double exp10 _PARAMS((double));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					# ifndef pow10
 | 
				
			||||||
 | 
					extern double pow10 _PARAMS((double));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					# ifndef exp10f
 | 
				
			||||||
 | 
					extern float exp10f _PARAMS((float));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					# ifndef pow10f
 | 
				
			||||||
 | 
					extern float pow10f _PARAMS((float));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The gamma functions use a global variable, signgam.  */
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#define signgam (*__signgam())
 | 
				
			||||||
 | 
					extern int *__signgam _PARAMS((void));
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __signgam_r(ptr) _REENT_SIGNGAM(ptr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The exception structure passed to the matherr routine.  */
 | 
				
			||||||
 | 
					/* We have a problem when using C++ since `exception' is a reserved
 | 
				
			||||||
 | 
					   name in C++.  */
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					struct __exception
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					struct exception
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int type;
 | 
				
			||||||
 | 
					  char *name;
 | 
				
			||||||
 | 
					  double arg1;
 | 
				
			||||||
 | 
					  double arg2;
 | 
				
			||||||
 | 
					  double retval;
 | 
				
			||||||
 | 
					  int err;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern int matherr _PARAMS((struct __exception *e));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern int matherr _PARAMS((struct exception *e));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Values for the type field of struct exception.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define DOMAIN 1
 | 
				
			||||||
 | 
					#define SING 2
 | 
				
			||||||
 | 
					#define OVERFLOW 3
 | 
				
			||||||
 | 
					#define UNDERFLOW 4
 | 
				
			||||||
 | 
					#define TLOSS 5
 | 
				
			||||||
 | 
					#define PLOSS 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! defined (__STRICT_ANSI__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Useful constants.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || ((_XOPEN_SOURCE - 0) >= 500)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAXFLOAT	3.40282347e+38F
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define M_E		2.7182818284590452354
 | 
				
			||||||
 | 
					#define M_LOG2E		1.4426950408889634074
 | 
				
			||||||
 | 
					#define M_LOG10E	0.43429448190325182765
 | 
				
			||||||
 | 
					#define M_LN2		_M_LN2
 | 
				
			||||||
 | 
					#define M_LN10		2.30258509299404568402
 | 
				
			||||||
 | 
					#define M_PI		3.14159265358979323846
 | 
				
			||||||
 | 
					#define M_PI_2		1.57079632679489661923
 | 
				
			||||||
 | 
					#define M_PI_4		0.78539816339744830962
 | 
				
			||||||
 | 
					#define M_1_PI		0.31830988618379067154
 | 
				
			||||||
 | 
					#define M_2_PI		0.63661977236758134308
 | 
				
			||||||
 | 
					#define M_2_SQRTPI	1.12837916709551257390
 | 
				
			||||||
 | 
					#define M_SQRT2		1.41421356237309504880
 | 
				
			||||||
 | 
					#define M_SQRT1_2	0.70710678118654752440
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define M_TWOPI         (M_PI * 2.0)
 | 
				
			||||||
 | 
					#define M_3PI_4		2.3561944901923448370E0
 | 
				
			||||||
 | 
					#define M_SQRTPI        1.77245385090551602792981
 | 
				
			||||||
 | 
					#define M_LN2LO         1.9082149292705877000E-10
 | 
				
			||||||
 | 
					#define M_LN2HI         6.9314718036912381649E-1
 | 
				
			||||||
 | 
					#define M_SQRT3	1.73205080756887719000
 | 
				
			||||||
 | 
					#define M_IVLN10        0.43429448190325182765 /* 1 / log(10) */
 | 
				
			||||||
 | 
					#define M_LOG2_E        _M_LN2
 | 
				
			||||||
 | 
					#define M_INVLN2        1.4426950408889633870E0  /* 1 / log(2) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Global control over fdlibm error handling.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum __fdlibm_version
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  __fdlibm_ieee = -1,
 | 
				
			||||||
 | 
					  __fdlibm_svid,
 | 
				
			||||||
 | 
					  __fdlibm_xopen,
 | 
				
			||||||
 | 
					  __fdlibm_posix
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _LIB_VERSION_TYPE enum __fdlibm_version
 | 
				
			||||||
 | 
					#define _LIB_VERSION __fdlib_version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern __IMPORT _LIB_VERSION_TYPE _LIB_VERSION;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _IEEE_  __fdlibm_ieee
 | 
				
			||||||
 | 
					#define _SVID_  __fdlibm_svid
 | 
				
			||||||
 | 
					#define _XOPEN_ __fdlibm_xopen
 | 
				
			||||||
 | 
					#define _POSIX_ __fdlibm_posix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! defined (__STRICT_ANSI__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __FAST_MATH__
 | 
				
			||||||
 | 
					#include <machine/fastmath.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _MATH_H_ */
 | 
				
			||||||
							
								
								
									
										201
									
								
								libc/xtensa-lx106-elf/include/newlib.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										201
									
								
								libc/xtensa-lx106-elf/include/newlib.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,201 @@
 | 
				
			||||||
 | 
					/* newlib.h.  Generated from newlib.hin by configure.  */
 | 
				
			||||||
 | 
					/* newlib.hin.  Manually edited from the output of autoheader to
 | 
				
			||||||
 | 
					   remove all PACKAGE_ macros which will collide with any user
 | 
				
			||||||
 | 
					   package using newlib header files and having its own package name,
 | 
				
			||||||
 | 
					   version, etc...  */
 | 
				
			||||||
 | 
					#ifndef __NEWLIB_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __NEWLIB_H__ 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* EL/IX level */
 | 
				
			||||||
 | 
					/* #undef _ELIX_LEVEL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Newlib version */
 | 
				
			||||||
 | 
					#define _NEWLIB_VERSION "2.2.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* C99 formats support (such as %a, %zu, ...) in IO functions like
 | 
				
			||||||
 | 
					 * printf/scanf enabled */
 | 
				
			||||||
 | 
					/* #undef _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* long long type support in IO functions like printf/scanf enabled */
 | 
				
			||||||
 | 
					/* #undef _WANT_IO_LONG_LONG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Register application finalization function using atexit. */
 | 
				
			||||||
 | 
					/* #undef _WANT_REGISTER_FINI */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* long double type support in IO functions like printf/scanf enabled */
 | 
				
			||||||
 | 
					/* #undef _WANT_IO_LONG_DOUBLE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Positional argument support in printf functions enabled.  */
 | 
				
			||||||
 | 
					/* #undef _WANT_IO_POS_ARGS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Optional reentrant struct support.  Used mostly on platforms with
 | 
				
			||||||
 | 
					   very restricted storage.  */
 | 
				
			||||||
 | 
					/* #undef _WANT_REENT_SMALL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Multibyte supported */
 | 
				
			||||||
 | 
					/* #undef _MB_CAPABLE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* MB_LEN_MAX */
 | 
				
			||||||
 | 
					#define _MB_LEN_MAX 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ICONV enabled */
 | 
				
			||||||
 | 
					/* #undef _ICONV_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Enable ICONV external CCS files loading capabilities */
 | 
				
			||||||
 | 
					/* #undef _ICONV_ENABLE_EXTERNAL_CCS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if the linker supports .preinit_array/.init_array/.fini_array
 | 
				
			||||||
 | 
					 * sections.  */
 | 
				
			||||||
 | 
					#define HAVE_INITFINI_ARRAY 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* True if atexit() may dynamically allocate space for cleanup
 | 
				
			||||||
 | 
					   functions.  */
 | 
				
			||||||
 | 
					#define _ATEXIT_DYNAMIC_ALLOC 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* True if long double supported.  */
 | 
				
			||||||
 | 
					#define _HAVE_LONG_DOUBLE 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if compiler supports -fno-tree-loop-distribute-patterns. */
 | 
				
			||||||
 | 
					#define _HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* True if long double supported and it is equal to double.  */
 | 
				
			||||||
 | 
					#define _LDBL_EQ_DBL 1
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Define if uintptr_t is unsigned long on this architecture */
 | 
				
			||||||
 | 
					/* #undef _UINTPTR_EQ_ULONG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if uintptr_t is unsigned long long on this architecture */
 | 
				
			||||||
 | 
					/* #undef _UINTPTR_EQ_ULONGLONG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if ivo supported in streamio.  */
 | 
				
			||||||
 | 
					#define _FVWRITE_IN_STREAMIO 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if fseek functions support seek optimization.  */
 | 
				
			||||||
 | 
					#define _FSEEK_OPTIMIZATION 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if wide char orientation is supported.  */
 | 
				
			||||||
 | 
					#define _WIDE_ORIENT 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if unbuffered stream file optimization is supported.  */
 | 
				
			||||||
 | 
					#define _UNBUF_STREAM_OPT 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if lite version of exit supported.  */
 | 
				
			||||||
 | 
					/* #undef _LITE_EXIT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if declare atexit data as global.  */
 | 
				
			||||||
 | 
					/* #undef _REENT_GLOBAL_ATEXIT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if small footprint nano-formatted-IO implementation used.  */
 | 
				
			||||||
 | 
					#define _NANO_FORMATTED_IO 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Iconv encodings enabled ("to" direction)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_BIG5 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP775 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP850 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP852 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP855 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP866 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_EUC_JP */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_EUC_TW */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_EUC_KR */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_1 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_10 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_11 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_13 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_14 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_15 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_2 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_3 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_4 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_5 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_6 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_7 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_8 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_9 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_IR_111 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_KOI8_R */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_KOI8_RU */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_KOI8_U */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_KOI8_UNI */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_2 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_2_INTERNAL */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_2BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_2LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_4 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_4_INTERNAL */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_4BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_4LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_US_ASCII */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UTF_16 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UTF_16BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UTF_16LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UTF_8 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1250 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1251 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1252 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1253 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1254 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1255 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1256 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1257 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1258 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Iconv encodings enabled ("from" direction)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_BIG5 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP775 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP850 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP852 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP855 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP866 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_EUC_JP */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_EUC_TW */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_EUC_KR */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_1 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_10 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_11 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_13 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_14 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_15 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_2 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_3 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_4 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_5 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_6 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_7 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_8 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_9 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_IR_111 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_KOI8_R */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_KOI8_RU */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_KOI8_U */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_KOI8_UNI */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_2 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_2_INTERNAL */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_2BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_2LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_4 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_4_INTERNAL */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_4BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_4LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_US_ASCII */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UTF_16 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UTF_16BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UTF_16LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UTF_8 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1250 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1251 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1252 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1253 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1254 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1255 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1256 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1257 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1258 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__NEWLIB_H__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								libc/xtensa-lx106-elf/include/paths.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								libc/xtensa-lx106-elf/include/paths.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					#ifndef	_PATHS_H_
 | 
				
			||||||
 | 
					#define _PATHS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _PATH_DEV	"/dev/"
 | 
				
			||||||
 | 
					#define _PATH_DEVNULL   "/dev/null"
 | 
				
			||||||
 | 
					#define _PATH_DEVZERO   "/dev/zero"
 | 
				
			||||||
 | 
					#define _PATH_BSHELL    "/bin/sh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _PATHS_H_ */
 | 
				
			||||||
							
								
								
									
										431
									
								
								libc/xtensa-lx106-elf/include/pthread.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										431
									
								
								libc/xtensa-lx106-elf/include/pthread.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,431 @@
 | 
				
			||||||
 | 
					/*  pthread.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Written by Joel Sherrill <joel@OARcorp.com>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  COPYRIGHT (c) 1989-2013.
 | 
				
			||||||
 | 
					 *  On-Line Applications Research Corporation (OAR).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Permission to use, copy, modify, and distribute this software for any
 | 
				
			||||||
 | 
					 *  purpose without fee is hereby granted, provided that this entire notice
 | 
				
			||||||
 | 
					 *  is included in all copies of any software which is or includes a copy
 | 
				
			||||||
 | 
					 *  or modification of this software.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 | 
				
			||||||
 | 
					 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 | 
				
			||||||
 | 
					 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __PTHREAD_h
 | 
				
			||||||
 | 
					#define __PTHREAD_h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <sys/sched.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _pthread_cleanup_context {
 | 
				
			||||||
 | 
					  void (*_routine)(void *);
 | 
				
			||||||
 | 
					  void *_arg;
 | 
				
			||||||
 | 
					  int _canceltype;
 | 
				
			||||||
 | 
					  struct _pthread_cleanup_context *_previous;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Register Fork Handlers */
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_atfork,(void (*prepare)(void), void (*parent)(void),
 | 
				
			||||||
 | 
					                   void (*child)(void)));
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					/* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_init, (pthread_mutexattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_destroy, (pthread_mutexattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_getpshared,
 | 
				
			||||||
 | 
							(_CONST pthread_mutexattr_t *__attr, int  *__pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_setpshared,
 | 
				
			||||||
 | 
							(pthread_mutexattr_t *__attr, int __pshared));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Single UNIX Specification 2 Mutex Attributes types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(pthread_mutexattr_gettype,
 | 
				
			||||||
 | 
							(_CONST pthread_mutexattr_t *__attr, int *__kind));
 | 
				
			||||||
 | 
					int _EXFUN(pthread_mutexattr_settype,
 | 
				
			||||||
 | 
							(pthread_mutexattr_t *__attr, int __kind));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_init,
 | 
				
			||||||
 | 
						(pthread_mutex_t *__mutex, _CONST pthread_mutexattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_destroy, (pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is used to statically initialize a pthread_mutex_t. Example:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_INITIALIZER  ((pthread_mutex_t) 0xFFFFFFFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93
 | 
				
			||||||
 | 
					    NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_lock, (pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_trylock, (pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_unlock, (pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_TIMEOUTS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_timedlock,
 | 
				
			||||||
 | 
						(pthread_mutex_t *__mutex, _CONST struct timespec *__timeout));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_TIMEOUTS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_condattr_init, (pthread_condattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_condattr_destroy, (pthread_condattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_condattr_getpshared,
 | 
				
			||||||
 | 
							(_CONST pthread_condattr_t *__attr, int *__pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_condattr_setpshared,
 | 
				
			||||||
 | 
							(pthread_condattr_t *__attr, int __pshared));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Initializing and Destroying a Condition Variable, P1003.1c/Draft 10, p. 87 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_init,
 | 
				
			||||||
 | 
						(pthread_cond_t *__cond, _CONST pthread_condattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_destroy, (pthread_cond_t *__mutex));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* This is used to statically initialize a pthread_cond_t. Example:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					#define PTHREAD_COND_INITIALIZER  ((pthread_cond_t) 0xFFFFFFFF)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_signal, (pthread_cond_t *__cond));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_broadcast, (pthread_cond_t *__cond));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Waiting on a Condition, P1003.1c/Draft 10, p. 105 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_wait,
 | 
				
			||||||
 | 
						(pthread_cond_t *__cond, pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_timedwait,
 | 
				
			||||||
 | 
							(pthread_cond_t *__cond, pthread_mutex_t *__mutex,
 | 
				
			||||||
 | 
							_CONST struct timespec *__abstime));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setscope,
 | 
				
			||||||
 | 
							(pthread_attr_t *__attr, int __contentionscope));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getscope,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, int *__contentionscope));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setinheritsched,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, int __inheritsched));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getinheritsched,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, int *__inheritsched));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setschedpolicy,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, int __policy));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getschedpolicy,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, int *__policy));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setschedparam,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, _CONST struct sched_param *__param));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getschedparam,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, struct sched_param *__param));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Dynamic Thread Scheduling Parameters Access, P1003.1c/Draft 10, p. 124 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_getschedparam,
 | 
				
			||||||
 | 
						(pthread_t __pthread, int *__policy, struct sched_param *__param));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setschedparam,
 | 
				
			||||||
 | 
						(pthread_t __pthread, int __policy, struct sched_param *__param));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_setprotocol,
 | 
				
			||||||
 | 
						(pthread_mutexattr_t *__attr, int __protocol));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_getprotocol,
 | 
				
			||||||
 | 
						(_CONST pthread_mutexattr_t *__attr, int *__protocol));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_setprioceiling,
 | 
				
			||||||
 | 
						(pthread_mutexattr_t *__attr, int __prioceiling));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_getprioceiling,
 | 
				
			||||||
 | 
						(_CONST pthread_mutexattr_t *__attr, int *__prioceiling));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIO_PROTECT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_setprioceiling,
 | 
				
			||||||
 | 
						(pthread_mutex_t *__mutex, int __prioceiling, int *__old_ceiling));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_getprioceiling,
 | 
				
			||||||
 | 
						(pthread_mutex_t *__mutex, int *__prioceiling));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_THREAD_PRIO_PROTECT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread Creation Attributes, P1003.1c/Draft 10, p, 140 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_init, (pthread_attr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_destroy, (pthread_attr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setstack, (pthread_attr_t *attr,
 | 
				
			||||||
 | 
						void *__stackaddr, size_t __stacksize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getstack, (_CONST pthread_attr_t *attr,
 | 
				
			||||||
 | 
						void **__stackaddr, size_t *__stacksize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getstacksize,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, size_t *__stacksize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setstacksize,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, size_t __stacksize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getstackaddr,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, void **__stackaddr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setstackaddr,
 | 
				
			||||||
 | 
						(pthread_attr_t  *__attr, void *__stackaddr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getdetachstate,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, int *__detachstate));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setdetachstate,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, int __detachstate));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getguardsize,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, size_t *__guardsize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setguardsize,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, size_t __guardsize));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX thread APIs beyond the POSIX standard but provided 
 | 
				
			||||||
 | 
					 * in GNU/Linux. They may be provided by other OSes for
 | 
				
			||||||
 | 
					 * compatibility.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(__GNU_VISIBLE)
 | 
				
			||||||
 | 
					#if defined(__rtems__) 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setaffinity_np,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, size_t __cpusetsize, 
 | 
				
			||||||
 | 
						const cpu_set_t *__cpuset));
 | 
				
			||||||
 | 
					int 	_EXFUN(pthread_attr_getaffinity_np,
 | 
				
			||||||
 | 
						(const pthread_attr_t *__attr, size_t __cpusetsize,
 | 
				
			||||||
 | 
						cpu_set_t *__cpuset));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setaffinity_np,
 | 
				
			||||||
 | 
						(pthread_t __id, size_t __cpusetsize, const cpu_set_t *__cpuset));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_getaffinity_np,
 | 
				
			||||||
 | 
						(const pthread_t __id, size_t __cpusetsize, cpu_set_t *__cpuset));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_getattr_np,
 | 
				
			||||||
 | 
						(pthread_t __id, pthread_attr_t *__attr));
 | 
				
			||||||
 | 
					#endif /* defined(__rtems__) */
 | 
				
			||||||
 | 
					#endif /* defined(__GNU_VISIBLE) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread Creation, P1003.1c/Draft 10, p. 144 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_create,
 | 
				
			||||||
 | 
						(pthread_t *__pthread, _CONST pthread_attr_t  *__attr,
 | 
				
			||||||
 | 
						void *(*__start_routine)( void * ), void *__arg));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Wait for Thread Termination, P1003.1c/Draft 10, p. 147 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_join, (pthread_t __pthread, void **__value_ptr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Detaching a Thread, P1003.1c/Draft 10, p. 149 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_detach, (pthread_t __pthread));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread Termination, p1003.1c/Draft 10, p. 150 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(pthread_exit, (void *__value_ptr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pthread_t	_EXFUN(pthread_self, (void));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Compare Thread IDs, p1003.1c/Draft 10, p. 153 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_equal, (pthread_t __t1, pthread_t __t2));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Dynamic Package Initialization */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is used to statically initialize a pthread_once_t. Example:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    pthread_once_t once = PTHREAD_ONCE_INIT;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    NOTE:  This is named inconsistently -- it should be INITIALIZER.  */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					#define PTHREAD_ONCE_INIT  { 1, 0 }  /* is initialized and not run */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_once,
 | 
				
			||||||
 | 
						(pthread_once_t *__once_control, void (*__init_routine)(void)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_key_create,
 | 
				
			||||||
 | 
						(pthread_key_t *__key, void (*__destructor)( void * )));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setspecific,
 | 
				
			||||||
 | 
						(pthread_key_t __key, _CONST void *__value));
 | 
				
			||||||
 | 
					void *	_EXFUN(pthread_getspecific, (pthread_key_t __key));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_key_delete, (pthread_key_t __key));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Execution of a Thread, P1003.1c/Draft 10, p. 181 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_CANCEL_ENABLE  0
 | 
				
			||||||
 | 
					#define PTHREAD_CANCEL_DISABLE 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_CANCEL_DEFERRED 0
 | 
				
			||||||
 | 
					#define PTHREAD_CANCEL_ASYNCHRONOUS 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_CANCELED ((void *) -1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cancel, (pthread_t __pthread));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setcancelstate, (int __state, int *__oldstate));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setcanceltype, (int __type, int *__oldtype));
 | 
				
			||||||
 | 
					void 	_EXFUN(pthread_testcancel, (void));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(_pthread_cleanup_push,
 | 
				
			||||||
 | 
						(struct _pthread_cleanup_context *_context,
 | 
				
			||||||
 | 
						void (*_routine)(void *), void *_arg));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(_pthread_cleanup_pop,
 | 
				
			||||||
 | 
						(struct _pthread_cleanup_context *_context,
 | 
				
			||||||
 | 
						int _execute));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* It is intentional to open and close the scope in two different macros */
 | 
				
			||||||
 | 
					#define pthread_cleanup_push(_routine, _arg) \
 | 
				
			||||||
 | 
					  do { \
 | 
				
			||||||
 | 
					    struct _pthread_cleanup_context _pthread_clup_ctx; \
 | 
				
			||||||
 | 
					    _pthread_cleanup_push(&_pthread_clup_ctx, (_routine), (_arg))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define pthread_cleanup_pop(_execute) \
 | 
				
			||||||
 | 
					    _pthread_cleanup_pop(&_pthread_clup_ctx, (_execute)); \
 | 
				
			||||||
 | 
					  } while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_GNU_SOURCE)
 | 
				
			||||||
 | 
					void	_EXFUN(_pthread_cleanup_push_defer,
 | 
				
			||||||
 | 
						(struct _pthread_cleanup_context *_context,
 | 
				
			||||||
 | 
						void (*_routine)(void *), void *_arg));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(_pthread_cleanup_pop_restore,
 | 
				
			||||||
 | 
						(struct _pthread_cleanup_context *_context,
 | 
				
			||||||
 | 
						int _execute));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* It is intentional to open and close the scope in two different macros */
 | 
				
			||||||
 | 
					#define pthread_cleanup_push_defer_np(_routine, _arg) \
 | 
				
			||||||
 | 
					  do { \
 | 
				
			||||||
 | 
					    struct _pthread_cleanup_context _pthread_clup_ctx; \
 | 
				
			||||||
 | 
					    _pthread_cleanup_push_defer(&_pthread_clup_ctx, (_routine), (_arg))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define pthread_cleanup_pop_restore_np(_execute) \
 | 
				
			||||||
 | 
					    _pthread_cleanup_pop_restore(&_pthread_clup_ctx, (_execute)); \
 | 
				
			||||||
 | 
					  } while (0)
 | 
				
			||||||
 | 
					#endif /* defined(_GNU_SOURCE) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_CPUTIME)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_getcpuclockid,
 | 
				
			||||||
 | 
						(pthread_t __pthread_id, clockid_t *__clock_id));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREAD_CPUTIME) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREADS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_BARRIERS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrierattr_init, (pthread_barrierattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrierattr_destroy, (pthread_barrierattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrierattr_getpshared,
 | 
				
			||||||
 | 
						(_CONST pthread_barrierattr_t *__attr, int *__pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrierattr_setpshared,
 | 
				
			||||||
 | 
						(pthread_barrierattr_t *__attr, int __pshared));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_BARRIER_SERIAL_THREAD -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrier_init,
 | 
				
			||||||
 | 
						(pthread_barrier_t *__barrier,
 | 
				
			||||||
 | 
						_CONST pthread_barrierattr_t *__attr, unsigned __count));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrier_destroy, (pthread_barrier_t *__barrier));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrier_wait,(pthread_barrier_t *__barrier));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_BARRIERS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_SPIN_LOCKS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_init,
 | 
				
			||||||
 | 
						(pthread_spinlock_t *__spinlock, int __pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_destroy, (pthread_spinlock_t *__spinlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_lock, (pthread_spinlock_t *__spinlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_trylock, (pthread_spinlock_t *__spinlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_unlock, (pthread_spinlock_t *__spinlock));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_SPIN_LOCKS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_READER_WRITER_LOCKS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is used to statically initialize a pthread_rwlock_t. Example:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    pthread_mutex_t mutex = PTHREAD_RWLOCK_INITIALIZER;
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_RWLOCK_INITIALIZER  ((pthread_rwlock_t) 0xFFFFFFFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlockattr_init, (pthread_rwlockattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlockattr_destroy, (pthread_rwlockattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlockattr_getpshared,
 | 
				
			||||||
 | 
						(_CONST pthread_rwlockattr_t *__attr, int *__pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlockattr_setpshared,
 | 
				
			||||||
 | 
						(pthread_rwlockattr_t *__attr, int __pshared));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_init,
 | 
				
			||||||
 | 
						(pthread_rwlock_t *__rwlock, _CONST pthread_rwlockattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_destroy, (pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_rdlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_timedrdlock,
 | 
				
			||||||
 | 
					        (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_timedwrlock,
 | 
				
			||||||
 | 
					        (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_READER_WRITER_LOCKS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* end of include file */
 | 
				
			||||||
							
								
								
									
										87
									
								
								libc/xtensa-lx106-elf/include/pwd.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								libc/xtensa-lx106-elf/include/pwd.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,87 @@
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1989 The Regents of the University of California.
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 3. All advertising materials mentioning features or use of this software
 | 
				
			||||||
 | 
					 *    must display the following acknowledgement:
 | 
				
			||||||
 | 
					 *	This product includes software developed by the University of
 | 
				
			||||||
 | 
					 *	California, Berkeley and its contributors.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)pwd.h	5.13 (Berkeley) 5/28/91
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _PWD_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	_PWD_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					#define	_PATH_PASSWD		"/etc/passwd"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_PASSWORD_LEN		128	/* max length, not counting NULL */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct passwd {
 | 
				
			||||||
 | 
						char	*pw_name;		/* user name */
 | 
				
			||||||
 | 
						char	*pw_passwd;		/* encrypted password */
 | 
				
			||||||
 | 
						uid_t	pw_uid;			/* user uid */
 | 
				
			||||||
 | 
						gid_t	pw_gid;			/* user gid */
 | 
				
			||||||
 | 
						char	*pw_comment;		/* comment */
 | 
				
			||||||
 | 
						char	*pw_gecos;		/* Honeywell login info */
 | 
				
			||||||
 | 
						char	*pw_dir;		/* home directory */
 | 
				
			||||||
 | 
						char	*pw_shell;		/* default shell */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INSIDE_CYGWIN__
 | 
				
			||||||
 | 
					struct passwd	*getpwuid (uid_t);
 | 
				
			||||||
 | 
					struct passwd	*getpwnam (const char *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500
 | 
				
			||||||
 | 
					int 		 getpwnam_r (const char *, struct passwd *,
 | 
				
			||||||
 | 
								char *, size_t , struct passwd **);
 | 
				
			||||||
 | 
					int		 getpwuid_r (uid_t, struct passwd *, char *,
 | 
				
			||||||
 | 
								size_t, struct passwd **);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __XSI_VISIBLE >= 500
 | 
				
			||||||
 | 
					struct passwd	*getpwent (void);
 | 
				
			||||||
 | 
					void		 setpwent (void);
 | 
				
			||||||
 | 
					void		 endpwent (void);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					int		 setpassent (int);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /*!__INSIDE_CYGWIN__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _PWD_H_ */
 | 
				
			||||||
							
								
								
									
										189
									
								
								libc/xtensa-lx106-elf/include/reent.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										189
									
								
								libc/xtensa-lx106-elf/include/reent.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,189 @@
 | 
				
			||||||
 | 
					/* This header file provides the reentrancy.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The reentrant system calls here serve two purposes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   1) Provide reentrant versions of the system calls the ANSI C library
 | 
				
			||||||
 | 
					      requires.
 | 
				
			||||||
 | 
					   2) Provide these system calls in a namespace clean way.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   It is intended that *all* system calls that the ANSI C library needs
 | 
				
			||||||
 | 
					   be declared here.  It documents them all in one place.  All library access
 | 
				
			||||||
 | 
					   to the system is via some form of these functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The target may provide the needed syscalls by any of the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   1) Define the reentrant versions of the syscalls directly.
 | 
				
			||||||
 | 
					      (eg: _open_r, _close_r, etc.).  Please keep the namespace clean.
 | 
				
			||||||
 | 
					      When you do this, set "syscall_dir" to "syscalls" and add
 | 
				
			||||||
 | 
					      -DREENTRANT_SYSCALLS_PROVIDED to newlib_cflags in configure.host.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   2) Define namespace clean versions of the system calls by prefixing
 | 
				
			||||||
 | 
					      them with '_' (eg: _open, _close, etc.).  Technically, there won't be
 | 
				
			||||||
 | 
					      true reentrancy at the syscall level, but the library will be namespace
 | 
				
			||||||
 | 
					      clean.
 | 
				
			||||||
 | 
					      When you do this, set "syscall_dir" to "syscalls" in configure.host.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   3) Define or otherwise provide the regular versions of the syscalls
 | 
				
			||||||
 | 
					      (eg: open, close, etc.).  The library won't be reentrant nor namespace
 | 
				
			||||||
 | 
					      clean, but at least it will work.
 | 
				
			||||||
 | 
					      When you do this, add -DMISSING_SYSCALL_NAMES to newlib_cflags in
 | 
				
			||||||
 | 
					      configure.host.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   4) Define or otherwise provide the regular versions of the syscalls,
 | 
				
			||||||
 | 
					      and do not supply functional interfaces for any of the reentrant
 | 
				
			||||||
 | 
					      calls. With this method, the reentrant syscalls are redefined to
 | 
				
			||||||
 | 
					      directly call the regular system call without the reentrancy argument.
 | 
				
			||||||
 | 
					      When you do this, specify both -DREENTRANT_SYSCALLS_PROVIDED and 
 | 
				
			||||||
 | 
					      -DMISSING_SYSCALL_NAMES via newlib_cflags in configure.host and do
 | 
				
			||||||
 | 
					      not specify "syscall_dir".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Stubs of the reentrant versions of the syscalls exist in the libc/reent
 | 
				
			||||||
 | 
					   source directory and are provided if REENTRANT_SYSCALLS_PROVIDED isn't 
 | 
				
			||||||
 | 
					   defined.  These stubs call the native system calls: _open, _close, etc. 
 | 
				
			||||||
 | 
					   if MISSING_SYSCALL_NAMES is *not* defined, otherwise they call the
 | 
				
			||||||
 | 
					   non-underscored versions: open, close, etc. when MISSING_SYSCALL_NAMES
 | 
				
			||||||
 | 
					   *is* defined.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   By default, newlib functions call the reentrant syscalls internally,
 | 
				
			||||||
 | 
					   passing a reentrancy structure as an argument.  This reentrancy structure
 | 
				
			||||||
 | 
					   contains data that is thread-specific.  For example, the errno value is
 | 
				
			||||||
 | 
					   kept in the reentrancy structure.  If multiple threads exist, each will
 | 
				
			||||||
 | 
					   keep a separate errno value which is intuitive since the application flow
 | 
				
			||||||
 | 
					   cannot check for failure reliably otherwise.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The reentrant syscalls are either provided by the platform, by the 
 | 
				
			||||||
 | 
					   libc/reent stubs, or in the case of both MISSING_SYSCALL_NAMES and 
 | 
				
			||||||
 | 
					   REENTRANT_SYSCALLS_PROVIDED being defined, the calls are redefined to
 | 
				
			||||||
 | 
					   simply call the regular syscalls with no reentrancy struct argument.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   A single-threaded application does not need to worry about the reentrancy
 | 
				
			||||||
 | 
					   structure.  It is used internally.  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   A multi-threaded application needs either to manually manage reentrancy 
 | 
				
			||||||
 | 
					   structures or use dynamic reentrancy.
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					   Manually managing reentrancy structures entails calling special reentrant
 | 
				
			||||||
 | 
					   versions of newlib functions that have an additional reentrancy argument.
 | 
				
			||||||
 | 
					   For example, _printf_r.  By convention, the first argument is the
 | 
				
			||||||
 | 
					   reentrancy structure.  By default, the normal version of the function
 | 
				
			||||||
 | 
					   uses the default reentrancy structure: _REENT.  The reentrancy structure
 | 
				
			||||||
 | 
					   is passed internally, eventually to the reentrant syscalls themselves.
 | 
				
			||||||
 | 
					   How the structures are stored and accessed in this model is up to the
 | 
				
			||||||
 | 
					   application.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Dynamic reentrancy is specified by the __DYNAMIC_REENT__ flag.  This
 | 
				
			||||||
 | 
					   flag denotes setting up a macro to replace _REENT with a function call
 | 
				
			||||||
 | 
					   to __getreent().  This function needs to be implemented by the platform
 | 
				
			||||||
 | 
					   and it is meant to return the reentrancy structure for the current
 | 
				
			||||||
 | 
					   thread.  When the regular C functions (e.g. printf) go to call internal
 | 
				
			||||||
 | 
					   routines with the default _REENT structure, they end up calling with 
 | 
				
			||||||
 | 
					   the reentrancy structure for the thread.  Thus, application code does not
 | 
				
			||||||
 | 
					   need to call the _r routines nor worry about reentrancy structures.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* WARNING: All identifiers here must begin with an underscore.  This file is
 | 
				
			||||||
 | 
					   included by stdio.h and others and we therefore must only use identifiers
 | 
				
			||||||
 | 
					   in the namespace allotted to us.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _REENT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					#include <machine/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_ptrdiff_t
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* FIXME: not namespace clean */
 | 
				
			||||||
 | 
					struct stat;
 | 
				
			||||||
 | 
					struct tms;
 | 
				
			||||||
 | 
					struct timeval;
 | 
				
			||||||
 | 
					struct timezone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(REENTRANT_SYSCALLS_PROVIDED) && defined(MISSING_SYSCALL_NAMES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _close_r(__reent, __fd)                   close(__fd)
 | 
				
			||||||
 | 
					#define _execve_r(__reent, __f, __arg, __env)     execve(__f, __arg, __env)
 | 
				
			||||||
 | 
					#define _fcntl_r(__reent, __fd, __cmd, __arg)     fcntl(__fd, __cmd, __arg)
 | 
				
			||||||
 | 
					#define _fork_r(__reent)                          fork()
 | 
				
			||||||
 | 
					#define _fstat_r(__reent, __fdes, __stat)         fstat(__fdes, __stat)
 | 
				
			||||||
 | 
					#define _getpid_r(__reent)                        getpid()
 | 
				
			||||||
 | 
					#define _isatty_r(__reent, __desc)                isatty(__desc)
 | 
				
			||||||
 | 
					#define _kill_r(__reent, __pid, __signal)         kill(__pid, __signal)
 | 
				
			||||||
 | 
					#define _link_r(__reent, __oldpath, __newpath)    link(__oldpath, __newpath)
 | 
				
			||||||
 | 
					#define _lseek_r(__reent, __fdes, __off, __w)     lseek(__fdes, __off, __w)
 | 
				
			||||||
 | 
					#define _mkdir_r(__reent, __path, __m)		  mkdir(__path, __m)
 | 
				
			||||||
 | 
					#define _open_r(__reent, __path, __flag, __m)     open(__path, __flag, __m)
 | 
				
			||||||
 | 
					#define _read_r(__reent, __fd, __buff, __cnt)     read(__fd, __buff, __cnt)
 | 
				
			||||||
 | 
					#define _rename_r(__reent, __old, __new)	  rename(__old, __new)
 | 
				
			||||||
 | 
					#define _sbrk_r(__reent, __incr)                  sbrk(__incr)
 | 
				
			||||||
 | 
					#define _stat_r(__reent, __path, __buff)          stat(__path, __buff)
 | 
				
			||||||
 | 
					#define _times_r(__reent, __time)                 times(__time)
 | 
				
			||||||
 | 
					#define _unlink_r(__reent, __path)                unlink(__path)
 | 
				
			||||||
 | 
					#define _wait_r(__reent, __status)                wait(__status)
 | 
				
			||||||
 | 
					#define _write_r(__reent, __fd, __buff, __cnt)    write(__fd, __buff, __cnt)
 | 
				
			||||||
 | 
					#define _gettimeofday_r(__reent, __tp, __tzp)     gettimeofday(__tp, __tzp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					#define _lseek64_r(__reent, __fd, __off, __w)     lseek64(__fd, __off, __w)
 | 
				
			||||||
 | 
					#define _fstat64_r(__reent, __fd, __buff)         fstat64(__fd, __buff)
 | 
				
			||||||
 | 
					#define _open64_r(__reent, __path, __flag, __m)   open64(__path, __flag, __m)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* Reentrant versions of system calls.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int _close_r _PARAMS ((struct _reent *, int));
 | 
				
			||||||
 | 
					extern int _execve_r _PARAMS ((struct _reent *, const char *, char *const *, char *const *));
 | 
				
			||||||
 | 
					extern int _fcntl_r _PARAMS ((struct _reent *, int, int, int));
 | 
				
			||||||
 | 
					extern int _fork_r _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					extern int _fstat_r _PARAMS ((struct _reent *, int, struct stat *));
 | 
				
			||||||
 | 
					extern int _getpid_r _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					extern int _isatty_r _PARAMS ((struct _reent *, int));
 | 
				
			||||||
 | 
					extern int _kill_r _PARAMS ((struct _reent *, int, int));
 | 
				
			||||||
 | 
					extern int _link_r _PARAMS ((struct _reent *, const char *, const char *));
 | 
				
			||||||
 | 
					extern _off_t _lseek_r _PARAMS ((struct _reent *, int, _off_t, int));
 | 
				
			||||||
 | 
					extern int _mkdir_r _PARAMS ((struct _reent *, const char *, int));
 | 
				
			||||||
 | 
					extern int _open_r _PARAMS ((struct _reent *, const char *, int, int));
 | 
				
			||||||
 | 
					extern _ssize_t _read_r _PARAMS ((struct _reent *, int, void *, size_t));
 | 
				
			||||||
 | 
					extern int _rename_r _PARAMS ((struct _reent *, const char *, const char *));
 | 
				
			||||||
 | 
					extern void *_sbrk_r _PARAMS ((struct _reent *, ptrdiff_t));
 | 
				
			||||||
 | 
					extern int _stat_r _PARAMS ((struct _reent *, const char *, struct stat *));
 | 
				
			||||||
 | 
					extern _CLOCK_T_ _times_r _PARAMS ((struct _reent *, struct tms *));
 | 
				
			||||||
 | 
					extern int _unlink_r _PARAMS ((struct _reent *, const char *));
 | 
				
			||||||
 | 
					extern int _wait_r _PARAMS ((struct _reent *, int *));
 | 
				
			||||||
 | 
					extern _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This one is not guaranteed to be available on all targets.  */
 | 
				
			||||||
 | 
					extern int _gettimeofday_r _PARAMS ((struct _reent *, struct timeval *__tp, void *__tzp));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#define stat64 stat
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					struct stat64;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _off64_t _lseek64_r _PARAMS ((struct _reent *, int, _off64_t, int));
 | 
				
			||||||
 | 
					extern int _fstat64_r _PARAMS ((struct _reent *, int, struct stat64 *));
 | 
				
			||||||
 | 
					extern int _open64_r _PARAMS ((struct _reent *, const char *, int, int));
 | 
				
			||||||
 | 
					extern int _stat64_r _PARAMS ((struct _reent *, const char *, struct stat64 *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Don't pollute namespace if not building newlib. */
 | 
				
			||||||
 | 
					#if defined (__CYGWIN__) && !defined (_COMPILING_NEWLIB)
 | 
				
			||||||
 | 
					#undef stat64
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _REENT_H_ */
 | 
				
			||||||
							
								
								
									
										7
									
								
								libc/xtensa-lx106-elf/include/regdef.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								libc/xtensa-lx106-elf/include/regdef.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					/* regdef.h -- define register names.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is a standard include file for MIPS targets.  Other target
 | 
				
			||||||
 | 
					   probably don't define it, and attempts to include this file will
 | 
				
			||||||
 | 
					   fail.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/regdef.h>
 | 
				
			||||||
							
								
								
									
										103
									
								
								libc/xtensa-lx106-elf/include/regex.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								libc/xtensa-lx106-elf/include/regex.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,103 @@
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1992 Henry Spencer.
 | 
				
			||||||
 | 
					 * Copyright (c) 1992, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is derived from software contributed to Berkeley by
 | 
				
			||||||
 | 
					 * Henry Spencer of the University of Toronto.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)regex.h	8.2 (Berkeley) 1/3/94
 | 
				
			||||||
 | 
					 * $FreeBSD: src/include/regex.h,v 1.4 2002/03/23 17:24:53 imp Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REGEX_H_
 | 
				
			||||||
 | 
					#define	_REGEX_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* types */
 | 
				
			||||||
 | 
					typedef off_t regoff_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						int re_magic;
 | 
				
			||||||
 | 
						size_t re_nsub;		/* number of parenthesized subexpressions */
 | 
				
			||||||
 | 
						__const char *re_endp;	/* end pointer for REG_PEND */
 | 
				
			||||||
 | 
						struct re_guts *re_g;	/* none of your business :-) */
 | 
				
			||||||
 | 
					} regex_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						regoff_t rm_so;		/* start of match */
 | 
				
			||||||
 | 
						regoff_t rm_eo;		/* end of match */
 | 
				
			||||||
 | 
					} regmatch_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* regcomp() flags */
 | 
				
			||||||
 | 
					#define	REG_BASIC	0000
 | 
				
			||||||
 | 
					#define	REG_EXTENDED	0001
 | 
				
			||||||
 | 
					#define	REG_ICASE	0002
 | 
				
			||||||
 | 
					#define	REG_NOSUB	0004
 | 
				
			||||||
 | 
					#define	REG_NEWLINE	0010
 | 
				
			||||||
 | 
					#define	REG_NOSPEC	0020
 | 
				
			||||||
 | 
					#define	REG_PEND	0040
 | 
				
			||||||
 | 
					#define	REG_DUMP	0200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* regerror() flags */
 | 
				
			||||||
 | 
					#define	REG_NOMATCH	 1
 | 
				
			||||||
 | 
					#define	REG_BADPAT	 2
 | 
				
			||||||
 | 
					#define	REG_ECOLLATE	 3
 | 
				
			||||||
 | 
					#define	REG_ECTYPE	 4
 | 
				
			||||||
 | 
					#define	REG_EESCAPE	 5
 | 
				
			||||||
 | 
					#define	REG_ESUBREG	 6
 | 
				
			||||||
 | 
					#define	REG_EBRACK	 7
 | 
				
			||||||
 | 
					#define	REG_EPAREN	 8
 | 
				
			||||||
 | 
					#define	REG_EBRACE	 9
 | 
				
			||||||
 | 
					#define	REG_BADBR	10
 | 
				
			||||||
 | 
					#define	REG_ERANGE	11
 | 
				
			||||||
 | 
					#define	REG_ESPACE	12
 | 
				
			||||||
 | 
					#define	REG_BADRPT	13
 | 
				
			||||||
 | 
					#define	REG_EMPTY	14
 | 
				
			||||||
 | 
					#define	REG_ASSERT	15
 | 
				
			||||||
 | 
					#define	REG_INVARG	16
 | 
				
			||||||
 | 
					#define	REG_ATOI	255	/* convert name to number (!) */
 | 
				
			||||||
 | 
					#define	REG_ITOA	0400	/* convert number to name (!) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* regexec() flags */
 | 
				
			||||||
 | 
					#define	REG_NOTBOL	00001
 | 
				
			||||||
 | 
					#define	REG_NOTEOL	00002
 | 
				
			||||||
 | 
					#define	REG_STARTEND	00004
 | 
				
			||||||
 | 
					#define	REG_TRACE	00400	/* tracing of execution */
 | 
				
			||||||
 | 
					#define	REG_LARGE	01000	/* force large representation */
 | 
				
			||||||
 | 
					#define	REG_BACKR	02000	/* force use of backref code */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					int	regcomp(regex_t *__restrict, const char *__restrict, int);
 | 
				
			||||||
 | 
					size_t	regerror(int, const regex_t *__restrict, char *__restrict, size_t);
 | 
				
			||||||
 | 
					int	regexec(const regex_t *__restrict, const char *__restrict,
 | 
				
			||||||
 | 
								size_t, regmatch_t [__restrict], int);
 | 
				
			||||||
 | 
					void	regfree(regex_t *);
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_REGEX_H_ */
 | 
				
			||||||
							
								
								
									
										97
									
								
								libc/xtensa-lx106-elf/include/sched.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								libc/xtensa-lx106-elf/include/sched.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,97 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Written by Joel Sherrill <joel@OARcorp.com>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  COPYRIGHT (c) 1989-2010.
 | 
				
			||||||
 | 
					 *  On-Line Applications Research Corporation (OAR).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Permission to use, copy, modify, and distribute this software for any
 | 
				
			||||||
 | 
					 *  purpose without fee is hereby granted, provided that this entire notice
 | 
				
			||||||
 | 
					 *  is included in all copies of any software which is or includes a copy
 | 
				
			||||||
 | 
					 *  or modification of this software.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 | 
				
			||||||
 | 
					 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 | 
				
			||||||
 | 
					 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SCHED_H_
 | 
				
			||||||
 | 
					#define _SCHED_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/sched.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_PRIORITY_SCHEDULING)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1803
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_setparam(
 | 
				
			||||||
 | 
					  pid_t                     __pid,
 | 
				
			||||||
 | 
					  const struct sched_param *__param
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1800
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_getparam(
 | 
				
			||||||
 | 
					  pid_t                     __pid,
 | 
				
			||||||
 | 
					  struct sched_param       *__param
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Set Scheduling Policy and Scheduling Parameters,
 | 
				
			||||||
 | 
					 *         P1003.1b-2008, p. 1805
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_setscheduler(
 | 
				
			||||||
 | 
					  pid_t                     __pid,
 | 
				
			||||||
 | 
					  int                       __policy,
 | 
				
			||||||
 | 
					  const struct sched_param *__param
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Get Scheduling Policy, P1003.1b-2008, p. 1801
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_getscheduler(
 | 
				
			||||||
 | 
					  pid_t                     __pid
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1799
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_get_priority_max(
 | 
				
			||||||
 | 
					  int __policy
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int sched_get_priority_min(
 | 
				
			||||||
 | 
					  int  __policy
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1802
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_rr_get_interval(
 | 
				
			||||||
 | 
					  pid_t             __pid,
 | 
				
			||||||
 | 
					  struct timespec  *__interval
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					#endif /* _POSIX_PRIORITY_SCHEDULING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS) || defined(_POSIX_PRIORITY_SCHEDULING)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Yield Processor, P1003.1b-2008, p. 1807
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_yield( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_THREADS or _POSIX_PRIORITY_SCHEDULING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SCHED_H_ */
 | 
				
			||||||
							
								
								
									
										64
									
								
								libc/xtensa-lx106-elf/include/search.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								libc/xtensa-lx106-elf/include/search.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					/*	$NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $	*/
 | 
				
			||||||
 | 
					/* $FreeBSD: src/include/search.h,v 1.4 2002/03/23 17:24:53 imp Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Written by J.T. Conklin <jtc@netbsd.org>
 | 
				
			||||||
 | 
					 * Public domain.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SEARCH_H_
 | 
				
			||||||
 | 
					#define _SEARCH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <machine/ansi.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct entry {
 | 
				
			||||||
 | 
						char *key;
 | 
				
			||||||
 | 
						void *data;
 | 
				
			||||||
 | 
					} ENTRY;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum {
 | 
				
			||||||
 | 
						FIND, ENTER
 | 
				
			||||||
 | 
					} ACTION;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum {
 | 
				
			||||||
 | 
						preorder,
 | 
				
			||||||
 | 
						postorder,
 | 
				
			||||||
 | 
						endorder,
 | 
				
			||||||
 | 
						leaf
 | 
				
			||||||
 | 
					} VISIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _SEARCH_PRIVATE
 | 
				
			||||||
 | 
					typedef struct node {
 | 
				
			||||||
 | 
						char         *key;
 | 
				
			||||||
 | 
						struct node  *llink, *rlink;
 | 
				
			||||||
 | 
					} node_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct hsearch_data
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  struct internal_head *htable;
 | 
				
			||||||
 | 
					  size_t htablesize;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __compar_fn_t_defined
 | 
				
			||||||
 | 
					#define __compar_fn_t_defined
 | 
				
			||||||
 | 
					typedef int (*__compar_fn_t) (const void *, const void *);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					int	 hcreate(size_t);
 | 
				
			||||||
 | 
					void	 hdestroy(void);
 | 
				
			||||||
 | 
					ENTRY	*hsearch(ENTRY, ACTION);
 | 
				
			||||||
 | 
					int	 hcreate_r(size_t, struct hsearch_data *);
 | 
				
			||||||
 | 
					void	 hdestroy_r(struct hsearch_data *);
 | 
				
			||||||
 | 
					int	hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *);
 | 
				
			||||||
 | 
					void	*tdelete(const void *__restrict, void **__restrict, __compar_fn_t);
 | 
				
			||||||
 | 
					void	tdestroy (void *, void (*)(void *));
 | 
				
			||||||
 | 
					void	*tfind(const void *, void **, __compar_fn_t);
 | 
				
			||||||
 | 
					void	*tsearch(const void *, void **, __compar_fn_t);
 | 
				
			||||||
 | 
					void      twalk(const void *, void (*)(const void *, VISIT, int));
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_SEARCH_H_ */
 | 
				
			||||||
							
								
								
									
										27
									
								
								libc/xtensa-lx106-elf/include/setjmp.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								libc/xtensa-lx106-elf/include/setjmp.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
						setjmp.h
 | 
				
			||||||
 | 
						stubs for future use.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SETJMP_H_
 | 
				
			||||||
 | 
					#define _SETJMP_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <machine/setjmp.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					void	_EXFUN(longjmp,(jmp_buf __jmpb, int __retval))
 | 
				
			||||||
 | 
								__attribute__ ((__noreturn__));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					void	_EXFUN(longjmp,(jmp_buf __jmpb, int __retval));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(setjmp,(jmp_buf __jmpb));
 | 
				
			||||||
 | 
					#define setjmp(env) setjmp(env)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SETJMP_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								libc/xtensa-lx106-elf/include/signal.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								libc/xtensa-lx106-elf/include/signal.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					#ifndef _SIGNAL_H_
 | 
				
			||||||
 | 
					#define _SIGNAL_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int	sig_atomic_t;		/* Atomic entity type (ANSI) */
 | 
				
			||||||
 | 
					#ifndef _POSIX_SOURCE
 | 
				
			||||||
 | 
					typedef _sig_func_ptr sig_t;		/* BSD naming */
 | 
				
			||||||
 | 
					typedef _sig_func_ptr sighandler_t;	/* glibc naming */
 | 
				
			||||||
 | 
					#endif /* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SIG_DFL ((_sig_func_ptr)0)	/* Default action */
 | 
				
			||||||
 | 
					#define SIG_IGN ((_sig_func_ptr)1)	/* Ignore action */
 | 
				
			||||||
 | 
					#define SIG_ERR ((_sig_func_ptr)-1)	/* Error return */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _reent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_sig_func_ptr _EXFUN(_signal_r, (struct _reent *, int, _sig_func_ptr));
 | 
				
			||||||
 | 
					int	_EXFUN(_raise_r, (struct _reent *, int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					_sig_func_ptr _EXFUN(signal, (int, _sig_func_ptr));
 | 
				
			||||||
 | 
					int	_EXFUN(raise, (int));
 | 
				
			||||||
 | 
					void	_EXFUN(psignal, (int, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SIGNAL_H_ */
 | 
				
			||||||
							
								
								
									
										119
									
								
								libc/xtensa-lx106-elf/include/spawn.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								libc/xtensa-lx106-elf/include/spawn.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,119 @@
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 2008 Ed Schouten <ed@FreeBSD.org>
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SPAWN_H_
 | 
				
			||||||
 | 
					#define _SPAWN_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					#define __need_sigset_t
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sched_param;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct __posix_spawnattr		*posix_spawnattr_t;
 | 
				
			||||||
 | 
					typedef struct __posix_spawn_file_actions	*posix_spawn_file_actions_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_RESETIDS		0x01
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETPGROUP		0x02
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETSCHEDPARAM	0x04
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETSCHEDULER	0x08
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETSIGDEF		0x10
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETSIGMASK		0x20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Spawn routines
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * XXX both arrays should be __restrict, but this does not work when GCC
 | 
				
			||||||
 | 
					 * is invoked with -std=c99.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn, (pid_t *  __restrict, const char * __restrict,
 | 
				
			||||||
 | 
						const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict,
 | 
				
			||||||
 | 
						char * const [], char * const [])
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnp, (pid_t * __restrict, const char * __restrict,
 | 
				
			||||||
 | 
						const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict,
 | 
				
			||||||
 | 
						char * const [], char * const [])
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * File descriptor actions
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_init, (posix_spawn_file_actions_t *));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_destroy, (posix_spawn_file_actions_t *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_addopen,
 | 
				
			||||||
 | 
						(posix_spawn_file_actions_t * __restrict, int, const char * __restrict, int, mode_t)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_adddup2,
 | 
				
			||||||
 | 
						(posix_spawn_file_actions_t *, int, int)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_addclose,
 | 
				
			||||||
 | 
						(posix_spawn_file_actions_t *, int)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Spawn attributes
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_init, (posix_spawnattr_t *));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_destroy, (posix_spawnattr_t *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getflags,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, short * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getpgroup,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, pid_t * __restrict));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getschedparam,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, struct sched_param * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getschedpolicy,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, int * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getsigdefault,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, sigset_t * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getsigmask,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, sigset_t * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setflags, (posix_spawnattr_t *, short));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setpgroup, (posix_spawnattr_t *, pid_t));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setschedparam,
 | 
				
			||||||
 | 
						(posix_spawnattr_t * __restrict, const struct sched_param * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setschedpolicy, (posix_spawnattr_t *, int));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setsigdefault,
 | 
				
			||||||
 | 
						(posix_spawnattr_t * __restrict, const sigset_t * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setsigmask,
 | 
				
			||||||
 | 
						(posix_spawnattr_t * __restrict, const sigset_t * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_SPAWN_H_ */
 | 
				
			||||||
							
								
								
									
										413
									
								
								libc/xtensa-lx106-elf/include/stdatomic.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										413
									
								
								libc/xtensa-lx106-elf/include/stdatomic.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,413 @@
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 2011 Ed Schouten <ed@FreeBSD.org>
 | 
				
			||||||
 | 
					 *                    David Chisnall <theraven@FreeBSD.org>
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * $FreeBSD$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDATOMIC_H_
 | 
				
			||||||
 | 
					#define	_STDATOMIC_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __has_extension(c_atomic) || __has_extension(cxx_atomic)
 | 
				
			||||||
 | 
					#define	__CLANG_ATOMICS
 | 
				
			||||||
 | 
					#elif __GNUC_PREREQ__(4, 7)
 | 
				
			||||||
 | 
					#define	__GNUC_ATOMICS
 | 
				
			||||||
 | 
					#elif defined(__GNUC__)
 | 
				
			||||||
 | 
					#define	__SYNC_ATOMICS
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#error "stdatomic.h does not support your compiler"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.1 Atomic lock-free macros.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_BOOL_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_BOOL_LOCK_FREE		__GCC_ATOMIC_BOOL_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_CHAR_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_CHAR_LOCK_FREE		__GCC_ATOMIC_CHAR_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_CHAR16_T_LOCK_FREE	__GCC_ATOMIC_CHAR16_T_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_CHAR32_T_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_CHAR32_T_LOCK_FREE	__GCC_ATOMIC_CHAR32_T_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_WCHAR_T_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_WCHAR_T_LOCK_FREE	__GCC_ATOMIC_WCHAR_T_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_SHORT_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_SHORT_LOCK_FREE		__GCC_ATOMIC_SHORT_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_INT_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_INT_LOCK_FREE		__GCC_ATOMIC_INT_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_LONG_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_LONG_LOCK_FREE		__GCC_ATOMIC_LONG_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_LLONG_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_LLONG_LOCK_FREE		__GCC_ATOMIC_LLONG_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_POINTER_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_POINTER_LOCK_FREE	__GCC_ATOMIC_POINTER_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.2 Initialization.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CLANG_ATOMICS)
 | 
				
			||||||
 | 
					#define	ATOMIC_VAR_INIT(value)		(value)
 | 
				
			||||||
 | 
					#define	atomic_init(obj, value)		__c11_atomic_init(obj, value)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	ATOMIC_VAR_INIT(value)		{ .__val = (value) }
 | 
				
			||||||
 | 
					#define	atomic_init(obj, value)		((void)((obj)->__val = (value)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Clang and recent GCC both provide predefined macros for the memory
 | 
				
			||||||
 | 
					 * orderings.  If we are using a compiler that doesn't define them, use the
 | 
				
			||||||
 | 
					 * clang values - these will be ignored in the fallback path.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_RELAXED
 | 
				
			||||||
 | 
					#define __ATOMIC_RELAXED		0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_CONSUME
 | 
				
			||||||
 | 
					#define __ATOMIC_CONSUME		1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_ACQUIRE
 | 
				
			||||||
 | 
					#define __ATOMIC_ACQUIRE		2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_RELEASE
 | 
				
			||||||
 | 
					#define __ATOMIC_RELEASE		3
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_ACQ_REL
 | 
				
			||||||
 | 
					#define __ATOMIC_ACQ_REL		4
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_SEQ_CST
 | 
				
			||||||
 | 
					#define __ATOMIC_SEQ_CST		5
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.3 Order and consistency.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The memory_order_* constants that denote the barrier behaviour of the
 | 
				
			||||||
 | 
					 * atomic operations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum {
 | 
				
			||||||
 | 
						memory_order_relaxed = __ATOMIC_RELAXED,
 | 
				
			||||||
 | 
						memory_order_consume = __ATOMIC_CONSUME,
 | 
				
			||||||
 | 
						memory_order_acquire = __ATOMIC_ACQUIRE,
 | 
				
			||||||
 | 
						memory_order_release = __ATOMIC_RELEASE,
 | 
				
			||||||
 | 
						memory_order_acq_rel = __ATOMIC_ACQ_REL,
 | 
				
			||||||
 | 
						memory_order_seq_cst = __ATOMIC_SEQ_CST
 | 
				
			||||||
 | 
					} memory_order;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.4 Fences.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					atomic_thread_fence(memory_order __order __unused)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CLANG_ATOMICS
 | 
				
			||||||
 | 
						__c11_atomic_thread_fence(__order);
 | 
				
			||||||
 | 
					#elif defined(__GNUC_ATOMICS)
 | 
				
			||||||
 | 
						__atomic_thread_fence(__order);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						__sync_synchronize();
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					atomic_signal_fence(memory_order __order __unused)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CLANG_ATOMICS
 | 
				
			||||||
 | 
						__c11_atomic_signal_fence(__order);
 | 
				
			||||||
 | 
					#elif defined(__GNUC_ATOMICS)
 | 
				
			||||||
 | 
						__atomic_signal_fence(__order);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						__asm volatile ("" ::: "memory");
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.5 Lock-free property.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_KERNEL)
 | 
				
			||||||
 | 
					/* Atomics in kernelspace are always lock-free. */
 | 
				
			||||||
 | 
					#define	atomic_is_lock_free(obj) \
 | 
				
			||||||
 | 
						((void)(obj), (_Bool)1)
 | 
				
			||||||
 | 
					#elif defined(__CLANG_ATOMICS)
 | 
				
			||||||
 | 
					#define	atomic_is_lock_free(obj) \
 | 
				
			||||||
 | 
						__atomic_is_lock_free(sizeof(*(obj)), obj)
 | 
				
			||||||
 | 
					#elif defined(__GNUC_ATOMICS)
 | 
				
			||||||
 | 
					#define	atomic_is_lock_free(obj) \
 | 
				
			||||||
 | 
						__atomic_is_lock_free(sizeof((obj)->__val), &(obj)->__val)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	atomic_is_lock_free(obj) \
 | 
				
			||||||
 | 
						((void)(obj), sizeof((obj)->__val) <= sizeof(void *))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.6 Atomic integer types.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef _Atomic(_Bool)			atomic_bool;
 | 
				
			||||||
 | 
					typedef _Atomic(char)			atomic_char;
 | 
				
			||||||
 | 
					typedef _Atomic(signed char)		atomic_schar;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned char)		atomic_uchar;
 | 
				
			||||||
 | 
					typedef _Atomic(short)			atomic_short;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned short)		atomic_ushort;
 | 
				
			||||||
 | 
					typedef _Atomic(int)			atomic_int;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned int)		atomic_uint;
 | 
				
			||||||
 | 
					typedef _Atomic(long)			atomic_long;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned long)		atomic_ulong;
 | 
				
			||||||
 | 
					typedef _Atomic(long long)		atomic_llong;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned long long)	atomic_ullong;
 | 
				
			||||||
 | 
					#if 0
 | 
				
			||||||
 | 
					typedef _Atomic(__char16_t)		atomic_char16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(__char32_t)		atomic_char32_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					typedef _Atomic(wchar_t)		atomic_wchar_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_least8_t)		atomic_int_least8_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_least8_t)		atomic_uint_least8_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_least16_t)		atomic_int_least16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_least16_t)		atomic_uint_least16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_least32_t)		atomic_int_least32_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_least32_t)		atomic_uint_least32_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_least64_t)		atomic_int_least64_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_least64_t)		atomic_uint_least64_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_fast8_t)		atomic_int_fast8_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_fast8_t)		atomic_uint_fast8_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_fast16_t)		atomic_int_fast16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_fast16_t)		atomic_uint_fast16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_fast32_t)		atomic_int_fast32_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_fast32_t)		atomic_uint_fast32_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_fast64_t)		atomic_int_fast64_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_fast64_t)		atomic_uint_fast64_t;
 | 
				
			||||||
 | 
					typedef _Atomic(intptr_t)		atomic_intptr_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uintptr_t)		atomic_uintptr_t;
 | 
				
			||||||
 | 
					typedef _Atomic(size_t)			atomic_size_t;
 | 
				
			||||||
 | 
					typedef _Atomic(ptrdiff_t)		atomic_ptrdiff_t;
 | 
				
			||||||
 | 
					typedef _Atomic(intmax_t)		atomic_intmax_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uintmax_t)		atomic_uintmax_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.7 Operations on atomic types.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Compiler-specific operations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CLANG_ATOMICS)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						__c11_atomic_compare_exchange_strong(object, expected, desired,	\
 | 
				
			||||||
 | 
						    success, failure)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_weak_explicit(object, expected,		\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						__c11_atomic_compare_exchange_weak(object, expected, desired,	\
 | 
				
			||||||
 | 
						    success, failure)
 | 
				
			||||||
 | 
					#define	atomic_exchange_explicit(object, desired, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_exchange(object, desired, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_add_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_add(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_and_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_and(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_or_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_or(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_sub_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_sub(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_xor_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_xor(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_load_explicit(object, order)				\
 | 
				
			||||||
 | 
						__c11_atomic_load(object, order)
 | 
				
			||||||
 | 
					#define	atomic_store_explicit(object, desired, order)			\
 | 
				
			||||||
 | 
						__c11_atomic_store(object, desired, order)
 | 
				
			||||||
 | 
					#elif defined(__GNUC_ATOMICS)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						__atomic_compare_exchange_n(&(object)->__val, expected,		\
 | 
				
			||||||
 | 
						    desired, 0, success, failure)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_weak_explicit(object, expected,		\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						__atomic_compare_exchange_n(&(object)->__val, expected,		\
 | 
				
			||||||
 | 
						    desired, 1, success, failure)
 | 
				
			||||||
 | 
					#define	atomic_exchange_explicit(object, desired, order)		\
 | 
				
			||||||
 | 
						__atomic_exchange_n(&(object)->__val, desired, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_add_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_add(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_and_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_and(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_or_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_or(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_sub_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_sub(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_xor_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_xor(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_load_explicit(object, order)				\
 | 
				
			||||||
 | 
						__atomic_load_n(&(object)->__val, order)
 | 
				
			||||||
 | 
					#define	atomic_store_explicit(object, desired, order)			\
 | 
				
			||||||
 | 
						__atomic_store_n(&(object)->__val, desired, order)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__atomic_apply_stride(object, operand) \
 | 
				
			||||||
 | 
						(((__typeof__((object)->__val))0) + (operand))
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
					    desired, success, failure)	__extension__ ({			\
 | 
				
			||||||
 | 
						__typeof__(expected) __ep = (expected);				\
 | 
				
			||||||
 | 
						__typeof__(*__ep) __e = *__ep;					\
 | 
				
			||||||
 | 
						(void)(success); (void)(failure);				\
 | 
				
			||||||
 | 
						(_Bool)((*__ep = __sync_val_compare_and_swap(&(object)->__val,	\
 | 
				
			||||||
 | 
						    __e, desired)) == __e);					\
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_weak_explicit(object, expected,		\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
							desired, success, failure)
 | 
				
			||||||
 | 
					#if __has_builtin(__sync_swap)
 | 
				
			||||||
 | 
					/* Clang provides a full-barrier atomic exchange - use it if available. */
 | 
				
			||||||
 | 
					#define	atomic_exchange_explicit(object, desired, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_swap(&(object)->__val, desired))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * __sync_lock_test_and_set() is only an acquire barrier in theory (although in
 | 
				
			||||||
 | 
					 * practice it is usually a full barrier) so we need an explicit barrier before
 | 
				
			||||||
 | 
					 * it.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	atomic_exchange_explicit(object, desired, order)		\
 | 
				
			||||||
 | 
					__extension__ ({							\
 | 
				
			||||||
 | 
						__typeof__(object) __o = (object);				\
 | 
				
			||||||
 | 
						__typeof__(desired) __d = (desired);				\
 | 
				
			||||||
 | 
						(void)(order);							\
 | 
				
			||||||
 | 
						__sync_synchronize();						\
 | 
				
			||||||
 | 
						__sync_lock_test_and_set(&(__o)->__val, __d);			\
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	atomic_fetch_add_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_add(&(object)->__val,		\
 | 
				
			||||||
 | 
						    __atomic_apply_stride(object, operand)))
 | 
				
			||||||
 | 
					#define	atomic_fetch_and_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_and(&(object)->__val, operand))
 | 
				
			||||||
 | 
					#define	atomic_fetch_or_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_or(&(object)->__val, operand))
 | 
				
			||||||
 | 
					#define	atomic_fetch_sub_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_sub(&(object)->__val,		\
 | 
				
			||||||
 | 
						    __atomic_apply_stride(object, operand)))
 | 
				
			||||||
 | 
					#define	atomic_fetch_xor_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_xor(&(object)->__val, operand))
 | 
				
			||||||
 | 
					#define	atomic_load_explicit(object, order)				\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_add(&(object)->__val, 0))
 | 
				
			||||||
 | 
					#define	atomic_store_explicit(object, desired, order)			\
 | 
				
			||||||
 | 
						((void)atomic_exchange_explicit(object, desired, order))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Convenience functions.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Don't provide these in kernel space. In kernel space, we should be
 | 
				
			||||||
 | 
					 * disciplined enough to always provide explicit barriers.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _KERNEL
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_strong(object, expected, desired)	\
 | 
				
			||||||
 | 
						atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
						    desired, memory_order_seq_cst, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_weak(object, expected, desired)		\
 | 
				
			||||||
 | 
						atomic_compare_exchange_weak_explicit(object, expected,		\
 | 
				
			||||||
 | 
						    desired, memory_order_seq_cst, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_exchange(object, desired)				\
 | 
				
			||||||
 | 
						atomic_exchange_explicit(object, desired, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_add(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_add_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_and(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_and_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_or(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_or_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_sub(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_sub_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_xor(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_xor_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_load(object)						\
 | 
				
			||||||
 | 
						atomic_load_explicit(object, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_store(object, desired)					\
 | 
				
			||||||
 | 
						atomic_store_explicit(object, desired, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#endif /* !_KERNEL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.8 Atomic flag type and operations.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * XXX: Assume atomic_bool can be used as an atomic_flag. Is there some
 | 
				
			||||||
 | 
					 * kind of compiler built-in type we could use?
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						atomic_bool	__flag;
 | 
				
			||||||
 | 
					} atomic_flag;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	ATOMIC_FLAG_INIT		{ ATOMIC_VAR_INIT(0) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline _Bool
 | 
				
			||||||
 | 
					atomic_flag_test_and_set_explicit(volatile atomic_flag *__object,
 | 
				
			||||||
 | 
					    memory_order __order)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return (atomic_exchange_explicit(&__object->__flag, 1, __order));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					atomic_flag_clear_explicit(volatile atomic_flag *__object, memory_order __order)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						atomic_store_explicit(&__object->__flag, 0, __order);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _KERNEL
 | 
				
			||||||
 | 
					static __inline _Bool
 | 
				
			||||||
 | 
					atomic_flag_test_and_set(volatile atomic_flag *__object)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return (atomic_flag_test_and_set_explicit(__object,
 | 
				
			||||||
 | 
						    memory_order_seq_cst));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					atomic_flag_clear(volatile atomic_flag *__object)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						atomic_flag_clear_explicit(__object, memory_order_seq_cst);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif /* !_KERNEL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_STDATOMIC_H_ */
 | 
				
			||||||
							
								
								
									
										511
									
								
								libc/xtensa-lx106-elf/include/stdint.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										511
									
								
								libc/xtensa-lx106-elf/include/stdint.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,511 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2004, 2005 by
 | 
				
			||||||
 | 
					 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDINT_H
 | 
				
			||||||
 | 
					#define _STDINT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/_default_types.h>
 | 
				
			||||||
 | 
					#include <sys/_intsup.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int8_t_defined
 | 
				
			||||||
 | 
					typedef __int8_t int8_t ;
 | 
				
			||||||
 | 
					typedef __uint8_t uint8_t ;
 | 
				
			||||||
 | 
					#define __int8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int_least8_t_defined
 | 
				
			||||||
 | 
					typedef __int_least8_t int_least8_t;
 | 
				
			||||||
 | 
					typedef __uint_least8_t uint_least8_t;
 | 
				
			||||||
 | 
					#define __int_least8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int16_t_defined
 | 
				
			||||||
 | 
					typedef __int16_t int16_t ;
 | 
				
			||||||
 | 
					typedef __uint16_t uint16_t ;
 | 
				
			||||||
 | 
					#define __int16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int_least16_t_defined
 | 
				
			||||||
 | 
					typedef __int_least16_t int_least16_t;
 | 
				
			||||||
 | 
					typedef __uint_least16_t uint_least16_t;
 | 
				
			||||||
 | 
					#define __int_least16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int32_t_defined
 | 
				
			||||||
 | 
					typedef __int32_t int32_t ;
 | 
				
			||||||
 | 
					typedef __uint32_t uint32_t ;
 | 
				
			||||||
 | 
					#define __int32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int_least32_t_defined
 | 
				
			||||||
 | 
					typedef __int_least32_t int_least32_t;
 | 
				
			||||||
 | 
					typedef __uint_least32_t uint_least32_t;
 | 
				
			||||||
 | 
					#define __int_least32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int64_t_defined
 | 
				
			||||||
 | 
					typedef __int64_t int64_t ;
 | 
				
			||||||
 | 
					typedef __uint64_t uint64_t ;
 | 
				
			||||||
 | 
					#define __int64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int_least64_t_defined
 | 
				
			||||||
 | 
					typedef __int_least64_t int_least64_t;
 | 
				
			||||||
 | 
					typedef __uint_least64_t uint_least64_t;
 | 
				
			||||||
 | 
					#define __int_least64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Fastest minimum-width integer types
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Assume int to be the fastest type for all types with a width 
 | 
				
			||||||
 | 
					 * less than __INT_MAX__ rsp. INT_MAX
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef __INT_FAST8_TYPE__
 | 
				
			||||||
 | 
					  typedef __INT_FAST8_TYPE__ int_fast8_t;
 | 
				
			||||||
 | 
					  typedef __UINT_FAST8_TYPE__ uint_fast8_t;
 | 
				
			||||||
 | 
					#define __int_fast8_t_defined 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(INT_MAX) >= 0x7f
 | 
				
			||||||
 | 
					  typedef signed int int_fast8_t;
 | 
				
			||||||
 | 
					  typedef unsigned int uint_fast8_t;
 | 
				
			||||||
 | 
					#define __int_fast8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST16_TYPE__
 | 
				
			||||||
 | 
					  typedef __INT_FAST16_TYPE__ int_fast16_t;
 | 
				
			||||||
 | 
					  typedef __UINT_FAST16_TYPE__ uint_fast16_t;
 | 
				
			||||||
 | 
					#define __int_fast16_t_defined 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(INT_MAX) >= 0x7fff
 | 
				
			||||||
 | 
					  typedef signed int int_fast16_t;
 | 
				
			||||||
 | 
					  typedef unsigned int uint_fast16_t;
 | 
				
			||||||
 | 
					#define __int_fast16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST32_TYPE__
 | 
				
			||||||
 | 
					  typedef __INT_FAST32_TYPE__ int_fast32_t;
 | 
				
			||||||
 | 
					  typedef __UINT_FAST32_TYPE__ uint_fast32_t;
 | 
				
			||||||
 | 
					#define __int_fast32_t_defined 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(INT_MAX) >= 0x7fffffff
 | 
				
			||||||
 | 
					  typedef signed int int_fast32_t;
 | 
				
			||||||
 | 
					  typedef unsigned int uint_fast32_t;
 | 
				
			||||||
 | 
					#define __int_fast32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST64_TYPE__
 | 
				
			||||||
 | 
					  typedef __INT_FAST64_TYPE__ int_fast64_t;
 | 
				
			||||||
 | 
					  typedef __UINT_FAST64_TYPE__ uint_fast64_t;
 | 
				
			||||||
 | 
					#define __int_fast64_t_defined 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(INT_MAX) > 0x7fffffff
 | 
				
			||||||
 | 
					  typedef signed int int_fast64_t;
 | 
				
			||||||
 | 
					  typedef unsigned int uint_fast64_t;
 | 
				
			||||||
 | 
					#define __int_fast64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Fall back to [u]int_least<N>_t for [u]int_fast<N>_t types
 | 
				
			||||||
 | 
					 * not having been defined, yet.
 | 
				
			||||||
 | 
					 * Leave undefined, if [u]int_least<N>_t should not be available.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !__int_fast8_t_defined
 | 
				
			||||||
 | 
					#if __int_least8_t_defined
 | 
				
			||||||
 | 
					  typedef int_least8_t int_fast8_t;
 | 
				
			||||||
 | 
					  typedef uint_least8_t uint_fast8_t;
 | 
				
			||||||
 | 
					#define __int_fast8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__int_fast16_t_defined
 | 
				
			||||||
 | 
					#if __int_least16_t_defined
 | 
				
			||||||
 | 
					  typedef int_least16_t int_fast16_t;
 | 
				
			||||||
 | 
					  typedef uint_least16_t uint_fast16_t;
 | 
				
			||||||
 | 
					#define __int_fast16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__int_fast32_t_defined
 | 
				
			||||||
 | 
					#if __int_least32_t_defined
 | 
				
			||||||
 | 
					  typedef int_least32_t int_fast32_t;
 | 
				
			||||||
 | 
					  typedef uint_least32_t uint_fast32_t;
 | 
				
			||||||
 | 
					#define __int_fast32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__int_fast64_t_defined
 | 
				
			||||||
 | 
					#if __int_least64_t_defined
 | 
				
			||||||
 | 
					  typedef int_least64_t int_fast64_t;
 | 
				
			||||||
 | 
					  typedef uint_least64_t uint_fast64_t;
 | 
				
			||||||
 | 
					#define __int_fast64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Greatest-width integer types */
 | 
				
			||||||
 | 
					/* Modern GCCs provide __INTMAX_TYPE__ */
 | 
				
			||||||
 | 
					#if defined(__INTMAX_TYPE__)
 | 
				
			||||||
 | 
					  typedef __INTMAX_TYPE__ intmax_t;
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					  typedef signed long long intmax_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  typedef signed long intmax_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Modern GCCs provide __UINTMAX_TYPE__ */
 | 
				
			||||||
 | 
					#if defined(__UINTMAX_TYPE__)
 | 
				
			||||||
 | 
					  typedef __UINTMAX_TYPE__ uintmax_t;
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					  typedef unsigned long long uintmax_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  typedef unsigned long uintmax_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __intptr_t intptr_t;
 | 
				
			||||||
 | 
					typedef __uintptr_t uintptr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INTPTR_TYPE__
 | 
				
			||||||
 | 
					#define INTPTR_MIN (-__INTPTR_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INTPTR_MAX __INTPTR_MAX__
 | 
				
			||||||
 | 
					#define UINTPTR_MAX __UINTPTR_MAX__
 | 
				
			||||||
 | 
					#elif defined(__PTRDIFF_TYPE__)
 | 
				
			||||||
 | 
					#define INTPTR_MAX PTRDIFF_MAX
 | 
				
			||||||
 | 
					#define INTPTR_MIN PTRDIFF_MIN
 | 
				
			||||||
 | 
					#ifdef __UINTPTR_MAX__
 | 
				
			||||||
 | 
					#define UINTPTR_MAX __UINTPTR_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define UINTPTR_MAX (2UL * PTRDIFF_MAX + 1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Fallback to hardcoded values, 
 | 
				
			||||||
 | 
					 * should be valid on cpu's with 32bit int/32bit void*
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define INTPTR_MAX __STDINT_EXP(LONG_MAX)
 | 
				
			||||||
 | 
					#define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1)
 | 
				
			||||||
 | 
					#define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Limits of Specified-Width Integer Types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT8_MAX__
 | 
				
			||||||
 | 
					#define INT8_MIN (-__INT8_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT8_MAX __INT8_MAX__
 | 
				
			||||||
 | 
					#define UINT8_MAX __UINT8_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int8_t_defined)
 | 
				
			||||||
 | 
					#define INT8_MIN 	-128
 | 
				
			||||||
 | 
					#define INT8_MAX 	 127
 | 
				
			||||||
 | 
					#define UINT8_MAX 	 255
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST8_MAX__
 | 
				
			||||||
 | 
					#define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_LEAST8_MAX __INT_LEAST8_MAX__
 | 
				
			||||||
 | 
					#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_least8_t_defined)
 | 
				
			||||||
 | 
					#define INT_LEAST8_MIN 	-128
 | 
				
			||||||
 | 
					#define INT_LEAST8_MAX 	 127
 | 
				
			||||||
 | 
					#define UINT_LEAST8_MAX	 255
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#error required type int_least8_t missing
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT16_MAX__
 | 
				
			||||||
 | 
					#define INT16_MIN (-__INT16_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT16_MAX __INT16_MAX__
 | 
				
			||||||
 | 
					#define UINT16_MAX __UINT16_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int16_t_defined)
 | 
				
			||||||
 | 
					#define INT16_MIN 	-32768
 | 
				
			||||||
 | 
					#define INT16_MAX 	 32767
 | 
				
			||||||
 | 
					#define UINT16_MAX 	 65535
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST16_MAX__
 | 
				
			||||||
 | 
					#define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_LEAST16_MAX __INT_LEAST16_MAX__
 | 
				
			||||||
 | 
					#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_least16_t_defined)
 | 
				
			||||||
 | 
					#define INT_LEAST16_MIN	-32768
 | 
				
			||||||
 | 
					#define INT_LEAST16_MAX	 32767
 | 
				
			||||||
 | 
					#define UINT_LEAST16_MAX 65535
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#error required type int_least16_t missing
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT32_MAX__
 | 
				
			||||||
 | 
					#define INT32_MIN (-__INT32_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT32_MAX __INT32_MAX__
 | 
				
			||||||
 | 
					#define UINT32_MAX __UINT32_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int32_t_defined)
 | 
				
			||||||
 | 
					#if __have_long32
 | 
				
			||||||
 | 
					#define INT32_MIN 	 (-2147483647L-1)
 | 
				
			||||||
 | 
					#define INT32_MAX 	 2147483647L
 | 
				
			||||||
 | 
					#define UINT32_MAX       4294967295UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT32_MIN 	 (-2147483647-1)
 | 
				
			||||||
 | 
					#define INT32_MAX 	 2147483647
 | 
				
			||||||
 | 
					#define UINT32_MAX       4294967295U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST32_MAX__
 | 
				
			||||||
 | 
					#define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_LEAST32_MAX __INT_LEAST32_MAX__
 | 
				
			||||||
 | 
					#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_least32_t_defined)
 | 
				
			||||||
 | 
					#if __have_long32
 | 
				
			||||||
 | 
					#define INT_LEAST32_MIN  (-2147483647L-1)
 | 
				
			||||||
 | 
					#define INT_LEAST32_MAX  2147483647L
 | 
				
			||||||
 | 
					#define UINT_LEAST32_MAX 4294967295UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_LEAST32_MIN  (-2147483647-1)
 | 
				
			||||||
 | 
					#define INT_LEAST32_MAX  2147483647
 | 
				
			||||||
 | 
					#define UINT_LEAST32_MAX 4294967295U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#error required type int_least32_t missing
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT64_MAX__
 | 
				
			||||||
 | 
					#define INT64_MIN (-__INT64_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT64_MAX __INT64_MAX__
 | 
				
			||||||
 | 
					#define UINT64_MAX __UINT64_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int64_t_defined)
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define INT64_MIN 	(-9223372036854775807L-1L)
 | 
				
			||||||
 | 
					#define INT64_MAX 	 9223372036854775807L
 | 
				
			||||||
 | 
					#define UINT64_MAX 	18446744073709551615U
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					#define INT64_MIN 	(-9223372036854775807LL-1LL)
 | 
				
			||||||
 | 
					#define INT64_MAX 	 9223372036854775807LL
 | 
				
			||||||
 | 
					#define UINT64_MAX 	18446744073709551615ULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST64_MAX__
 | 
				
			||||||
 | 
					#define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_LEAST64_MAX __INT_LEAST64_MAX__
 | 
				
			||||||
 | 
					#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_least64_t_defined)
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define INT_LEAST64_MIN  (-9223372036854775807L-1L)
 | 
				
			||||||
 | 
					#define INT_LEAST64_MAX  9223372036854775807L
 | 
				
			||||||
 | 
					#define UINT_LEAST64_MAX 18446744073709551615U
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					#define INT_LEAST64_MIN  (-9223372036854775807LL-1LL)
 | 
				
			||||||
 | 
					#define INT_LEAST64_MAX  9223372036854775807LL
 | 
				
			||||||
 | 
					#define UINT_LEAST64_MAX 18446744073709551615ULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST8_MAX__
 | 
				
			||||||
 | 
					#define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_FAST8_MAX __INT_FAST8_MAX__
 | 
				
			||||||
 | 
					#define UINT_FAST8_MAX __UINT_FAST8_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_fast8_t_defined)
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) >= 0x7f
 | 
				
			||||||
 | 
					#define INT_FAST8_MIN	(-__STDINT_EXP(INT_MAX)-1)
 | 
				
			||||||
 | 
					#define INT_FAST8_MAX	__STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					#define UINT_FAST8_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_FAST8_MIN	INT_LEAST8_MIN
 | 
				
			||||||
 | 
					#define INT_FAST8_MAX	INT_LEAST8_MAX
 | 
				
			||||||
 | 
					#define UINT_FAST8_MAX	UINT_LEAST8_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST16_MAX__
 | 
				
			||||||
 | 
					#define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_FAST16_MAX __INT_FAST16_MAX__
 | 
				
			||||||
 | 
					#define UINT_FAST16_MAX __UINT_FAST16_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_fast16_t_defined)
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) >= 0x7fff
 | 
				
			||||||
 | 
					#define INT_FAST16_MIN	(-__STDINT_EXP(INT_MAX)-1)
 | 
				
			||||||
 | 
					#define INT_FAST16_MAX	__STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					#define UINT_FAST16_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_FAST16_MIN	INT_LEAST16_MIN
 | 
				
			||||||
 | 
					#define INT_FAST16_MAX	INT_LEAST16_MAX
 | 
				
			||||||
 | 
					#define UINT_FAST16_MAX	UINT_LEAST16_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST32_MAX__
 | 
				
			||||||
 | 
					#define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_FAST32_MAX __INT_FAST32_MAX__
 | 
				
			||||||
 | 
					#define UINT_FAST32_MAX __UINT_FAST32_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_fast32_t_defined)
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) >= 0x7fffffff
 | 
				
			||||||
 | 
					#define INT_FAST32_MIN	(-__STDINT_EXP(INT_MAX)-1)
 | 
				
			||||||
 | 
					#define INT_FAST32_MAX	__STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					#define UINT_FAST32_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_FAST32_MIN	INT_LEAST32_MIN
 | 
				
			||||||
 | 
					#define INT_FAST32_MAX	INT_LEAST32_MAX
 | 
				
			||||||
 | 
					#define UINT_FAST32_MAX	UINT_LEAST32_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST64_MAX__
 | 
				
			||||||
 | 
					#define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_FAST64_MAX __INT_FAST64_MAX__
 | 
				
			||||||
 | 
					#define UINT_FAST64_MAX __UINT_FAST64_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_fast64_t_defined)
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) > 0x7fffffff
 | 
				
			||||||
 | 
					#define INT_FAST64_MIN	(-__STDINT_EXP(INT_MAX)-1)
 | 
				
			||||||
 | 
					#define INT_FAST64_MAX	__STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					#define UINT_FAST64_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_FAST64_MIN	INT_LEAST64_MIN
 | 
				
			||||||
 | 
					#define INT_FAST64_MAX	INT_LEAST64_MAX
 | 
				
			||||||
 | 
					#define UINT_FAST64_MAX	UINT_LEAST64_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INTMAX_MAX__
 | 
				
			||||||
 | 
					#define INTMAX_MAX __INTMAX_MAX__
 | 
				
			||||||
 | 
					#define INTMAX_MIN (-INTMAX_MAX - 1)
 | 
				
			||||||
 | 
					#elif defined(__INTMAX_TYPE__)
 | 
				
			||||||
 | 
					/* All relevant GCC versions prefer long to long long for intmax_t.  */
 | 
				
			||||||
 | 
					#define INTMAX_MAX INT64_MAX
 | 
				
			||||||
 | 
					#define INTMAX_MIN INT64_MIN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __UINTMAX_MAX__
 | 
				
			||||||
 | 
					#define UINTMAX_MAX __UINTMAX_MAX__
 | 
				
			||||||
 | 
					#elif defined(__UINTMAX_TYPE__)
 | 
				
			||||||
 | 
					/* All relevant GCC versions prefer long to long long for intmax_t.  */
 | 
				
			||||||
 | 
					#define UINTMAX_MAX UINT64_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match size_t in stddef.h, currently long unsigned int */
 | 
				
			||||||
 | 
					#ifdef __SIZE_MAX__
 | 
				
			||||||
 | 
					#define SIZE_MAX __SIZE_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match sig_atomic_t in <signal.h> (currently int) */
 | 
				
			||||||
 | 
					#define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)
 | 
				
			||||||
 | 
					#define SIG_ATOMIC_MAX __STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match ptrdiff_t  in <stddef.h> (currently long int) */
 | 
				
			||||||
 | 
					#ifdef __PTRDIFF_MAX__
 | 
				
			||||||
 | 
					#define PTRDIFF_MAX __PTRDIFF_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define PTRDIFF_MAX __STDINT_EXP(LONG_MAX)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match definition in <wchar.h> */
 | 
				
			||||||
 | 
					#ifndef WCHAR_MIN
 | 
				
			||||||
 | 
					#ifdef __WCHAR_MIN__
 | 
				
			||||||
 | 
					#define WCHAR_MIN __WCHAR_MIN__
 | 
				
			||||||
 | 
					#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0)
 | 
				
			||||||
 | 
					#define WCHAR_MIN (0 + L'\0')
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define WCHAR_MIN (-0x7fffffff - 1 + L'\0')
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match definition in <wchar.h> */
 | 
				
			||||||
 | 
					#ifndef WCHAR_MAX
 | 
				
			||||||
 | 
					#ifdef __WCHAR_MAX__
 | 
				
			||||||
 | 
					#define WCHAR_MAX __WCHAR_MAX__
 | 
				
			||||||
 | 
					#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0)
 | 
				
			||||||
 | 
					#define WCHAR_MAX (0xffffffffu + L'\0')
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define WCHAR_MAX (0x7fffffff + L'\0')
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* wint_t is unsigned int on almost all GCC targets.  */
 | 
				
			||||||
 | 
					#ifdef __WINT_MAX__
 | 
				
			||||||
 | 
					#define WINT_MAX __WINT_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define WINT_MAX (__STDINT_EXP(INT_MAX) * 2U + 1U)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __WINT_MIN__
 | 
				
			||||||
 | 
					#define WINT_MIN __WINT_MIN__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define WINT_MIN 0U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Macros for minimum-width integer constant expressions */
 | 
				
			||||||
 | 
					#ifdef __INT8_C
 | 
				
			||||||
 | 
					#define INT8_C(x) __INT8_C(x)
 | 
				
			||||||
 | 
					#define UINT8_C(x) __UINT8_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT8_C(x)	x
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) > 0x7f
 | 
				
			||||||
 | 
					#define UINT8_C(x)	x
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define UINT8_C(x)	x##U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT16_C
 | 
				
			||||||
 | 
					#define INT16_C(x) __INT16_C(x)
 | 
				
			||||||
 | 
					#define UINT16_C(x) __UINT16_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT16_C(x)	x
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) > 0x7fff
 | 
				
			||||||
 | 
					#define UINT16_C(x)	x
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define UINT16_C(x)	x##U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT32_C
 | 
				
			||||||
 | 
					#define INT32_C(x) __INT32_C(x)
 | 
				
			||||||
 | 
					#define UINT32_C(x) __UINT32_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if __have_long32
 | 
				
			||||||
 | 
					#define INT32_C(x)	x##L
 | 
				
			||||||
 | 
					#define UINT32_C(x)	x##UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT32_C(x)	x
 | 
				
			||||||
 | 
					#define UINT32_C(x)	x##U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT64_C
 | 
				
			||||||
 | 
					#define INT64_C(x) __INT64_C(x)
 | 
				
			||||||
 | 
					#define UINT64_C(x) __UINT64_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if __int64_t_defined
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define INT64_C(x)	x##L
 | 
				
			||||||
 | 
					#define UINT64_C(x)	x##UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT64_C(x)	x##LL
 | 
				
			||||||
 | 
					#define UINT64_C(x)	x##ULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Macros for greatest-width integer constant expression */
 | 
				
			||||||
 | 
					#ifdef __INTMAX_C
 | 
				
			||||||
 | 
					#define INTMAX_C(x) __INTMAX_C(x)
 | 
				
			||||||
 | 
					#define UINTMAX_C(x) __UINTMAX_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define INTMAX_C(x)	x##L
 | 
				
			||||||
 | 
					#define UINTMAX_C(x)	x##UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INTMAX_C(x)	x##LL
 | 
				
			||||||
 | 
					#define UINTMAX_C(x)	x##ULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STDINT_H */
 | 
				
			||||||
							
								
								
									
										727
									
								
								libc/xtensa-lx106-elf/include/stdio.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										727
									
								
								libc/xtensa-lx106-elf/include/stdio.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,727 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 1990 The Regents of the University of California.
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms are permitted
 | 
				
			||||||
 | 
					 * provided that the above copyright notice and this paragraph are
 | 
				
			||||||
 | 
					 * duplicated in all such forms and that any documentation,
 | 
				
			||||||
 | 
					 * advertising materials, and other materials related to such
 | 
				
			||||||
 | 
					 * distribution and use acknowledge that the software was developed
 | 
				
			||||||
 | 
					 * by the University of California, Berkeley.  The name of the
 | 
				
			||||||
 | 
					 * University may not be used to endorse or promote products derived
 | 
				
			||||||
 | 
					 * from this software without specific prior written permission.
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 | 
				
			||||||
 | 
					 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)stdio.h	5.3 (Berkeley) 3/15/86
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * NB: to fit things in six character monocase externals, the
 | 
				
			||||||
 | 
					 * stdio code uses the prefix `__s' for stdio objects, typically
 | 
				
			||||||
 | 
					 * followed by a three-character attempt at a mnemonic.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDIO_H_
 | 
				
			||||||
 | 
					#define	_STDIO_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_FSTDIO			/* ``function stdio'' */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need___va_list
 | 
				
			||||||
 | 
					#include <stdarg.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * <sys/reent.h> defines __FILE, _fpos_t.
 | 
				
			||||||
 | 
					 * They must be defined there because struct _reent needs them (and we don't
 | 
				
			||||||
 | 
					 * want reent.h to include this file.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __FILE FILE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					typedef _fpos64_t fpos_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef _fpos_t fpos_t;
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					typedef _fpos64_t fpos64_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* !__CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	__SLBF	0x0001		/* line buffered */
 | 
				
			||||||
 | 
					#define	__SNBF	0x0002		/* unbuffered */
 | 
				
			||||||
 | 
					#define	__SRD	0x0004		/* OK to read */
 | 
				
			||||||
 | 
					#define	__SWR	0x0008		/* OK to write */
 | 
				
			||||||
 | 
						/* RD and WR are never simultaneously asserted */
 | 
				
			||||||
 | 
					#define	__SRW	0x0010		/* open for reading & writing */
 | 
				
			||||||
 | 
					#define	__SEOF	0x0020		/* found EOF */
 | 
				
			||||||
 | 
					#define	__SERR	0x0040		/* found error */
 | 
				
			||||||
 | 
					#define	__SMBF	0x0080		/* _buf is from malloc */
 | 
				
			||||||
 | 
					#define	__SAPP	0x0100		/* fdopen()ed in append mode - so must  write to end */
 | 
				
			||||||
 | 
					#define	__SSTR	0x0200		/* this is an sprintf/snprintf string */
 | 
				
			||||||
 | 
					#define	__SOPT	0x0400		/* do fseek() optimisation */
 | 
				
			||||||
 | 
					#define	__SNPT	0x0800		/* do not do fseek() optimisation */
 | 
				
			||||||
 | 
					#define	__SOFF	0x1000		/* set iff _offset is in fact correct */
 | 
				
			||||||
 | 
					#define	__SORD	0x2000		/* true => stream orientation (byte/wide) decided */
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#  define __SCLE  0x4000        /* convert line endings CR/LF <-> NL */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	__SL64	0x8000		/* is 64-bit offset large file */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* _flags2 flags */
 | 
				
			||||||
 | 
					#define	__SNLK  0x0001		/* stdio functions do not lock streams themselves */
 | 
				
			||||||
 | 
					#define	__SWID	0x2000		/* true => stream orientation wide, false => byte, only valid if __SORD in _flags is true */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The following three definitions are for ANSI C, which took them
 | 
				
			||||||
 | 
					 * from System V, which stupidly took internal interface macros and
 | 
				
			||||||
 | 
					 * made them official arguments to setvbuf(), without renaming them.
 | 
				
			||||||
 | 
					 * Hence, these ugly _IOxxx names are *supposed* to appear in user code.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Although these happen to match their counterparts above, the
 | 
				
			||||||
 | 
					 * implementation does not rely on that (so these could be renumbered).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_IOFBF	0		/* setvbuf should set fully buffered */
 | 
				
			||||||
 | 
					#define	_IOLBF	1		/* setvbuf should set line buffered */
 | 
				
			||||||
 | 
					#define	_IONBF	2		/* setvbuf should set unbuffered */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	EOF	(-1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __BUFSIZ__
 | 
				
			||||||
 | 
					#define	BUFSIZ		__BUFSIZ__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	BUFSIZ		1024
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __FOPEN_MAX__
 | 
				
			||||||
 | 
					#define FOPEN_MAX	__FOPEN_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	FOPEN_MAX	20
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __FILENAME_MAX__
 | 
				
			||||||
 | 
					#define FILENAME_MAX    __FILENAME_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	FILENAME_MAX	1024
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __L_tmpnam__
 | 
				
			||||||
 | 
					#define L_tmpnam	__L_tmpnam__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	L_tmpnam	FILENAME_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#define P_tmpdir        "/tmp"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef SEEK_SET
 | 
				
			||||||
 | 
					#define	SEEK_SET	0	/* set file offset to offset */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef SEEK_CUR
 | 
				
			||||||
 | 
					#define	SEEK_CUR	1	/* set file offset to current plus offset */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef SEEK_END
 | 
				
			||||||
 | 
					#define	SEEK_END	2	/* set file offset to EOF plus offset */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TMP_MAX		26
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	stdin	(_REENT->_stdin)
 | 
				
			||||||
 | 
					#define	stdout	(_REENT->_stdout)
 | 
				
			||||||
 | 
					#define	stderr	(_REENT->_stderr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _stdin_r(x)	((x)->_stdin)
 | 
				
			||||||
 | 
					#define _stdout_r(x)	((x)->_stdout)
 | 
				
			||||||
 | 
					#define _stderr_r(x)	((x)->_stderr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Functions defined in ANSI C standard.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __VALIST
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					#define __VALIST __gnuc_va_list
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __VALIST char*
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILE *	_EXFUN(tmpfile, (void));
 | 
				
			||||||
 | 
					char *	_EXFUN(tmpnam, (char *));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
 | 
				
			||||||
 | 
					char *	_EXFUN(tempnam, (const char *, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(fclose, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fflush, (FILE *));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(freopen, (const char *__restrict, const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					void	_EXFUN(setbuf, (FILE *__restrict, char *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(setvbuf, (FILE *__restrict, char *__restrict, int, size_t));
 | 
				
			||||||
 | 
					int	_EXFUN(fprintf, (FILE *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(fscanf, (FILE *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(printf, (const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 1, 2))));
 | 
				
			||||||
 | 
					int	_EXFUN(scanf, (const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 1, 2))));
 | 
				
			||||||
 | 
					int	_EXFUN(sscanf, (const char *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(vfprintf, (FILE *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vprintf, (const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 1, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsprintf, (char *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(fgetc, (FILE *));
 | 
				
			||||||
 | 
					char *  _EXFUN(fgets, (char *__restrict, int, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(fputc, (int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fputs, (const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(getc, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(getchar, (void));
 | 
				
			||||||
 | 
					char *  _EXFUN(gets, (char *));
 | 
				
			||||||
 | 
					int	_EXFUN(putc, (int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(putchar, (int));
 | 
				
			||||||
 | 
					int	_EXFUN(puts, (const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(ungetc, (int, FILE *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(fread, (_PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(fwrite, (const _PTR __restrict , size_t _size, size_t _n, FILE *));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(fgetpos, (FILE *, _fpos_t *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int	_EXFUN(fgetpos, (FILE *__restrict, fpos_t *__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(fseek, (FILE *, long, int));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(fsetpos, (FILE *, const _fpos_t *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int	_EXFUN(fsetpos, (FILE *, const fpos_t *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					long	_EXFUN(ftell, ( FILE *));
 | 
				
			||||||
 | 
					void	_EXFUN(rewind, (FILE *));
 | 
				
			||||||
 | 
					void	_EXFUN(clearerr, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(feof, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(ferror, (FILE *));
 | 
				
			||||||
 | 
					void    _EXFUN(perror, (const char *));
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					FILE *	_EXFUN(fopen, (const char *__restrict _name, const char *__restrict _type));
 | 
				
			||||||
 | 
					int	_EXFUN(sprintf, (char *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(remove, (const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(rename, (const char *, const char *));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(_rename, (const char *, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || defined(__USE_XOPEN2K)
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(fseeko, (FILE *, _off_t, int));
 | 
				
			||||||
 | 
					_off_t	_EXFUN(ftello, ( FILE *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int	_EXFUN(fseeko, (FILE *, off_t, int));
 | 
				
			||||||
 | 
					off_t	_EXFUN(ftello, ( FILE *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					int	_EXFUN(fcloseall, (_VOID));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) || (__cplusplus >= 201103L)
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					int	_EXFUN(asiprintf, (char **, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					char *	_EXFUN(asniprintf, (char *, size_t *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					char *	_EXFUN(asnprintf, (char *__restrict, size_t *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(asprintf, (char **__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					#ifndef diprintf
 | 
				
			||||||
 | 
					int	_EXFUN(diprintf, (int, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(fiprintf, (FILE *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(fiscanf, (FILE *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(iprintf, (const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 1, 2))));
 | 
				
			||||||
 | 
					int	_EXFUN(iscanf, (const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 1, 2))));
 | 
				
			||||||
 | 
					int	_EXFUN(siprintf, (char *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(siscanf, (const char *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(snprintf, (char *__restrict, size_t, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(sniprintf, (char *, size_t, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(vasiprintf, (char **, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					char *	_EXFUN(vasniprintf, (char *, size_t *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					char *	_EXFUN(vasnprintf, (char *, size_t *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vasprintf, (char **, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vdiprintf, (int, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vfiprintf, (FILE *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vfiscanf, (FILE *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vfscanf, (FILE *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(viprintf, (const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 1, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(viscanf, (const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 1, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vscanf, (const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 1, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsiprintf, (char *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsiscanf, (const char *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsniprintf, (char *, size_t, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsnprintf, (char *__restrict, size_t, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					#endif /* !_REENT_ONLY */
 | 
				
			||||||
 | 
					#endif /* !__STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Routines in POSIX 1003.1:2001.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					FILE *	_EXFUN(fdopen, (int, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(fileno, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(getw, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(pclose, (FILE *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(popen, (const char *, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(putw, (int, FILE *));
 | 
				
			||||||
 | 
					void    _EXFUN(setbuffer, (FILE *, char *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(setlinebuf, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(getc_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(getchar_unlocked, (void));
 | 
				
			||||||
 | 
					void	_EXFUN(flockfile, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(ftrylockfile, (FILE *));
 | 
				
			||||||
 | 
					void	_EXFUN(funlockfile, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(putc_unlocked, (int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(putchar_unlocked, (int));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Routines in POSIX 1003.1:200x.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					# ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#  ifndef dprintf
 | 
				
			||||||
 | 
					int	_EXFUN(dprintf, (int, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					FILE *	_EXFUN(fmemopen, (void *__restrict, size_t, const char *__restrict));
 | 
				
			||||||
 | 
					/* getdelim - see __getdelim for now */
 | 
				
			||||||
 | 
					/* getline - see __getline for now */
 | 
				
			||||||
 | 
					FILE *	_EXFUN(open_memstream, (char **, size_t *));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
 | 
				
			||||||
 | 
					int	_EXFUN(renameat, (int, const char *, int, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(vdprintf, (int, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Recursive versions of the above.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(_asiprintf_r, (struct _reent *, char **, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_asniprintf_r, (struct _reent *, char *, size_t *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 5))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_asnprintf_r, (struct _reent *, char *__restrict, size_t *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 5))));
 | 
				
			||||||
 | 
					int	_EXFUN(_asprintf_r, (struct _reent *, char **__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_diprintf_r, (struct _reent *, int, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_dprintf_r, (struct _reent *, int, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_fclose_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fcloseall_r, (struct _reent *));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_fdopen_r, (struct _reent *, int, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fflush_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fgetc_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fgetc_unlocked_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					char *  _EXFUN(_fgets_r, (struct _reent *, char *__restrict, int, FILE *__restrict));
 | 
				
			||||||
 | 
					char *  _EXFUN(_fgets_unlocked_r, (struct _reent *, char *__restrict, int, FILE *__restrict));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(_fgetpos_r, (struct _reent *, FILE *__restrict, _fpos_t *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_fsetpos_r, (struct _reent *, FILE *, const _fpos_t *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int	_EXFUN(_fgetpos_r, (struct _reent *, FILE *, fpos_t *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fsetpos_r, (struct _reent *, FILE *, const fpos_t *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(_fiprintf_r, (struct _reent *, FILE *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_fiscanf_r, (struct _reent *, FILE *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 4))));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_fmemopen_r, (struct _reent *, void *__restrict, size_t, const char *__restrict));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_fopen_r, (struct _reent *, const char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_freopen_r, (struct _reent *, const char *__restrict, const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_fprintf_r, (struct _reent *, FILE *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_fpurge_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fputc_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fputc_unlocked_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fputs_r, (struct _reent *, const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_fputs_unlocked_r, (struct _reent *, const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_fread_r, (struct _reent *, _PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_fread_unlocked_r, (struct _reent *, _PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_fscanf_r, (struct _reent *, FILE *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_fseek_r, (struct _reent *, FILE *, long, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_fseeko_r,(struct _reent *, FILE *, _off_t, int));
 | 
				
			||||||
 | 
					long	_EXFUN(_ftell_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					_off_t	_EXFUN(_ftello_r,(struct _reent *, FILE *));
 | 
				
			||||||
 | 
					void	_EXFUN(_rewind_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_fwrite_r, (struct _reent *, const _PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_fwrite_unlocked_r, (struct _reent *, const _PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_getc_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_getc_unlocked_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_getchar_r, (struct _reent *));
 | 
				
			||||||
 | 
					int	_EXFUN(_getchar_unlocked_r, (struct _reent *));
 | 
				
			||||||
 | 
					char *	_EXFUN(_gets_r, (struct _reent *, char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_iprintf_r, (struct _reent *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(_iscanf_r, (struct _reent *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_open_memstream_r, (struct _reent *, char **, size_t *));
 | 
				
			||||||
 | 
					void	_EXFUN(_perror_r, (struct _reent *, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_printf_r, (struct _reent *, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(_putc_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_putc_unlocked_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_putchar_unlocked_r, (struct _reent *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_putchar_r, (struct _reent *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_puts_r, (struct _reent *, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_remove_r, (struct _reent *, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_rename_r, (struct _reent *,
 | 
				
			||||||
 | 
								   const char *_old, const char *_new));
 | 
				
			||||||
 | 
					int	_EXFUN(_scanf_r, (struct _reent *, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(_siprintf_r, (struct _reent *, char *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_siscanf_r, (struct _reent *, const char *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_sniprintf_r, (struct _reent *, char *, size_t, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 5))));
 | 
				
			||||||
 | 
					int	_EXFUN(_snprintf_r, (struct _reent *, char *__restrict, size_t, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 5))));
 | 
				
			||||||
 | 
					int	_EXFUN(_sprintf_r, (struct _reent *, char *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_sscanf_r, (struct _reent *, const char *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 4))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_tempnam_r, (struct _reent *, const char *, const char *));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_tmpfile_r, (struct _reent *));
 | 
				
			||||||
 | 
					char *	_EXFUN(_tmpnam_r, (struct _reent *, char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_ungetc_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_vasiprintf_r, (struct _reent *, char **, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_vasniprintf_r, (struct _reent*, char *, size_t *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 0))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_vasnprintf_r, (struct _reent*, char *, size_t *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vasprintf_r, (struct _reent *, char **, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vdiprintf_r, (struct _reent *, int, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vdprintf_r, (struct _reent *, int, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vfiprintf_r, (struct _reent *, FILE *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vfiscanf_r, (struct _reent *, FILE *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vfprintf_r, (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vfscanf_r, (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_viprintf_r, (struct _reent *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_viscanf_r, (struct _reent *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vprintf_r, (struct _reent *, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vscanf_r, (struct _reent *, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsiprintf_r, (struct _reent *, char *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsiscanf_r, (struct _reent *, const char *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsniprintf_r, (struct _reent *, char *, size_t, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsnprintf_r, (struct _reent *, char *__restrict, size_t, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsprintf_r, (struct _reent *, char *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsscanf_r, (struct _reent *, const char *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 0))));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Other extensions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(fpurge, (FILE *));
 | 
				
			||||||
 | 
					ssize_t _EXFUN(__getdelim, (char **, size_t *, int, FILE *));
 | 
				
			||||||
 | 
					ssize_t _EXFUN(__getline, (char **, size_t *, FILE *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					void	_EXFUN(clearerr_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(feof_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(ferror_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fileno_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fflush_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fgetc_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fputc_unlocked, (int, FILE *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(fread_unlocked, (_PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(fwrite_unlocked, (const _PTR __restrict , size_t _size, size_t _n, FILE *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					char *  _EXFUN(fgets_unlocked, (char *__restrict, int, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(fputs_unlocked, (const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					#if !defined(__CYGWIN__) || defined(_COMPILING_NEWLIB)
 | 
				
			||||||
 | 
					FILE *	_EXFUN(fdopen64, (int, const char *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(fopen64, (const char *, const char *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(freopen64, (_CONST char *, _CONST char *, FILE *));
 | 
				
			||||||
 | 
					_off64_t _EXFUN(ftello64, (FILE *));
 | 
				
			||||||
 | 
					_off64_t _EXFUN(fseeko64, (FILE *, _off64_t, int));
 | 
				
			||||||
 | 
					int     _EXFUN(fgetpos64, (FILE *, _fpos64_t *));
 | 
				
			||||||
 | 
					int     _EXFUN(fsetpos64, (FILE *, const _fpos64_t *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(tmpfile64, (void));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_fdopen64_r, (struct _reent *, int, const char *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(_fopen64_r, (struct _reent *,const char *, const char *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(_freopen64_r, (struct _reent *, _CONST char *, _CONST char *, FILE *));
 | 
				
			||||||
 | 
					_off64_t _EXFUN(_ftello64_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					_off64_t _EXFUN(_fseeko64_r, (struct _reent *, FILE *, _off64_t, int));
 | 
				
			||||||
 | 
					int     _EXFUN(_fgetpos64_r, (struct _reent *, FILE *, _fpos64_t *));
 | 
				
			||||||
 | 
					int     _EXFUN(_fsetpos64_r, (struct _reent *, FILE *, const _fpos64_t *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(_tmpfile64_r, (struct _reent *));
 | 
				
			||||||
 | 
					#endif /* !__CYGWIN__ */
 | 
				
			||||||
 | 
					#endif /* __LARGE64_FILES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Routines internal to the implementation.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(__srget_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(__swbuf_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Stdio function-access interface.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					# ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					FILE	*_EXFUN(funopen,(const _PTR __cookie,
 | 
				
			||||||
 | 
							int (*__readfn)(_PTR __c, char *__buf,
 | 
				
			||||||
 | 
									_READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							int (*__writefn)(_PTR __c, const char *__buf,
 | 
				
			||||||
 | 
									 _READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							_fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence),
 | 
				
			||||||
 | 
							int (*__closefn)(_PTR __c)));
 | 
				
			||||||
 | 
					FILE	*_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie,
 | 
				
			||||||
 | 
							int (*__readfn)(_PTR __c, char *__buf,
 | 
				
			||||||
 | 
									_READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							int (*__writefn)(_PTR __c, const char *__buf,
 | 
				
			||||||
 | 
									 _READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							_fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence),
 | 
				
			||||||
 | 
							int (*__closefn)(_PTR __c)));
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					FILE	*_EXFUN(funopen,(const _PTR __cookie,
 | 
				
			||||||
 | 
							int (*__readfn)(_PTR __cookie, char *__buf,
 | 
				
			||||||
 | 
									_READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							int (*__writefn)(_PTR __cookie, const char *__buf,
 | 
				
			||||||
 | 
									 _READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence),
 | 
				
			||||||
 | 
							int (*__closefn)(_PTR __cookie)));
 | 
				
			||||||
 | 
					FILE	*_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie,
 | 
				
			||||||
 | 
							int (*__readfn)(_PTR __cookie, char *__buf,
 | 
				
			||||||
 | 
									_READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							int (*__writefn)(_PTR __cookie, const char *__buf,
 | 
				
			||||||
 | 
									 _READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence),
 | 
				
			||||||
 | 
							int (*__closefn)(_PTR __cookie)));
 | 
				
			||||||
 | 
					# endif /* !__LARGE64_FILES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define	fropen(__cookie, __fn) funopen(__cookie, __fn, (int (*)())0, \
 | 
				
			||||||
 | 
										       (fpos_t (*)())0, (int (*)())0)
 | 
				
			||||||
 | 
					# define	fwopen(__cookie, __fn) funopen(__cookie, (int (*)())0, __fn, \
 | 
				
			||||||
 | 
										       (fpos_t (*)())0, (int (*)())0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef ssize_t cookie_read_function_t(void *__cookie, char *__buf, size_t __n);
 | 
				
			||||||
 | 
					typedef ssize_t cookie_write_function_t(void *__cookie, const char *__buf,
 | 
				
			||||||
 | 
										size_t __n);
 | 
				
			||||||
 | 
					# ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					typedef int cookie_seek_function_t(void *__cookie, _off64_t *__off,
 | 
				
			||||||
 | 
									   int __whence);
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					typedef int cookie_seek_function_t(void *__cookie, off_t *__off, int __whence);
 | 
				
			||||||
 | 
					# endif /* !__LARGE64_FILES */
 | 
				
			||||||
 | 
					typedef int cookie_close_function_t(void *__cookie);
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* These four struct member names are dictated by Linux; hopefully,
 | 
				
			||||||
 | 
					     they don't conflict with any macros.  */
 | 
				
			||||||
 | 
					  cookie_read_function_t  *read;
 | 
				
			||||||
 | 
					  cookie_write_function_t *write;
 | 
				
			||||||
 | 
					  cookie_seek_function_t  *seek;
 | 
				
			||||||
 | 
					  cookie_close_function_t *close;
 | 
				
			||||||
 | 
					} cookie_io_functions_t;
 | 
				
			||||||
 | 
					FILE *_EXFUN(fopencookie,(void *__cookie,
 | 
				
			||||||
 | 
							const char *__mode, cookie_io_functions_t __functions));
 | 
				
			||||||
 | 
					FILE *_EXFUN(_fopencookie_r,(struct _reent *, void *__cookie,
 | 
				
			||||||
 | 
							const char *__mode, cookie_io_functions_t __functions));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CUSTOM_FILE_IO__
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The __sfoo macros are here so that we can 
 | 
				
			||||||
 | 
					 * define function versions in the C library.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define       __sgetc_raw_r(__ptr, __f) (--(__f)->_r < 0 ? __srget_r(__ptr, __f) : (int)(*(__f)->_p++))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SCLE
 | 
				
			||||||
 | 
					/*  For a platform with CR/LF, additional logic is required by
 | 
				
			||||||
 | 
					  __sgetc_r which would otherwise simply be a macro; therefore we
 | 
				
			||||||
 | 
					  use an inlined function.  The function is only meant to be inlined
 | 
				
			||||||
 | 
					  in place as used and the function body should never be emitted.  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  There are two possible means to this end when compiling with GCC,
 | 
				
			||||||
 | 
					  one when compiling with a standard C99 compiler, and for other
 | 
				
			||||||
 | 
					  compilers we're just stuck.  At the moment, this issue only
 | 
				
			||||||
 | 
					  affects the Cygwin target, so we'll most likely be using GCC. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    int __c = __sgetc_raw_r(__ptr, __p);
 | 
				
			||||||
 | 
					    if ((__p->_flags & __SCLE) && (__c == '\r'))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      int __c2 = __sgetc_raw_r(__ptr, __p);
 | 
				
			||||||
 | 
					      if (__c2 == '\n')
 | 
				
			||||||
 | 
					        __c = __c2;
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        ungetc(__c2, __p);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    return __c;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __sgetc_r(__ptr, __p) __sgetc_raw_r(__ptr, __p)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _never /* __GNUC__ */
 | 
				
			||||||
 | 
					/* If this inline is actually used, then systems using coff debugging
 | 
				
			||||||
 | 
					   info get hopelessly confused.  21sept93 rich@cygnus.com.  */
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) {
 | 
				
			||||||
 | 
						if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
 | 
				
			||||||
 | 
							return (*_p->_p++ = _c);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							return (__swbuf_r(_ptr, _c, _p));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This has been tuned to generate reasonable code on the vax using pcc
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define       __sputc_raw_r(__ptr, __c, __p) \
 | 
				
			||||||
 | 
						(--(__p)->_w < 0 ? \
 | 
				
			||||||
 | 
							(__p)->_w >= (__p)->_lbfsize ? \
 | 
				
			||||||
 | 
								(*(__p)->_p = (__c)), *(__p)->_p != '\n' ? \
 | 
				
			||||||
 | 
									(int)*(__p)->_p++ : \
 | 
				
			||||||
 | 
									__swbuf_r(__ptr, '\n', __p) : \
 | 
				
			||||||
 | 
								__swbuf_r(__ptr, (int)(__c), __p) : \
 | 
				
			||||||
 | 
							(*(__p)->_p = (__c), (int)*(__p)->_p++))
 | 
				
			||||||
 | 
					#ifdef __SCLE
 | 
				
			||||||
 | 
					#define __sputc_r(__ptr, __c, __p) \
 | 
				
			||||||
 | 
					        ((((__p)->_flags & __SCLE) && ((__c) == '\n')) \
 | 
				
			||||||
 | 
					          ? __sputc_raw_r(__ptr, '\r', (__p)) : 0 , \
 | 
				
			||||||
 | 
					        __sputc_raw_r((__ptr), (__c), (__p)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __sputc_r(__ptr, __c, __p) __sputc_raw_r(__ptr, __c, __p)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	__sfeof(p)	((int)(((p)->_flags & __SEOF) != 0))
 | 
				
			||||||
 | 
					#define	__sferror(p)	((int)(((p)->_flags & __SERR) != 0))
 | 
				
			||||||
 | 
					#define	__sclearerr(p)	((void)((p)->_flags &= ~(__SERR|__SEOF)))
 | 
				
			||||||
 | 
					#define	__sfileno(p)	((p)->_file)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define	feof(p)		__sfeof(p)
 | 
				
			||||||
 | 
					#define	ferror(p)	__sferror(p)
 | 
				
			||||||
 | 
					#define	clearerr(p)	__sclearerr(p)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					#define	feof_unlocked(p)	__sfeof(p)
 | 
				
			||||||
 | 
					#define	ferror_unlocked(p)	__sferror(p)
 | 
				
			||||||
 | 
					#define	clearerr_unlocked(p)	__sclearerr(p)
 | 
				
			||||||
 | 
					#endif /* __BSD_VISIBLE */
 | 
				
			||||||
 | 
					#endif /* _REENT_SMALL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if 0 /*ndef __STRICT_ANSI__ - FIXME: must initialize stdio first, use fn */
 | 
				
			||||||
 | 
					#define	fileno(p)	__sfileno(p)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					#ifndef lint
 | 
				
			||||||
 | 
					#define	getc(fp)	__sgetc_r(_REENT, fp)
 | 
				
			||||||
 | 
					#define putc(x, fp)	__sputc_r(_REENT, x, fp)
 | 
				
			||||||
 | 
					#endif /* lint */
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					/* fast always-buffered version, true iff error */
 | 
				
			||||||
 | 
					#define	fast_putc(x,p) (--(p)->_w < 0 ? \
 | 
				
			||||||
 | 
						__swbuf_r(_REENT, (int)(x), p) == EOF : (*(p)->_p = (x), (p)->_p++, 0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	L_cuserid	9		/* posix says it goes in stdio.h :( */
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define L_ctermid       16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__CUSTOM_FILE_IO__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	getchar()	getc(stdin)
 | 
				
			||||||
 | 
					#define	putchar(x)	putc(x, stdout)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#define	getchar_unlocked()	getc_unlocked(stdin)
 | 
				
			||||||
 | 
					#define	putchar_unlocked(x)	putc_unlocked(x, stdout)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STDIO_H_ */
 | 
				
			||||||
							
								
								
									
										79
									
								
								libc/xtensa-lx106-elf/include/stdio_ext.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								libc/xtensa-lx106-elf/include/stdio_ext.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,79 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * stdio_ext.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Definitions for I/O internal operations, originally from Solaris.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDIO_EXT_H_
 | 
				
			||||||
 | 
					#define _STDIO_EXT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __rtems__
 | 
				
			||||||
 | 
					#error "<stdio_ext.h> not supported"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	FSETLOCKING_QUERY	0
 | 
				
			||||||
 | 
					#define	FSETLOCKING_INTERNAL	1
 | 
				
			||||||
 | 
					#define	FSETLOCKING_BYCALLER	2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	 _EXFUN(__fpurge,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__fsetlocking,(FILE *, int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TODO:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   void _flushlbf (void);
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef  __GNUC__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE size_t
 | 
				
			||||||
 | 
					__fbufsize (FILE *__fp) { return (size_t) __fp->_bf._size; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__freading (FILE *__fp) { return (__fp->_flags & __SRD) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__fwriting (FILE *__fp) { return (__fp->_flags & __SWR) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__freadable (FILE *__fp) { return (__fp->_flags & (__SRD | __SRW)) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__fwritable (FILE *__fp) { return (__fp->_flags & (__SWR | __SRW)) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__flbf (FILE *__fp) { return (__fp->_flags & __SLBF) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE size_t
 | 
				
			||||||
 | 
					__fpending (FILE *__fp) { return __fp->_p - __fp->_bf._base; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t	 _EXFUN(__fbufsize,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__freading,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__fwriting,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__freadable,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__fwritable,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__flbf,(FILE *));
 | 
				
			||||||
 | 
					size_t	 _EXFUN(__fpending,(FILE *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __cplusplus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __fbufsize(__fp) ((size_t) (__fp)->_bf._size)
 | 
				
			||||||
 | 
					#define __freading(__fp) (((__fp)->_flags & __SRD) != 0)
 | 
				
			||||||
 | 
					#define __fwriting(__fp) (((__fp)->_flags & __SWR) != 0)
 | 
				
			||||||
 | 
					#define __freadable(__fp) (((__fp)->_flags & (__SRD | __SRW)) != 0)
 | 
				
			||||||
 | 
					#define __fwritable(__fp) (((__fp)->_flags & (__SWR | __SRW)) != 0)
 | 
				
			||||||
 | 
					#define __flbf(__fp) (((__fp)->_flags & __SLBF) != 0)
 | 
				
			||||||
 | 
					#define __fpending(__fp) ((size_t) ((__fp)->_p - (__fp)->_bf._base))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __cplusplus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STDIO_EXT_H_ */
 | 
				
			||||||
							
								
								
									
										297
									
								
								libc/xtensa-lx106-elf/include/stdlib.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										297
									
								
								libc/xtensa-lx106-elf/include/stdlib.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,297 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * stdlib.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Definitions for common types, variables, and functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDLIB_H_
 | 
				
			||||||
 | 
					#define _STDLIB_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_wchar_t
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <machine/stdlib.h>
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#include <alloca.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/stdlib.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int quot; /* quotient */
 | 
				
			||||||
 | 
					  int rem; /* remainder */
 | 
				
			||||||
 | 
					} div_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  long quot; /* quotient */
 | 
				
			||||||
 | 
					  long rem; /* remainder */
 | 
				
			||||||
 | 
					} ldiv_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  long long int quot; /* quotient */
 | 
				
			||||||
 | 
					  long long int rem; /* remainder */
 | 
				
			||||||
 | 
					} lldiv_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __compar_fn_t_defined
 | 
				
			||||||
 | 
					#define __compar_fn_t_defined
 | 
				
			||||||
 | 
					typedef int (*__compar_fn_t) (const _PTR, const _PTR);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef NULL
 | 
				
			||||||
 | 
					#define NULL 0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define EXIT_FAILURE 1
 | 
				
			||||||
 | 
					#define EXIT_SUCCESS 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define RAND_MAX __RAND_MAX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(__locale_mb_cur_max,(_VOID));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MB_CUR_MAX __locale_mb_cur_max()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_VOID	_EXFUN(abort,(_VOID) _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					int	_EXFUN(abs,(int));
 | 
				
			||||||
 | 
					int	_EXFUN(atexit,(_VOID (*__func)(_VOID)));
 | 
				
			||||||
 | 
					double	_EXFUN(atof,(const char *__nptr));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					float	_EXFUN(atoff,(const char *__nptr));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(atoi,(const char *__nptr));
 | 
				
			||||||
 | 
					int	_EXFUN(_atoi_r,(struct _reent *, const char *__nptr));
 | 
				
			||||||
 | 
					long	_EXFUN(atol,(const char *__nptr));
 | 
				
			||||||
 | 
					long	_EXFUN(_atol_r,(struct _reent *, const char *__nptr));
 | 
				
			||||||
 | 
					_PTR	_EXFUN(bsearch,(const _PTR __key,
 | 
				
			||||||
 | 
							       const _PTR __base,
 | 
				
			||||||
 | 
							       size_t __nmemb,
 | 
				
			||||||
 | 
							       size_t __size,
 | 
				
			||||||
 | 
							       __compar_fn_t _compar));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(calloc,(size_t __nmemb, size_t __size));
 | 
				
			||||||
 | 
					div_t	_EXFUN(div,(int __numer, int __denom));
 | 
				
			||||||
 | 
					_VOID	_EXFUN(exit,(int __status) _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					_VOID	_EXFUN_NOTHROW(free,(_PTR));
 | 
				
			||||||
 | 
					char *  _EXFUN(getenv,(const char *__string));
 | 
				
			||||||
 | 
					char *	_EXFUN(_getenv_r,(struct _reent *, const char *__string));
 | 
				
			||||||
 | 
					char *	_EXFUN(_findenv,(_CONST char *, int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(_findenv_r,(struct _reent *, _CONST char *, int *));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					extern char *suboptarg;			/* getsubopt(3) external variable */
 | 
				
			||||||
 | 
					int	_EXFUN(getsubopt,(char **, char * const *, char **));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					long	_EXFUN(labs,(long));
 | 
				
			||||||
 | 
					ldiv_t	_EXFUN(ldiv,(long __numer, long __denom));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(malloc,(size_t __size));
 | 
				
			||||||
 | 
					int	_EXFUN(mblen,(const char *, size_t));
 | 
				
			||||||
 | 
					int	_EXFUN(_mblen_r,(struct _reent *, const char *, size_t, _mbstate_t *));
 | 
				
			||||||
 | 
					int	_EXFUN(mbtowc,(wchar_t *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					int	_EXFUN(_mbtowc_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *));
 | 
				
			||||||
 | 
					int	_EXFUN(wctomb,(char *, wchar_t));
 | 
				
			||||||
 | 
					int	_EXFUN(_wctomb_r,(struct _reent *, char *, wchar_t, _mbstate_t *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(mbstowcs,(wchar_t *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_mbstowcs_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(wcstombs,(char *__restrict, const wchar_t *__restrict, size_t));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_wcstombs_r,(struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					char *	_EXFUN(mkdtemp,(char *));
 | 
				
			||||||
 | 
					int	_EXFUN(mkostemp,(char *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(mkostemps,(char *, int, int));
 | 
				
			||||||
 | 
					int	_EXFUN(mkstemp,(char *));
 | 
				
			||||||
 | 
					int	_EXFUN(mkstemps,(char *, int));
 | 
				
			||||||
 | 
					#if (__GNUC__ < 4) || defined(__XTENSA__)
 | 
				
			||||||
 | 
					char *	_EXFUN(mktemp,(char *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					char *	_EXFUN(mktemp,(char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *	_EXFUN(_mkdtemp_r, (struct _reent *, char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkostemp_r, (struct _reent *, char *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkostemps_r, (struct _reent *, char *, int, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkstemp_r, (struct _reent *, char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkstemps_r, (struct _reent *, char *, int));
 | 
				
			||||||
 | 
					#if (__GNUC__ < 4) || defined(__XTENSA__)
 | 
				
			||||||
 | 
					char *	_EXFUN(_mktemp_r, (struct _reent *, char *)); 
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					char *	_EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					_VOID	_EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, __compar_fn_t _compar));
 | 
				
			||||||
 | 
					int	_EXFUN(rand,(_VOID));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(realloc,(_PTR __r, size_t __size));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					_PTR	_EXFUN(reallocf,(_PTR __r, size_t __size));
 | 
				
			||||||
 | 
					char *	_EXFUN(realpath, (const char *__restrict path, char *__restrict resolved_path));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					_VOID	_EXFUN(srand,(unsigned __seed));
 | 
				
			||||||
 | 
					double	_EXFUN(strtod,(const char *__restrict __n, char **__restrict __end_PTR));
 | 
				
			||||||
 | 
					double	_EXFUN(_strtod_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR));
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					float	_EXFUN(strtof,(const char *__restrict __n, char **__restrict __end_PTR));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					/* the following strtodf interface is deprecated...use strtof instead */
 | 
				
			||||||
 | 
					# ifndef strtodf 
 | 
				
			||||||
 | 
					#  define strtodf strtof
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					long	_EXFUN(strtol,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					long	_EXFUN(_strtol_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					unsigned long _EXFUN(strtoul,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					unsigned long _EXFUN(_strtoul_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(system,(const char *__string));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					long    _EXFUN(a64l,(const char *__input));
 | 
				
			||||||
 | 
					char *  _EXFUN(l64a,(long __input));
 | 
				
			||||||
 | 
					char *  _EXFUN(_l64a_r,(struct _reent *,long __input));
 | 
				
			||||||
 | 
					int	_EXFUN(on_exit,(_VOID (*__func)(int, _PTR),_PTR __arg));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					_VOID	_EXFUN(_Exit,(int __status) _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					int	_EXFUN(putenv,(char *__string));
 | 
				
			||||||
 | 
					int	_EXFUN(_putenv_r,(struct _reent *, char *__string));
 | 
				
			||||||
 | 
					_PTR	_EXFUN(_reallocf_r,(struct _reent *, _PTR, size_t));
 | 
				
			||||||
 | 
					int	_EXFUN(setenv,(const char *__string, const char *__value, int __overwrite));
 | 
				
			||||||
 | 
					int	_EXFUN(_setenv_r,(struct _reent *, const char *__string, const char *__value, int __overwrite));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *	_EXFUN(gcvt,(double,int,char *));
 | 
				
			||||||
 | 
					char *	_EXFUN(gcvtf,(float,int,char *));
 | 
				
			||||||
 | 
					char *	_EXFUN(fcvt,(double,int,int *,int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(fcvtf,(float,int,int *,int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(ecvt,(double,int,int *,int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(ecvtbuf,(double, int, int*, int*, char *));
 | 
				
			||||||
 | 
					char *	_EXFUN(fcvtbuf,(double, int, int*, int*, char *));
 | 
				
			||||||
 | 
					char *	_EXFUN(ecvtf,(float,int,int *,int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(dtoa,(double, int, int, int *, int*, char**));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *	_EXFUN(__itoa,(int, char *, int));
 | 
				
			||||||
 | 
					char *	_EXFUN(__utoa,(unsigned, char *, int));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					char *	_EXFUN(itoa,(int, char *, int));
 | 
				
			||||||
 | 
					char *	_EXFUN(utoa,(unsigned, char *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(rand_r,(unsigned *__seed));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double _EXFUN(drand48,(_VOID));
 | 
				
			||||||
 | 
					double _EXFUN(_drand48_r,(struct _reent *));
 | 
				
			||||||
 | 
					double _EXFUN(erand48,(unsigned short [3]));
 | 
				
			||||||
 | 
					double _EXFUN(_erand48_r,(struct _reent *, unsigned short [3]));
 | 
				
			||||||
 | 
					long   _EXFUN(jrand48,(unsigned short [3]));
 | 
				
			||||||
 | 
					long   _EXFUN(_jrand48_r,(struct _reent *, unsigned short [3]));
 | 
				
			||||||
 | 
					_VOID  _EXFUN(lcong48,(unsigned short [7]));
 | 
				
			||||||
 | 
					_VOID  _EXFUN(_lcong48_r,(struct _reent *, unsigned short [7]));
 | 
				
			||||||
 | 
					long   _EXFUN(lrand48,(_VOID));
 | 
				
			||||||
 | 
					long   _EXFUN(_lrand48_r,(struct _reent *));
 | 
				
			||||||
 | 
					long   _EXFUN(mrand48,(_VOID));
 | 
				
			||||||
 | 
					long   _EXFUN(_mrand48_r,(struct _reent *));
 | 
				
			||||||
 | 
					long   _EXFUN(nrand48,(unsigned short [3]));
 | 
				
			||||||
 | 
					long   _EXFUN(_nrand48_r,(struct _reent *, unsigned short [3]));
 | 
				
			||||||
 | 
					unsigned short *
 | 
				
			||||||
 | 
					       _EXFUN(seed48,(unsigned short [3]));
 | 
				
			||||||
 | 
					unsigned short *
 | 
				
			||||||
 | 
					       _EXFUN(_seed48_r,(struct _reent *, unsigned short [3]));
 | 
				
			||||||
 | 
					_VOID  _EXFUN(srand48,(long));
 | 
				
			||||||
 | 
					_VOID  _EXFUN(_srand48_r,(struct _reent *, long));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					long long _EXFUN(atoll,(const char *__nptr));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					long long _EXFUN(_atoll_r,(struct _reent *, const char *__nptr));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					long long _EXFUN(llabs,(long long));
 | 
				
			||||||
 | 
					lldiv_t	_EXFUN(lldiv,(long long __numer, long long __denom));
 | 
				
			||||||
 | 
					long long _EXFUN(strtoll,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					long long _EXFUN(_strtoll_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					unsigned long long _EXFUN(strtoull,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					unsigned long long _EXFUN(_strtoull_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					_VOID	_EXFUN(cfree,(_PTR));
 | 
				
			||||||
 | 
					int	_EXFUN(unsetenv,(const char *__string));
 | 
				
			||||||
 | 
					int	_EXFUN(_unsetenv_r,(struct _reent *, const char *__string));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __rtems__
 | 
				
			||||||
 | 
					int _EXFUN(posix_memalign,(void **, size_t, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *	_EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**));
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(_malloc_r,(struct _reent *, size_t));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(_calloc_r,(struct _reent *, size_t, size_t));
 | 
				
			||||||
 | 
					_VOID	_EXFUN_NOTHROW(_free_r,(struct _reent *, _PTR));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(_realloc_r,(struct _reent *, _PTR, size_t));
 | 
				
			||||||
 | 
					_VOID	_EXFUN(_mstats_r,(struct _reent *, char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(_system_r,(struct _reent *, const char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_VOID	_EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* There are two common qsort_r variants.  If you request
 | 
				
			||||||
 | 
					   _BSD_SOURCE, you get the BSD version; otherwise you get the GNU
 | 
				
			||||||
 | 
					   version.  We want that #undef qsort_r will still let you
 | 
				
			||||||
 | 
					   invoke the underlying function, but that requires gcc support. */
 | 
				
			||||||
 | 
					#ifdef _BSD_SOURCE
 | 
				
			||||||
 | 
					# ifdef __GNUC__
 | 
				
			||||||
 | 
					_VOID	_EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR)))
 | 
				
			||||||
 | 
					             __asm__ (__ASMNAME ("__bsd_qsort_r"));
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					_VOID	_EXFUN(__bsd_qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR)));
 | 
				
			||||||
 | 
					#  define qsort_r __bsd_qsort_r
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#elif __GNU_VISIBLE
 | 
				
			||||||
 | 
					_VOID	_EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, int (*_compar)(const _PTR, const _PTR, _PTR), _PTR __thunk));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* On platforms where long double equals double.  */
 | 
				
			||||||
 | 
					#ifdef _HAVE_LONG_DOUBLE
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					extern long double strtold (const char *__restrict, char **__restrict);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _HAVE_LONG_DOUBLE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STDLIB_H_ */
 | 
				
			||||||
							
								
								
									
										167
									
								
								libc/xtensa-lx106-elf/include/string.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								libc/xtensa-lx106-elf/include/string.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,167 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * string.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Definitions for memory and string functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STRING_H_
 | 
				
			||||||
 | 
					#define	_STRING_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_PTR 	 _EXFUN(memchr,(const _PTR, int, size_t));
 | 
				
			||||||
 | 
					int 	 _EXFUN(memcmp,(const _PTR, const _PTR, size_t));
 | 
				
			||||||
 | 
					_PTR 	 _EXFUN(memcpy,(_PTR __restrict, const _PTR __restrict, size_t));
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(memmove,(_PTR, const _PTR, size_t));
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(memset,(_PTR, int, size_t));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strcat,(char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strchr,(const char *, int));
 | 
				
			||||||
 | 
					int	 _EXFUN(strcmp,(const char *, const char *));
 | 
				
			||||||
 | 
					int	 _EXFUN(strcoll,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strcpy,(char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strcspn,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strerror,(int));
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strlen,(const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strncat,(char *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					int	 _EXFUN(strncmp,(const char *, const char *, size_t));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strncpy,(char *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strpbrk,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strrchr,(const char *, int));
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strspn,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strstr,(const char *, const char *));
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					char 	*_EXFUN(strtok,(char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strxfrm,(char *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE
 | 
				
			||||||
 | 
					char 	*_EXFUN(strtok_r,(char *__restrict, const char *__restrict, char **__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					int	 _EXFUN(bcmp,(const void *, const void *, size_t));
 | 
				
			||||||
 | 
					void	 _EXFUN(bcopy,(const void *, void *, size_t));
 | 
				
			||||||
 | 
					void	 _EXFUN(bzero,(void *, size_t));
 | 
				
			||||||
 | 
					int	 _EXFUN(ffs,(int));
 | 
				
			||||||
 | 
					char 	*_EXFUN(index,(const char *, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(memccpy,(_PTR __restrict, const _PTR __restrict, int, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(mempcpy,(_PTR, const _PTR, size_t));
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					_PTR 	 _EXFUN(memrchr,(const _PTR, int, size_t));
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					_PTR 	 _EXFUN(rawmemchr,(const _PTR, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					char 	*_EXFUN(rindex,(const char *, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char 	*_EXFUN(stpcpy,(char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					char 	*_EXFUN(stpncpy,(char *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE
 | 
				
			||||||
 | 
					int	 _EXFUN(strcasecmp,(const char *, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					char	*_EXFUN(strcasestr,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strchrnul,(const char *, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __XSI_VISIBLE >= 500
 | 
				
			||||||
 | 
					char 	*_EXFUN(strdup,(const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					char 	*_EXFUN(_strdup_r,(struct _reent *, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __XSI_VISIBLE >= 700
 | 
				
			||||||
 | 
					char 	*_EXFUN(strndup,(const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					char 	*_EXFUN(_strndup_r,(struct _reent *, const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					int	 _EXFUN(ffsl,(long));
 | 
				
			||||||
 | 
					int	 _EXFUN(ffsll, (long long));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* There are two common strerror_r variants.  If you request
 | 
				
			||||||
 | 
					   _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX
 | 
				
			||||||
 | 
					   version.  POSIX requires that #undef strerror_r will still let you
 | 
				
			||||||
 | 
					   invoke the underlying function, but that requires gcc support.  */
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					char	*_EXFUN(strerror_r,(int, char *, size_t));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# ifdef __GNUC__
 | 
				
			||||||
 | 
					int	_EXFUN(strerror_r,(int, char *, size_t))
 | 
				
			||||||
 | 
					             __asm__ (__ASMNAME ("__xpg_strerror_r"));
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					int	_EXFUN(__xpg_strerror_r,(int, char *, size_t));
 | 
				
			||||||
 | 
					#  define strerror_r __xpg_strerror_r
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Reentrant version of strerror.  */
 | 
				
			||||||
 | 
					char *	_EXFUN(_strerror_r, (struct _reent *, int, int, int *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					size_t	_EXFUN(strlcat,(char *, const char *, size_t));
 | 
				
			||||||
 | 
					size_t	_EXFUN(strlcpy,(char *, const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE
 | 
				
			||||||
 | 
					int	_EXFUN(strncasecmp,(const char *, const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || __POSIX_VISIBLE >= 200809 || \
 | 
				
			||||||
 | 
					    __XSI_VISIBLE >= 700
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strnlen,(const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					char 	*_EXFUN(strsep,(char **, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The origin of these is unknown to me so I am conditionalizing them
 | 
				
			||||||
 | 
					 * on __STRICT_ANSI__. Finetuning this is definitely needed. --joel
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__)
 | 
				
			||||||
 | 
					char	*_EXFUN(strlwr,(char *));
 | 
				
			||||||
 | 
					char	*_EXFUN(strupr,(char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef DEFS_H	/* Kludge to work around problem compiling in gdb */
 | 
				
			||||||
 | 
					char	*_EXFUN(strsignal, (int __signo));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					int	_EXFUN(strtosigno, (const char *__name));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined _GNU_SOURCE && defined __GNUC__
 | 
				
			||||||
 | 
					#define strdupa(__s) \
 | 
				
			||||||
 | 
						(__extension__ ({const char *__in = (__s); \
 | 
				
			||||||
 | 
								 size_t __len = strlen (__in) + 1; \
 | 
				
			||||||
 | 
								 char * __out = (char *) __builtin_alloca (__len); \
 | 
				
			||||||
 | 
								 (char *) memcpy (__out, __in, __len);}))
 | 
				
			||||||
 | 
					#define strndupa(__s, __n) \
 | 
				
			||||||
 | 
						(__extension__ ({const char *__in = (__s); \
 | 
				
			||||||
 | 
								 size_t __len = strnlen (__in, (__n)) + 1; \
 | 
				
			||||||
 | 
								 char *__out = (char *) __builtin_alloca (__len); \
 | 
				
			||||||
 | 
								 __out[__len-1] = '\0'; \
 | 
				
			||||||
 | 
								 (char *) memcpy (__out, __in, __len-1);}))
 | 
				
			||||||
 | 
					#endif /* _GNU_SOURCE && __GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STRING_H_ */
 | 
				
			||||||
							
								
								
									
										35
									
								
								libc/xtensa-lx106-elf/include/strings.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								libc/xtensa-lx106-elf/include/strings.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * strings.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Definitions for string operations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STRINGS_H_
 | 
				
			||||||
 | 
					#define _STRINGS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h> /* for size_t */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined __STRICT_ANSI__ && _POSIX_VERSION < 200809L
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					 * Marked LEGACY in Open Group Base Specifications Issue 6/IEEE Std 1003.1-2004
 | 
				
			||||||
 | 
					 * Removed from Open Group Base Specifications Issue 7/IEEE Std 1003.1-2008
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int	 _EXFUN(bcmp,(const void *, const void *, size_t));
 | 
				
			||||||
 | 
					void	 _EXFUN(bcopy,(const void *, void *, size_t));
 | 
				
			||||||
 | 
					void	 _EXFUN(bzero,(void *, size_t));
 | 
				
			||||||
 | 
					char 	*_EXFUN(index,(const char *, int));
 | 
				
			||||||
 | 
					char 	*_EXFUN(rindex,(const char *, int));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	 _EXFUN(ffs,(int));
 | 
				
			||||||
 | 
					int	 _EXFUN(strcasecmp,(const char *, const char *));
 | 
				
			||||||
 | 
					int	 _EXFUN(strncasecmp,(const char *, const char *, size_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STRINGS_H_ */
 | 
				
			||||||
							
								
								
									
										213
									
								
								libc/xtensa-lx106-elf/include/sys/_default_fcntl.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								libc/xtensa-lx106-elf/include/sys/_default_fcntl.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,213 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_SYS__DEFAULT_FCNTL_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	_SYS__DEFAULT_FCNTL_H_
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#define	_FOPEN		(-1)	/* from sys/file.h, kernel use only */
 | 
				
			||||||
 | 
					#define	_FREAD		0x0001	/* read enabled */
 | 
				
			||||||
 | 
					#define	_FWRITE		0x0002	/* write enabled */
 | 
				
			||||||
 | 
					#define	_FAPPEND	0x0008	/* append (writes guaranteed at the end) */
 | 
				
			||||||
 | 
					#define	_FMARK		0x0010	/* internal; mark during gc() */
 | 
				
			||||||
 | 
					#define	_FDEFER		0x0020	/* internal; defer for next gc pass */
 | 
				
			||||||
 | 
					#define	_FASYNC		0x0040	/* signal pgrp when data ready */
 | 
				
			||||||
 | 
					#define	_FSHLOCK	0x0080	/* BSD flock() shared lock present */
 | 
				
			||||||
 | 
					#define	_FEXLOCK	0x0100	/* BSD flock() exclusive lock present */
 | 
				
			||||||
 | 
					#define	_FCREAT		0x0200	/* open with file create */
 | 
				
			||||||
 | 
					#define	_FTRUNC		0x0400	/* open with truncation */
 | 
				
			||||||
 | 
					#define	_FEXCL		0x0800	/* error on open if file exists */
 | 
				
			||||||
 | 
					#define	_FNBIO		0x1000	/* non blocking I/O (sys5 style) */
 | 
				
			||||||
 | 
					#define	_FSYNC		0x2000	/* do all writes synchronously */
 | 
				
			||||||
 | 
					#define	_FNONBLOCK	0x4000	/* non blocking I/O (POSIX style) */
 | 
				
			||||||
 | 
					#define	_FNDELAY	_FNONBLOCK	/* non blocking I/O (4.2 style) */
 | 
				
			||||||
 | 
					#define	_FNOCTTY	0x8000	/* don't assign a ctty on this open */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	O_ACCMODE	(O_RDONLY|O_WRONLY|O_RDWR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Flag values for open(2) and fcntl(2)
 | 
				
			||||||
 | 
					 * The kernel adds 1 to the open modes to turn it into some
 | 
				
			||||||
 | 
					 * combination of FREAD and FWRITE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	O_RDONLY	0		/* +1 == FREAD */
 | 
				
			||||||
 | 
					#define	O_WRONLY	1		/* +1 == FWRITE */
 | 
				
			||||||
 | 
					#define	O_RDWR		2		/* +1 == FREAD|FWRITE */
 | 
				
			||||||
 | 
					#define	O_APPEND	_FAPPEND
 | 
				
			||||||
 | 
					#define	O_CREAT		_FCREAT
 | 
				
			||||||
 | 
					#define	O_TRUNC		_FTRUNC
 | 
				
			||||||
 | 
					#define	O_EXCL		_FEXCL
 | 
				
			||||||
 | 
					#define O_SYNC		_FSYNC
 | 
				
			||||||
 | 
					/*	O_NDELAY	_FNDELAY 	set in include/fcntl.h */
 | 
				
			||||||
 | 
					/*	O_NDELAY	_FNBIO 		set in include/fcntl.h */
 | 
				
			||||||
 | 
					#define	O_NONBLOCK	_FNONBLOCK
 | 
				
			||||||
 | 
					#define	O_NOCTTY	_FNOCTTY
 | 
				
			||||||
 | 
					/* For machines which care - */
 | 
				
			||||||
 | 
					#if defined (__CYGWIN__)
 | 
				
			||||||
 | 
					#define _FBINARY        0x10000
 | 
				
			||||||
 | 
					#define _FTEXT          0x20000
 | 
				
			||||||
 | 
					#define _FNOINHERIT	0x40000
 | 
				
			||||||
 | 
					#define _FDIRECT        0x80000
 | 
				
			||||||
 | 
					#define _FNOFOLLOW      0x100000
 | 
				
			||||||
 | 
					#define _FDIRECTORY     0x200000
 | 
				
			||||||
 | 
					#define _FEXECSRCH      0x400000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define O_BINARY	_FBINARY
 | 
				
			||||||
 | 
					#define O_TEXT		_FTEXT
 | 
				
			||||||
 | 
					#define O_CLOEXEC	_FNOINHERIT
 | 
				
			||||||
 | 
					#define O_DIRECT        _FDIRECT
 | 
				
			||||||
 | 
					#define O_NOFOLLOW      _FNOFOLLOW
 | 
				
			||||||
 | 
					#define O_DSYNC         _FSYNC
 | 
				
			||||||
 | 
					#define O_RSYNC         _FSYNC
 | 
				
			||||||
 | 
					#define O_DIRECTORY     _FDIRECTORY
 | 
				
			||||||
 | 
					#define O_EXEC          _FEXECSRCH
 | 
				
			||||||
 | 
					#define O_SEARCH        _FEXECSRCH
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Flags that work for fcntl(fd, F_SETFL, FXXXX)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	FAPPEND		_FAPPEND
 | 
				
			||||||
 | 
					#define	FSYNC		_FSYNC
 | 
				
			||||||
 | 
					#define	FASYNC		_FASYNC
 | 
				
			||||||
 | 
					#define	FNBIO		_FNBIO
 | 
				
			||||||
 | 
					#define	FNONBIO		_FNONBLOCK	/* XXX fix to be NONBLOCK everywhere */
 | 
				
			||||||
 | 
					#define	FNDELAY		_FNDELAY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Flags that are disallowed for fcntl's (FCNTLCANT);
 | 
				
			||||||
 | 
					 * used for opens, internal state, or locking.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	FREAD		_FREAD
 | 
				
			||||||
 | 
					#define	FWRITE		_FWRITE
 | 
				
			||||||
 | 
					#define	FMARK		_FMARK
 | 
				
			||||||
 | 
					#define	FDEFER		_FDEFER
 | 
				
			||||||
 | 
					#define	FSHLOCK		_FSHLOCK
 | 
				
			||||||
 | 
					#define	FEXLOCK		_FEXLOCK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The rest of the flags, used only for opens
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	FOPEN		_FOPEN
 | 
				
			||||||
 | 
					#define	FCREAT		_FCREAT
 | 
				
			||||||
 | 
					#define	FTRUNC		_FTRUNC
 | 
				
			||||||
 | 
					#define	FEXCL		_FEXCL
 | 
				
			||||||
 | 
					#define	FNOCTTY		_FNOCTTY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* XXX close on exec request; must match UF_EXCLOSE in user.h */
 | 
				
			||||||
 | 
					#define	FD_CLOEXEC	1	/* posix */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* fcntl(2) requests */
 | 
				
			||||||
 | 
					#define	F_DUPFD		0	/* Duplicate fildes */
 | 
				
			||||||
 | 
					#define	F_GETFD		1	/* Get fildes flags (close on exec) */
 | 
				
			||||||
 | 
					#define	F_SETFD		2	/* Set fildes flags (close on exec) */
 | 
				
			||||||
 | 
					#define	F_GETFL		3	/* Get file flags */
 | 
				
			||||||
 | 
					#define	F_SETFL		4	/* Set file flags */
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					#define	F_GETOWN 	5	/* Get owner - for ASYNC */
 | 
				
			||||||
 | 
					#define	F_SETOWN 	6	/* Set owner - for ASYNC */
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					#define	F_GETLK  	7	/* Get record-locking information */
 | 
				
			||||||
 | 
					#define	F_SETLK  	8	/* Set or Clear a record-lock (Non-Blocking) */
 | 
				
			||||||
 | 
					#define	F_SETLKW 	9	/* Set or Clear a record-lock (Blocking) */
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					#define	F_RGETLK 	10	/* Test a remote lock to see if it is blocked */
 | 
				
			||||||
 | 
					#define	F_RSETLK 	11	/* Set or unlock a remote lock */
 | 
				
			||||||
 | 
					#define	F_CNVT 		12	/* Convert a fhandle to an open fd */
 | 
				
			||||||
 | 
					#define	F_RSETLKW 	13	/* Set or Clear remote record-lock(Blocking) */
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define	F_DUPFD_CLOEXEC	14	/* As F_DUPFD, but set close-on-exec flag */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* fcntl(2) flags (l_type field of flock structure) */
 | 
				
			||||||
 | 
					#define	F_RDLCK		1	/* read lock */
 | 
				
			||||||
 | 
					#define	F_WRLCK		2	/* write lock */
 | 
				
			||||||
 | 
					#define	F_UNLCK		3	/* remove lock(s) */
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					#define	F_UNLKSYS	4	/* remove remote locks for a given system */
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					/* Special descriptor value to denote the cwd in calls to openat(2) etc. */
 | 
				
			||||||
 | 
					#define AT_FDCWD -2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Flag values for faccessat2) et al. */
 | 
				
			||||||
 | 
					#define AT_EACCESS              1
 | 
				
			||||||
 | 
					#define AT_SYMLINK_NOFOLLOW     2
 | 
				
			||||||
 | 
					#define AT_SYMLINK_FOLLOW       4
 | 
				
			||||||
 | 
					#define AT_REMOVEDIR            8
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					/* lock operations for flock(2) */
 | 
				
			||||||
 | 
					#define	LOCK_SH		0x01		/* shared file lock */
 | 
				
			||||||
 | 
					#define	LOCK_EX		0x02		/* exclusive file lock */
 | 
				
			||||||
 | 
					#define	LOCK_NB		0x04		/* don't block when locking */
 | 
				
			||||||
 | 
					#define	LOCK_UN		0x08		/* unlock file */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*#include <sys/stdtypes.h>*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					/* file segment locking set data type - information passed to system by user */
 | 
				
			||||||
 | 
					struct flock {
 | 
				
			||||||
 | 
						short	l_type;		/* F_RDLCK, F_WRLCK, or F_UNLCK */
 | 
				
			||||||
 | 
						short	l_whence;	/* flag to choose starting offset */
 | 
				
			||||||
 | 
						long	l_start;	/* relative offset, in bytes */
 | 
				
			||||||
 | 
						long	l_len;		/* length, in bytes; 0 means lock to EOF */
 | 
				
			||||||
 | 
						short	l_pid;		/* returned with F_GETLK */
 | 
				
			||||||
 | 
						short	l_xxx;		/* reserved for future use */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					/* extended file segment locking set data type */
 | 
				
			||||||
 | 
					struct eflock {
 | 
				
			||||||
 | 
						short	l_type;		/* F_RDLCK, F_WRLCK, or F_UNLCK */
 | 
				
			||||||
 | 
						short	l_whence;	/* flag to choose starting offset */
 | 
				
			||||||
 | 
						long	l_start;	/* relative offset, in bytes */
 | 
				
			||||||
 | 
						long	l_len;		/* length, in bytes; 0 means lock to EOF */
 | 
				
			||||||
 | 
						short	l_pid;		/* returned with F_GETLK */
 | 
				
			||||||
 | 
						short	l_xxx;		/* reserved for future use */
 | 
				
			||||||
 | 
						long	l_rpid;		/* Remote process id wanting this lock */
 | 
				
			||||||
 | 
						long	l_rsys;		/* Remote system id wanting this lock */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/stat.h>		/* sigh. for the mode bits for open/creat */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int open _PARAMS ((const char *, int, ...));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					extern int openat _PARAMS ((int, const char *, int, ...));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					extern int creat _PARAMS ((const char *, mode_t));
 | 
				
			||||||
 | 
					extern int fcntl _PARAMS ((int, int, ...));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					extern int flock _PARAMS ((int, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <sys/time.h>
 | 
				
			||||||
 | 
					extern int futimesat _PARAMS ((int, const char *, const struct timeval *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Provide _<systemcall> prototypes for functions provided by some versions
 | 
				
			||||||
 | 
					   of newlib.  */
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					extern int _open _PARAMS ((const char *, int, ...));
 | 
				
			||||||
 | 
					extern int _fcntl _PARAMS ((int, int, ...));
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					extern int _open64 _PARAMS ((const char *, int, ...));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif	/* !_SYS__DEFAULT_FCNTL_H_ */
 | 
				
			||||||
							
								
								
									
										36
									
								
								libc/xtensa-lx106-elf/include/sys/_intsup.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								libc/xtensa-lx106-elf/include/sys/_intsup.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2004, 2005 by
 | 
				
			||||||
 | 
					 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS__INTSUP_H
 | 
				
			||||||
 | 
					#define _SYS__INTSUP_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ (3, 2)
 | 
				
			||||||
 | 
					/* gcc > 3.2 implicitly defines the values we are interested */
 | 
				
			||||||
 | 
					#define __STDINT_EXP(x) __##x##__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __STDINT_EXP(x) x
 | 
				
			||||||
 | 
					#include <limits.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Check if "long long" is 64bit wide */
 | 
				
			||||||
 | 
					/* Modern GCCs provide __LONG_LONG_MAX__, SUSv3 wants LLONG_MAX */
 | 
				
			||||||
 | 
					#if ( defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) ) \
 | 
				
			||||||
 | 
					  || ( defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) )
 | 
				
			||||||
 | 
					#define __have_longlong64 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Check if "long" is 64bit or 32bit wide */
 | 
				
			||||||
 | 
					#if __STDINT_EXP(LONG_MAX) > 0x7fffffff
 | 
				
			||||||
 | 
					#define __have_long64 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__)
 | 
				
			||||||
 | 
					#define __have_long32 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SYS__INTSUP_H */
 | 
				
			||||||
							
								
								
									
										91
									
								
								libc/xtensa-lx106-elf/include/sys/_types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								libc/xtensa-lx106-elf/include/sys/_types.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,91 @@
 | 
				
			||||||
 | 
					/* ANSI C namespace clean utility typedefs */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This file defines various typedefs needed by the system calls that support
 | 
				
			||||||
 | 
					   the C library.  Basically, they're just the POSIX versions with an '_'
 | 
				
			||||||
 | 
					   prepended.  This file lives in the `sys' directory so targets can provide
 | 
				
			||||||
 | 
					   their own if desired (or they can put target dependant conditionals here).
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_SYS__TYPES_H
 | 
				
			||||||
 | 
					#define _SYS__TYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/_types.h>
 | 
				
			||||||
 | 
					#include <sys/lock.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __off_t_defined
 | 
				
			||||||
 | 
					typedef long _off_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __dev_t_defined
 | 
				
			||||||
 | 
					typedef short __dev_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __uid_t_defined
 | 
				
			||||||
 | 
					typedef unsigned short __uid_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __gid_t_defined
 | 
				
			||||||
 | 
					typedef unsigned short __gid_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __off64_t_defined
 | 
				
			||||||
 | 
					__extension__ typedef long long _off64_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * We need fpos_t for the following, but it doesn't have a leading "_",
 | 
				
			||||||
 | 
					 * so we use _fpos_t instead.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef __fpos_t_defined
 | 
				
			||||||
 | 
					typedef long _fpos_t;		/* XXX must match off_t in <sys/types.h> */
 | 
				
			||||||
 | 
									/* (and must be `long' for now) */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					#ifndef __fpos64_t_defined
 | 
				
			||||||
 | 
					typedef _off64_t _fpos64_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ssize_t_defined
 | 
				
			||||||
 | 
					#ifdef __SIZE_TYPE__
 | 
				
			||||||
 | 
					/* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t.
 | 
				
			||||||
 | 
					   We simply change "unsigned" to "signed" for this single definition
 | 
				
			||||||
 | 
					   to make sure ssize_t and size_t only differ by their signedness. */
 | 
				
			||||||
 | 
					#define unsigned signed
 | 
				
			||||||
 | 
					typedef __SIZE_TYPE__ _ssize_t;
 | 
				
			||||||
 | 
					#undef unsigned
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
 | 
				
			||||||
 | 
					typedef int _ssize_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef long _ssize_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_wint_t
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __mbstate_t_defined
 | 
				
			||||||
 | 
					/* Conversion state information.  */
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int __count;
 | 
				
			||||||
 | 
					  union
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    wint_t __wch;
 | 
				
			||||||
 | 
					    unsigned char __wchb[4];
 | 
				
			||||||
 | 
					  } __value;		/* Value so far.  */
 | 
				
			||||||
 | 
					} _mbstate_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __flock_t_defined
 | 
				
			||||||
 | 
					typedef _LOCK_RECURSIVE_T _flock_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __iconv_t_defined
 | 
				
			||||||
 | 
					/* Iconv descriptor type */
 | 
				
			||||||
 | 
					typedef void *_iconv_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _SYS__TYPES_H */
 | 
				
			||||||
							
								
								
									
										710
									
								
								libc/xtensa-lx106-elf/include/sys/cdefs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										710
									
								
								libc/xtensa-lx106-elf/include/sys/cdefs.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,710 @@
 | 
				
			||||||
 | 
					/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Written 2000 by Werner Almesberger */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1991, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is derived from software contributed to Berkeley by
 | 
				
			||||||
 | 
					 * Berkeley Software Design, Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 | 
				
			||||||
 | 
					 * $FreeBSD$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_SYS_CDEFS_H_
 | 
				
			||||||
 | 
					#define	_SYS_CDEFS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/_default_types.h>
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __PMT(args)	args
 | 
				
			||||||
 | 
					#define __DOTS    	, ...
 | 
				
			||||||
 | 
					#define __THROW
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					# define __ASMNAME(cname)  __XSTRING (__USER_LABEL_PREFIX__) cname
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __ptr_t void *
 | 
				
			||||||
 | 
					#define __long_double_t  long double
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __attribute_malloc__
 | 
				
			||||||
 | 
					#define __attribute_pure__
 | 
				
			||||||
 | 
					#define __attribute_format_strfmon__(a,b)
 | 
				
			||||||
 | 
					#define __flexarr      [0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __BOUNDED_POINTERS__
 | 
				
			||||||
 | 
					# define __bounded      /* nothing */
 | 
				
			||||||
 | 
					# define __unbounded    /* nothing */
 | 
				
			||||||
 | 
					# define __ptrvalue     /* nothing */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Testing against Clang-specific extensions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__has_extension
 | 
				
			||||||
 | 
					#define	__has_extension		__has_feature
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef	__has_feature
 | 
				
			||||||
 | 
					#define	__has_feature(x)	0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef	__has_include
 | 
				
			||||||
 | 
					#define	__has_include(x)	0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef	__has_builtin
 | 
				
			||||||
 | 
					#define	__has_builtin(x)	0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__cplusplus)
 | 
				
			||||||
 | 
					#define	__BEGIN_DECLS	extern "C" {
 | 
				
			||||||
 | 
					#define	__END_DECLS	}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__BEGIN_DECLS
 | 
				
			||||||
 | 
					#define	__END_DECLS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This code has been put in place to help reduce the addition of
 | 
				
			||||||
 | 
					 * compiler specific defines in FreeBSD code.  It helps to aid in
 | 
				
			||||||
 | 
					 * having a compiler-agnostic source tree.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__) || defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC__ >= 3 || defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define __GNUCLIKE_ASM 3
 | 
				
			||||||
 | 
					#define __GNUCLIKE_MATH_BUILTIN_CONSTANTS
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __GNUCLIKE_ASM 2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define __GNUCLIKE___TYPEOF 1
 | 
				
			||||||
 | 
					#define __GNUCLIKE___OFFSETOF 1
 | 
				
			||||||
 | 
					#define __GNUCLIKE___SECTION 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INTEL_COMPILER
 | 
				
			||||||
 | 
					# define __GNUCLIKE_CTOR_SECTION_HANDLING 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __GNUCLIKE_BUILTIN_CONSTANT_P 1
 | 
				
			||||||
 | 
					# if defined(__INTEL_COMPILER) && defined(__cplusplus) \
 | 
				
			||||||
 | 
					    && __INTEL_COMPILER < 800
 | 
				
			||||||
 | 
					#  undef __GNUCLIKE_BUILTIN_CONSTANT_P
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					# define __GNUCLIKE_BUILTIN_VARARGS 1
 | 
				
			||||||
 | 
					# define __GNUCLIKE_BUILTIN_STDARG 1
 | 
				
			||||||
 | 
					# define __GNUCLIKE_BUILTIN_VAALIST 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__)
 | 
				
			||||||
 | 
					# define __GNUC_VA_LIST_COMPATIBILITY 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Compiler memory barriers, specific to gcc and clang.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(__GNUC__)
 | 
				
			||||||
 | 
					#define	__compiler_membar()	__asm __volatile(" " : : : "memory")
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INTEL_COMPILER
 | 
				
			||||||
 | 
					# define __GNUCLIKE_BUILTIN_NEXT_ARG 1
 | 
				
			||||||
 | 
					# define __GNUCLIKE_MATH_BUILTIN_RELOPS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __GNUCLIKE_BUILTIN_MEMCPY 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS_INLINE 1
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS___INLINE 1
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS___INLINE__ 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS___FUNC__ 1
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS_WARNING 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __GNUC__ || __INTEL_COMPILER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
 | 
				
			||||||
 | 
					 * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
 | 
				
			||||||
 | 
					 * The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
 | 
				
			||||||
 | 
					 * mode -- there must be no spaces between its arguments, and for nested
 | 
				
			||||||
 | 
					 * __CONCAT's, all the __CONCAT's must be at the left.  __CONCAT can also
 | 
				
			||||||
 | 
					 * concatenate double-quoted strings produced by the __STRING macro, but
 | 
				
			||||||
 | 
					 * this only works with ANSI C.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * __XSTRING is like __STRING, but it expands any macros in its argument
 | 
				
			||||||
 | 
					 * first.  It is only available with ANSI C.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(__STDC__) || defined(__cplusplus)
 | 
				
			||||||
 | 
					#define	__P(protos)	protos		/* full-blown ANSI C */
 | 
				
			||||||
 | 
					#define	__CONCAT1(x,y)	x ## y
 | 
				
			||||||
 | 
					#define	__CONCAT(x,y)	__CONCAT1(x,y)
 | 
				
			||||||
 | 
					#define	__STRING(x)	#x		/* stringify without expanding x */
 | 
				
			||||||
 | 
					#define	__XSTRING(x)	__STRING(x)	/* expand x, then stringify */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	__const		const		/* define reserved names to standard */
 | 
				
			||||||
 | 
					#define	__signed	signed
 | 
				
			||||||
 | 
					#define	__volatile	volatile
 | 
				
			||||||
 | 
					#if defined(__cplusplus)
 | 
				
			||||||
 | 
					#define	__inline	inline		/* convert to C++ keyword */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if !(defined(__CC_SUPPORTS___INLINE))
 | 
				
			||||||
 | 
					#define	__inline			/* delete GCC keyword */
 | 
				
			||||||
 | 
					#endif /* ! __CC_SUPPORTS___INLINE */
 | 
				
			||||||
 | 
					#endif /* !__cplusplus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else	/* !(__STDC__ || __cplusplus) */
 | 
				
			||||||
 | 
					#define	__P(protos)	()		/* traditional C preprocessor */
 | 
				
			||||||
 | 
					#define	__CONCAT(x,y)	x/**/y
 | 
				
			||||||
 | 
					#define	__STRING(x)	"x"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__CC_SUPPORTS___INLINE)
 | 
				
			||||||
 | 
					#define	__const				/* delete pseudo-ANSI C keywords */
 | 
				
			||||||
 | 
					#define	__inline
 | 
				
			||||||
 | 
					#define	__signed
 | 
				
			||||||
 | 
					#define	__volatile
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * In non-ANSI C environments, new programs will want ANSI-only C keywords
 | 
				
			||||||
 | 
					 * deleted from the program and old programs will want them left alone.
 | 
				
			||||||
 | 
					 * When using a compiler other than gcc, programs using the ANSI C keywords
 | 
				
			||||||
 | 
					 * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
 | 
				
			||||||
 | 
					 * When using "gcc -traditional", we assume that this is the intent; if
 | 
				
			||||||
 | 
					 * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef	NO_ANSI_KEYWORDS
 | 
				
			||||||
 | 
					#define	const				/* delete ANSI C keywords */
 | 
				
			||||||
 | 
					#define	inline
 | 
				
			||||||
 | 
					#define	signed
 | 
				
			||||||
 | 
					#define	volatile
 | 
				
			||||||
 | 
					#endif	/* !NO_ANSI_KEYWORDS */
 | 
				
			||||||
 | 
					#endif	/* !__CC_SUPPORTS___INLINE */
 | 
				
			||||||
 | 
					#endif	/* !(__STDC__ || __cplusplus) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Compiler-dependent macros to help declare dead (non-returning) and
 | 
				
			||||||
 | 
					 * pure (no side effects) functions, and unused variables.  They are
 | 
				
			||||||
 | 
					 * null except for versions of gcc that are known to support the features
 | 
				
			||||||
 | 
					 * properly (old versions of gcc-2 supported the dead and pure features
 | 
				
			||||||
 | 
					 * in a different (wrong) way).  If we do not provide an implementation
 | 
				
			||||||
 | 
					 * for a given compiler, let the compile fail if it is told to use
 | 
				
			||||||
 | 
					 * a feature that we cannot live without.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef lint
 | 
				
			||||||
 | 
					#define	__dead2
 | 
				
			||||||
 | 
					#define	__pure2
 | 
				
			||||||
 | 
					#define	__unused
 | 
				
			||||||
 | 
					#define	__packed
 | 
				
			||||||
 | 
					#define	__aligned(x)
 | 
				
			||||||
 | 
					#define	__section(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ__(2, 5) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__dead2
 | 
				
			||||||
 | 
					#define	__pure2
 | 
				
			||||||
 | 
					#define	__unused
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__dead2		__attribute__((__noreturn__))
 | 
				
			||||||
 | 
					#define	__pure2		__attribute__((__const__))
 | 
				
			||||||
 | 
					#define	__unused
 | 
				
			||||||
 | 
					/* XXX Find out what to do for __packed, __aligned and __section */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(2, 7)
 | 
				
			||||||
 | 
					#define	__dead2		__attribute__((__noreturn__))
 | 
				
			||||||
 | 
					#define	__pure2		__attribute__((__const__))
 | 
				
			||||||
 | 
					#define	__unused	__attribute__((__unused__))
 | 
				
			||||||
 | 
					#define	__used		__attribute__((__used__))
 | 
				
			||||||
 | 
					#define	__packed	__attribute__((__packed__))
 | 
				
			||||||
 | 
					#define	__aligned(x)	__attribute__((__aligned__(x)))
 | 
				
			||||||
 | 
					#define	__section(x)	__attribute__((__section__(x)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define __dead2		__attribute__((__noreturn__))
 | 
				
			||||||
 | 
					#define __pure2		__attribute__((__const__))
 | 
				
			||||||
 | 
					#define __unused	__attribute__((__unused__))
 | 
				
			||||||
 | 
					#define __used		__attribute__((__used__))
 | 
				
			||||||
 | 
					#define __packed	__attribute__((__packed__))
 | 
				
			||||||
 | 
					#define __aligned(x)	__attribute__((__aligned__(x)))
 | 
				
			||||||
 | 
					#define __section(x)	__attribute__((__section__(x)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ__(2, 95)
 | 
				
			||||||
 | 
					#define	__alignof(x)	__offsetof(struct { char __a; x __b; }, __b)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Keywords added in C11.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__has_extension(c_alignas)
 | 
				
			||||||
 | 
					#if (defined(__cplusplus) && __cplusplus >= 201103L) || \
 | 
				
			||||||
 | 
					    __has_extension(cxx_alignas)
 | 
				
			||||||
 | 
					#define	_Alignas(x)		alignas(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* XXX: Only emulates _Alignas(constant-expression); not _Alignas(type-name). */
 | 
				
			||||||
 | 
					#define	_Alignas(x)		__aligned(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__cplusplus) && __cplusplus >= 201103L
 | 
				
			||||||
 | 
					#define	_Alignof(x)		alignof(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_Alignof(x)		__alignof(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * No native support for _Atomic(). Place object in structure to prevent
 | 
				
			||||||
 | 
					 * most forms of direct non-atomic access.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_Atomic(T)		struct { T volatile __val; }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__cplusplus) && __cplusplus >= 201103L
 | 
				
			||||||
 | 
					#define	_Noreturn		[[noreturn]]
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_Noreturn		__dead2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(4, 6) && !defined(__cplusplus)
 | 
				
			||||||
 | 
					/*  Do nothing: _Static_assert() works as per C11 */
 | 
				
			||||||
 | 
					#elif !__has_extension(c_static_assert)
 | 
				
			||||||
 | 
					#if (defined(__cplusplus) && __cplusplus >= 201103L) || \
 | 
				
			||||||
 | 
					    __has_extension(cxx_static_assert)
 | 
				
			||||||
 | 
					#define	_Static_assert(x, y)	static_assert(x, y)
 | 
				
			||||||
 | 
					#elif defined(__COUNTER__)
 | 
				
			||||||
 | 
					#define	_Static_assert(x, y)	__Static_assert(x, __COUNTER__)
 | 
				
			||||||
 | 
					#define	__Static_assert(x, y)	___Static_assert(x, y)
 | 
				
			||||||
 | 
					#define	___Static_assert(x, y)	typedef char __assert_ ## y[(x) ? 1 : -1]
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_Static_assert(x, y)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__has_extension(c_thread_local)
 | 
				
			||||||
 | 
					/* XXX: Change this to test against C++11 when clang in base supports it. */
 | 
				
			||||||
 | 
					#if /* (defined(__cplusplus) && __cplusplus >= 201103L) || */ \
 | 
				
			||||||
 | 
					    __has_extension(cxx_thread_local)
 | 
				
			||||||
 | 
					#define	_Thread_local		thread_local
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_Thread_local		__thread
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __STDC_VERSION__ || __STDC_VERSION__ < 201112L */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Emulation of C11 _Generic().  Unlike the previously defined C11
 | 
				
			||||||
 | 
					 * keywords, it is not possible to implement this using exactly the same
 | 
				
			||||||
 | 
					 * syntax.  Therefore implement something similar under the name
 | 
				
			||||||
 | 
					 * __generic().  Unlike _Generic(), this macro can only distinguish
 | 
				
			||||||
 | 
					 * between a single type, so it requires nested invocations to
 | 
				
			||||||
 | 
					 * distinguish multiple cases.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
 | 
				
			||||||
 | 
					#define	__generic(expr, t, yes, no)					\
 | 
				
			||||||
 | 
						_Generic(expr, t: yes, default: no)
 | 
				
			||||||
 | 
					#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus)
 | 
				
			||||||
 | 
					#define	__generic(expr, t, yes, no)					\
 | 
				
			||||||
 | 
						__builtin_choose_expr(						\
 | 
				
			||||||
 | 
						    __builtin_types_compatible_p(__typeof(expr), t), yes, no)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(2, 96)
 | 
				
			||||||
 | 
					#define	__malloc_like	__attribute__((__malloc__))
 | 
				
			||||||
 | 
					#define	__pure		__attribute__((__pure__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__malloc_like
 | 
				
			||||||
 | 
					#define	__pure
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 1) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
 | 
				
			||||||
 | 
					#define	__always_inline	__attribute__((__always_inline__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__always_inline
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 1)
 | 
				
			||||||
 | 
					#define	__noinline	__attribute__ ((__noinline__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__noinline
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 3)
 | 
				
			||||||
 | 
					#define __nonnull(x)	__attribute__((__nonnull__(x)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __nonnull(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 4)
 | 
				
			||||||
 | 
					#define	__fastcall	__attribute__((__fastcall__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__fastcall
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(4, 1)
 | 
				
			||||||
 | 
					#define	__returns_twice	__attribute__((__returns_twice__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__returns_twice
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* XXX: should use `#if __STDC_VERSION__ < 199901'. */
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__func__	NULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * GCC 2.95 provides `__restrict' as an extension to C90 to support the
 | 
				
			||||||
 | 
					 * C99-specific `restrict' type qualifier.  We happen to use `__restrict' as
 | 
				
			||||||
 | 
					 * a way to define the `restrict' type qualifier without disturbing older
 | 
				
			||||||
 | 
					 * software that is unaware of C99 keywords.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95)
 | 
				
			||||||
 | 
					#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 || defined(lint)
 | 
				
			||||||
 | 
					#define	__restrict
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__restrict	restrict
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * GNU C version 2.96 adds explicit branch prediction so that
 | 
				
			||||||
 | 
					 * the CPU back-end can hint the processor and also so that
 | 
				
			||||||
 | 
					 * code blocks can be reordered such that the predicted path
 | 
				
			||||||
 | 
					 * sees a more linear flow, thus improving cache behavior, etc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The following two macros provide us with a way to utilize this
 | 
				
			||||||
 | 
					 * compiler feature.  Use __predict_true() if you expect the expression
 | 
				
			||||||
 | 
					 * to evaluate to true, and __predict_false() if you expect the
 | 
				
			||||||
 | 
					 * expression to evaluate to false.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A few notes about usage:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	* Generally, __predict_false() error condition checks (unless
 | 
				
			||||||
 | 
					 *	  you have some _strong_ reason to do otherwise, in which case
 | 
				
			||||||
 | 
					 *	  document it), and/or __predict_true() `no-error' condition
 | 
				
			||||||
 | 
					 *	  checks, assuming you want to optimize for the no-error case.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	* Other than that, if you don't know the likelihood of a test
 | 
				
			||||||
 | 
					 *	  succeeding from empirical or other `hard' evidence, don't
 | 
				
			||||||
 | 
					 *	  make predictions.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	* These are meant to be used in places that are run `a lot'.
 | 
				
			||||||
 | 
					 *	  It is wasteful to make predictions in code that is run
 | 
				
			||||||
 | 
					 *	  seldomly (e.g. at subsystem initialization time) as the
 | 
				
			||||||
 | 
					 *	  basic block reordering that this affects can often generate
 | 
				
			||||||
 | 
					 *	  larger code.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(2, 96)
 | 
				
			||||||
 | 
					#define __predict_true(exp)     __builtin_expect((exp), 1)
 | 
				
			||||||
 | 
					#define __predict_false(exp)    __builtin_expect((exp), 0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __predict_true(exp)     (exp)
 | 
				
			||||||
 | 
					#define __predict_false(exp)    (exp)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(4, 2)
 | 
				
			||||||
 | 
					#define	__hidden	__attribute__((__visibility__("hidden")))
 | 
				
			||||||
 | 
					#define	__exported	__attribute__((__visibility__("default")))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__hidden
 | 
				
			||||||
 | 
					#define	__exported
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __offsetof(type, field)	offsetof(type, field)
 | 
				
			||||||
 | 
					#define	__rangeof(type, start, end) \
 | 
				
			||||||
 | 
						(__offsetof(type, end) - __offsetof(type, start))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Given the pointer x to the member m of the struct s, return
 | 
				
			||||||
 | 
					 * a pointer to the containing structure.  When using GCC, we first
 | 
				
			||||||
 | 
					 * assign pointer x to a local variable, to check that its type is
 | 
				
			||||||
 | 
					 * compatible with member m.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 1)
 | 
				
			||||||
 | 
					#define	__containerof(x, s, m) ({					\
 | 
				
			||||||
 | 
						const volatile __typeof__(((s *)0)->m) *__x = (x);		\
 | 
				
			||||||
 | 
						__DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__containerof(x, s, m)						\
 | 
				
			||||||
 | 
						__DEQUALIFY(s *, (const volatile char *)(x) - __offsetof(s, m))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Compiler-dependent macros to declare that functions take printf-like
 | 
				
			||||||
 | 
					 * or scanf-like arguments.  They are null except for versions of gcc
 | 
				
			||||||
 | 
					 * that are known to support the features properly (old versions of gcc-2
 | 
				
			||||||
 | 
					 * didn't permit keeping the keywords out of the application namespace).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__printflike(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#define	__scanflike(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#define	__format_arg(fmtarg)
 | 
				
			||||||
 | 
					#define	__strfmonlike(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#define	__strftimelike(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__printflike(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#define	__scanflike(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__scanf__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#define	__format_arg(fmtarg)	__attribute__((__format_arg__ (fmtarg)))
 | 
				
			||||||
 | 
					#define	__strfmonlike(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__strfmon__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#define	__strftimelike(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__strftime__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */
 | 
				
			||||||
 | 
					#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 300001 && \
 | 
				
			||||||
 | 
					    defined(__GNUC__) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__printf0like(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__printf0like(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__) || defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#ifndef __INTEL_COMPILER
 | 
				
			||||||
 | 
					#define	__strong_reference(sym,aliassym)	\
 | 
				
			||||||
 | 
						extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __ELF__
 | 
				
			||||||
 | 
					#ifdef __STDC__
 | 
				
			||||||
 | 
					#define	__weak_reference(sym,alias)	\
 | 
				
			||||||
 | 
						__asm__(".weak " #alias);	\
 | 
				
			||||||
 | 
						__asm__(".equ "  #alias ", " #sym)
 | 
				
			||||||
 | 
					#define	__warn_references(sym,msg)	\
 | 
				
			||||||
 | 
						__asm__(".section .gnu.warning." #sym);	\
 | 
				
			||||||
 | 
						__asm__(".asciz \"" msg "\"");	\
 | 
				
			||||||
 | 
						__asm__(".previous")
 | 
				
			||||||
 | 
					#define	__sym_compat(sym,impl,verid)	\
 | 
				
			||||||
 | 
						__asm__(".symver " #impl ", " #sym "@" #verid)
 | 
				
			||||||
 | 
					#define	__sym_default(sym,impl,verid)	\
 | 
				
			||||||
 | 
						__asm__(".symver " #impl ", " #sym "@@" #verid)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__weak_reference(sym,alias)	\
 | 
				
			||||||
 | 
						__asm__(".weak alias");		\
 | 
				
			||||||
 | 
						__asm__(".equ alias, sym")
 | 
				
			||||||
 | 
					#define	__warn_references(sym,msg)	\
 | 
				
			||||||
 | 
						__asm__(".section .gnu.warning.sym"); \
 | 
				
			||||||
 | 
						__asm__(".asciz \"msg\"");	\
 | 
				
			||||||
 | 
						__asm__(".previous")
 | 
				
			||||||
 | 
					#define	__sym_compat(sym,impl,verid)	\
 | 
				
			||||||
 | 
						__asm__(".symver impl, sym@verid")
 | 
				
			||||||
 | 
					#define	__sym_default(impl,sym,verid)	\
 | 
				
			||||||
 | 
						__asm__(".symver impl, sym@@verid")
 | 
				
			||||||
 | 
					#endif	/* __STDC__ */
 | 
				
			||||||
 | 
					#else	/* !__ELF__ */
 | 
				
			||||||
 | 
					#ifdef __STDC__
 | 
				
			||||||
 | 
					#define	__weak_reference(sym,alias)	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_" #alias "\",11,0,0,0");	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_" #sym "\",1,0,0,0")
 | 
				
			||||||
 | 
					#define	__warn_references(sym,msg)	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"" msg "\",30,0,0,0");		\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_" #sym "\",1,0,0,0")
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__weak_reference(sym,alias)	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_/**/alias\",11,0,0,0");	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_/**/sym\",1,0,0,0")
 | 
				
			||||||
 | 
					#define	__warn_references(sym,msg)	\
 | 
				
			||||||
 | 
						__asm__(".stabs msg,30,0,0,0");			\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_/**/sym\",1,0,0,0")
 | 
				
			||||||
 | 
					#endif	/* __STDC__ */
 | 
				
			||||||
 | 
					#endif	/* __ELF__ */
 | 
				
			||||||
 | 
					#endif	/* __GNUC__ || __INTEL_COMPILER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__FBSDID
 | 
				
			||||||
 | 
					#define	__FBSDID(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__RCSID
 | 
				
			||||||
 | 
					#define	__RCSID(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__RCSID_SOURCE
 | 
				
			||||||
 | 
					#define	__RCSID_SOURCE(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__SCCSID
 | 
				
			||||||
 | 
					#define	__SCCSID(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__COPYRIGHT
 | 
				
			||||||
 | 
					#define	__COPYRIGHT(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__DECONST
 | 
				
			||||||
 | 
					#define	__DECONST(type, var)	((type)(__uintptr_t)(const void *)(var))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__DEVOLATILE
 | 
				
			||||||
 | 
					#define	__DEVOLATILE(type, var)	((type)(__uintptr_t)(volatile void *)(var))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__DEQUALIFY
 | 
				
			||||||
 | 
					#define	__DEQUALIFY(type, var)	((type)(__uintptr_t)(const volatile void *)(var))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * The following definitions are an extension of the behavior originally
 | 
				
			||||||
 | 
					 * implemented in <sys/_posix.h>, but with a different level of granularity.
 | 
				
			||||||
 | 
					 * POSIX.1 requires that the macros we test be defined before any standard
 | 
				
			||||||
 | 
					 * header file is included.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Here's a quick run-down of the versions:
 | 
				
			||||||
 | 
					 *  defined(_POSIX_SOURCE)		1003.1-1988
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 1		1003.1-1990
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 2		1003.2-1992 C Language Binding Option
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 199309		1003.1b-1993
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 199506		1003.1c-1995, 1003.1i-1995,
 | 
				
			||||||
 | 
					 *					and the omnibus ISO/IEC 9945-1: 1996
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 200112		1003.1-2001
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 200809		1003.1-2008
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * In addition, the X/Open Portability Guide, which is now the Single UNIX
 | 
				
			||||||
 | 
					 * Specification, defines a feature-test macro which indicates the version of
 | 
				
			||||||
 | 
					 * that specification, and which subsumes _POSIX_C_SOURCE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Our macros begin with two underscores to avoid namespace screwage.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
 | 
				
			||||||
 | 
					#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE		/* Probably illegal, but beyond caring now. */
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		199009
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */
 | 
				
			||||||
 | 
					#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		199209
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
 | 
				
			||||||
 | 
					#ifdef _XOPEN_SOURCE
 | 
				
			||||||
 | 
					#if _XOPEN_SOURCE - 0 >= 700
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		700
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		200809
 | 
				
			||||||
 | 
					#elif _XOPEN_SOURCE - 0 >= 600
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		600
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		200112
 | 
				
			||||||
 | 
					#elif _XOPEN_SOURCE - 0 >= 500
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		500
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		199506
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Deal with all versions of POSIX.  The ordering relative to the tests above is
 | 
				
			||||||
 | 
					 * important.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		198808
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#if _POSIX_C_SOURCE >= 200809
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		200809
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1999
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 200112
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		200112
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1999
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 199506
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		199506
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 199309
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		199309
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 199209
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		199209
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 199009
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		199009
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		198808
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		0
 | 
				
			||||||
 | 
					#endif /* _POSIX_C_SOURCE */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Deal with _ANSI_SOURCE:
 | 
				
			||||||
 | 
					 * If it is defined, and no other compilation environment is explicitly
 | 
				
			||||||
 | 
					 * requested, then define our internal feature-test macros to zero.  This
 | 
				
			||||||
 | 
					 * makes no difference to the preprocessor (undefined symbols in preprocessing
 | 
				
			||||||
 | 
					 * expressions are defined to have value zero), but makes it more convenient for
 | 
				
			||||||
 | 
					 * a test program to print out the values.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * If a program mistakenly defines _ANSI_SOURCE and some other macro such as
 | 
				
			||||||
 | 
					 * _POSIX_C_SOURCE, we will assume that it wants the broader compilation
 | 
				
			||||||
 | 
					 * environment (and in fact we will never get here).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(_ANSI_SOURCE)	/* Hide almost everything. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#elif defined(_C99_SOURCE)	/* Localism to specify strict C99 env. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1999
 | 
				
			||||||
 | 
					#elif defined(_C11_SOURCE)	/* Localism to specify strict C11 env. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		2011
 | 
				
			||||||
 | 
					#elif defined(_GNU_SOURCE)	/* Everything and the kitchen sink. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		200809
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		700
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		1
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		2011
 | 
				
			||||||
 | 
					#define	__GNU_VISIBLE		1
 | 
				
			||||||
 | 
					#else				/* Default: everything except __GNU_VISIBLE. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		200809
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		700
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		1
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		2011
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_SYS_CDEFS_H_ */
 | 
				
			||||||
							
								
								
									
										291
									
								
								libc/xtensa-lx106-elf/include/sys/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										291
									
								
								libc/xtensa-lx106-elf/include/sys/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,291 @@
 | 
				
			||||||
 | 
					#ifndef __SYS_CONFIG_H__
 | 
				
			||||||
 | 
					#define __SYS_CONFIG_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>  /* floating point macros */
 | 
				
			||||||
 | 
					#include <sys/features.h>	/* POSIX defs */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __aarch64__
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* exceptions first */
 | 
				
			||||||
 | 
					#if defined(__H8500__) || defined(__W65__)
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					/* ???  This conditional is true for the h8500 and the w65, defining H8300
 | 
				
			||||||
 | 
					   in those cases probably isn't the right thing to do.  */
 | 
				
			||||||
 | 
					#define H8300 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 16 bit integer machines */
 | 
				
			||||||
 | 
					#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX 32767
 | 
				
			||||||
 | 
					#define UINT_MAX 65535
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__)
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#define H8300 1
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
 | 
				
			||||||
 | 
					#ifndef __INT32__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS      
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX 32767
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#else /* INT32 */
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX 2147483647
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#endif /* INT32 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* CR16C */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__)
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __W65__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__D10V__)
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__m68k__) || defined(__mc68000__)
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE _ssize_t
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___AM29K__
 | 
				
			||||||
 | 
					#define _FLOAT_RET double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					#ifndef __unix__
 | 
				
			||||||
 | 
					/* in other words, go32 */
 | 
				
			||||||
 | 
					#define _FLOAT_RET double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__linux__) || defined(__RDOS__)
 | 
				
			||||||
 | 
					/* we want the reentrancy structure to be returned by a function */
 | 
				
			||||||
 | 
					#define __DYNAMIC_REENT__
 | 
				
			||||||
 | 
					#define HAVE_GETDATE
 | 
				
			||||||
 | 
					#define _HAVE_SYSTYPES
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE _ssize_t
 | 
				
			||||||
 | 
					#define __LARGE64_FILES 1
 | 
				
			||||||
 | 
					/* we use some glibc header files so turn on glibc large file feature */
 | 
				
			||||||
 | 
					#define _LARGEFILE64_SOURCE 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mn10200__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __AVR__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __v850
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
 | 
				
			||||||
 | 
					#if defined(__PPC__)
 | 
				
			||||||
 | 
					#if defined(_CALL_SYSV)
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __SPE__
 | 
				
			||||||
 | 
					#define _LONG_DOUBLE double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Configure small REENT structure for Xilinx MicroBlaze platforms */
 | 
				
			||||||
 | 
					#if defined (__MICROBLAZE__)
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* Xilinx XMK uses Unix98 mutex */
 | 
				
			||||||
 | 
					#ifdef __XMK__
 | 
				
			||||||
 | 
					#define _UNIX98_THREAD_MUTEX_ATTRIBUTES
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mips__) && !defined(__rtems__)
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __xstormy16__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT 8
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#define __BUFSIZ__ 16
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined __MSP430__
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MSP430X_LARGE__
 | 
				
			||||||
 | 
					#define _POINTER_INT long
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _POINTER_INT int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m32c__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT 8
 | 
				
			||||||
 | 
					#if defined(__r8c_cpu__) || defined(__m16c_cpu__)
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _POINTER_INT long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define __BUFSIZ__ 16
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif /* __m32c__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SPU__
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT 16
 | 
				
			||||||
 | 
					#define __CUSTOM_FILE_IO__
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __XTENSA__
 | 
				
			||||||
 | 
					#include <xtensa/config/core-isa.h>
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT ((XCHAL_DATA_WIDTH) < 16 ? 16 : (XCHAL_DATA_WIDTH))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This block should be kept in sync with GCC's limits.h.  The point
 | 
				
			||||||
 | 
					   of having these definitions here is to not include limits.h, which
 | 
				
			||||||
 | 
					   would pollute the user namespace, while still using types of the
 | 
				
			||||||
 | 
					   the correct widths when deciding how to define __int32_t and
 | 
				
			||||||
 | 
					   __int64_t.  */
 | 
				
			||||||
 | 
					#ifndef __INT_MAX__
 | 
				
			||||||
 | 
					# ifdef INT_MAX
 | 
				
			||||||
 | 
					#  define __INT_MAX__ INT_MAX
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __INT_MAX__ 2147483647
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __LONG_MAX__
 | 
				
			||||||
 | 
					# ifdef LONG_MAX
 | 
				
			||||||
 | 
					#  define __LONG_MAX__ LONG_MAX
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \
 | 
				
			||||||
 | 
					      || defined (__sparcv9)
 | 
				
			||||||
 | 
					#   define __LONG_MAX__ 9223372036854775807L
 | 
				
			||||||
 | 
					#  else
 | 
				
			||||||
 | 
					#   define __LONG_MAX__ 2147483647L
 | 
				
			||||||
 | 
					#  endif /* __alpha__ || sparc64 */
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* End of block that should be kept in sync with GCC's limits.h.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _POINTER_INT
 | 
				
			||||||
 | 
					#define _POINTER_INT long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __frv__
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#undef __RAND_MAX
 | 
				
			||||||
 | 
					#if __INT_MAX__ == 32767
 | 
				
			||||||
 | 
					#define __RAND_MAX 32767
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __RAND_MAX 0x7fffffff
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#include <cygwin/config.h>
 | 
				
			||||||
 | 
					#if !defined (__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L)
 | 
				
			||||||
 | 
					#define __USE_XOPEN2K 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#define __FILENAME_MAX__ 255
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE _ssize_t
 | 
				
			||||||
 | 
					#define __DYNAMIC_REENT__
 | 
				
			||||||
 | 
					#define _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __EXPORT
 | 
				
			||||||
 | 
					#define __EXPORT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __IMPORT
 | 
				
			||||||
 | 
					#define __IMPORT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define return type of read/write routines.  In POSIX, the return type
 | 
				
			||||||
 | 
					   for read()/write() is "ssize_t" but legacy newlib code has been using
 | 
				
			||||||
 | 
					   "int" for some time.  If not specified, "int" is defaulted.  */
 | 
				
			||||||
 | 
					#ifndef _READ_WRITE_RETURN_TYPE
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* Define `count' parameter of read/write routines.  In POSIX, the `count'
 | 
				
			||||||
 | 
					   parameter is "size_t" but legacy newlib code has been using "int" for some
 | 
				
			||||||
 | 
					   time.  If not specified, "int" is defaulted.  */
 | 
				
			||||||
 | 
					#ifndef _READ_WRITE_BUFSIZE_TYPE
 | 
				
			||||||
 | 
					#define _READ_WRITE_BUFSIZE_TYPE int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __WCHAR_MAX__
 | 
				
			||||||
 | 
					#if __INT_MAX__ == 32767 || defined (_WIN32)
 | 
				
			||||||
 | 
					#define __WCHAR_MAX__ 0xffffu
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* See if small reent asked for at configuration time and
 | 
				
			||||||
 | 
					   is not chosen by the platform by default.  */
 | 
				
			||||||
 | 
					#ifdef _WANT_REENT_SMALL
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended
 | 
				
			||||||
 | 
					   charsets.  The extended charsets add a few functions and a couple
 | 
				
			||||||
 | 
					   of tables of a few K each. */
 | 
				
			||||||
 | 
					#ifdef _MB_EXTENDED_CHARSETS_ALL
 | 
				
			||||||
 | 
					#define _MB_EXTENDED_CHARSETS_ISO 1
 | 
				
			||||||
 | 
					#define _MB_EXTENDED_CHARSETS_WINDOWS 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __SYS_CONFIG_H__ */
 | 
				
			||||||
							
								
								
									
										2
									
								
								libc/xtensa-lx106-elf/include/sys/custom_file.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								libc/xtensa-lx106-elf/include/sys/custom_file.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					#error System-specific custom_file.h is missing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								libc/xtensa-lx106-elf/include/sys/dir.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								libc/xtensa-lx106-elf/include/sys/dir.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					/* BSD predecessor of POSIX.1 <dirent.h> and struct dirent */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_DIR_H_
 | 
				
			||||||
 | 
					#define _SYS_DIR_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <dirent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define direct dirent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /*_SYS_DIR_H_*/
 | 
				
			||||||
							
								
								
									
										13
									
								
								libc/xtensa-lx106-elf/include/sys/dirent.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								libc/xtensa-lx106-elf/include/sys/dirent.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					/* <dirent.h> includes <sys/dirent.h>, which is this file.  On a
 | 
				
			||||||
 | 
					   system which supports <dirent.h>, this file is overridden by
 | 
				
			||||||
 | 
					   dirent.h in the libc/sys/.../sys directory.  On a system which does
 | 
				
			||||||
 | 
					   not support <dirent.h>, we will get this file which uses #error to force
 | 
				
			||||||
 | 
					   an error.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#error "<dirent.h> not supported"
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										192
									
								
								libc/xtensa-lx106-elf/include/sys/errno.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										192
									
								
								libc/xtensa-lx106-elf/include/sys/errno.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,192 @@
 | 
				
			||||||
 | 
					/* errno is not a global variable, because that would make using it
 | 
				
			||||||
 | 
					   non-reentrant.  Instead, its address is returned by the function
 | 
				
			||||||
 | 
					   __errno.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_ERRNO_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _SYS_ERRNO_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#define errno (*__errno())
 | 
				
			||||||
 | 
					extern int *__errno _PARAMS ((void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Please don't use these variables directly.
 | 
				
			||||||
 | 
					   Use strerror instead. */
 | 
				
			||||||
 | 
					extern __IMPORT _CONST char * _CONST _sys_errlist[];
 | 
				
			||||||
 | 
					extern __IMPORT int _sys_nerr;
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					extern __IMPORT const char * const sys_errlist[];
 | 
				
			||||||
 | 
					extern __IMPORT int sys_nerr;
 | 
				
			||||||
 | 
					extern __IMPORT char *program_invocation_name;
 | 
				
			||||||
 | 
					extern __IMPORT char *program_invocation_short_name;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __errno_r(ptr) ((ptr)->_errno)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	EPERM 1		/* Not owner */
 | 
				
			||||||
 | 
					#define	ENOENT 2	/* No such file or directory */
 | 
				
			||||||
 | 
					#define	ESRCH 3		/* No such process */
 | 
				
			||||||
 | 
					#define	EINTR 4		/* Interrupted system call */
 | 
				
			||||||
 | 
					#define	EIO 5		/* I/O error */
 | 
				
			||||||
 | 
					#define	ENXIO 6		/* No such device or address */
 | 
				
			||||||
 | 
					#define	E2BIG 7		/* Arg list too long */
 | 
				
			||||||
 | 
					#define	ENOEXEC 8	/* Exec format error */
 | 
				
			||||||
 | 
					#define	EBADF 9		/* Bad file number */
 | 
				
			||||||
 | 
					#define	ECHILD 10	/* No children */
 | 
				
			||||||
 | 
					#define	EAGAIN 11	/* No more processes */
 | 
				
			||||||
 | 
					#define	ENOMEM 12	/* Not enough space */
 | 
				
			||||||
 | 
					#define	EACCES 13	/* Permission denied */
 | 
				
			||||||
 | 
					#define	EFAULT 14	/* Bad address */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define	ENOTBLK 15	/* Block device required */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	EBUSY 16	/* Device or resource busy */
 | 
				
			||||||
 | 
					#define	EEXIST 17	/* File exists */
 | 
				
			||||||
 | 
					#define	EXDEV 18	/* Cross-device link */
 | 
				
			||||||
 | 
					#define	ENODEV 19	/* No such device */
 | 
				
			||||||
 | 
					#define	ENOTDIR 20	/* Not a directory */
 | 
				
			||||||
 | 
					#define	EISDIR 21	/* Is a directory */
 | 
				
			||||||
 | 
					#define	EINVAL 22	/* Invalid argument */
 | 
				
			||||||
 | 
					#define	ENFILE 23	/* Too many open files in system */
 | 
				
			||||||
 | 
					#define	EMFILE 24	/* File descriptor value too large */
 | 
				
			||||||
 | 
					#define	ENOTTY 25	/* Not a character device */
 | 
				
			||||||
 | 
					#define	ETXTBSY 26	/* Text file busy */
 | 
				
			||||||
 | 
					#define	EFBIG 27	/* File too large */
 | 
				
			||||||
 | 
					#define	ENOSPC 28	/* No space left on device */
 | 
				
			||||||
 | 
					#define	ESPIPE 29	/* Illegal seek */
 | 
				
			||||||
 | 
					#define	EROFS 30	/* Read-only file system */
 | 
				
			||||||
 | 
					#define	EMLINK 31	/* Too many links */
 | 
				
			||||||
 | 
					#define	EPIPE 32	/* Broken pipe */
 | 
				
			||||||
 | 
					#define	EDOM 33		/* Mathematics argument out of domain of function */
 | 
				
			||||||
 | 
					#define	ERANGE 34	/* Result too large */
 | 
				
			||||||
 | 
					#define	ENOMSG 35	/* No message of desired type */
 | 
				
			||||||
 | 
					#define	EIDRM 36	/* Identifier removed */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define	ECHRNG 37	/* Channel number out of range */
 | 
				
			||||||
 | 
					#define	EL2NSYNC 38	/* Level 2 not synchronized */
 | 
				
			||||||
 | 
					#define	EL3HLT 39	/* Level 3 halted */
 | 
				
			||||||
 | 
					#define	EL3RST 40	/* Level 3 reset */
 | 
				
			||||||
 | 
					#define	ELNRNG 41	/* Link number out of range */
 | 
				
			||||||
 | 
					#define	EUNATCH 42	/* Protocol driver not attached */
 | 
				
			||||||
 | 
					#define	ENOCSI 43	/* No CSI structure available */
 | 
				
			||||||
 | 
					#define	EL2HLT 44	/* Level 2 halted */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	EDEADLK 45	/* Deadlock */
 | 
				
			||||||
 | 
					#define	ENOLCK 46	/* No lock */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define EBADE 50	/* Invalid exchange */
 | 
				
			||||||
 | 
					#define EBADR 51	/* Invalid request descriptor */
 | 
				
			||||||
 | 
					#define EXFULL 52	/* Exchange full */
 | 
				
			||||||
 | 
					#define ENOANO 53	/* No anode */
 | 
				
			||||||
 | 
					#define EBADRQC 54	/* Invalid request code */
 | 
				
			||||||
 | 
					#define EBADSLT 55	/* Invalid slot */
 | 
				
			||||||
 | 
					#define EDEADLOCK 56	/* File locking deadlock error */
 | 
				
			||||||
 | 
					#define EBFONT 57	/* Bad font file fmt */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ENOSTR 60	/* Not a stream */
 | 
				
			||||||
 | 
					#define ENODATA 61	/* No data (for no delay io) */
 | 
				
			||||||
 | 
					#define ETIME 62	/* Stream ioctl timeout */
 | 
				
			||||||
 | 
					#define ENOSR 63	/* No stream resources */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ENONET 64	/* Machine is not on the network */
 | 
				
			||||||
 | 
					#define ENOPKG 65	/* Package not installed */
 | 
				
			||||||
 | 
					#define EREMOTE 66	/* The object is remote */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ENOLINK 67	/* Virtual circuit is gone */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define EADV 68		/* Advertise error */
 | 
				
			||||||
 | 
					#define ESRMNT 69	/* Srmount error */
 | 
				
			||||||
 | 
					#define	ECOMM 70	/* Communication error on send */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EPROTO 71	/* Protocol error */
 | 
				
			||||||
 | 
					#define	EMULTIHOP 74	/* Multihop attempted */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define	ELBIN 75	/* Inode is remote (not really error) */
 | 
				
			||||||
 | 
					#define	EDOTDOT 76	/* Cross mount point (not really error) */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EBADMSG 77	/* Bad message */
 | 
				
			||||||
 | 
					#define EFTYPE 79	/* Inappropriate file type or format */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ENOTUNIQ 80	/* Given log. name not unique */
 | 
				
			||||||
 | 
					#define EBADFD 81	/* f.d. invalid for this operation */
 | 
				
			||||||
 | 
					#define EREMCHG 82	/* Remote address changed */
 | 
				
			||||||
 | 
					#define ELIBACC 83	/* Can't access a needed shared lib */
 | 
				
			||||||
 | 
					#define ELIBBAD 84	/* Accessing a corrupted shared lib */
 | 
				
			||||||
 | 
					#define ELIBSCN 85	/* .lib section in a.out corrupted */
 | 
				
			||||||
 | 
					#define ELIBMAX 86	/* Attempting to link in too many libs */
 | 
				
			||||||
 | 
					#define ELIBEXEC 87	/* Attempting to exec a shared library */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ENOSYS 88	/* Function not implemented */
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define ENMFILE 89      /* No more files */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ENOTEMPTY 90	/* Directory not empty */
 | 
				
			||||||
 | 
					#define ENAMETOOLONG 91	/* File or path name too long */
 | 
				
			||||||
 | 
					#define ELOOP 92	/* Too many symbolic links */
 | 
				
			||||||
 | 
					#define EOPNOTSUPP 95	/* Operation not supported on socket */
 | 
				
			||||||
 | 
					#define EPFNOSUPPORT 96 /* Protocol family not supported */
 | 
				
			||||||
 | 
					#define ECONNRESET 104  /* Connection reset by peer */
 | 
				
			||||||
 | 
					#define ENOBUFS 105	/* No buffer space available */
 | 
				
			||||||
 | 
					#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */
 | 
				
			||||||
 | 
					#define EPROTOTYPE 107	/* Protocol wrong type for socket */
 | 
				
			||||||
 | 
					#define ENOTSOCK 108	/* Socket operation on non-socket */
 | 
				
			||||||
 | 
					#define ENOPROTOOPT 109	/* Protocol not available */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ESHUTDOWN 110	/* Can't send after socket shutdown */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ECONNREFUSED 111	/* Connection refused */
 | 
				
			||||||
 | 
					#define EADDRINUSE 112		/* Address already in use */
 | 
				
			||||||
 | 
					#define ECONNABORTED 113	/* Software caused connection abort */
 | 
				
			||||||
 | 
					#define ENETUNREACH 114		/* Network is unreachable */
 | 
				
			||||||
 | 
					#define ENETDOWN 115		/* Network interface is not configured */
 | 
				
			||||||
 | 
					#define ETIMEDOUT 116		/* Connection timed out */
 | 
				
			||||||
 | 
					#define EHOSTDOWN 117		/* Host is down */
 | 
				
			||||||
 | 
					#define EHOSTUNREACH 118	/* Host is unreachable */
 | 
				
			||||||
 | 
					#define EINPROGRESS 119		/* Connection already in progress */
 | 
				
			||||||
 | 
					#define EALREADY 120		/* Socket already connected */
 | 
				
			||||||
 | 
					#define EDESTADDRREQ 121	/* Destination address required */
 | 
				
			||||||
 | 
					#define EMSGSIZE 122		/* Message too long */
 | 
				
			||||||
 | 
					#define EPROTONOSUPPORT 123	/* Unknown protocol */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ESOCKTNOSUPPORT 124	/* Socket type not supported */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EADDRNOTAVAIL 125	/* Address not available */
 | 
				
			||||||
 | 
					#define ENETRESET 126		/* Connection aborted by network */
 | 
				
			||||||
 | 
					#define EISCONN 127		/* Socket is already connected */
 | 
				
			||||||
 | 
					#define ENOTCONN 128		/* Socket is not connected */
 | 
				
			||||||
 | 
					#define ETOOMANYREFS 129
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define EPROCLIM 130
 | 
				
			||||||
 | 
					#define EUSERS 131
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EDQUOT 132
 | 
				
			||||||
 | 
					#define ESTALE 133
 | 
				
			||||||
 | 
					#define ENOTSUP 134		/* Not supported */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ENOMEDIUM 135   /* No medium (in tape drive) */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define ENOSHARE 136    /* No such host or network path */
 | 
				
			||||||
 | 
					#define ECASECLASH 137  /* Filename exists with different case */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EILSEQ 138		/* Illegal byte sequence */
 | 
				
			||||||
 | 
					#define EOVERFLOW 139	/* Value too large for defined data type */
 | 
				
			||||||
 | 
					#define ECANCELED 140	/* Operation canceled */
 | 
				
			||||||
 | 
					#define ENOTRECOVERABLE 141	/* State not recoverable */
 | 
				
			||||||
 | 
					#define EOWNERDEAD 142	/* Previous owner died */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ESTRPIPE 143	/* Streams pipe error */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EWOULDBLOCK EAGAIN	/* Operation would block */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __ELASTERROR 2000	/* Users can add values starting here */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_ERRNO_H */
 | 
				
			||||||
							
								
								
									
										4
									
								
								libc/xtensa-lx106-elf/include/sys/fcntl.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								libc/xtensa-lx106-elf/include/sys/fcntl.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					#ifndef _SYS_FCNTL_H_
 | 
				
			||||||
 | 
					#define _SYS_FCNTL_H_
 | 
				
			||||||
 | 
					#include <sys/_default_fcntl.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										235
									
								
								libc/xtensa-lx106-elf/include/sys/features.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										235
									
								
								libc/xtensa-lx106-elf/include/sys/features.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,235 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Written by Joel Sherrill <joel@OARcorp.com>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  COPYRIGHT (c) 1989-2000.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  On-Line Applications Research Corporation (OAR).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Permission to use, copy, modify, and distribute this software for any
 | 
				
			||||||
 | 
					 *  purpose without fee is hereby granted, provided that this entire notice
 | 
				
			||||||
 | 
					 *  is included in all copies of any software which is or includes a copy
 | 
				
			||||||
 | 
					 *  or modification of this software.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 | 
				
			||||||
 | 
					 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 | 
				
			||||||
 | 
					 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_FEATURES_H
 | 
				
			||||||
 | 
					#define _SYS_FEATURES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros to determine that newlib is being used.  Put in this header to 
 | 
				
			||||||
 | 
					 * be similar to where glibc stores its version of these macros.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define __NEWLIB__  		2
 | 
				
			||||||
 | 
					#define __NEWLIB_MINOR__  	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macro to test version of GCC.  Returns 0 for non-GCC or too old GCC. */
 | 
				
			||||||
 | 
					#ifndef __GNUC_PREREQ
 | 
				
			||||||
 | 
					# if defined __GNUC__ && defined __GNUC_MINOR__
 | 
				
			||||||
 | 
					#  define __GNUC_PREREQ(maj, min) \
 | 
				
			||||||
 | 
						((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __GNUC_PREREQ(maj, min) 0
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif /* __GNUC_PREREQ */
 | 
				
			||||||
 | 
					/* Version with trailing underscores for BSD compatibility. */
 | 
				
			||||||
 | 
					#define	__GNUC_PREREQ__(ma, mi)	__GNUC_PREREQ(ma, mi)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* RTEMS adheres to POSIX -- 1003.1b with some features from annexes.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __rtems__
 | 
				
			||||||
 | 
					#define _POSIX_JOB_CONTROL     		1
 | 
				
			||||||
 | 
					#define _POSIX_SAVED_IDS       		1
 | 
				
			||||||
 | 
					#define _POSIX_VERSION			199309L
 | 
				
			||||||
 | 
					#define _POSIX_ASYNCHRONOUS_IO		1
 | 
				
			||||||
 | 
					#define _POSIX_FSYNC			1
 | 
				
			||||||
 | 
					#define _POSIX_MAPPED_FILES		1
 | 
				
			||||||
 | 
					#define _POSIX_MEMLOCK			1
 | 
				
			||||||
 | 
					#define _POSIX_MEMLOCK_RANGE		1
 | 
				
			||||||
 | 
					#define _POSIX_MEMORY_PROTECTION	1
 | 
				
			||||||
 | 
					#define _POSIX_MESSAGE_PASSING		1
 | 
				
			||||||
 | 
					#define _POSIX_MONOTONIC_CLOCK		200112L
 | 
				
			||||||
 | 
					#define _POSIX_PRIORITIZED_IO		1
 | 
				
			||||||
 | 
					#define _POSIX_PRIORITY_SCHEDULING	1
 | 
				
			||||||
 | 
					#define _POSIX_REALTIME_SIGNALS		1
 | 
				
			||||||
 | 
					#define _POSIX_SEMAPHORES		1
 | 
				
			||||||
 | 
					/* #define _POSIX_SHARED_MEMORY_OBJECTS	1 */
 | 
				
			||||||
 | 
					#define _POSIX_SYNCHRONIZED_IO		1
 | 
				
			||||||
 | 
					#define _POSIX_TIMERS			1
 | 
				
			||||||
 | 
					#define _POSIX_BARRIERS                 200112L
 | 
				
			||||||
 | 
					#define _POSIX_READER_WRITER_LOCKS      200112L
 | 
				
			||||||
 | 
					#define _POSIX_SPIN_LOCKS               200112L
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* In P1003.1b but defined by drafts at least as early as P1003.1c/D10  */
 | 
				
			||||||
 | 
					#define _POSIX_THREADS				1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_ATTR_STACKADDR		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_ATTR_STACKSIZE		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIORITY_SCHEDULING	1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIO_INHERIT		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIO_PROTECT		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PROCESS_SHARED		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_SAFE_FUNCTIONS		1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* P1003.4b/D8 defines the constants below this comment. */
 | 
				
			||||||
 | 
					#define _POSIX_SPAWN				1
 | 
				
			||||||
 | 
					#define _POSIX_TIMEOUTS				1
 | 
				
			||||||
 | 
					#define _POSIX_CPUTIME				1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_CPUTIME			1
 | 
				
			||||||
 | 
					#define _POSIX_SPORADIC_SERVER			1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_SPORADIC_SERVER		1
 | 
				
			||||||
 | 
					#define _POSIX_DEVICE_CONTROL			1
 | 
				
			||||||
 | 
					#define _POSIX_DEVCTL_DIRECTION			1
 | 
				
			||||||
 | 
					#define _POSIX_INTERRUPT_CONTROL		1
 | 
				
			||||||
 | 
					#define _POSIX_ADVISORY_INFO			1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* UNIX98 added some new pthread mutex attributes */
 | 
				
			||||||
 | 
					#define _UNIX98_THREAD_MUTEX_ATTRIBUTES         1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* XMK loosely adheres to POSIX -- 1003.1 */
 | 
				
			||||||
 | 
					#ifdef __XMK__
 | 
				
			||||||
 | 
					#define _POSIX_THREADS				1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIORITY_SCHEDULING	1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __svr4__
 | 
				
			||||||
 | 
					# define _POSIX_JOB_CONTROL     1
 | 
				
			||||||
 | 
					# define _POSIX_SAVED_IDS       1
 | 
				
			||||||
 | 
					# define _POSIX_VERSION 199009L
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L
 | 
				
			||||||
 | 
					#define _POSIX_VERSION				200112L
 | 
				
			||||||
 | 
					#define _POSIX2_VERSION				200112L
 | 
				
			||||||
 | 
					#define _XOPEN_VERSION				   600
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _POSIX_ADVISORY_INFO			200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_ASYNCHRONOUS_IO		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_BARRIERS			    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_CHOWN_RESTRICTED			     1
 | 
				
			||||||
 | 
					#define _POSIX_CLOCK_SELECTION			200112L
 | 
				
			||||||
 | 
					#define _POSIX_CPUTIME			    	200112L
 | 
				
			||||||
 | 
					#define _POSIX_FSYNC				200112L
 | 
				
			||||||
 | 
					#define _POSIX_IPV6				200112L
 | 
				
			||||||
 | 
					#define _POSIX_JOB_CONTROL			     1
 | 
				
			||||||
 | 
					#define _POSIX_MAPPED_FILES			200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_MEMLOCK			    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_MEMLOCK_RANGE			200112L
 | 
				
			||||||
 | 
					#define _POSIX_MEMORY_PROTECTION		200112L
 | 
				
			||||||
 | 
					#define _POSIX_MESSAGE_PASSING			200112L
 | 
				
			||||||
 | 
					#define _POSIX_MONOTONIC_CLOCK			200112L
 | 
				
			||||||
 | 
					#define _POSIX_NO_TRUNC				     1
 | 
				
			||||||
 | 
					/* #define _POSIX_PRIORITIZED_IO		    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_PRIORITY_SCHEDULING		200112L
 | 
				
			||||||
 | 
					#define _POSIX_RAW_SOCKETS			200112L
 | 
				
			||||||
 | 
					#define _POSIX_READER_WRITER_LOCKS		200112L
 | 
				
			||||||
 | 
					#define _POSIX_REALTIME_SIGNALS			200112L
 | 
				
			||||||
 | 
					#define _POSIX_REGEXP				     1
 | 
				
			||||||
 | 
					#define _POSIX_SAVED_IDS			     1
 | 
				
			||||||
 | 
					#define _POSIX_SEMAPHORES			200112L
 | 
				
			||||||
 | 
					#define _POSIX_SHARED_MEMORY_OBJECTS		200112L 
 | 
				
			||||||
 | 
					#define _POSIX_SHELL				     1
 | 
				
			||||||
 | 
					/* #define _POSIX_SPAWN				    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_SPIN_LOCKS			    200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_SPORADIC_SERVER		    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_SYNCHRONIZED_IO			200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_ATTR_STACKADDR		200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_ATTR_STACKSIZE		200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_CPUTIME			200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_THREAD_PRIO_INHERIT		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_THREAD_PRIO_PROTECT		    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIORITY_SCHEDULING	200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PROCESS_SHARED		200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_SAFE_FUNCTIONS		200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_THREAD_SPORADIC_SERVER	    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_THREADS				200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_TIMEOUTS			    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_TIMERS				     1
 | 
				
			||||||
 | 
					/* #define _POSIX_TRACE				    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_TRACE_EVENT_FILTER		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_TRACE_INHERIT			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_TRACE_LOG			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_TYPED_MEMORY_OBJECTS		    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_VDISABLE				   '\0'
 | 
				
			||||||
 | 
					#define _POSIX2_C_BIND				200112L
 | 
				
			||||||
 | 
					#define _POSIX2_C_DEV				200112L
 | 
				
			||||||
 | 
					#define _POSIX2_CHAR_TERM			200112L
 | 
				
			||||||
 | 
					/* #define _POSIX2_FORT_DEV			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_FORT_RUN			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_LOCALEDEF			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS				    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_ACCOUNTING		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_CHECKPOINT		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_LOCATE			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_MESSAGE			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_TRACK			    -1 */
 | 
				
			||||||
 | 
					#define _POSIX2_SW_DEV				200112L
 | 
				
			||||||
 | 
					#define _POSIX2_UPE				200112L
 | 
				
			||||||
 | 
					#define _POSIX_V6_ILP32_OFF32			    -1
 | 
				
			||||||
 | 
					#ifdef __LP64__
 | 
				
			||||||
 | 
					#define _POSIX_V6_ILP32_OFFBIG			    -1
 | 
				
			||||||
 | 
					#define _POSIX_V6_LP64_OFF64			     1
 | 
				
			||||||
 | 
					#define _POSIX_V6_LPBIG_OFFBIG			     1
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _POSIX_V6_ILP32_OFFBIG			     1
 | 
				
			||||||
 | 
					#define _POSIX_V6_LP64_OFF64			    -1
 | 
				
			||||||
 | 
					#define _POSIX_V6_LPBIG_OFFBIG			    -1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _XBS5_ILP32_OFF32			_POSIX_V6_ILP32_OFF32
 | 
				
			||||||
 | 
					#define _XBS5_ILP32_OFFBIG			_POSIX_V6_ILP32_OFFBIG
 | 
				
			||||||
 | 
					#define _XBS5_LP64_OFF64			_POSIX_V6_LP64_OFF64
 | 
				
			||||||
 | 
					#define _XBS5_LPBIG_OFFBIG			_POSIX_V6_LPBIG_OFFBIG
 | 
				
			||||||
 | 
					#define _XOPEN_CRYPT				     1
 | 
				
			||||||
 | 
					#define _XOPEN_ENH_I18N				     1
 | 
				
			||||||
 | 
					/* #define _XOPEN_LEGACY			    -1 */
 | 
				
			||||||
 | 
					/* #define _XOPEN_REALTIME			    -1 */
 | 
				
			||||||
 | 
					/* #define _XOPEN_REALTIME_THREADS		    -1 */
 | 
				
			||||||
 | 
					#define _XOPEN_SHM				     1
 | 
				
			||||||
 | 
					/* #define _XOPEN_STREAMS			    -1 */
 | 
				
			||||||
 | 
					/* #define _XOPEN_UNIX				    -1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__STRICT_ANSI__ || __cplusplus || __STDC_VERSION__ >= 199901L */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The value corresponds to UNICODE version 4.0, which is the version
 | 
				
			||||||
 | 
					   supported by XP.  Newlib supports 5.2 (2011) but so far Cygwin needs
 | 
				
			||||||
 | 
					   the MS conversions for double-byte charsets. */
 | 
				
			||||||
 | 
					#define __STDC_ISO_10646__ 200305L
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Per the permission given in POSIX.1-2008 section 2.2.1, define
 | 
				
			||||||
 | 
					 * _POSIX_C_SOURCE if _XOPEN_SOURCE is defined and _POSIX_C_SOURCE is not.
 | 
				
			||||||
 | 
					 * (_XOPEN_SOURCE indicates that XSI extensions are desired by an application.)
 | 
				
			||||||
 | 
					 * This permission is first granted in 2008, but use it for older ones, also.
 | 
				
			||||||
 | 
					 * Allow for _XOPEN_SOURCE to be empty (from the earliest form of it, before it
 | 
				
			||||||
 | 
					 * was required to have specific values).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !defined(_POSIX_C_SOURCE)  &&  defined(_XOPEN_SOURCE) 
 | 
				
			||||||
 | 
					  #if (_XOPEN_SOURCE - 0) == 700	/* POSIX.1-2008 */
 | 
				
			||||||
 | 
					    #define _POSIX_C_SOURCE       200809L
 | 
				
			||||||
 | 
					   #elif (_XOPEN_SOURCE - 0) == 600	/* POSIX.1-2001 or 2004 */
 | 
				
			||||||
 | 
					    #define _POSIX_C_SOURCE       200112L
 | 
				
			||||||
 | 
					   #elif (_XOPEN_SOURCE - 0) == 500	/* POSIX.1-1995 */
 | 
				
			||||||
 | 
					    #define _POSIX_C_SOURCE       199506L
 | 
				
			||||||
 | 
					   #elif (_XOPEN_SOURCE - 0) < 500	/* really old */
 | 
				
			||||||
 | 
					    #define _POSIX_C_SOURCE       2
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_FEATURES_H */
 | 
				
			||||||
							
								
								
									
										33
									
								
								libc/xtensa-lx106-elf/include/sys/file.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								libc/xtensa-lx106-elf/include/sys/file.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					/* Copyright (c) 2005-2006 Tensilica Inc.  ALL RIGHTS RESERVED.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Redistribution and use in source and binary forms, with or without 
 | 
				
			||||||
 | 
					   modification, are permitted provided that the following conditions are met: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   1. Redistributions of source code must retain the above copyright 
 | 
				
			||||||
 | 
					      notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					      notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					      documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 | 
				
			||||||
 | 
					   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 | 
				
			||||||
 | 
					   TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 | 
				
			||||||
 | 
					   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL TENSILICA
 | 
				
			||||||
 | 
					   INCORPORATED BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 | 
				
			||||||
 | 
					   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 | 
				
			||||||
 | 
					   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 | 
				
			||||||
 | 
					   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 | 
				
			||||||
 | 
					   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 | 
				
			||||||
 | 
					   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | 
				
			||||||
 | 
					   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/fcntl.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Alternate names for values for the WHENCE argument to `lseek'.
 | 
				
			||||||
 | 
					   These are the same as SEEK_SET, SEEK_CUR, and SEEK_END, respectively. */
 | 
				
			||||||
 | 
					#ifndef L_SET
 | 
				
			||||||
 | 
					#define L_SET   0       /* Seek from beginning of file.  */
 | 
				
			||||||
 | 
					#define L_INCR  1       /* Seek from current position.  */
 | 
				
			||||||
 | 
					#define L_XTND  2       /* Seek from end of file.  */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										77
									
								
								libc/xtensa-lx106-elf/include/sys/iconvnls.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								libc/xtensa-lx106-elf/include/sys/iconvnls.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,77 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2003-2004, Artem B. Bityuckiy.
 | 
				
			||||||
 | 
					 * Rights transferred to Franklin Electronic Publishers.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Funtions, macros, etc implimented in iconv library but used by other
 | 
				
			||||||
 | 
					 * NLS-related subsystems too.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef __SYS_ICONVNLS_H__
 | 
				
			||||||
 | 
					#define __SYS_ICONVNLS_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <reent.h>
 | 
				
			||||||
 | 
					#include <wchar.h>
 | 
				
			||||||
 | 
					#include <iconv.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Iconv data path environment variable name */
 | 
				
			||||||
 | 
					#define NLS_ENVVAR_NAME  "NLSPATH"
 | 
				
			||||||
 | 
					/* Default NLSPATH value */
 | 
				
			||||||
 | 
					#define ICONV_DEFAULT_NLSPATH "/usr/locale"
 | 
				
			||||||
 | 
					/* Direction markers */
 | 
				
			||||||
 | 
					#define ICONV_NLS_FROM 0
 | 
				
			||||||
 | 
					#define ICONV_NLS_TO   1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_VOID
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_get_state, (iconv_t cd, mbstate_t *ps, int direction));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_set_state, (iconv_t cd, mbstate_t *ps, int direction));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_is_stateful, (iconv_t cd, int direction));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_get_mb_cur_max, (iconv_t cd, int direction));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_conv, (struct _reent *rptr, iconv_t cd,
 | 
				
			||||||
 | 
					                        _CONST char **inbuf, size_t *inbytesleft,
 | 
				
			||||||
 | 
					                        char **outbuf, size_t *outbytesleft));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_CONST char *
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_construct_filename, (struct _reent *rptr, _CONST char *file,
 | 
				
			||||||
 | 
					                                      _CONST char *dir, _CONST char *ext));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_open, (struct _reent *rptr, _CONST char *encoding,
 | 
				
			||||||
 | 
					                        iconv_t *towc, iconv_t *fromwc, int flag));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *
 | 
				
			||||||
 | 
					_EXFUN(_iconv_resolve_encoding_name, (struct _reent *rptr, _CONST char *ca));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __SYS_ICONVNLS_H__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										50
									
								
								libc/xtensa-lx106-elf/include/sys/lock.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								libc/xtensa-lx106-elf/include/sys/lock.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					#ifndef _XTENSA_LOCK_H__
 | 
				
			||||||
 | 
					#define _XTENSA_LOCK_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* generic lock implementation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Weak linked stub _lock functions in lock.c, can be
 | 
				
			||||||
 | 
					   replaced with a lock implementation at link time.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int _lock_t;
 | 
				
			||||||
 | 
					typedef _lock_t _LOCK_RECURSIVE_T;
 | 
				
			||||||
 | 
					typedef _lock_t _LOCK_T;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* NOTE: some parts of newlib statically initialise locks via
 | 
				
			||||||
 | 
					   __LOCK_INIT, some initialise at runtime via __lock_init. So need to
 | 
				
			||||||
 | 
					   support possibility that a _lock_t is null during first call to
 | 
				
			||||||
 | 
					   _lock_acquire or _lock_try_acquire.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Lock functions all take a pointer to the _lock_t entry, so the
 | 
				
			||||||
 | 
					   value stored there can be manipulated.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					#define __LOCK_INIT(CLASS,NAME) CLASS _lock_t NAME = 0;
 | 
				
			||||||
 | 
					#define __LOCK_INIT_RECURSIVE(CLASS,NAME) CLASS _lock_t NAME = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _lock_init(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_init_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_close(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_close_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_acquire(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_acquire_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					int _lock_try_acquire(_lock_t *lock);
 | 
				
			||||||
 | 
					int _lock_try_acquire_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_release(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_release_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __lock_init(lock) _lock_init(&(lock))
 | 
				
			||||||
 | 
					#define __lock_init_recursive(lock) _lock_init_recursive(&(lock))
 | 
				
			||||||
 | 
					#define __lock_close(lock) _lock_close(&(lock))
 | 
				
			||||||
 | 
					#define __lock_close_recursive(lock) _lock_close_recursive(&(lock))
 | 
				
			||||||
 | 
					#define __lock_acquire(lock) _lock_acquire(&(lock))
 | 
				
			||||||
 | 
					#define __lock_acquire_recursive(lock) _lock_acquire_recursive(&(lock))
 | 
				
			||||||
 | 
					#define __lock_try_acquire(lock) _lock_try_acquire(&(lock))
 | 
				
			||||||
 | 
					#define __lock_try_acquire_recursive(lock) _lock_try_acquire_recursive(&(lock))
 | 
				
			||||||
 | 
					#define __lock_release(lock) _lock_release(&(lock))
 | 
				
			||||||
 | 
					#define __lock_release_recursive(lock) _lock_release_recursive(&(lock))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _XTENSA_LOCK_H__ */
 | 
				
			||||||
							
								
								
									
										28
									
								
								libc/xtensa-lx106-elf/include/sys/param.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								libc/xtensa-lx106-elf/include/sys/param.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					/* This is a dummy <sys/param.h> file, not customized for any
 | 
				
			||||||
 | 
					   particular system.  If there is a param.h in libc/sys/SYSDIR/sys,
 | 
				
			||||||
 | 
					   it will override this one.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_PARAM_H
 | 
				
			||||||
 | 
					# define _SYS_PARAM_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/config.h>
 | 
				
			||||||
 | 
					#include <sys/syslimits.h>
 | 
				
			||||||
 | 
					#include <machine/endian.h>
 | 
				
			||||||
 | 
					#include <machine/param.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef HZ
 | 
				
			||||||
 | 
					# define HZ (60)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef NOFILE
 | 
				
			||||||
 | 
					# define NOFILE	(60)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef PATHSIZE
 | 
				
			||||||
 | 
					# define PATHSIZE (1024)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAXPATHLEN PATH_MAX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAX(a,b) ((a) > (b) ? (a) : (b))
 | 
				
			||||||
 | 
					#define MIN(a,b) ((a) < (b) ? (a) : (b))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										691
									
								
								libc/xtensa-lx106-elf/include/sys/queue.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										691
									
								
								libc/xtensa-lx106-elf/include/sys/queue.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,691 @@
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1991, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)queue.h	8.5 (Berkeley) 8/20/94
 | 
				
			||||||
 | 
					 * $FreeBSD$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_QUEUE_H_
 | 
				
			||||||
 | 
					#define	_SYS_QUEUE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This file defines four types of data structures: singly-linked lists,
 | 
				
			||||||
 | 
					 * singly-linked tail queues, lists and tail queues.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A singly-linked list is headed by a single forward pointer. The elements
 | 
				
			||||||
 | 
					 * are singly linked for minimum space and pointer manipulation overhead at
 | 
				
			||||||
 | 
					 * the expense of O(n) removal for arbitrary elements. New elements can be
 | 
				
			||||||
 | 
					 * added to the list after an existing element or at the head of the list.
 | 
				
			||||||
 | 
					 * Elements being removed from the head of the list should use the explicit
 | 
				
			||||||
 | 
					 * macro for this purpose for optimum efficiency. A singly-linked list may
 | 
				
			||||||
 | 
					 * only be traversed in the forward direction.  Singly-linked lists are ideal
 | 
				
			||||||
 | 
					 * for applications with large datasets and few or no removals or for
 | 
				
			||||||
 | 
					 * implementing a LIFO queue.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A singly-linked tail queue is headed by a pair of pointers, one to the
 | 
				
			||||||
 | 
					 * head of the list and the other to the tail of the list. The elements are
 | 
				
			||||||
 | 
					 * singly linked for minimum space and pointer manipulation overhead at the
 | 
				
			||||||
 | 
					 * expense of O(n) removal for arbitrary elements. New elements can be added
 | 
				
			||||||
 | 
					 * to the list after an existing element, at the head of the list, or at the
 | 
				
			||||||
 | 
					 * end of the list. Elements being removed from the head of the tail queue
 | 
				
			||||||
 | 
					 * should use the explicit macro for this purpose for optimum efficiency.
 | 
				
			||||||
 | 
					 * A singly-linked tail queue may only be traversed in the forward direction.
 | 
				
			||||||
 | 
					 * Singly-linked tail queues are ideal for applications with large datasets
 | 
				
			||||||
 | 
					 * and few or no removals or for implementing a FIFO queue.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A list is headed by a single forward pointer (or an array of forward
 | 
				
			||||||
 | 
					 * pointers for a hash table header). The elements are doubly linked
 | 
				
			||||||
 | 
					 * so that an arbitrary element can be removed without a need to
 | 
				
			||||||
 | 
					 * traverse the list. New elements can be added to the list before
 | 
				
			||||||
 | 
					 * or after an existing element or at the head of the list. A list
 | 
				
			||||||
 | 
					 * may be traversed in either direction.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A tail queue is headed by a pair of pointers, one to the head of the
 | 
				
			||||||
 | 
					 * list and the other to the tail of the list. The elements are doubly
 | 
				
			||||||
 | 
					 * linked so that an arbitrary element can be removed without a need to
 | 
				
			||||||
 | 
					 * traverse the list. New elements can be added to the list before or
 | 
				
			||||||
 | 
					 * after an existing element, at the head of the list, or at the end of
 | 
				
			||||||
 | 
					 * the list. A tail queue may be traversed in either direction.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * For details on the use of these macros, see the queue(3) manual page.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *				SLIST	LIST	STAILQ	TAILQ
 | 
				
			||||||
 | 
					 * _HEAD			+	+	+	+
 | 
				
			||||||
 | 
					 * _HEAD_INITIALIZER		+	+	+	+
 | 
				
			||||||
 | 
					 * _ENTRY			+	+	+	+
 | 
				
			||||||
 | 
					 * _INIT			+	+	+	+
 | 
				
			||||||
 | 
					 * _EMPTY			+	+	+	+
 | 
				
			||||||
 | 
					 * _FIRST			+	+	+	+
 | 
				
			||||||
 | 
					 * _NEXT			+	+	+	+
 | 
				
			||||||
 | 
					 * _PREV			-	+	-	+
 | 
				
			||||||
 | 
					 * _LAST			-	-	+	+
 | 
				
			||||||
 | 
					 * _FOREACH			+	+	+	+
 | 
				
			||||||
 | 
					 * _FOREACH_SAFE		+	+	+	+
 | 
				
			||||||
 | 
					 * _FOREACH_REVERSE		-	-	-	+
 | 
				
			||||||
 | 
					 * _FOREACH_REVERSE_SAFE	-	-	-	+
 | 
				
			||||||
 | 
					 * _INSERT_HEAD			+	+	+	+
 | 
				
			||||||
 | 
					 * _INSERT_BEFORE		-	+	-	+
 | 
				
			||||||
 | 
					 * _INSERT_AFTER		+	+	+	+
 | 
				
			||||||
 | 
					 * _INSERT_TAIL			-	-	+	+
 | 
				
			||||||
 | 
					 * _CONCAT			-	-	+	+
 | 
				
			||||||
 | 
					 * _REMOVE_AFTER		+	-	+	-
 | 
				
			||||||
 | 
					 * _REMOVE_HEAD			+	-	+	-
 | 
				
			||||||
 | 
					 * _REMOVE			+	+	+	+
 | 
				
			||||||
 | 
					 * _SWAP			+	+	+	+
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef QUEUE_MACRO_DEBUG
 | 
				
			||||||
 | 
					/* Store the last 2 places the queue element or head was altered */
 | 
				
			||||||
 | 
					struct qm_trace {
 | 
				
			||||||
 | 
						unsigned long	 lastline;
 | 
				
			||||||
 | 
						unsigned long	 prevline;
 | 
				
			||||||
 | 
						const char	*lastfile;
 | 
				
			||||||
 | 
						const char	*prevfile;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TRACEBUF	struct qm_trace trace;
 | 
				
			||||||
 | 
					#define	TRACEBUF_INITIALIZER	{ __FILE__, __LINE__, NULL, 0 } ,
 | 
				
			||||||
 | 
					#define	TRASHIT(x)	do {(x) = (void *)-1;} while (0)
 | 
				
			||||||
 | 
					#define	QMD_SAVELINK(name, link)	void **name = (void *)&(link)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TRACE_HEAD(head) do {					\
 | 
				
			||||||
 | 
						(head)->trace.prevline = (head)->trace.lastline;		\
 | 
				
			||||||
 | 
						(head)->trace.prevfile = (head)->trace.lastfile;		\
 | 
				
			||||||
 | 
						(head)->trace.lastline = __LINE__;				\
 | 
				
			||||||
 | 
						(head)->trace.lastfile = __FILE__;				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TRACE_ELEM(elem) do {					\
 | 
				
			||||||
 | 
						(elem)->trace.prevline = (elem)->trace.lastline;		\
 | 
				
			||||||
 | 
						(elem)->trace.prevfile = (elem)->trace.lastfile;		\
 | 
				
			||||||
 | 
						(elem)->trace.lastline = __LINE__;				\
 | 
				
			||||||
 | 
						(elem)->trace.lastfile = __FILE__;				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	QMD_TRACE_ELEM(elem)
 | 
				
			||||||
 | 
					#define	QMD_TRACE_HEAD(head)
 | 
				
			||||||
 | 
					#define	QMD_SAVELINK(name, link)
 | 
				
			||||||
 | 
					#define	TRACEBUF
 | 
				
			||||||
 | 
					#define	TRACEBUF_INITIALIZER
 | 
				
			||||||
 | 
					#define	TRASHIT(x)
 | 
				
			||||||
 | 
					#endif	/* QUEUE_MACRO_DEBUG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Singly-linked List declarations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	SLIST_HEAD(name, type)						\
 | 
				
			||||||
 | 
					struct name {								\
 | 
				
			||||||
 | 
						struct type *slh_first;	/* first element */			\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_HEAD_INITIALIZER(head)					\
 | 
				
			||||||
 | 
						{ NULL }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_ENTRY(type)						\
 | 
				
			||||||
 | 
					struct {								\
 | 
				
			||||||
 | 
						struct type *sle_next;	/* next element */			\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Singly-linked List functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	SLIST_EMPTY(head)	((head)->slh_first == NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_FIRST(head)	((head)->slh_first)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_FOREACH(var, head, field)					\
 | 
				
			||||||
 | 
						for ((var) = SLIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var);							\
 | 
				
			||||||
 | 
						    (var) = SLIST_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_FOREACH_SAFE(var, head, field, tvar)			\
 | 
				
			||||||
 | 
						for ((var) = SLIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = SLIST_NEXT((var), field), 1);		\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_FOREACH_PREVPTR(var, varp, head, field)			\
 | 
				
			||||||
 | 
						for ((varp) = &SLIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    ((var) = *(varp)) != NULL;					\
 | 
				
			||||||
 | 
						    (varp) = &SLIST_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_INIT(head) do {						\
 | 
				
			||||||
 | 
						SLIST_FIRST((head)) = NULL;					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_INSERT_AFTER(slistelm, elm, field) do {			\
 | 
				
			||||||
 | 
						SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field);	\
 | 
				
			||||||
 | 
						SLIST_NEXT((slistelm), field) = (elm);				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_INSERT_HEAD(head, elm, field) do {			\
 | 
				
			||||||
 | 
						SLIST_NEXT((elm), field) = SLIST_FIRST((head));			\
 | 
				
			||||||
 | 
						SLIST_FIRST((head)) = (elm);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_NEXT(elm, field)	((elm)->field.sle_next)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_REMOVE(head, elm, type, field) do {			\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldnext, (elm)->field.sle_next);			\
 | 
				
			||||||
 | 
						if (SLIST_FIRST((head)) == (elm)) {				\
 | 
				
			||||||
 | 
							SLIST_REMOVE_HEAD((head), field);			\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						else {								\
 | 
				
			||||||
 | 
							struct type *curelm = SLIST_FIRST((head));		\
 | 
				
			||||||
 | 
							while (SLIST_NEXT(curelm, field) != (elm))		\
 | 
				
			||||||
 | 
								curelm = SLIST_NEXT(curelm, field);		\
 | 
				
			||||||
 | 
							SLIST_REMOVE_AFTER(curelm, field);			\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						TRASHIT(*oldnext);						\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SLIST_REMOVE_AFTER(elm, field) do {				\
 | 
				
			||||||
 | 
						SLIST_NEXT(elm, field) =					\
 | 
				
			||||||
 | 
						    SLIST_NEXT(SLIST_NEXT(elm, field), field);			\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_REMOVE_HEAD(head, field) do {				\
 | 
				
			||||||
 | 
						SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field);	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SLIST_SWAP(head1, head2, type) do {				\
 | 
				
			||||||
 | 
						struct type *swap_first = SLIST_FIRST(head1);			\
 | 
				
			||||||
 | 
						SLIST_FIRST(head1) = SLIST_FIRST(head2);			\
 | 
				
			||||||
 | 
						SLIST_FIRST(head2) = swap_first;				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Singly-linked Tail queue declarations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	STAILQ_HEAD(name, type)						\
 | 
				
			||||||
 | 
					struct name {								\
 | 
				
			||||||
 | 
						struct type *stqh_first;/* first element */			\
 | 
				
			||||||
 | 
						struct type **stqh_last;/* addr of last next element */		\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_HEAD_INITIALIZER(head)					\
 | 
				
			||||||
 | 
						{ NULL, &(head).stqh_first }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_ENTRY(type)						\
 | 
				
			||||||
 | 
					struct {								\
 | 
				
			||||||
 | 
						struct type *stqe_next;	/* next element */			\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Singly-linked Tail queue functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	STAILQ_CONCAT(head1, head2) do {				\
 | 
				
			||||||
 | 
						if (!STAILQ_EMPTY((head2))) {					\
 | 
				
			||||||
 | 
							*(head1)->stqh_last = (head2)->stqh_first;		\
 | 
				
			||||||
 | 
							(head1)->stqh_last = (head2)->stqh_last;		\
 | 
				
			||||||
 | 
							STAILQ_INIT((head2));					\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_EMPTY(head)	((head)->stqh_first == NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_FIRST(head)	((head)->stqh_first)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_FOREACH(var, head, field)				\
 | 
				
			||||||
 | 
						for((var) = STAILQ_FIRST((head));				\
 | 
				
			||||||
 | 
						   (var);							\
 | 
				
			||||||
 | 
						   (var) = STAILQ_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_FOREACH_SAFE(var, head, field, tvar)			\
 | 
				
			||||||
 | 
						for ((var) = STAILQ_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = STAILQ_NEXT((var), field), 1);		\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_INIT(head) do {						\
 | 
				
			||||||
 | 
						STAILQ_FIRST((head)) = NULL;					\
 | 
				
			||||||
 | 
						(head)->stqh_last = &STAILQ_FIRST((head));			\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_INSERT_AFTER(head, tqelm, elm, field) do {		\
 | 
				
			||||||
 | 
						if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						STAILQ_NEXT((tqelm), field) = (elm);				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_INSERT_HEAD(head, elm, field) do {			\
 | 
				
			||||||
 | 
						if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL)	\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						STAILQ_FIRST((head)) = (elm);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_INSERT_TAIL(head, elm, field) do {			\
 | 
				
			||||||
 | 
						STAILQ_NEXT((elm), field) = NULL;				\
 | 
				
			||||||
 | 
						*(head)->stqh_last = (elm);					\
 | 
				
			||||||
 | 
						(head)->stqh_last = &STAILQ_NEXT((elm), field);			\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_LAST(head, type, field)					\
 | 
				
			||||||
 | 
						(STAILQ_EMPTY((head)) ? NULL :					\
 | 
				
			||||||
 | 
						    __containerof((head)->stqh_last, struct type, field.stqe_next))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_NEXT(elm, field)	((elm)->field.stqe_next)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_REMOVE(head, elm, type, field) do {			\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldnext, (elm)->field.stqe_next);			\
 | 
				
			||||||
 | 
						if (STAILQ_FIRST((head)) == (elm)) {				\
 | 
				
			||||||
 | 
							STAILQ_REMOVE_HEAD((head), field);			\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						else {								\
 | 
				
			||||||
 | 
							struct type *curelm = STAILQ_FIRST((head));		\
 | 
				
			||||||
 | 
							while (STAILQ_NEXT(curelm, field) != (elm))		\
 | 
				
			||||||
 | 
								curelm = STAILQ_NEXT(curelm, field);		\
 | 
				
			||||||
 | 
							STAILQ_REMOVE_AFTER(head, curelm, field);		\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						TRASHIT(*oldnext);						\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define STAILQ_REMOVE_AFTER(head, elm, field) do {			\
 | 
				
			||||||
 | 
						if ((STAILQ_NEXT(elm, field) =					\
 | 
				
			||||||
 | 
						     STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL)	\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_REMOVE_HEAD(head, field) do {				\
 | 
				
			||||||
 | 
						if ((STAILQ_FIRST((head)) =					\
 | 
				
			||||||
 | 
						     STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL)		\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_FIRST((head));		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do {			\
 | 
				
			||||||
 | 
						if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL)	\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_FIRST((head));		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define STAILQ_SWAP(head1, head2, type) do {				\
 | 
				
			||||||
 | 
						struct type *swap_first = STAILQ_FIRST(head1);			\
 | 
				
			||||||
 | 
						struct type **swap_last = (head1)->stqh_last;			\
 | 
				
			||||||
 | 
						STAILQ_FIRST(head1) = STAILQ_FIRST(head2);			\
 | 
				
			||||||
 | 
						(head1)->stqh_last = (head2)->stqh_last;			\
 | 
				
			||||||
 | 
						STAILQ_FIRST(head2) = swap_first;				\
 | 
				
			||||||
 | 
						(head2)->stqh_last = swap_last;					\
 | 
				
			||||||
 | 
						if (STAILQ_EMPTY(head1))					\
 | 
				
			||||||
 | 
							(head1)->stqh_last = &STAILQ_FIRST(head1);		\
 | 
				
			||||||
 | 
						if (STAILQ_EMPTY(head2))					\
 | 
				
			||||||
 | 
							(head2)->stqh_last = &STAILQ_FIRST(head2);		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * List declarations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	LIST_HEAD(name, type)						\
 | 
				
			||||||
 | 
					struct name {								\
 | 
				
			||||||
 | 
						struct type *lh_first;	/* first element */			\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_HEAD_INITIALIZER(head)					\
 | 
				
			||||||
 | 
						{ NULL }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_ENTRY(type)						\
 | 
				
			||||||
 | 
					struct {								\
 | 
				
			||||||
 | 
						struct type *le_next;	/* next element */			\
 | 
				
			||||||
 | 
						struct type **le_prev;	/* address of previous next element */	\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * List functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(_KERNEL) && defined(INVARIANTS))
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_HEAD(head, field) do {				\
 | 
				
			||||||
 | 
						if (LIST_FIRST((head)) != NULL &&				\
 | 
				
			||||||
 | 
						    LIST_FIRST((head))->field.le_prev !=			\
 | 
				
			||||||
 | 
						     &LIST_FIRST((head)))					\
 | 
				
			||||||
 | 
							panic("Bad list head %p first->prev != head", (head));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_NEXT(elm, field) do {				\
 | 
				
			||||||
 | 
						if (LIST_NEXT((elm), field) != NULL &&				\
 | 
				
			||||||
 | 
						    LIST_NEXT((elm), field)->field.le_prev !=			\
 | 
				
			||||||
 | 
						     &((elm)->field.le_next))					\
 | 
				
			||||||
 | 
						     	panic("Bad link elm %p next->prev != elm", (elm));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_PREV(elm, field) do {				\
 | 
				
			||||||
 | 
						if (*(elm)->field.le_prev != (elm))				\
 | 
				
			||||||
 | 
							panic("Bad link elm %p prev->next != elm", (elm));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_HEAD(head, field)
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_NEXT(elm, field)
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_PREV(elm, field)
 | 
				
			||||||
 | 
					#endif /* (_KERNEL && INVARIANTS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_EMPTY(head)	((head)->lh_first == NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_FIRST(head)	((head)->lh_first)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_FOREACH(var, head, field)					\
 | 
				
			||||||
 | 
						for ((var) = LIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var);							\
 | 
				
			||||||
 | 
						    (var) = LIST_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_FOREACH_SAFE(var, head, field, tvar)			\
 | 
				
			||||||
 | 
						for ((var) = LIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = LIST_NEXT((var), field), 1);		\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_INIT(head) do {						\
 | 
				
			||||||
 | 
						LIST_FIRST((head)) = NULL;					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_INSERT_AFTER(listelm, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_NEXT(listelm, field);				\
 | 
				
			||||||
 | 
						if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
 | 
				
			||||||
 | 
							LIST_NEXT((listelm), field)->field.le_prev =		\
 | 
				
			||||||
 | 
							    &LIST_NEXT((elm), field);				\
 | 
				
			||||||
 | 
						LIST_NEXT((listelm), field) = (elm);				\
 | 
				
			||||||
 | 
						(elm)->field.le_prev = &LIST_NEXT((listelm), field);		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_INSERT_BEFORE(listelm, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_PREV(listelm, field);				\
 | 
				
			||||||
 | 
						(elm)->field.le_prev = (listelm)->field.le_prev;		\
 | 
				
			||||||
 | 
						LIST_NEXT((elm), field) = (listelm);				\
 | 
				
			||||||
 | 
						*(listelm)->field.le_prev = (elm);				\
 | 
				
			||||||
 | 
						(listelm)->field.le_prev = &LIST_NEXT((elm), field);		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_INSERT_HEAD(head, elm, field) do {				\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_HEAD((head), field);				\
 | 
				
			||||||
 | 
						if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL)	\
 | 
				
			||||||
 | 
							LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
 | 
				
			||||||
 | 
						LIST_FIRST((head)) = (elm);					\
 | 
				
			||||||
 | 
						(elm)->field.le_prev = &LIST_FIRST((head));			\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_NEXT(elm, field)	((elm)->field.le_next)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_PREV(elm, head, type, field)				\
 | 
				
			||||||
 | 
						((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL :		\
 | 
				
			||||||
 | 
						    __containerof((elm)->field.le_prev, struct type, field.le_next))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_REMOVE(elm, field) do {					\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldnext, (elm)->field.le_next);			\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldprev, (elm)->field.le_prev);			\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_NEXT(elm, field);				\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_PREV(elm, field);				\
 | 
				
			||||||
 | 
						if (LIST_NEXT((elm), field) != NULL)				\
 | 
				
			||||||
 | 
							LIST_NEXT((elm), field)->field.le_prev = 		\
 | 
				
			||||||
 | 
							    (elm)->field.le_prev;				\
 | 
				
			||||||
 | 
						*(elm)->field.le_prev = LIST_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						TRASHIT(*oldnext);						\
 | 
				
			||||||
 | 
						TRASHIT(*oldprev);						\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LIST_SWAP(head1, head2, type, field) do {			\
 | 
				
			||||||
 | 
						struct type *swap_tmp = LIST_FIRST((head1));			\
 | 
				
			||||||
 | 
						LIST_FIRST((head1)) = LIST_FIRST((head2));			\
 | 
				
			||||||
 | 
						LIST_FIRST((head2)) = swap_tmp;					\
 | 
				
			||||||
 | 
						if ((swap_tmp = LIST_FIRST((head1))) != NULL)			\
 | 
				
			||||||
 | 
							swap_tmp->field.le_prev = &LIST_FIRST((head1));		\
 | 
				
			||||||
 | 
						if ((swap_tmp = LIST_FIRST((head2))) != NULL)			\
 | 
				
			||||||
 | 
							swap_tmp->field.le_prev = &LIST_FIRST((head2));		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Tail queue declarations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	TAILQ_HEAD(name, type)						\
 | 
				
			||||||
 | 
					struct name {								\
 | 
				
			||||||
 | 
						struct type *tqh_first;	/* first element */			\
 | 
				
			||||||
 | 
						struct type **tqh_last;	/* addr of last next element */		\
 | 
				
			||||||
 | 
						TRACEBUF							\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_HEAD_INITIALIZER(head)					\
 | 
				
			||||||
 | 
						{ NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_ENTRY(type)						\
 | 
				
			||||||
 | 
					struct {								\
 | 
				
			||||||
 | 
						struct type *tqe_next;	/* next element */			\
 | 
				
			||||||
 | 
						struct type **tqe_prev;	/* address of previous next element */	\
 | 
				
			||||||
 | 
						TRACEBUF							\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Tail queue functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if (defined(_KERNEL) && defined(INVARIANTS))
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_HEAD(head, field) do {				\
 | 
				
			||||||
 | 
						if (!TAILQ_EMPTY(head) &&					\
 | 
				
			||||||
 | 
						    TAILQ_FIRST((head))->field.tqe_prev !=			\
 | 
				
			||||||
 | 
						     &TAILQ_FIRST((head)))					\
 | 
				
			||||||
 | 
							panic("Bad tailq head %p first->prev != head", (head));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_TAIL(head, field) do {				\
 | 
				
			||||||
 | 
						if (*(head)->tqh_last != NULL)					\
 | 
				
			||||||
 | 
						    	panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); 	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_NEXT(elm, field) do {				\
 | 
				
			||||||
 | 
						if (TAILQ_NEXT((elm), field) != NULL &&				\
 | 
				
			||||||
 | 
						    TAILQ_NEXT((elm), field)->field.tqe_prev !=			\
 | 
				
			||||||
 | 
						     &((elm)->field.tqe_next))					\
 | 
				
			||||||
 | 
							panic("Bad link elm %p next->prev != elm", (elm));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_PREV(elm, field) do {				\
 | 
				
			||||||
 | 
						if (*(elm)->field.tqe_prev != (elm))				\
 | 
				
			||||||
 | 
							panic("Bad link elm %p prev->next != elm", (elm));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_HEAD(head, field)
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_TAIL(head, headname)
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_NEXT(elm, field)
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_PREV(elm, field)
 | 
				
			||||||
 | 
					#endif /* (_KERNEL && INVARIANTS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_CONCAT(head1, head2, field) do {				\
 | 
				
			||||||
 | 
						if (!TAILQ_EMPTY(head2)) {					\
 | 
				
			||||||
 | 
							*(head1)->tqh_last = (head2)->tqh_first;		\
 | 
				
			||||||
 | 
							(head2)->tqh_first->field.tqe_prev = (head1)->tqh_last;	\
 | 
				
			||||||
 | 
							(head1)->tqh_last = (head2)->tqh_last;			\
 | 
				
			||||||
 | 
							TAILQ_INIT((head2));					\
 | 
				
			||||||
 | 
							QMD_TRACE_HEAD(head1);					\
 | 
				
			||||||
 | 
							QMD_TRACE_HEAD(head2);					\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_EMPTY(head)	((head)->tqh_first == NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FIRST(head)	((head)->tqh_first)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FOREACH(var, head, field)					\
 | 
				
			||||||
 | 
						for ((var) = TAILQ_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var);							\
 | 
				
			||||||
 | 
						    (var) = TAILQ_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FOREACH_SAFE(var, head, field, tvar)			\
 | 
				
			||||||
 | 
						for ((var) = TAILQ_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = TAILQ_NEXT((var), field), 1);		\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
 | 
				
			||||||
 | 
						for ((var) = TAILQ_LAST((head), headname);			\
 | 
				
			||||||
 | 
						    (var);							\
 | 
				
			||||||
 | 
						    (var) = TAILQ_PREV((var), headname, field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)	\
 | 
				
			||||||
 | 
						for ((var) = TAILQ_LAST((head), headname);			\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1);	\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INIT(head) do {						\
 | 
				
			||||||
 | 
						TAILQ_FIRST((head)) = NULL;					\
 | 
				
			||||||
 | 
						(head)->tqh_last = &TAILQ_FIRST((head));			\
 | 
				
			||||||
 | 
						QMD_TRACE_HEAD(head);						\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_NEXT(listelm, field);				\
 | 
				
			||||||
 | 
						if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
 | 
				
			||||||
 | 
							TAILQ_NEXT((elm), field)->field.tqe_prev = 		\
 | 
				
			||||||
 | 
							    &TAILQ_NEXT((elm), field);				\
 | 
				
			||||||
 | 
						else {								\
 | 
				
			||||||
 | 
							(head)->tqh_last = &TAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
							QMD_TRACE_HEAD(head);					\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						TAILQ_NEXT((listelm), field) = (elm);				\
 | 
				
			||||||
 | 
						(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field);		\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&listelm->field);				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_PREV(listelm, field);				\
 | 
				
			||||||
 | 
						(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\
 | 
				
			||||||
 | 
						TAILQ_NEXT((elm), field) = (listelm);				\
 | 
				
			||||||
 | 
						*(listelm)->field.tqe_prev = (elm);				\
 | 
				
			||||||
 | 
						(listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&listelm->field);				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INSERT_HEAD(head, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_HEAD(head, field);				\
 | 
				
			||||||
 | 
						if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL)	\
 | 
				
			||||||
 | 
							TAILQ_FIRST((head))->field.tqe_prev =			\
 | 
				
			||||||
 | 
							    &TAILQ_NEXT((elm), field);				\
 | 
				
			||||||
 | 
						else								\
 | 
				
			||||||
 | 
							(head)->tqh_last = &TAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						TAILQ_FIRST((head)) = (elm);					\
 | 
				
			||||||
 | 
						(elm)->field.tqe_prev = &TAILQ_FIRST((head));			\
 | 
				
			||||||
 | 
						QMD_TRACE_HEAD(head);						\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INSERT_TAIL(head, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_TAIL(head, field);				\
 | 
				
			||||||
 | 
						TAILQ_NEXT((elm), field) = NULL;				\
 | 
				
			||||||
 | 
						(elm)->field.tqe_prev = (head)->tqh_last;			\
 | 
				
			||||||
 | 
						*(head)->tqh_last = (elm);					\
 | 
				
			||||||
 | 
						(head)->tqh_last = &TAILQ_NEXT((elm), field);			\
 | 
				
			||||||
 | 
						QMD_TRACE_HEAD(head);						\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_LAST(head, headname)					\
 | 
				
			||||||
 | 
						(*(((struct headname *)((head)->tqh_last))->tqh_last))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_PREV(elm, headname, field)				\
 | 
				
			||||||
 | 
						(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_REMOVE(head, elm, field) do {				\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldnext, (elm)->field.tqe_next);			\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldprev, (elm)->field.tqe_prev);			\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_NEXT(elm, field);				\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_PREV(elm, field);				\
 | 
				
			||||||
 | 
						if ((TAILQ_NEXT((elm), field)) != NULL)				\
 | 
				
			||||||
 | 
							TAILQ_NEXT((elm), field)->field.tqe_prev = 		\
 | 
				
			||||||
 | 
							    (elm)->field.tqe_prev;				\
 | 
				
			||||||
 | 
						else {								\
 | 
				
			||||||
 | 
							(head)->tqh_last = (elm)->field.tqe_prev;		\
 | 
				
			||||||
 | 
							QMD_TRACE_HEAD(head);					\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						*(elm)->field.tqe_prev = TAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						TRASHIT(*oldnext);						\
 | 
				
			||||||
 | 
						TRASHIT(*oldprev);						\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TAILQ_SWAP(head1, head2, type, field) do {			\
 | 
				
			||||||
 | 
						struct type *swap_first = (head1)->tqh_first;			\
 | 
				
			||||||
 | 
						struct type **swap_last = (head1)->tqh_last;			\
 | 
				
			||||||
 | 
						(head1)->tqh_first = (head2)->tqh_first;			\
 | 
				
			||||||
 | 
						(head1)->tqh_last = (head2)->tqh_last;				\
 | 
				
			||||||
 | 
						(head2)->tqh_first = swap_first;				\
 | 
				
			||||||
 | 
						(head2)->tqh_last = swap_last;					\
 | 
				
			||||||
 | 
						if ((swap_first = (head1)->tqh_first) != NULL)			\
 | 
				
			||||||
 | 
							swap_first->field.tqe_prev = &(head1)->tqh_first;	\
 | 
				
			||||||
 | 
						else								\
 | 
				
			||||||
 | 
							(head1)->tqh_last = &(head1)->tqh_first;		\
 | 
				
			||||||
 | 
						if ((swap_first = (head2)->tqh_first) != NULL)			\
 | 
				
			||||||
 | 
							swap_first->field.tqe_prev = &(head2)->tqh_first;	\
 | 
				
			||||||
 | 
						else								\
 | 
				
			||||||
 | 
							(head2)->tqh_last = &(head2)->tqh_first;		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _KERNEL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * XXX insque() and remque() are an old way of handling certain queues.
 | 
				
			||||||
 | 
					 * They bogusly assumes that all queue heads look alike.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct quehead {
 | 
				
			||||||
 | 
						struct quehead *qh_link;
 | 
				
			||||||
 | 
						struct quehead *qh_rlink;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef	__GNUC__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					insque(void *a, void *b)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct quehead *element = (struct quehead *)a,
 | 
				
			||||||
 | 
							 *head = (struct quehead *)b;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						element->qh_link = head->qh_link;
 | 
				
			||||||
 | 
						element->qh_rlink = head;
 | 
				
			||||||
 | 
						head->qh_link = element;
 | 
				
			||||||
 | 
						element->qh_link->qh_rlink = element;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					remque(void *a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct quehead *element = (struct quehead *)a;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						element->qh_link->qh_rlink = element->qh_rlink;
 | 
				
			||||||
 | 
						element->qh_rlink->qh_link = element->qh_link;
 | 
				
			||||||
 | 
						element->qh_rlink = 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !__GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	insque(void *a, void *b);
 | 
				
			||||||
 | 
					void	remque(void *a);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _KERNEL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_SYS_QUEUE_H_ */
 | 
				
			||||||
							
								
								
									
										790
									
								
								libc/xtensa-lx106-elf/include/sys/reent.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										790
									
								
								libc/xtensa-lx106-elf/include/sys/reent.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,790 @@
 | 
				
			||||||
 | 
					/* This header file provides the reentrancy.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* WARNING: All identifiers here must begin with an underscore.  This file is
 | 
				
			||||||
 | 
					   included by stdio.h and others and we therefore must only use identifiers
 | 
				
			||||||
 | 
					   in the namespace allotted to us.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_REENT_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _SYS_REENT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _NULL 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __Long
 | 
				
			||||||
 | 
					#if __LONG_MAX__ == 2147483647L
 | 
				
			||||||
 | 
					#define __Long long
 | 
				
			||||||
 | 
					typedef unsigned __Long __ULong;
 | 
				
			||||||
 | 
					#elif __INT_MAX__ == 2147483647
 | 
				
			||||||
 | 
					#define __Long int
 | 
				
			||||||
 | 
					typedef unsigned __Long __ULong;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined( __Long)
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __Long
 | 
				
			||||||
 | 
					#define __Long __int32_t
 | 
				
			||||||
 | 
					typedef __uint32_t __ULong;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _reent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * If _REENT_SMALL is defined, we make struct _reent as small as possible,
 | 
				
			||||||
 | 
					 * by having nearly everything possible allocated at first use.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _Bigint
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  struct _Bigint *_next;
 | 
				
			||||||
 | 
					  int _k, _maxwds, _sign, _wds;
 | 
				
			||||||
 | 
					  __ULong _x[1];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* needed by reentrant structure */
 | 
				
			||||||
 | 
					struct __tm
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int   __tm_sec;
 | 
				
			||||||
 | 
					  int   __tm_min;
 | 
				
			||||||
 | 
					  int   __tm_hour;
 | 
				
			||||||
 | 
					  int   __tm_mday;
 | 
				
			||||||
 | 
					  int   __tm_mon;
 | 
				
			||||||
 | 
					  int   __tm_year;
 | 
				
			||||||
 | 
					  int   __tm_wday;
 | 
				
			||||||
 | 
					  int   __tm_yday;
 | 
				
			||||||
 | 
					  int   __tm_isdst;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * atexit() support.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_ATEXIT_SIZE 32	/* must be at least 32 to guarantee ANSI conformance */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _on_exit_args {
 | 
				
			||||||
 | 
						void *  _fnargs[_ATEXIT_SIZE];	        /* user fn args */
 | 
				
			||||||
 | 
						void *	_dso_handle[_ATEXIT_SIZE];
 | 
				
			||||||
 | 
						/* Bitmask is set if user function takes arguments.  */
 | 
				
			||||||
 | 
						__ULong _fntypes;           	        /* type of exit routine -
 | 
				
			||||||
 | 
									   Must have at least _ATEXIT_SIZE bits */
 | 
				
			||||||
 | 
						/* Bitmask is set if function was registered via __cxa_atexit.  */
 | 
				
			||||||
 | 
						__ULong _is_cxa;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					struct _atexit {
 | 
				
			||||||
 | 
						struct	_atexit *_next;			/* next in list */
 | 
				
			||||||
 | 
						int	_ind;				/* next index in this table */
 | 
				
			||||||
 | 
						void	(*_fns[_ATEXIT_SIZE])(void);	/* the table itself */
 | 
				
			||||||
 | 
					        struct _on_exit_args * _on_exit_args_ptr;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					# define _ATEXIT_INIT {_NULL, 0, {_NULL}, _NULL}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					struct _atexit {
 | 
				
			||||||
 | 
						struct	_atexit *_next;			/* next in list */
 | 
				
			||||||
 | 
						int	_ind;				/* next index in this table */
 | 
				
			||||||
 | 
						/* Some entries may already have been called, and will be NULL.  */
 | 
				
			||||||
 | 
						void	(*_fns[_ATEXIT_SIZE])(void);	/* the table itself */
 | 
				
			||||||
 | 
					        struct _on_exit_args _on_exit_args;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					# define _ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					# define _REENT_INIT_ATEXIT
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define _REENT_INIT_ATEXIT \
 | 
				
			||||||
 | 
					  _NULL, _ATEXIT_INIT,
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Stdio buffers.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This and __FILE are defined here because we need them for struct _reent,
 | 
				
			||||||
 | 
					 * but we don't want stdio.h included when stdlib.h is.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct __sbuf {
 | 
				
			||||||
 | 
						unsigned char *_base;
 | 
				
			||||||
 | 
						int	_size;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Stdio state variables.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The following always hold:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
 | 
				
			||||||
 | 
					 *		_lbfsize is -_bf._size, else _lbfsize is 0
 | 
				
			||||||
 | 
					 *	if _flags&__SRD, _w is 0
 | 
				
			||||||
 | 
					 *	if _flags&__SWR, _r is 0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This ensures that the getc and putc macros (or inline functions) never
 | 
				
			||||||
 | 
					 * try to write or read from a file that is in `read' or `write' mode.
 | 
				
			||||||
 | 
					 * (Moreover, they can, and do, automatically switch from read mode to
 | 
				
			||||||
 | 
					 * write mode, and back, on "r+" and "w+" files.)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * _lbfsize is used only to make the inline line-buffered output stream
 | 
				
			||||||
 | 
					 * code as compact as possible.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * _ub, _up, and _ur are used when ungetc() pushes back more characters
 | 
				
			||||||
 | 
					 * than fit in the current _bf, or when ungetc() pushes back a character
 | 
				
			||||||
 | 
					 * that does not match the previous one in _bf.  When this happens,
 | 
				
			||||||
 | 
					 * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
 | 
				
			||||||
 | 
					 * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * struct __sFILE_fake is the start of a struct __sFILE, with only the
 | 
				
			||||||
 | 
					 * minimal fields allocated.  In __sinit() we really allocate the 3
 | 
				
			||||||
 | 
					 * standard streams, etc., and point away from this fake.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct __sFILE_fake {
 | 
				
			||||||
 | 
					  unsigned char *_p;	/* current position in (some) buffer */
 | 
				
			||||||
 | 
					  int	_r;		/* read space left for getc() */
 | 
				
			||||||
 | 
					  int	_w;		/* write space left for putc() */
 | 
				
			||||||
 | 
					  short	_flags;		/* flags, below; this FILE is free if 0 */
 | 
				
			||||||
 | 
					  short	_file;		/* fileno, if Unix descriptor, else -1 */
 | 
				
			||||||
 | 
					  struct __sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
 | 
				
			||||||
 | 
					  int	_lbfsize;	/* 0 or -_bf._size, for inline putc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _reent *_data;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Following is needed both in libc/stdio and libc/stdlib so we put it
 | 
				
			||||||
 | 
					 * here instead of libc/stdio/local.h where it was previously. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _VOID   _EXFUN(__sinit,(struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define _REENT_SMALL_CHECK_INIT(ptr)		\
 | 
				
			||||||
 | 
					  do						\
 | 
				
			||||||
 | 
					    {						\
 | 
				
			||||||
 | 
					      if ((ptr) && !(ptr)->__sdidinit)		\
 | 
				
			||||||
 | 
						__sinit (ptr);				\
 | 
				
			||||||
 | 
					    }						\
 | 
				
			||||||
 | 
					  while (0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define _REENT_SMALL_CHECK_INIT(ptr) /* nothing */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct __sFILE {
 | 
				
			||||||
 | 
					  unsigned char *_p;	/* current position in (some) buffer */
 | 
				
			||||||
 | 
					  int	_r;		/* read space left for getc() */
 | 
				
			||||||
 | 
					  int	_w;		/* write space left for putc() */
 | 
				
			||||||
 | 
					  short	_flags;		/* flags, below; this FILE is free if 0 */
 | 
				
			||||||
 | 
					  short	_file;		/* fileno, if Unix descriptor, else -1 */
 | 
				
			||||||
 | 
					  struct __sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
 | 
				
			||||||
 | 
					  int	_lbfsize;	/* 0 or -_bf._size, for inline putc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					  struct _reent *_data;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* operations */
 | 
				
			||||||
 | 
					  _PTR	_cookie;	/* cookie passed to io functions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
 | 
				
			||||||
 | 
										   char *, _READ_WRITE_BUFSIZE_TYPE));
 | 
				
			||||||
 | 
					  _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
 | 
				
			||||||
 | 
										    const char *,
 | 
				
			||||||
 | 
										    _READ_WRITE_BUFSIZE_TYPE));
 | 
				
			||||||
 | 
					  _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
 | 
				
			||||||
 | 
					  int _EXFNPTR(_close, (struct _reent *, _PTR));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* separate buffer for long sequences of ungetc() */
 | 
				
			||||||
 | 
					  struct __sbuf _ub;	/* ungetc buffer */
 | 
				
			||||||
 | 
					  unsigned char *_up;	/* saved _p when _p is doing ungetc data */
 | 
				
			||||||
 | 
					  int	_ur;		/* saved _r when _r is counting ungetc data */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* tricks to meet minimum requirements even when malloc() fails */
 | 
				
			||||||
 | 
					  unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */
 | 
				
			||||||
 | 
					  unsigned char _nbuf[1];	/* guarantee a getc() buffer */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* separate buffer for fgetline() when line crosses buffer boundary */
 | 
				
			||||||
 | 
					  struct __sbuf _lb;	/* buffer for fgetline() */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Unix stdio files get aligned to block boundaries on fseek() */
 | 
				
			||||||
 | 
					  int	_blksize;	/* stat.st_blksize (may be != _bf._size) */
 | 
				
			||||||
 | 
					  _off_t _offset;	/* current lseek offset */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					  struct _reent *_data;	/* Here for binary compatibility? Remove? */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __SINGLE_THREAD__
 | 
				
			||||||
 | 
					  _flock_t _lock;	/* for thread-safety locking */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  _mbstate_t _mbstate;	/* for wide char stdio functions. */
 | 
				
			||||||
 | 
					  int   _flags2;        /* for future use */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CUSTOM_FILE_IO__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Get custom _FILE definition.  */
 | 
				
			||||||
 | 
					#include <sys/custom_file.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !__CUSTOM_FILE_IO__ */
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					struct __sFILE64 {
 | 
				
			||||||
 | 
					  unsigned char *_p;	/* current position in (some) buffer */
 | 
				
			||||||
 | 
					  int	_r;		/* read space left for getc() */
 | 
				
			||||||
 | 
					  int	_w;		/* write space left for putc() */
 | 
				
			||||||
 | 
					  short	_flags;		/* flags, below; this FILE is free if 0 */
 | 
				
			||||||
 | 
					  short	_file;		/* fileno, if Unix descriptor, else -1 */
 | 
				
			||||||
 | 
					  struct __sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
 | 
				
			||||||
 | 
					  int	_lbfsize;	/* 0 or -_bf._size, for inline putc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _reent *_data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* operations */
 | 
				
			||||||
 | 
					  _PTR	_cookie;	/* cookie passed to io functions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
 | 
				
			||||||
 | 
										   char *, _READ_WRITE_BUFSIZE_TYPE));
 | 
				
			||||||
 | 
					  _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
 | 
				
			||||||
 | 
										    const char *,
 | 
				
			||||||
 | 
										    _READ_WRITE_BUFSIZE_TYPE));
 | 
				
			||||||
 | 
					  _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
 | 
				
			||||||
 | 
					  int _EXFNPTR(_close, (struct _reent *, _PTR));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* separate buffer for long sequences of ungetc() */
 | 
				
			||||||
 | 
					  struct __sbuf _ub;	/* ungetc buffer */
 | 
				
			||||||
 | 
					  unsigned char *_up;	/* saved _p when _p is doing ungetc data */
 | 
				
			||||||
 | 
					  int	_ur;		/* saved _r when _r is counting ungetc data */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* tricks to meet minimum requirements even when malloc() fails */
 | 
				
			||||||
 | 
					  unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */
 | 
				
			||||||
 | 
					  unsigned char _nbuf[1];	/* guarantee a getc() buffer */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* separate buffer for fgetline() when line crosses buffer boundary */
 | 
				
			||||||
 | 
					  struct __sbuf _lb;	/* buffer for fgetline() */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Unix stdio files get aligned to block boundaries on fseek() */
 | 
				
			||||||
 | 
					  int	_blksize;	/* stat.st_blksize (may be != _bf._size) */
 | 
				
			||||||
 | 
					  int   _flags2;        /* for future use */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _off64_t _offset;     /* current lseek offset */
 | 
				
			||||||
 | 
					  _fpos64_t _EXFNPTR(_seek64, (struct _reent *, _PTR, _fpos64_t, int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __SINGLE_THREAD__
 | 
				
			||||||
 | 
					  _flock_t _lock;	/* for thread-safety locking */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  _mbstate_t _mbstate;	/* for wide char stdio functions. */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					typedef struct __sFILE64 __FILE;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef struct __sFILE   __FILE;
 | 
				
			||||||
 | 
					#endif /* __LARGE64_FILES */
 | 
				
			||||||
 | 
					#endif /* !__CUSTOM_FILE_IO__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _glue
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  struct _glue *_next;
 | 
				
			||||||
 | 
					  int _niobs;
 | 
				
			||||||
 | 
					  __FILE *_iobs;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * rand48 family support
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) 1993 Martin Birgmeier
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You may redistribute unmodified or modified versions of this source
 | 
				
			||||||
 | 
					 * code provided that the above copyright notice and this and the
 | 
				
			||||||
 | 
					 * following conditions are retained.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This software is provided ``as is'', and comes with no warranties
 | 
				
			||||||
 | 
					 * of any kind. I shall in no event be liable for anything that happens
 | 
				
			||||||
 | 
					 * to anyone/anything when using this software.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define        _RAND48_SEED_0  (0x330e)
 | 
				
			||||||
 | 
					#define        _RAND48_SEED_1  (0xabcd)
 | 
				
			||||||
 | 
					#define        _RAND48_SEED_2  (0x1234)
 | 
				
			||||||
 | 
					#define        _RAND48_MULT_0  (0xe66d)
 | 
				
			||||||
 | 
					#define        _RAND48_MULT_1  (0xdeec)
 | 
				
			||||||
 | 
					#define        _RAND48_MULT_2  (0x0005)
 | 
				
			||||||
 | 
					#define        _RAND48_ADD     (0x000b)
 | 
				
			||||||
 | 
					struct _rand48 {
 | 
				
			||||||
 | 
					  unsigned short _seed[3];
 | 
				
			||||||
 | 
					  unsigned short _mult[3];
 | 
				
			||||||
 | 
					  unsigned short _add;
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					  /* Put this in here as well, for good luck.  */
 | 
				
			||||||
 | 
					  __extension__ unsigned long long _rand_next;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* How big the some arrays are.  */
 | 
				
			||||||
 | 
					#define _REENT_EMERGENCY_SIZE 25
 | 
				
			||||||
 | 
					#define _REENT_ASCTIME_SIZE 26
 | 
				
			||||||
 | 
					#define _REENT_SIGNAL_SIZE 24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * struct _reent
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This structure contains *all* globals needed by the library.
 | 
				
			||||||
 | 
					 * It's raison d'etre is to facilitate threads by making all library routines
 | 
				
			||||||
 | 
					 * reentrant.  IE: All state information is contained here.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _mprec
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* used by mprec routines */
 | 
				
			||||||
 | 
					  struct _Bigint *_result;
 | 
				
			||||||
 | 
					  int _result_k;
 | 
				
			||||||
 | 
					  struct _Bigint *_p5s;
 | 
				
			||||||
 | 
					  struct _Bigint **_freelist;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _misc_reent
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* miscellaneous reentrant data */
 | 
				
			||||||
 | 
					  char *_strtok_last;
 | 
				
			||||||
 | 
					  _mbstate_t _mblen_state;
 | 
				
			||||||
 | 
					  _mbstate_t _wctomb_state;
 | 
				
			||||||
 | 
					  _mbstate_t _mbtowc_state;
 | 
				
			||||||
 | 
					  char _l64a_buf[8];
 | 
				
			||||||
 | 
					  int _getdate_err;
 | 
				
			||||||
 | 
					  _mbstate_t _mbrlen_state;
 | 
				
			||||||
 | 
					  _mbstate_t _mbrtowc_state;
 | 
				
			||||||
 | 
					  _mbstate_t _mbsrtowcs_state;
 | 
				
			||||||
 | 
					  _mbstate_t _wcrtomb_state;
 | 
				
			||||||
 | 
					  _mbstate_t _wcsrtombs_state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This version of _reent is laid out with "int"s in pairs, to help
 | 
				
			||||||
 | 
					 * ports with 16-bit int's but 32-bit pointers, align nicely.  */
 | 
				
			||||||
 | 
					struct _reent
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* As an exception to the above put _errno first for binary
 | 
				
			||||||
 | 
					     compatibility with non _REENT_SMALL targets.  */
 | 
				
			||||||
 | 
					  int _errno;			/* local copy of errno */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* FILE is a big struct and may change over time.  To try to achieve binary
 | 
				
			||||||
 | 
					     compatibility with future versions, put stdin,stdout,stderr here.
 | 
				
			||||||
 | 
					     These are pointers into member __sf defined below.  */
 | 
				
			||||||
 | 
					  __FILE *_stdin, *_stdout, *_stderr;	/* XXX */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int  _inc;			/* used by tmpnam */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  char *_emergency;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int __sdidinit;		/* 1 means stdio has been init'd */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _current_category;	/* unused */
 | 
				
			||||||
 | 
					  _CONST char *_current_locale;	/* unused */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _mprec *_mp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void _EXFNPTR(__cleanup, (struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _gamma_signgam;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* used by some fp conversion routines */
 | 
				
			||||||
 | 
					  int _cvtlen;			/* should be size_t */
 | 
				
			||||||
 | 
					  char *_cvtbuf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _rand48 *_r48;
 | 
				
			||||||
 | 
					  struct __tm *_localtime_buf;
 | 
				
			||||||
 | 
					  char *_asctime_buf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* signal info */
 | 
				
			||||||
 | 
					  void (**(_sig_func))(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					  /* atexit stuff */
 | 
				
			||||||
 | 
					  struct _atexit *_atexit;
 | 
				
			||||||
 | 
					  struct _atexit _atexit0;
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _glue __sglue;			/* root of glue chain */
 | 
				
			||||||
 | 
					  __FILE *__sf;			        /* file descriptors */
 | 
				
			||||||
 | 
					  struct _misc_reent *_misc;            /* strtok, multibyte states */
 | 
				
			||||||
 | 
					  char *_signal_buf;                    /* strsignal */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern const struct __sFILE_fake __sf_fake_stdin;
 | 
				
			||||||
 | 
					extern const struct __sFILE_fake __sf_fake_stdout;
 | 
				
			||||||
 | 
					extern const struct __sFILE_fake __sf_fake_stderr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define _REENT_INIT(var) \
 | 
				
			||||||
 | 
					  { 0, \
 | 
				
			||||||
 | 
					    (__FILE *)&__sf_fake_stdin, \
 | 
				
			||||||
 | 
					    (__FILE *)&__sf_fake_stdout, \
 | 
				
			||||||
 | 
					    (__FILE *)&__sf_fake_stderr, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    "C", \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _REENT_INIT_ATEXIT \
 | 
				
			||||||
 | 
					    {_NULL, 0, _NULL}, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL \
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT_PTR(var) \
 | 
				
			||||||
 | 
					  { memset((var), 0, sizeof(*(var))); \
 | 
				
			||||||
 | 
					    (var)->_stdin = (__FILE *)&__sf_fake_stdin; \
 | 
				
			||||||
 | 
					    (var)->_stdout = (__FILE *)&__sf_fake_stdout; \
 | 
				
			||||||
 | 
					    (var)->_stderr = (__FILE *)&__sf_fake_stderr; \
 | 
				
			||||||
 | 
					    (var)->_current_locale = "C"; \
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Only built the assert() calls if we are built with debugging.  */
 | 
				
			||||||
 | 
					#if DEBUG
 | 
				
			||||||
 | 
					#include <assert.h>
 | 
				
			||||||
 | 
					#define __reent_assert(x) assert(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __reent_assert(x) ((void)0)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CUSTOM_FILE_IO__
 | 
				
			||||||
 | 
					#error Custom FILE I/O and _REENT_SMALL not currently supported.
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Generic _REENT check macro.  */
 | 
				
			||||||
 | 
					#define _REENT_CHECK(var, what, type, size, init) do { \
 | 
				
			||||||
 | 
					  struct _reent *_r = (var); \
 | 
				
			||||||
 | 
					  if (_r->what == NULL) { \
 | 
				
			||||||
 | 
					    _r->what = (type)malloc(size); \
 | 
				
			||||||
 | 
					    __reent_assert(_r->what); \
 | 
				
			||||||
 | 
					    init; \
 | 
				
			||||||
 | 
					  } \
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_TM(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _localtime_buf, struct __tm *, sizeof *((var)->_localtime_buf), \
 | 
				
			||||||
 | 
					    /* nothing */)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_ASCTIME_BUF(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _asctime_buf, char *, _REENT_ASCTIME_SIZE, \
 | 
				
			||||||
 | 
					    memset((var)->_asctime_buf, 0, _REENT_ASCTIME_SIZE))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Handle the dynamically allocated rand48 structure. */
 | 
				
			||||||
 | 
					#define _REENT_INIT_RAND48(var) do { \
 | 
				
			||||||
 | 
					  struct _reent *_r = (var); \
 | 
				
			||||||
 | 
					  _r->_r48->_seed[0] = _RAND48_SEED_0; \
 | 
				
			||||||
 | 
					  _r->_r48->_seed[1] = _RAND48_SEED_1; \
 | 
				
			||||||
 | 
					  _r->_r48->_seed[2] = _RAND48_SEED_2; \
 | 
				
			||||||
 | 
					  _r->_r48->_mult[0] = _RAND48_MULT_0; \
 | 
				
			||||||
 | 
					  _r->_r48->_mult[1] = _RAND48_MULT_1; \
 | 
				
			||||||
 | 
					  _r->_r48->_mult[2] = _RAND48_MULT_2; \
 | 
				
			||||||
 | 
					  _r->_r48->_add = _RAND48_ADD; \
 | 
				
			||||||
 | 
					  _r->_r48->_rand_next = 1; \
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#define _REENT_CHECK_RAND48(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _r48, struct _rand48 *, sizeof *((var)->_r48), _REENT_INIT_RAND48((var)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT_MP(var) do { \
 | 
				
			||||||
 | 
					  struct _reent *_r = (var); \
 | 
				
			||||||
 | 
					  _r->_mp->_result_k = 0; \
 | 
				
			||||||
 | 
					  _r->_mp->_result = _r->_mp->_p5s = _NULL; \
 | 
				
			||||||
 | 
					  _r->_mp->_freelist = _NULL; \
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#define _REENT_CHECK_MP(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _mp, struct _mprec *, sizeof *((var)->_mp), _REENT_INIT_MP(var))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_EMERGENCY(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT_MISC(var) do { \
 | 
				
			||||||
 | 
					  struct _reent *_r = (var); \
 | 
				
			||||||
 | 
					  _r->_misc->_strtok_last = _NULL; \
 | 
				
			||||||
 | 
					  _r->_misc->_mblen_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mblen_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wctomb_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wctomb_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbtowc_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbtowc_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbrlen_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbrlen_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbrtowc_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbrtowc_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbsrtowcs_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbsrtowcs_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wcrtomb_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wcrtomb_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wcsrtombs_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wcsrtombs_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_l64a_buf[0] = '\0'; \
 | 
				
			||||||
 | 
					  _r->_misc->_getdate_err = 0; \
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#define _REENT_CHECK_MISC(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _misc, struct _misc_reent *, sizeof *((var)->_misc), _REENT_INIT_MISC(var))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_SIGNAL_BUF(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _signal_buf, char *, _REENT_SIGNAL_SIZE, /* nothing */)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_SIGNGAM(ptr)	((ptr)->_gamma_signgam)
 | 
				
			||||||
 | 
					#define _REENT_RAND_NEXT(ptr)	((ptr)->_r48->_rand_next)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_SEED(ptr)	((ptr)->_r48->_seed)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_MULT(ptr)	((ptr)->_r48->_mult)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_ADD(ptr)	((ptr)->_r48->_add)
 | 
				
			||||||
 | 
					#define _REENT_MP_RESULT(ptr)	((ptr)->_mp->_result)
 | 
				
			||||||
 | 
					#define _REENT_MP_RESULT_K(ptr)	((ptr)->_mp->_result_k)
 | 
				
			||||||
 | 
					#define _REENT_MP_P5S(ptr)	((ptr)->_mp->_p5s)
 | 
				
			||||||
 | 
					#define _REENT_MP_FREELIST(ptr)	((ptr)->_mp->_freelist)
 | 
				
			||||||
 | 
					#define _REENT_ASCTIME_BUF(ptr)	((ptr)->_asctime_buf)
 | 
				
			||||||
 | 
					#define _REENT_TM(ptr)		((ptr)->_localtime_buf)
 | 
				
			||||||
 | 
					#define _REENT_EMERGENCY(ptr)	((ptr)->_emergency)
 | 
				
			||||||
 | 
					#define _REENT_STRTOK_LAST(ptr)	((ptr)->_misc->_strtok_last)
 | 
				
			||||||
 | 
					#define _REENT_MBLEN_STATE(ptr)	((ptr)->_misc->_mblen_state)
 | 
				
			||||||
 | 
					#define _REENT_MBTOWC_STATE(ptr)((ptr)->_misc->_mbtowc_state)
 | 
				
			||||||
 | 
					#define _REENT_WCTOMB_STATE(ptr)((ptr)->_misc->_wctomb_state)
 | 
				
			||||||
 | 
					#define _REENT_MBRLEN_STATE(ptr) ((ptr)->_misc->_mbrlen_state)
 | 
				
			||||||
 | 
					#define _REENT_MBRTOWC_STATE(ptr) ((ptr)->_misc->_mbrtowc_state)
 | 
				
			||||||
 | 
					#define _REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_misc->_mbsrtowcs_state)
 | 
				
			||||||
 | 
					#define _REENT_WCRTOMB_STATE(ptr) ((ptr)->_misc->_wcrtomb_state)
 | 
				
			||||||
 | 
					#define _REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_misc->_wcsrtombs_state)
 | 
				
			||||||
 | 
					#define _REENT_L64A_BUF(ptr)    ((ptr)->_misc->_l64a_buf)
 | 
				
			||||||
 | 
					#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_misc->_getdate_err))
 | 
				
			||||||
 | 
					#define _REENT_SIGNAL_BUF(ptr)  ((ptr)->_signal_buf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !_REENT_SMALL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _reent
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int _errno;			/* local copy of errno */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* FILE is a big struct and may change over time.  To try to achieve binary
 | 
				
			||||||
 | 
					     compatibility with future versions, put stdin,stdout,stderr here.
 | 
				
			||||||
 | 
					     These are pointers into member __sf defined below.  */
 | 
				
			||||||
 | 
					  __FILE *_stdin, *_stdout, *_stderr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int  _inc;			/* used by tmpnam */
 | 
				
			||||||
 | 
					  char _emergency[_REENT_EMERGENCY_SIZE];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _current_category;	/* used by setlocale */
 | 
				
			||||||
 | 
					  _CONST char *_current_locale;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int __sdidinit;		/* 1 means stdio has been init'd */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void _EXFNPTR(__cleanup, (struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* used by mprec routines */
 | 
				
			||||||
 | 
					  struct _Bigint *_result;
 | 
				
			||||||
 | 
					  int _result_k;
 | 
				
			||||||
 | 
					  struct _Bigint *_p5s;
 | 
				
			||||||
 | 
					  struct _Bigint **_freelist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* used by some fp conversion routines */
 | 
				
			||||||
 | 
					  int _cvtlen;			/* should be size_t */
 | 
				
			||||||
 | 
					  char *_cvtbuf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  union
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      struct
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          unsigned int _unused_rand;
 | 
				
			||||||
 | 
					          char * _strtok_last;
 | 
				
			||||||
 | 
					          char _asctime_buf[_REENT_ASCTIME_SIZE];
 | 
				
			||||||
 | 
					          struct __tm _localtime_buf;
 | 
				
			||||||
 | 
					          int _gamma_signgam;
 | 
				
			||||||
 | 
					          __extension__ unsigned long long _rand_next;
 | 
				
			||||||
 | 
					          struct _rand48 _r48;
 | 
				
			||||||
 | 
					          _mbstate_t _mblen_state;
 | 
				
			||||||
 | 
					          _mbstate_t _mbtowc_state;
 | 
				
			||||||
 | 
					          _mbstate_t _wctomb_state;
 | 
				
			||||||
 | 
					          char _l64a_buf[8];
 | 
				
			||||||
 | 
					          char _signal_buf[_REENT_SIGNAL_SIZE];
 | 
				
			||||||
 | 
					          int _getdate_err;
 | 
				
			||||||
 | 
					          _mbstate_t _mbrlen_state;
 | 
				
			||||||
 | 
					          _mbstate_t _mbrtowc_state;
 | 
				
			||||||
 | 
					          _mbstate_t _mbsrtowcs_state;
 | 
				
			||||||
 | 
					          _mbstate_t _wcrtomb_state;
 | 
				
			||||||
 | 
					          _mbstate_t _wcsrtombs_state;
 | 
				
			||||||
 | 
						  int _h_errno;
 | 
				
			||||||
 | 
					        } _reent;
 | 
				
			||||||
 | 
					  /* Two next two fields were once used by malloc.  They are no longer
 | 
				
			||||||
 | 
					     used. They are used to preserve the space used before so as to
 | 
				
			||||||
 | 
					     allow addition of new reent fields and keep binary compatibility.   */
 | 
				
			||||||
 | 
					      struct
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					#define _N_LISTS 30
 | 
				
			||||||
 | 
					          unsigned char * _nextf[_N_LISTS];
 | 
				
			||||||
 | 
					          unsigned int _nmalloc[_N_LISTS];
 | 
				
			||||||
 | 
					        } _unused;
 | 
				
			||||||
 | 
					    } _new;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					  /* atexit stuff */
 | 
				
			||||||
 | 
					  struct _atexit *_atexit;	/* points to head of LIFO stack */
 | 
				
			||||||
 | 
					  struct _atexit _atexit0;	/* one guaranteed table, required by ANSI */
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* signal info */
 | 
				
			||||||
 | 
					  void (**(_sig_func))(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* These are here last so that __FILE can grow without changing the offsets
 | 
				
			||||||
 | 
					     of the above members (on the off chance that future binary compatibility
 | 
				
			||||||
 | 
					     would be broken otherwise).  */
 | 
				
			||||||
 | 
					  struct _glue __sglue;		/* root of glue chain */
 | 
				
			||||||
 | 
					  __FILE __sf[3];  		/* first three file descriptors */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT(var) \
 | 
				
			||||||
 | 
					  { 0, \
 | 
				
			||||||
 | 
					    &(var).__sf[0], \
 | 
				
			||||||
 | 
					    &(var).__sf[1], \
 | 
				
			||||||
 | 
					    &(var).__sf[2], \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    "", \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    "C", \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    { \
 | 
				
			||||||
 | 
					      { \
 | 
				
			||||||
 | 
					        0, \
 | 
				
			||||||
 | 
					        _NULL, \
 | 
				
			||||||
 | 
					        "", \
 | 
				
			||||||
 | 
					        {0, 0, 0, 0, 0, 0, 0, 0, 0}, \
 | 
				
			||||||
 | 
					        0, \
 | 
				
			||||||
 | 
					        1, \
 | 
				
			||||||
 | 
					        { \
 | 
				
			||||||
 | 
					          {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, \
 | 
				
			||||||
 | 
					          {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, \
 | 
				
			||||||
 | 
					          _RAND48_ADD \
 | 
				
			||||||
 | 
					        }, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        "", \
 | 
				
			||||||
 | 
					        "", \
 | 
				
			||||||
 | 
					        0, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}} \
 | 
				
			||||||
 | 
					      } \
 | 
				
			||||||
 | 
					    }, \
 | 
				
			||||||
 | 
					    _REENT_INIT_ATEXIT \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    {_NULL, 0, _NULL} \
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT_PTR(var) \
 | 
				
			||||||
 | 
					  { memset((var), 0, sizeof(*(var))); \
 | 
				
			||||||
 | 
					    (var)->_stdin = &(var)->__sf[0]; \
 | 
				
			||||||
 | 
					    (var)->_stdout = &(var)->__sf[1]; \
 | 
				
			||||||
 | 
					    (var)->_stderr = &(var)->__sf[2]; \
 | 
				
			||||||
 | 
					    (var)->_current_locale = "C"; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._rand_next = 1; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._seed[0] = _RAND48_SEED_0; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._seed[1] = _RAND48_SEED_1; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._add = _RAND48_ADD; \
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_RAND48(ptr)	/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_MP(ptr)		/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_TM(ptr)		/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_ASCTIME_BUF(ptr)	/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_EMERGENCY(ptr)	/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_MISC(ptr)	        /* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_SIGNAL_BUF(ptr)	/* nothing */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_SIGNGAM(ptr)	((ptr)->_new._reent._gamma_signgam)
 | 
				
			||||||
 | 
					#define _REENT_RAND_NEXT(ptr)	((ptr)->_new._reent._rand_next)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_SEED(ptr)	((ptr)->_new._reent._r48._seed)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_MULT(ptr)	((ptr)->_new._reent._r48._mult)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_ADD(ptr)	((ptr)->_new._reent._r48._add)
 | 
				
			||||||
 | 
					#define _REENT_MP_RESULT(ptr)	((ptr)->_result)
 | 
				
			||||||
 | 
					#define _REENT_MP_RESULT_K(ptr)	((ptr)->_result_k)
 | 
				
			||||||
 | 
					#define _REENT_MP_P5S(ptr)	((ptr)->_p5s)
 | 
				
			||||||
 | 
					#define _REENT_MP_FREELIST(ptr)	((ptr)->_freelist)
 | 
				
			||||||
 | 
					#define _REENT_ASCTIME_BUF(ptr)	((ptr)->_new._reent._asctime_buf)
 | 
				
			||||||
 | 
					#define _REENT_TM(ptr)		(&(ptr)->_new._reent._localtime_buf)
 | 
				
			||||||
 | 
					#define _REENT_EMERGENCY(ptr)	((ptr)->_emergency)
 | 
				
			||||||
 | 
					#define _REENT_STRTOK_LAST(ptr)	((ptr)->_new._reent._strtok_last)
 | 
				
			||||||
 | 
					#define _REENT_MBLEN_STATE(ptr)	((ptr)->_new._reent._mblen_state)
 | 
				
			||||||
 | 
					#define _REENT_MBTOWC_STATE(ptr)((ptr)->_new._reent._mbtowc_state)
 | 
				
			||||||
 | 
					#define _REENT_WCTOMB_STATE(ptr)((ptr)->_new._reent._wctomb_state)
 | 
				
			||||||
 | 
					#define _REENT_MBRLEN_STATE(ptr)((ptr)->_new._reent._mbrlen_state)
 | 
				
			||||||
 | 
					#define _REENT_MBRTOWC_STATE(ptr)((ptr)->_new._reent._mbrtowc_state)
 | 
				
			||||||
 | 
					#define _REENT_MBSRTOWCS_STATE(ptr)((ptr)->_new._reent._mbsrtowcs_state)
 | 
				
			||||||
 | 
					#define _REENT_WCRTOMB_STATE(ptr)((ptr)->_new._reent._wcrtomb_state)
 | 
				
			||||||
 | 
					#define _REENT_WCSRTOMBS_STATE(ptr)((ptr)->_new._reent._wcsrtombs_state)
 | 
				
			||||||
 | 
					#define _REENT_L64A_BUF(ptr)    ((ptr)->_new._reent._l64a_buf)
 | 
				
			||||||
 | 
					#define _REENT_SIGNAL_BUF(ptr)  ((ptr)->_new._reent._signal_buf)
 | 
				
			||||||
 | 
					#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_REENT_SMALL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This value is used in stdlib/misc.c.  reent/reent.c has to know it
 | 
				
			||||||
 | 
					   as well to make sure the freelist is correctly free'd.  Therefore
 | 
				
			||||||
 | 
					   we define it here, rather than in stdlib/misc.c, as before. */
 | 
				
			||||||
 | 
					#define _Kmax (sizeof (size_t) << 3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * All references to struct _reent are via this pointer.
 | 
				
			||||||
 | 
					 * Internally, newlib routines that need to reference it should use _REENT.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ATTRIBUTE_IMPURE_PTR__
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__;
 | 
				
			||||||
 | 
					extern struct _reent *_CONST _global_impure_ptr __ATTRIBUTE_IMPURE_PTR__;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _reclaim_reent _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* #define _REENT_ONLY define this to get only reentrant routines */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__DYNAMIC_REENT__) && !defined(__SINGLE_THREAD__)
 | 
				
			||||||
 | 
					#ifndef __getreent
 | 
				
			||||||
 | 
					  struct _reent * _EXFUN(__getreent, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					# define _REENT (__getreent())
 | 
				
			||||||
 | 
					#else /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */
 | 
				
			||||||
 | 
					# define _REENT _impure_ptr
 | 
				
			||||||
 | 
					#endif /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _GLOBAL_REENT _global_impure_ptr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					extern struct _atexit *_global_atexit; /* points to head of LIFO stack */
 | 
				
			||||||
 | 
					# define _GLOBAL_ATEXIT _global_atexit
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define _GLOBAL_ATEXIT (_GLOBAL_REENT->_atexit)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_REENT_H_ */
 | 
				
			||||||
							
								
								
									
										17
									
								
								libc/xtensa-lx106-elf/include/sys/resource.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								libc/xtensa-lx106-elf/include/sys/resource.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					#ifndef _SYS_RESOURCE_H_
 | 
				
			||||||
 | 
					#define _SYS_RESOURCE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/time.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	RUSAGE_SELF	0		/* calling process */
 | 
				
			||||||
 | 
					#define	RUSAGE_CHILDREN	-1		/* terminated child processes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct rusage {
 | 
				
			||||||
 | 
					  	struct timeval ru_utime;	/* user time used */
 | 
				
			||||||
 | 
						struct timeval ru_stime;	/* system time used */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(getrusage, (int, struct rusage*));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										67
									
								
								libc/xtensa-lx106-elf/include/sys/sched.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								libc/xtensa-lx106-elf/include/sys/sched.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Written by Joel Sherrill <joel@OARcorp.com>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  COPYRIGHT (c) 1989-2010.
 | 
				
			||||||
 | 
					 *  On-Line Applications Research Corporation (OAR).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Permission to use, copy, modify, and distribute this software for any
 | 
				
			||||||
 | 
					 *  purpose without fee is hereby granted, provided that this entire notice
 | 
				
			||||||
 | 
					 *  is included in all copies of any software which is or includes a copy
 | 
				
			||||||
 | 
					 *  or modification of this software.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 | 
				
			||||||
 | 
					 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 | 
				
			||||||
 | 
					 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_SCHED_H_
 | 
				
			||||||
 | 
					#define _SYS_SCHED_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Scheduling Policies */
 | 
				
			||||||
 | 
					/* Open Group Specifications Issue 6 */
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#define SCHED_OTHER    3
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define SCHED_OTHER    0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCHED_FIFO     1
 | 
				
			||||||
 | 
					#define SCHED_RR       2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_SPORADIC_SERVER)
 | 
				
			||||||
 | 
					#define SCHED_SPORADIC 4
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Scheduling Parameters */
 | 
				
			||||||
 | 
					/* Open Group Specifications Issue 6 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sched_param {
 | 
				
			||||||
 | 
					  int sched_priority;           /* Process execution scheduling priority */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER)
 | 
				
			||||||
 | 
					  int sched_ss_low_priority;    /* Low scheduling priority for sporadic */
 | 
				
			||||||
 | 
					                                /*   server */
 | 
				
			||||||
 | 
					  struct timespec sched_ss_repl_period;
 | 
				
			||||||
 | 
					                                /* Replenishment period for sporadic server */
 | 
				
			||||||
 | 
					  struct timespec sched_ss_init_budget;
 | 
				
			||||||
 | 
					                               /* Initial budget for sporadic server */
 | 
				
			||||||
 | 
					  int sched_ss_max_repl;       /* Maximum pending replenishments for */
 | 
				
			||||||
 | 
					                               /* sporadic server */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* end of include file */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										357
									
								
								libc/xtensa-lx106-elf/include/sys/signal.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										357
									
								
								libc/xtensa-lx106-elf/include/sys/signal.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,357 @@
 | 
				
			||||||
 | 
					/* sys/signal.h */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_SIGNAL_H
 | 
				
			||||||
 | 
					#define _SYS_SIGNAL_H
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* #ifndef __STRICT_ANSI__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Cygwin defines it's own sigset_t in include/cygwin/signal.h */
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					typedef unsigned long sigset_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_REALTIME_SIGNALS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* sigev_notify values
 | 
				
			||||||
 | 
					   NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SIGEV_NONE   1  /* No asynchronous notification shall be delivered */
 | 
				
			||||||
 | 
					                        /*   when the event of interest occurs. */
 | 
				
			||||||
 | 
					#define SIGEV_SIGNAL 2  /* A queued signal, with an application defined */
 | 
				
			||||||
 | 
					                        /*  value, shall be delivered when the event of */
 | 
				
			||||||
 | 
					                        /*  interest occurs. */
 | 
				
			||||||
 | 
					#define SIGEV_THREAD 3  /* A notification function shall be called to */
 | 
				
			||||||
 | 
					                        /*   perform notification. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  Signal Generation and Delivery, P1003.1b-1993, p. 63
 | 
				
			||||||
 | 
					    NOTE: P1003.1c/D10, p. 34 adds sigev_notify_function and
 | 
				
			||||||
 | 
					          sigev_notify_attributes to the sigevent structure.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					union sigval {
 | 
				
			||||||
 | 
					  int    sival_int;    /* Integer signal value */
 | 
				
			||||||
 | 
					  void  *sival_ptr;    /* Pointer signal value */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sigevent {
 | 
				
			||||||
 | 
					  int              sigev_notify;               /* Notification type */
 | 
				
			||||||
 | 
					  int              sigev_signo;                /* Signal number */
 | 
				
			||||||
 | 
					  union sigval     sigev_value;                /* Signal value */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS)
 | 
				
			||||||
 | 
					  void           (*sigev_notify_function)( union sigval );
 | 
				
			||||||
 | 
					                                               /* Notification function */
 | 
				
			||||||
 | 
					  pthread_attr_t  *sigev_notify_attributes;    /* Notification Attributes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Signal Actions, P1003.1b-1993, p. 64 */
 | 
				
			||||||
 | 
					/* si_code values, p. 66 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SI_USER    1    /* Sent by a user. kill(), abort(), etc */
 | 
				
			||||||
 | 
					#define SI_QUEUE   2    /* Sent by sigqueue() */
 | 
				
			||||||
 | 
					#define SI_TIMER   3    /* Sent by expiration of a timer_settime() timer */
 | 
				
			||||||
 | 
					#define SI_ASYNCIO 4    /* Indicates completion of asycnhronous IO */
 | 
				
			||||||
 | 
					#define SI_MESGQ   5    /* Indicates arrival of a message at an empty queue */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int          si_signo;    /* Signal number */
 | 
				
			||||||
 | 
					  int          si_code;     /* Cause of the signal */
 | 
				
			||||||
 | 
					  union sigval si_value;    /* Signal value */
 | 
				
			||||||
 | 
					} siginfo_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SA_NOCLDSTOP 0x1   /* Do not generate SIGCHLD when children stop */
 | 
				
			||||||
 | 
					#define SA_SIGINFO   0x2   /* Invoke the signal catching function with */
 | 
				
			||||||
 | 
					                           /*   three arguments instead of one. */
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
 | 
				
			||||||
 | 
					#define SA_ONSTACK   0x4   /* Signal delivery will be on a separate stack. */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* struct sigaction notes from POSIX:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (1) Routines stored in sa_handler should take a single int as
 | 
				
			||||||
 | 
					 *      their argument although the POSIX standard does not require this.
 | 
				
			||||||
 | 
					 *      This is not longer true since at least POSIX.1-2008
 | 
				
			||||||
 | 
					 *  (2) The fields sa_handler and sa_sigaction may overlap, and a conforming
 | 
				
			||||||
 | 
					 *      application should not use both simultaneously.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef void (*_sig_func_ptr)(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sigaction {
 | 
				
			||||||
 | 
					  int         sa_flags;       /* Special flags to affect behavior of signal */
 | 
				
			||||||
 | 
					  sigset_t    sa_mask;        /* Additional set of signals to be blocked */
 | 
				
			||||||
 | 
					                              /*   during execution of signal-catching */
 | 
				
			||||||
 | 
					                              /*   function. */
 | 
				
			||||||
 | 
					  union {
 | 
				
			||||||
 | 
					    _sig_func_ptr _handler;  /* SIG_DFL, SIG_IGN, or pointer to a function */
 | 
				
			||||||
 | 
					#if defined(_POSIX_REALTIME_SIGNALS)
 | 
				
			||||||
 | 
					    void      (*_sigaction)( int, siginfo_t *, void * );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  } _signal_handlers;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define sa_handler    _signal_handlers._handler
 | 
				
			||||||
 | 
					#if defined(_POSIX_REALTIME_SIGNALS)
 | 
				
			||||||
 | 
					#define sa_sigaction  _signal_handlers._sigaction
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Minimum and default signal stack constants. Allow for target overrides
 | 
				
			||||||
 | 
					 * from <sys/features.h>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef	MINSIGSTKSZ
 | 
				
			||||||
 | 
					#define	MINSIGSTKSZ	2048
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef	SIGSTKSZ
 | 
				
			||||||
 | 
					#define	SIGSTKSZ	8192
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Possible values for ss_flags in stack_t below.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	SS_ONSTACK	0x1
 | 
				
			||||||
 | 
					#define	SS_DISABLE	0x2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Structure used in sigaltstack call.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef struct sigaltstack {
 | 
				
			||||||
 | 
					  void     *ss_sp;    /* Stack base or pointer.  */
 | 
				
			||||||
 | 
					  int       ss_flags; /* Flags.  */
 | 
				
			||||||
 | 
					  size_t    ss_size;  /* Stack size.  */
 | 
				
			||||||
 | 
					} stack_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#elif defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#include <cygwin/signal.h>
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define SA_NOCLDSTOP 1  /* only value supported now for sa_flags */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef void (*_sig_func_ptr)(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sigaction 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						_sig_func_ptr sa_handler;
 | 
				
			||||||
 | 
						sigset_t sa_mask;
 | 
				
			||||||
 | 
						int sa_flags;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif /* defined(__rtems__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SIG_SETMASK 0	/* set mask with sigprocmask() */
 | 
				
			||||||
 | 
					#define SIG_BLOCK 1	/* set of signals to block */
 | 
				
			||||||
 | 
					#define SIG_UNBLOCK 2	/* set of signals to, well, unblock */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* These depend upon the type of sigset_t, which right now 
 | 
				
			||||||
 | 
					   is always a long.. They're in the POSIX namespace, but
 | 
				
			||||||
 | 
					   are not ANSI. */
 | 
				
			||||||
 | 
					#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0)
 | 
				
			||||||
 | 
					#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0)
 | 
				
			||||||
 | 
					#define sigemptyset(what)   (*(what) = 0, 0)
 | 
				
			||||||
 | 
					#define sigfillset(what)    (*(what) = ~(0), 0)
 | 
				
			||||||
 | 
					#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(sigprocmask, (int how, const sigset_t *set, sigset_t *oset));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS)
 | 
				
			||||||
 | 
					int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					#undef sigaddset
 | 
				
			||||||
 | 
					#undef sigdelset
 | 
				
			||||||
 | 
					#undef sigemptyset
 | 
				
			||||||
 | 
					#undef sigfillset
 | 
				
			||||||
 | 
					#undef sigismember
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int _EXFUN(_kill, (pid_t, int));
 | 
				
			||||||
 | 
					#endif /* _COMPILING_NEWLIB */
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ || __rtems__ */
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__)
 | 
				
			||||||
 | 
					int _EXFUN(kill, (pid_t, int));
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ || __rtems__ || __SPU__ */
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int _EXFUN(killpg, (pid_t, int));
 | 
				
			||||||
 | 
					int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *));
 | 
				
			||||||
 | 
					int _EXFUN(sigaddset, (sigset_t *, const int));
 | 
				
			||||||
 | 
					int _EXFUN(sigdelset, (sigset_t *, const int));
 | 
				
			||||||
 | 
					int _EXFUN(sigismember, (const sigset_t *, int));
 | 
				
			||||||
 | 
					int _EXFUN(sigfillset, (sigset_t *));
 | 
				
			||||||
 | 
					int _EXFUN(sigemptyset, (sigset_t *));
 | 
				
			||||||
 | 
					int _EXFUN(sigpending, (sigset_t *));
 | 
				
			||||||
 | 
					int _EXFUN(sigsuspend, (const sigset_t *));
 | 
				
			||||||
 | 
					int _EXFUN(sigpause, (int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __rtems__
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
 | 
				
			||||||
 | 
					int _EXFUN(sigaltstack, (const stack_t *__restrict, stack_t *__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS)
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#  ifndef _CYGWIN_TYPES_H
 | 
				
			||||||
 | 
					#    error You need the winsup sources or a cygwin installation to compile the cygwin version of newlib.
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int _EXFUN(pthread_kill, (pthread_t thread, int sig));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_REALTIME_SIGNALS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76
 | 
				
			||||||
 | 
					    NOTE: P1003.1c/D10, p. 39 adds sigwait().  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(sigwaitinfo, (const sigset_t *set, siginfo_t *info));
 | 
				
			||||||
 | 
					int _EXFUN(sigtimedwait,
 | 
				
			||||||
 | 
					  (const sigset_t *set, siginfo_t *info, const struct timespec  *timeout)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(sigwait, (const sigset_t *set, int *sig));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */
 | 
				
			||||||
 | 
					int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_REALTIME_SIGNALS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(__CYGWIN__) || defined(__rtems__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* #endif __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(___AM29K__)
 | 
				
			||||||
 | 
					/* These all need to be defined for ANSI C, but I don't think they are
 | 
				
			||||||
 | 
					   meaningful.  */
 | 
				
			||||||
 | 
					#define SIGABRT 1
 | 
				
			||||||
 | 
					#define SIGFPE 1
 | 
				
			||||||
 | 
					#define SIGILL 1
 | 
				
			||||||
 | 
					#define SIGINT 1
 | 
				
			||||||
 | 
					#define SIGSEGV 1
 | 
				
			||||||
 | 
					#define SIGTERM 1
 | 
				
			||||||
 | 
					/* These need to be defined for POSIX, and some others do too.  */
 | 
				
			||||||
 | 
					#define SIGHUP 1
 | 
				
			||||||
 | 
					#define SIGQUIT 1
 | 
				
			||||||
 | 
					#define NSIG 2
 | 
				
			||||||
 | 
					#elif defined(__GO32__)
 | 
				
			||||||
 | 
					#define SIGINT  1
 | 
				
			||||||
 | 
					#define SIGKILL 2
 | 
				
			||||||
 | 
					#define SIGPIPE 3
 | 
				
			||||||
 | 
					#define SIGFPE  4
 | 
				
			||||||
 | 
					#define SIGHUP  5
 | 
				
			||||||
 | 
					#define SIGTERM 6
 | 
				
			||||||
 | 
					#define SIGSEGV 7
 | 
				
			||||||
 | 
					#define SIGTSTP 8
 | 
				
			||||||
 | 
					#define SIGQUIT 9
 | 
				
			||||||
 | 
					#define SIGTRAP 10
 | 
				
			||||||
 | 
					#define SIGILL  11
 | 
				
			||||||
 | 
					#define SIGEMT  12
 | 
				
			||||||
 | 
					#define SIGALRM 13
 | 
				
			||||||
 | 
					#define SIGBUS  14
 | 
				
			||||||
 | 
					#define SIGLOST 15
 | 
				
			||||||
 | 
					#define SIGSTOP 16
 | 
				
			||||||
 | 
					#define SIGABRT 17
 | 
				
			||||||
 | 
					#define SIGUSR1	18
 | 
				
			||||||
 | 
					#define SIGUSR2	19
 | 
				
			||||||
 | 
					#define NSIG    20
 | 
				
			||||||
 | 
					#elif !defined(SIGTRAP)
 | 
				
			||||||
 | 
					#define	SIGHUP	1	/* hangup */
 | 
				
			||||||
 | 
					#define	SIGINT	2	/* interrupt */
 | 
				
			||||||
 | 
					#define	SIGQUIT	3	/* quit */
 | 
				
			||||||
 | 
					#define	SIGILL	4	/* illegal instruction (not reset when caught) */
 | 
				
			||||||
 | 
					#define	SIGTRAP	5	/* trace trap (not reset when caught) */
 | 
				
			||||||
 | 
					#define	SIGIOT	6	/* IOT instruction */
 | 
				
			||||||
 | 
					#define	SIGABRT 6	/* used by abort, replace SIGIOT in the future */
 | 
				
			||||||
 | 
					#define	SIGEMT	7	/* EMT instruction */
 | 
				
			||||||
 | 
					#define	SIGFPE	8	/* floating point exception */
 | 
				
			||||||
 | 
					#define	SIGKILL	9	/* kill (cannot be caught or ignored) */
 | 
				
			||||||
 | 
					#define	SIGBUS	10	/* bus error */
 | 
				
			||||||
 | 
					#define	SIGSEGV	11	/* segmentation violation */
 | 
				
			||||||
 | 
					#define	SIGSYS	12	/* bad argument to system call */
 | 
				
			||||||
 | 
					#define	SIGPIPE	13	/* write on a pipe with no one to read it */
 | 
				
			||||||
 | 
					#define	SIGALRM	14	/* alarm clock */
 | 
				
			||||||
 | 
					#define	SIGTERM	15	/* software termination signal from kill */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#define	SIGURG	16	/* urgent condition on IO channel */
 | 
				
			||||||
 | 
					#define	SIGSTOP	17	/* sendable stop signal not from tty */
 | 
				
			||||||
 | 
					#define	SIGTSTP	18	/* stop signal from tty */
 | 
				
			||||||
 | 
					#define	SIGCONT	19	/* continue a stopped process */
 | 
				
			||||||
 | 
					#define	SIGCHLD	20	/* to parent on child stop or exit */
 | 
				
			||||||
 | 
					#define	SIGCLD	20	/* System V name for SIGCHLD */
 | 
				
			||||||
 | 
					#define	SIGTTIN	21	/* to readers pgrp upon background tty read */
 | 
				
			||||||
 | 
					#define	SIGTTOU	22	/* like TTIN for output if (tp->t_local<OSTOP) */
 | 
				
			||||||
 | 
					#define	SIGIO	23	/* input/output possible signal */
 | 
				
			||||||
 | 
					#define	SIGPOLL	SIGIO	/* System V name for SIGIO */
 | 
				
			||||||
 | 
					#define	SIGWINCH 24	/* window changed */
 | 
				
			||||||
 | 
					#define	SIGUSR1 25	/* user defined signal 1 */
 | 
				
			||||||
 | 
					#define	SIGUSR2 26	/* user defined signal 2 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Real-Time Signals Range, P1003.1b-1993, p. 61
 | 
				
			||||||
 | 
					   NOTE: By P1003.1b-1993, this should be at least RTSIG_MAX
 | 
				
			||||||
 | 
					         (which is a minimum of 8) signals.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define SIGRTMIN 27
 | 
				
			||||||
 | 
					#define SIGRTMAX 31
 | 
				
			||||||
 | 
					#define __SIGFIRSTNOTRT SIGHUP
 | 
				
			||||||
 | 
					#define __SIGLASTNOTRT  SIGUSR2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define NSIG	32      /* signal 0 implied */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#elif defined(__svr4__)
 | 
				
			||||||
 | 
					/* svr4 specifics. different signals above 15, and sigaction. */
 | 
				
			||||||
 | 
					#define	SIGUSR1	16
 | 
				
			||||||
 | 
					#define SIGUSR2	17
 | 
				
			||||||
 | 
					#define SIGCLD	18
 | 
				
			||||||
 | 
					#define	SIGPWR	19
 | 
				
			||||||
 | 
					#define SIGWINCH 20
 | 
				
			||||||
 | 
					#define	SIGPOLL	22	/* 20 for x.out binaries!!!! */
 | 
				
			||||||
 | 
					#define	SIGSTOP	23	/* sendable stop signal not from tty */
 | 
				
			||||||
 | 
					#define	SIGTSTP	24	/* stop signal from tty */
 | 
				
			||||||
 | 
					#define	SIGCONT	25	/* continue a stopped process */
 | 
				
			||||||
 | 
					#define	SIGTTIN	26	/* to readers pgrp upon background tty read */
 | 
				
			||||||
 | 
					#define	SIGTTOU	27	/* like TTIN for output if (tp->t_local<OSTOP) */
 | 
				
			||||||
 | 
					#define NSIG	28	
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	SIGURG	16	/* urgent condition on IO channel */
 | 
				
			||||||
 | 
					#define	SIGSTOP	17	/* sendable stop signal not from tty */
 | 
				
			||||||
 | 
					#define	SIGTSTP	18	/* stop signal from tty */
 | 
				
			||||||
 | 
					#define	SIGCONT	19	/* continue a stopped process */
 | 
				
			||||||
 | 
					#define	SIGCHLD	20	/* to parent on child stop or exit */
 | 
				
			||||||
 | 
					#define	SIGCLD	20	/* System V name for SIGCHLD */
 | 
				
			||||||
 | 
					#define	SIGTTIN	21	/* to readers pgrp upon background tty read */
 | 
				
			||||||
 | 
					#define	SIGTTOU	22	/* like TTIN for output if (tp->t_local<OSTOP) */
 | 
				
			||||||
 | 
					#define	SIGIO	23	/* input/output possible signal */
 | 
				
			||||||
 | 
					#define	SIGPOLL	SIGIO	/* System V name for SIGIO */
 | 
				
			||||||
 | 
					#define	SIGXCPU	24	/* exceeded CPU time limit */
 | 
				
			||||||
 | 
					#define	SIGXFSZ	25	/* exceeded file size limit */
 | 
				
			||||||
 | 
					#define	SIGVTALRM 26	/* virtual time alarm */
 | 
				
			||||||
 | 
					#define	SIGPROF	27	/* profiling time alarm */
 | 
				
			||||||
 | 
					#define	SIGWINCH 28	/* window changed */
 | 
				
			||||||
 | 
					#define	SIGLOST 29	/* resource lost (eg, record-lock lost) */
 | 
				
			||||||
 | 
					#define	SIGUSR1 30	/* user defined signal 1 */
 | 
				
			||||||
 | 
					#define	SIGUSR2 31	/* user defined signal 2 */
 | 
				
			||||||
 | 
					#define NSIG	32      /* signal 0 implied */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SIGNAL_H_
 | 
				
			||||||
 | 
					/* Some applications take advantage of the fact that <sys/signal.h>
 | 
				
			||||||
 | 
					 * and <signal.h> are equivalent in glibc.  Allow for that here.  */
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_SIGNAL_H */
 | 
				
			||||||
							
								
								
									
										192
									
								
								libc/xtensa-lx106-elf/include/sys/stat.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										192
									
								
								libc/xtensa-lx106-elf/include/sys/stat.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,192 @@
 | 
				
			||||||
 | 
					#ifndef	_SYS_STAT_H
 | 
				
			||||||
 | 
					#define	_SYS_STAT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* dj's stat defines _STAT_H_ */
 | 
				
			||||||
 | 
					#ifndef _STAT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* It is intended that the layout of this structure not change when the
 | 
				
			||||||
 | 
					   sizes of any of the basic types change (short, int, long) [via a compile
 | 
				
			||||||
 | 
					   time option].  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/stat.h>
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					#define stat64 stat
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					struct	stat 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  dev_t		st_dev;
 | 
				
			||||||
 | 
					  ino_t		st_ino;
 | 
				
			||||||
 | 
					  mode_t	st_mode;
 | 
				
			||||||
 | 
					  nlink_t	st_nlink;
 | 
				
			||||||
 | 
					  uid_t		st_uid;
 | 
				
			||||||
 | 
					  gid_t		st_gid;
 | 
				
			||||||
 | 
					  dev_t		st_rdev;
 | 
				
			||||||
 | 
					  off_t		st_size;
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					  struct timespec st_atim;
 | 
				
			||||||
 | 
					  struct timespec st_mtim;
 | 
				
			||||||
 | 
					  struct timespec st_ctim;
 | 
				
			||||||
 | 
					  blksize_t     st_blksize;
 | 
				
			||||||
 | 
					  blkcnt_t	st_blocks;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  /* SysV/sco doesn't have the rest... But Solaris, eabi does.  */
 | 
				
			||||||
 | 
					#if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__)
 | 
				
			||||||
 | 
					  time_t	st_atime;
 | 
				
			||||||
 | 
					  time_t	st_mtime;
 | 
				
			||||||
 | 
					  time_t	st_ctime;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  time_t	st_atime;
 | 
				
			||||||
 | 
					  long		st_spare1;
 | 
				
			||||||
 | 
					  time_t	st_mtime;
 | 
				
			||||||
 | 
					  long		st_spare2;
 | 
				
			||||||
 | 
					  time_t	st_ctime;
 | 
				
			||||||
 | 
					  long		st_spare3;
 | 
				
			||||||
 | 
					  long		st_blksize;
 | 
				
			||||||
 | 
					  long		st_blocks;
 | 
				
			||||||
 | 
					  long	st_spare4[2];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#define st_atime st_atim.tv_sec
 | 
				
			||||||
 | 
					#define st_ctime st_ctim.tv_sec
 | 
				
			||||||
 | 
					#define st_mtime st_mtim.tv_sec
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_IFMT		0170000	/* type of file */
 | 
				
			||||||
 | 
					#define		_IFDIR	0040000	/* directory */
 | 
				
			||||||
 | 
					#define		_IFCHR	0020000	/* character special */
 | 
				
			||||||
 | 
					#define		_IFBLK	0060000	/* block special */
 | 
				
			||||||
 | 
					#define		_IFREG	0100000	/* regular */
 | 
				
			||||||
 | 
					#define		_IFLNK	0120000	/* symbolic link */
 | 
				
			||||||
 | 
					#define		_IFSOCK	0140000	/* socket */
 | 
				
			||||||
 | 
					#define		_IFIFO	0010000	/* fifo */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define 	S_BLKSIZE  1024 /* size of a block */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	S_ISUID		0004000	/* set user id on execution */
 | 
				
			||||||
 | 
					#define	S_ISGID		0002000	/* set group id on execution */
 | 
				
			||||||
 | 
					#define	S_ISVTX		0001000	/* save swapped text even after use */
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					#define	S_IREAD		0000400	/* read permission, owner */
 | 
				
			||||||
 | 
					#define	S_IWRITE 	0000200	/* write permission, owner */
 | 
				
			||||||
 | 
					#define	S_IEXEC		0000100	/* execute/search permission, owner */
 | 
				
			||||||
 | 
					#define	S_ENFMT 	0002000	/* enforcement-mode locking */
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	S_IFMT		_IFMT
 | 
				
			||||||
 | 
					#define	S_IFDIR		_IFDIR
 | 
				
			||||||
 | 
					#define	S_IFCHR		_IFCHR
 | 
				
			||||||
 | 
					#define	S_IFBLK		_IFBLK
 | 
				
			||||||
 | 
					#define	S_IFREG		_IFREG
 | 
				
			||||||
 | 
					#define	S_IFLNK		_IFLNK
 | 
				
			||||||
 | 
					#define	S_IFSOCK	_IFSOCK
 | 
				
			||||||
 | 
					#define	S_IFIFO		_IFIFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _WIN32
 | 
				
			||||||
 | 
					/* The Windows header files define _S_ forms of these, so we do too
 | 
				
			||||||
 | 
					   for easier portability.  */
 | 
				
			||||||
 | 
					#define _S_IFMT		_IFMT
 | 
				
			||||||
 | 
					#define _S_IFDIR	_IFDIR
 | 
				
			||||||
 | 
					#define _S_IFCHR	_IFCHR
 | 
				
			||||||
 | 
					#define _S_IFIFO	_IFIFO
 | 
				
			||||||
 | 
					#define _S_IFREG	_IFREG
 | 
				
			||||||
 | 
					#define _S_IREAD	0000400
 | 
				
			||||||
 | 
					#define _S_IWRITE	0000200
 | 
				
			||||||
 | 
					#define _S_IEXEC	0000100
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	S_IRWXU 	(S_IRUSR | S_IWUSR | S_IXUSR)
 | 
				
			||||||
 | 
					#define		S_IRUSR	0000400	/* read permission, owner */
 | 
				
			||||||
 | 
					#define		S_IWUSR	0000200	/* write permission, owner */
 | 
				
			||||||
 | 
					#define		S_IXUSR 0000100/* execute/search permission, owner */
 | 
				
			||||||
 | 
					#define	S_IRWXG		(S_IRGRP | S_IWGRP | S_IXGRP)
 | 
				
			||||||
 | 
					#define		S_IRGRP	0000040	/* read permission, group */
 | 
				
			||||||
 | 
					#define		S_IWGRP	0000020	/* write permission, grougroup */
 | 
				
			||||||
 | 
					#define		S_IXGRP 0000010/* execute/search permission, group */
 | 
				
			||||||
 | 
					#define	S_IRWXO		(S_IROTH | S_IWOTH | S_IXOTH)
 | 
				
			||||||
 | 
					#define		S_IROTH	0000004	/* read permission, other */
 | 
				
			||||||
 | 
					#define		S_IWOTH	0000002	/* write permission, other */
 | 
				
			||||||
 | 
					#define		S_IXOTH 0000001/* execute/search permission, other */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _POSIX_SOURCE
 | 
				
			||||||
 | 
					#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */
 | 
				
			||||||
 | 
					#define ALLPERMS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */
 | 
				
			||||||
 | 
					#define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	S_ISBLK(m)	(((m)&_IFMT) == _IFBLK)
 | 
				
			||||||
 | 
					#define	S_ISCHR(m)	(((m)&_IFMT) == _IFCHR)
 | 
				
			||||||
 | 
					#define	S_ISDIR(m)	(((m)&_IFMT) == _IFDIR)
 | 
				
			||||||
 | 
					#define	S_ISFIFO(m)	(((m)&_IFMT) == _IFIFO)
 | 
				
			||||||
 | 
					#define	S_ISREG(m)	(((m)&_IFMT) == _IFREG)
 | 
				
			||||||
 | 
					#define	S_ISLNK(m)	(((m)&_IFMT) == _IFLNK)
 | 
				
			||||||
 | 
					#define	S_ISSOCK(m)	(((m)&_IFMT) == _IFSOCK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					/* Special tv_nsec values for futimens(2) and utimensat(2). */
 | 
				
			||||||
 | 
					#define UTIME_NOW	-2L
 | 
				
			||||||
 | 
					#define UTIME_OMIT	-1L
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(chmod,( const char *__path, mode_t __mode ));
 | 
				
			||||||
 | 
					int     _EXFUN(fchmod,(int __fd, mode_t __mode));
 | 
				
			||||||
 | 
					int	_EXFUN(fstat,( int __fd, struct stat *__sbuf ));
 | 
				
			||||||
 | 
					int	_EXFUN(mkdir,( const char *_path, mode_t __mode ));
 | 
				
			||||||
 | 
					int	_EXFUN(mkfifo,( const char *__path, mode_t __mode ));
 | 
				
			||||||
 | 
					int	_EXFUN(stat,( const char *__restrict __path, struct stat *__restrict __sbuf ));
 | 
				
			||||||
 | 
					mode_t	_EXFUN(umask,( mode_t __mask ));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__SPU__) || defined(__rtems__) || defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(lstat,( const char *__restrict __path, struct stat *__restrict __buf ));
 | 
				
			||||||
 | 
					int	_EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (__POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(fchmodat, (int, const char *, mode_t, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(fstatat, (int, const char *__restrict , struct stat *__restrict, int));
 | 
				
			||||||
 | 
					int	_EXFUN(mkdirat, (int, const char *, mode_t));
 | 
				
			||||||
 | 
					int	_EXFUN(mkfifoat, (int, const char *, mode_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if (__BSD_VISIBLE || __XSI_VISIBLE >= 700 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(mknodat, (int, const char *, mode_t, dev_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(utimensat, (int, const char *, const struct timespec *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(futimens, (int, const struct timespec *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Provide prototypes for most of the _<systemcall> names that are
 | 
				
			||||||
 | 
					   provided in newlib for some compilers.  */
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(_fstat,( int __fd, struct stat *__sbuf ));
 | 
				
			||||||
 | 
					int	_EXFUN(_stat,( const char *__restrict __path, struct stat *__restrict __sbuf ));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkdir,( const char *_path, mode_t __mode ));
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					struct stat64;
 | 
				
			||||||
 | 
					int	_EXFUN(_stat64,( const char *__restrict __path, struct stat64 *__restrict __sbuf ));
 | 
				
			||||||
 | 
					int	_EXFUN(_fstat64,( int __fd, struct stat64 *__sbuf ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_STAT_H_ */
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_STAT_H */
 | 
				
			||||||
							
								
								
									
										27
									
								
								libc/xtensa-lx106-elf/include/sys/stdio.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								libc/xtensa-lx106-elf/include/sys/stdio.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					#ifndef _NEWLIB_STDIO_H
 | 
				
			||||||
 | 
					#define _NEWLIB_STDIO_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/lock.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Internal locking macros, used to protect stdio functions.  In the
 | 
				
			||||||
 | 
					   general case, expand to nothing. Use __SSTR flag in FILE _flags to
 | 
				
			||||||
 | 
					   detect if FILE is private to sprintf/sscanf class of functions; if
 | 
				
			||||||
 | 
					   set then do nothing as lock is not initialised. */
 | 
				
			||||||
 | 
					#if !defined(_flockfile)
 | 
				
			||||||
 | 
					#ifndef __SINGLE_THREAD__
 | 
				
			||||||
 | 
					#  define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#  define _flockfile(fp)	(_CAST_VOID 0)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(_funlockfile)
 | 
				
			||||||
 | 
					#ifndef __SINGLE_THREAD__
 | 
				
			||||||
 | 
					#  define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#  define _funlockfile(fp)	(_CAST_VOID 0)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _NEWLIB_STDIO_H */
 | 
				
			||||||
							
								
								
									
										2
									
								
								libc/xtensa-lx106-elf/include/sys/string.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								libc/xtensa-lx106-elf/include/sys/string.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					/* This is a dummy <sys/string.h> used as a placeholder for
 | 
				
			||||||
 | 
					   systems that need to have a special header file.  */
 | 
				
			||||||
							
								
								
									
										65
									
								
								libc/xtensa-lx106-elf/include/sys/syslimits.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								libc/xtensa-lx106-elf/include/sys/syslimits.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,65 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 1988, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 3. All advertising materials mentioning features or use of this software
 | 
				
			||||||
 | 
					 *    must display the following acknowledgement:
 | 
				
			||||||
 | 
					 *	This product includes software developed by the University of
 | 
				
			||||||
 | 
					 *	California, Berkeley and its contributors.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)syslimits.h	8.1 (Berkeley) 6/2/93
 | 
				
			||||||
 | 
					 * $FreeBSD: src/sys/sys/syslimits.h,v 1.10 2001/06/18 20:24:54 wollman Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_SYSLIMITS_H_
 | 
				
			||||||
 | 
					#define _SYS_SYSLIMITS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	ARG_MAX			65536	/* max bytes for an exec function */
 | 
				
			||||||
 | 
					#ifndef CHILD_MAX
 | 
				
			||||||
 | 
					#define	CHILD_MAX		   40	/* max simultaneous processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	LINK_MAX		32767	/* max file link count */
 | 
				
			||||||
 | 
					#define	MAX_CANON		  255	/* max bytes in term canon input line */
 | 
				
			||||||
 | 
					#define	MAX_INPUT		  255	/* max bytes in terminal input */
 | 
				
			||||||
 | 
					#define	NAME_MAX		  255	/* max bytes in a file name */
 | 
				
			||||||
 | 
					#define	NGROUPS_MAX		   16	/* max supplemental group id's */
 | 
				
			||||||
 | 
					#ifndef OPEN_MAX
 | 
				
			||||||
 | 
					#define	OPEN_MAX		   64	/* max open files per process */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	PATH_MAX		 1024	/* max bytes in pathname */
 | 
				
			||||||
 | 
					#define	PIPE_BUF		  512	/* max bytes for atomic pipe writes */
 | 
				
			||||||
 | 
					#define	IOV_MAX			 1024	/* max elements in i/o vector */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	BC_BASE_MAX		   99	/* max ibase/obase values in bc(1) */
 | 
				
			||||||
 | 
					#define	BC_DIM_MAX		 2048	/* max array elements in bc(1) */
 | 
				
			||||||
 | 
					#define	BC_SCALE_MAX		   99	/* max scale value in bc(1) */
 | 
				
			||||||
 | 
					#define	BC_STRING_MAX		 1000	/* max const string length in bc(1) */
 | 
				
			||||||
 | 
					#define	COLL_WEIGHTS_MAX	    0	/* max weights for order keyword */
 | 
				
			||||||
 | 
					#define	EXPR_NEST_MAX		   32	/* max expressions nested in expr(1) */
 | 
				
			||||||
 | 
					#define	LINE_MAX		 2048	/* max bytes in an input line */
 | 
				
			||||||
 | 
					#define	RE_DUP_MAX		  255	/* max RE's in interval notation */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										91
									
								
								libc/xtensa-lx106-elf/include/sys/time.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								libc/xtensa-lx106-elf/include/sys/time.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,91 @@
 | 
				
			||||||
 | 
					/* time.h -- An implementation of the standard Unix <sys/time.h> file.
 | 
				
			||||||
 | 
					   Written by Geoffrey Noer <noer@cygnus.com>
 | 
				
			||||||
 | 
					   Public domain; no rights reserved. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_TIME_H_
 | 
				
			||||||
 | 
					#define _SYS_TIME_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _TIMEVAL_DEFINED
 | 
				
			||||||
 | 
					#define _TIMEVAL_DEFINED
 | 
				
			||||||
 | 
					struct timeval {
 | 
				
			||||||
 | 
					  time_t      tv_sec;
 | 
				
			||||||
 | 
					  suseconds_t tv_usec;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* BSD time macros used by RTEMS code */
 | 
				
			||||||
 | 
					#if defined (__rtems__) || defined (__CYGWIN__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Convenience macros for operations on timevals.
 | 
				
			||||||
 | 
					   NOTE: `timercmp' does not work for >= or <=.  */
 | 
				
			||||||
 | 
					#define	timerisset(tvp)		((tvp)->tv_sec || (tvp)->tv_usec)
 | 
				
			||||||
 | 
					#define	timerclear(tvp)		((tvp)->tv_sec = (tvp)->tv_usec = 0)
 | 
				
			||||||
 | 
					#define	timercmp(a, b, CMP) 						      \
 | 
				
			||||||
 | 
					  (((a)->tv_sec == (b)->tv_sec) ? 					      \
 | 
				
			||||||
 | 
					   ((a)->tv_usec CMP (b)->tv_usec) : 					      \
 | 
				
			||||||
 | 
					   ((a)->tv_sec CMP (b)->tv_sec))
 | 
				
			||||||
 | 
					#define	timeradd(a, b, result)						      \
 | 
				
			||||||
 | 
					  do {									      \
 | 
				
			||||||
 | 
					    (result)->tv_sec = (a)->tv_sec + (b)->tv_sec;			      \
 | 
				
			||||||
 | 
					    (result)->tv_usec = (a)->tv_usec + (b)->tv_usec;			      \
 | 
				
			||||||
 | 
					    if ((result)->tv_usec >= 1000000)					      \
 | 
				
			||||||
 | 
					      {									      \
 | 
				
			||||||
 | 
						++(result)->tv_sec;						      \
 | 
				
			||||||
 | 
						(result)->tv_usec -= 1000000;					      \
 | 
				
			||||||
 | 
					      }									      \
 | 
				
			||||||
 | 
					  } while (0)
 | 
				
			||||||
 | 
					#define	timersub(a, b, result)						      \
 | 
				
			||||||
 | 
					  do {									      \
 | 
				
			||||||
 | 
					    (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;			      \
 | 
				
			||||||
 | 
					    (result)->tv_usec = (a)->tv_usec - (b)->tv_usec;			      \
 | 
				
			||||||
 | 
					    if ((result)->tv_usec < 0) {					      \
 | 
				
			||||||
 | 
					      --(result)->tv_sec;						      \
 | 
				
			||||||
 | 
					      (result)->tv_usec += 1000000;					      \
 | 
				
			||||||
 | 
					    }									      \
 | 
				
			||||||
 | 
					  } while (0)
 | 
				
			||||||
 | 
					#endif /* defined (__rtems__) || defined (__CYGWIN__) */
 | 
				
			||||||
 | 
					#endif /* !_TIMEVAL_DEFINED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct timezone {
 | 
				
			||||||
 | 
					  int tz_minuteswest;
 | 
				
			||||||
 | 
					  int tz_dsttime;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/sys_time.h>
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ITIMER_REAL     0
 | 
				
			||||||
 | 
					#define ITIMER_VIRTUAL  1
 | 
				
			||||||
 | 
					#define ITIMER_PROF     2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct  itimerval {
 | 
				
			||||||
 | 
					  struct  timeval it_interval;
 | 
				
			||||||
 | 
					  struct  timeval it_value;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(gettimeofday, (struct timeval *__restrict __p,
 | 
				
			||||||
 | 
								  void *__restrict __tz));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *));
 | 
				
			||||||
 | 
					int _EXFUN(adjtime, (const struct timeval *, struct timeval *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp));
 | 
				
			||||||
 | 
					int _EXFUN(getitimer, (int __which, struct itimerval *__value));
 | 
				
			||||||
 | 
					int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value,
 | 
				
			||||||
 | 
										struct itimerval *__restrict __ovalue));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_TIME_H_ */
 | 
				
			||||||
							
								
								
									
										39
									
								
								libc/xtensa-lx106-elf/include/sys/timeb.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								libc/xtensa-lx106-elf/include/sys/timeb.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,39 @@
 | 
				
			||||||
 | 
					/* timeb.h -- An implementation of the standard Unix <sys/timeb.h> file.
 | 
				
			||||||
 | 
					   Written by Ian Lance Taylor <ian@cygnus.com>
 | 
				
			||||||
 | 
					   Public domain; no rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   <sys/timeb.h> declares the structure used by the ftime function, as
 | 
				
			||||||
 | 
					   well as the ftime function itself.  Newlib does not provide an
 | 
				
			||||||
 | 
					   implementation of ftime.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_TIMEB_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _SYS_TIMEB_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <machine/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __time_t_defined
 | 
				
			||||||
 | 
					typedef _TIME_T_ time_t;
 | 
				
			||||||
 | 
					#define __time_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct timeb
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  time_t time;
 | 
				
			||||||
 | 
					  unsigned short millitm;
 | 
				
			||||||
 | 
					  short timezone;
 | 
				
			||||||
 | 
					  short dstflag;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int ftime _PARAMS ((struct timeb *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! defined (_SYS_TIMEB_H) */
 | 
				
			||||||
							
								
								
									
										31
									
								
								libc/xtensa-lx106-elf/include/sys/times.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								libc/xtensa-lx106-elf/include/sys/times.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,31 @@
 | 
				
			||||||
 | 
					#ifndef	_SYS_TIMES_H
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	_SYS_TIMES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <machine/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __clock_t_defined
 | 
				
			||||||
 | 
					typedef _CLOCK_T_ clock_t;
 | 
				
			||||||
 | 
					#define __clock_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  Get Process Times, P1003.1b-1993, p. 92 */
 | 
				
			||||||
 | 
					struct tms {
 | 
				
			||||||
 | 
						clock_t	tms_utime;		/* user time */
 | 
				
			||||||
 | 
						clock_t	tms_stime;		/* system time */
 | 
				
			||||||
 | 
						clock_t	tms_cutime;		/* user time, children */
 | 
				
			||||||
 | 
						clock_t	tms_cstime;		/* system time, children */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clock_t _EXFUN(times,(struct tms *));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					clock_t _EXFUN(_times,(struct tms *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif	/* !_SYS_TIMES_H */
 | 
				
			||||||
							
								
								
									
										521
									
								
								libc/xtensa-lx106-elf/include/sys/types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										521
									
								
								libc/xtensa-lx106-elf/include/sys/types.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,521 @@
 | 
				
			||||||
 | 
					/* unified sys/types.h: 
 | 
				
			||||||
 | 
					   start with sef's sysvi386 version.
 | 
				
			||||||
 | 
					   merge go32 version -- a few ifdefs.
 | 
				
			||||||
 | 
					   h8300hms, h8300xray, and sysvnecv70 disagree on the following types:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   typedef int gid_t;
 | 
				
			||||||
 | 
					   typedef int uid_t;
 | 
				
			||||||
 | 
					   typedef int dev_t;
 | 
				
			||||||
 | 
					   typedef int ino_t;
 | 
				
			||||||
 | 
					   typedef int mode_t;
 | 
				
			||||||
 | 
					   typedef int caddr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   however, these aren't "reasonable" values, the sysvi386 ones make far 
 | 
				
			||||||
 | 
					   more sense, and should work sufficiently well (in particular, h8300 
 | 
				
			||||||
 | 
					   doesn't have a stat, and the necv70 doesn't matter.) -- eichin
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_TYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INTTYPES_DEFINED__
 | 
				
			||||||
 | 
					#define __INTTYPES_DEFINED__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__) || defined(__XMK__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  The following section is RTEMS specific and is needed to more
 | 
				
			||||||
 | 
					 *  closely match the types defined in the BSD sys/types.h.
 | 
				
			||||||
 | 
					 *  This is needed to let the RTEMS/BSD TCP/IP stack compile.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* deprecated */
 | 
				
			||||||
 | 
					#if ___int8_t_defined
 | 
				
			||||||
 | 
					typedef __uint8_t	u_int8_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if ___int16_t_defined
 | 
				
			||||||
 | 
					typedef __uint16_t	u_int16_t;
 | 
				
			||||||
 | 
					#endif 
 | 
				
			||||||
 | 
					#if ___int32_t_defined
 | 
				
			||||||
 | 
					typedef __uint32_t	u_int32_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if ___int64_t_defined
 | 
				
			||||||
 | 
					typedef __uint64_t	u_int64_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* deprecated */
 | 
				
			||||||
 | 
					typedef	__uint64_t	u_quad_t;
 | 
				
			||||||
 | 
					typedef	__int64_t	quad_t;
 | 
				
			||||||
 | 
					typedef	quad_t *	qaddr_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! __INTTYPES_DEFINED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __need_inttypes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _SYS_TYPES_H
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					#if defined (GO32) || defined (__MSDOS__)
 | 
				
			||||||
 | 
					#define __MS_types__
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# include <stddef.h>
 | 
				
			||||||
 | 
					# include <machine/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* To ensure the stat struct's layout doesn't change when sizeof(int), etc.
 | 
				
			||||||
 | 
					   changes, we assume sizeof short and long never change and have all types
 | 
				
			||||||
 | 
					   used to define struct stat use them and not int where possible.
 | 
				
			||||||
 | 
					   Where not possible, _ST_INTxx are used.  It would be preferable to not have
 | 
				
			||||||
 | 
					   such assumptions, but until the extra fluff is necessary, it's avoided.
 | 
				
			||||||
 | 
					   No 64 bit targets use stat yet.  What to do about them is postponed
 | 
				
			||||||
 | 
					   until necessary.  */
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					#define _ST_INT32 __attribute__ ((__mode__ (__SI__)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _ST_INT32
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  define	physadr		physadr_t
 | 
				
			||||||
 | 
					#  define	quad		quad_t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _BSDTYPES_DEFINED
 | 
				
			||||||
 | 
					/* also defined in mingw/gmon.h and in w32api/winsock[2].h */
 | 
				
			||||||
 | 
					#ifndef __u_char_defined
 | 
				
			||||||
 | 
					typedef	unsigned char	u_char;
 | 
				
			||||||
 | 
					#define __u_char_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __u_short_defined
 | 
				
			||||||
 | 
					typedef	unsigned short	u_short;
 | 
				
			||||||
 | 
					#define __u_short_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __u_int_defined
 | 
				
			||||||
 | 
					typedef	unsigned int	u_int;
 | 
				
			||||||
 | 
					#define __u_int_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __u_long_defined
 | 
				
			||||||
 | 
					typedef	unsigned long	u_long;
 | 
				
			||||||
 | 
					#define __u_long_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _BSDTYPES_DEFINED
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef	unsigned short	ushort;		/* System V compatibility */
 | 
				
			||||||
 | 
					typedef	unsigned int	uint;		/* System V compatibility */
 | 
				
			||||||
 | 
					typedef	unsigned long	ulong;		/* System V compatibility */
 | 
				
			||||||
 | 
					# endif	/*!_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __clock_t_defined
 | 
				
			||||||
 | 
					typedef _CLOCK_T_ clock_t;
 | 
				
			||||||
 | 
					#define __clock_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __time_t_defined
 | 
				
			||||||
 | 
					typedef _TIME_T_ time_t;
 | 
				
			||||||
 | 
					#define __time_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __timespec_defined
 | 
				
			||||||
 | 
					#define __timespec_defined
 | 
				
			||||||
 | 
					/* Time Value Specification Structures, P1003.1b-1993, p. 261 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct timespec {
 | 
				
			||||||
 | 
					  time_t  tv_sec;   /* Seconds */
 | 
				
			||||||
 | 
					  long    tv_nsec;  /* Nanoseconds */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct itimerspec {
 | 
				
			||||||
 | 
					  struct timespec  it_interval;  /* Timer period */
 | 
				
			||||||
 | 
					  struct timespec  it_value;     /* Timer expiration */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __daddr_t_defined
 | 
				
			||||||
 | 
					typedef	long	daddr_t;
 | 
				
			||||||
 | 
					#define __daddr_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __caddr_t_defined
 | 
				
			||||||
 | 
					typedef	char *	caddr_t;
 | 
				
			||||||
 | 
					#define __caddr_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					#if defined(__MS_types__) || defined(__rtems__) || \
 | 
				
			||||||
 | 
					    defined(__sparc__) || defined(__SPU__)
 | 
				
			||||||
 | 
					typedef	unsigned long	ino_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef	unsigned short	ino_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /*__CYGWIN__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MS_types__
 | 
				
			||||||
 | 
					typedef unsigned long vm_offset_t;
 | 
				
			||||||
 | 
					typedef unsigned long vm_size_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __BIT_TYPES_DEFINED__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef signed char int8_t;
 | 
				
			||||||
 | 
					typedef unsigned char u_int8_t;
 | 
				
			||||||
 | 
					typedef short int16_t;
 | 
				
			||||||
 | 
					typedef unsigned short u_int16_t;
 | 
				
			||||||
 | 
					typedef int int32_t;
 | 
				
			||||||
 | 
					typedef unsigned int u_int32_t;
 | 
				
			||||||
 | 
					typedef long long int64_t;
 | 
				
			||||||
 | 
					typedef unsigned long long u_int64_t;
 | 
				
			||||||
 | 
					typedef int32_t register_t;
 | 
				
			||||||
 | 
					#endif /* __MS_types__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * All these should be machine specific - right now they are all broken.
 | 
				
			||||||
 | 
					 * However, for all of Cygnus' embedded targets, we want them to all be
 | 
				
			||||||
 | 
					 * the same.  Otherwise things like sizeof (struct stat) might depend on
 | 
				
			||||||
 | 
					 * how the file was compiled (e.g. -mint16 vs -mint32, etc.).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__	/* which defines these types in it's own types.h. */
 | 
				
			||||||
 | 
					typedef _off_t	off_t;
 | 
				
			||||||
 | 
					typedef __dev_t dev_t;
 | 
				
			||||||
 | 
					typedef __uid_t uid_t;
 | 
				
			||||||
 | 
					typedef __gid_t gid_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__XMK__)
 | 
				
			||||||
 | 
					typedef signed char pid_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef int pid_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					typedef _mode_t mode_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					typedef	long key_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					typedef _ssize_t ssize_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__CYGWIN__) && !defined(__rtems__)
 | 
				
			||||||
 | 
					#ifdef __MS_types__
 | 
				
			||||||
 | 
					typedef	char *	addr_t;
 | 
				
			||||||
 | 
					typedef int mode_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if defined (__sparc__) && !defined (__sparc_v9__)
 | 
				
			||||||
 | 
					#ifdef __svr4__
 | 
				
			||||||
 | 
					typedef unsigned long mode_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned short mode_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned int mode_t _ST_INT32;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* ! __MS_types__ */
 | 
				
			||||||
 | 
					#endif /*__CYGWIN__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef unsigned short nlink_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* We don't define fd_set and friends if we are compiling POSIX
 | 
				
			||||||
 | 
					   source, or if we have included (or may include as indicated
 | 
				
			||||||
 | 
					   by __USE_W32_SOCKETS) the W32api winsock[2].h header which
 | 
				
			||||||
 | 
					   defines Windows versions of them.   Note that a program which
 | 
				
			||||||
 | 
					   includes the W32api winsock[2].h header must know what it is doing;
 | 
				
			||||||
 | 
					   it must not call the cygwin32 select function.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) 
 | 
				
			||||||
 | 
					#  define _SYS_TYPES_FD_SET
 | 
				
			||||||
 | 
					#  define	NBBY	8		/* number of bits in a byte */
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Select uses bit masks of file descriptors in longs.
 | 
				
			||||||
 | 
					 * These macros manipulate such bit fields (the filesystem macros use chars).
 | 
				
			||||||
 | 
					 * FD_SETSIZE may be defined by the user, but the default here
 | 
				
			||||||
 | 
					 * should be >= NOFILE (param.h).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#  ifndef	FD_SETSIZE
 | 
				
			||||||
 | 
					#	define	FD_SETSIZE	64
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef	long	fd_mask;
 | 
				
			||||||
 | 
					#  define	NFDBITS	(sizeof (fd_mask) * NBBY)	/* bits per mask */
 | 
				
			||||||
 | 
					#  ifndef	howmany
 | 
				
			||||||
 | 
					#	define	howmany(x,y)	(((x)+((y)-1))/(y))
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* We use a macro for fd_set so that including Sockets.h afterwards
 | 
				
			||||||
 | 
					   can work.  */
 | 
				
			||||||
 | 
					typedef	struct _types_fd_set {
 | 
				
			||||||
 | 
						fd_mask	fds_bits[howmany(FD_SETSIZE, NFDBITS)];
 | 
				
			||||||
 | 
					} _types_fd_set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define fd_set _types_fd_set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  define	FD_SET(n, p)	((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS)))
 | 
				
			||||||
 | 
					#  define	FD_CLR(n, p)	((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS)))
 | 
				
			||||||
 | 
					#  define	FD_ISSET(n, p)	((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS)))
 | 
				
			||||||
 | 
					#  define	FD_ZERO(p)	(__extension__ (void)({ \
 | 
				
			||||||
 | 
					     size_t __i; \
 | 
				
			||||||
 | 
					     char *__tmp = (char *)p; \
 | 
				
			||||||
 | 
					     for (__i = 0; __i < sizeof (*(p)); ++__i) \
 | 
				
			||||||
 | 
					       *__tmp++ = 0; \
 | 
				
			||||||
 | 
					}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# endif	/* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __MS_types__
 | 
				
			||||||
 | 
					#undef _ST_INT32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __clockid_t_defined
 | 
				
			||||||
 | 
					typedef _CLOCKID_T_ clockid_t;
 | 
				
			||||||
 | 
					#define __clockid_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __timer_t_defined
 | 
				
			||||||
 | 
					typedef _TIMER_T_ timer_t;
 | 
				
			||||||
 | 
					#define __timer_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef unsigned long useconds_t;
 | 
				
			||||||
 | 
					typedef long suseconds_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Cygwin will probably never have full posix compliance due to little things
 | 
				
			||||||
 | 
					 * like an inability to set the stackaddress. Cygwin is also using void *  
 | 
				
			||||||
 | 
					 * pointers rather than structs to ensure maximum binary compatability with
 | 
				
			||||||
 | 
					 * previous releases.
 | 
				
			||||||
 | 
					 * This means that we don't use the types defined here, but rather in
 | 
				
			||||||
 | 
					 * <cygwin/types.h>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS) && !defined(__CYGWIN__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/sched.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  2.5 Primitive System Data Types,  P1003.1c/D10, p. 19.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__XMK__)
 | 
				
			||||||
 | 
					typedef unsigned int pthread_t;          /* identify a thread */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_t;            /* identify a thread */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* P1003.1c/D10, p. 118-119 */
 | 
				
			||||||
 | 
					#define PTHREAD_SCOPE_PROCESS 0
 | 
				
			||||||
 | 
					#define PTHREAD_SCOPE_SYSTEM  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* P1003.1c/D10, p. 111 */
 | 
				
			||||||
 | 
					#define PTHREAD_INHERIT_SCHED  1      /* scheduling policy and associated */
 | 
				
			||||||
 | 
					                                      /*   attributes are inherited from */
 | 
				
			||||||
 | 
					                                      /*   the calling thread. */
 | 
				
			||||||
 | 
					#define PTHREAD_EXPLICIT_SCHED 2      /* set from provided attribute object */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* P1003.1c/D10, p. 141 */
 | 
				
			||||||
 | 
					#define PTHREAD_CREATE_DETACHED 0
 | 
				
			||||||
 | 
					#define PTHREAD_CREATE_JOINABLE  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					  #include <sys/cpuset.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__XMK__)
 | 
				
			||||||
 | 
					typedef struct pthread_attr_s {
 | 
				
			||||||
 | 
					  int contentionscope;
 | 
				
			||||||
 | 
					  struct sched_param schedparam;
 | 
				
			||||||
 | 
					  int  detachstate;
 | 
				
			||||||
 | 
					  void *stackaddr;
 | 
				
			||||||
 | 
					  size_t stacksize;
 | 
				
			||||||
 | 
					} pthread_attr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_STACK_MIN       200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !defined(__XMK__) */
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int is_initialized;
 | 
				
			||||||
 | 
					  void *stackaddr;
 | 
				
			||||||
 | 
					  int stacksize;
 | 
				
			||||||
 | 
					  int contentionscope;
 | 
				
			||||||
 | 
					  int inheritsched;
 | 
				
			||||||
 | 
					  int schedpolicy;
 | 
				
			||||||
 | 
					  struct sched_param schedparam;
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					  size_t guardsize;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* P1003.4b/D8, p. 54 adds cputime_clock_allowed attribute.  */
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_CPUTIME)
 | 
				
			||||||
 | 
					  int  cputime_clock_allowed;  /* see time.h */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  int  detachstate;
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					  size_t affinitysetsize;
 | 
				
			||||||
 | 
					  cpu_set_t *affinityset;
 | 
				
			||||||
 | 
					  cpu_set_t affinitysetpreallocated;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					} pthread_attr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !defined(__XMK__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					/* NOTE: P1003.1c/D10, p. 81 defines following values for process_shared.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */
 | 
				
			||||||
 | 
					#define PTHREAD_PROCESS_SHARED  1 /* visible too all processes with access to */
 | 
				
			||||||
 | 
					                                  /*   the memory where the resource is */
 | 
				
			||||||
 | 
					                                  /*   located */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIO_PROTECT)
 | 
				
			||||||
 | 
					/* Mutexes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Values for blocking protocol. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_PRIO_NONE    0
 | 
				
			||||||
 | 
					#define PTHREAD_PRIO_INHERIT 1
 | 
				
			||||||
 | 
					#define PTHREAD_PRIO_PROTECT 2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Values for mutex type */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The following defines are part of the X/Open System Interface (XSI). */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This type of mutex does not detect deadlock. A thread attempting to
 | 
				
			||||||
 | 
					 * relock this mutex without first unlocking it shall deadlock. Attempting
 | 
				
			||||||
 | 
					 * to unlock a mutex locked by a different thread results in undefined
 | 
				
			||||||
 | 
					 * behavior.  Attempting to unlock an unlocked mutex results in undefined
 | 
				
			||||||
 | 
					 * behavior.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_NORMAL     0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * A thread attempting to relock this mutex without first unlocking
 | 
				
			||||||
 | 
					 * it shall succeed in locking the mutex.  The relocking deadlock which
 | 
				
			||||||
 | 
					 * can occur with mutexes of type PTHREAD_MUTEX_NORMAL cannot occur with
 | 
				
			||||||
 | 
					 * this type of mutex.  Multiple locks of this mutex shall require the
 | 
				
			||||||
 | 
					 * same number of unlocks to release the mutex before another thread can
 | 
				
			||||||
 | 
					 * acquire the mutex. A thread attempting to unlock a mutex which another
 | 
				
			||||||
 | 
					 * thread has locked shall return with an error.  A thread attempting to
 | 
				
			||||||
 | 
					 * unlock an unlocked mutex shall return with an error.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_RECURSIVE  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					 * This type of mutex provides error checking. A thread attempting
 | 
				
			||||||
 | 
					 * to relock this mutex without first unlocking it shall return with an
 | 
				
			||||||
 | 
					 * error. A thread attempting to unlock a mutex which another thread has
 | 
				
			||||||
 | 
					 * locked shall return with an error. A thread attempting to unlock an
 | 
				
			||||||
 | 
					 * unlocked mutex shall return with an error.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_ERRORCHECK 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Attempting to recursively lock a mutex of this type results
 | 
				
			||||||
 | 
					 * in undefined behavior. Attempting to unlock a mutex of this type
 | 
				
			||||||
 | 
					 * which was not locked by the calling thread results in undefined
 | 
				
			||||||
 | 
					 * behavior. Attempting to unlock a mutex of this type which is not locked
 | 
				
			||||||
 | 
					 * results in undefined behavior. An implementation may map this mutex to
 | 
				
			||||||
 | 
					 * one of the other mutex types.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_DEFAULT    3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__XMK__)
 | 
				
			||||||
 | 
					typedef unsigned int pthread_mutex_t;    /* identify a mutex */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int type;
 | 
				
			||||||
 | 
					} pthread_mutexattr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !defined(__XMK__) */
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_mutex_t;      /* identify a mutex */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					  int   process_shared;  /* allow mutex to be shared amongst processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIO_PROTECT)
 | 
				
			||||||
 | 
					  int   prio_ceiling;
 | 
				
			||||||
 | 
					  int   protocol;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
 | 
				
			||||||
 | 
					  int type;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  int   recursive;
 | 
				
			||||||
 | 
					} pthread_mutexattr_t;
 | 
				
			||||||
 | 
					#endif /* !defined(__XMK__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Condition Variables */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_cond_t;       /* identify a condition variable */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					  int   process_shared;       /* allow this to be shared amongst processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					} pthread_condattr_t;         /* a condition attribute object */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Keys */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_key_t;        /* thread-specific data keys */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;  /* is this structure initialized? */
 | 
				
			||||||
 | 
					  int   init_executed;   /* has the initialization routine been run? */
 | 
				
			||||||
 | 
					} pthread_once_t;       /* dynamic package initialization */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if defined (__CYGWIN__)
 | 
				
			||||||
 | 
					#include <cygwin/types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREADS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX Barrier Types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_BARRIERS)
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_barrier_t;        /* POSIX Barrier Object */
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;  /* is this structure initialized? */
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					  int   process_shared;       /* allow this to be shared amongst processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					} pthread_barrierattr_t;
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_BARRIERS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX Spin Lock Types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined (__CYGWIN__)
 | 
				
			||||||
 | 
					#if defined(_POSIX_SPIN_LOCKS)
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_spinlock_t;        /* POSIX Spin Lock Object */
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_SPIN_LOCKS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX Reader/Writer Lock Types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_READER_WRITER_LOCKS)
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_rwlock_t;         /* POSIX RWLock Object */
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;       /* is this structure initialized? */
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					  int   process_shared;       /* allow this to be shared amongst processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					} pthread_rwlockattr_t;
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_READER_WRITER_LOCKS) */
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif  /* !__need_inttypes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __need_inttypes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _SYS_TYPES_H */
 | 
				
			||||||
							
								
								
									
										516
									
								
								libc/xtensa-lx106-elf/include/sys/unistd.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										516
									
								
								libc/xtensa-lx106-elf/include/sys/unistd.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,516 @@
 | 
				
			||||||
 | 
					#ifndef _SYS_UNISTD_H
 | 
				
			||||||
 | 
					#define _SYS_UNISTD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_ptrdiff_t
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern char **environ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(_exit, (int __status ) _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(access,(const char *__path, int __amode ));
 | 
				
			||||||
 | 
					unsigned  _EXFUN(alarm, (unsigned __secs ));
 | 
				
			||||||
 | 
					int     _EXFUN(chdir, (const char *__path ));
 | 
				
			||||||
 | 
					int     _EXFUN(chmod, (const char *__path, mode_t __mode ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(chown, (const char *__path, uid_t __owner, gid_t __group ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int     _EXFUN(chroot, (const char *__path ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(close, (int __fildes ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					size_t	_EXFUN(confstr, (int __name, char *__buf, size_t __len));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *  _EXFUN(ctermid, (char *__s ));
 | 
				
			||||||
 | 
					char *  _EXFUN(cuserid, (char *__s ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(daemon, (int nochdir, int noclose));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(dup, (int __fildes ));
 | 
				
			||||||
 | 
					int     _EXFUN(dup2, (int __fildes, int __fildes2 ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(dup3, (int __fildes, int __fildes2, int flags));
 | 
				
			||||||
 | 
					int	_EXFUN(eaccess, (const char *__path, int __mode));
 | 
				
			||||||
 | 
					void	_EXFUN(endusershell, (void));
 | 
				
			||||||
 | 
					int	_EXFUN(euidaccess, (const char *__path, int __mode));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(execl, (const char *__path, const char *, ... ));
 | 
				
			||||||
 | 
					int     _EXFUN(execle, (const char *__path, const char *, ... ));
 | 
				
			||||||
 | 
					int     _EXFUN(execlp, (const char *__file, const char *, ... ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(execlpe, (const char *__file, const char *, ... ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(execv, (const char *__path, char * const __argv[] ));
 | 
				
			||||||
 | 
					int     _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] ));
 | 
				
			||||||
 | 
					int     _EXFUN(execvp, (const char *__file, char * const __argv[] ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(execvpe, (const char *__file, char * const __argv[], char * const __envp[] ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(faccessat, (int __dirfd, const char *__path, int __mode, int __flags));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__)
 | 
				
			||||||
 | 
					int     _EXFUN(fchdir, (int __fildes));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(fchmod, (int __fildes, mode_t __mode ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(fchownat, (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(fexecve, (int __fd, char * const __argv[], char * const __envp[] ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					pid_t   _EXFUN(fork, (void ));
 | 
				
			||||||
 | 
					long    _EXFUN(fpathconf, (int __fd, int __name ));
 | 
				
			||||||
 | 
					int     _EXFUN(fsync, (int __fd));
 | 
				
			||||||
 | 
					int     _EXFUN(fdatasync, (int __fd));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					char *  _EXFUN(get_current_dir_name, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *  _EXFUN(getcwd, (char *__buf, size_t __size ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(getdomainname ,(char *__name, size_t __len));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					gid_t   _EXFUN(getegid, (void ));
 | 
				
			||||||
 | 
					uid_t   _EXFUN(geteuid, (void ));
 | 
				
			||||||
 | 
					gid_t   _EXFUN(getgid, (void ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(getgroups, (int __gidsetsize, gid_t __grouplist[] ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					long    _EXFUN(gethostid, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *  _EXFUN(getlogin, (void ));
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_SAFE_FUNCTIONS)
 | 
				
			||||||
 | 
					int _EXFUN(getlogin_r, (char *name, size_t namesize) );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *  _EXFUN(getpass, (const char *__prompt));
 | 
				
			||||||
 | 
					int	_EXFUN(getpagesize, (void));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int    _EXFUN(getpeereid, (int, uid_t *, gid_t *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getpgid, (pid_t));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getpgrp, (void ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getpid, (void ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getppid, (void ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getsid, (pid_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					uid_t   _EXFUN(getuid, (void ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					char *	_EXFUN(getusershell, (void));
 | 
				
			||||||
 | 
					char *  _EXFUN(getwd, (char *__buf ));
 | 
				
			||||||
 | 
					int	_EXFUN(iruserok, (unsigned long raddr, int superuser, const char *ruser, const char *luser));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(isatty, (int __fildes ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(link, (const char *__path1, const char *__path2 ));
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(linkat, (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(nice, (int __nice_value ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					off_t   _EXFUN(lseek, (int __fildes, off_t __offset, int __whence ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__SPU__) || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#define F_ULOCK	0
 | 
				
			||||||
 | 
					#define F_LOCK	1
 | 
				
			||||||
 | 
					#define F_TLOCK	2
 | 
				
			||||||
 | 
					#define F_TEST	3
 | 
				
			||||||
 | 
					int     _EXFUN(lockf, (int __fd, int __cmd, off_t __len));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					long    _EXFUN(pathconf, (const char *__path, int __name ));
 | 
				
			||||||
 | 
					int     _EXFUN(pause, (void ));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_atfork, (void (*)(void), void (*)(void), void (*)(void)));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(pipe, (int __fildes[2] ));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					int     _EXFUN(pipe2, (int __fildes[2], int flags));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					ssize_t _EXFUN(pread, (int __fd, void *__buf, size_t __nbytes, off_t __offset));
 | 
				
			||||||
 | 
					ssize_t _EXFUN(pwrite, (int __fd, const void *__buf, size_t __nbytes, off_t __offset));
 | 
				
			||||||
 | 
					_READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(rresvport, (int *__alport));
 | 
				
			||||||
 | 
					int	_EXFUN(revoke, (char *__path));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(rmdir, (const char *__path ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(ruserok, (const char *rhost, int superuser, const char *ruser, const char *luser));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					void *  _EXFUN(sbrk,  (ptrdiff_t __incr));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int     _EXFUN(setegid, (gid_t __gid ));
 | 
				
			||||||
 | 
					int     _EXFUN(seteuid, (uid_t __uid ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(setgid, (gid_t __gid ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(setgroups, (int ngroups, const gid_t *grouplist ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || (defined(_XOPEN_SOURCE) && __XSI_VISIBLE < 500)
 | 
				
			||||||
 | 
					int	_EXFUN(sethostname, (const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(setpgid, (pid_t __pid, pid_t __pgid ));
 | 
				
			||||||
 | 
					int     _EXFUN(setpgrp, (void ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(setregid, (gid_t __rgid, gid_t __egid));
 | 
				
			||||||
 | 
					int	_EXFUN(setreuid, (uid_t __ruid, uid_t __euid));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					pid_t   _EXFUN(setsid, (void ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(setuid, (uid_t __uid ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					void	_EXFUN(setusershell, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					unsigned _EXFUN(sleep, (unsigned int __seconds ));
 | 
				
			||||||
 | 
					void    _EXFUN(swab, (const void *__restrict, void *__restrict, ssize_t));
 | 
				
			||||||
 | 
					long    _EXFUN(sysconf, (int __name ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(tcgetpgrp, (int __fildes ));
 | 
				
			||||||
 | 
					int     _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id ));
 | 
				
			||||||
 | 
					char *  _EXFUN(ttyname, (int __fildes ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int     _EXFUN(ttyname_r, (int, char *, size_t)); 
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(unlink, (const char *__path ));
 | 
				
			||||||
 | 
					int 	_EXFUN(usleep, (useconds_t __useconds));
 | 
				
			||||||
 | 
					int     _EXFUN(vhangup, (void ));
 | 
				
			||||||
 | 
					_READ_WRITE_RETURN_TYPE _EXFUN(write, (int __fd, const void *__buf, size_t __nbyte ));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					# define __UNISTD_GETOPT__
 | 
				
			||||||
 | 
					# include <getopt.h>
 | 
				
			||||||
 | 
					# undef __UNISTD_GETOPT__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern char *optarg;			/* getopt(3) external variables */
 | 
				
			||||||
 | 
					extern int optind, opterr, optopt;
 | 
				
			||||||
 | 
					int	 getopt(int, char * const [], const char *);
 | 
				
			||||||
 | 
					extern int optreset;			/* getopt(3) external variable */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef        _POSIX_SOURCE
 | 
				
			||||||
 | 
					pid_t   _EXFUN(vfork, (void ));
 | 
				
			||||||
 | 
					#endif /* _POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					/* Provide prototypes for most of the _<systemcall> names that are
 | 
				
			||||||
 | 
					   provided in newlib for some compilers.  */
 | 
				
			||||||
 | 
					int     _EXFUN(_close, (int __fildes ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(_fork, (void ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(_getpid, (void ));
 | 
				
			||||||
 | 
					int	_EXFUN(_isatty, (int __fildes ));
 | 
				
			||||||
 | 
					int     _EXFUN(_link, (const char *__path1, const char *__path2 ));
 | 
				
			||||||
 | 
					_off_t   _EXFUN(_lseek, (int __fildes, _off_t __offset, int __whence ));
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					_off64_t _EXFUN(_lseek64, (int __filedes, _off64_t __offset, int __whence ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					_READ_WRITE_RETURN_TYPE _EXFUN(_read, (int __fd, void *__buf, size_t __nbyte ));
 | 
				
			||||||
 | 
					void *  _EXFUN(_sbrk,  (ptrdiff_t __incr));
 | 
				
			||||||
 | 
					int     _EXFUN(_unlink, (const char *__path ));
 | 
				
			||||||
 | 
					_READ_WRITE_RETURN_TYPE _EXFUN(_write, (int __fd, const void *__buf, size_t __nbyte ));
 | 
				
			||||||
 | 
					int     _EXFUN(_execve, (const char *__path, char * const __argv[], char * const __envp[] ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__) || defined(__aarch64__) || defined (__arm__) || defined(__sh__) || defined(__SPU__)
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(ftruncate, (int __fd, off_t __length));
 | 
				
			||||||
 | 
					int     _EXFUN(truncate, (const char *, off_t __length));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int	_EXFUN(getdtablesize, (void));
 | 
				
			||||||
 | 
					int	_EXFUN(setdtablesize, (int));
 | 
				
			||||||
 | 
					useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval));
 | 
				
			||||||
 | 
					#if !(defined  (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
 | 
				
			||||||
 | 
					/* winsock[2].h defines as __stdcall, and with int as 2nd arg */
 | 
				
			||||||
 | 
					 int	_EXFUN(gethostname, (char *__name, size_t __len));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *	_EXFUN(mktemp, (char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__SPU__) || defined(__rtems__)
 | 
				
			||||||
 | 
					void    _EXFUN(sync, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ssize_t _EXFUN(readlink, (const char *__restrict __path,
 | 
				
			||||||
 | 
					                          char *__restrict __buf, size_t __buflen));
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					ssize_t        _EXFUN(readlinkat, (int __dirfd1, const char *__restrict __path,
 | 
				
			||||||
 | 
					                            char *__restrict __buf, size_t __buflen));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(symlink, (const char *__name1, const char *__name2));
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(symlinkat, (const char *, int, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(unlinkat, (int, const char *, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	F_OK	0
 | 
				
			||||||
 | 
					#define	R_OK	4
 | 
				
			||||||
 | 
					#define	W_OK	2
 | 
				
			||||||
 | 
					#define	X_OK	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define	SEEK_SET	0
 | 
				
			||||||
 | 
					# define	SEEK_CUR	1
 | 
				
			||||||
 | 
					# define	SEEK_END	2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define STDIN_FILENO    0       /* standard input file descriptor */
 | 
				
			||||||
 | 
					#define STDOUT_FILENO   1       /* standard output file descriptor */
 | 
				
			||||||
 | 
					#define STDERR_FILENO   2       /* standard error file descriptor */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  sysconf values per IEEE Std 1003.1, 2008 Edition
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _SC_ARG_MAX                       0
 | 
				
			||||||
 | 
					#define _SC_CHILD_MAX                     1
 | 
				
			||||||
 | 
					#define _SC_CLK_TCK                       2
 | 
				
			||||||
 | 
					#define _SC_NGROUPS_MAX                   3
 | 
				
			||||||
 | 
					#define _SC_OPEN_MAX                      4
 | 
				
			||||||
 | 
					#define _SC_JOB_CONTROL                   5
 | 
				
			||||||
 | 
					#define _SC_SAVED_IDS                     6
 | 
				
			||||||
 | 
					#define _SC_VERSION                       7
 | 
				
			||||||
 | 
					#define _SC_PAGESIZE                      8
 | 
				
			||||||
 | 
					#define _SC_PAGE_SIZE                     _SC_PAGESIZE
 | 
				
			||||||
 | 
					/* These are non-POSIX values we accidentally introduced in 2000 without
 | 
				
			||||||
 | 
					   guarding them.  Keeping them unguarded for backward compatibility. */
 | 
				
			||||||
 | 
					#define _SC_NPROCESSORS_CONF              9
 | 
				
			||||||
 | 
					#define _SC_NPROCESSORS_ONLN             10
 | 
				
			||||||
 | 
					#define _SC_PHYS_PAGES                   11
 | 
				
			||||||
 | 
					#define _SC_AVPHYS_PAGES                 12
 | 
				
			||||||
 | 
					/* End of non-POSIX values. */
 | 
				
			||||||
 | 
					#define _SC_MQ_OPEN_MAX                  13
 | 
				
			||||||
 | 
					#define _SC_MQ_PRIO_MAX                  14
 | 
				
			||||||
 | 
					#define _SC_RTSIG_MAX                    15
 | 
				
			||||||
 | 
					#define _SC_SEM_NSEMS_MAX                16
 | 
				
			||||||
 | 
					#define _SC_SEM_VALUE_MAX                17
 | 
				
			||||||
 | 
					#define _SC_SIGQUEUE_MAX                 18
 | 
				
			||||||
 | 
					#define _SC_TIMER_MAX                    19
 | 
				
			||||||
 | 
					#define _SC_TZNAME_MAX                   20
 | 
				
			||||||
 | 
					#define _SC_ASYNCHRONOUS_IO              21
 | 
				
			||||||
 | 
					#define _SC_FSYNC                        22
 | 
				
			||||||
 | 
					#define _SC_MAPPED_FILES                 23
 | 
				
			||||||
 | 
					#define _SC_MEMLOCK                      24
 | 
				
			||||||
 | 
					#define _SC_MEMLOCK_RANGE                25
 | 
				
			||||||
 | 
					#define _SC_MEMORY_PROTECTION            26
 | 
				
			||||||
 | 
					#define _SC_MESSAGE_PASSING              27
 | 
				
			||||||
 | 
					#define _SC_PRIORITIZED_IO               28
 | 
				
			||||||
 | 
					#define _SC_REALTIME_SIGNALS             29
 | 
				
			||||||
 | 
					#define _SC_SEMAPHORES                   30
 | 
				
			||||||
 | 
					#define _SC_SHARED_MEMORY_OBJECTS        31
 | 
				
			||||||
 | 
					#define _SC_SYNCHRONIZED_IO              32
 | 
				
			||||||
 | 
					#define _SC_TIMERS                       33
 | 
				
			||||||
 | 
					#define _SC_AIO_LISTIO_MAX               34
 | 
				
			||||||
 | 
					#define _SC_AIO_MAX                      35
 | 
				
			||||||
 | 
					#define _SC_AIO_PRIO_DELTA_MAX           36
 | 
				
			||||||
 | 
					#define _SC_DELAYTIMER_MAX               37
 | 
				
			||||||
 | 
					#define _SC_THREAD_KEYS_MAX              38
 | 
				
			||||||
 | 
					#define _SC_THREAD_STACK_MIN             39
 | 
				
			||||||
 | 
					#define _SC_THREAD_THREADS_MAX           40
 | 
				
			||||||
 | 
					#define _SC_TTY_NAME_MAX                 41
 | 
				
			||||||
 | 
					#define _SC_THREADS                      42
 | 
				
			||||||
 | 
					#define _SC_THREAD_ATTR_STACKADDR        43
 | 
				
			||||||
 | 
					#define _SC_THREAD_ATTR_STACKSIZE        44
 | 
				
			||||||
 | 
					#define _SC_THREAD_PRIORITY_SCHEDULING   45
 | 
				
			||||||
 | 
					#define _SC_THREAD_PRIO_INHERIT          46
 | 
				
			||||||
 | 
					/* _SC_THREAD_PRIO_PROTECT was _SC_THREAD_PRIO_CEILING in early drafts */
 | 
				
			||||||
 | 
					#define _SC_THREAD_PRIO_PROTECT          47
 | 
				
			||||||
 | 
					#define _SC_THREAD_PRIO_CEILING          _SC_THREAD_PRIO_PROTECT
 | 
				
			||||||
 | 
					#define _SC_THREAD_PROCESS_SHARED        48
 | 
				
			||||||
 | 
					#define _SC_THREAD_SAFE_FUNCTIONS        49
 | 
				
			||||||
 | 
					#define _SC_GETGR_R_SIZE_MAX             50
 | 
				
			||||||
 | 
					#define _SC_GETPW_R_SIZE_MAX             51
 | 
				
			||||||
 | 
					#define _SC_LOGIN_NAME_MAX               52
 | 
				
			||||||
 | 
					#define _SC_THREAD_DESTRUCTOR_ITERATIONS 53
 | 
				
			||||||
 | 
					#define _SC_ADVISORY_INFO                54
 | 
				
			||||||
 | 
					#define _SC_ATEXIT_MAX                   55
 | 
				
			||||||
 | 
					#define _SC_BARRIERS                     56
 | 
				
			||||||
 | 
					#define _SC_BC_BASE_MAX                  57
 | 
				
			||||||
 | 
					#define _SC_BC_DIM_MAX                   58
 | 
				
			||||||
 | 
					#define _SC_BC_SCALE_MAX                 59
 | 
				
			||||||
 | 
					#define _SC_BC_STRING_MAX                60
 | 
				
			||||||
 | 
					#define _SC_CLOCK_SELECTION              61
 | 
				
			||||||
 | 
					#define _SC_COLL_WEIGHTS_MAX             62
 | 
				
			||||||
 | 
					#define _SC_CPUTIME                      63
 | 
				
			||||||
 | 
					#define _SC_EXPR_NEST_MAX                64
 | 
				
			||||||
 | 
					#define _SC_HOST_NAME_MAX                65
 | 
				
			||||||
 | 
					#define _SC_IOV_MAX                      66
 | 
				
			||||||
 | 
					#define _SC_IPV6                         67
 | 
				
			||||||
 | 
					#define _SC_LINE_MAX                     68
 | 
				
			||||||
 | 
					#define _SC_MONOTONIC_CLOCK              69
 | 
				
			||||||
 | 
					#define _SC_RAW_SOCKETS                  70
 | 
				
			||||||
 | 
					#define _SC_READER_WRITER_LOCKS          71
 | 
				
			||||||
 | 
					#define _SC_REGEXP                       72
 | 
				
			||||||
 | 
					#define _SC_RE_DUP_MAX                   73
 | 
				
			||||||
 | 
					#define _SC_SHELL                        74
 | 
				
			||||||
 | 
					#define _SC_SPAWN                        75
 | 
				
			||||||
 | 
					#define _SC_SPIN_LOCKS                   76
 | 
				
			||||||
 | 
					#define _SC_SPORADIC_SERVER              77
 | 
				
			||||||
 | 
					#define _SC_SS_REPL_MAX                  78
 | 
				
			||||||
 | 
					#define _SC_SYMLOOP_MAX                  79
 | 
				
			||||||
 | 
					#define _SC_THREAD_CPUTIME               80
 | 
				
			||||||
 | 
					#define _SC_THREAD_SPORADIC_SERVER       81
 | 
				
			||||||
 | 
					#define _SC_TIMEOUTS                     82
 | 
				
			||||||
 | 
					#define _SC_TRACE                        83
 | 
				
			||||||
 | 
					#define _SC_TRACE_EVENT_FILTER           84
 | 
				
			||||||
 | 
					#define _SC_TRACE_EVENT_NAME_MAX         85
 | 
				
			||||||
 | 
					#define _SC_TRACE_INHERIT                86
 | 
				
			||||||
 | 
					#define _SC_TRACE_LOG                    87
 | 
				
			||||||
 | 
					#define _SC_TRACE_NAME_MAX               88
 | 
				
			||||||
 | 
					#define _SC_TRACE_SYS_MAX                89
 | 
				
			||||||
 | 
					#define _SC_TRACE_USER_EVENT_MAX         90
 | 
				
			||||||
 | 
					#define _SC_TYPED_MEMORY_OBJECTS         91
 | 
				
			||||||
 | 
					#define _SC_V7_ILP32_OFF32               92
 | 
				
			||||||
 | 
					#define _SC_V6_ILP32_OFF32               _SC_V7_ILP32_OFF32
 | 
				
			||||||
 | 
					#define _SC_XBS5_ILP32_OFF32             _SC_V7_ILP32_OFF32
 | 
				
			||||||
 | 
					#define _SC_V7_ILP32_OFFBIG              93
 | 
				
			||||||
 | 
					#define _SC_V6_ILP32_OFFBIG              _SC_V7_ILP32_OFFBIG
 | 
				
			||||||
 | 
					#define _SC_XBS5_ILP32_OFFBIG            _SC_V7_ILP32_OFFBIG
 | 
				
			||||||
 | 
					#define _SC_V7_LP64_OFF64                94
 | 
				
			||||||
 | 
					#define _SC_V6_LP64_OFF64                _SC_V7_LP64_OFF64
 | 
				
			||||||
 | 
					#define _SC_XBS5_LP64_OFF64              _SC_V7_LP64_OFF64
 | 
				
			||||||
 | 
					#define _SC_V7_LPBIG_OFFBIG              95
 | 
				
			||||||
 | 
					#define _SC_V6_LPBIG_OFFBIG              _SC_V7_LPBIG_OFFBIG
 | 
				
			||||||
 | 
					#define _SC_XBS5_LPBIG_OFFBIG            _SC_V7_LPBIG_OFFBIG
 | 
				
			||||||
 | 
					#define _SC_XOPEN_CRYPT                  96
 | 
				
			||||||
 | 
					#define _SC_XOPEN_ENH_I18N               97
 | 
				
			||||||
 | 
					#define _SC_XOPEN_LEGACY                 98
 | 
				
			||||||
 | 
					#define _SC_XOPEN_REALTIME               99
 | 
				
			||||||
 | 
					#define _SC_STREAM_MAX                  100
 | 
				
			||||||
 | 
					#define _SC_PRIORITY_SCHEDULING         101
 | 
				
			||||||
 | 
					#define _SC_XOPEN_REALTIME_THREADS      102
 | 
				
			||||||
 | 
					#define _SC_XOPEN_SHM                   103
 | 
				
			||||||
 | 
					#define _SC_XOPEN_STREAMS               104
 | 
				
			||||||
 | 
					#define _SC_XOPEN_UNIX                  105
 | 
				
			||||||
 | 
					#define _SC_XOPEN_VERSION               106
 | 
				
			||||||
 | 
					#define _SC_2_CHAR_TERM                 107
 | 
				
			||||||
 | 
					#define _SC_2_C_BIND                    108
 | 
				
			||||||
 | 
					#define _SC_2_C_DEV                     109
 | 
				
			||||||
 | 
					#define _SC_2_FORT_DEV                  110
 | 
				
			||||||
 | 
					#define _SC_2_FORT_RUN                  111
 | 
				
			||||||
 | 
					#define _SC_2_LOCALEDEF                 112
 | 
				
			||||||
 | 
					#define _SC_2_PBS                       113
 | 
				
			||||||
 | 
					#define _SC_2_PBS_ACCOUNTING            114
 | 
				
			||||||
 | 
					#define _SC_2_PBS_CHECKPOINT            115
 | 
				
			||||||
 | 
					#define _SC_2_PBS_LOCATE                116
 | 
				
			||||||
 | 
					#define _SC_2_PBS_MESSAGE               117
 | 
				
			||||||
 | 
					#define _SC_2_PBS_TRACK                 118
 | 
				
			||||||
 | 
					#define _SC_2_SW_DEV                    119
 | 
				
			||||||
 | 
					#define _SC_2_UPE                       120
 | 
				
			||||||
 | 
					#define _SC_2_VERSION                   121
 | 
				
			||||||
 | 
					#define _SC_THREAD_ROBUST_PRIO_INHERIT  122
 | 
				
			||||||
 | 
					#define _SC_THREAD_ROBUST_PRIO_PROTECT  123
 | 
				
			||||||
 | 
					#define _SC_XOPEN_UUCP                  124
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  pathconf values per IEEE Std 1003.1, 2008 Edition
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _PC_LINK_MAX                      0
 | 
				
			||||||
 | 
					#define _PC_MAX_CANON                     1
 | 
				
			||||||
 | 
					#define _PC_MAX_INPUT                     2
 | 
				
			||||||
 | 
					#define _PC_NAME_MAX                      3
 | 
				
			||||||
 | 
					#define _PC_PATH_MAX                      4
 | 
				
			||||||
 | 
					#define _PC_PIPE_BUF                      5
 | 
				
			||||||
 | 
					#define _PC_CHOWN_RESTRICTED              6
 | 
				
			||||||
 | 
					#define _PC_NO_TRUNC                      7
 | 
				
			||||||
 | 
					#define _PC_VDISABLE                      8
 | 
				
			||||||
 | 
					#define _PC_ASYNC_IO                      9
 | 
				
			||||||
 | 
					#define _PC_PRIO_IO                      10
 | 
				
			||||||
 | 
					#define _PC_SYNC_IO                      11
 | 
				
			||||||
 | 
					#define _PC_FILESIZEBITS                 12
 | 
				
			||||||
 | 
					#define _PC_2_SYMLINKS                   13
 | 
				
			||||||
 | 
					#define _PC_SYMLINK_MAX                  14
 | 
				
			||||||
 | 
					#define _PC_ALLOC_SIZE_MIN               15
 | 
				
			||||||
 | 
					#define _PC_REC_INCR_XFER_SIZE           16
 | 
				
			||||||
 | 
					#define _PC_REC_MAX_XFER_SIZE            17
 | 
				
			||||||
 | 
					#define _PC_REC_MIN_XFER_SIZE            18
 | 
				
			||||||
 | 
					#define _PC_REC_XFER_ALIGN               19
 | 
				
			||||||
 | 
					#define _PC_TIMESTAMP_RESOLUTION         20
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					/* Ask for POSIX permission bits support. */
 | 
				
			||||||
 | 
					#define _PC_POSIX_PERMISSIONS            90
 | 
				
			||||||
 | 
					/* Ask for full POSIX permission support including uid/gid settings. */
 | 
				
			||||||
 | 
					#define _PC_POSIX_SECURITY               91
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  confstr values per IEEE Std 1003.1, 2004 Edition
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__	/* Only defined on Cygwin for now. */
 | 
				
			||||||
 | 
					#define _CS_PATH                               0
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS        1
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS       _CS_POSIX_V7_ILP32_OFF32_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFF32_CFLAGS           _CS_POSIX_V7_ILP32_OFF32_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS       2
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS      _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFF32_LDFLAGS          _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFF32_LIBS          3
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFF32_LIBS         _CS_POSIX_V7_ILP32_OFF32_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFF32_LIBS             _CS_POSIX_V7_ILP32_OFF32_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFF32_LINTFLAGS         4
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS       5
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS      _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFFBIG_CFLAGS          _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS      6
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS     _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS         _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS         7
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS        _CS_POSIX_V7_ILP32_OFFBIG_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFFBIG_LIBS            _CS_POSIX_V7_ILP32_OFFBIG_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS        8
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LP64_OFF64_CFLAGS         9
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LP64_OFF64_CFLAGS        _CS_POSIX_V7_LP64_OFF64_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LP64_OFF64_CFLAGS            _CS_POSIX_V7_LP64_OFF64_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS       10
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS       _CS_POSIX_V7_LP64_OFF64_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LP64_OFF64_LDFLAGS           _CS_POSIX_V7_LP64_OFF64_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LP64_OFF64_LIBS          11
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LP64_OFF64_LIBS          _CS_POSIX_V7_LP64_OFF64_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LP64_OFF64_LIBS              _CS_POSIX_V7_LP64_OFF64_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LP64_OFF64_LINTFLAGS         12
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS      13
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS      _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS          _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS     14
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS     _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS         _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS        15
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS        _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LPBIG_OFFBIG_LIBS            _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS       16
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS    17
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS    _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
 | 
				
			||||||
 | 
					#define _CS_XBS5_WIDTH_RESTRICTED_ENVS        _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_THREADS_CFLAGS           18
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_THREADS_LDFLAGS          19
 | 
				
			||||||
 | 
					#define _CS_V7_ENV                            20
 | 
				
			||||||
 | 
					#define _CS_V6_ENV                            _CS_V7_ENV
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_UNISTD_H */
 | 
				
			||||||
							
								
								
									
										22
									
								
								libc/xtensa-lx106-elf/include/sys/utime.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								libc/xtensa-lx106-elf/include/sys/utime.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef _SYS_UTIME_H
 | 
				
			||||||
 | 
					#define _SYS_UTIME_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is a dummy <sys/utime.h> file, not customized for any
 | 
				
			||||||
 | 
					   particular system.  If there is a utime.h in libc/sys/SYSDIR/sys,
 | 
				
			||||||
 | 
					   it will override this one.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct utimbuf 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  time_t actime;
 | 
				
			||||||
 | 
					  time_t modtime; 
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SYS_UTIME_H */
 | 
				
			||||||
							
								
								
									
										44
									
								
								libc/xtensa-lx106-elf/include/sys/wait.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								libc/xtensa-lx106-elf/include/sys/wait.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,44 @@
 | 
				
			||||||
 | 
					#ifndef _SYS_WAIT_H
 | 
				
			||||||
 | 
					#define _SYS_WAIT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define WNOHANG 1
 | 
				
			||||||
 | 
					#define WUNTRACED 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* A status looks like:
 | 
				
			||||||
 | 
					      <2 bytes info> <2 bytes code>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <code> == 0, child has exited, info is the exit value
 | 
				
			||||||
 | 
					      <code> == 1..7e, child has exited, info is the signal number.
 | 
				
			||||||
 | 
					      <code> == 7f, child has stopped, info was the signal number.
 | 
				
			||||||
 | 
					      <code> == 80, there was a core dump.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					#define WIFEXITED(w)	(((w) & 0xff) == 0)
 | 
				
			||||||
 | 
					#define WIFSIGNALED(w)	(((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f))
 | 
				
			||||||
 | 
					#define WIFSTOPPED(w)	(((w) & 0xff) == 0x7f)
 | 
				
			||||||
 | 
					#define WEXITSTATUS(w)	(((w) >> 8) & 0xff)
 | 
				
			||||||
 | 
					#define WTERMSIG(w)	((w) & 0x7f)
 | 
				
			||||||
 | 
					#define WSTOPSIG	WEXITSTATUS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pid_t wait (int *);
 | 
				
			||||||
 | 
					pid_t waitpid (pid_t, int *, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					pid_t _wait (int *);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Provide prototypes for most of the _<systemcall> names that are
 | 
				
			||||||
 | 
					   provided in newlib for some compilers.  */
 | 
				
			||||||
 | 
					pid_t _wait (int *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										39
									
								
								libc/xtensa-lx106-elf/include/tar.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								libc/xtensa-lx106-elf/include/tar.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,39 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * tar.h
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _TAR_H
 | 
				
			||||||
 | 
					#define _TAR_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* General definitions */
 | 
				
			||||||
 | 
					#define TMAGIC 		"ustar" /* ustar plus null byte. */
 | 
				
			||||||
 | 
					#define TMAGLEN 	6 	/* Length of the above. */
 | 
				
			||||||
 | 
					#define TVERSION 	"00"	/* 00 without a null byte. */
 | 
				
			||||||
 | 
					#define TVERSLEN	2	/* Length of the above. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Typeflag field definitions */
 | 
				
			||||||
 | 
					#define REGTYPE 	'0'	/* Regular file. */
 | 
				
			||||||
 | 
					#define AREGTYPE	'\0'	/* Regular file. */
 | 
				
			||||||
 | 
					#define LNKTYPE		'1'	/* Link. */
 | 
				
			||||||
 | 
					#define SYMTYPE		'2'	/* Symbolic link. */
 | 
				
			||||||
 | 
					#define CHRTYPE		'3'	/* Character special. */
 | 
				
			||||||
 | 
					#define BLKTYPE		'4'	/* Block special. */
 | 
				
			||||||
 | 
					#define DIRTYPE		'5'	/* Directory. */
 | 
				
			||||||
 | 
					#define FIFOTYPE	'6'	/* FIFO special. */
 | 
				
			||||||
 | 
					#define CONTTYPE	'7'	/* Reserved. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Mode field bit definitions (octal) */
 | 
				
			||||||
 | 
					#define	TSUID		04000	/* Set UID on execution. */
 | 
				
			||||||
 | 
					#define	TSGID		02000	/* Set GID on execution. */
 | 
				
			||||||
 | 
					#define	TSVTX		01000	/* On directories, restricted deletion flag. */
 | 
				
			||||||
 | 
					#define	TUREAD		00400	/* Read by owner. */
 | 
				
			||||||
 | 
					#define	TUWRITE		00200	/* Write by owner. */
 | 
				
			||||||
 | 
					#define	TUEXEC		00100	/* Execute/search by owner. */
 | 
				
			||||||
 | 
					#define	TGREAD		00040	/* Read by group. */
 | 
				
			||||||
 | 
					#define	TGWRITE		00020	/* Write by group. */
 | 
				
			||||||
 | 
					#define	TGEXEC		00010	/* Execute/search by group. */
 | 
				
			||||||
 | 
					#define	TOREAD		00004	/* Read by other. */
 | 
				
			||||||
 | 
					#define	TOWRITE		00002	/* Write by other. */
 | 
				
			||||||
 | 
					#define	TOEXEC		00001	/* Execute/search by other. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										7
									
								
								libc/xtensa-lx106-elf/include/termios.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								libc/xtensa-lx106-elf/include/termios.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#include <sys/termios.h>
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										184
									
								
								libc/xtensa-lx106-elf/include/tgmath.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										184
									
								
								libc/xtensa-lx106-elf/include/tgmath.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,184 @@
 | 
				
			||||||
 | 
					/* http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/tgmath.h.html */
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 2004 Stefan Farfeleder.
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * $FreeBSD$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _TGMATH_H_
 | 
				
			||||||
 | 
					#define	_TGMATH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <complex.h>
 | 
				
			||||||
 | 
					#include <math.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef log2
 | 
				
			||||||
 | 
					#undef log2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This implementation of <tgmath.h> requires two implementation-dependent
 | 
				
			||||||
 | 
					 * macros to be defined:
 | 
				
			||||||
 | 
					 * __tg_impl_simple(x, y, z, fn, fnf, fnl, ...)
 | 
				
			||||||
 | 
					 *	Invokes fnl() if the corresponding real type of x, y or z is long
 | 
				
			||||||
 | 
					 *	double, fn() if it is double or any has an integer type, and fnf()
 | 
				
			||||||
 | 
					 *	otherwise.
 | 
				
			||||||
 | 
					 * __tg_impl_full(x, y, z, fn, fnf, fnl, cfn, cfnf, cfnl, ...)
 | 
				
			||||||
 | 
					 *	Invokes [c]fnl() if the corresponding real type of x, y or z is long
 | 
				
			||||||
 | 
					 *	double, [c]fn() if it is double or any has an integer type, and
 | 
				
			||||||
 | 
					 *	[c]fnf() otherwise.  The function with the 'c' prefix is called if
 | 
				
			||||||
 | 
					 *	any of x, y or z is a complex number.
 | 
				
			||||||
 | 
					 * Both macros call the chosen function with all additional arguments passed
 | 
				
			||||||
 | 
					 * to them, as given by __VA_ARGS__.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Note that these macros cannot be implemented with C's ?: operator,
 | 
				
			||||||
 | 
					 * because the return type of the whole expression would incorrectly be long
 | 
				
			||||||
 | 
					 * double complex regardless of the argument types.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* requires GCC >= 3.1 */
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ (3, 1)
 | 
				
			||||||
 | 
					#error "<tgmath.h> not implemented for this compiler"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	__tg_type(__e, __t)						\
 | 
				
			||||||
 | 
						__builtin_types_compatible_p(__typeof__(__e), __t)
 | 
				
			||||||
 | 
					#define	__tg_type3(__e1, __e2, __e3, __t)				\
 | 
				
			||||||
 | 
						(__tg_type(__e1, __t) || __tg_type(__e2, __t) || 		\
 | 
				
			||||||
 | 
						 __tg_type(__e3, __t))
 | 
				
			||||||
 | 
					#define	__tg_type_corr(__e1, __e2, __e3, __t)				\
 | 
				
			||||||
 | 
						(__tg_type3(__e1, __e2, __e3, __t) || 				\
 | 
				
			||||||
 | 
						 __tg_type3(__e1, __e2, __e3, __t _Complex))
 | 
				
			||||||
 | 
					#define	__tg_integer(__e1, __e2, __e3)					\
 | 
				
			||||||
 | 
						(((__typeof__(__e1))1.5 == 1) || ((__typeof__(__e2))1.5 == 1) ||	\
 | 
				
			||||||
 | 
						 ((__typeof__(__e3))1.5 == 1))
 | 
				
			||||||
 | 
					#define	__tg_is_complex(__e1, __e2, __e3)				\
 | 
				
			||||||
 | 
						(__tg_type3(__e1, __e2, __e3, float _Complex) ||		\
 | 
				
			||||||
 | 
						 __tg_type3(__e1, __e2, __e3, double _Complex) ||		\
 | 
				
			||||||
 | 
						 __tg_type3(__e1, __e2, __e3, long double _Complex) ||		\
 | 
				
			||||||
 | 
						 __tg_type3(__e1, __e2, __e3, __typeof__(_Complex_I)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _LDBL_EQ_DBL
 | 
				
			||||||
 | 
					#define	__tg_impl_simple(x, y, z, fn, fnf, fnl, ...)			\
 | 
				
			||||||
 | 
						__builtin_choose_expr(__tg_type_corr(x, y, z, long double),	\
 | 
				
			||||||
 | 
						    fnl(__VA_ARGS__), __builtin_choose_expr(			\
 | 
				
			||||||
 | 
							__tg_type_corr(x, y, z, double) || __tg_integer(x, y, z),\
 | 
				
			||||||
 | 
							fn(__VA_ARGS__), fnf(__VA_ARGS__)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__tg_impl_simple(__x, __y, __z, __fn, __fnf, __fnl, ...)	\
 | 
				
			||||||
 | 
						(__tg_type_corr(__x, __y, __z, double) || __tg_integer(__x, __y, __z)) \
 | 
				
			||||||
 | 
							? __fn(__VA_ARGS__) : __fnf(__VA_ARGS__)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	__tg_impl_full(__x, __y, __z, __fn, __fnf, __fnl, __cfn, __cfnf, __cfnl, ...)	\
 | 
				
			||||||
 | 
						__builtin_choose_expr(__tg_is_complex(__x, __y, __z),		\
 | 
				
			||||||
 | 
						    __tg_impl_simple(__x, __y, __z, __cfn, __cfnf, __cfnl, __VA_ARGS__),	\
 | 
				
			||||||
 | 
						    __tg_impl_simple(__x, __y, __z, __fn, __fnf, __fnl, __VA_ARGS__))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros to save lots of repetition below */
 | 
				
			||||||
 | 
					#define	__tg_simple(__x, __fn)						\
 | 
				
			||||||
 | 
						__tg_impl_simple(__x, __x, __x, __fn, __fn##f, __fn##l, __x)
 | 
				
			||||||
 | 
					#define	__tg_simple2(__x, __y, __fn)					\
 | 
				
			||||||
 | 
						__tg_impl_simple(__x, __x, __y, __fn, __fn##f, __fn##l, __x, __y)
 | 
				
			||||||
 | 
					#define	__tg_simplev(__x, __fn, ...)					\
 | 
				
			||||||
 | 
						__tg_impl_simple(__x, __x, __x, __fn, __fn##f, __fn##l, __VA_ARGS__)
 | 
				
			||||||
 | 
					#define	__tg_full(__x, __fn)						\
 | 
				
			||||||
 | 
						__tg_impl_full(__x, __x, __x, __fn, __fn##f, __fn##l, c##__fn, c##__fn##f, c##__fn##l, __x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.22#4 -- These macros expand to real or complex functions, depending on
 | 
				
			||||||
 | 
					 * the type of their arguments. */
 | 
				
			||||||
 | 
					#define	acos(__x)		__tg_full(__x, acos)
 | 
				
			||||||
 | 
					#define	asin(__x)		__tg_full(__x, asin)
 | 
				
			||||||
 | 
					#define	atan(__x)		__tg_full(__x, atan)
 | 
				
			||||||
 | 
					#define	acosh(__x)		__tg_full(__x, acosh)
 | 
				
			||||||
 | 
					#define	asinh(__x)		__tg_full(__x, asinh)
 | 
				
			||||||
 | 
					#define	atanh(__x)		__tg_full(__x, atanh)
 | 
				
			||||||
 | 
					#define	cos(__x)		__tg_full(__x, cos)
 | 
				
			||||||
 | 
					#define	sin(__x)		__tg_full(__x, sin)
 | 
				
			||||||
 | 
					#define	tan(__x)		__tg_full(__x, tan)
 | 
				
			||||||
 | 
					#define	cosh(__x)		__tg_full(__x, cosh)
 | 
				
			||||||
 | 
					#define	sinh(__x)		__tg_full(__x, sinh)
 | 
				
			||||||
 | 
					#define	tanh(__x)		__tg_full(__x, tanh)
 | 
				
			||||||
 | 
					#define	exp(__x)		__tg_full(__x, exp)
 | 
				
			||||||
 | 
					#define	log(__x)		__tg_full(__x, log)
 | 
				
			||||||
 | 
					#define	pow(__x, __y)		__tg_impl_full(__x, __x, __y, pow, powf, powl,	\
 | 
				
			||||||
 | 
											cpow, cpowf, cpowl, __x, __y)
 | 
				
			||||||
 | 
					#define	sqrt(__x)		__tg_full(__x, sqrt)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* "The corresponding type-generic macro for fabs and cabs is fabs." */
 | 
				
			||||||
 | 
					#define	fabs(__x)		__tg_impl_full(__x, __x, __x, fabs, fabsf, fabsl,	\
 | 
				
			||||||
 | 
											cabs, cabsf, cabsl, __x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.22#5 -- These macros are only defined for arguments with real type. */
 | 
				
			||||||
 | 
					#define	atan2(__x, __y)		__tg_simple2(__x, __y, atan2)
 | 
				
			||||||
 | 
					#define	cbrt(__x)		__tg_simple(__x, cbrt)
 | 
				
			||||||
 | 
					#define	ceil(__x)		__tg_simple(__x, ceil)
 | 
				
			||||||
 | 
					#define	copysign(__x, __y)	__tg_simple2(__x, __y, copysign)
 | 
				
			||||||
 | 
					#define	erf(__x)		__tg_simple(__x, erf)
 | 
				
			||||||
 | 
					#define	erfc(__x)		__tg_simple(__x, erfc)
 | 
				
			||||||
 | 
					#define	exp2(__x)		__tg_simple(__x, exp2)
 | 
				
			||||||
 | 
					#define	expm1(__x)		__tg_simple(__x, expm1)
 | 
				
			||||||
 | 
					#define	fdim(__x, __y)		__tg_simple2(__x, __y, fdim)
 | 
				
			||||||
 | 
					#define	floor(__x)		__tg_simple(__x, floor)
 | 
				
			||||||
 | 
					#define	fma(__x, __y, __z)	__tg_impl_simple(__x, __y, __z, fma, fmaf, fmal, \
 | 
				
			||||||
 | 
											 __x, __y, __z)
 | 
				
			||||||
 | 
					#define	fmax(__x, __y)		__tg_simple2(__x, __y, fmax)
 | 
				
			||||||
 | 
					#define	fmin(__x, __y)		__tg_simple2(__x, __y, fmin)
 | 
				
			||||||
 | 
					#define	fmod(__x, __y)		__tg_simple2(__x, __y, fmod)
 | 
				
			||||||
 | 
					#define	frexp(__x, __y)		__tg_simplev(__x, frexp, __x, __y)
 | 
				
			||||||
 | 
					#define	hypot(__x, __y)		__tg_simple2(__x, __y, hypot)
 | 
				
			||||||
 | 
					#define	ilogb(__x)		__tg_simple(__x, ilogb)
 | 
				
			||||||
 | 
					#define	ldexp(__x, __y)		__tg_simplev(__x, ldexp, __x, __y)
 | 
				
			||||||
 | 
					#define	lgamma(__x)		__tg_simple(__x, lgamma)
 | 
				
			||||||
 | 
					#define	llrint(__x)		__tg_simple(__x, llrint)
 | 
				
			||||||
 | 
					#define	llround(__x)		__tg_simple(__x, llround)
 | 
				
			||||||
 | 
					#define	log10(__x)		__tg_simple(__x, log10)
 | 
				
			||||||
 | 
					#define	log1p(__x)		__tg_simple(__x, log1p)
 | 
				
			||||||
 | 
					#define	log2(__x)		__tg_simple(__x, log2)
 | 
				
			||||||
 | 
					#define	logb(__x)		__tg_simple(__x, logb)
 | 
				
			||||||
 | 
					#define	lrint(__x)		__tg_simple(__x, lrint)
 | 
				
			||||||
 | 
					#define	lround(__x)		__tg_simple(__x, lround)
 | 
				
			||||||
 | 
					#define	nearbyint(__x)		__tg_simple(__x, nearbyint)
 | 
				
			||||||
 | 
					#define	nextafter(__x, __y)	__tg_simple2(__x, __y, nextafter)
 | 
				
			||||||
 | 
					/* not yet implemented even for _LDBL_EQ_DBL platforms
 | 
				
			||||||
 | 
					#define	nexttoward(__x, __y)	__tg_simplev(__x, nexttoward, __x, __y)
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					#define	remainder(__x, __y)	__tg_simple2(__x, __y, remainder)
 | 
				
			||||||
 | 
					#define	remquo(__x, __y, __z)	__tg_impl_simple(__x, __x, __y, remquo, remquof,	\
 | 
				
			||||||
 | 
											 remquol, __x, __y, __z)
 | 
				
			||||||
 | 
					#define	rint(__x)		__tg_simple(__x, rint)
 | 
				
			||||||
 | 
					#define	round(__x)		__tg_simple(__x, round)
 | 
				
			||||||
 | 
					#define	scalbn(__x, __y)	__tg_simplev(__x, scalbn, __x, __y)
 | 
				
			||||||
 | 
					#define	scalbln(__x, __y)	__tg_simplev(__x, scalbln, __x, __y)
 | 
				
			||||||
 | 
					#define	tgamma(__x)		__tg_simple(__x, tgamma)
 | 
				
			||||||
 | 
					#define	trunc(__x)		__tg_simple(__x, trunc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.22#6 -- These macros always expand to complex functions. */
 | 
				
			||||||
 | 
					#define	carg(__x)		__tg_simple(__x, carg)
 | 
				
			||||||
 | 
					#define	cimag(__x)		__tg_simple(__x, cimag)
 | 
				
			||||||
 | 
					#define	conj(__x)		__tg_simple(__x, conj)
 | 
				
			||||||
 | 
					#define	cproj(__x)		__tg_simple(__x, cproj)
 | 
				
			||||||
 | 
					#define	creal(__x)		__tg_simple(__x, creal)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_TGMATH_H_ */
 | 
				
			||||||
							
								
								
									
										291
									
								
								libc/xtensa-lx106-elf/include/time.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										291
									
								
								libc/xtensa-lx106-elf/include/time.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,291 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * time.h
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Struct and function declarations for dealing with time.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _TIME_H_
 | 
				
			||||||
 | 
					#define _TIME_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Get _CLOCKS_PER_SEC_ */
 | 
				
			||||||
 | 
					#include <machine/time.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _CLOCKS_PER_SEC_
 | 
				
			||||||
 | 
					#define _CLOCKS_PER_SEC_ 1000
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CLOCKS_PER_SEC _CLOCKS_PER_SEC_
 | 
				
			||||||
 | 
					#define CLK_TCK CLOCKS_PER_SEC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct tm
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int	tm_sec;
 | 
				
			||||||
 | 
					  int	tm_min;
 | 
				
			||||||
 | 
					  int	tm_hour;
 | 
				
			||||||
 | 
					  int	tm_mday;
 | 
				
			||||||
 | 
					  int	tm_mon;
 | 
				
			||||||
 | 
					  int	tm_year;
 | 
				
			||||||
 | 
					  int	tm_wday;
 | 
				
			||||||
 | 
					  int	tm_yday;
 | 
				
			||||||
 | 
					  int	tm_isdst;
 | 
				
			||||||
 | 
					#ifdef __TM_GMTOFF
 | 
				
			||||||
 | 
					  long	__TM_GMTOFF;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __TM_ZONE
 | 
				
			||||||
 | 
					  const char *__TM_ZONE;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clock_t	   _EXFUN(clock,    (void));
 | 
				
			||||||
 | 
					double	   _EXFUN(difftime, (time_t _time2, time_t _time1));
 | 
				
			||||||
 | 
					time_t	   _EXFUN(mktime,   (struct tm *_timeptr));
 | 
				
			||||||
 | 
					time_t	   _EXFUN(time,     (time_t *_timer));
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					char	  *_EXFUN(asctime,  (const struct tm *_tblock));
 | 
				
			||||||
 | 
					char	  *_EXFUN(ctime,    (const time_t *_time));
 | 
				
			||||||
 | 
					struct tm *_EXFUN(gmtime,   (const time_t *_timer));
 | 
				
			||||||
 | 
					struct tm *_EXFUN(localtime,(const time_t *_timer));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					size_t	   _EXFUN(strftime, (char *__restrict _s,
 | 
				
			||||||
 | 
								     size_t _maxsize, const char *__restrict _fmt,
 | 
				
			||||||
 | 
								     const struct tm *__restrict _t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char	  *_EXFUN(asctime_r,	(const struct tm *__restrict,
 | 
				
			||||||
 | 
									 char *__restrict));
 | 
				
			||||||
 | 
					char	  *_EXFUN(ctime_r,	(const time_t *, char *));
 | 
				
			||||||
 | 
					struct tm *_EXFUN(gmtime_r,	(const time_t *__restrict,
 | 
				
			||||||
 | 
									 struct tm *__restrict));
 | 
				
			||||||
 | 
					struct tm *_EXFUN(localtime_r,	(const time_t *__restrict,
 | 
				
			||||||
 | 
									 struct tm *__restrict));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					char      *_EXFUN(strptime,     (const char *__restrict,
 | 
				
			||||||
 | 
									 const char *__restrict,
 | 
				
			||||||
 | 
									 struct tm *__restrict));
 | 
				
			||||||
 | 
					_VOID      _EXFUN(tzset,	(_VOID));
 | 
				
			||||||
 | 
					_VOID      _EXFUN(_tzset_r,	(struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct __tzrule_struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char ch;
 | 
				
			||||||
 | 
					  int m;
 | 
				
			||||||
 | 
					  int n;
 | 
				
			||||||
 | 
					  int d;
 | 
				
			||||||
 | 
					  int s;
 | 
				
			||||||
 | 
					  time_t change;
 | 
				
			||||||
 | 
					  long offset; /* Match type of _timezone. */
 | 
				
			||||||
 | 
					} __tzrule_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct __tzinfo_struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int __tznorth;
 | 
				
			||||||
 | 
					  int __tzyear;
 | 
				
			||||||
 | 
					  __tzrule_type __tzrule[2];
 | 
				
			||||||
 | 
					} __tzinfo_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__tzinfo_type *_EXFUN (__gettzinfo, (_VOID));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* getdate functions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAVE_GETDATE
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#define getdate_err (*__getdate_err())
 | 
				
			||||||
 | 
					int *_EXFUN(__getdate_err,(_VOID));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct tm *	_EXFUN(getdate, (const char *));
 | 
				
			||||||
 | 
					/* getdate_err is set to one of the following values to indicate the error.
 | 
				
			||||||
 | 
					     1  the DATEMSK environment variable is null or undefined,
 | 
				
			||||||
 | 
					     2  the template file cannot be opened for reading,
 | 
				
			||||||
 | 
					     3  failed to get file status information,
 | 
				
			||||||
 | 
					     4  the template file is not a regular file,
 | 
				
			||||||
 | 
					     5  an error is encountered while reading the template file,
 | 
				
			||||||
 | 
					     6  memory allication failed (not enough memory available),
 | 
				
			||||||
 | 
					     7  there is no line in the template that matches the input,
 | 
				
			||||||
 | 
					     8  invalid input specification  */
 | 
				
			||||||
 | 
					#endif /* !_REENT_ONLY */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* getdate_r returns the error code as above */
 | 
				
			||||||
 | 
					int		_EXFUN(getdate_r, (const char *, struct tm *));
 | 
				
			||||||
 | 
					#endif /* HAVE_GETDATE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* defines for the opengroup specifications Derived from Issue 1 of the SVID.  */
 | 
				
			||||||
 | 
					extern __IMPORT long _timezone;
 | 
				
			||||||
 | 
					extern __IMPORT int _daylight;
 | 
				
			||||||
 | 
					extern __IMPORT char *_tzname[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX defines the external tzname being defined in time.h */
 | 
				
			||||||
 | 
					#ifndef tzname
 | 
				
			||||||
 | 
					#define tzname _tzname
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* !__STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/time.h>
 | 
				
			||||||
 | 
					#endif /*__CYGWIN__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_TIMERS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Clocks, P1003.1b-1993, p. 263 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(clock_settime, (clockid_t clock_id, const struct timespec *tp));
 | 
				
			||||||
 | 
					int _EXFUN(clock_gettime, (clockid_t clock_id, struct timespec *tp));
 | 
				
			||||||
 | 
					int _EXFUN(clock_getres,  (clockid_t clock_id, struct timespec *res));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Create a Per-Process Timer, P1003.1b-1993, p. 264 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(timer_create,
 | 
				
			||||||
 | 
					  	(clockid_t clock_id,
 | 
				
			||||||
 | 
					 	struct sigevent *__restrict evp,
 | 
				
			||||||
 | 
						timer_t *__restrict timerid));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Delete a Per_process Timer, P1003.1b-1993, p. 266 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(timer_delete, (timer_t timerid));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Per-Process Timers, P1003.1b-1993, p. 267 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(timer_settime,
 | 
				
			||||||
 | 
						(timer_t timerid, int flags,
 | 
				
			||||||
 | 
						const struct itimerspec *__restrict value,
 | 
				
			||||||
 | 
						struct itimerspec *__restrict ovalue));
 | 
				
			||||||
 | 
					int _EXFUN(timer_gettime, (timer_t timerid, struct itimerspec *value));
 | 
				
			||||||
 | 
					int _EXFUN(timer_getoverrun, (timer_t timerid));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* High Resolution Sleep, P1003.1b-1993, p. 269 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(nanosleep, (const struct timespec  *rqtp, struct timespec *rmtp));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _POSIX_TIMERS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_CLOCK_SELECTION)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(clock_nanosleep,
 | 
				
			||||||
 | 
					  (clockid_t clock_id, int flags, const struct timespec *rqtp,
 | 
				
			||||||
 | 
					   struct timespec *rmtp));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_CLOCK_SELECTION */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* CPU-time Clock Attributes, P1003.4b/D8, p. 54 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* values for the clock enable attribute */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CLOCK_ENABLED  1  /* clock is enabled, i.e. counting execution time */
 | 
				
			||||||
 | 
					#define CLOCK_DISABLED 0  /* clock is disabled */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* values for the pthread cputime_clock_allowed attribute */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CLOCK_ALLOWED    1 /* If a thread is created with this value a */
 | 
				
			||||||
 | 
					                           /*   CPU-time clock attached to that thread */
 | 
				
			||||||
 | 
					                           /*   shall be accessible. */
 | 
				
			||||||
 | 
					#define CLOCK_DISALLOWED 0 /* If a thread is created with this value, the */
 | 
				
			||||||
 | 
					                           /*   thread shall not have a CPU-time clock */
 | 
				
			||||||
 | 
					                           /*   accessible. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Manifest Constants, P1003.1b-1993, p. 262 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CLOCK_REALTIME (clockid_t)1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Flag indicating time is "absolute" with respect to the clock
 | 
				
			||||||
 | 
					   associated with a time.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TIMER_ABSTIME	4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Manifest Constants, P1003.4b/D8, p. 55 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_CPUTIME)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* When used in a clock or timer function call, this is interpreted as
 | 
				
			||||||
 | 
					   the identifier of the CPU_time clock associated with the PROCESS
 | 
				
			||||||
 | 
					   making the function call.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CLOCK_PROCESS_CPUTIME_ID (clockid_t)2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_CPUTIME)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  When used in a clock or timer function call, this is interpreted as
 | 
				
			||||||
 | 
					    the identifier of the CPU_time clock associated with the THREAD
 | 
				
			||||||
 | 
					    making the function call.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CLOCK_THREAD_CPUTIME_ID (clockid_t)3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_MONOTONIC_CLOCK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  The identifier for the system-wide monotonic clock, which is defined
 | 
				
			||||||
 | 
					 *      as a clock whose value cannot be set via clock_settime() and which 
 | 
				
			||||||
 | 
					 *          cannot have backward clock jumps. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define CLOCK_MONOTONIC (clockid_t)4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_CPUTIME)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Accessing a Process CPU-time CLock, P1003.4b/D8, p. 55 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(clock_getcpuclockid, (pid_t pid, clockid_t *clock_id));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_CPUTIME */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_CPUTIME) || defined(_POSIX_THREAD_CPUTIME)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* CPU-time Clock Attribute Access, P1003.4b/D8, p. 56 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(clock_setenable_attr, (clockid_t clock_id, int attr));
 | 
				
			||||||
 | 
					int _EXFUN(clock_getenable_attr, (clockid_t clock_id, int *attr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_CPUTIME or _POSIX_THREAD_CPUTIME */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _TIME_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue