mirror of
https://github.com/drasko/codezero.git
synced 2026-01-24 16:53:14 +01:00
Initial commit
This commit is contained in:
29
tasks/libposix/include/posix/_lfs_64.h
Normal file
29
tasks/libposix/include/posix/_lfs_64.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
|
||||
*
|
||||
* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
|
||||
*/
|
||||
#include <features.h>
|
||||
|
||||
#ifdef __UCLIBC_HAS_LFS__
|
||||
|
||||
#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS != 64
|
||||
#undef _FILE_OFFSET_BITS
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
#endif
|
||||
|
||||
#ifndef __USE_LARGEFILE64
|
||||
# define __USE_LARGEFILE64 1
|
||||
#endif
|
||||
|
||||
/* We absolutely do _NOT_ want interfaces silently
|
||||
* renamed under us or very bad things will happen... */
|
||||
#ifdef __USE_FILE_OFFSET64
|
||||
# undef __USE_FILE_OFFSET64
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
# error Do not include this header in files not built when LFS is disabled
|
||||
|
||||
#endif
|
||||
5
tasks/libposix/include/posix/a.out.h
Normal file
5
tasks/libposix/include/posix/a.out.h
Normal file
@@ -0,0 +1,5 @@
|
||||
#ifdef _LIBC
|
||||
# include_next <linux/a.out.h>
|
||||
#else
|
||||
# include <linux/a.out.h>
|
||||
#endif
|
||||
43
tasks/libposix/include/posix/alloca.h
Normal file
43
tasks/libposix/include/posix/alloca.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright (C) 1992, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _ALLOCA_H
|
||||
#define _ALLOCA_H 1
|
||||
|
||||
#include <features.h>
|
||||
|
||||
#define __need_size_t
|
||||
#include <stddef.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Remove any previous definitions. */
|
||||
#undef alloca
|
||||
|
||||
/* Allocate a block that will be freed when the calling function exits. */
|
||||
extern void *alloca (size_t __size) __THROW;
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define alloca(size) __builtin_alloca (size)
|
||||
#endif /* GCC. */
|
||||
|
||||
#define __MAX_ALLOCA_CUTOFF 65536
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* alloca.h */
|
||||
48
tasks/libposix/include/posix/ar.h
Normal file
48
tasks/libposix/include/posix/ar.h
Normal file
@@ -0,0 +1,48 @@
|
||||
/* Header describing `ar' archive file format.
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _AR_H
|
||||
#define _AR_H 1
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/* Archive files start with the ARMAG identifying string. Then follows a
|
||||
`struct ar_hdr', and as many bytes of member file data as its `ar_size'
|
||||
member indicates, for each member file. */
|
||||
|
||||
#define ARMAG "!<arch>\n" /* String that begins an archive file. */
|
||||
#define SARMAG 8 /* Size of that string. */
|
||||
|
||||
#define ARFMAG "`\n" /* String in ar_fmag at end of each header. */
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
struct ar_hdr
|
||||
{
|
||||
char ar_name[16]; /* Member file name, sometimes / terminated. */
|
||||
char ar_date[12]; /* File date, decimal seconds since Epoch. */
|
||||
char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */
|
||||
char ar_mode[8]; /* File mode, in ASCII octal. */
|
||||
char ar_size[10]; /* File size, in ASCII decimal. */
|
||||
char ar_fmag[2]; /* Always contains ARFMAG. */
|
||||
};
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* ar.h */
|
||||
105
tasks/libposix/include/posix/arpa/ftp.h
Normal file
105
tasks/libposix/include/posix/arpa/ftp.h
Normal file
@@ -0,0 +1,105 @@
|
||||
/*
|
||||
* Copyright (c) 1983, 1989, 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.
|
||||
*
|
||||
* @(#)ftp.h 8.1 (Berkeley) 6/2/93
|
||||
*/
|
||||
|
||||
#ifndef _ARPA_FTP_H
|
||||
#define _ARPA_FTP_H 1
|
||||
|
||||
/* Definitions for FTP; see RFC-765. */
|
||||
|
||||
/*
|
||||
* Reply codes.
|
||||
*/
|
||||
#define PRELIM 1 /* positive preliminary */
|
||||
#define COMPLETE 2 /* positive completion */
|
||||
#define CONTINUE 3 /* positive intermediate */
|
||||
#define TRANSIENT 4 /* transient negative completion */
|
||||
#define ERROR 5 /* permanent negative completion */
|
||||
|
||||
/*
|
||||
* Type codes
|
||||
*/
|
||||
#define TYPE_A 1 /* ASCII */
|
||||
#define TYPE_E 2 /* EBCDIC */
|
||||
#define TYPE_I 3 /* image */
|
||||
#define TYPE_L 4 /* local byte size */
|
||||
|
||||
#ifdef FTP_NAMES
|
||||
char *typenames[] = {"0", "ASCII", "EBCDIC", "Image", "Local" };
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Form codes
|
||||
*/
|
||||
#define FORM_N 1 /* non-print */
|
||||
#define FORM_T 2 /* telnet format effectors */
|
||||
#define FORM_C 3 /* carriage control (ASA) */
|
||||
#ifdef FTP_NAMES
|
||||
char *formnames[] = {"0", "Nonprint", "Telnet", "Carriage-control" };
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Structure codes
|
||||
*/
|
||||
#define STRU_F 1 /* file (no record structure) */
|
||||
#define STRU_R 2 /* record structure */
|
||||
#define STRU_P 3 /* page structure */
|
||||
#ifdef FTP_NAMES
|
||||
char *strunames[] = {"0", "File", "Record", "Page" };
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Mode types
|
||||
*/
|
||||
#define MODE_S 1 /* stream */
|
||||
#define MODE_B 2 /* block */
|
||||
#define MODE_C 3 /* compressed */
|
||||
#ifdef FTP_NAMES
|
||||
char *modenames[] = {"0", "Stream", "Block", "Compressed" };
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Record Tokens
|
||||
*/
|
||||
#define REC_ESC '\377' /* Record-mode Escape */
|
||||
#define REC_EOR '\001' /* Record-mode End-of-Record */
|
||||
#define REC_EOF '\002' /* Record-mode End-of-File */
|
||||
|
||||
/*
|
||||
* Block Header
|
||||
*/
|
||||
#define BLK_EOR 0x80 /* Block is End-of-Record */
|
||||
#define BLK_EOF 0x40 /* Block is End-of-File */
|
||||
#define BLK_ERRORS 0x20 /* Block is suspected of containing errors */
|
||||
#define BLK_RESTART 0x10 /* Block is Restart Marker */
|
||||
|
||||
#define BLK_BYTECOUNT 2 /* Bytes in this block */
|
||||
|
||||
#endif /* arpa/ftp.h */
|
||||
106
tasks/libposix/include/posix/arpa/inet.h
Normal file
106
tasks/libposix/include/posix/arpa/inet.h
Normal file
@@ -0,0 +1,106 @@
|
||||
/* Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _ARPA_INET_H
|
||||
#define _ARPA_INET_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <netinet/in.h> /* To define `struct in_addr'. */
|
||||
|
||||
/* Type for length arguments in socket calls. */
|
||||
#ifndef __socklen_t_defined
|
||||
typedef __socklen_t socklen_t;
|
||||
# define __socklen_t_defined
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Convert Internet host address from numbers-and-dots notation in CP
|
||||
into binary data in network byte order. */
|
||||
extern in_addr_t inet_addr (__const char *__cp) __THROW;
|
||||
|
||||
/* Return the local host address part of the Internet address in IN. */
|
||||
extern in_addr_t inet_lnaof (struct in_addr __in) __THROW;
|
||||
|
||||
/* Make Internet host address in network byte order by combining the
|
||||
network number NET with the local address HOST. */
|
||||
extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host)
|
||||
__THROW;
|
||||
|
||||
/* Return network number part of the Internet address IN. */
|
||||
extern in_addr_t inet_netof (struct in_addr __in) __THROW;
|
||||
|
||||
/* Extract the network number in network byte order from the address
|
||||
in numbers-and-dots natation starting at CP. */
|
||||
extern in_addr_t inet_network (__const char *__cp) __THROW;
|
||||
|
||||
/* Convert Internet number in IN to ASCII representation. The return value
|
||||
is a pointer to an internal array containing the string. */
|
||||
extern char *inet_ntoa (struct in_addr __in) __THROW;
|
||||
|
||||
/* Convert from presentation format of an Internet number in buffer
|
||||
starting at CP to the binary network format and store result for
|
||||
interface type AF in buffer starting at BUF. */
|
||||
extern int inet_pton (int __af, __const char *__restrict __cp,
|
||||
void *__restrict __buf) __THROW;
|
||||
|
||||
/* Convert a Internet address in binary network format for interface
|
||||
type AF in buffer starting at CP to presentation form and place
|
||||
result in buffer of length LEN astarting at BUF. */
|
||||
extern __const char *inet_ntop (int __af, __const void *__restrict __cp,
|
||||
char *__restrict __buf, socklen_t __len)
|
||||
__THROW;
|
||||
|
||||
|
||||
/* The following functions are not part of XNS 5.2. */
|
||||
#ifdef __USE_MISC
|
||||
/* Convert Internet host address from numbers-and-dots notation in CP
|
||||
into binary data and store the result in the structure INP. */
|
||||
extern int inet_aton (__const char *__cp, struct in_addr *__inp) __THROW;
|
||||
|
||||
/* Format a network number NET into presentation format and place result
|
||||
in buffer starting at BUF with length of LEN bytes. */
|
||||
extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
|
||||
|
||||
/* Convert network number for interface type AF in buffer starting at
|
||||
CP to presentation format. The result will specifiy BITS bits of
|
||||
the number. */
|
||||
extern char *inet_net_ntop (int __af, __const void *__cp, int __bits,
|
||||
char *__buf, size_t __len) __THROW;
|
||||
|
||||
/* Convert network number for interface type AF from presentation in
|
||||
buffer starting at CP to network format and store result int
|
||||
buffer starting at BUF of size LEN. */
|
||||
extern int inet_net_pton (int __af, __const char *__cp,
|
||||
void *__buf, size_t __len) __THROW;
|
||||
|
||||
/* Convert ASCII representation in hexadecimal form of the Internet
|
||||
address to binary form and place result in buffer of length LEN
|
||||
starting at BUF. */
|
||||
extern unsigned int inet_nsap_addr (__const char *__cp,
|
||||
unsigned char *__buf, int __len) __THROW;
|
||||
|
||||
/* Convert internet address in binary form in LEN bytes starting at CP
|
||||
a presentation form and place result in BUF. */
|
||||
extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp,
|
||||
char *__buf) __THROW;
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* arpa/inet.h */
|
||||
557
tasks/libposix/include/posix/arpa/nameser.h
Normal file
557
tasks/libposix/include/posix/arpa/nameser.h
Normal file
@@ -0,0 +1,557 @@
|
||||
/*
|
||||
* Copyright (c) 1983, 1989, 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996-1999 by Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
|
||||
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
|
||||
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $BINDId: nameser.h,v 8.37 2000/03/30 21:16:49 vixie Exp $
|
||||
*/
|
||||
|
||||
#ifndef _ARPA_NAMESER_H_
|
||||
#define _ARPA_NAMESER_H_
|
||||
|
||||
#define BIND_4_COMPAT
|
||||
|
||||
#include <sys/param.h>
|
||||
#if (!defined(BSD)) || (BSD < 199306)
|
||||
# include <sys/bitypes.h>
|
||||
#else
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
/*
|
||||
* Revision information. This is the release date in YYYYMMDD format.
|
||||
* It can change every day so the right thing to do with it is use it
|
||||
* in preprocessor commands such as "#if (__NAMESER > 19931104)". Do not
|
||||
* compare for equality; rather, use it to determine whether your libbind.a
|
||||
* contains a new enough lib/nameser/ to support the feature you need.
|
||||
*/
|
||||
|
||||
#define __NAMESER 19991006 /* New interface version stamp. */
|
||||
|
||||
/*
|
||||
* Define constants based on RFC 883, RFC 1034, RFC 1035
|
||||
*/
|
||||
#define NS_PACKETSZ 512 /* maximum packet size */
|
||||
#define NS_MAXDNAME 1025 /* maximum domain name */
|
||||
#define NS_MAXCDNAME 255 /* maximum compressed domain name */
|
||||
#define NS_MAXLABEL 63 /* maximum length of domain label */
|
||||
#define NS_HFIXEDSZ 12 /* #/bytes of fixed data in header */
|
||||
#define NS_QFIXEDSZ 4 /* #/bytes of fixed data in query */
|
||||
#define NS_RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
|
||||
#define NS_INT32SZ 4 /* #/bytes of data in a u_int32_t */
|
||||
#define NS_INT16SZ 2 /* #/bytes of data in a u_int16_t */
|
||||
#define NS_INT8SZ 1 /* #/bytes of data in a u_int8_t */
|
||||
#define NS_INADDRSZ 4 /* IPv4 T_A */
|
||||
#define NS_IN6ADDRSZ 16 /* IPv6 T_AAAA */
|
||||
#define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */
|
||||
#define NS_DEFAULTPORT 53 /* For both TCP and UDP. */
|
||||
|
||||
/*
|
||||
* These can be expanded with synonyms, just keep ns_parse.c:ns_parserecord()
|
||||
* in synch with it.
|
||||
*/
|
||||
typedef enum __ns_sect {
|
||||
ns_s_qd = 0, /* Query: Question. */
|
||||
ns_s_zn = 0, /* Update: Zone. */
|
||||
ns_s_an = 1, /* Query: Answer. */
|
||||
ns_s_pr = 1, /* Update: Prerequisites. */
|
||||
ns_s_ns = 2, /* Query: Name servers. */
|
||||
ns_s_ud = 2, /* Update: Update. */
|
||||
ns_s_ar = 3, /* Query|Update: Additional records. */
|
||||
ns_s_max = 4
|
||||
} ns_sect;
|
||||
|
||||
/*
|
||||
* This is a message handle. It is caller allocated and has no dynamic data.
|
||||
* This structure is intended to be opaque to all but ns_parse.c, thus the
|
||||
* leading _'s on the member names. Use the accessor functions, not the _'s.
|
||||
*/
|
||||
typedef struct __ns_msg {
|
||||
const u_char *_msg, *_eom;
|
||||
u_int16_t _id, _flags, _counts[ns_s_max];
|
||||
const u_char *_sections[ns_s_max];
|
||||
ns_sect _sect;
|
||||
int _rrnum;
|
||||
const u_char *_ptr;
|
||||
} ns_msg;
|
||||
|
||||
/* Private data structure - do not use from outside library. */
|
||||
struct _ns_flagdata { int mask, shift; };
|
||||
extern struct _ns_flagdata _ns_flagdata[];
|
||||
|
||||
/* Accessor macros - this is part of the public interface. */
|
||||
#define ns_msg_getflag(handle, flag) ( \
|
||||
((handle)._flags & _ns_flagdata[flag].mask) \
|
||||
>> _ns_flagdata[flag].shift \
|
||||
)
|
||||
#define ns_msg_id(handle) ((handle)._id + 0)
|
||||
#define ns_msg_base(handle) ((handle)._msg + 0)
|
||||
#define ns_msg_end(handle) ((handle)._eom + 0)
|
||||
#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)
|
||||
#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
|
||||
|
||||
/*
|
||||
* This is a parsed record. It is caller allocated and has no dynamic data.
|
||||
*/
|
||||
typedef struct __ns_rr {
|
||||
char name[NS_MAXDNAME];
|
||||
u_int16_t type;
|
||||
u_int16_t rr_class;
|
||||
u_int32_t ttl;
|
||||
u_int16_t rdlength;
|
||||
const u_char * rdata;
|
||||
} ns_rr;
|
||||
|
||||
/* Accessor macros - this is part of the public interface. */
|
||||
#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
|
||||
#define ns_rr_type(rr) ((ns_type)((rr).type + 0))
|
||||
#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))
|
||||
#define ns_rr_ttl(rr) ((rr).ttl + 0)
|
||||
#define ns_rr_rdlen(rr) ((rr).rdlength + 0)
|
||||
#define ns_rr_rdata(rr) ((rr).rdata + 0)
|
||||
|
||||
/*
|
||||
* These don't have to be in the same order as in the packet flags word,
|
||||
* and they can even overlap in some cases, but they will need to be kept
|
||||
* in synch with ns_parse.c:ns_flagdata[].
|
||||
*/
|
||||
typedef enum __ns_flag {
|
||||
ns_f_qr, /* Question/Response. */
|
||||
ns_f_opcode, /* Operation code. */
|
||||
ns_f_aa, /* Authoritative Answer. */
|
||||
ns_f_tc, /* Truncation occurred. */
|
||||
ns_f_rd, /* Recursion Desired. */
|
||||
ns_f_ra, /* Recursion Available. */
|
||||
ns_f_z, /* MBZ. */
|
||||
ns_f_ad, /* Authentic Data (DNSSEC). */
|
||||
ns_f_cd, /* Checking Disabled (DNSSEC). */
|
||||
ns_f_rcode, /* Response code. */
|
||||
ns_f_max
|
||||
} ns_flag;
|
||||
|
||||
/*
|
||||
* Currently defined opcodes.
|
||||
*/
|
||||
typedef enum __ns_opcode {
|
||||
ns_o_query = 0, /* Standard query. */
|
||||
ns_o_iquery = 1, /* Inverse query (deprecated/unsupported). */
|
||||
ns_o_status = 2, /* Name server status query (unsupported). */
|
||||
/* Opcode 3 is undefined/reserved. */
|
||||
ns_o_notify = 4, /* Zone change notification. */
|
||||
ns_o_update = 5, /* Zone update message. */
|
||||
ns_o_max = 6
|
||||
} ns_opcode;
|
||||
|
||||
/*
|
||||
* Currently defined response codes.
|
||||
*/
|
||||
typedef enum __ns_rcode {
|
||||
ns_r_noerror = 0, /* No error occurred. */
|
||||
ns_r_formerr = 1, /* Format error. */
|
||||
ns_r_servfail = 2, /* Server failure. */
|
||||
ns_r_nxdomain = 3, /* Name error. */
|
||||
ns_r_notimpl = 4, /* Unimplemented. */
|
||||
ns_r_refused = 5, /* Operation refused. */
|
||||
/* these are for BIND_UPDATE */
|
||||
ns_r_yxdomain = 6, /* Name exists */
|
||||
ns_r_yxrrset = 7, /* RRset exists */
|
||||
ns_r_nxrrset = 8, /* RRset does not exist */
|
||||
ns_r_notauth = 9, /* Not authoritative for zone */
|
||||
ns_r_notzone = 10, /* Zone of record different from zone section */
|
||||
ns_r_max = 11,
|
||||
/* The following are TSIG extended errors */
|
||||
ns_r_badsig = 16,
|
||||
ns_r_badkey = 17,
|
||||
ns_r_badtime = 18
|
||||
} ns_rcode;
|
||||
|
||||
/* BIND_UPDATE */
|
||||
typedef enum __ns_update_operation {
|
||||
ns_uop_delete = 0,
|
||||
ns_uop_add = 1,
|
||||
ns_uop_max = 2
|
||||
} ns_update_operation;
|
||||
|
||||
/*
|
||||
* This structure is used for TSIG authenticated messages
|
||||
*/
|
||||
struct ns_tsig_key {
|
||||
char name[NS_MAXDNAME], alg[NS_MAXDNAME];
|
||||
unsigned char *data;
|
||||
int len;
|
||||
};
|
||||
typedef struct ns_tsig_key ns_tsig_key;
|
||||
|
||||
/*
|
||||
* This structure is used for TSIG authenticated TCP messages
|
||||
*/
|
||||
struct ns_tcp_tsig_state {
|
||||
int counter;
|
||||
struct dst_key *key;
|
||||
void *ctx;
|
||||
unsigned char sig[NS_PACKETSZ];
|
||||
int siglen;
|
||||
};
|
||||
typedef struct ns_tcp_tsig_state ns_tcp_tsig_state;
|
||||
|
||||
#define NS_TSIG_FUDGE 300
|
||||
#define NS_TSIG_TCP_COUNT 100
|
||||
#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
|
||||
|
||||
#define NS_TSIG_ERROR_NO_TSIG -10
|
||||
#define NS_TSIG_ERROR_NO_SPACE -11
|
||||
#define NS_TSIG_ERROR_FORMERR -12
|
||||
|
||||
/*
|
||||
* Currently defined type values for resources and queries.
|
||||
*/
|
||||
typedef enum __ns_type {
|
||||
ns_t_invalid = 0, /* Cookie. */
|
||||
ns_t_a = 1, /* Host address. */
|
||||
ns_t_ns = 2, /* Authoritative server. */
|
||||
ns_t_md = 3, /* Mail destination. */
|
||||
ns_t_mf = 4, /* Mail forwarder. */
|
||||
ns_t_cname = 5, /* Canonical name. */
|
||||
ns_t_soa = 6, /* Start of authority zone. */
|
||||
ns_t_mb = 7, /* Mailbox domain name. */
|
||||
ns_t_mg = 8, /* Mail group member. */
|
||||
ns_t_mr = 9, /* Mail rename name. */
|
||||
ns_t_null = 10, /* Null resource record. */
|
||||
ns_t_wks = 11, /* Well known service. */
|
||||
ns_t_ptr = 12, /* Domain name pointer. */
|
||||
ns_t_hinfo = 13, /* Host information. */
|
||||
ns_t_minfo = 14, /* Mailbox information. */
|
||||
ns_t_mx = 15, /* Mail routing information. */
|
||||
ns_t_txt = 16, /* Text strings. */
|
||||
ns_t_rp = 17, /* Responsible person. */
|
||||
ns_t_afsdb = 18, /* AFS cell database. */
|
||||
ns_t_x25 = 19, /* X_25 calling address. */
|
||||
ns_t_isdn = 20, /* ISDN calling address. */
|
||||
ns_t_rt = 21, /* Router. */
|
||||
ns_t_nsap = 22, /* NSAP address. */
|
||||
ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */
|
||||
ns_t_sig = 24, /* Security signature. */
|
||||
ns_t_key = 25, /* Security key. */
|
||||
ns_t_px = 26, /* X.400 mail mapping. */
|
||||
ns_t_gpos = 27, /* Geographical position (withdrawn). */
|
||||
ns_t_aaaa = 28, /* Ip6 Address. */
|
||||
ns_t_loc = 29, /* Location Information. */
|
||||
ns_t_nxt = 30, /* Next domain (security). */
|
||||
ns_t_eid = 31, /* Endpoint identifier. */
|
||||
ns_t_nimloc = 32, /* Nimrod Locator. */
|
||||
ns_t_srv = 33, /* Server Selection. */
|
||||
ns_t_atma = 34, /* ATM Address */
|
||||
ns_t_naptr = 35, /* Naming Authority PoinTeR */
|
||||
ns_t_kx = 36, /* Key Exchange */
|
||||
ns_t_cert = 37, /* Certification record */
|
||||
ns_t_a6 = 38, /* IPv6 address (deprecates AAAA) */
|
||||
ns_t_dname = 39, /* Non-terminal DNAME (for IPv6) */
|
||||
ns_t_sink = 40, /* Kitchen sink (experimentatl) */
|
||||
ns_t_opt = 41, /* EDNS0 option (meta-RR) */
|
||||
ns_t_tsig = 250, /* Transaction signature. */
|
||||
ns_t_ixfr = 251, /* Incremental zone transfer. */
|
||||
ns_t_axfr = 252, /* Transfer zone of authority. */
|
||||
ns_t_mailb = 253, /* Transfer mailbox records. */
|
||||
ns_t_maila = 254, /* Transfer mail agent records. */
|
||||
ns_t_any = 255, /* Wildcard match. */
|
||||
ns_t_zxfr = 256, /* BIND-specific, nonstandard. */
|
||||
ns_t_max = 65536
|
||||
} ns_type;
|
||||
|
||||
/* Exclusively a QTYPE? (not also an RTYPE) */
|
||||
#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
|
||||
(t) == ns_t_mailb || (t) == ns_t_maila)
|
||||
/* Some kind of meta-RR? (not a QTYPE, but also not an RTYPE) */
|
||||
#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
|
||||
/* Exclusively an RTYPE? (not also a QTYPE or a meta-RR) */
|
||||
#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
|
||||
#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
|
||||
#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
|
||||
(t) == ns_t_zxfr)
|
||||
|
||||
/*
|
||||
* Values for class field
|
||||
*/
|
||||
typedef enum __ns_class {
|
||||
ns_c_invalid = 0, /* Cookie. */
|
||||
ns_c_in = 1, /* Internet. */
|
||||
ns_c_2 = 2, /* unallocated/unsupported. */
|
||||
ns_c_chaos = 3, /* MIT Chaos-net. */
|
||||
ns_c_hs = 4, /* MIT Hesiod. */
|
||||
/* Query class values which do not appear in resource records */
|
||||
ns_c_none = 254, /* for prereq. sections in update requests */
|
||||
ns_c_any = 255, /* Wildcard match. */
|
||||
ns_c_max = 65536
|
||||
} ns_class;
|
||||
|
||||
/* DNSSEC constants. */
|
||||
|
||||
typedef enum __ns_key_types {
|
||||
ns_kt_rsa = 1, /* key type RSA/MD5 */
|
||||
ns_kt_dh = 2, /* Diffie Hellman */
|
||||
ns_kt_dsa = 3, /* Digital Signature Standard (MANDATORY) */
|
||||
ns_kt_private = 254 /* Private key type starts with OID */
|
||||
} ns_key_types;
|
||||
|
||||
typedef enum __ns_cert_types {
|
||||
cert_t_pkix = 1, /* PKIX (X.509v3) */
|
||||
cert_t_spki = 2, /* SPKI */
|
||||
cert_t_pgp = 3, /* PGP */
|
||||
cert_t_url = 253, /* URL private type */
|
||||
cert_t_oid = 254 /* OID private type */
|
||||
} ns_cert_types;
|
||||
|
||||
/* Flags field of the KEY RR rdata. */
|
||||
#define NS_KEY_TYPEMASK 0xC000 /* Mask for "type" bits */
|
||||
#define NS_KEY_TYPE_AUTH_CONF 0x0000 /* Key usable for both */
|
||||
#define NS_KEY_TYPE_CONF_ONLY 0x8000 /* Key usable for confidentiality */
|
||||
#define NS_KEY_TYPE_AUTH_ONLY 0x4000 /* Key usable for authentication */
|
||||
#define NS_KEY_TYPE_NO_KEY 0xC000 /* No key usable for either; no key */
|
||||
/* The type bits can also be interpreted independently, as single bits: */
|
||||
#define NS_KEY_NO_AUTH 0x8000 /* Key unusable for authentication */
|
||||
#define NS_KEY_NO_CONF 0x4000 /* Key unusable for confidentiality */
|
||||
#define NS_KEY_RESERVED2 0x2000 /* Security is *mandatory* if bit=0 */
|
||||
#define NS_KEY_EXTENDED_FLAGS 0x1000 /* reserved - must be zero */
|
||||
#define NS_KEY_RESERVED4 0x0800 /* reserved - must be zero */
|
||||
#define NS_KEY_RESERVED5 0x0400 /* reserved - must be zero */
|
||||
#define NS_KEY_NAME_TYPE 0x0300 /* these bits determine the type */
|
||||
#define NS_KEY_NAME_USER 0x0000 /* key is assoc. with user */
|
||||
#define NS_KEY_NAME_ENTITY 0x0200 /* key is assoc. with entity eg host */
|
||||
#define NS_KEY_NAME_ZONE 0x0100 /* key is zone key */
|
||||
#define NS_KEY_NAME_RESERVED 0x0300 /* reserved meaning */
|
||||
#define NS_KEY_RESERVED8 0x0080 /* reserved - must be zero */
|
||||
#define NS_KEY_RESERVED9 0x0040 /* reserved - must be zero */
|
||||
#define NS_KEY_RESERVED10 0x0020 /* reserved - must be zero */
|
||||
#define NS_KEY_RESERVED11 0x0010 /* reserved - must be zero */
|
||||
#define NS_KEY_SIGNATORYMASK 0x000F /* key can sign RR's of same name */
|
||||
#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
|
||||
NS_KEY_RESERVED4 | \
|
||||
NS_KEY_RESERVED5 | \
|
||||
NS_KEY_RESERVED8 | \
|
||||
NS_KEY_RESERVED9 | \
|
||||
NS_KEY_RESERVED10 | \
|
||||
NS_KEY_RESERVED11 )
|
||||
#define NS_KEY_RESERVED_BITMASK2 0xFFFF /* no bits defined here */
|
||||
|
||||
/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */
|
||||
#define NS_ALG_MD5RSA 1 /* MD5 with RSA */
|
||||
#define NS_ALG_DH 2 /* Diffie Hellman KEY */
|
||||
#define NS_ALG_DSA 3 /* DSA KEY */
|
||||
#define NS_ALG_DSS NS_ALG_DSA
|
||||
#define NS_ALG_EXPIRE_ONLY 253 /* No alg, no security */
|
||||
#define NS_ALG_PRIVATE_OID 254 /* Key begins with OID giving alg */
|
||||
|
||||
/* Protocol values */
|
||||
/* value 0 is reserved */
|
||||
#define NS_KEY_PROT_TLS 1
|
||||
#define NS_KEY_PROT_EMAIL 2
|
||||
#define NS_KEY_PROT_DNSSEC 3
|
||||
#define NS_KEY_PROT_IPSEC 4
|
||||
#define NS_KEY_PROT_ANY 255
|
||||
|
||||
/* Signatures */
|
||||
#define NS_MD5RSA_MIN_BITS 512 /* Size of a mod or exp in bits */
|
||||
#define NS_MD5RSA_MAX_BITS 2552
|
||||
/* Total of binary mod and exp */
|
||||
#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
|
||||
/* Max length of text sig block */
|
||||
#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
|
||||
#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)
|
||||
#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)
|
||||
|
||||
#define NS_DSA_SIG_SIZE 41
|
||||
#define NS_DSA_MIN_SIZE 213
|
||||
#define NS_DSA_MAX_BYTES 405
|
||||
|
||||
/* Offsets into SIG record rdata to find various values */
|
||||
#define NS_SIG_TYPE 0 /* Type flags */
|
||||
#define NS_SIG_ALG 2 /* Algorithm */
|
||||
#define NS_SIG_LABELS 3 /* How many labels in name */
|
||||
#define NS_SIG_OTTL 4 /* Original TTL */
|
||||
#define NS_SIG_EXPIR 8 /* Expiration time */
|
||||
#define NS_SIG_SIGNED 12 /* Signature time */
|
||||
#define NS_SIG_FOOT 16 /* Key footprint */
|
||||
#define NS_SIG_SIGNER 18 /* Domain name of who signed it */
|
||||
|
||||
/* How RR types are represented as bit-flags in NXT records */
|
||||
#define NS_NXT_BITS 8
|
||||
#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))
|
||||
#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
|
||||
#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))
|
||||
#define NS_NXT_MAX 127
|
||||
|
||||
/*
|
||||
* Inline versions of get/put short/long. Pointer is advanced.
|
||||
*/
|
||||
#define NS_GET16(s, cp) do { \
|
||||
register u_char *t_cp = (u_char *)(cp); \
|
||||
(s) = ((u_int16_t)t_cp[0] << 8) \
|
||||
| ((u_int16_t)t_cp[1]) \
|
||||
; \
|
||||
(cp) += NS_INT16SZ; \
|
||||
} while (0)
|
||||
|
||||
#define NS_GET32(l, cp) do { \
|
||||
register u_char *t_cp = (u_char *)(cp); \
|
||||
(l) = ((u_int32_t)t_cp[0] << 24) \
|
||||
| ((u_int32_t)t_cp[1] << 16) \
|
||||
| ((u_int32_t)t_cp[2] << 8) \
|
||||
| ((u_int32_t)t_cp[3]) \
|
||||
; \
|
||||
(cp) += NS_INT32SZ; \
|
||||
} while (0)
|
||||
|
||||
#define NS_PUT16(s, cp) do { \
|
||||
register u_int16_t t_s = (u_int16_t)(s); \
|
||||
register u_char *t_cp = (u_char *)(cp); \
|
||||
*t_cp++ = t_s >> 8; \
|
||||
*t_cp = t_s; \
|
||||
(cp) += NS_INT16SZ; \
|
||||
} while (0)
|
||||
|
||||
#define NS_PUT32(l, cp) do { \
|
||||
register u_int32_t t_l = (u_int32_t)(l); \
|
||||
register u_char *t_cp = (u_char *)(cp); \
|
||||
*t_cp++ = t_l >> 24; \
|
||||
*t_cp++ = t_l >> 16; \
|
||||
*t_cp++ = t_l >> 8; \
|
||||
*t_cp = t_l; \
|
||||
(cp) += NS_INT32SZ; \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* ANSI C identifier hiding for bind's lib/nameser.
|
||||
*/
|
||||
#define ns_get16 __ns_get16
|
||||
#define ns_get32 __ns_get32
|
||||
#define ns_put16 __ns_put16
|
||||
#define ns_put32 __ns_put32
|
||||
#define ns_initparse __ns_initparse
|
||||
#define ns_skiprr __ns_skiprr
|
||||
#define ns_parserr __ns_parserr
|
||||
#define ns_sprintrr __ns_sprintrr
|
||||
#define ns_sprintrrf __ns_sprintrrf
|
||||
#define ns_format_ttl __ns_format_ttl
|
||||
#define ns_parse_ttl __ns_parse_ttl
|
||||
#define ns_datetosecs __ns_datetosecs
|
||||
#define ns_name_ntol __ns_name_ntol
|
||||
#define ns_name_ntop __ns_name_ntop
|
||||
#define ns_name_pton __ns_name_pton
|
||||
#define ns_name_unpack __ns_name_unpack
|
||||
#define ns_name_pack __ns_name_pack
|
||||
#define ns_name_compress __ns_name_compress
|
||||
#define ns_name_uncompress __ns_name_uncompress
|
||||
#define ns_name_skip __ns_name_skip
|
||||
#define ns_name_rollback __ns_name_rollback
|
||||
#define ns_sign __ns_sign
|
||||
#define ns_sign_tcp __ns_sign_tcp
|
||||
#define ns_sign_tcp_init __ns_sign_tcp_init
|
||||
#define ns_find_tsig __ns_find_tsig
|
||||
#define ns_verify __ns_verify
|
||||
#define ns_verify_tcp __ns_verify_tcp
|
||||
#define ns_verify_tcp_init __ns_verify_tcp_init
|
||||
#define ns_samedomain __ns_samedomain
|
||||
#define ns_subdomain __ns_subdomain
|
||||
#define ns_makecanon __ns_makecanon
|
||||
#define ns_samename __ns_samename
|
||||
|
||||
__BEGIN_DECLS
|
||||
u_int ns_get16 (const u_char *) __THROW;
|
||||
u_long ns_get32 (const u_char *) __THROW;
|
||||
void ns_put16 (u_int, u_char *) __THROW;
|
||||
void ns_put32 (u_long, u_char *) __THROW;
|
||||
int ns_initparse (const u_char *, int, ns_msg *) __THROW;
|
||||
int ns_skiprr (const u_char *, const u_char *, ns_sect, int)
|
||||
__THROW;
|
||||
int ns_parserr (ns_msg *, ns_sect, int, ns_rr *) __THROW;
|
||||
int ns_sprintrr (const ns_msg *, const ns_rr *,
|
||||
const char *, const char *, char *, size_t)
|
||||
__THROW;
|
||||
int ns_sprintrrf (const u_char *, size_t, const char *,
|
||||
ns_class, ns_type, u_long, const u_char *,
|
||||
size_t, const char *, const char *,
|
||||
char *, size_t) __THROW;
|
||||
int ns_format_ttl (u_long, char *, size_t) __THROW;
|
||||
int ns_parse_ttl (const char *, u_long *) __THROW;
|
||||
u_int32_t ns_datetosecs (const char *cp, int *errp) __THROW;
|
||||
int ns_name_ntol (const u_char *, u_char *, size_t) __THROW;
|
||||
int ns_name_ntop (const u_char *, char *, size_t) __THROW;
|
||||
int ns_name_pton (const char *, u_char *, size_t) __THROW;
|
||||
int ns_name_unpack (const u_char *, const u_char *,
|
||||
const u_char *, u_char *, size_t) __THROW;
|
||||
int ns_name_pack (const u_char *, u_char *, int,
|
||||
const u_char **, const u_char **) __THROW;
|
||||
int ns_name_uncompress (const u_char *, const u_char *,
|
||||
const u_char *, char *, size_t) __THROW;
|
||||
int ns_name_compress (const char *, u_char *, size_t,
|
||||
const u_char **, const u_char **) __THROW;
|
||||
int ns_name_skip (const u_char **, const u_char *) __THROW;
|
||||
void ns_name_rollback (const u_char *, const u_char **,
|
||||
const u_char **) __THROW;
|
||||
int ns_sign (u_char *, int *, int, int, void *,
|
||||
const u_char *, int, u_char *, int *, time_t) __THROW;
|
||||
int ns_sign_tcp (u_char *, int *, int, int,
|
||||
ns_tcp_tsig_state *, int) __THROW;
|
||||
int ns_sign_tcp_init (void *, const u_char *, int,
|
||||
ns_tcp_tsig_state *) __THROW;
|
||||
u_char *ns_find_tsig (u_char *, u_char *) __THROW;
|
||||
int ns_verify (u_char *, int *, void *, const u_char *, int,
|
||||
u_char *, int *, time_t *, int) __THROW;
|
||||
int ns_verify_tcp (u_char *, int *, ns_tcp_tsig_state *, int)
|
||||
__THROW;
|
||||
int ns_verify_tcp_init (void *, const u_char *, int,
|
||||
ns_tcp_tsig_state *) __THROW;
|
||||
int ns_samedomain (const char *, const char *) __THROW;
|
||||
int ns_subdomain (const char *, const char *) __THROW;
|
||||
int ns_makecanon (const char *, char *, size_t) __THROW;
|
||||
int ns_samename (const char *, const char *) __THROW;
|
||||
__END_DECLS
|
||||
|
||||
#ifdef BIND_4_COMPAT
|
||||
#include <arpa/nameser_compat.h>
|
||||
#endif
|
||||
|
||||
#endif /* !_ARPA_NAMESER_H_ */
|
||||
183
tasks/libposix/include/posix/arpa/nameser_compat.h
Normal file
183
tasks/libposix/include/posix/arpa/nameser_compat.h
Normal file
@@ -0,0 +1,183 @@
|
||||
/* Copyright (c) 1983, 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.
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* from nameser.h 8.1 (Berkeley) 6/2/93
|
||||
* $BINDId: nameser_compat.h,v 8.11 1999/01/02 08:00:58 vixie Exp $
|
||||
*/
|
||||
|
||||
#ifndef _ARPA_NAMESER_COMPAT_
|
||||
#define _ARPA_NAMESER_COMPAT_
|
||||
|
||||
#define __BIND 19950621 /* (DEAD) interface version stamp. */
|
||||
|
||||
#include <endian.h>
|
||||
|
||||
/*
|
||||
* Structure for query header. The order of the fields is machine- and
|
||||
* compiler-dependent, depending on the byte/bit order and the layout
|
||||
* of bit fields. We use bit fields only in int variables, as this
|
||||
* is all ANSI requires. This requires a somewhat confusing rearrangement.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
unsigned id :16; /* query identification number */
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
/* fields in third byte */
|
||||
unsigned qr: 1; /* response flag */
|
||||
unsigned opcode: 4; /* purpose of message */
|
||||
unsigned aa: 1; /* authoritive answer */
|
||||
unsigned tc: 1; /* truncated message */
|
||||
unsigned rd: 1; /* recursion desired */
|
||||
/* fields in fourth byte */
|
||||
unsigned ra: 1; /* recursion available */
|
||||
unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
|
||||
unsigned ad: 1; /* authentic data from named */
|
||||
unsigned cd: 1; /* checking disabled by resolver */
|
||||
unsigned rcode :4; /* response code */
|
||||
#endif
|
||||
#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
|
||||
/* fields in third byte */
|
||||
unsigned rd :1; /* recursion desired */
|
||||
unsigned tc :1; /* truncated message */
|
||||
unsigned aa :1; /* authoritive answer */
|
||||
unsigned opcode :4; /* purpose of message */
|
||||
unsigned qr :1; /* response flag */
|
||||
/* fields in fourth byte */
|
||||
unsigned rcode :4; /* response code */
|
||||
unsigned cd: 1; /* checking disabled by resolver */
|
||||
unsigned ad: 1; /* authentic data from named */
|
||||
unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
|
||||
unsigned ra :1; /* recursion available */
|
||||
#endif
|
||||
/* remaining bytes */
|
||||
unsigned qdcount :16; /* number of question entries */
|
||||
unsigned ancount :16; /* number of answer entries */
|
||||
unsigned nscount :16; /* number of authority entries */
|
||||
unsigned arcount :16; /* number of resource entries */
|
||||
} HEADER;
|
||||
|
||||
#define PACKETSZ NS_PACKETSZ
|
||||
#define MAXDNAME NS_MAXDNAME
|
||||
#define MAXCDNAME NS_MAXCDNAME
|
||||
#define MAXLABEL NS_MAXLABEL
|
||||
#define HFIXEDSZ NS_HFIXEDSZ
|
||||
#define QFIXEDSZ NS_QFIXEDSZ
|
||||
#define RRFIXEDSZ NS_RRFIXEDSZ
|
||||
#define INT32SZ NS_INT32SZ
|
||||
#define INT16SZ NS_INT16SZ
|
||||
#define INADDRSZ NS_INADDRSZ
|
||||
#define IN6ADDRSZ NS_IN6ADDRSZ
|
||||
#define INDIR_MASK NS_CMPRSFLGS
|
||||
#define NAMESERVER_PORT NS_DEFAULTPORT
|
||||
|
||||
#define S_ZONE ns_s_zn
|
||||
#define S_PREREQ ns_s_pr
|
||||
#define S_UPDATE ns_s_ud
|
||||
#define S_ADDT ns_s_ar
|
||||
|
||||
#define QUERY ns_o_query
|
||||
#define IQUERY ns_o_iquery
|
||||
#define STATUS ns_o_status
|
||||
#define NS_NOTIFY_OP ns_o_notify
|
||||
#define NS_UPDATE_OP ns_o_update
|
||||
|
||||
#define NOERROR ns_r_noerror
|
||||
#define FORMERR ns_r_formerr
|
||||
#define SERVFAIL ns_r_servfail
|
||||
#define NXDOMAIN ns_r_nxdomain
|
||||
#define NOTIMP ns_r_notimpl
|
||||
#define REFUSED ns_r_refused
|
||||
#define YXDOMAIN ns_r_yxdomain
|
||||
#define YXRRSET ns_r_yxrrset
|
||||
#define NXRRSET ns_r_nxrrset
|
||||
#define NOTAUTH ns_r_notauth
|
||||
#define NOTZONE ns_r_notzone
|
||||
/*#define BADSIG ns_r_badsig*/
|
||||
/*#define BADKEY ns_r_badkey*/
|
||||
/*#define BADTIME ns_r_badtime*/
|
||||
|
||||
|
||||
#define DELETE ns_uop_delete
|
||||
#define ADD ns_uop_add
|
||||
|
||||
#define T_A ns_t_a
|
||||
#define T_NS ns_t_ns
|
||||
#define T_MD ns_t_md
|
||||
#define T_MF ns_t_mf
|
||||
#define T_CNAME ns_t_cname
|
||||
#define T_SOA ns_t_soa
|
||||
#define T_MB ns_t_mb
|
||||
#define T_MG ns_t_mg
|
||||
#define T_MR ns_t_mr
|
||||
#define T_NULL ns_t_null
|
||||
#define T_WKS ns_t_wks
|
||||
#define T_PTR ns_t_ptr
|
||||
#define T_HINFO ns_t_hinfo
|
||||
#define T_MINFO ns_t_minfo
|
||||
#define T_MX ns_t_mx
|
||||
#define T_TXT ns_t_txt
|
||||
#define T_RP ns_t_rp
|
||||
#define T_AFSDB ns_t_afsdb
|
||||
#define T_X25 ns_t_x25
|
||||
#define T_ISDN ns_t_isdn
|
||||
#define T_RT ns_t_rt
|
||||
#define T_NSAP ns_t_nsap
|
||||
#define T_NSAP_PTR ns_t_nsap_ptr
|
||||
#define T_SIG ns_t_sig
|
||||
#define T_KEY ns_t_key
|
||||
#define T_PX ns_t_px
|
||||
#define T_GPOS ns_t_gpos
|
||||
#define T_AAAA ns_t_aaaa
|
||||
#define T_LOC ns_t_loc
|
||||
#define T_NXT ns_t_nxt
|
||||
#define T_EID ns_t_eid
|
||||
#define T_NIMLOC ns_t_nimloc
|
||||
#define T_SRV ns_t_srv
|
||||
#define T_ATMA ns_t_atma
|
||||
#define T_NAPTR ns_t_naptr
|
||||
#define T_TSIG ns_t_tsig
|
||||
#define T_IXFR ns_t_ixfr
|
||||
#define T_AXFR ns_t_axfr
|
||||
#define T_MAILB ns_t_mailb
|
||||
#define T_MAILA ns_t_maila
|
||||
#define T_ANY ns_t_any
|
||||
|
||||
#define C_IN ns_c_in
|
||||
#define C_CHAOS ns_c_chaos
|
||||
#define C_HS ns_c_hs
|
||||
/* BIND_UPDATE */
|
||||
#define C_NONE ns_c_none
|
||||
#define C_ANY ns_c_any
|
||||
|
||||
#define GETSHORT NS_GET16
|
||||
#define GETLONG NS_GET32
|
||||
#define PUTSHORT NS_PUT16
|
||||
#define PUTLONG NS_PUT32
|
||||
|
||||
#endif /* _ARPA_NAMESER_COMPAT_ */
|
||||
316
tasks/libposix/include/posix/arpa/telnet.h
Normal file
316
tasks/libposix/include/posix/arpa/telnet.h
Normal file
@@ -0,0 +1,316 @@
|
||||
/*
|
||||
* Copyright (c) 1983, 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.
|
||||
*
|
||||
* @(#)telnet.h 8.2 (Berkeley) 12/15/93
|
||||
*/
|
||||
|
||||
#ifndef _ARPA_TELNET_H
|
||||
#define _ARPA_TELNET_H 1
|
||||
|
||||
/*
|
||||
* Definitions for the TELNET protocol.
|
||||
*/
|
||||
#define IAC 255 /* interpret as command: */
|
||||
#define DONT 254 /* you are not to use option */
|
||||
#define DO 253 /* please, you use option */
|
||||
#define WONT 252 /* I won't use option */
|
||||
#define WILL 251 /* I will use option */
|
||||
#define SB 250 /* interpret as subnegotiation */
|
||||
#define GA 249 /* you may reverse the line */
|
||||
#define EL 248 /* erase the current line */
|
||||
#define EC 247 /* erase the current character */
|
||||
#define AYT 246 /* are you there */
|
||||
#define AO 245 /* abort output--but let prog finish */
|
||||
#define IP 244 /* interrupt process--permanently */
|
||||
#define BREAK 243 /* break */
|
||||
#define DM 242 /* data mark--for connect. cleaning */
|
||||
#define NOP 241 /* nop */
|
||||
#define SE 240 /* end sub negotiation */
|
||||
#define EOR 239 /* end of record (transparent mode) */
|
||||
#define ABORT 238 /* Abort process */
|
||||
#define SUSP 237 /* Suspend process */
|
||||
#define xEOF 236 /* End of file: EOF is already used... */
|
||||
|
||||
#define SYNCH 242 /* for telfunc calls */
|
||||
|
||||
#ifdef TELCMDS
|
||||
char *telcmds[] = {
|
||||
"EOF", "SUSP", "ABORT", "EOR",
|
||||
"SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
|
||||
"EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0,
|
||||
};
|
||||
#else
|
||||
extern char *telcmds[];
|
||||
#endif
|
||||
|
||||
#define TELCMD_FIRST xEOF
|
||||
#define TELCMD_LAST IAC
|
||||
#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \
|
||||
(unsigned int)(x) >= TELCMD_FIRST)
|
||||
#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]
|
||||
|
||||
/* telnet options */
|
||||
#define TELOPT_BINARY 0 /* 8-bit data path */
|
||||
#define TELOPT_ECHO 1 /* echo */
|
||||
#define TELOPT_RCP 2 /* prepare to reconnect */
|
||||
#define TELOPT_SGA 3 /* suppress go ahead */
|
||||
#define TELOPT_NAMS 4 /* approximate message size */
|
||||
#define TELOPT_STATUS 5 /* give status */
|
||||
#define TELOPT_TM 6 /* timing mark */
|
||||
#define TELOPT_RCTE 7 /* remote controlled transmission and echo */
|
||||
#define TELOPT_NAOL 8 /* negotiate about output line width */
|
||||
#define TELOPT_NAOP 9 /* negotiate about output page size */
|
||||
#define TELOPT_NAOCRD 10 /* negotiate about CR disposition */
|
||||
#define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */
|
||||
#define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */
|
||||
#define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */
|
||||
#define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */
|
||||
#define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */
|
||||
#define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */
|
||||
#define TELOPT_XASCII 17 /* extended ascii character set */
|
||||
#define TELOPT_LOGOUT 18 /* force logout */
|
||||
#define TELOPT_BM 19 /* byte macro */
|
||||
#define TELOPT_DET 20 /* data entry terminal */
|
||||
#define TELOPT_SUPDUP 21 /* supdup protocol */
|
||||
#define TELOPT_SUPDUPOUTPUT 22 /* supdup output */
|
||||
#define TELOPT_SNDLOC 23 /* send location */
|
||||
#define TELOPT_TTYPE 24 /* terminal type */
|
||||
#define TELOPT_EOR 25 /* end or record */
|
||||
#define TELOPT_TUID 26 /* TACACS user identification */
|
||||
#define TELOPT_OUTMRK 27 /* output marking */
|
||||
#define TELOPT_TTYLOC 28 /* terminal location number */
|
||||
#define TELOPT_3270REGIME 29 /* 3270 regime */
|
||||
#define TELOPT_X3PAD 30 /* X.3 PAD */
|
||||
#define TELOPT_NAWS 31 /* window size */
|
||||
#define TELOPT_TSPEED 32 /* terminal speed */
|
||||
#define TELOPT_LFLOW 33 /* remote flow control */
|
||||
#define TELOPT_LINEMODE 34 /* Linemode option */
|
||||
#define TELOPT_XDISPLOC 35 /* X Display Location */
|
||||
#define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */
|
||||
#define TELOPT_AUTHENTICATION 37/* Authenticate */
|
||||
#define TELOPT_ENCRYPT 38 /* Encryption option */
|
||||
#define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */
|
||||
#define TELOPT_EXOPL 255 /* extended-options-list */
|
||||
|
||||
|
||||
#define NTELOPTS (1+TELOPT_NEW_ENVIRON)
|
||||
#ifdef TELOPTS
|
||||
char *telopts[NTELOPTS+1] = {
|
||||
"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
|
||||
"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
|
||||
"NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
|
||||
"NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
|
||||
"DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
|
||||
"SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
|
||||
"TACACS UID", "OUTPUT MARKING", "TTYLOC",
|
||||
"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
|
||||
"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
|
||||
"ENCRYPT", "NEW-ENVIRON",
|
||||
0,
|
||||
};
|
||||
#define TELOPT_FIRST TELOPT_BINARY
|
||||
#define TELOPT_LAST TELOPT_NEW_ENVIRON
|
||||
#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)
|
||||
#define TELOPT(x) telopts[(x)-TELOPT_FIRST]
|
||||
#endif
|
||||
|
||||
/* sub-option qualifiers */
|
||||
#define TELQUAL_IS 0 /* option is... */
|
||||
#define TELQUAL_SEND 1 /* send option */
|
||||
#define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */
|
||||
#define TELQUAL_REPLY 2 /* AUTHENTICATION: client version of IS */
|
||||
#define TELQUAL_NAME 3 /* AUTHENTICATION: client version of IS */
|
||||
|
||||
#define LFLOW_OFF 0 /* Disable remote flow control */
|
||||
#define LFLOW_ON 1 /* Enable remote flow control */
|
||||
#define LFLOW_RESTART_ANY 2 /* Restart output on any char */
|
||||
#define LFLOW_RESTART_XON 3 /* Restart output only on XON */
|
||||
|
||||
/*
|
||||
* LINEMODE suboptions
|
||||
*/
|
||||
|
||||
#define LM_MODE 1
|
||||
#define LM_FORWARDMASK 2
|
||||
#define LM_SLC 3
|
||||
|
||||
#define MODE_EDIT 0x01
|
||||
#define MODE_TRAPSIG 0x02
|
||||
#define MODE_ACK 0x04
|
||||
#define MODE_SOFT_TAB 0x08
|
||||
#define MODE_LIT_ECHO 0x10
|
||||
|
||||
#define MODE_MASK 0x1f
|
||||
|
||||
/* Not part of protocol, but needed to simplify things... */
|
||||
#define MODE_FLOW 0x0100
|
||||
#define MODE_ECHO 0x0200
|
||||
#define MODE_INBIN 0x0400
|
||||
#define MODE_OUTBIN 0x0800
|
||||
#define MODE_FORCE 0x1000
|
||||
|
||||
#define SLC_SYNCH 1
|
||||
#define SLC_BRK 2
|
||||
#define SLC_IP 3
|
||||
#define SLC_AO 4
|
||||
#define SLC_AYT 5
|
||||
#define SLC_EOR 6
|
||||
#define SLC_ABORT 7
|
||||
#define SLC_EOF 8
|
||||
#define SLC_SUSP 9
|
||||
#define SLC_EC 10
|
||||
#define SLC_EL 11
|
||||
#define SLC_EW 12
|
||||
#define SLC_RP 13
|
||||
#define SLC_LNEXT 14
|
||||
#define SLC_XON 15
|
||||
#define SLC_XOFF 16
|
||||
#define SLC_FORW1 17
|
||||
#define SLC_FORW2 18
|
||||
|
||||
#define NSLC 18
|
||||
|
||||
/*
|
||||
* For backwards compatibility, we define SLC_NAMES to be the
|
||||
* list of names if SLC_NAMES is not defined.
|
||||
*/
|
||||
#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \
|
||||
"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \
|
||||
"LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0,
|
||||
#ifdef SLC_NAMES
|
||||
char *slc_names[] = {
|
||||
SLC_NAMELIST
|
||||
};
|
||||
#else
|
||||
extern char *slc_names[];
|
||||
#define SLC_NAMES SLC_NAMELIST
|
||||
#endif
|
||||
|
||||
#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)
|
||||
#define SLC_NAME(x) slc_names[x]
|
||||
|
||||
#define SLC_NOSUPPORT 0
|
||||
#define SLC_CANTCHANGE 1
|
||||
#define SLC_VARIABLE 2
|
||||
#define SLC_DEFAULT 3
|
||||
#define SLC_LEVELBITS 0x03
|
||||
|
||||
#define SLC_FUNC 0
|
||||
#define SLC_FLAGS 1
|
||||
#define SLC_VALUE 2
|
||||
|
||||
#define SLC_ACK 0x80
|
||||
#define SLC_FLUSHIN 0x40
|
||||
#define SLC_FLUSHOUT 0x20
|
||||
|
||||
#define OLD_ENV_VAR 1
|
||||
#define OLD_ENV_VALUE 0
|
||||
#define NEW_ENV_VAR 0
|
||||
#define NEW_ENV_VALUE 1
|
||||
#define ENV_ESC 2
|
||||
#define ENV_USERVAR 3
|
||||
|
||||
/*
|
||||
* AUTHENTICATION suboptions
|
||||
*/
|
||||
|
||||
/*
|
||||
* Who is authenticating who ...
|
||||
*/
|
||||
#define AUTH_WHO_CLIENT 0 /* Client authenticating server */
|
||||
#define AUTH_WHO_SERVER 1 /* Server authenticating client */
|
||||
#define AUTH_WHO_MASK 1
|
||||
|
||||
/*
|
||||
* amount of authentication done
|
||||
*/
|
||||
#define AUTH_HOW_ONE_WAY 0
|
||||
#define AUTH_HOW_MUTUAL 2
|
||||
#define AUTH_HOW_MASK 2
|
||||
|
||||
#define AUTHTYPE_NULL 0
|
||||
#define AUTHTYPE_KERBEROS_V4 1
|
||||
#define AUTHTYPE_KERBEROS_V5 2
|
||||
#define AUTHTYPE_SPX 3
|
||||
#define AUTHTYPE_MINK 4
|
||||
#define AUTHTYPE_CNT 5
|
||||
|
||||
#define AUTHTYPE_TEST 99
|
||||
|
||||
#ifdef AUTH_NAMES
|
||||
char *authtype_names[] = {
|
||||
"NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0,
|
||||
};
|
||||
#else
|
||||
extern char *authtype_names[];
|
||||
#endif
|
||||
|
||||
#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)
|
||||
#define AUTHTYPE_NAME(x) authtype_names[x]
|
||||
|
||||
/*
|
||||
* ENCRYPTion suboptions
|
||||
*/
|
||||
#define ENCRYPT_IS 0 /* I pick encryption type ... */
|
||||
#define ENCRYPT_SUPPORT 1 /* I support encryption types ... */
|
||||
#define ENCRYPT_REPLY 2 /* Initial setup response */
|
||||
#define ENCRYPT_START 3 /* Am starting to send encrypted */
|
||||
#define ENCRYPT_END 4 /* Am ending encrypted */
|
||||
#define ENCRYPT_REQSTART 5 /* Request you start encrypting */
|
||||
#define ENCRYPT_REQEND 6 /* Request you send encrypting */
|
||||
#define ENCRYPT_ENC_KEYID 7
|
||||
#define ENCRYPT_DEC_KEYID 8
|
||||
#define ENCRYPT_CNT 9
|
||||
|
||||
#define ENCTYPE_ANY 0
|
||||
#define ENCTYPE_DES_CFB64 1
|
||||
#define ENCTYPE_DES_OFB64 2
|
||||
#define ENCTYPE_CNT 3
|
||||
|
||||
#ifdef ENCRYPT_NAMES
|
||||
char *encrypt_names[] = {
|
||||
"IS", "SUPPORT", "REPLY", "START", "END",
|
||||
"REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
|
||||
0,
|
||||
};
|
||||
char *enctype_names[] = {
|
||||
"ANY", "DES_CFB64", "DES_OFB64", 0,
|
||||
};
|
||||
#else
|
||||
extern char *encrypt_names[];
|
||||
extern char *enctype_names[];
|
||||
#endif
|
||||
|
||||
|
||||
#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)
|
||||
#define ENCRYPT_NAME(x) encrypt_names[x]
|
||||
|
||||
#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)
|
||||
#define ENCTYPE_NAME(x) enctype_names[x]
|
||||
|
||||
#endif /* arpa/telnet.h */
|
||||
76
tasks/libposix/include/posix/arpa/tftp.h
Normal file
76
tasks/libposix/include/posix/arpa/tftp.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (c) 1983, 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.
|
||||
*
|
||||
* @(#)tftp.h 8.1 (Berkeley) 6/2/93
|
||||
*/
|
||||
|
||||
#ifndef _ARPA_TFTP_H
|
||||
#define _ARPA_TFTP_H 1
|
||||
|
||||
/*
|
||||
* Trivial File Transfer Protocol (IEN-133)
|
||||
*/
|
||||
#define SEGSIZE 512 /* data segment size */
|
||||
|
||||
/*
|
||||
* Packet types.
|
||||
*/
|
||||
#define RRQ 01 /* read request */
|
||||
#define WRQ 02 /* write request */
|
||||
#define DATA 03 /* data packet */
|
||||
#define ACK 04 /* acknowledgement */
|
||||
#define ERROR 05 /* error code */
|
||||
|
||||
struct tftphdr {
|
||||
short th_opcode; /* packet type */
|
||||
union {
|
||||
unsigned short tu_block; /* block # */
|
||||
short tu_code; /* error code */
|
||||
char tu_stuff[1]; /* request packet stuff */
|
||||
} __attribute__ ((__packed__)) th_u;
|
||||
char th_data[1]; /* data or error string */
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#define th_block th_u.tu_block
|
||||
#define th_code th_u.tu_code
|
||||
#define th_stuff th_u.tu_stuff
|
||||
#define th_msg th_data
|
||||
|
||||
/*
|
||||
* Error codes.
|
||||
*/
|
||||
#define EUNDEF 0 /* not defined */
|
||||
#define ENOTFOUND 1 /* file not found */
|
||||
#define EACCESS 2 /* access violation */
|
||||
#define ENOSPACE 3 /* disk full or allocation exceeded */
|
||||
#define EBADOP 4 /* illegal TFTP operation */
|
||||
#define EBADID 5 /* unknown transfer ID */
|
||||
#define EEXISTS 6 /* file already exists */
|
||||
#define ENOUSER 7 /* no such user */
|
||||
|
||||
#endif /* arpa/tftp.h */
|
||||
82
tasks/libposix/include/posix/assert.h
Normal file
82
tasks/libposix/include/posix/assert.h
Normal file
@@ -0,0 +1,82 @@
|
||||
/* Copyright (C) 1991,1992,1994-2001,2003,2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/*
|
||||
* ISO C99 Standard: 7.2 Diagnostics <assert.h>
|
||||
*/
|
||||
|
||||
#ifdef _ASSERT_H
|
||||
|
||||
# undef _ASSERT_H
|
||||
# undef assert
|
||||
# undef __ASSERT_VOID_CAST
|
||||
|
||||
#endif /* assert.h */
|
||||
|
||||
#define _ASSERT_H 1
|
||||
#include <features.h>
|
||||
|
||||
#if defined __cplusplus && __GNUC_PREREQ(2,95)
|
||||
# define __ASSERT_VOID_CAST static_cast<void>
|
||||
#else
|
||||
# define __ASSERT_VOID_CAST (void)
|
||||
#endif
|
||||
|
||||
/* void assert (int expression);
|
||||
|
||||
If NDEBUG is defined, do nothing.
|
||||
If not, and EXPRESSION is zero, print an error message and abort. */
|
||||
|
||||
#ifdef NDEBUG
|
||||
|
||||
# define assert(expr) (__ASSERT_VOID_CAST (0))
|
||||
|
||||
#else /* Not NDEBUG. */
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* This prints an "Assertion failed" message and aborts. */
|
||||
extern void __assert __P((const char *, const char *, int, const char *));
|
||||
|
||||
__END_DECLS
|
||||
|
||||
# define assert(expr) \
|
||||
(__ASSERT_VOID_CAST ((expr) ? 0 : \
|
||||
(__assert (__STRING(expr), __FILE__, __LINE__, \
|
||||
__ASSERT_FUNCTION), 0)))
|
||||
|
||||
/* Define some temporaries to workaround tinyx makedepend bug */
|
||||
#define __GNUC_PREREQ_2_6 __GNUC_PREREQ(2, 6)
|
||||
#define __GNUC_PREREQ_2_4 __GNUC_PREREQ(2, 4)
|
||||
/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
|
||||
which contains the name of the function currently being defined.
|
||||
This is broken in G++ before version 2.6.
|
||||
C9x has a similar variable called __func__, but prefer the GCC one since
|
||||
it demangles C++ function names. */
|
||||
|
||||
# if defined __cplusplus ? __GNUC_PREREQ_2_6 : __GNUC_PREREQ_2_4
|
||||
# define __ASSERT_FUNCTION __PRETTY_FUNCTION__
|
||||
# else
|
||||
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
|
||||
# define __ASSERT_FUNCTION __func__
|
||||
# else
|
||||
# define __ASSERT_FUNCTION ((__const char *) 0)
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif /* NDEBUG. */
|
||||
261
tasks/libposix/include/posix/atomic.h
Normal file
261
tasks/libposix/include/posix/atomic.h
Normal file
@@ -0,0 +1,261 @@
|
||||
/* Internal macros for atomic operations for GNU C Library.
|
||||
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _ATOMIC_H
|
||||
#define _ATOMIC_H 1
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <bits/atomic.h>
|
||||
|
||||
/* Wrapper macros to call pre_NN_post (mem, ...) where NN is the
|
||||
bit width of *MEM. The calling macro puts parens around MEM
|
||||
and following args. */
|
||||
#define __atomic_val_bysize(pre, post, mem, ...) \
|
||||
({ \
|
||||
__typeof (*mem) __result; \
|
||||
if (sizeof (*mem) == 1) \
|
||||
__result = pre##_8_##post (mem, __VA_ARGS__); \
|
||||
else if (sizeof (*mem) == 2) \
|
||||
__result = pre##_16_##post (mem, __VA_ARGS__); \
|
||||
else if (sizeof (*mem) == 4) \
|
||||
__result = pre##_32_##post (mem, __VA_ARGS__); \
|
||||
else if (sizeof (*mem) == 8) \
|
||||
__result = pre##_64_##post (mem, __VA_ARGS__); \
|
||||
else \
|
||||
abort (); \
|
||||
__result; \
|
||||
})
|
||||
#define __atomic_bool_bysize(pre, post, mem, ...) \
|
||||
({ \
|
||||
int __result; \
|
||||
if (sizeof (*mem) == 1) \
|
||||
__result = pre##_8_##post (mem, __VA_ARGS__); \
|
||||
else if (sizeof (*mem) == 2) \
|
||||
__result = pre##_16_##post (mem, __VA_ARGS__); \
|
||||
else if (sizeof (*mem) == 4) \
|
||||
__result = pre##_32_##post (mem, __VA_ARGS__); \
|
||||
else if (sizeof (*mem) == 8) \
|
||||
__result = pre##_64_##post (mem, __VA_ARGS__); \
|
||||
else \
|
||||
abort (); \
|
||||
__result; \
|
||||
})
|
||||
|
||||
|
||||
/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
|
||||
Return the old *MEM value. */
|
||||
#if !defined atomic_compare_and_exchange_val_acq \
|
||||
&& defined __arch_compare_and_exchange_val_32_acq
|
||||
# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
|
||||
__atomic_val_bysize (__arch_compare_and_exchange_val,acq, \
|
||||
mem, newval, oldval)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_compare_and_exchange_val_rel
|
||||
# define atomic_compare_and_exchange_val_rel(mem, newval, oldval) \
|
||||
atomic_compare_and_exchange_val_acq (mem, newval, oldval)
|
||||
#endif
|
||||
|
||||
|
||||
/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
|
||||
Return zero if *MEM was changed or non-zero if no exchange happened. */
|
||||
#ifndef atomic_compare_and_exchange_bool_acq
|
||||
# ifdef __arch_compare_and_exchange_bool_32_acq
|
||||
# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
|
||||
__atomic_bool_bysize (__arch_compare_and_exchange_bool,acq, \
|
||||
mem, newval, oldval)
|
||||
# else
|
||||
# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
|
||||
({ /* Cannot use __oldval here, because macros later in this file might \
|
||||
call this macro with __oldval argument. */ \
|
||||
__typeof (oldval) __old = (oldval); \
|
||||
atomic_compare_and_exchange_val_acq (mem, newval, __old) != __old; \
|
||||
})
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_compare_and_exchange_bool_rel
|
||||
# define atomic_compare_and_exchange_bool_rel(mem, newval, oldval) \
|
||||
atomic_compare_and_exchange_bool_acq (mem, newval, oldval)
|
||||
#endif
|
||||
|
||||
|
||||
/* Store NEWVALUE in *MEM and return the old value. */
|
||||
#ifndef atomic_exchange_acq
|
||||
# define atomic_exchange_acq(mem, newvalue) \
|
||||
({ __typeof (*(mem)) __oldval; \
|
||||
__typeof (mem) __memp = (mem); \
|
||||
__typeof (*(mem)) __value = (newvalue); \
|
||||
\
|
||||
do \
|
||||
__oldval = (*__memp); \
|
||||
while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__memp, \
|
||||
__value, \
|
||||
__oldval),\
|
||||
0)); \
|
||||
\
|
||||
__oldval; })
|
||||
#endif
|
||||
|
||||
#ifndef atomic_exchange_rel
|
||||
# define atomic_exchange_rel(mem, newvalue) atomic_exchange_acq (mem, newvalue)
|
||||
#endif
|
||||
|
||||
|
||||
/* Add VALUE to *MEM and return the old value of *MEM. */
|
||||
#ifndef atomic_exchange_and_add
|
||||
# define atomic_exchange_and_add(mem, value) \
|
||||
({ __typeof (*(mem)) __oldval; \
|
||||
__typeof (mem) __memp = (mem); \
|
||||
__typeof (*(mem)) __value = (value); \
|
||||
\
|
||||
do \
|
||||
__oldval = (*__memp); \
|
||||
while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__memp, \
|
||||
__oldval \
|
||||
+ __value,\
|
||||
__oldval),\
|
||||
0)); \
|
||||
\
|
||||
__oldval; })
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_add
|
||||
# define atomic_add(mem, value) (void) atomic_exchange_and_add ((mem), (value))
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_increment
|
||||
# define atomic_increment(mem) atomic_add ((mem), 1)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_increment_val
|
||||
# define atomic_increment_val(mem) (atomic_exchange_and_add ((mem), 1) + 1)
|
||||
#endif
|
||||
|
||||
|
||||
/* Add one to *MEM and return true iff it's now zero. */
|
||||
#ifndef atomic_increment_and_test
|
||||
# define atomic_increment_and_test(mem) \
|
||||
(atomic_exchange_and_add ((mem), 1) + 1 == 0)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_decrement
|
||||
# define atomic_decrement(mem) atomic_add ((mem), -1)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_decrement_val
|
||||
# define atomic_decrement_val(mem) (atomic_exchange_and_add ((mem), -1) - 1)
|
||||
#endif
|
||||
|
||||
|
||||
/* Subtract 1 from *MEM and return true iff it's now zero. */
|
||||
#ifndef atomic_decrement_and_test
|
||||
# define atomic_decrement_and_test(mem) \
|
||||
(atomic_exchange_and_add ((mem), -1) == 1)
|
||||
#endif
|
||||
|
||||
|
||||
/* Decrement *MEM if it is > 0, and return the old value. */
|
||||
#ifndef atomic_decrement_if_positive
|
||||
# define atomic_decrement_if_positive(mem) \
|
||||
({ __typeof (*(mem)) __oldval; \
|
||||
__typeof (mem) __memp = (mem); \
|
||||
\
|
||||
do \
|
||||
{ \
|
||||
__oldval = *__memp; \
|
||||
if (__builtin_expect (__oldval <= 0, 0)) \
|
||||
break; \
|
||||
} \
|
||||
while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__memp, \
|
||||
__oldval \
|
||||
- 1, \
|
||||
__oldval),\
|
||||
0));\
|
||||
__oldval; })
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_add_negative
|
||||
# define atomic_add_negative(mem, value) \
|
||||
({ __typeof (value) __aan_value = (value); \
|
||||
atomic_exchange_and_add (mem, __aan_value) < -__aan_value; })
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_add_zero
|
||||
# define atomic_add_zero(mem, value) \
|
||||
({ __typeof (value) __aaz_value = (value); \
|
||||
atomic_exchange_and_add (mem, __aaz_value) == -__aaz_value; })
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_bit_set
|
||||
# define atomic_bit_set(mem, bit) \
|
||||
(void) atomic_bit_test_set(mem, bit)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_bit_test_set
|
||||
# define atomic_bit_test_set(mem, bit) \
|
||||
({ __typeof (*(mem)) __oldval; \
|
||||
__typeof (mem) __memp = (mem); \
|
||||
__typeof (*(mem)) __mask = ((__typeof (*(mem))) 1 << (bit)); \
|
||||
\
|
||||
do \
|
||||
__oldval = (*__memp); \
|
||||
while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__memp, \
|
||||
__oldval \
|
||||
| __mask, \
|
||||
__oldval),\
|
||||
0)); \
|
||||
\
|
||||
__oldval & __mask; })
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_full_barrier
|
||||
# define atomic_full_barrier() __asm ("" ::: "memory")
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_read_barrier
|
||||
# define atomic_read_barrier() atomic_full_barrier ()
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_write_barrier
|
||||
# define atomic_write_barrier() atomic_full_barrier ()
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef atomic_delay
|
||||
# define atomic_delay() do { /* nothing */ } while (0)
|
||||
#endif
|
||||
|
||||
#endif /* atomic.h */
|
||||
73
tasks/libposix/include/posix/bits/armsigctx.h
Normal file
73
tasks/libposix/include/posix/bits/armsigctx.h
Normal file
@@ -0,0 +1,73 @@
|
||||
/* Definition of `struct sigcontext' for Linux/ARM
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* The format of struct sigcontext changed between 2.0 and 2.1 kernels.
|
||||
Fortunately 2.0 puts a magic number in the first word and this is not
|
||||
a legal value for `trap_no', so we can tell them apart. */
|
||||
|
||||
/* Early 2.2 and 2.3 kernels do not have the `fault_address' member in
|
||||
the sigcontext structure. Unfortunately there is no reliable way
|
||||
to test for its presence and this word will contain garbage for too-old
|
||||
kernels. Versions 2.2.14 and 2.3.35 (plus later versions) are known to
|
||||
include this element. */
|
||||
|
||||
#ifndef __ARMSIGCTX_H
|
||||
#define __ARMSIGCTX_H 1
|
||||
|
||||
#include <asm/ptrace.h>
|
||||
|
||||
union k_sigcontext
|
||||
{
|
||||
struct
|
||||
{
|
||||
unsigned long int trap_no;
|
||||
unsigned long int error_code;
|
||||
unsigned long int oldmask;
|
||||
unsigned long int arm_r0;
|
||||
unsigned long int arm_r1;
|
||||
unsigned long int arm_r2;
|
||||
unsigned long int arm_r3;
|
||||
unsigned long int arm_r4;
|
||||
unsigned long int arm_r5;
|
||||
unsigned long int arm_r6;
|
||||
unsigned long int arm_r7;
|
||||
unsigned long int arm_r8;
|
||||
unsigned long int arm_r9;
|
||||
unsigned long int arm_r10;
|
||||
unsigned long int arm_fp;
|
||||
unsigned long int arm_ip;
|
||||
unsigned long int arm_sp;
|
||||
unsigned long int arm_lr;
|
||||
unsigned long int arm_pc;
|
||||
unsigned long int arm_cpsr;
|
||||
unsigned long fault_address;
|
||||
} v21;
|
||||
struct
|
||||
{
|
||||
unsigned long int magic;
|
||||
struct pt_regs reg;
|
||||
unsigned long int trap_no;
|
||||
unsigned long int error_code;
|
||||
unsigned long int oldmask;
|
||||
} v20;
|
||||
};
|
||||
|
||||
#define SIGCONTEXT_2_0_MAGIC 0x4B534154
|
||||
|
||||
#endif /* bits/armsigctx.h */
|
||||
43
tasks/libposix/include/posix/bits/atomic.h
Normal file
43
tasks/libposix/include/posix/bits/atomic.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _BITS_ATOMIC_H
|
||||
#define _BITS_ATOMIC_H 1
|
||||
|
||||
/* We have by default no support for atomic operations. So define
|
||||
them non-atomic. If this is a problem somebody will have to come
|
||||
up with real definitions. */
|
||||
|
||||
/* The only basic operation needed is compare and exchange. */
|
||||
#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
|
||||
({ __typeof (mem) __gmemp = (mem); \
|
||||
__typeof (*mem) __gret = *__gmemp; \
|
||||
__typeof (*mem) __gnewval = (newval); \
|
||||
\
|
||||
if (__gret == (oldval)) \
|
||||
*__gmemp = __gnewval; \
|
||||
__gret; })
|
||||
|
||||
#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
|
||||
({ __typeof (mem) __gmemp = (mem); \
|
||||
__typeof (*mem) __gnewval = (newval); \
|
||||
\
|
||||
*__gmemp == (oldval) ? (*__gmemp = __gnewval, 0) : 1; })
|
||||
|
||||
#endif /* bits/atomic.h */
|
||||
87
tasks/libposix/include/posix/bits/byteswap.h
Normal file
87
tasks/libposix/include/posix/bits/byteswap.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/* Macros to swap the order of bytes in integer values.
|
||||
Copyright (C) 1997,1998,2000,2001,2002,2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#if !defined _BYTESWAP_H && !defined _NETINET_IN_H
|
||||
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_BYTESWAP_H
|
||||
#define _BITS_BYTESWAP_H 1
|
||||
|
||||
/* Swap bytes in 16 bit value. */
|
||||
#define __bswap_constant_16(x) \
|
||||
((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define __bswap_16(x) \
|
||||
(__extension__ \
|
||||
({ unsigned short int __bsx = (x); __bswap_constant_16 (__bsx); }))
|
||||
#else
|
||||
static __inline unsigned short int
|
||||
__bswap_16 (unsigned short int __bsx)
|
||||
{
|
||||
return __bswap_constant_16 (__bsx);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Swap bytes in 32 bit value. */
|
||||
#define __bswap_constant_32(x) \
|
||||
((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
|
||||
(((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define __bswap_32(x) \
|
||||
(__extension__ \
|
||||
({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
|
||||
#else
|
||||
static __inline unsigned int
|
||||
__bswap_32 (unsigned int __bsx)
|
||||
{
|
||||
return __bswap_constant_32 (__bsx);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
/* Swap bytes in 64 bit value. */
|
||||
# define __bswap_constant_64(x) \
|
||||
((((x) & 0xff00000000000000ull) >> 56) \
|
||||
| (((x) & 0x00ff000000000000ull) >> 40) \
|
||||
| (((x) & 0x0000ff0000000000ull) >> 24) \
|
||||
| (((x) & 0x000000ff00000000ull) >> 8) \
|
||||
| (((x) & 0x00000000ff000000ull) << 8) \
|
||||
| (((x) & 0x0000000000ff0000ull) << 24) \
|
||||
| (((x) & 0x000000000000ff00ull) << 40) \
|
||||
| (((x) & 0x00000000000000ffull) << 56))
|
||||
|
||||
# define __bswap_64(x) \
|
||||
(__extension__ \
|
||||
({ union { __extension__ unsigned long long int __ll; \
|
||||
unsigned int __l[2]; } __w, __r; \
|
||||
if (__builtin_constant_p (x)) \
|
||||
__r.__ll = __bswap_constant_64 (x); \
|
||||
else \
|
||||
{ \
|
||||
__w.__ll = (x); \
|
||||
__r.__l[0] = __bswap_32 (__w.__l[1]); \
|
||||
__r.__l[1] = __bswap_32 (__w.__l[0]); \
|
||||
} \
|
||||
__r.__ll; }))
|
||||
#endif
|
||||
|
||||
#endif /* _BITS_BYTESWAP_H */
|
||||
158
tasks/libposix/include/posix/bits/cmathcalls.h
Normal file
158
tasks/libposix/include/posix/bits/cmathcalls.h
Normal file
@@ -0,0 +1,158 @@
|
||||
/* Prototype declarations for complex math functions;
|
||||
helper file for <complex.h>.
|
||||
Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* NOTE: Because of the special way this file is used by <complex.h>, this
|
||||
file must NOT be protected from multiple inclusion as header files
|
||||
usually are.
|
||||
|
||||
This file provides prototype declarations for the math functions.
|
||||
Most functions are declared using the macro:
|
||||
|
||||
__MATHCALL (NAME, (ARGS...));
|
||||
|
||||
This means there is a function `NAME' returning `double' and a function
|
||||
`NAMEf' returning `float'. Each place `_Mdouble_' appears in the
|
||||
prototype, that is actually `double' in the prototype for `NAME' and
|
||||
`float' in the prototype for `NAMEf'. Reentrant variant functions are
|
||||
called `NAME_r' and `NAMEf_r'.
|
||||
|
||||
Functions returning other types like `int' are declared using the macro:
|
||||
|
||||
__MATHDECL (TYPE, NAME, (ARGS...));
|
||||
|
||||
This is just like __MATHCALL but for a function returning `TYPE'
|
||||
instead of `_Mdouble_'. In all of these cases, there is still
|
||||
both a `NAME' and a `NAMEf' that takes `float' arguments. */
|
||||
|
||||
#ifndef _COMPLEX_H
|
||||
#error "Never use <bits/cmathcalls.h> directly; include <complex.h> instead."
|
||||
#endif
|
||||
|
||||
#define _Mdouble_complex_ _Mdouble_ _Complex
|
||||
|
||||
|
||||
/* Trigonometric functions. */
|
||||
|
||||
/* Arc cosine of Z. */
|
||||
__MATHCALL (cacos, (_Mdouble_complex_ __z));
|
||||
/* Arc sine of Z. */
|
||||
__MATHCALL (casin, (_Mdouble_complex_ __z));
|
||||
/* Arc tangent of Z. */
|
||||
__MATHCALL (catan, (_Mdouble_complex_ __z));
|
||||
|
||||
/* Cosine of Z. */
|
||||
__MATHCALL (ccos, (_Mdouble_complex_ __z));
|
||||
/* Sine of Z. */
|
||||
__MATHCALL (csin, (_Mdouble_complex_ __z));
|
||||
/* Tangent of Z. */
|
||||
__MATHCALL (ctan, (_Mdouble_complex_ __z));
|
||||
|
||||
|
||||
/* Hyperbolic functions. */
|
||||
|
||||
/* Hyperbolic arc cosine of Z. */
|
||||
__MATHCALL (cacosh, (_Mdouble_complex_ __z));
|
||||
/* Hyperbolic arc sine of Z. */
|
||||
__MATHCALL (casinh, (_Mdouble_complex_ __z));
|
||||
/* Hyperbolic arc tangent of Z. */
|
||||
__MATHCALL (catanh, (_Mdouble_complex_ __z));
|
||||
|
||||
/* Hyperbolic cosine of Z. */
|
||||
__MATHCALL (ccosh, (_Mdouble_complex_ __z));
|
||||
/* Hyperbolic sine of Z. */
|
||||
__MATHCALL (csinh, (_Mdouble_complex_ __z));
|
||||
/* Hyperbolic tangent of Z. */
|
||||
__MATHCALL (ctanh, (_Mdouble_complex_ __z));
|
||||
|
||||
|
||||
/* Exponential and logarithmic functions. */
|
||||
|
||||
/* Exponential function of Z. */
|
||||
__MATHCALL (cexp, (_Mdouble_complex_ __z));
|
||||
|
||||
/* Natural logarithm of Z. */
|
||||
__MATHCALL (clog, (_Mdouble_complex_ __z));
|
||||
|
||||
#ifdef __USE_GNU
|
||||
/* The base 10 logarithm is not defined by the standard but to implement
|
||||
the standard C++ library it is handy. */
|
||||
__MATHCALL (clog10, (_Mdouble_complex_ __z));
|
||||
#endif
|
||||
|
||||
/* Power functions. */
|
||||
|
||||
/* Return X to the Y power. */
|
||||
__MATHCALL (cpow, (_Mdouble_complex_ __x, _Mdouble_complex_ __y));
|
||||
|
||||
/* Return the square root of Z. */
|
||||
__MATHCALL (csqrt, (_Mdouble_complex_ __z));
|
||||
|
||||
|
||||
/* Absolute value, conjugates, and projection. */
|
||||
|
||||
/* Absolute value of Z. */
|
||||
__MATHDECL (_Mdouble_,cabs, (_Mdouble_complex_ __z));
|
||||
|
||||
/* Argument value of Z. */
|
||||
__MATHDECL (_Mdouble_,carg, (_Mdouble_complex_ __z));
|
||||
|
||||
/* Complex conjugate of Z. */
|
||||
__MATHCALL (conj, (_Mdouble_complex_ __z));
|
||||
|
||||
/* Projection of Z onto the Riemann sphere. */
|
||||
__MATHCALL (cproj, (_Mdouble_complex_ __z));
|
||||
|
||||
|
||||
/* Decomposing complex values. */
|
||||
|
||||
/* Imaginary part of Z. */
|
||||
__MATHDECL (_Mdouble_,cimag, (_Mdouble_complex_ __z));
|
||||
|
||||
/* Real part of Z. */
|
||||
__MATHDECL (_Mdouble_,creal, (_Mdouble_complex_ __z));
|
||||
|
||||
|
||||
/* Now some optimized versions. GCC has handy notations for these
|
||||
functions. Recent GCC handles these as builtin functions so does
|
||||
not need inlines. */
|
||||
#if defined __GNUC__ && !__GNUC_PREREQ (2, 97) && defined __OPTIMIZE__
|
||||
|
||||
/* Imaginary part of Z. */
|
||||
extern __inline _Mdouble_
|
||||
__MATH_PRECNAME(cimag) (_Mdouble_complex_ __z) __THROW
|
||||
{
|
||||
return __imag__ __z;
|
||||
}
|
||||
|
||||
/* Real part of Z. */
|
||||
extern __inline _Mdouble_
|
||||
__MATH_PRECNAME(creal) (_Mdouble_complex_ __z) __THROW
|
||||
{
|
||||
return __real__ __z;
|
||||
}
|
||||
|
||||
/* Complex conjugate of Z. */
|
||||
extern __inline _Mdouble_complex_
|
||||
__MATH_PRECNAME(conj) (_Mdouble_complex_ __z) __THROW
|
||||
{
|
||||
return __extension__ ~__z;
|
||||
}
|
||||
|
||||
#endif
|
||||
606
tasks/libposix/include/posix/bits/confname.h
Normal file
606
tasks/libposix/include/posix/bits/confname.h
Normal file
@@ -0,0 +1,606 @@
|
||||
/* `sysconf', `pathconf', and `confstr' NAME values. Generic version.
|
||||
Copyright (C) 1993,1995-1998,2000,2001,2003,2004
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _UNISTD_H
|
||||
# error "Never use <bits/confname.h> directly; include <unistd.h> instead."
|
||||
#endif
|
||||
|
||||
/* Values for the NAME argument to `pathconf' and `fpathconf'. */
|
||||
enum
|
||||
{
|
||||
_PC_LINK_MAX,
|
||||
#define _PC_LINK_MAX _PC_LINK_MAX
|
||||
_PC_MAX_CANON,
|
||||
#define _PC_MAX_CANON _PC_MAX_CANON
|
||||
_PC_MAX_INPUT,
|
||||
#define _PC_MAX_INPUT _PC_MAX_INPUT
|
||||
_PC_NAME_MAX,
|
||||
#define _PC_NAME_MAX _PC_NAME_MAX
|
||||
_PC_PATH_MAX,
|
||||
#define _PC_PATH_MAX _PC_PATH_MAX
|
||||
_PC_PIPE_BUF,
|
||||
#define _PC_PIPE_BUF _PC_PIPE_BUF
|
||||
_PC_CHOWN_RESTRICTED,
|
||||
#define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED
|
||||
_PC_NO_TRUNC,
|
||||
#define _PC_NO_TRUNC _PC_NO_TRUNC
|
||||
_PC_VDISABLE,
|
||||
#define _PC_VDISABLE _PC_VDISABLE
|
||||
_PC_SYNC_IO,
|
||||
#define _PC_SYNC_IO _PC_SYNC_IO
|
||||
_PC_ASYNC_IO,
|
||||
#define _PC_ASYNC_IO _PC_ASYNC_IO
|
||||
_PC_PRIO_IO,
|
||||
#define _PC_PRIO_IO _PC_PRIO_IO
|
||||
_PC_SOCK_MAXBUF,
|
||||
#define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF
|
||||
_PC_FILESIZEBITS,
|
||||
#define _PC_FILESIZEBITS _PC_FILESIZEBITS
|
||||
_PC_REC_INCR_XFER_SIZE,
|
||||
#define _PC_REC_INCR_XFER_SIZE _PC_REC_INCR_XFER_SIZE
|
||||
_PC_REC_MAX_XFER_SIZE,
|
||||
#define _PC_REC_MAX_XFER_SIZE _PC_REC_MAX_XFER_SIZE
|
||||
_PC_REC_MIN_XFER_SIZE,
|
||||
#define _PC_REC_MIN_XFER_SIZE _PC_REC_MIN_XFER_SIZE
|
||||
_PC_REC_XFER_ALIGN,
|
||||
#define _PC_REC_XFER_ALIGN _PC_REC_XFER_ALIGN
|
||||
_PC_ALLOC_SIZE_MIN,
|
||||
#define _PC_ALLOC_SIZE_MIN _PC_ALLOC_SIZE_MIN
|
||||
_PC_SYMLINK_MAX,
|
||||
#define _PC_SYMLINK_MAX _PC_SYMLINK_MAX
|
||||
_PC_2_SYMLINKS
|
||||
#define _PC_2_SYMLINKS _PC_2_SYMLINKS
|
||||
};
|
||||
|
||||
/* Values for the argument to `sysconf'. */
|
||||
enum
|
||||
{
|
||||
_SC_ARG_MAX,
|
||||
#define _SC_ARG_MAX _SC_ARG_MAX
|
||||
_SC_CHILD_MAX,
|
||||
#define _SC_CHILD_MAX _SC_CHILD_MAX
|
||||
_SC_CLK_TCK,
|
||||
#define _SC_CLK_TCK _SC_CLK_TCK
|
||||
_SC_NGROUPS_MAX,
|
||||
#define _SC_NGROUPS_MAX _SC_NGROUPS_MAX
|
||||
_SC_OPEN_MAX,
|
||||
#define _SC_OPEN_MAX _SC_OPEN_MAX
|
||||
_SC_STREAM_MAX,
|
||||
#define _SC_STREAM_MAX _SC_STREAM_MAX
|
||||
_SC_TZNAME_MAX,
|
||||
#define _SC_TZNAME_MAX _SC_TZNAME_MAX
|
||||
_SC_JOB_CONTROL,
|
||||
#define _SC_JOB_CONTROL _SC_JOB_CONTROL
|
||||
_SC_SAVED_IDS,
|
||||
#define _SC_SAVED_IDS _SC_SAVED_IDS
|
||||
_SC_REALTIME_SIGNALS,
|
||||
#define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS
|
||||
_SC_PRIORITY_SCHEDULING,
|
||||
#define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
|
||||
_SC_TIMERS,
|
||||
#define _SC_TIMERS _SC_TIMERS
|
||||
_SC_ASYNCHRONOUS_IO,
|
||||
#define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO
|
||||
_SC_PRIORITIZED_IO,
|
||||
#define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO
|
||||
_SC_SYNCHRONIZED_IO,
|
||||
#define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO
|
||||
_SC_FSYNC,
|
||||
#define _SC_FSYNC _SC_FSYNC
|
||||
_SC_MAPPED_FILES,
|
||||
#define _SC_MAPPED_FILES _SC_MAPPED_FILES
|
||||
_SC_MEMLOCK,
|
||||
#define _SC_MEMLOCK _SC_MEMLOCK
|
||||
_SC_MEMLOCK_RANGE,
|
||||
#define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE
|
||||
_SC_MEMORY_PROTECTION,
|
||||
#define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION
|
||||
_SC_MESSAGE_PASSING,
|
||||
#define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING
|
||||
_SC_SEMAPHORES,
|
||||
#define _SC_SEMAPHORES _SC_SEMAPHORES
|
||||
_SC_SHARED_MEMORY_OBJECTS,
|
||||
#define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS
|
||||
_SC_AIO_LISTIO_MAX,
|
||||
#define _SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX
|
||||
_SC_AIO_MAX,
|
||||
#define _SC_AIO_MAX _SC_AIO_MAX
|
||||
_SC_AIO_PRIO_DELTA_MAX,
|
||||
#define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX
|
||||
_SC_DELAYTIMER_MAX,
|
||||
#define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX
|
||||
_SC_MQ_OPEN_MAX,
|
||||
#define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX
|
||||
_SC_MQ_PRIO_MAX,
|
||||
#define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX
|
||||
_SC_VERSION,
|
||||
#define _SC_VERSION _SC_VERSION
|
||||
_SC_PAGESIZE,
|
||||
#define _SC_PAGESIZE _SC_PAGESIZE
|
||||
#define _SC_PAGE_SIZE _SC_PAGESIZE
|
||||
_SC_RTSIG_MAX,
|
||||
#define _SC_RTSIG_MAX _SC_RTSIG_MAX
|
||||
_SC_SEM_NSEMS_MAX,
|
||||
#define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX
|
||||
_SC_SEM_VALUE_MAX,
|
||||
#define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX
|
||||
_SC_SIGQUEUE_MAX,
|
||||
#define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX
|
||||
_SC_TIMER_MAX,
|
||||
#define _SC_TIMER_MAX _SC_TIMER_MAX
|
||||
|
||||
/* Values for the argument to `sysconf'
|
||||
corresponding to _POSIX2_* symbols. */
|
||||
_SC_BC_BASE_MAX,
|
||||
#define _SC_BC_BASE_MAX _SC_BC_BASE_MAX
|
||||
_SC_BC_DIM_MAX,
|
||||
#define _SC_BC_DIM_MAX _SC_BC_DIM_MAX
|
||||
_SC_BC_SCALE_MAX,
|
||||
#define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX
|
||||
_SC_BC_STRING_MAX,
|
||||
#define _SC_BC_STRING_MAX _SC_BC_STRING_MAX
|
||||
_SC_COLL_WEIGHTS_MAX,
|
||||
#define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX
|
||||
_SC_EQUIV_CLASS_MAX,
|
||||
#define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX
|
||||
_SC_EXPR_NEST_MAX,
|
||||
#define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX
|
||||
_SC_LINE_MAX,
|
||||
#define _SC_LINE_MAX _SC_LINE_MAX
|
||||
_SC_RE_DUP_MAX,
|
||||
#define _SC_RE_DUP_MAX _SC_RE_DUP_MAX
|
||||
_SC_CHARCLASS_NAME_MAX,
|
||||
#define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX
|
||||
|
||||
_SC_2_VERSION,
|
||||
#define _SC_2_VERSION _SC_2_VERSION
|
||||
_SC_2_C_BIND,
|
||||
#define _SC_2_C_BIND _SC_2_C_BIND
|
||||
_SC_2_C_DEV,
|
||||
#define _SC_2_C_DEV _SC_2_C_DEV
|
||||
_SC_2_FORT_DEV,
|
||||
#define _SC_2_FORT_DEV _SC_2_FORT_DEV
|
||||
_SC_2_FORT_RUN,
|
||||
#define _SC_2_FORT_RUN _SC_2_FORT_RUN
|
||||
_SC_2_SW_DEV,
|
||||
#define _SC_2_SW_DEV _SC_2_SW_DEV
|
||||
_SC_2_LOCALEDEF,
|
||||
#define _SC_2_LOCALEDEF _SC_2_LOCALEDEF
|
||||
|
||||
_SC_PII,
|
||||
#define _SC_PII _SC_PII
|
||||
_SC_PII_XTI,
|
||||
#define _SC_PII_XTI _SC_PII_XTI
|
||||
_SC_PII_SOCKET,
|
||||
#define _SC_PII_SOCKET _SC_PII_SOCKET
|
||||
_SC_PII_INTERNET,
|
||||
#define _SC_PII_INTERNET _SC_PII_INTERNET
|
||||
_SC_PII_OSI,
|
||||
#define _SC_PII_OSI _SC_PII_OSI
|
||||
_SC_POLL,
|
||||
#define _SC_POLL _SC_POLL
|
||||
_SC_SELECT,
|
||||
#define _SC_SELECT _SC_SELECT
|
||||
_SC_UIO_MAXIOV,
|
||||
#define _SC_UIO_MAXIOV _SC_UIO_MAXIOV
|
||||
_SC_IOV_MAX = _SC_UIO_MAXIOV,
|
||||
#define _SC_IOV_MAX _SC_IOV_MAX
|
||||
_SC_PII_INTERNET_STREAM,
|
||||
#define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM
|
||||
_SC_PII_INTERNET_DGRAM,
|
||||
#define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM
|
||||
_SC_PII_OSI_COTS,
|
||||
#define _SC_PII_OSI_COTS _SC_PII_OSI_COTS
|
||||
_SC_PII_OSI_CLTS,
|
||||
#define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS
|
||||
_SC_PII_OSI_M,
|
||||
#define _SC_PII_OSI_M _SC_PII_OSI_M
|
||||
_SC_T_IOV_MAX,
|
||||
#define _SC_T_IOV_MAX _SC_T_IOV_MAX
|
||||
|
||||
/* Values according to POSIX 1003.1c (POSIX threads). */
|
||||
_SC_THREADS,
|
||||
#define _SC_THREADS _SC_THREADS
|
||||
_SC_THREAD_SAFE_FUNCTIONS,
|
||||
#define _SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS
|
||||
_SC_GETGR_R_SIZE_MAX,
|
||||
#define _SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX
|
||||
_SC_GETPW_R_SIZE_MAX,
|
||||
#define _SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX
|
||||
_SC_LOGIN_NAME_MAX,
|
||||
#define _SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX
|
||||
_SC_TTY_NAME_MAX,
|
||||
#define _SC_TTY_NAME_MAX _SC_TTY_NAME_MAX
|
||||
_SC_THREAD_DESTRUCTOR_ITERATIONS,
|
||||
#define _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS
|
||||
_SC_THREAD_KEYS_MAX,
|
||||
#define _SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX
|
||||
_SC_THREAD_STACK_MIN,
|
||||
#define _SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN
|
||||
_SC_THREAD_THREADS_MAX,
|
||||
#define _SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX
|
||||
_SC_THREAD_ATTR_STACKADDR,
|
||||
#define _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR
|
||||
_SC_THREAD_ATTR_STACKSIZE,
|
||||
#define _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE
|
||||
_SC_THREAD_PRIORITY_SCHEDULING,
|
||||
#define _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING
|
||||
_SC_THREAD_PRIO_INHERIT,
|
||||
#define _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT
|
||||
_SC_THREAD_PRIO_PROTECT,
|
||||
#define _SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT
|
||||
_SC_THREAD_PROCESS_SHARED,
|
||||
#define _SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED
|
||||
|
||||
_SC_NPROCESSORS_CONF,
|
||||
#define _SC_NPROCESSORS_CONF _SC_NPROCESSORS_CONF
|
||||
_SC_NPROCESSORS_ONLN,
|
||||
#define _SC_NPROCESSORS_ONLN _SC_NPROCESSORS_ONLN
|
||||
_SC_PHYS_PAGES,
|
||||
#define _SC_PHYS_PAGES _SC_PHYS_PAGES
|
||||
_SC_AVPHYS_PAGES,
|
||||
#define _SC_AVPHYS_PAGES _SC_AVPHYS_PAGES
|
||||
_SC_ATEXIT_MAX,
|
||||
#define _SC_ATEXIT_MAX _SC_ATEXIT_MAX
|
||||
_SC_PASS_MAX,
|
||||
#define _SC_PASS_MAX _SC_PASS_MAX
|
||||
|
||||
_SC_XOPEN_VERSION,
|
||||
#define _SC_XOPEN_VERSION _SC_XOPEN_VERSION
|
||||
_SC_XOPEN_XCU_VERSION,
|
||||
#define _SC_XOPEN_XCU_VERSION _SC_XOPEN_XCU_VERSION
|
||||
_SC_XOPEN_UNIX,
|
||||
#define _SC_XOPEN_UNIX _SC_XOPEN_UNIX
|
||||
_SC_XOPEN_CRYPT,
|
||||
#define _SC_XOPEN_CRYPT _SC_XOPEN_CRYPT
|
||||
_SC_XOPEN_ENH_I18N,
|
||||
#define _SC_XOPEN_ENH_I18N _SC_XOPEN_ENH_I18N
|
||||
_SC_XOPEN_SHM,
|
||||
#define _SC_XOPEN_SHM _SC_XOPEN_SHM
|
||||
|
||||
_SC_2_CHAR_TERM,
|
||||
#define _SC_2_CHAR_TERM _SC_2_CHAR_TERM
|
||||
_SC_2_C_VERSION,
|
||||
#define _SC_2_C_VERSION _SC_2_C_VERSION
|
||||
_SC_2_UPE,
|
||||
#define _SC_2_UPE _SC_2_UPE
|
||||
|
||||
_SC_XOPEN_XPG2,
|
||||
#define _SC_XOPEN_XPG2 _SC_XOPEN_XPG2
|
||||
_SC_XOPEN_XPG3,
|
||||
#define _SC_XOPEN_XPG3 _SC_XOPEN_XPG3
|
||||
_SC_XOPEN_XPG4,
|
||||
#define _SC_XOPEN_XPG4 _SC_XOPEN_XPG4
|
||||
|
||||
_SC_CHAR_BIT,
|
||||
#define _SC_CHAR_BIT _SC_CHAR_BIT
|
||||
_SC_CHAR_MAX,
|
||||
#define _SC_CHAR_MAX _SC_CHAR_MAX
|
||||
_SC_CHAR_MIN,
|
||||
#define _SC_CHAR_MIN _SC_CHAR_MIN
|
||||
_SC_INT_MAX,
|
||||
#define _SC_INT_MAX _SC_INT_MAX
|
||||
_SC_INT_MIN,
|
||||
#define _SC_INT_MIN _SC_INT_MIN
|
||||
_SC_LONG_BIT,
|
||||
#define _SC_LONG_BIT _SC_LONG_BIT
|
||||
_SC_WORD_BIT,
|
||||
#define _SC_WORD_BIT _SC_WORD_BIT
|
||||
_SC_MB_LEN_MAX,
|
||||
#define _SC_MB_LEN_MAX _SC_MB_LEN_MAX
|
||||
_SC_NZERO,
|
||||
#define _SC_NZERO _SC_NZERO
|
||||
_SC_SSIZE_MAX,
|
||||
#define _SC_SSIZE_MAX _SC_SSIZE_MAX
|
||||
_SC_SCHAR_MAX,
|
||||
#define _SC_SCHAR_MAX _SC_SCHAR_MAX
|
||||
_SC_SCHAR_MIN,
|
||||
#define _SC_SCHAR_MIN _SC_SCHAR_MIN
|
||||
_SC_SHRT_MAX,
|
||||
#define _SC_SHRT_MAX _SC_SHRT_MAX
|
||||
_SC_SHRT_MIN,
|
||||
#define _SC_SHRT_MIN _SC_SHRT_MIN
|
||||
_SC_UCHAR_MAX,
|
||||
#define _SC_UCHAR_MAX _SC_UCHAR_MAX
|
||||
_SC_UINT_MAX,
|
||||
#define _SC_UINT_MAX _SC_UINT_MAX
|
||||
_SC_ULONG_MAX,
|
||||
#define _SC_ULONG_MAX _SC_ULONG_MAX
|
||||
_SC_USHRT_MAX,
|
||||
#define _SC_USHRT_MAX _SC_USHRT_MAX
|
||||
|
||||
_SC_NL_ARGMAX,
|
||||
#define _SC_NL_ARGMAX _SC_NL_ARGMAX
|
||||
_SC_NL_LANGMAX,
|
||||
#define _SC_NL_LANGMAX _SC_NL_LANGMAX
|
||||
_SC_NL_MSGMAX,
|
||||
#define _SC_NL_MSGMAX _SC_NL_MSGMAX
|
||||
_SC_NL_NMAX,
|
||||
#define _SC_NL_NMAX _SC_NL_NMAX
|
||||
_SC_NL_SETMAX,
|
||||
#define _SC_NL_SETMAX _SC_NL_SETMAX
|
||||
_SC_NL_TEXTMAX,
|
||||
#define _SC_NL_TEXTMAX _SC_NL_TEXTMAX
|
||||
|
||||
_SC_XBS5_ILP32_OFF32,
|
||||
#define _SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFF32
|
||||
_SC_XBS5_ILP32_OFFBIG,
|
||||
#define _SC_XBS5_ILP32_OFFBIG _SC_XBS5_ILP32_OFFBIG
|
||||
_SC_XBS5_LP64_OFF64,
|
||||
#define _SC_XBS5_LP64_OFF64 _SC_XBS5_LP64_OFF64
|
||||
_SC_XBS5_LPBIG_OFFBIG,
|
||||
#define _SC_XBS5_LPBIG_OFFBIG _SC_XBS5_LPBIG_OFFBIG
|
||||
|
||||
_SC_XOPEN_LEGACY,
|
||||
#define _SC_XOPEN_LEGACY _SC_XOPEN_LEGACY
|
||||
_SC_XOPEN_REALTIME,
|
||||
#define _SC_XOPEN_REALTIME _SC_XOPEN_REALTIME
|
||||
_SC_XOPEN_REALTIME_THREADS,
|
||||
#define _SC_XOPEN_REALTIME_THREADS _SC_XOPEN_REALTIME_THREADS
|
||||
|
||||
_SC_ADVISORY_INFO,
|
||||
#define _SC_ADVISORY_INFO _SC_ADVISORY_INFO
|
||||
_SC_BARRIERS,
|
||||
#define _SC_BARRIERS _SC_BARRIERS
|
||||
_SC_BASE,
|
||||
#define _SC_BASE _SC_BASE
|
||||
_SC_C_LANG_SUPPORT,
|
||||
#define _SC_C_LANG_SUPPORT _SC_C_LANG_SUPPORT
|
||||
_SC_C_LANG_SUPPORT_R,
|
||||
#define _SC_C_LANG_SUPPORT_R _SC_C_LANG_SUPPORT_R
|
||||
_SC_CLOCK_SELECTION,
|
||||
#define _SC_CLOCK_SELECTION _SC_CLOCK_SELECTION
|
||||
_SC_CPUTIME,
|
||||
#define _SC_CPUTIME _SC_CPUTIME
|
||||
_SC_THREAD_CPUTIME,
|
||||
#define _SC_THREAD_CPUTIME _SC_THREAD_CPUTIME
|
||||
_SC_DEVICE_IO,
|
||||
#define _SC_DEVICE_IO _SC_DEVICE_IO
|
||||
_SC_DEVICE_SPECIFIC,
|
||||
#define _SC_DEVICE_SPECIFIC _SC_DEVICE_SPECIFIC
|
||||
_SC_DEVICE_SPECIFIC_R,
|
||||
#define _SC_DEVICE_SPECIFIC_R _SC_DEVICE_SPECIFIC_R
|
||||
_SC_FD_MGMT,
|
||||
#define _SC_FD_MGMT _SC_FD_MGMT
|
||||
_SC_FIFO,
|
||||
#define _SC_FIFO _SC_FIFO
|
||||
_SC_PIPE,
|
||||
#define _SC_PIPE _SC_PIPE
|
||||
_SC_FILE_ATTRIBUTES,
|
||||
#define _SC_FILE_ATTRIBUTES _SC_FILE_ATTRIBUTES
|
||||
_SC_FILE_LOCKING,
|
||||
#define _SC_FILE_LOCKING _SC_FILE_LOCKING
|
||||
_SC_FILE_SYSTEM,
|
||||
#define _SC_FILE_SYSTEM _SC_FILE_SYSTEM
|
||||
_SC_MONOTONIC_CLOCK,
|
||||
#define _SC_MONOTONIC_CLOCK _SC_MONOTONIC_CLOCK
|
||||
_SC_MULTI_PROCESS,
|
||||
#define _SC_MULTI_PROCESS _SC_MULTI_PROCESS
|
||||
_SC_SINGLE_PROCESS,
|
||||
#define _SC_SINGLE_PROCESS _SC_SINGLE_PROCESS
|
||||
_SC_NETWORKING,
|
||||
#define _SC_NETWORKING _SC_NETWORKING
|
||||
_SC_READER_WRITER_LOCKS,
|
||||
#define _SC_READER_WRITER_LOCKS _SC_READER_WRITER_LOCKS
|
||||
_SC_SPIN_LOCKS,
|
||||
#define _SC_SPIN_LOCKS _SC_SPIN_LOCKS
|
||||
_SC_REGEXP,
|
||||
#define _SC_REGEXP _SC_REGEXP
|
||||
_SC_REGEX_VERSION,
|
||||
#define _SC_REGEX_VERSION _SC_REGEX_VERSION
|
||||
_SC_SHELL,
|
||||
#define _SC_SHELL _SC_SHELL
|
||||
_SC_SIGNALS,
|
||||
#define _SC_SIGNALS _SC_SIGNALS
|
||||
_SC_SPAWN,
|
||||
#define _SC_SPAWN _SC_SPAWN
|
||||
_SC_SPORADIC_SERVER,
|
||||
#define _SC_SPORADIC_SERVER _SC_SPORADIC_SERVER
|
||||
_SC_THREAD_SPORADIC_SERVER,
|
||||
#define _SC_THREAD_SPORADIC_SERVER _SC_THREAD_SPORADIC_SERVER
|
||||
_SC_SYSTEM_DATABASE,
|
||||
#define _SC_SYSTEM_DATABASE _SC_SYSTEM_DATABASE
|
||||
_SC_SYSTEM_DATABASE_R,
|
||||
#define _SC_SYSTEM_DATABASE_R _SC_SYSTEM_DATABASE_R
|
||||
_SC_TIMEOUTS,
|
||||
#define _SC_TIMEOUTS _SC_TIMEOUTS
|
||||
_SC_TYPED_MEMORY_OBJECTS,
|
||||
#define _SC_TYPED_MEMORY_OBJECTS _SC_TYPED_MEMORY_OBJECTS
|
||||
_SC_USER_GROUPS,
|
||||
#define _SC_USER_GROUPS _SC_USER_GROUPS
|
||||
_SC_USER_GROUPS_R,
|
||||
#define _SC_USER_GROUPS_R _SC_USER_GROUPS_R
|
||||
_SC_2_PBS,
|
||||
#define _SC_2_PBS _SC_2_PBS
|
||||
_SC_2_PBS_ACCOUNTING,
|
||||
#define _SC_2_PBS_ACCOUNTING _SC_2_PBS_ACCOUNTING
|
||||
_SC_2_PBS_LOCATE,
|
||||
#define _SC_2_PBS_LOCATE _SC_2_PBS_LOCATE
|
||||
_SC_2_PBS_MESSAGE,
|
||||
#define _SC_2_PBS_MESSAGE _SC_2_PBS_MESSAGE
|
||||
_SC_2_PBS_TRACK,
|
||||
#define _SC_2_PBS_TRACK _SC_2_PBS_TRACK
|
||||
_SC_SYMLOOP_MAX,
|
||||
#define _SC_SYMLOOP_MAX _SC_SYMLOOP_MAX
|
||||
_SC_STREAMS,
|
||||
#define _SC_STREAMS _SC_STREAMS
|
||||
_SC_2_PBS_CHECKPOINT,
|
||||
#define _SC_2_PBS_CHECKPOINT _SC_2_PBS_CHECKPOINT
|
||||
|
||||
_SC_V6_ILP32_OFF32,
|
||||
#define _SC_V6_ILP32_OFF32 _SC_V6_ILP32_OFF32
|
||||
_SC_V6_ILP32_OFFBIG,
|
||||
#define _SC_V6_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG
|
||||
_SC_V6_LP64_OFF64,
|
||||
#define _SC_V6_LP64_OFF64 _SC_V6_LP64_OFF64
|
||||
_SC_V6_LPBIG_OFFBIG,
|
||||
#define _SC_V6_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG
|
||||
|
||||
_SC_HOST_NAME_MAX,
|
||||
#define _SC_HOST_NAME_MAX _SC_HOST_NAME_MAX
|
||||
_SC_TRACE,
|
||||
#define _SC_TRACE _SC_TRACE
|
||||
_SC_TRACE_EVENT_FILTER,
|
||||
#define _SC_TRACE_EVENT_FILTER _SC_TRACE_EVENT_FILTER
|
||||
_SC_TRACE_INHERIT,
|
||||
#define _SC_TRACE_INHERIT _SC_TRACE_INHERIT
|
||||
_SC_TRACE_LOG,
|
||||
#define _SC_TRACE_LOG _SC_TRACE_LOG
|
||||
|
||||
_SC_LEVEL1_ICACHE_SIZE,
|
||||
#define _SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_SIZE
|
||||
_SC_LEVEL1_ICACHE_ASSOC,
|
||||
#define _SC_LEVEL1_ICACHE_ASSOC _SC_LEVEL1_ICACHE_ASSOC
|
||||
_SC_LEVEL1_ICACHE_LINESIZE,
|
||||
#define _SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_ICACHE_LINESIZE
|
||||
_SC_LEVEL1_DCACHE_SIZE,
|
||||
#define _SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_SIZE
|
||||
_SC_LEVEL1_DCACHE_ASSOC,
|
||||
#define _SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_ASSOC
|
||||
_SC_LEVEL1_DCACHE_LINESIZE,
|
||||
#define _SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL1_DCACHE_LINESIZE
|
||||
_SC_LEVEL2_CACHE_SIZE,
|
||||
#define _SC_LEVEL2_CACHE_SIZE _SC_LEVEL2_CACHE_SIZE
|
||||
_SC_LEVEL2_CACHE_ASSOC,
|
||||
#define _SC_LEVEL2_CACHE_ASSOC _SC_LEVEL2_CACHE_ASSOC
|
||||
_SC_LEVEL2_CACHE_LINESIZE,
|
||||
#define _SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL2_CACHE_LINESIZE
|
||||
_SC_LEVEL3_CACHE_SIZE,
|
||||
#define _SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_SIZE
|
||||
_SC_LEVEL3_CACHE_ASSOC,
|
||||
#define _SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_ASSOC
|
||||
_SC_LEVEL3_CACHE_LINESIZE,
|
||||
#define _SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL3_CACHE_LINESIZE
|
||||
_SC_LEVEL4_CACHE_SIZE,
|
||||
#define _SC_LEVEL4_CACHE_SIZE _SC_LEVEL4_CACHE_SIZE
|
||||
_SC_LEVEL4_CACHE_ASSOC,
|
||||
#define _SC_LEVEL4_CACHE_ASSOC _SC_LEVEL4_CACHE_ASSOC
|
||||
_SC_LEVEL4_CACHE_LINESIZE,
|
||||
#define _SC_LEVEL4_CACHE_LINESIZE _SC_LEVEL4_CACHE_LINESIZE
|
||||
/* Leave room here, maybe we need a few more cache levels some day. */
|
||||
|
||||
_SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
|
||||
#define _SC_IPV6 _SC_IPV6
|
||||
_SC_RAW_SOCKETS
|
||||
#define _SC_RAW_SOCKETS _SC_RAW_SOCKETS
|
||||
};
|
||||
|
||||
#if (defined __USE_POSIX2 || defined __USE_UNIX98 \
|
||||
|| defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
|
||||
|| defined __USE_LARGEFILE)
|
||||
/* Values for the NAME argument to `confstr'. */
|
||||
enum
|
||||
{
|
||||
_CS_PATH, /* The default search path. */
|
||||
#define _CS_PATH _CS_PATH
|
||||
|
||||
_CS_V6_WIDTH_RESTRICTED_ENVS,
|
||||
# define _CS_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS
|
||||
|
||||
# if (defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
|
||||
|| defined __USE_LARGEFILE)
|
||||
_CS_LFS_CFLAGS = 1000,
|
||||
#define _CS_LFS_CFLAGS _CS_LFS_CFLAGS
|
||||
_CS_LFS_LDFLAGS,
|
||||
#define _CS_LFS_LDFLAGS _CS_LFS_LDFLAGS
|
||||
_CS_LFS_LIBS,
|
||||
#define _CS_LFS_LIBS _CS_LFS_LIBS
|
||||
_CS_LFS_LINTFLAGS,
|
||||
#define _CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS
|
||||
_CS_LFS64_CFLAGS,
|
||||
#define _CS_LFS64_CFLAGS _CS_LFS64_CFLAGS
|
||||
_CS_LFS64_LDFLAGS,
|
||||
#define _CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS
|
||||
_CS_LFS64_LIBS,
|
||||
#define _CS_LFS64_LIBS _CS_LFS64_LIBS
|
||||
_CS_LFS64_LINTFLAGS,
|
||||
#define _CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS
|
||||
# endif
|
||||
|
||||
# ifdef __USE_UNIX98
|
||||
_CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
|
||||
#define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
|
||||
_CS_XBS5_ILP32_OFF32_LDFLAGS,
|
||||
#define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
|
||||
_CS_XBS5_ILP32_OFF32_LIBS,
|
||||
#define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
|
||||
_CS_XBS5_ILP32_OFF32_LINTFLAGS,
|
||||
#define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
|
||||
_CS_XBS5_ILP32_OFFBIG_CFLAGS,
|
||||
#define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
|
||||
_CS_XBS5_ILP32_OFFBIG_LDFLAGS,
|
||||
#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
|
||||
_CS_XBS5_ILP32_OFFBIG_LIBS,
|
||||
#define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
|
||||
_CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
|
||||
#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
|
||||
_CS_XBS5_LP64_OFF64_CFLAGS,
|
||||
#define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
|
||||
_CS_XBS5_LP64_OFF64_LDFLAGS,
|
||||
#define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
|
||||
_CS_XBS5_LP64_OFF64_LIBS,
|
||||
#define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
|
||||
_CS_XBS5_LP64_OFF64_LINTFLAGS,
|
||||
#define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
|
||||
_CS_XBS5_LPBIG_OFFBIG_CFLAGS,
|
||||
#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
|
||||
_CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
|
||||
#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
|
||||
_CS_XBS5_LPBIG_OFFBIG_LIBS,
|
||||
#define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
|
||||
_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
|
||||
#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
|
||||
# endif
|
||||
# ifdef __USE_XOPEN2K
|
||||
_CS_POSIX_V6_ILP32_OFF32_CFLAGS,
|
||||
#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS
|
||||
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
|
||||
#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
|
||||
_CS_POSIX_V6_ILP32_OFF32_LIBS,
|
||||
#define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS
|
||||
_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
|
||||
#define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
|
||||
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
|
||||
#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
|
||||
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
|
||||
#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
|
||||
_CS_POSIX_V6_ILP32_OFFBIG_LIBS,
|
||||
#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS
|
||||
_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
|
||||
#define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
|
||||
_CS_POSIX_V6_LP64_OFF64_CFLAGS,
|
||||
#define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS
|
||||
_CS_POSIX_V6_LP64_OFF64_LDFLAGS,
|
||||
#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS
|
||||
_CS_POSIX_V6_LP64_OFF64_LIBS,
|
||||
#define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS
|
||||
_CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
|
||||
#define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
|
||||
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
|
||||
#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
|
||||
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
|
||||
#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
|
||||
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
|
||||
#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
|
||||
_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
|
||||
#define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
|
||||
# endif
|
||||
};
|
||||
#endif
|
||||
53
tasks/libposix/include/posix/bits/dirent.h
Normal file
53
tasks/libposix/include/posix/bits/dirent.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _DIRENT_H
|
||||
# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
|
||||
#endif
|
||||
|
||||
struct dirent
|
||||
{
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__ino_t d_ino;
|
||||
__off_t d_off;
|
||||
#else
|
||||
__ino64_t d_ino;
|
||||
__off64_t d_off;
|
||||
#endif
|
||||
unsigned short int d_reclen;
|
||||
unsigned char d_type;
|
||||
char d_name[256]; /* We must not include limits.h! */
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct dirent64
|
||||
{
|
||||
__ino64_t d_ino;
|
||||
__off64_t d_off;
|
||||
unsigned short int d_reclen;
|
||||
unsigned char d_type;
|
||||
char d_name[256]; /* We must not include limits.h! */
|
||||
};
|
||||
#endif
|
||||
|
||||
#define d_fileno d_ino /* Backwards compatibility. */
|
||||
|
||||
#undef _DIRENT_HAVE_D_NAMLEN
|
||||
#define _DIRENT_HAVE_D_RECLEN
|
||||
#define _DIRENT_HAVE_D_OFF
|
||||
#define _DIRENT_HAVE_D_TYPE
|
||||
67
tasks/libposix/include/posix/bits/dlfcn.h
Normal file
67
tasks/libposix/include/posix/bits/dlfcn.h
Normal file
@@ -0,0 +1,67 @@
|
||||
/* System dependent definitions for run-time dynamic loading.
|
||||
Copyright (C) 1996-2001, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _DLFCN_H
|
||||
# error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
|
||||
#endif
|
||||
|
||||
/* The MODE argument to `dlopen' contains one of the following: */
|
||||
#define RTLD_LAZY 0x00001 /* Lazy function call binding. */
|
||||
#define RTLD_NOW 0x00002 /* Immediate function call binding. */
|
||||
#if 0 /* uClibc doesnt support these */
|
||||
#define RTLD_BINDING_MASK 0x3 /* Mask of binding time value. */
|
||||
#define RTLD_NOLOAD 0x00004 /* Do not load the object. */
|
||||
#define RTLD_DEEPBIND 0x00008 /* Use deep binding. */
|
||||
#endif
|
||||
|
||||
/* If the following bit is set in the MODE argument to `dlopen',
|
||||
the symbols of the loaded object and its dependencies are made
|
||||
visible as if the object were linked directly into the program. */
|
||||
#define RTLD_GLOBAL 0x00100
|
||||
|
||||
/* Unix98 demands the following flag which is the inverse to RTLD_GLOBAL.
|
||||
The implementation does this by default and so we can define the
|
||||
value to zero. */
|
||||
#define RTLD_LOCAL 0
|
||||
|
||||
/* Do not delete object when closed. */
|
||||
#define RTLD_NODELETE 0x01000
|
||||
|
||||
#if 0 /*def __USE_GNU*/
|
||||
/* To support profiling of shared objects it is a good idea to call
|
||||
the function found using `dlsym' using the following macro since
|
||||
these calls do not use the PLT. But this would mean the dynamic
|
||||
loader has no chance to find out when the function is called. The
|
||||
macro applies the necessary magic so that profiling is possible.
|
||||
Rewrite
|
||||
foo = (*fctp) (arg1, arg2);
|
||||
into
|
||||
foo = DL_CALL_FCT (fctp, (arg1, arg2));
|
||||
*/
|
||||
# define DL_CALL_FCT(fctp, args) \
|
||||
(_dl_mcount_wrapper_check ((void *) (fctp)), (*(fctp)) args)
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* This function calls the profiling functions. */
|
||||
extern void _dl_mcount_wrapper_check (void *__selfpc) __THROW;
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif
|
||||
14
tasks/libposix/include/posix/bits/elfclass.h
Normal file
14
tasks/libposix/include/posix/bits/elfclass.h
Normal file
@@ -0,0 +1,14 @@
|
||||
/* This file specifies the native word size of the machine, which indicates
|
||||
the ELF file class used for executables and shared objects on this
|
||||
machine. */
|
||||
|
||||
#ifndef _LINK_H
|
||||
# error "Never use <bits/elfclass.h> directly; include <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#define __ELF_NATIVE_CLASS __WORDSIZE
|
||||
|
||||
/* The entries in the .hash table always have a size of 32 bits. */
|
||||
typedef uint32_t Elf_Symndx;
|
||||
19
tasks/libposix/include/posix/bits/endian.h
Normal file
19
tasks/libposix/include/posix/bits/endian.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#ifndef _ENDIAN_H
|
||||
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
|
||||
#endif
|
||||
|
||||
/* ARM can be either big or little endian. */
|
||||
#ifdef __ARMEB__
|
||||
# define __BYTE_ORDER __BIG_ENDIAN
|
||||
#else
|
||||
# define __BYTE_ORDER __LITTLE_ENDIAN
|
||||
#endif
|
||||
|
||||
/* FPA floating point units are always big-endian, irrespective of the
|
||||
CPU endianness. VFP floating point units use the same endianness
|
||||
as the rest of the system. */
|
||||
#if defined __VFP_FP__ || defined __MAVERICK__
|
||||
# define __FLOAT_WORD_ORDER __BYTE_ORDER
|
||||
#else
|
||||
# define __FLOAT_WORD_ORDER __BIG_ENDIAN
|
||||
#endif
|
||||
78
tasks/libposix/include/posix/bits/environments.h
Normal file
78
tasks/libposix/include/posix/bits/environments.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _UNISTD_H
|
||||
# error "Never include this file directly. Use <unistd.h> instead"
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* This header should define the following symbols under the described
|
||||
situations. A value `1' means that the model is always supported,
|
||||
`-1' means it is never supported. Undefined means it cannot be
|
||||
statically decided.
|
||||
|
||||
_POSIX_V6_ILP32_OFF32 32bit int, long, pointers, and off_t type
|
||||
_POSIX_V6_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
|
||||
|
||||
_POSIX_V6_LP64_OFF32 64bit long and pointers and 32bit off_t type
|
||||
_POSIX_V6_LPBIG_OFFBIG 64bit long and pointers and large off_t type
|
||||
|
||||
The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and
|
||||
_XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard
|
||||
and are available only for compatibility.
|
||||
*/
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
|
||||
/* We can never provide environments with 32-bit wide pointers. */
|
||||
# define _POSIX_V6_ILP32_OFF32 -1
|
||||
# define _POSIX_V6_ILP32_OFFBIG -1
|
||||
# define _XBS5_ILP32_OFF32 -1
|
||||
# define _XBS5_ILP32_OFFBIG -1
|
||||
/* We also have no use (for now) for an environment with bigger pointers
|
||||
and offsets. */
|
||||
# define _POSIX_V6_LPBIG_OFFBIG -1
|
||||
# define _XBS5_LPBIG_OFFBIG -1
|
||||
|
||||
/* By default we have 64-bit wide `long int', pointers and `off_t'. */
|
||||
# define _POSIX_V6_LP64_OFF64 1
|
||||
# define _XBS5_LP64_OFF64 1
|
||||
|
||||
#else /* __WORDSIZE == 32 */
|
||||
|
||||
/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
|
||||
and all platforms support LFS. */
|
||||
# define _POSIX_V6_ILP32_OFF32 1
|
||||
# define _POSIX_V6_ILP32_OFFBIG 1
|
||||
# define _XBS5_ILP32_OFF32 1
|
||||
# define _XBS5_ILP32_OFFBIG 1
|
||||
|
||||
/* We optionally provide an environment with the above size but an 64-bit
|
||||
side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */
|
||||
|
||||
/* We can never provide environments with 64-bit wide pointers. */
|
||||
# define _POSIX_V6_LP64_OFF64 -1
|
||||
# define _POSIX_V6_LPBIG_OFFBIG -1
|
||||
# define _XBS5_LP64_OFF64 -1
|
||||
# define _XBS5_LPBIG_OFFBIG -1
|
||||
|
||||
/* CFLAGS. */
|
||||
#define __ILP32_OFFBIG_CFLAGS "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||
|
||||
#endif /* __WORDSIZE == 32 */
|
||||
59
tasks/libposix/include/posix/bits/errno.h
Normal file
59
tasks/libposix/include/posix/bits/errno.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/* Error constants. Linux specific version.
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifdef _ERRNO_H
|
||||
|
||||
# undef EDOM
|
||||
# undef EILSEQ
|
||||
# undef ERANGE
|
||||
# include <bits/errno_values.h>
|
||||
|
||||
/* Linux has no ENOTSUP error code. */
|
||||
# define ENOTSUP EOPNOTSUPP
|
||||
|
||||
/* Older Linux versions also had no ECANCELED error code. */
|
||||
# ifndef ECANCELED
|
||||
# define ECANCELED 125
|
||||
# endif
|
||||
|
||||
/* Support for error codes to support robust mutexes was added later, too. */
|
||||
# ifndef EOWNERDEAD
|
||||
# define EOWNERDEAD 130
|
||||
# define ENOTRECOVERABLE 131
|
||||
# endif
|
||||
|
||||
# ifndef __ASSEMBLER__
|
||||
/* Function to get address of global `errno' variable. */
|
||||
extern int *__errno_location (void) __THROW __attribute__ ((__const__));
|
||||
|
||||
# ifdef __UCLIBC_HAS_THREADS__
|
||||
/* When using threads, errno is a per-thread value. */
|
||||
# define errno (*__errno_location ())
|
||||
# endif
|
||||
# endif /* !__ASSEMBLER__ */
|
||||
#endif /* _ERRNO_H */
|
||||
|
||||
#if !defined _ERRNO_H && defined __need_Emath
|
||||
/* This is ugly but the kernel header is not clean enough. We must
|
||||
define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
|
||||
defined. */
|
||||
# define EDOM 33 /* Math argument out of domain of function. */
|
||||
# define EILSEQ 84 /* Illegal byte sequence. */
|
||||
# define ERANGE 34 /* Math result not representable. */
|
||||
#endif /* !_ERRNO_H && __need_Emath */
|
||||
137
tasks/libposix/include/posix/bits/errno_values.h
Normal file
137
tasks/libposix/include/posix/bits/errno_values.h
Normal file
@@ -0,0 +1,137 @@
|
||||
#ifndef _BITS_ERRNO_VALUES_H
|
||||
#define _BITS_ERRNO_VALUES_H
|
||||
|
||||
/* Most architectures use these errno values (i.e. arm cris
|
||||
* i386 ia64 m68k parisc ppc ppc64 s390 s390x sh x86_64, etc)
|
||||
*
|
||||
* A few arches do their own wierd thing, specifically alpha,
|
||||
* mips, and sparc.
|
||||
*
|
||||
*/
|
||||
|
||||
#define EPERM 1 /* Operation not permitted */
|
||||
#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 /* Argument list too long */
|
||||
#define ENOEXEC 8 /* Exec format error */
|
||||
#define EBADF 9 /* Bad file number */
|
||||
#define ECHILD 10 /* No child processes */
|
||||
#define EAGAIN 11 /* Try again */
|
||||
#define ENOMEM 12 /* Out of memory */
|
||||
#define EACCES 13 /* Permission denied */
|
||||
#define EFAULT 14 /* Bad address */
|
||||
#define ENOTBLK 15 /* Block device required */
|
||||
#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 /* File table overflow */
|
||||
#define EMFILE 24 /* Too many open files */
|
||||
#define ENOTTY 25 /* Not a typewriter */
|
||||
#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 /* Math argument out of domain of func */
|
||||
#define ERANGE 34 /* Math result not representable */
|
||||
#define EDEADLK 35 /* Resource deadlock would occur */
|
||||
#define ENAMETOOLONG 36 /* File name too long */
|
||||
#define ENOLCK 37 /* No record locks available */
|
||||
#define ENOSYS 38 /* Function not implemented */
|
||||
#define ENOTEMPTY 39 /* Directory not empty */
|
||||
#define ELOOP 40 /* Too many symbolic links encountered */
|
||||
#define EWOULDBLOCK EAGAIN /* Operation would block */
|
||||
#define ENOMSG 42 /* No message of desired type */
|
||||
#define EIDRM 43 /* Identifier removed */
|
||||
#define ECHRNG 44 /* Channel number out of range */
|
||||
#define EL2NSYNC 45 /* Level 2 not synchronized */
|
||||
#define EL3HLT 46 /* Level 3 halted */
|
||||
#define EL3RST 47 /* Level 3 reset */
|
||||
#define ELNRNG 48 /* Link number out of range */
|
||||
#define EUNATCH 49 /* Protocol driver not attached */
|
||||
#define ENOCSI 50 /* No CSI structure available */
|
||||
#define EL2HLT 51 /* Level 2 halted */
|
||||
#define EBADE 52 /* Invalid exchange */
|
||||
#define EBADR 53 /* Invalid request descriptor */
|
||||
#define EXFULL 54 /* Exchange full */
|
||||
#define ENOANO 55 /* No anode */
|
||||
#define EBADRQC 56 /* Invalid request code */
|
||||
#define EBADSLT 57 /* Invalid slot */
|
||||
#define EDEADLOCK EDEADLK
|
||||
#define EBFONT 59 /* Bad font file format */
|
||||
#define ENOSTR 60 /* Device not a stream */
|
||||
#define ENODATA 61 /* No data available */
|
||||
#define ETIME 62 /* Timer expired */
|
||||
#define ENOSR 63 /* Out of streams resources */
|
||||
#define ENONET 64 /* Machine is not on the network */
|
||||
#define ENOPKG 65 /* Package not installed */
|
||||
#define EREMOTE 66 /* Object is remote */
|
||||
#define ENOLINK 67 /* Link has been severed */
|
||||
#define EADV 68 /* Advertise error */
|
||||
#define ESRMNT 69 /* Srmount error */
|
||||
#define ECOMM 70 /* Communication error on send */
|
||||
#define EPROTO 71 /* Protocol error */
|
||||
#define EMULTIHOP 72 /* Multihop attempted */
|
||||
#define EDOTDOT 73 /* RFS specific error */
|
||||
#define EBADMSG 74 /* Not a data message */
|
||||
#define EOVERFLOW 75 /* Value too large for defined data type */
|
||||
#define ENOTUNIQ 76 /* Name not unique on network */
|
||||
#define EBADFD 77 /* File descriptor in bad state */
|
||||
#define EREMCHG 78 /* Remote address changed */
|
||||
#define ELIBACC 79 /* Can not access a needed shared library */
|
||||
#define ELIBBAD 80 /* Accessing a corrupted shared library */
|
||||
#define ELIBSCN 81 /* .lib section in a.out corrupted */
|
||||
#define ELIBMAX 82 /* Attempting to link in too many shared libraries */
|
||||
#define ELIBEXEC 83 /* Cannot exec a shared library directly */
|
||||
#define EILSEQ 84 /* Illegal byte sequence */
|
||||
#define ERESTART 85 /* Interrupted system call should be restarted */
|
||||
#define ESTRPIPE 86 /* Streams pipe error */
|
||||
#define EUSERS 87 /* Too many users */
|
||||
#define ENOTSOCK 88 /* Socket operation on non-socket */
|
||||
#define EDESTADDRREQ 89 /* Destination address required */
|
||||
#define EMSGSIZE 90 /* Message too long */
|
||||
#define EPROTOTYPE 91 /* Protocol wrong type for socket */
|
||||
#define ENOPROTOOPT 92 /* Protocol not available */
|
||||
#define EPROTONOSUPPORT 93 /* Protocol not supported */
|
||||
#define ESOCKTNOSUPPORT 94 /* Socket type not supported */
|
||||
#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
|
||||
#define EPFNOSUPPORT 96 /* Protocol family not supported */
|
||||
#define EAFNOSUPPORT 97 /* Address family not supported by protocol */
|
||||
#define EADDRINUSE 98 /* Address already in use */
|
||||
#define EADDRNOTAVAIL 99 /* Cannot assign requested address */
|
||||
#define ENETDOWN 100 /* Network is down */
|
||||
#define ENETUNREACH 101 /* Network is unreachable */
|
||||
#define ENETRESET 102 /* Network dropped connection because of reset */
|
||||
#define ECONNABORTED 103 /* Software caused connection abort */
|
||||
#define ECONNRESET 104 /* Connection reset by peer */
|
||||
#define ENOBUFS 105 /* No buffer space available */
|
||||
#define EISCONN 106 /* Transport endpoint is already connected */
|
||||
#define ENOTCONN 107 /* Transport endpoint is not connected */
|
||||
#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */
|
||||
#define ETOOMANYREFS 109 /* Too many references: cannot splice */
|
||||
#define ETIMEDOUT 110 /* Connection timed out */
|
||||
#define ECONNREFUSED 111 /* Connection refused */
|
||||
#define EHOSTDOWN 112 /* Host is down */
|
||||
#define EHOSTUNREACH 113 /* No route to host */
|
||||
#define EALREADY 114 /* Operation already in progress */
|
||||
#define EINPROGRESS 115 /* Operation now in progress */
|
||||
#define ESTALE 116 /* Stale NFS file handle */
|
||||
#define EUCLEAN 117 /* Structure needs cleaning */
|
||||
#define ENOTNAM 118 /* Not a XENIX named type file */
|
||||
#define ENAVAIL 119 /* No XENIX semaphores available */
|
||||
#define EISNAM 120 /* Is a named type file */
|
||||
#define EREMOTEIO 121 /* Remote I/O error */
|
||||
#define EDQUOT 122 /* Quota exceeded */
|
||||
#define ENOMEDIUM 123 /* No medium found */
|
||||
#define EMEDIUMTYPE 124 /* Wrong medium type */
|
||||
|
||||
#endif /* _BITS_ERRNO_VALUES_H */
|
||||
237
tasks/libposix/include/posix/bits/fcntl.h
Normal file
237
tasks/libposix/include/posix/bits/fcntl.h
Normal file
@@ -0,0 +1,237 @@
|
||||
/* O_*, F_*, FD_* bit values for Linux.
|
||||
Copyright (C) 1995-1998, 2000, 2004, 2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _FCNTL_H
|
||||
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#ifdef __USE_GNU
|
||||
# include <bits/uio.h>
|
||||
#endif
|
||||
|
||||
|
||||
/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
|
||||
located on an ext2 file system */
|
||||
#define O_ACCMODE 0003
|
||||
#define O_RDONLY 00
|
||||
#define O_WRONLY 01
|
||||
#define O_RDWR 02
|
||||
#define O_CREAT 0100 /* not fcntl */
|
||||
#define O_EXCL 0200 /* not fcntl */
|
||||
#define O_NOCTTY 0400 /* not fcntl */
|
||||
#define O_TRUNC 01000 /* not fcntl */
|
||||
#define O_APPEND 02000
|
||||
#define O_NONBLOCK 04000
|
||||
#define O_NDELAY O_NONBLOCK
|
||||
#define O_SYNC 010000
|
||||
#define O_FSYNC O_SYNC
|
||||
#define O_ASYNC 020000
|
||||
|
||||
#ifdef __USE_GNU
|
||||
# define O_DIRECTORY 040000 /* Must be a directory. */
|
||||
# define O_NOFOLLOW 0100000 /* Do not follow links. */
|
||||
# define O_DIRECT 0200000 /* Direct disk access. */
|
||||
# define O_NOATIME 01000000 /* Do not set atime. */
|
||||
#endif
|
||||
|
||||
/* For now Linux has synchronisity options for data and read operations.
|
||||
We define the symbols here but let them do the same as O_SYNC since
|
||||
this is a superset. */
|
||||
#if defined __USE_POSIX199309 || defined __USE_UNIX98
|
||||
# define O_DSYNC O_SYNC /* Synchronize data. */
|
||||
# define O_RSYNC O_SYNC /* Synchronize read operations. */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# define O_LARGEFILE 0400000
|
||||
#endif
|
||||
|
||||
/* Values for the second argument to `fcntl'. */
|
||||
#define F_DUPFD 0 /* Duplicate file descriptor. */
|
||||
#define F_GETFD 1 /* Get file descriptor flags. */
|
||||
#define F_SETFD 2 /* Set file descriptor flags. */
|
||||
#define F_GETFL 3 /* Get file status flags. */
|
||||
#define F_SETFL 4 /* Set file status flags. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# define F_GETLK 5 /* Get record locking info. */
|
||||
# define F_SETLK 6 /* Set record locking info (non-blocking). */
|
||||
# define F_SETLKW 7 /* Set record locking info (blocking). */
|
||||
#else
|
||||
# define F_GETLK F_GETLK64 /* Get record locking info. */
|
||||
# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
|
||||
# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
|
||||
#endif
|
||||
#define F_GETLK64 12 /* Get record locking info. */
|
||||
#define F_SETLK64 13 /* Set record locking info (non-blocking). */
|
||||
#define F_SETLKW64 14 /* Set record locking info (blocking). */
|
||||
|
||||
#if defined __USE_BSD || defined __USE_UNIX98
|
||||
# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
|
||||
# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
# define F_SETSIG 10 /* Set number of signal to be sent. */
|
||||
# define F_GETSIG 11 /* Get number of signal to be sent. */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
# define F_SETLEASE 1024 /* Set a lease. */
|
||||
# define F_GETLEASE 1025 /* Enquire what lease is active. */
|
||||
# define F_NOTIFY 1026 /* Request notfications on a directory. */
|
||||
#endif
|
||||
|
||||
/* For F_[GET|SET]FL. */
|
||||
#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
|
||||
|
||||
/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
|
||||
#define F_RDLCK 0 /* Read lock. */
|
||||
#define F_WRLCK 1 /* Write lock. */
|
||||
#define F_UNLCK 2 /* Remove lock. */
|
||||
|
||||
/* For old implementation of bsd flock(). */
|
||||
#define F_EXLCK 4 /* or 3 */
|
||||
#define F_SHLCK 8 /* or 4 */
|
||||
|
||||
#ifdef __USE_BSD
|
||||
/* Operations for bsd flock(), also used by the kernel implementation. */
|
||||
# define LOCK_SH 1 /* shared lock */
|
||||
# define LOCK_EX 2 /* exclusive lock */
|
||||
# define LOCK_NB 4 /* or'd with one of the above to prevent
|
||||
blocking */
|
||||
# define LOCK_UN 8 /* remove lock */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
# define LOCK_MAND 32 /* This is a mandatory flock: */
|
||||
# define LOCK_READ 64 /* ... which allows concurrent read operations. */
|
||||
# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
|
||||
# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
/* Types of directory notifications that may be requested with F_NOTIFY. */
|
||||
# define DN_ACCESS 0x00000001 /* File accessed. */
|
||||
# define DN_MODIFY 0x00000002 /* File modified. */
|
||||
# define DN_CREATE 0x00000004 /* File created. */
|
||||
# define DN_DELETE 0x00000008 /* File removed. */
|
||||
# define DN_RENAME 0x00000010 /* File renamed. */
|
||||
# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
|
||||
# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
|
||||
#endif
|
||||
|
||||
struct flock
|
||||
{
|
||||
short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
|
||||
short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__off_t l_start; /* Offset where the lock begins. */
|
||||
__off_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||
#else
|
||||
__off64_t l_start; /* Offset where the lock begins. */
|
||||
__off64_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||
#endif
|
||||
__pid_t l_pid; /* Process holding the lock. */
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct flock64
|
||||
{
|
||||
short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
|
||||
short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
|
||||
__off64_t l_start; /* Offset where the lock begins. */
|
||||
__off64_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||
__pid_t l_pid; /* Process holding the lock. */
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Define some more compatibility macros to be backward compatible with
|
||||
BSD systems which did not managed to hide these kernel macros. */
|
||||
#ifdef __USE_BSD
|
||||
# define FAPPEND O_APPEND
|
||||
# define FFSYNC O_FSYNC
|
||||
# define FASYNC O_ASYNC
|
||||
# define FNONBLOCK O_NONBLOCK
|
||||
# define FNDELAY O_NDELAY
|
||||
#endif /* Use BSD. */
|
||||
|
||||
/* Advise to `posix_fadvise'. */
|
||||
#ifdef __USE_XOPEN2K
|
||||
# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
|
||||
# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
|
||||
# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
|
||||
# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
|
||||
# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
|
||||
# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __USE_GNU
|
||||
/* Flags for SYNC_FILE_RANGE. */
|
||||
# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
|
||||
in the range before performing the
|
||||
write. */
|
||||
# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
|
||||
dirty pages in the range which are
|
||||
not presently under writeback. */
|
||||
# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
|
||||
the range after performing the
|
||||
write. */
|
||||
|
||||
/* Flags for SPLICE and VMSPLICE. */
|
||||
# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
|
||||
# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
|
||||
(but we may still block on the fd
|
||||
we splice from/to). */
|
||||
# define SPLICE_F_MORE 4 /* Expect more data. */
|
||||
# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#ifdef __USE_GNU
|
||||
|
||||
/* Provide kernel hint to read ahead. */
|
||||
extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
|
||||
__THROW;
|
||||
|
||||
|
||||
#if 0
|
||||
/* Selective file content synch'ing. */
|
||||
extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
|
||||
unsigned int __flags);
|
||||
|
||||
|
||||
/* Splice address range into a pipe. */
|
||||
extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
|
||||
unsigned int __flags);
|
||||
|
||||
/* Splice two files together. */
|
||||
extern int splice (int __fdin, int __fdout, size_t __len, unsigned int __flags)
|
||||
__THROW;
|
||||
|
||||
/* In-kernel implementation of tee for pipe buffers. */
|
||||
extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
|
||||
__THROW;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
99
tasks/libposix/include/posix/bits/fenv.h
Normal file
99
tasks/libposix/include/posix/bits/fenv.h
Normal file
@@ -0,0 +1,99 @@
|
||||
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _FENV_H
|
||||
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
|
||||
#endif
|
||||
|
||||
#ifdef __MAVERICK__
|
||||
|
||||
/* Define bits representing exceptions in the FPU status word. */
|
||||
enum
|
||||
{
|
||||
FE_INVALID = 1,
|
||||
#define FE_INVALID FE_INVALID
|
||||
FE_OVERFLOW = 4,
|
||||
#define FE_OVERFLOW FE_OVERFLOW
|
||||
FE_UNDERFLOW = 8,
|
||||
#define FE_UNDERFLOW FE_UNDERFLOW
|
||||
FE_INEXACT = 16,
|
||||
#define FE_INEXACT FE_INEXACT
|
||||
};
|
||||
|
||||
/* Amount to shift by to convert an exception to a mask bit. */
|
||||
#define FE_EXCEPT_SHIFT 5
|
||||
|
||||
/* All supported exceptions. */
|
||||
#define FE_ALL_EXCEPT \
|
||||
(FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
|
||||
|
||||
/* IEEE rounding modes. */
|
||||
enum
|
||||
{
|
||||
FE_TONEAREST = 0,
|
||||
#define FE_TONEAREST FE_TONEAREST
|
||||
FE_TOWARDZERO = 0x400,
|
||||
#define FE_TOWARDZERO FE_TOWARDZERO
|
||||
FE_DOWNWARD = 0x800,
|
||||
#define FE_DOWNWARD FE_DOWNWARD
|
||||
FE_UPWARD = 0xc00,
|
||||
#define FE_UPWARD FE_UPWARD
|
||||
};
|
||||
|
||||
#define FE_ROUND_MASK (FE_UPWARD)
|
||||
|
||||
#else /* !__MAVERICK__ */
|
||||
|
||||
/* Define bits representing exceptions in the FPU status word. */
|
||||
enum
|
||||
{
|
||||
FE_INVALID = 1,
|
||||
#define FE_INVALID FE_INVALID
|
||||
FE_DIVBYZERO = 2,
|
||||
#define FE_DIVBYZERO FE_DIVBYZERO
|
||||
FE_OVERFLOW = 4,
|
||||
#define FE_OVERFLOW FE_OVERFLOW
|
||||
FE_UNDERFLOW = 8,
|
||||
#define FE_UNDERFLOW FE_UNDERFLOW
|
||||
};
|
||||
|
||||
/* Amount to shift by to convert an exception to a mask bit. */
|
||||
#define FE_EXCEPT_SHIFT 16
|
||||
|
||||
/* All supported exceptions. */
|
||||
#define FE_ALL_EXCEPT \
|
||||
(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW)
|
||||
|
||||
/* The ARM FPU basically only supports round-to-nearest. Other rounding
|
||||
modes exist, but you have to encode them in the actual instruction. */
|
||||
#define FE_TONEAREST 0
|
||||
|
||||
#endif /* __MAVERICK__ */
|
||||
|
||||
/* Type representing exception flags. */
|
||||
typedef unsigned long int fexcept_t;
|
||||
|
||||
/* Type representing floating-point environment. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned long int __cw;
|
||||
}
|
||||
fenv_t;
|
||||
|
||||
/* If the default argument is used we use this value. */
|
||||
#define FE_DFL_ENV ((fenv_t *) -1l)
|
||||
8
tasks/libposix/include/posix/bits/fenvinline.h
Normal file
8
tasks/libposix/include/posix/bits/fenvinline.h
Normal file
@@ -0,0 +1,8 @@
|
||||
/* This file provides inline versions of floating-pint environment
|
||||
handling functions. If there were any. */
|
||||
|
||||
#ifndef __NO_MATH_INLINES
|
||||
|
||||
/* Here is where the code would go. */
|
||||
|
||||
#endif
|
||||
181
tasks/libposix/include/posix/bits/getopt.h
Normal file
181
tasks/libposix/include/posix/bits/getopt.h
Normal file
@@ -0,0 +1,181 @@
|
||||
/* Declarations for getopt.
|
||||
Copyright (C) 1989-1994,1996-1999,2001,2003,2004
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _GETOPT_H
|
||||
|
||||
#include <features.h>
|
||||
|
||||
#ifndef __need_getopt
|
||||
# define _GETOPT_H 1
|
||||
#endif
|
||||
|
||||
/* If __GNU_LIBRARY__ is not already defined, either we are being used
|
||||
standalone, or this is the first header included in the source file.
|
||||
If we are being used with glibc, we need to include <features.h>, but
|
||||
that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
|
||||
not defined, include <ctype.h>, which will pull in <features.h> for us
|
||||
if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
|
||||
doesn't flood the namespace with stuff the way some other headers do.) */
|
||||
#if !defined __GNU_LIBRARY__
|
||||
# include <ctype.h>
|
||||
#endif
|
||||
|
||||
#ifndef __THROW
|
||||
# ifndef __GNUC_PREREQ
|
||||
# define __GNUC_PREREQ(maj, min) (0)
|
||||
# endif
|
||||
# if defined __cplusplus && __GNUC_PREREQ (2,8)
|
||||
# define __THROW throw ()
|
||||
# else
|
||||
# define __THROW
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* For communication from `getopt' to the caller.
|
||||
When `getopt' finds an option that takes an argument,
|
||||
the argument value is returned here.
|
||||
Also, when `ordering' is RETURN_IN_ORDER,
|
||||
each non-option ARGV-element is returned here. */
|
||||
|
||||
extern char *optarg;
|
||||
|
||||
/* Index in ARGV of the next element to be scanned.
|
||||
This is used for communication to and from the caller
|
||||
and for communication between successive calls to `getopt'.
|
||||
|
||||
On entry to `getopt', zero means this is the first call; initialize.
|
||||
|
||||
When `getopt' returns -1, this is the index of the first of the
|
||||
non-option elements that the caller should itself scan.
|
||||
|
||||
Otherwise, `optind' communicates from one call to the next
|
||||
how much of ARGV has been scanned so far. */
|
||||
|
||||
extern int optind;
|
||||
|
||||
/* Callers store zero here to inhibit the error message `getopt' prints
|
||||
for unrecognized options. */
|
||||
|
||||
extern int opterr;
|
||||
|
||||
/* Set to an option character which was unrecognized. */
|
||||
|
||||
extern int optopt;
|
||||
|
||||
#ifndef __need_getopt
|
||||
/* Describe the long-named options requested by the application.
|
||||
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
|
||||
of `struct option' terminated by an element containing a name which is
|
||||
zero.
|
||||
|
||||
The field `has_arg' is:
|
||||
no_argument (or 0) if the option does not take an argument,
|
||||
required_argument (or 1) if the option requires an argument,
|
||||
optional_argument (or 2) if the option takes an optional argument.
|
||||
|
||||
If the field `flag' is not NULL, it points to a variable that is set
|
||||
to the value given in the field `val' when the option is found, but
|
||||
left unchanged if the option is not found.
|
||||
|
||||
To have a long-named option do something other than set an `int' to
|
||||
a compiled-in constant, such as set a value from `optarg', set the
|
||||
option's `flag' field to zero and its `val' field to a nonzero
|
||||
value (the equivalent single-letter option character, if there is
|
||||
one). For long options that have a zero `flag' field, `getopt'
|
||||
returns the contents of the `val' field. */
|
||||
|
||||
struct option
|
||||
{
|
||||
const char *name;
|
||||
/* has_arg can't be an enum because some compilers complain about
|
||||
type mismatches in all the code that assumes it is an int. */
|
||||
int has_arg;
|
||||
int *flag;
|
||||
int val;
|
||||
};
|
||||
|
||||
/* Names for the values of the `has_arg' field of `struct option'. */
|
||||
|
||||
# define no_argument 0
|
||||
# define required_argument 1
|
||||
# define optional_argument 2
|
||||
#endif /* need getopt */
|
||||
|
||||
|
||||
/* Get definitions and prototypes for functions to process the
|
||||
arguments in ARGV (ARGC of them, minus the program name) for
|
||||
options given in OPTS.
|
||||
|
||||
Return the option character from OPTS just read. Return -1 when
|
||||
there are no more options. For unrecognized options, or options
|
||||
missing arguments, `optopt' is set to the option letter, and '?' is
|
||||
returned.
|
||||
|
||||
The OPTS string is a list of characters which are recognized option
|
||||
letters, optionally followed by colons, specifying that that letter
|
||||
takes an argument, to be placed in `optarg'.
|
||||
|
||||
If a letter in OPTS is followed by two colons, its argument is
|
||||
optional. This behavior is specific to the GNU `getopt'.
|
||||
|
||||
The argument `--' causes premature termination of argument
|
||||
scanning, explicitly telling `getopt' that there are no more
|
||||
options.
|
||||
|
||||
If OPTS begins with `--', then non-option arguments are treated as
|
||||
arguments to the option '\0'. This behavior is specific to the GNU
|
||||
`getopt'. */
|
||||
|
||||
#if defined __GNU_LIBRARY__ || defined __UCLIBC__
|
||||
/* Many other libraries have conflicting prototypes for getopt, with
|
||||
differences in the consts, in stdlib.h. To avoid compilation
|
||||
errors, only prototype getopt for the GNU C library. */
|
||||
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
|
||||
__THROW;
|
||||
#else /* not __GNU_LIBRARY__ */
|
||||
extern int getopt ();
|
||||
#endif /* __GNU_LIBRARY__ */
|
||||
|
||||
#if defined __UCLIBC_HAS_GNU_GETOPT__ || defined __UCLIBC_HAS_GETOPT_LONG__
|
||||
#ifndef __need_getopt
|
||||
extern int getopt_long (int ___argc, char *const *___argv,
|
||||
const char *__shortopts,
|
||||
const struct option *__longopts, int *__longind)
|
||||
__THROW;
|
||||
extern int getopt_long_only (int ___argc, char *const *___argv,
|
||||
const char *__shortopts,
|
||||
const struct option *__longopts, int *__longind)
|
||||
__THROW;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure we later can get all the definitions and declarations. */
|
||||
#undef __need_getopt
|
||||
|
||||
#endif /* getopt.h */
|
||||
72
tasks/libposix/include/posix/bits/huge_val.h
Normal file
72
tasks/libposix/include/posix/bits/huge_val.h
Normal file
@@ -0,0 +1,72 @@
|
||||
/* `HUGE_VAL' constant for IEEE 754 machines (where it is infinity).
|
||||
Used by <stdlib.h> and <math.h> functions for overflow.
|
||||
ARM version.
|
||||
Copyright (C) 1992, 95, 96, 97, 98, 99, 2000, 2004
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _MATH_H
|
||||
# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
/* IEEE positive infinity (-HUGE_VAL is negative infinity). */
|
||||
|
||||
#if __GNUC_PREREQ(3,3)
|
||||
# define HUGE_VAL (__builtin_huge_val())
|
||||
#elif __GNUC_PREREQ(2,96)
|
||||
# define HUGE_VAL (__extension__ 0x1.0p2047)
|
||||
#elif defined __GNUC__
|
||||
|
||||
#ifndef __CONFIG_ARM_EABI__
|
||||
# define HUGE_VAL \
|
||||
(__extension__ \
|
||||
((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \
|
||||
{ __l: 0x000000007ff00000ULL }).__d)
|
||||
#else
|
||||
# define HUGE_VAL \
|
||||
(__extension__ \
|
||||
((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \
|
||||
{ __l: 0x7ff0000000000000ULL }).__d)
|
||||
#endif
|
||||
|
||||
#else /* not GCC */
|
||||
|
||||
# include <endian.h>
|
||||
|
||||
typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
|
||||
|
||||
#ifndef __CONFIG_ARM_EABI__
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
|
||||
# endif
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
# define __HUGE_VAL_bytes { 0, 0, 0xf0, 0x7f, 0, 0, 0, 0 }
|
||||
# endif
|
||||
#else
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# define __HUGE_VAL_bytes { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 }
|
||||
# endif
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f }
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
|
||||
# define HUGE_VAL (__huge_val.__d)
|
||||
|
||||
#endif /* GCC. */
|
||||
53
tasks/libposix/include/posix/bits/huge_valf.h
Normal file
53
tasks/libposix/include/posix/bits/huge_valf.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* `HUGE_VALF' constant for IEEE 754 machines (where it is infinity).
|
||||
Used by <stdlib.h> and <math.h> functions for overflow.
|
||||
Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _MATH_H
|
||||
# error "Never use <bits/huge_valf.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
/* IEEE positive infinity (-HUGE_VAL is negative infinity). */
|
||||
|
||||
#if __GNUC_PREREQ(3,3)
|
||||
# define HUGE_VALF (__builtin_huge_valf())
|
||||
#elif __GNUC_PREREQ(2,96)
|
||||
# define HUGE_VALF (__extension__ 0x1.0p255f)
|
||||
#elif defined __GNUC__
|
||||
|
||||
# define HUGE_VALF \
|
||||
(__extension__ \
|
||||
((union { unsigned __l __attribute__((__mode__(__SI__))); float __d; }) \
|
||||
{ __l: 0x7f800000UL }).__d)
|
||||
|
||||
#else /* not GCC */
|
||||
|
||||
typedef union { unsigned char __c[4]; float __f; } __huge_valf_t;
|
||||
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# define __HUGE_VALF_bytes { 0x7f, 0x80, 0, 0 }
|
||||
# endif
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
# define __HUGE_VALF_bytes { 0, 0, 0x80, 0x7f }
|
||||
# endif
|
||||
|
||||
static __huge_valf_t __huge_valf = { __HUGE_VALF_bytes };
|
||||
# define HUGE_VALF (__huge_valf.__f)
|
||||
|
||||
#endif /* GCC. */
|
||||
29
tasks/libposix/include/posix/bits/huge_vall.h
Normal file
29
tasks/libposix/include/posix/bits/huge_vall.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Default `HUGE_VALL' constant.
|
||||
Used by <stdlib.h> and <math.h> functions for overflow.
|
||||
Copyright (C) 1992, 1996, 1997, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _MATH_H
|
||||
# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
#if __GNUC_PREREQ(3,3)
|
||||
# define HUGE_VALL (__builtin_huge_vall())
|
||||
#else
|
||||
# define HUGE_VALL ((long double) HUGE_VAL)
|
||||
#endif
|
||||
170
tasks/libposix/include/posix/bits/in.h
Normal file
170
tasks/libposix/include/posix/bits/in.h
Normal file
@@ -0,0 +1,170 @@
|
||||
/* Copyright (C) 1991-1999, 2000, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* Linux version. */
|
||||
|
||||
#ifndef _NETINET_IN_H
|
||||
# error "Never use <bits/in.h> directly; include <netinet/in.h> instead."
|
||||
#endif
|
||||
|
||||
/* Options for use with `getsockopt' and `setsockopt' at the IP level.
|
||||
The first word in the comment at the right is the data type used;
|
||||
"bool" means a boolean value stored in an `int'. */
|
||||
#define IP_OPTIONS 4 /* ip_opts; IP per-packet options. */
|
||||
#define IP_HDRINCL 3 /* int; Header is included with data. */
|
||||
#define IP_TOS 1 /* int; IP type of service and precedence. */
|
||||
#define IP_TTL 2 /* int; IP time to live. */
|
||||
#define IP_RECVOPTS 6 /* bool; Receive all IP options w/datagram. */
|
||||
/* For BSD compatibility. */
|
||||
#define IP_RECVRETOPTS IP_RETOPTS /* bool; Receive IP options for response. */
|
||||
#define IP_RETOPTS 7 /* ip_opts; Set/get IP per-packet options. */
|
||||
#define IP_MULTICAST_IF 32 /* in_addr; set/get IP multicast i/f */
|
||||
#define IP_MULTICAST_TTL 33 /* u_char; set/get IP multicast ttl */
|
||||
#define IP_MULTICAST_LOOP 34 /* i_char; set/get IP multicast loopback */
|
||||
#define IP_ADD_MEMBERSHIP 35 /* ip_mreq; add an IP group membership */
|
||||
#define IP_DROP_MEMBERSHIP 36 /* ip_mreq; drop an IP group membership */
|
||||
#define IP_UNBLOCK_SOURCE 37 /* ip_mreq_source: unblock data from source */
|
||||
#define IP_BLOCK_SOURCE 38 /* ip_mreq_source: block data from source */
|
||||
#define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */
|
||||
#define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */
|
||||
#define IP_MSFILTER 41
|
||||
#define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */
|
||||
#define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */
|
||||
#define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/
|
||||
#define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */
|
||||
#define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
|
||||
#define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
|
||||
#define MCAST_MSFILTER 48
|
||||
|
||||
#define MCAST_EXCLUDE 0
|
||||
#define MCAST_INCLUDE 1
|
||||
|
||||
#define IP_ROUTER_ALERT 5 /* bool */
|
||||
#define IP_PKTINFO 8 /* bool */
|
||||
#define IP_PKTOPTIONS 9
|
||||
#define IP_PMTUDISC 10 /* obsolete name? */
|
||||
#define IP_MTU_DISCOVER 10 /* int; see below */
|
||||
#define IP_RECVERR 11 /* bool */
|
||||
#define IP_RECVTTL 12 /* bool */
|
||||
#define IP_RECVTOS 13 /* bool */
|
||||
|
||||
|
||||
/* IP_MTU_DISCOVER arguments. */
|
||||
#define IP_PMTUDISC_DONT 0 /* Never send DF frames. */
|
||||
#define IP_PMTUDISC_WANT 1 /* Use per route hints. */
|
||||
#define IP_PMTUDISC_DO 2 /* Always DF. */
|
||||
|
||||
/* To select the IP level. */
|
||||
#define SOL_IP 0
|
||||
|
||||
#define IP_DEFAULT_MULTICAST_TTL 1
|
||||
#define IP_DEFAULT_MULTICAST_LOOP 1
|
||||
#define IP_MAX_MEMBERSHIPS 20
|
||||
|
||||
/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
|
||||
The `ip_dst' field is used for the first-hop gateway when using a
|
||||
source route (this gets put into the header proper). */
|
||||
struct ip_opts
|
||||
{
|
||||
struct in_addr ip_dst; /* First hop; zero without source route. */
|
||||
char ip_opts[40]; /* Actually variable in size. */
|
||||
};
|
||||
|
||||
/* Like `struct ip_mreq' but including interface specification by index. */
|
||||
struct ip_mreqn
|
||||
{
|
||||
struct in_addr imr_multiaddr; /* IP multicast address of group */
|
||||
struct in_addr imr_address; /* local IP address of interface */
|
||||
int imr_ifindex; /* Interface index */
|
||||
};
|
||||
|
||||
/* Structure used for IP_PKTINFO. */
|
||||
struct in_pktinfo
|
||||
{
|
||||
int ipi_ifindex; /* Interface index */
|
||||
struct in_addr ipi_spec_dst; /* Routing destination address */
|
||||
struct in_addr ipi_addr; /* Header destination address */
|
||||
};
|
||||
|
||||
/* Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
|
||||
The first word in the comment at the right is the data type used;
|
||||
"bool" means a boolean value stored in an `int'. */
|
||||
#define IPV6_ADDRFORM 1
|
||||
#define IPV6_2292PKTINFO 2
|
||||
#define IPV6_2292HOPOPTS 3
|
||||
#define IPV6_2292DSTOPTS 4
|
||||
#define IPV6_2292RTHDR 5
|
||||
#define IPV6_2292PKTOPTIONS 6
|
||||
#define IPV6_CHECKSUM 7
|
||||
#define IPV6_2292HOPLIMIT 8
|
||||
|
||||
#define SCM_SRCRT IPV6_RXSRCRT
|
||||
|
||||
#define IPV6_NEXTHOP 9
|
||||
#define IPV6_AUTHHDR 10
|
||||
#define IPV6_UNICAST_HOPS 16
|
||||
#define IPV6_MULTICAST_IF 17
|
||||
#define IPV6_MULTICAST_HOPS 18
|
||||
#define IPV6_MULTICAST_LOOP 19
|
||||
#define IPV6_JOIN_GROUP 20
|
||||
#define IPV6_LEAVE_GROUP 21
|
||||
#define IPV6_ROUTER_ALERT 22
|
||||
#define IPV6_MTU_DISCOVER 23
|
||||
#define IPV6_MTU 24
|
||||
#define IPV6_RECVERR 25
|
||||
#define IPV6_V6ONLY 26
|
||||
#define IPV6_JOIN_ANYCAST 27
|
||||
#define IPV6_LEAVE_ANYCAST 28
|
||||
#define IPV6_IPSEC_POLICY 34
|
||||
#define IPV6_XFRM_POLICY 35
|
||||
|
||||
#define IPV6_RECVPKTINFO 49
|
||||
#define IPV6_PKTINFO 50
|
||||
#define IPV6_RECVHOPLIMIT 51
|
||||
#define IPV6_HOPLIMIT 52
|
||||
#define IPV6_RECVHOPOPTS 53
|
||||
#define IPV6_HOPOPTS 54
|
||||
#define IPV6_RTHDRDSTOPTS 55
|
||||
#define IPV6_RECVRTHDR 56
|
||||
#define IPV6_RTHDR 57
|
||||
#define IPV6_RECVDSTOPTS 58
|
||||
#define IPV6_DSTOPTS 59
|
||||
|
||||
#define IPV6_RECVTCLASS 66
|
||||
#define IPV6_TCLASS 67
|
||||
|
||||
/* Obsolete synonyms for the above. */
|
||||
#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
|
||||
#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
|
||||
#define IPV6_RXHOPOPTS IPV6_HOPOPTS
|
||||
#define IPV6_RXDSTOPTS IPV6_DSTOPTS
|
||||
|
||||
/* IPV6_MTU_DISCOVER values. */
|
||||
#define IPV6_PMTUDISC_DONT 0 /* Never send DF frames. */
|
||||
#define IPV6_PMTUDISC_WANT 1 /* Use per route hints. */
|
||||
#define IPV6_PMTUDISC_DO 2 /* Always DF. */
|
||||
|
||||
/* Socket level values for IPv6. */
|
||||
#define SOL_IPV6 41
|
||||
#define SOL_ICMPV6 58
|
||||
|
||||
/* Routing header options for IPv6. */
|
||||
#define IPV6_RTHDR_LOOSE 0 /* Hop doesn't need to be neighbour. */
|
||||
#define IPV6_RTHDR_STRICT 1 /* Hop must be a neighbour. */
|
||||
|
||||
#define IPV6_RTHDR_TYPE_0 0 /* IPv6 Routing header type 0. */
|
||||
30
tasks/libposix/include/posix/bits/inf.h
Normal file
30
tasks/libposix/include/posix/bits/inf.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/* `INFINITY' constant for IEEE 754 machines.
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _MATH_H
|
||||
# error "Never use <bits/inf.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
/* IEEE positive infinity. */
|
||||
|
||||
#if __GNUC_PREREQ(3,3)
|
||||
# define INFINITY (__builtin_inff())
|
||||
#else
|
||||
# define INFINITY HUGE_VALF
|
||||
#endif
|
||||
28
tasks/libposix/include/posix/bits/initspin.h
Normal file
28
tasks/libposix/include/posix/bits/initspin.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/* Generic definitions for spinlock initializers.
|
||||
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Initial value of a spinlock. Most platforms should use zero,
|
||||
unless they only implement a "test and clear" operation instead of
|
||||
the usual "test and set". */
|
||||
#define __LT_SPINLOCK_INIT 0
|
||||
|
||||
/* Macros for lock initializers, using the above definition. */
|
||||
#define __LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
|
||||
#define __ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
|
||||
#define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT }
|
||||
78
tasks/libposix/include/posix/bits/ioctl-types.h
Normal file
78
tasks/libposix/include/posix/bits/ioctl-types.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/* Structure types for pre-termios terminal ioctls. Linux version.
|
||||
Copyright (C) 1996, 1997, 1999, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_IOCTL_H
|
||||
# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
|
||||
#endif
|
||||
|
||||
/* Get definition of constants for use with `ioctl'. */
|
||||
#include <asm/ioctls.h>
|
||||
|
||||
|
||||
struct winsize
|
||||
{
|
||||
unsigned short int ws_row;
|
||||
unsigned short int ws_col;
|
||||
unsigned short int ws_xpixel;
|
||||
unsigned short int ws_ypixel;
|
||||
};
|
||||
|
||||
#define NCC 8
|
||||
struct termio
|
||||
{
|
||||
unsigned short int c_iflag; /* input mode flags */
|
||||
unsigned short int c_oflag; /* output mode flags */
|
||||
unsigned short int c_cflag; /* control mode flags */
|
||||
unsigned short int c_lflag; /* local mode flags */
|
||||
unsigned char c_line; /* line discipline */
|
||||
unsigned char c_cc[NCC]; /* control characters */
|
||||
};
|
||||
|
||||
/* modem lines */
|
||||
#define TIOCM_LE 0x001
|
||||
#define TIOCM_DTR 0x002
|
||||
#define TIOCM_RTS 0x004
|
||||
#define TIOCM_ST 0x008
|
||||
#define TIOCM_SR 0x010
|
||||
#define TIOCM_CTS 0x020
|
||||
#define TIOCM_CAR 0x040
|
||||
#define TIOCM_RNG 0x080
|
||||
#define TIOCM_DSR 0x100
|
||||
#define TIOCM_CD TIOCM_CAR
|
||||
#define TIOCM_RI TIOCM_RNG
|
||||
|
||||
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
|
||||
|
||||
/* line disciplines */
|
||||
#define N_TTY 0
|
||||
#define N_SLIP 1
|
||||
#define N_MOUSE 2
|
||||
#define N_PPP 3
|
||||
#define N_STRIP 4
|
||||
#define N_AX25 5
|
||||
#define N_X25 6 /* X.25 async */
|
||||
#define N_6PACK 7
|
||||
#define N_MASC 8 /* Mobitex module */
|
||||
#define N_R3964 9 /* Simatic R3964 module */
|
||||
#define N_PROFIBUS_FDL 10 /* Profibus */
|
||||
#define N_IRDA 11 /* Linux IR */
|
||||
#define N_SMSBLOCK 12 /* SMS block mode */
|
||||
#define N_HDLC 13 /* synchronous HDLC */
|
||||
#define N_SYNC_PPP 14 /* synchronous PPP */
|
||||
#define N_HCI 15 /* Bluetooth HCI UART */
|
||||
109
tasks/libposix/include/posix/bits/ioctls.h
Normal file
109
tasks/libposix/include/posix/bits/ioctls.h
Normal file
@@ -0,0 +1,109 @@
|
||||
/* Copyright (C) 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_IOCTL_H
|
||||
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
|
||||
#endif
|
||||
|
||||
/* Use the definitions from the kernel header files. */
|
||||
#include <asm/ioctls.h>
|
||||
|
||||
/* Routing table calls. */
|
||||
#define SIOCADDRT 0x890B /* add routing table entry */
|
||||
#define SIOCDELRT 0x890C /* delete routing table entry */
|
||||
#define SIOCRTMSG 0x890D /* call to routing system */
|
||||
|
||||
/* Socket configuration controls. */
|
||||
#define SIOCGIFNAME 0x8910 /* get iface name */
|
||||
#define SIOCSIFLINK 0x8911 /* set iface channel */
|
||||
#define SIOCGIFCONF 0x8912 /* get iface list */
|
||||
#define SIOCGIFFLAGS 0x8913 /* get flags */
|
||||
#define SIOCSIFFLAGS 0x8914 /* set flags */
|
||||
#define SIOCGIFADDR 0x8915 /* get PA address */
|
||||
#define SIOCSIFADDR 0x8916 /* set PA address */
|
||||
#define SIOCGIFDSTADDR 0x8917 /* get remote PA address */
|
||||
#define SIOCSIFDSTADDR 0x8918 /* set remote PA address */
|
||||
#define SIOCGIFBRDADDR 0x8919 /* get broadcast PA address */
|
||||
#define SIOCSIFBRDADDR 0x891a /* set broadcast PA address */
|
||||
#define SIOCGIFNETMASK 0x891b /* get network PA mask */
|
||||
#define SIOCSIFNETMASK 0x891c /* set network PA mask */
|
||||
#define SIOCGIFMETRIC 0x891d /* get metric */
|
||||
#define SIOCSIFMETRIC 0x891e /* set metric */
|
||||
#define SIOCGIFMEM 0x891f /* get memory address (BSD) */
|
||||
#define SIOCSIFMEM 0x8920 /* set memory address (BSD) */
|
||||
#define SIOCGIFMTU 0x8921 /* get MTU size */
|
||||
#define SIOCSIFMTU 0x8922 /* set MTU size */
|
||||
#define SIOCSIFNAME 0x8923 /* set interface name */
|
||||
#define SIOCSIFHWADDR 0x8924 /* set hardware address */
|
||||
#define SIOCGIFENCAP 0x8925 /* get/set encapsulations */
|
||||
#define SIOCSIFENCAP 0x8926
|
||||
#define SIOCGIFHWADDR 0x8927 /* Get hardware address */
|
||||
#define SIOCGIFSLAVE 0x8929 /* Driver slaving support */
|
||||
#define SIOCSIFSLAVE 0x8930
|
||||
#define SIOCADDMULTI 0x8931 /* Multicast address lists */
|
||||
#define SIOCDELMULTI 0x8932
|
||||
#define SIOCGIFINDEX 0x8933 /* name -> if_index mapping */
|
||||
#define SIOGIFINDEX SIOCGIFINDEX /* misprint compatibility :-) */
|
||||
#define SIOCSIFPFLAGS 0x8934 /* set/get extended flags set */
|
||||
#define SIOCGIFPFLAGS 0x8935
|
||||
#define SIOCDIFADDR 0x8936 /* delete PA address */
|
||||
#define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */
|
||||
#define SIOCGIFCOUNT 0x8938 /* get number of devices */
|
||||
|
||||
#define SIOCGIFBR 0x8940 /* Bridging support */
|
||||
#define SIOCSIFBR 0x8941 /* Set bridging options */
|
||||
|
||||
#define SIOCGIFTXQLEN 0x8942 /* Get the tx queue length */
|
||||
#define SIOCSIFTXQLEN 0x8943 /* Set the tx queue length */
|
||||
|
||||
|
||||
/* ARP cache control calls. */
|
||||
/* 0x8950 - 0x8952 * obsolete calls, don't re-use */
|
||||
#define SIOCDARP 0x8953 /* delete ARP table entry */
|
||||
#define SIOCGARP 0x8954 /* get ARP table entry */
|
||||
#define SIOCSARP 0x8955 /* set ARP table entry */
|
||||
|
||||
/* RARP cache control calls. */
|
||||
#define SIOCDRARP 0x8960 /* delete RARP table entry */
|
||||
#define SIOCGRARP 0x8961 /* get RARP table entry */
|
||||
#define SIOCSRARP 0x8962 /* set RARP table entry */
|
||||
|
||||
/* Driver configuration calls */
|
||||
|
||||
#define SIOCGIFMAP 0x8970 /* Get device parameters */
|
||||
#define SIOCSIFMAP 0x8971 /* Set device parameters */
|
||||
|
||||
/* DLCI configuration calls */
|
||||
|
||||
#define SIOCADDDLCI 0x8980 /* Create new DLCI device */
|
||||
#define SIOCDELDLCI 0x8981 /* Delete DLCI device */
|
||||
|
||||
/* Device private ioctl calls. */
|
||||
|
||||
/* These 16 ioctls are available to devices via the do_ioctl() device
|
||||
vector. Each device should include this file and redefine these
|
||||
names as their own. Because these are device dependent it is a good
|
||||
idea _NOT_ to issue them to random objects and hope. */
|
||||
|
||||
#define SIOCDEVPRIVATE 0x89F0 /* to 89FF */
|
||||
|
||||
/*
|
||||
* These 16 ioctl calls are protocol private
|
||||
*/
|
||||
|
||||
#define SIOCPROTOPRIVATE 0x89E0 /* to 89EF */
|
||||
56
tasks/libposix/include/posix/bits/ipc.h
Normal file
56
tasks/libposix/include/posix/bits/ipc.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/* Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_IPC_H
|
||||
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Mode bits for `msgget', `semget', and `shmget'. */
|
||||
#define IPC_CREAT 01000 /* Create key if key does not exist. */
|
||||
#define IPC_EXCL 02000 /* Fail if key exists. */
|
||||
#define IPC_NOWAIT 04000 /* Return error on wait. */
|
||||
|
||||
/* Control commands for `msgctl', `semctl', and `shmctl'. */
|
||||
#define IPC_RMID 0 /* Remove identifier. */
|
||||
#define IPC_SET 1 /* Set `ipc_perm' options. */
|
||||
#define IPC_STAT 2 /* Get `ipc_perm' options. */
|
||||
#ifdef __USE_GNU
|
||||
# define IPC_INFO 3 /* See ipcs. */
|
||||
#endif
|
||||
|
||||
/* Special key values. */
|
||||
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
|
||||
|
||||
|
||||
/* Data structure used to pass permission information to IPC operations. */
|
||||
struct ipc_perm
|
||||
{
|
||||
__key_t __key; /* Key. */
|
||||
__uid_t uid; /* Owner's user ID. */
|
||||
__gid_t gid; /* Owner's group ID. */
|
||||
__uid_t cuid; /* Creator's user ID. */
|
||||
__gid_t cgid; /* Creator's group ID. */
|
||||
unsigned short int mode; /* Read/write permission. */
|
||||
unsigned short int __pad1;
|
||||
unsigned short int __seq; /* Sequence number. */
|
||||
unsigned short int __pad2;
|
||||
unsigned long int __unused1;
|
||||
unsigned long int __unused2;
|
||||
};
|
||||
68
tasks/libposix/include/posix/bits/kernel_sigaction.h
Normal file
68
tasks/libposix/include/posix/bits/kernel_sigaction.h
Normal file
@@ -0,0 +1,68 @@
|
||||
#ifndef _BITS_SIGACTION_STRUCT_H
|
||||
#define _BITS_SIGACTION_STRUCT_H
|
||||
|
||||
/* This file provides whatever this particular arch's kernel thinks
|
||||
* the sigaction struct should look like... */
|
||||
|
||||
#undef NO_OLD_SIGACTION
|
||||
|
||||
#if defined(__mips__)
|
||||
#undef HAVE_SA_RESTORER
|
||||
/* This is the sigaction structure from the Linux 2.1.24 kernel. */
|
||||
#include <sgidefs.h>
|
||||
struct old_kernel_sigaction {
|
||||
__sighandler_t k_sa_handler;
|
||||
unsigned int sa_flags;
|
||||
unsigned long sa_mask;
|
||||
};
|
||||
#define _KERNEL_NSIG 128
|
||||
#define _KERNEL_NSIG_BPW 32
|
||||
#define _KERNEL_NSIG_WORDS (_KERNEL_NSIG / _KERNEL_NSIG_BPW)
|
||||
|
||||
typedef struct {
|
||||
unsigned long sig[_KERNEL_NSIG_WORDS];
|
||||
} kernel_sigset_t;
|
||||
|
||||
/* This is the sigaction structure from the Linux 2.1.68 kernel. */
|
||||
struct kernel_sigaction {
|
||||
unsigned int sa_flags;
|
||||
__sighandler_t k_sa_handler;
|
||||
kernel_sigset_t sa_mask;
|
||||
void (*sa_restorer)(void);
|
||||
int s_resv[1]; /* reserved */
|
||||
};
|
||||
#elif defined(__ia64__)
|
||||
#define NO_OLD_SIGACTION
|
||||
#undef HAVE_SA_RESTORER
|
||||
struct kernel_sigaction {
|
||||
__sighandler_t k_sa_handler;
|
||||
unsigned long sa_flags;
|
||||
sigset_t sa_mask;
|
||||
};
|
||||
#else
|
||||
#define HAVE_SA_RESTORER
|
||||
/* This is the sigaction structure from the Linux 2.1.20 kernel. */
|
||||
struct old_kernel_sigaction {
|
||||
__sighandler_t k_sa_handler;
|
||||
unsigned long sa_mask;
|
||||
unsigned long sa_flags;
|
||||
void (*sa_restorer) (void);
|
||||
};
|
||||
/* This is the sigaction structure from the Linux 2.1.68 kernel. */
|
||||
struct kernel_sigaction {
|
||||
__sighandler_t k_sa_handler;
|
||||
unsigned long sa_flags;
|
||||
void (*sa_restorer) (void);
|
||||
sigset_t sa_mask;
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef NO_OLD_SIGACTION
|
||||
extern int __syscall_sigaction (int, const struct old_kernel_sigaction *__unbounded,
|
||||
struct old_kernel_sigaction *__unbounded) attribute_hidden;
|
||||
#endif
|
||||
|
||||
extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbounded,
|
||||
struct kernel_sigaction *__unbounded, size_t) attribute_hidden;
|
||||
|
||||
#endif /* _BITS_SIGACTION_STRUCT_H */
|
||||
76
tasks/libposix/include/posix/bits/kernel_stat.h
Normal file
76
tasks/libposix/include/posix/bits/kernel_stat.h
Normal file
@@ -0,0 +1,76 @@
|
||||
#ifndef _BITS_STAT_STRUCT_H
|
||||
#define _BITS_STAT_STRUCT_H
|
||||
|
||||
#ifndef _LIBC
|
||||
#error bits/kernel_stat.h is for internal uClibc use only!
|
||||
#endif
|
||||
|
||||
/* This file provides whatever this particular arch's kernel thinks
|
||||
* struct kernel_stat should look like... It turns out each arch has a
|
||||
* different opinion on the subject... */
|
||||
|
||||
#define STAT_HAVE_NSEC 1
|
||||
|
||||
struct kernel_stat {
|
||||
#if defined(__ARMEB__)
|
||||
unsigned short st_dev;
|
||||
unsigned short __pad1;
|
||||
#else
|
||||
unsigned long st_dev;
|
||||
#endif
|
||||
unsigned long st_ino;
|
||||
unsigned short st_mode;
|
||||
unsigned short st_nlink;
|
||||
unsigned short st_uid;
|
||||
unsigned short st_gid;
|
||||
#if defined(__ARMEB__)
|
||||
unsigned short st_rdev;
|
||||
unsigned short __pad2;
|
||||
#else
|
||||
unsigned long st_rdev;
|
||||
#endif
|
||||
unsigned long st_size;
|
||||
unsigned long st_blksize;
|
||||
unsigned long st_blocks;
|
||||
unsigned long st_atime;
|
||||
unsigned long st_atime_nsec;
|
||||
unsigned long st_mtime;
|
||||
unsigned long st_mtime_nsec;
|
||||
unsigned long st_ctime;
|
||||
unsigned long st_ctime_nsec;
|
||||
unsigned long __unused4;
|
||||
unsigned long __unused5;
|
||||
};
|
||||
|
||||
struct kernel_stat64 {
|
||||
unsigned long long st_dev;
|
||||
unsigned char __pad0[4];
|
||||
|
||||
#define _HAVE_STAT64___ST_INO
|
||||
unsigned long __st_ino;
|
||||
unsigned int st_mode;
|
||||
unsigned int st_nlink;
|
||||
unsigned long st_uid;
|
||||
unsigned long st_gid;
|
||||
|
||||
unsigned long long st_rdev;
|
||||
unsigned char __pad3[4];
|
||||
|
||||
long long st_size;
|
||||
unsigned long st_blksize;
|
||||
unsigned long long st_blocks; /* Number 512-byte blocks allocated. */
|
||||
|
||||
unsigned long st_atime;
|
||||
unsigned long st_atime_nsec;
|
||||
unsigned long st_mtime;
|
||||
unsigned long st_mtime_nsec;
|
||||
unsigned long st_ctime;
|
||||
unsigned long st_ctime_nsec;
|
||||
unsigned long long st_ino;
|
||||
#ifndef __ARM_EABI__
|
||||
} __attribute__((packed));
|
||||
#else
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif /* _BITS_STAT_STRUCT_H */
|
||||
44
tasks/libposix/include/posix/bits/kernel_types.h
Normal file
44
tasks/libposix/include/posix/bits/kernel_types.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Note that we use the exact same include guard #define names
|
||||
* as asm/posix_types.h. This will avoid gratuitous conflicts
|
||||
* with the posix_types.h kernel header, and will ensure that
|
||||
* our private content, and not the kernel header, will win.
|
||||
* -Erik
|
||||
*/
|
||||
#ifndef __ARCH_ARM_POSIX_TYPES_H
|
||||
#define __ARCH_ARM_POSIX_TYPES_H
|
||||
|
||||
typedef unsigned short __kernel_dev_t;
|
||||
typedef unsigned long __kernel_ino_t;
|
||||
typedef unsigned short __kernel_mode_t;
|
||||
typedef unsigned short __kernel_nlink_t;
|
||||
typedef long __kernel_off_t;
|
||||
typedef int __kernel_pid_t;
|
||||
typedef unsigned short __kernel_ipc_pid_t;
|
||||
typedef unsigned short __kernel_uid_t;
|
||||
typedef unsigned short __kernel_gid_t;
|
||||
typedef unsigned int __kernel_size_t;
|
||||
typedef int __kernel_ssize_t;
|
||||
typedef int __kernel_ptrdiff_t;
|
||||
typedef long __kernel_time_t;
|
||||
typedef long __kernel_suseconds_t;
|
||||
typedef long __kernel_clock_t;
|
||||
typedef int __kernel_daddr_t;
|
||||
typedef char * __kernel_caddr_t;
|
||||
typedef unsigned short __kernel_uid16_t;
|
||||
typedef unsigned short __kernel_gid16_t;
|
||||
typedef unsigned int __kernel_uid32_t;
|
||||
typedef unsigned int __kernel_gid32_t;
|
||||
typedef unsigned short __kernel_old_uid_t;
|
||||
typedef unsigned short __kernel_old_gid_t;
|
||||
typedef long long __kernel_loff_t;
|
||||
typedef __kernel_dev_t __kernel_old_dev_t;
|
||||
|
||||
typedef struct {
|
||||
#ifdef __USE_ALL
|
||||
int val[2];
|
||||
#else
|
||||
int __val[2];
|
||||
#endif
|
||||
} __kernel_fsid_t;
|
||||
|
||||
#endif /* __ARCH_ARM_POSIX_TYPES_H */
|
||||
87
tasks/libposix/include/posix/bits/local_lim.h
Normal file
87
tasks/libposix/include/posix/bits/local_lim.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/* Minimum guaranteed maximum values for system limits. Linux version.
|
||||
Copyright (C) 1993-1998,2000,2002,2003,2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* The kernel header pollutes the namespace with the NR_OPEN symbol
|
||||
and defines LINK_MAX although filesystems have different maxima. A
|
||||
similar thing is true for OPEN_MAX: the limit can be changed at
|
||||
runtime and therefore the macro must not be defined. Remove this
|
||||
after including the header if necessary. */
|
||||
#ifndef NR_OPEN
|
||||
# define __undef_NR_OPEN
|
||||
#endif
|
||||
#ifndef LINK_MAX
|
||||
# define __undef_LINK_MAX
|
||||
#endif
|
||||
#ifndef OPEN_MAX
|
||||
# define __undef_OPEN_MAX
|
||||
#endif
|
||||
|
||||
/* The kernel sources contain a file with all the needed information. */
|
||||
#include <linux/limits.h>
|
||||
|
||||
/* Have to remove NR_OPEN? */
|
||||
#ifdef __undef_NR_OPEN
|
||||
# undef NR_OPEN
|
||||
# undef __undef_NR_OPEN
|
||||
#endif
|
||||
/* Have to remove LINK_MAX? */
|
||||
#ifdef __undef_LINK_MAX
|
||||
# undef LINK_MAX
|
||||
# undef __undef_LINK_MAX
|
||||
#endif
|
||||
/* Have to remove OPEN_MAX? */
|
||||
#ifdef __undef_OPEN_MAX
|
||||
# undef OPEN_MAX
|
||||
# undef __undef_OPEN_MAX
|
||||
#endif
|
||||
|
||||
/* The number of data keys per process. */
|
||||
#define _POSIX_THREAD_KEYS_MAX 128
|
||||
/* This is the value this implementation supports. */
|
||||
#define PTHREAD_KEYS_MAX 1024
|
||||
|
||||
/* Controlling the iterations of destructors for thread-specific data. */
|
||||
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
|
||||
/* Number of iterations this implementation does. */
|
||||
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
||||
|
||||
/* The number of threads per process. */
|
||||
#define _POSIX_THREAD_THREADS_MAX 64
|
||||
|
||||
/* Maximum amount by which a process can descrease its asynchronous I/O
|
||||
priority level. */
|
||||
#define AIO_PRIO_DELTA_MAX 20
|
||||
|
||||
/* Minimum size for a thread. We are free to choose a reasonable value. */
|
||||
#define PTHREAD_STACK_MIN 16384
|
||||
|
||||
/* Maximum number of timer expiration overruns. */
|
||||
#define DELAYTIMER_MAX 2147483647
|
||||
|
||||
/* Maximum tty name length. */
|
||||
#define TTY_NAME_MAX 32
|
||||
|
||||
/* Maximum login name length. This is arbitrary. */
|
||||
#define LOGIN_NAME_MAX 256
|
||||
|
||||
/* Maximum host name length. */
|
||||
#define HOST_NAME_MAX 64
|
||||
|
||||
/* Maximum message queue priority level. */
|
||||
#define MQ_PRIO_MAX 32768
|
||||
46
tasks/libposix/include/posix/bits/locale.h
Normal file
46
tasks/libposix/include/posix/bits/locale.h
Normal file
@@ -0,0 +1,46 @@
|
||||
/* Definition of locale category symbol values.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#if !defined _LOCALE_H && !defined _LANGINFO_H
|
||||
# error "Never use <bits/locale.h> directly; include <locale.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_LOCALE_H
|
||||
#define _BITS_LOCALE_H 1
|
||||
|
||||
enum
|
||||
{
|
||||
__LC_CTYPE = 0,
|
||||
__LC_NUMERIC = 1,
|
||||
__LC_TIME = 2,
|
||||
__LC_COLLATE = 3,
|
||||
__LC_MONETARY = 4,
|
||||
__LC_MESSAGES = 5,
|
||||
__LC_ALL = 6,
|
||||
#if 0
|
||||
__LC_PAPER = 7,
|
||||
__LC_NAME = 8,
|
||||
__LC_ADDRESS = 9,
|
||||
__LC_TELEPHONE = 10,
|
||||
__LC_MEASUREMENT = 11,
|
||||
__LC_IDENTIFICATION = 12
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* bits/locale.h */
|
||||
365
tasks/libposix/include/posix/bits/mathcalls.h
Normal file
365
tasks/libposix/include/posix/bits/mathcalls.h
Normal file
@@ -0,0 +1,365 @@
|
||||
/* Prototype declarations for math functions; helper file for <math.h>.
|
||||
Copyright (C) 1996-2002, 2003, 2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* NOTE: Because of the special way this file is used by <math.h>, this
|
||||
file must NOT be protected from multiple inclusion as header files
|
||||
usually are.
|
||||
|
||||
This file provides prototype declarations for the math functions.
|
||||
Most functions are declared using the macro:
|
||||
|
||||
__MATHCALL (NAME,[_r], (ARGS...));
|
||||
|
||||
This means there is a function `NAME' returning `double' and a function
|
||||
`NAMEf' returning `float'. Each place `_Mdouble_' appears in the
|
||||
prototype, that is actually `double' in the prototype for `NAME' and
|
||||
`float' in the prototype for `NAMEf'. Reentrant variant functions are
|
||||
called `NAME_r' and `NAMEf_r'.
|
||||
|
||||
Functions returning other types like `int' are declared using the macro:
|
||||
|
||||
__MATHDECL (TYPE, NAME,[_r], (ARGS...));
|
||||
|
||||
This is just like __MATHCALL but for a function returning `TYPE'
|
||||
instead of `_Mdouble_'. In all of these cases, there is still
|
||||
both a `NAME' and a `NAMEf' that takes `float' arguments.
|
||||
|
||||
Note that there must be no whitespace before the argument passed for
|
||||
NAME, to make token pasting work with -traditional. */
|
||||
|
||||
#ifndef _MATH_H
|
||||
# error "Never include <bits/mathcalls.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Trigonometric functions. */
|
||||
|
||||
_Mdouble_BEGIN_NAMESPACE
|
||||
/* Arc cosine of X. */
|
||||
__MATHCALL (acos,, (_Mdouble_ __x));
|
||||
/* Arc sine of X. */
|
||||
__MATHCALL (asin,, (_Mdouble_ __x));
|
||||
/* Arc tangent of X. */
|
||||
__MATHCALL (atan,, (_Mdouble_ __x));
|
||||
/* Arc tangent of Y/X. */
|
||||
__MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x));
|
||||
|
||||
/* Cosine of X. */
|
||||
__MATHCALL (cos,, (_Mdouble_ __x));
|
||||
/* Sine of X. */
|
||||
__MATHCALL (sin,, (_Mdouble_ __x));
|
||||
/* Tangent of X. */
|
||||
__MATHCALL (tan,, (_Mdouble_ __x));
|
||||
|
||||
/* Hyperbolic functions. */
|
||||
|
||||
/* Hyperbolic cosine of X. */
|
||||
__MATHCALL (cosh,, (_Mdouble_ __x));
|
||||
/* Hyperbolic sine of X. */
|
||||
__MATHCALL (sinh,, (_Mdouble_ __x));
|
||||
/* Hyperbolic tangent of X. */
|
||||
__MATHCALL (tanh,, (_Mdouble_ __x));
|
||||
_Mdouble_END_NAMESPACE
|
||||
|
||||
#if 0 /*def __USE_GNU*/
|
||||
/* Cosine and sine of X. */
|
||||
__MATHDECL (void,sincos,,
|
||||
(_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx));
|
||||
#endif
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Hyperbolic arc cosine of X. */
|
||||
__MATHCALL (acosh,, (_Mdouble_ __x));
|
||||
/* Hyperbolic arc sine of X. */
|
||||
__MATHCALL (asinh,, (_Mdouble_ __x));
|
||||
/* Hyperbolic arc tangent of X. */
|
||||
__MATHCALL (atanh,, (_Mdouble_ __x));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
/* Exponential and logarithmic functions. */
|
||||
|
||||
_Mdouble_BEGIN_NAMESPACE
|
||||
/* Exponential function of X. */
|
||||
__MATHCALL (exp,, (_Mdouble_ __x));
|
||||
|
||||
/* Break VALUE into a normalized fraction and an integral power of 2. */
|
||||
__MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent));
|
||||
|
||||
/* X times (two to the EXP power). */
|
||||
__MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent));
|
||||
|
||||
/* Natural logarithm of X. */
|
||||
__MATHCALL (log,, (_Mdouble_ __x));
|
||||
|
||||
/* Base-ten logarithm of X. */
|
||||
__MATHCALL (log10,, (_Mdouble_ __x));
|
||||
|
||||
/* Break VALUE into integral and fractional parts. */
|
||||
__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr));
|
||||
_Mdouble_END_NAMESPACE
|
||||
|
||||
#if 0 /*def __USE_GNU*/
|
||||
/* A function missing in all standards: compute exponent to base ten. */
|
||||
__MATHCALL (exp10,, (_Mdouble_ __x));
|
||||
/* Another name occasionally used. */
|
||||
__MATHCALL (pow10,, (_Mdouble_ __x));
|
||||
#endif
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Return exp(X) - 1. */
|
||||
__MATHCALL (expm1,, (_Mdouble_ __x));
|
||||
|
||||
/* Return log(1 + X). */
|
||||
__MATHCALL (log1p,, (_Mdouble_ __x));
|
||||
|
||||
/* Return the base 2 signed integral exponent of X. */
|
||||
__MATHCALL (logb,, (_Mdouble_ __x));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Compute base-2 exponential of X. */
|
||||
__MATHCALL (exp2,, (_Mdouble_ __x));
|
||||
|
||||
/* Compute base-2 logarithm of X. */
|
||||
__MATHCALL (log2,, (_Mdouble_ __x));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
|
||||
/* Power functions. */
|
||||
|
||||
_Mdouble_BEGIN_NAMESPACE
|
||||
/* Return X to the Y power. */
|
||||
__MATHCALL (pow,, (_Mdouble_ __x, _Mdouble_ __y));
|
||||
|
||||
/* Return the square root of X. */
|
||||
__MATHCALL (sqrt,, (_Mdouble_ __x));
|
||||
_Mdouble_END_NAMESPACE
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Return `sqrt(X*X + Y*Y)'. */
|
||||
__MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Return the cube root of X. */
|
||||
__MATHCALL (cbrt,, (_Mdouble_ __x));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
|
||||
/* Nearest integer, absolute value, and remainder functions. */
|
||||
|
||||
_Mdouble_BEGIN_NAMESPACE
|
||||
/* Smallest integral value not less than X. */
|
||||
__MATHCALLX (ceil,, (_Mdouble_ __x), (__const__));
|
||||
|
||||
/* Absolute value of X. */
|
||||
__MATHCALLX (fabs,, (_Mdouble_ __x), (__const__));
|
||||
|
||||
/* Largest integer not greater than X. */
|
||||
__MATHCALLX (floor,, (_Mdouble_ __x), (__const__));
|
||||
|
||||
/* Floating-point modulo remainder of X/Y. */
|
||||
__MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y));
|
||||
|
||||
|
||||
/* Return 0 if VALUE is finite or NaN, +1 if it
|
||||
is +Infinity, -1 if it is -Infinity. */
|
||||
__MATHDECL_1 (int,__isinf,, (_Mdouble_ __value)) __attribute__ ((__const__));
|
||||
|
||||
/* Return nonzero if VALUE is finite and not NaN. */
|
||||
__MATHDECL_1 (int,__finite,, (_Mdouble_ __value)) __attribute__ ((__const__));
|
||||
_Mdouble_END_NAMESPACE
|
||||
|
||||
#ifdef __USE_MISC
|
||||
/* Return 0 if VALUE is finite or NaN, +1 if it
|
||||
is +Infinity, -1 if it is -Infinity. */
|
||||
__MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__));
|
||||
|
||||
/* Return nonzero if VALUE is finite and not NaN. */
|
||||
__MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__));
|
||||
|
||||
/* Return the remainder of X/Y. */
|
||||
__MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y));
|
||||
|
||||
|
||||
/* Return the fractional part of X after dividing out `ilogb (X)'. */
|
||||
__MATHCALL (significand,, (_Mdouble_ __x));
|
||||
#endif /* Use misc. */
|
||||
|
||||
#if defined __USE_MISC || defined __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Return X with its signed changed to Y's. */
|
||||
__MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Return representation of NaN for double type. */
|
||||
__MATHCALLX (nan,, (__const char *__tagb), (__const__));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
|
||||
/* Return nonzero if VALUE is not a number. */
|
||||
__MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN
|
||||
/* Return nonzero if VALUE is not a number. */
|
||||
__MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
|
||||
|
||||
/* Bessel functions. */
|
||||
__MATHCALL (j0,, (_Mdouble_));
|
||||
__MATHCALL (j1,, (_Mdouble_));
|
||||
__MATHCALL (jn,, (int, _Mdouble_));
|
||||
__MATHCALL (y0,, (_Mdouble_));
|
||||
__MATHCALL (y1,, (_Mdouble_));
|
||||
__MATHCALL (yn,, (int, _Mdouble_));
|
||||
#endif
|
||||
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Error and gamma functions. */
|
||||
__MATHCALL (erf,, (_Mdouble_));
|
||||
__MATHCALL (erfc,, (_Mdouble_));
|
||||
__MATHCALL (lgamma,, (_Mdouble_));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* True gamma function. */
|
||||
__MATHCALL (tgamma,, (_Mdouble_));
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN
|
||||
/* Obsolete alias for `lgamma'. */
|
||||
__MATHCALL (gamma,, (_Mdouble_));
|
||||
#endif
|
||||
|
||||
#ifdef __USE_MISC
|
||||
/* Reentrant version of lgamma. This function uses the global variable
|
||||
`signgam'. The reentrant version instead takes a pointer and stores
|
||||
the value through it. */
|
||||
__MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
|
||||
#endif
|
||||
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
|
||||
__BEGIN_NAMESPACE_C99
|
||||
/* Return the integer nearest X in the direction of the
|
||||
prevailing rounding mode. */
|
||||
__MATHCALL (rint,, (_Mdouble_ __x));
|
||||
|
||||
/* Return X + epsilon if X < Y, X - epsilon if X > Y. */
|
||||
__MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
|
||||
# if defined __USE_ISOC99 && !defined __LDBL_COMPAT
|
||||
__MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__));
|
||||
# endif
|
||||
|
||||
/* Return the remainder of integer divison X / Y with infinite precision. */
|
||||
__MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y));
|
||||
|
||||
# if defined __USE_MISC || defined __USE_ISOC99
|
||||
/* Return X times (2 to the Nth power). */
|
||||
__MATHCALL (scalbn,, (_Mdouble_ __x, int __n));
|
||||
# endif
|
||||
|
||||
/* Return the binary exponent of X, which must be nonzero. */
|
||||
__MATHDECL (int,ilogb,, (_Mdouble_ __x));
|
||||
#endif
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
/* Return X times (2 to the Nth power). */
|
||||
__MATHCALL (scalbln,, (_Mdouble_ __x, long int __n));
|
||||
|
||||
/* Round X to integral value in floating-point format using current
|
||||
rounding direction, but do not raise inexact exception. */
|
||||
__MATHCALL (nearbyint,, (_Mdouble_ __x));
|
||||
|
||||
/* Round X to nearest integral value, rounding halfway cases away from
|
||||
zero. */
|
||||
__MATHCALLX (round,, (_Mdouble_ __x), (__const__));
|
||||
|
||||
/* Round X to the integral value in floating-point format nearest but
|
||||
not larger in magnitude. */
|
||||
__MATHCALLX (trunc,, (_Mdouble_ __x), (__const__));
|
||||
|
||||
/* Compute remainder of X and Y and put in *QUO a value with sign of x/y
|
||||
and magnitude congruent `mod 2^n' to the magnitude of the integral
|
||||
quotient x/y, with n >= 3. */
|
||||
__MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo));
|
||||
|
||||
|
||||
/* Conversion functions. */
|
||||
|
||||
/* Round X to nearest integral value according to current rounding
|
||||
direction. */
|
||||
__MATHDECL (long int,lrint,, (_Mdouble_ __x));
|
||||
__MATHDECL (long long int,llrint,, (_Mdouble_ __x));
|
||||
|
||||
/* Round X to nearest integral value, rounding halfway cases away from
|
||||
zero. */
|
||||
__MATHDECL (long int,lround,, (_Mdouble_ __x));
|
||||
__MATHDECL (long long int,llround,, (_Mdouble_ __x));
|
||||
|
||||
|
||||
/* Return positive difference between X and Y. */
|
||||
__MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y));
|
||||
|
||||
/* Return maximum numeric value from X and Y. */
|
||||
__MATHCALL (fmax,, (_Mdouble_ __x, _Mdouble_ __y));
|
||||
|
||||
/* Return minimum numeric value from X and Y. */
|
||||
__MATHCALL (fmin,, (_Mdouble_ __x, _Mdouble_ __y));
|
||||
|
||||
|
||||
/* Classify given number. */
|
||||
__MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value))
|
||||
__attribute__ ((__const__));
|
||||
|
||||
/* Test for negative number. */
|
||||
__MATHDECL_1 (int, __signbit,, (_Mdouble_ __value))
|
||||
__attribute__ ((__const__));
|
||||
|
||||
|
||||
/* Multiply-add function computed as a ternary operation. */
|
||||
__MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
|
||||
#endif /* Use ISO C99. */
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
|
||||
__END_NAMESPACE_C99
|
||||
#endif
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
|
||||
/* Return X times (2 to the Nth power). */
|
||||
__MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n));
|
||||
#endif
|
||||
44
tasks/libposix/include/posix/bits/mathdef.h
Normal file
44
tasks/libposix/include/posix/bits/mathdef.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright (C) 1999, 2000, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#if !defined _MATH_H && !defined _COMPLEX_H
|
||||
# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
|
||||
#endif
|
||||
|
||||
#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
|
||||
# define _MATH_H_MATHDEF 1
|
||||
|
||||
/* GCC does not promote `float' values to `double'. */
|
||||
typedef float float_t; /* `float' expressions are evaluated as
|
||||
`float'. */
|
||||
typedef double double_t; /* `double' expressions are evaluated as
|
||||
`double'. */
|
||||
|
||||
/* The values returned by `ilogb' for 0 and NaN respectively. */
|
||||
# define FP_ILOGB0 (-2147483647)
|
||||
# define FP_ILOGBNAN (2147483647)
|
||||
|
||||
#endif /* ISO C99 */
|
||||
|
||||
#ifndef __NO_LONG_DOUBLE_MATH
|
||||
/* Signal that we do not really have a `long double'. This disables the
|
||||
declaration of all the `long double' function variants. */
|
||||
/* XXX The FPA does support this but the patterns in GCC are currently
|
||||
turned off. */
|
||||
# define __NO_LONG_DOUBLE_MATH 1
|
||||
#endif
|
||||
12
tasks/libposix/include/posix/bits/mathinline.h
Normal file
12
tasks/libposix/include/posix/bits/mathinline.h
Normal file
@@ -0,0 +1,12 @@
|
||||
/* This file should provide inline versions of math functions.
|
||||
|
||||
Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
|
||||
|
||||
This file should define __MATH_INLINES if functions are actually defined as
|
||||
inlines. */
|
||||
|
||||
#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
|
||||
|
||||
/* Here goes the real code. */
|
||||
|
||||
#endif
|
||||
103
tasks/libposix/include/posix/bits/mman.h
Normal file
103
tasks/libposix/include/posix/bits/mman.h
Normal file
@@ -0,0 +1,103 @@
|
||||
/* Definitions for POSIX memory map interface. Linux/ARM version.
|
||||
Copyright (C) 1997, 2000, 2003, 2005, 2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_MMAN_H
|
||||
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
|
||||
#endif
|
||||
|
||||
/* The following definitions basically come from the kernel headers.
|
||||
But the kernel header is not namespace clean. */
|
||||
|
||||
|
||||
/* Protections are chosen from these bits, OR'd together. The
|
||||
implementation does not necessarily support PROT_EXEC or PROT_WRITE
|
||||
without PROT_READ. The only guarantees are that no writing will be
|
||||
allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
|
||||
|
||||
#define PROT_READ 0x1 /* Page can be read. */
|
||||
#define PROT_WRITE 0x2 /* Page can be written. */
|
||||
#define PROT_EXEC 0x4 /* Page can be executed. */
|
||||
#define PROT_NONE 0x0 /* Page can not be accessed. */
|
||||
#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of
|
||||
growsdown vma (mprotect only). */
|
||||
#define PROT_GROWSUP 0x02000000 /* Extend change to start of
|
||||
growsup vma (mprotect only). */
|
||||
|
||||
/* Sharing types (must choose one and only one of these). */
|
||||
#define MAP_SHARED 0x01 /* Share changes. */
|
||||
#define MAP_PRIVATE 0x02 /* Changes are private. */
|
||||
#ifdef __USE_MISC
|
||||
# define MAP_TYPE 0x0f /* Mask for type of mapping. */
|
||||
#endif
|
||||
|
||||
/* Other flags. */
|
||||
#define MAP_FIXED 0x10 /* Interpret addr exactly. */
|
||||
#ifdef __USE_MISC
|
||||
# define MAP_FILE 0
|
||||
# define MAP_ANONYMOUS 0x20 /* Don't use a file. */
|
||||
# define MAP_ANON MAP_ANONYMOUS
|
||||
#endif
|
||||
|
||||
/* These are Linux-specific. */
|
||||
#ifdef __USE_MISC
|
||||
# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
|
||||
# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
|
||||
# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
|
||||
# define MAP_LOCKED 0x02000 /* Lock the mapping. */
|
||||
# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
|
||||
# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
|
||||
# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
|
||||
#endif
|
||||
|
||||
/* Flags to `msync'. */
|
||||
#define MS_ASYNC 1 /* Sync memory asynchronously. */
|
||||
#define MS_SYNC 4 /* Synchronous memory sync. */
|
||||
#define MS_INVALIDATE 2 /* Invalidate the caches. */
|
||||
|
||||
/* Flags for `mlockall'. */
|
||||
#define MCL_CURRENT 1 /* Lock all currently mapped pages. */
|
||||
#define MCL_FUTURE 2 /* Lock all additions to address
|
||||
space. */
|
||||
|
||||
/* Flags for `mremap'. */
|
||||
#ifdef __USE_GNU
|
||||
# define MREMAP_MAYMOVE 1
|
||||
# define MREMAP_FIXED 2
|
||||
#endif
|
||||
|
||||
/* Advice to `madvise'. */
|
||||
#ifdef __USE_BSD
|
||||
# define MADV_NORMAL 0 /* No further special treatment. */
|
||||
# define MADV_RANDOM 1 /* Expect random page references. */
|
||||
# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */
|
||||
# define MADV_WILLNEED 3 /* Will need these pages. */
|
||||
# define MADV_DONTNEED 4 /* Don't need these pages. */
|
||||
# define MADV_REMOVE 9 /* Remove these pages and resources. */
|
||||
# define MADV_DONTFORK 10 /* Do not inherit across fork. */
|
||||
# define MADV_DOFORK 11 /* Do inherit across fork. */
|
||||
#endif
|
||||
|
||||
/* The POSIX people had to invent similar names for the same things. */
|
||||
#ifdef __USE_XOPEN2K
|
||||
# define POSIX_MADV_NORMAL 0 /* No further special treatment. */
|
||||
# define POSIX_MADV_RANDOM 1 /* Expect random page references. */
|
||||
# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */
|
||||
# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */
|
||||
# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */
|
||||
#endif
|
||||
32
tasks/libposix/include/posix/bits/mqueue.h
Normal file
32
tasks/libposix/include/posix/bits/mqueue.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _MQUEUE_H
|
||||
# error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
|
||||
#endif
|
||||
|
||||
typedef int mqd_t;
|
||||
|
||||
struct mq_attr
|
||||
{
|
||||
long int mq_flags; /* Message queue flags. */
|
||||
long int mq_maxmsg; /* Maximum number of messages. */
|
||||
long int mq_msgsize; /* Maximum message size. */
|
||||
long int mq_curmsgs; /* Number of messages currently queued. */
|
||||
long int __pad[4];
|
||||
};
|
||||
77
tasks/libposix/include/posix/bits/msq.h
Normal file
77
tasks/libposix/include/posix/bits/msq.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/* Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_MSG_H
|
||||
# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Define options for message queue functions. */
|
||||
#define MSG_NOERROR 010000 /* no error if message is too big */
|
||||
#ifdef __USE_GNU
|
||||
# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
|
||||
#endif
|
||||
|
||||
/* Types used in the structure definition. */
|
||||
typedef unsigned long int msgqnum_t;
|
||||
typedef unsigned long int msglen_t;
|
||||
|
||||
|
||||
/* Structure of record for one message inside the kernel.
|
||||
The type `struct msg' is opaque. */
|
||||
struct msqid_ds
|
||||
{
|
||||
struct ipc_perm msg_perm; /* structure describing operation permission */
|
||||
__time_t msg_stime; /* time of last msgsnd command */
|
||||
unsigned long int __unused1;
|
||||
__time_t msg_rtime; /* time of last msgrcv command */
|
||||
unsigned long int __unused2;
|
||||
__time_t msg_ctime; /* time of last change */
|
||||
unsigned long int __unused3;
|
||||
unsigned long int __msg_cbytes; /* current number of bytes on queue */
|
||||
msgqnum_t msg_qnum; /* number of messages currently on queue */
|
||||
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
|
||||
__pid_t msg_lspid; /* pid of last msgsnd() */
|
||||
__pid_t msg_lrpid; /* pid of last msgrcv() */
|
||||
unsigned long int __unused4;
|
||||
unsigned long int __unused5;
|
||||
};
|
||||
|
||||
#ifdef __USE_MISC
|
||||
|
||||
# define msg_cbytes __msg_cbytes
|
||||
|
||||
/* ipcs ctl commands */
|
||||
# define MSG_STAT 11
|
||||
# define MSG_INFO 12
|
||||
|
||||
/* buffer for msgctl calls IPC_INFO, MSG_INFO */
|
||||
struct msginfo
|
||||
{
|
||||
int msgpool;
|
||||
int msgmap;
|
||||
int msgmax;
|
||||
int msgmnb;
|
||||
int msgmni;
|
||||
int msgssz;
|
||||
int msgtql;
|
||||
unsigned short int msgseg;
|
||||
};
|
||||
|
||||
#endif /* __USE_MISC */
|
||||
53
tasks/libposix/include/posix/bits/nan.h
Normal file
53
tasks/libposix/include/posix/bits/nan.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/* `NAN' constant for IEEE 754 machines.
|
||||
Copyright (C) 1992,1996,1997,1999,2004,2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _MATH_H
|
||||
# error "Never use <bits/nan.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* IEEE Not A Number. */
|
||||
|
||||
#if __GNUC_PREREQ(3,3)
|
||||
|
||||
# define NAN (__builtin_nanf (""))
|
||||
|
||||
#elif defined __GNUC__
|
||||
|
||||
# define NAN \
|
||||
(__extension__ \
|
||||
((union { unsigned __l __attribute__ ((__mode__ (__SI__))); float __d; }) \
|
||||
{ __l: 0x7fc00000UL }).__d)
|
||||
|
||||
#else
|
||||
|
||||
# include <endian.h>
|
||||
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# define __nan_bytes { 0x7f, 0xc0, 0, 0 }
|
||||
# endif
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
# define __nan_bytes { 0, 0, 0xc0, 0x7f }
|
||||
# endif
|
||||
|
||||
static union { unsigned char __c[4]; float __d; } __nan_union
|
||||
__attribute_used__ = { __nan_bytes };
|
||||
# define NAN (__nan_union.__d)
|
||||
|
||||
#endif /* GCC. */
|
||||
33
tasks/libposix/include/posix/bits/netdb.h
Normal file
33
tasks/libposix/include/posix/bits/netdb.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _NETDB_H
|
||||
# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Description of data base entry for a single network. NOTE: here a
|
||||
poor assumption is made. The network number is expected to fit
|
||||
into an unsigned long int variable. */
|
||||
struct netent
|
||||
{
|
||||
char *n_name; /* Official name of network. */
|
||||
char **n_aliases; /* Alias list. */
|
||||
int n_addrtype; /* Net address type. */
|
||||
uint32_t n_net; /* Network number. */
|
||||
};
|
||||
50
tasks/libposix/include/posix/bits/poll.h
Normal file
50
tasks/libposix/include/posix/bits/poll.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/* Copyright (C) 1997, 2001, 2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_POLL_H
|
||||
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
|
||||
#endif
|
||||
|
||||
/* Event types that can be polled for. These bits may be set in `events'
|
||||
to indicate the interesting event types; they will appear in `revents'
|
||||
to indicate the status of the file descriptor. */
|
||||
#define POLLIN 0x001 /* There is data to read. */
|
||||
#define POLLPRI 0x002 /* There is urgent data to read. */
|
||||
#define POLLOUT 0x004 /* Writing now will not block. */
|
||||
|
||||
#ifdef __USE_XOPEN
|
||||
/* These values are defined in XPG4.2. */
|
||||
# define POLLRDNORM 0x040 /* Normal data may be read. */
|
||||
# define POLLRDBAND 0x080 /* Priority data may be read. */
|
||||
# define POLLWRNORM 0x100 /* Writing now will not block. */
|
||||
# define POLLWRBAND 0x200 /* Priority data may be written. */
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
/* These are extensions for Linux. */
|
||||
# define POLLMSG 0x400
|
||||
# define POLLREMOVE 0x1000
|
||||
# define POLLRDHUP 0x2000
|
||||
#endif
|
||||
|
||||
/* Event types always implicitly polled for. These bits need not be set in
|
||||
`events', but they will appear in `revents' to indicate the status of
|
||||
the file descriptor. */
|
||||
#define POLLERR 0x008 /* Error condition. */
|
||||
#define POLLHUP 0x010 /* Hung up. */
|
||||
#define POLLNVAL 0x020 /* Invalid polling request. */
|
||||
169
tasks/libposix/include/posix/bits/posix1_lim.h
Normal file
169
tasks/libposix/include/posix/bits/posix1_lim.h
Normal file
@@ -0,0 +1,169 @@
|
||||
/* Copyright (C) 1991-1993,96,98,2000-2003,2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/*
|
||||
* POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
|
||||
*
|
||||
* Never include this file directly; use <limits.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_POSIX1_LIM_H
|
||||
#define _BITS_POSIX1_LIM_H 1
|
||||
|
||||
|
||||
/* These are the standard-mandated minimum values. */
|
||||
|
||||
/* Minimum number of operations in one list I/O call. */
|
||||
#define _POSIX_AIO_LISTIO_MAX 2
|
||||
|
||||
/* Minimal number of outstanding asynchronous I/O operations. */
|
||||
#define _POSIX_AIO_MAX 1
|
||||
|
||||
/* Maximum length of arguments to `execve', including environment. */
|
||||
#define _POSIX_ARG_MAX 4096
|
||||
|
||||
/* Maximum simultaneous processes per real user ID. */
|
||||
#ifdef __USE_XOPEN2K
|
||||
# define _POSIX_CHILD_MAX 25
|
||||
#else
|
||||
# define _POSIX_CHILD_MAX 6
|
||||
#endif
|
||||
|
||||
/* Minimal number of timer expiration overruns. */
|
||||
#define _POSIX_DELAYTIMER_MAX 32
|
||||
|
||||
/* Maximum length of a host name (not including the terminating null)
|
||||
as returned from the GETHOSTNAME function. */
|
||||
#define _POSIX_HOST_NAME_MAX 255
|
||||
|
||||
/* Maximum link count of a file. */
|
||||
#define _POSIX_LINK_MAX 8
|
||||
|
||||
/* Maximum length of login name. */
|
||||
#define _POSIX_LOGIN_NAME_MAX 9
|
||||
|
||||
/* Number of bytes in a terminal canonical input queue. */
|
||||
#define _POSIX_MAX_CANON 255
|
||||
|
||||
/* Number of bytes for which space will be
|
||||
available in a terminal input queue. */
|
||||
#define _POSIX_MAX_INPUT 255
|
||||
|
||||
/* Maximum number of message queues open for a process. */
|
||||
#define _POSIX_MQ_OPEN_MAX 8
|
||||
|
||||
/* Maximum number of supported message priorities. */
|
||||
#define _POSIX_MQ_PRIO_MAX 32
|
||||
|
||||
/* Number of bytes in a filename. */
|
||||
#define _POSIX_NAME_MAX 14
|
||||
|
||||
/* Number of simultaneous supplementary group IDs per process. */
|
||||
#ifdef __USE_XOPEN2K
|
||||
# define _POSIX_NGROUPS_MAX 8
|
||||
#else
|
||||
# define _POSIX_NGROUPS_MAX 0
|
||||
#endif
|
||||
|
||||
/* Number of files one process can have open at once. */
|
||||
#ifdef __USE_XOPEN2K
|
||||
# define _POSIX_OPEN_MAX 20
|
||||
#else
|
||||
# define _POSIX_OPEN_MAX 16
|
||||
#endif
|
||||
|
||||
/* Number of descriptors that a process may examine with `pselect' or
|
||||
`select'. */
|
||||
#define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX
|
||||
|
||||
/* Number of bytes in a pathname. */
|
||||
#define _POSIX_PATH_MAX 256
|
||||
|
||||
/* Number of bytes than can be written atomically to a pipe. */
|
||||
#define _POSIX_PIPE_BUF 512
|
||||
|
||||
/* The number of repeated occurrences of a BRE permitted by the
|
||||
REGEXEC and REGCOMP functions when using the interval notation. */
|
||||
#define _POSIX_RE_DUP_MAX 255
|
||||
|
||||
/* Minimal number of realtime signals reserved for the application. */
|
||||
#define _POSIX_RTSIG_MAX 8
|
||||
|
||||
/* Number of semaphores a process can have. */
|
||||
#define _POSIX_SEM_NSEMS_MAX 256
|
||||
|
||||
/* Maximal value of a semaphore. */
|
||||
#define _POSIX_SEM_VALUE_MAX 32767
|
||||
|
||||
/* Number of pending realtime signals. */
|
||||
#define _POSIX_SIGQUEUE_MAX 32
|
||||
|
||||
/* Largest value of a `ssize_t'. */
|
||||
#define _POSIX_SSIZE_MAX 32767
|
||||
|
||||
/* Number of streams a process can have open at once. */
|
||||
#define _POSIX_STREAM_MAX 8
|
||||
|
||||
/* The number of bytes in a symbolic link. */
|
||||
#define _POSIX_SYMLINK_MAX 255
|
||||
|
||||
/* The number of symbolic links that can be traversed in the
|
||||
resolution of a pathname in the absence of a loop. */
|
||||
#define _POSIX_SYMLOOP_MAX 8
|
||||
|
||||
/* Number of timer for a process. */
|
||||
#define _POSIX_TIMER_MAX 32
|
||||
|
||||
/* Maximum number of characters in a tty name. */
|
||||
#define _POSIX_TTY_NAME_MAX 9
|
||||
|
||||
/* Maximum length of a timezone name (element of `tzname'). */
|
||||
#define _POSIX_TZNAME_MAX 6
|
||||
|
||||
/* Maximum number of connections that can be queued on a socket. */
|
||||
#define _POSIX_QLIMIT 1
|
||||
|
||||
/* Maximum number of bytes that can be buffered on a socket for send
|
||||
or receive. */
|
||||
#define _POSIX_HIWAT _POSIX_PIPE_BUF
|
||||
|
||||
/* Maximum number of elements in an `iovec' array. */
|
||||
#define _POSIX_UIO_MAXIOV 16
|
||||
|
||||
/* Maximum clock resolution in nanoseconds. */
|
||||
#define _POSIX_CLOCKRES_MIN 20000000
|
||||
|
||||
|
||||
/* Get the implementation-specific values for the above. */
|
||||
#include <bits/local_lim.h>
|
||||
#include <bits/uClibc_local_lim.h>
|
||||
|
||||
|
||||
#ifndef SSIZE_MAX
|
||||
# define SSIZE_MAX LONG_MAX
|
||||
#endif
|
||||
|
||||
|
||||
/* This value is a guaranteed minimum maximum.
|
||||
The current maximum can be got from `sysconf'. */
|
||||
|
||||
#ifndef NGROUPS_MAX
|
||||
# define NGROUPS_MAX 8
|
||||
#endif
|
||||
|
||||
#endif /* bits/posix1_lim.h */
|
||||
91
tasks/libposix/include/posix/bits/posix2_lim.h
Normal file
91
tasks/libposix/include/posix/bits/posix2_lim.h
Normal file
@@ -0,0 +1,91 @@
|
||||
/* Copyright (C) 1991, 1996, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; include <limits.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_POSIX2_LIM_H
|
||||
#define _BITS_POSIX2_LIM_H 1
|
||||
|
||||
|
||||
/* The maximum `ibase' and `obase' values allowed by the `bc' utility. */
|
||||
#define _POSIX2_BC_BASE_MAX 99
|
||||
|
||||
/* The maximum number of elements allowed in an array by the `bc' utility. */
|
||||
#define _POSIX2_BC_DIM_MAX 2048
|
||||
|
||||
/* The maximum `scale' value allowed by the `bc' utility. */
|
||||
#define _POSIX2_BC_SCALE_MAX 99
|
||||
|
||||
/* The maximum length of a string constant accepted by the `bc' utility. */
|
||||
#define _POSIX2_BC_STRING_MAX 1000
|
||||
|
||||
/* The maximum number of weights that can be assigned to an entry of
|
||||
the LC_COLLATE `order' keyword in the locale definition file. */
|
||||
#define _POSIX2_COLL_WEIGHTS_MAX 2
|
||||
|
||||
/* The maximum number of expressions that can be nested
|
||||
within parentheses by the `expr' utility. */
|
||||
#define _POSIX2_EXPR_NEST_MAX 32
|
||||
|
||||
/* The maximum length, in bytes, of an input line. */
|
||||
#define _POSIX2_LINE_MAX 2048
|
||||
|
||||
/* The maximum number of repeated occurrences of a regular expression
|
||||
permitted when using the interval notation `\{M,N\}'. */
|
||||
#define _POSIX2_RE_DUP_MAX 255
|
||||
|
||||
/* The maximum number of bytes in a character class name. We have no
|
||||
fixed limit, 2048 is a high number. */
|
||||
#define _POSIX2_CHARCLASS_NAME_MAX 14
|
||||
|
||||
|
||||
/* These values are implementation-specific,
|
||||
and may vary within the implementation.
|
||||
Their precise values can be obtained from sysconf. */
|
||||
|
||||
#ifndef BC_BASE_MAX
|
||||
#define BC_BASE_MAX _POSIX2_BC_BASE_MAX
|
||||
#endif
|
||||
#ifndef BC_DIM_MAX
|
||||
#define BC_DIM_MAX _POSIX2_BC_DIM_MAX
|
||||
#endif
|
||||
#ifndef BC_SCALE_MAX
|
||||
#define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX
|
||||
#endif
|
||||
#ifndef BC_STRING_MAX
|
||||
#define BC_STRING_MAX _POSIX2_BC_STRING_MAX
|
||||
#endif
|
||||
#ifndef COLL_WEIGHTS_MAX
|
||||
#define COLL_WEIGHTS_MAX 255
|
||||
#endif
|
||||
#ifndef EXPR_NEST_MAX
|
||||
#define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX
|
||||
#endif
|
||||
#ifndef LINE_MAX
|
||||
#define LINE_MAX _POSIX2_LINE_MAX
|
||||
#endif
|
||||
#ifndef CHARCLASS_NAME_MAX
|
||||
#define CHARCLASS_NAME_MAX 2048
|
||||
#endif
|
||||
|
||||
/* This value is defined like this in regex.h. */
|
||||
#define RE_DUP_MAX (0x7fff)
|
||||
|
||||
#endif /* bits/posix2_lim.h */
|
||||
180
tasks/libposix/include/posix/bits/posix_opt.h
Normal file
180
tasks/libposix/include/posix/bits/posix_opt.h
Normal file
@@ -0,0 +1,180 @@
|
||||
/* Define POSIX options for Linux.
|
||||
Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _POSIX_OPT_H
|
||||
#define _POSIX_OPT_H 1
|
||||
|
||||
/* Job control is supported. */
|
||||
#define _POSIX_JOB_CONTROL 1
|
||||
|
||||
/* Processes have a saved set-user-ID and a saved set-group-ID. */
|
||||
#define _POSIX_SAVED_IDS 1
|
||||
|
||||
/* Priority scheduling is supported. */
|
||||
#define _POSIX_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* Synchronizing file data is supported. */
|
||||
#define _POSIX_SYNCHRONIZED_IO 200112L
|
||||
|
||||
/* The fsync function is present. */
|
||||
#define _POSIX_FSYNC 200112L
|
||||
|
||||
/* Mapping of files to memory is supported. */
|
||||
#define _POSIX_MAPPED_FILES 200112L
|
||||
|
||||
/* Locking of all memory is supported. */
|
||||
#define _POSIX_MEMLOCK 200112L
|
||||
|
||||
/* Locking of ranges of memory is supported. */
|
||||
#define _POSIX_MEMLOCK_RANGE 200112L
|
||||
|
||||
/* Setting of memory protections is supported. */
|
||||
#define _POSIX_MEMORY_PROTECTION 200112L
|
||||
|
||||
/* Only root can change owner of file. */
|
||||
#define _POSIX_CHOWN_RESTRICTED 1
|
||||
|
||||
/* `c_cc' member of 'struct termios' structure can be disabled by
|
||||
using the value _POSIX_VDISABLE. */
|
||||
#define _POSIX_VDISABLE '\0'
|
||||
|
||||
/* Filenames are not silently truncated. */
|
||||
#define _POSIX_NO_TRUNC 1
|
||||
|
||||
/* X/Open realtime support is available. */
|
||||
#define _XOPEN_REALTIME 1
|
||||
|
||||
/* XPG4.2 shared memory is supported. */
|
||||
#define _XOPEN_SHM 1
|
||||
|
||||
/* Tell we have POSIX threads. */
|
||||
#define _POSIX_THREADS 200112L
|
||||
|
||||
/* We have the reentrant functions described in POSIX. */
|
||||
#define _POSIX_REENTRANT_FUNCTIONS 1
|
||||
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
|
||||
|
||||
/* We provide priority scheduling for threads. */
|
||||
#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* We support user-defined stack sizes. */
|
||||
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
|
||||
|
||||
/* We support user-defined stacks. */
|
||||
#define _POSIX_THREAD_ATTR_STACKADDR 200112L
|
||||
|
||||
/* We support POSIX.1b semaphores. */
|
||||
#define _POSIX_SEMAPHORES 200112L
|
||||
|
||||
/* Real-time signals are supported. */
|
||||
#define _POSIX_REALTIME_SIGNALS 200112L
|
||||
|
||||
/* We support asynchronous I/O. */
|
||||
#define _POSIX_ASYNCHRONOUS_IO 200112L
|
||||
#define _POSIX_ASYNC_IO 1
|
||||
/* Alternative name for Unix98. */
|
||||
#define _LFS_ASYNCHRONOUS_IO 1
|
||||
/* Support for prioritization is also available. */
|
||||
#define _POSIX_PRIORITIZED_IO 200112L
|
||||
|
||||
/* The LFS support in asynchronous I/O is also available. */
|
||||
#define _LFS64_ASYNCHRONOUS_IO 1
|
||||
|
||||
#ifdef __UCLIBC_HAS_LFS__
|
||||
/* The rest of the LFS is also available. */
|
||||
#define _LFS_LARGEFILE 1
|
||||
#define _LFS64_LARGEFILE 1
|
||||
#define _LFS64_STDIO 1
|
||||
#endif
|
||||
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks support needs to be checked at runtime. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* Clock support in threads must be also checked at runtime. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
/* Reader/Writer locks are available. */
|
||||
#define _POSIX_READER_WRITER_LOCKS 200112L
|
||||
|
||||
/* We have a POSIX shell. */
|
||||
#define _POSIX_SHELL 1
|
||||
|
||||
/* We support the Timeouts option. */
|
||||
#define _POSIX_TIMEOUTS 200112L
|
||||
|
||||
/* We support spinlocks. */
|
||||
#define _POSIX_SPIN_LOCKS 200112L
|
||||
|
||||
/* The `spawn' function family is supported. */
|
||||
#define _POSIX_SPAWN 200112L
|
||||
|
||||
/* We have POSIX timers. */
|
||||
#define _POSIX_TIMERS 200112L
|
||||
|
||||
/* The barrier functions are available. */
|
||||
#define _POSIX_BARRIERS 200112L
|
||||
|
||||
/* POSIX message queues are available. */
|
||||
#define _POSIX_MESSAGE_PASSING 200112L
|
||||
|
||||
/* Thread process-shared synchronization is supported. */
|
||||
#define _POSIX_THREAD_PROCESS_SHARED 200112L
|
||||
|
||||
/* The monotonic clock might be available. */
|
||||
#define _POSIX_MONOTONIC_CLOCK 0
|
||||
|
||||
/* The clock selection interfaces are available. */
|
||||
#define _POSIX_CLOCK_SELECTION 200112L
|
||||
|
||||
/* Advisory information interfaces are available. */
|
||||
#define _POSIX_ADVISORY_INFO 200112L
|
||||
|
||||
/* IPv6 support is available. */
|
||||
#define _POSIX_IPV6 200112L
|
||||
|
||||
/* Raw socket support is available. */
|
||||
#define _POSIX_RAW_SOCKETS 200112L
|
||||
|
||||
/* We have at least one terminal. */
|
||||
#define _POSIX2_CHAR_TERM 200112L
|
||||
|
||||
/* Neither process nor thread sporadic server interfaces is available. */
|
||||
#define _POSIX_SPORADIC_SERVER -1
|
||||
#define _POSIX_THREAD_SPORADIC_SERVER -1
|
||||
|
||||
/* trace.h is not available. */
|
||||
#define _POSIX_TRACE -1
|
||||
#define _POSIX_TRACE_EVENT_FILTER -1
|
||||
#define _POSIX_TRACE_INHERIT -1
|
||||
#define _POSIX_TRACE_LOG -1
|
||||
|
||||
/* Typed memory objects are not available. */
|
||||
#define _POSIX_TYPED_MEMORY_OBJECTS -1
|
||||
|
||||
/* No support for priority inheritance or protection so far. */
|
||||
#define _POSIX_THREAD_PRIO_INHERIT -1
|
||||
#define _POSIX_THREAD_PRIO_PROTECT -1
|
||||
|
||||
#endif /* posix_opt.h */
|
||||
142
tasks/libposix/include/posix/bits/pthreadtypes.h
Normal file
142
tasks/libposix/include/posix/bits/pthreadtypes.h
Normal file
@@ -0,0 +1,142 @@
|
||||
/* Linuxthreads - a simple clone()-based implementation of Posix */
|
||||
/* threads for Linux. */
|
||||
/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */
|
||||
/* */
|
||||
/* This program is free software; you can redistribute it and/or */
|
||||
/* modify it under the terms of the GNU Library General Public License */
|
||||
/* as published by the Free Software Foundation; either version 2 */
|
||||
/* of the License, or (at your option) any later version. */
|
||||
/* */
|
||||
/* This program is distributed in the hope that it will be useful, */
|
||||
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||
/* GNU Library General Public License for more details. */
|
||||
|
||||
#if !defined _BITS_TYPES_H && !defined _PTHREAD_H
|
||||
# error "Never include <bits/pthreadtypes.h> directly; use <sys/types.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_PTHREADTYPES_H
|
||||
#define _BITS_PTHREADTYPES_H 1
|
||||
|
||||
#define __need_schedparam
|
||||
#include <bits/sched.h>
|
||||
|
||||
/* Fast locks (not abstract because mutexes and conditions aren't abstract). */
|
||||
struct _pthread_fastlock
|
||||
{
|
||||
long int __status; /* "Free" or "taken" or head of waiting list */
|
||||
int __spinlock; /* Used by compare_and_swap emulation. Also,
|
||||
adaptive SMP lock stores spin count here. */
|
||||
};
|
||||
|
||||
#ifndef _PTHREAD_DESCR_DEFINED
|
||||
/* Thread descriptors */
|
||||
typedef struct _pthread_descr_struct *_pthread_descr;
|
||||
# define _PTHREAD_DESCR_DEFINED
|
||||
#endif
|
||||
|
||||
|
||||
/* Attributes for threads. */
|
||||
typedef struct __pthread_attr_s
|
||||
{
|
||||
int __detachstate;
|
||||
int __schedpolicy;
|
||||
struct __sched_param __schedparam;
|
||||
int __inheritsched;
|
||||
int __scope;
|
||||
size_t __guardsize;
|
||||
int __stackaddr_set;
|
||||
void *__stackaddr;
|
||||
size_t __stacksize;
|
||||
} pthread_attr_t;
|
||||
|
||||
|
||||
/* Conditions (not abstract because of PTHREAD_COND_INITIALIZER */
|
||||
typedef struct
|
||||
{
|
||||
struct _pthread_fastlock __c_lock; /* Protect against concurrent access */
|
||||
_pthread_descr __c_waiting; /* Threads waiting on this condition */
|
||||
} pthread_cond_t;
|
||||
|
||||
|
||||
/* Attribute for conditionally variables. */
|
||||
typedef struct
|
||||
{
|
||||
int __dummy;
|
||||
} pthread_condattr_t;
|
||||
|
||||
/* Keys for thread-specific data */
|
||||
typedef unsigned int pthread_key_t;
|
||||
|
||||
|
||||
/* Mutexes (not abstract because of PTHREAD_MUTEX_INITIALIZER). */
|
||||
/* (The layout is unnatural to maintain binary compatibility
|
||||
with earlier releases of LinuxThreads.) */
|
||||
typedef struct
|
||||
{
|
||||
int __m_reserved; /* Reserved for future use */
|
||||
int __m_count; /* Depth of recursive locking */
|
||||
_pthread_descr __m_owner; /* Owner thread (if recursive or errcheck) */
|
||||
int __m_kind; /* Mutex kind: fast, recursive or errcheck */
|
||||
struct _pthread_fastlock __m_lock; /* Underlying fast lock */
|
||||
} pthread_mutex_t;
|
||||
|
||||
|
||||
/* Attribute for mutex. */
|
||||
typedef struct
|
||||
{
|
||||
int __mutexkind;
|
||||
} pthread_mutexattr_t;
|
||||
|
||||
|
||||
/* Once-only execution */
|
||||
typedef int pthread_once_t;
|
||||
|
||||
|
||||
#if defined __USE_UNIX98 || defined __USE_XOPEN2K
|
||||
/* Read-write locks. */
|
||||
typedef struct _pthread_rwlock_t
|
||||
{
|
||||
struct _pthread_fastlock __rw_lock; /* Lock to guarantee mutual exclusion */
|
||||
int __rw_readers; /* Number of readers */
|
||||
_pthread_descr __rw_writer; /* Identity of writer, or NULL if none */
|
||||
_pthread_descr __rw_read_waiting; /* Threads waiting for reading */
|
||||
_pthread_descr __rw_write_waiting; /* Threads waiting for writing */
|
||||
int __rw_kind; /* Reader/Writer preference selection */
|
||||
int __rw_pshared; /* Shared between processes or not */
|
||||
} pthread_rwlock_t;
|
||||
|
||||
|
||||
/* Attribute for read-write locks. */
|
||||
typedef struct
|
||||
{
|
||||
int __lockkind;
|
||||
int __pshared;
|
||||
} pthread_rwlockattr_t;
|
||||
#endif
|
||||
|
||||
#ifdef __USE_XOPEN2K
|
||||
/* POSIX spinlock data type. */
|
||||
typedef volatile int pthread_spinlock_t;
|
||||
|
||||
/* POSIX barrier. */
|
||||
typedef struct {
|
||||
struct _pthread_fastlock __ba_lock; /* Lock to guarantee mutual exclusion */
|
||||
int __ba_required; /* Threads needed for completion */
|
||||
int __ba_present; /* Threads waiting */
|
||||
_pthread_descr __ba_waiting; /* Queue of waiting threads */
|
||||
} pthread_barrier_t;
|
||||
|
||||
/* barrier attribute */
|
||||
typedef struct {
|
||||
int __pshared;
|
||||
} pthread_barrierattr_t;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Thread identifiers */
|
||||
typedef unsigned long int pthread_t;
|
||||
|
||||
#endif /* bits/pthreadtypes.h */
|
||||
225
tasks/libposix/include/posix/bits/resource.h
Normal file
225
tasks/libposix/include/posix/bits/resource.h
Normal file
@@ -0,0 +1,225 @@
|
||||
/* Bit values & structures for resource limits. Linux version.
|
||||
Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2004, 2005
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_RESOURCE_H
|
||||
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Transmute defines to enumerations. The macro re-definitions are
|
||||
necessary because some programs want to test for operating system
|
||||
features with #ifdef RUSAGE_SELF. In ISO C the reflexive
|
||||
definition is a no-op. */
|
||||
|
||||
/* Kinds of resource limit. */
|
||||
enum __rlimit_resource
|
||||
{
|
||||
/* Per-process CPU limit, in seconds. */
|
||||
RLIMIT_CPU = 0,
|
||||
#define RLIMIT_CPU RLIMIT_CPU
|
||||
|
||||
/* Largest file that can be created, in bytes. */
|
||||
RLIMIT_FSIZE = 1,
|
||||
#define RLIMIT_FSIZE RLIMIT_FSIZE
|
||||
|
||||
/* Maximum size of data segment, in bytes. */
|
||||
RLIMIT_DATA = 2,
|
||||
#define RLIMIT_DATA RLIMIT_DATA
|
||||
|
||||
/* Maximum size of stack segment, in bytes. */
|
||||
RLIMIT_STACK = 3,
|
||||
#define RLIMIT_STACK RLIMIT_STACK
|
||||
|
||||
/* Largest core file that can be created, in bytes. */
|
||||
RLIMIT_CORE = 4,
|
||||
#define RLIMIT_CORE RLIMIT_CORE
|
||||
|
||||
/* Largest resident set size, in bytes.
|
||||
This affects swapping; processes that are exceeding their
|
||||
resident set size will be more likely to have physical memory
|
||||
taken from them. */
|
||||
__RLIMIT_RSS = 5,
|
||||
#define RLIMIT_RSS __RLIMIT_RSS
|
||||
|
||||
/* Number of open files. */
|
||||
RLIMIT_NOFILE = 7,
|
||||
__RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
|
||||
#define RLIMIT_NOFILE RLIMIT_NOFILE
|
||||
#define RLIMIT_OFILE __RLIMIT_OFILE
|
||||
|
||||
/* Address space limit. */
|
||||
RLIMIT_AS = 9,
|
||||
#define RLIMIT_AS RLIMIT_AS
|
||||
|
||||
/* Number of processes. */
|
||||
__RLIMIT_NPROC = 6,
|
||||
#define RLIMIT_NPROC __RLIMIT_NPROC
|
||||
|
||||
/* Locked-in-memory address space. */
|
||||
__RLIMIT_MEMLOCK = 8,
|
||||
#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK
|
||||
|
||||
/* Maximum number of file locks. */
|
||||
__RLIMIT_LOCKS = 10,
|
||||
#define RLIMIT_LOCKS __RLIMIT_LOCKS
|
||||
|
||||
/* Maximum number of pending signals. */
|
||||
__RLIMIT_SIGPENDING = 11,
|
||||
#define RLIMIT_SIGPENDING __RLIMIT_SIGPENDING
|
||||
|
||||
/* Maximum bytes in POSIX message queues. */
|
||||
__RLIMIT_MSGQUEUE = 12,
|
||||
#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE
|
||||
|
||||
/* Maximum nice priority allowed to raise to.
|
||||
Nice levels 19 .. -20 correspond to 0 .. 39
|
||||
values of this resource limit. */
|
||||
__RLIMIT_NICE = 13,
|
||||
#define RLIMIT_NICE __RLIMIT_NICE
|
||||
|
||||
/* Maximum realtime priority allowed for non-priviledged
|
||||
processes. */
|
||||
__RLIMIT_RTPRIO = 14,
|
||||
#define RLIMIT_RTPRIO __RLIMIT_RTPRIO
|
||||
|
||||
__RLIMIT_NLIMITS = 15,
|
||||
__RLIM_NLIMITS = __RLIMIT_NLIMITS
|
||||
#define RLIMIT_NLIMITS __RLIMIT_NLIMITS
|
||||
#define RLIM_NLIMITS __RLIM_NLIMITS
|
||||
};
|
||||
|
||||
/* Value to indicate that there is no limit. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# define RLIM_INFINITY ((unsigned long int)(~0UL))
|
||||
#else
|
||||
# define RLIM_INFINITY 0xffffffffffffffffuLL
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# define RLIM64_INFINITY 0xffffffffffffffffuLL
|
||||
#endif
|
||||
|
||||
/* We can represent all limits. */
|
||||
#define RLIM_SAVED_MAX RLIM_INFINITY
|
||||
#define RLIM_SAVED_CUR RLIM_INFINITY
|
||||
|
||||
|
||||
/* Type for resource quantity measurement. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
typedef __rlim_t rlim_t;
|
||||
#else
|
||||
typedef __rlim64_t rlim_t;
|
||||
#endif
|
||||
#ifdef __USE_LARGEFILE64
|
||||
typedef __rlim64_t rlim64_t;
|
||||
#endif
|
||||
|
||||
struct rlimit
|
||||
{
|
||||
/* The current (soft) limit. */
|
||||
rlim_t rlim_cur;
|
||||
/* The hard limit. */
|
||||
rlim_t rlim_max;
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct rlimit64
|
||||
{
|
||||
/* The current (soft) limit. */
|
||||
rlim64_t rlim_cur;
|
||||
/* The hard limit. */
|
||||
rlim64_t rlim_max;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Whose usage statistics do you want? */
|
||||
enum __rusage_who
|
||||
{
|
||||
/* The calling process. */
|
||||
RUSAGE_SELF = 0,
|
||||
#define RUSAGE_SELF RUSAGE_SELF
|
||||
|
||||
/* All of its terminated child processes. */
|
||||
RUSAGE_CHILDREN = -1
|
||||
#define RUSAGE_CHILDREN RUSAGE_CHILDREN
|
||||
};
|
||||
|
||||
#define __need_timeval
|
||||
#include <bits/time.h> /* For `struct timeval'. */
|
||||
|
||||
/* Structure which says how much of each resource has been used. */
|
||||
struct rusage
|
||||
{
|
||||
/* Total amount of user time used. */
|
||||
struct timeval ru_utime;
|
||||
/* Total amount of system time used. */
|
||||
struct timeval ru_stime;
|
||||
/* Maximum resident set size (in kilobytes). */
|
||||
long int ru_maxrss;
|
||||
/* Amount of sharing of text segment memory
|
||||
with other processes (kilobyte-seconds). */
|
||||
long int ru_ixrss;
|
||||
/* Amount of data segment memory used (kilobyte-seconds). */
|
||||
long int ru_idrss;
|
||||
/* Amount of stack memory used (kilobyte-seconds). */
|
||||
long int ru_isrss;
|
||||
/* Number of soft page faults (i.e. those serviced by reclaiming
|
||||
a page from the list of pages awaiting reallocation. */
|
||||
long int ru_minflt;
|
||||
/* Number of hard page faults (i.e. those that required I/O). */
|
||||
long int ru_majflt;
|
||||
/* Number of times a process was swapped out of physical memory. */
|
||||
long int ru_nswap;
|
||||
/* Number of input operations via the file system. Note: This
|
||||
and `ru_oublock' do not include operations with the cache. */
|
||||
long int ru_inblock;
|
||||
/* Number of output operations via the file system. */
|
||||
long int ru_oublock;
|
||||
/* Number of IPC messages sent. */
|
||||
long int ru_msgsnd;
|
||||
/* Number of IPC messages received. */
|
||||
long int ru_msgrcv;
|
||||
/* Number of signals delivered. */
|
||||
long int ru_nsignals;
|
||||
/* Number of voluntary context switches, i.e. because the process
|
||||
gave up the process before it had to (usually to wait for some
|
||||
resource to be available). */
|
||||
long int ru_nvcsw;
|
||||
/* Number of involuntary context switches, i.e. a higher priority process
|
||||
became runnable or the current process used up its time slice. */
|
||||
long int ru_nivcsw;
|
||||
};
|
||||
|
||||
/* Priority limits. */
|
||||
#define PRIO_MIN -20 /* Minimum priority a process can have. */
|
||||
#define PRIO_MAX 20 /* Maximum priority a process can have. */
|
||||
|
||||
/* The type of the WHICH argument to `getpriority' and `setpriority',
|
||||
indicating what flavor of entity the WHO argument specifies. */
|
||||
enum __priority_which
|
||||
{
|
||||
PRIO_PROCESS = 0, /* WHO is a process ID. */
|
||||
#define PRIO_PROCESS PRIO_PROCESS
|
||||
PRIO_PGRP = 1, /* WHO is a process group ID. */
|
||||
#define PRIO_PGRP PRIO_PGRP
|
||||
PRIO_USER = 2 /* WHO is a user ID. */
|
||||
#define PRIO_USER PRIO_USER
|
||||
};
|
||||
132
tasks/libposix/include/posix/bits/sched.h
Normal file
132
tasks/libposix/include/posix/bits/sched.h
Normal file
@@ -0,0 +1,132 @@
|
||||
/* Definitions of constants and data structure for POSIX 1003.1b-1993
|
||||
scheduling interface.
|
||||
Copyright (C) 1996-1999,2001-2003,2005,2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef __need_schedparam
|
||||
|
||||
#ifndef _SCHED_H
|
||||
# error "Never include <bits/sched.h> directly; use <sched.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Scheduling algorithms. */
|
||||
#define SCHED_OTHER 0
|
||||
#define SCHED_FIFO 1
|
||||
#define SCHED_RR 2
|
||||
#ifdef __USE_GNU
|
||||
# define SCHED_BATCH 3
|
||||
#endif
|
||||
|
||||
#ifdef __USE_MISC
|
||||
/* Cloning flags. */
|
||||
# define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */
|
||||
# define CLONE_VM 0x00000100 /* Set if VM shared between processes. */
|
||||
# define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */
|
||||
# define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */
|
||||
# define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared. */
|
||||
# define CLONE_PTRACE 0x00002000 /* Set if tracing continues on the child. */
|
||||
# define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to
|
||||
wake it up on mm_release. */
|
||||
# define CLONE_PARENT 0x00008000 /* Set if we want to have the same
|
||||
parent as the cloner. */
|
||||
# define CLONE_THREAD 0x00010000 /* Set to add to same thread group. */
|
||||
# define CLONE_NEWNS 0x00020000 /* Set to create new namespace. */
|
||||
# define CLONE_SYSVSEM 0x00040000 /* Set to shared SVID SEM_UNDO semantics. */
|
||||
# define CLONE_SETTLS 0x00080000 /* Set TLS info. */
|
||||
# define CLONE_PARENT_SETTID 0x00100000 /* Store TID in userlevel buffer
|
||||
before MM copy. */
|
||||
# define CLONE_CHILD_CLEARTID 0x00200000 /* Register exit futex and memory
|
||||
location to clear. */
|
||||
# define CLONE_DETACHED 0x00400000 /* Create clone detached. */
|
||||
# define CLONE_UNTRACED 0x00800000 /* Set if the tracing process can't
|
||||
force CLONE_PTRACE on this clone. */
|
||||
# define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in
|
||||
the child. */
|
||||
# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */
|
||||
#endif
|
||||
|
||||
/* The official definition. */
|
||||
struct sched_param
|
||||
{
|
||||
int __sched_priority;
|
||||
};
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#ifdef __USE_MISC
|
||||
/* Clone current process. */
|
||||
extern int clone (int (*__fn) (void *__arg), void *__child_stack,
|
||||
int __flags, void *__arg, ...) __THROW;
|
||||
|
||||
#if 0
|
||||
/* Unshare the specified resources. */
|
||||
extern int unshare (int __flags) __THROW;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* need schedparam */
|
||||
|
||||
#if !defined __defined_schedparam \
|
||||
&& (defined __need_schedparam || defined _SCHED_H)
|
||||
# define __defined_schedparam 1
|
||||
/* Data structure to describe a process' schedulability. */
|
||||
struct __sched_param
|
||||
{
|
||||
int __sched_priority;
|
||||
};
|
||||
# undef __need_schedparam
|
||||
#endif
|
||||
|
||||
|
||||
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
||||
# define __cpu_set_t_defined
|
||||
/* Size definition for CPU sets. */
|
||||
# define __CPU_SETSIZE 1024
|
||||
# define __NCPUBITS (8 * sizeof (__cpu_mask))
|
||||
|
||||
/* Type for array elements in 'cpu_set'. */
|
||||
typedef unsigned long int __cpu_mask;
|
||||
|
||||
/* Basic access functions. */
|
||||
# define __CPUELT(cpu) ((cpu) / __NCPUBITS)
|
||||
# define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
|
||||
|
||||
/* Data structure to describe CPU mask. */
|
||||
typedef struct
|
||||
{
|
||||
__cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS];
|
||||
} cpu_set_t;
|
||||
|
||||
/* Access functions for CPU masks. */
|
||||
# define __CPU_ZERO(cpusetp) \
|
||||
do { \
|
||||
unsigned int __i; \
|
||||
cpu_set_t *__arr = (cpusetp); \
|
||||
for (__i = 0; __i < sizeof (cpu_set_t) / sizeof (__cpu_mask); ++__i) \
|
||||
__arr->__bits[__i] = 0; \
|
||||
} while (0)
|
||||
# define __CPU_SET(cpu, cpusetp) \
|
||||
((cpusetp)->__bits[__CPUELT (cpu)] |= __CPUMASK (cpu))
|
||||
# define __CPU_CLR(cpu, cpusetp) \
|
||||
((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu))
|
||||
# define __CPU_ISSET(cpu, cpusetp) \
|
||||
(((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0)
|
||||
#endif
|
||||
35
tasks/libposix/include/posix/bits/select.h
Normal file
35
tasks/libposix/include/posix/bits/select.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_SELECT_H
|
||||
# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* We don't use `memset' because this would require a prototype and
|
||||
the array isn't too big. */
|
||||
#define __FD_ZERO(s) \
|
||||
do { \
|
||||
unsigned int __i; \
|
||||
fd_set *__arr = (s); \
|
||||
for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
|
||||
__FDS_BITS (__arr)[__i] = 0; \
|
||||
} while (0)
|
||||
#define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
|
||||
#define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
|
||||
#define __FD_ISSET(d, s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
|
||||
87
tasks/libposix/include/posix/bits/sem.h
Normal file
87
tasks/libposix/include/posix/bits/sem.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/* Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_SEM_H
|
||||
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Flags for `semop'. */
|
||||
#define SEM_UNDO 0x1000 /* undo the operation on exit */
|
||||
|
||||
/* Commands for `semctl'. */
|
||||
#define GETPID 11 /* get sempid */
|
||||
#define GETVAL 12 /* get semval */
|
||||
#define GETALL 13 /* get all semval's */
|
||||
#define GETNCNT 14 /* get semncnt */
|
||||
#define GETZCNT 15 /* get semzcnt */
|
||||
#define SETVAL 16 /* set semval */
|
||||
#define SETALL 17 /* set all semval's */
|
||||
|
||||
|
||||
/* Data structure describing a set of semaphores. */
|
||||
struct semid_ds
|
||||
{
|
||||
struct ipc_perm sem_perm; /* operation permission struct */
|
||||
__time_t sem_otime; /* last semop() time */
|
||||
unsigned long int __unused1;
|
||||
__time_t sem_ctime; /* last time changed by semctl() */
|
||||
unsigned long int __unused2;
|
||||
unsigned long int sem_nsems; /* number of semaphores in set */
|
||||
unsigned long int __unused3;
|
||||
unsigned long int __unused4;
|
||||
};
|
||||
|
||||
/* The user should define a union like the following to use it for arguments
|
||||
for `semctl'.
|
||||
|
||||
union semun
|
||||
{
|
||||
int val; <= value for SETVAL
|
||||
struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
|
||||
unsigned short int *array; <= array for GETALL & SETALL
|
||||
struct seminfo *__buf; <= buffer for IPC_INFO
|
||||
};
|
||||
|
||||
Previous versions of this file used to define this union but this is
|
||||
incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
|
||||
one must define the union or not. */
|
||||
#define _SEM_SEMUN_UNDEFINED 1
|
||||
|
||||
#ifdef __USE_MISC
|
||||
|
||||
/* ipcs ctl cmds */
|
||||
# define SEM_STAT 18
|
||||
# define SEM_INFO 19
|
||||
|
||||
struct seminfo
|
||||
{
|
||||
int semmap;
|
||||
int semmni;
|
||||
int semmns;
|
||||
int semmnu;
|
||||
int semmsl;
|
||||
int semopm;
|
||||
int semume;
|
||||
int semusz;
|
||||
int semvmx;
|
||||
int semaem;
|
||||
};
|
||||
|
||||
#endif /* __USE_MISC */
|
||||
52
tasks/libposix/include/posix/bits/setjmp.h
Normal file
52
tasks/libposix/include/posix/bits/setjmp.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* Define the machine-dependent type `jmp_buf'. ARM version. */
|
||||
#ifndef _BITS_SETJMP_H
|
||||
#define _BITS_SETJMP_H 1
|
||||
|
||||
#if !defined _SETJMP_H && !defined _PTHREAD_H
|
||||
# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _ASM
|
||||
/* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not
|
||||
saved. */
|
||||
#ifdef __ARM_EABI__
|
||||
/* The exact set of registers saved may depend on the particular core
|
||||
in use, as some coprocessor registers may need to be saved. The C
|
||||
Library ABI requires that the buffer be 8-byte aligned, and
|
||||
recommends that the buffer contain 64 words. The first 28 words
|
||||
are occupied by v1-v6, sl, fp, sp, pc, d8-d15, and fpscr. (Note
|
||||
that d8-15 require 17 words, due to the use of fstmx.) */
|
||||
typedef int __jmp_buf[64] __attribute__((aligned (8)));
|
||||
#elif defined __MAVERICK__ || defined __IWMMXT__
|
||||
typedef int __jmp_buf[34];
|
||||
#else
|
||||
typedef int __jmp_buf[22];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define __JMP_BUF_SP 8
|
||||
|
||||
/* Test if longjmp to JMPBUF would unwind the frame
|
||||
containing a local variable at ADDRESS. */
|
||||
#define _JMPBUF_UNWINDS(jmpbuf, address) \
|
||||
((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
|
||||
|
||||
#endif /* bits/setjmp.h */
|
||||
103
tasks/libposix/include/posix/bits/shm.h
Normal file
103
tasks/libposix/include/posix/bits/shm.h
Normal file
@@ -0,0 +1,103 @@
|
||||
/* Copyright (C) 1995,1996,1997,2000,2002,2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_SHM_H
|
||||
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Permission flag for shmget. */
|
||||
#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
|
||||
#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
|
||||
|
||||
/* Flags for `shmat'. */
|
||||
#define SHM_RDONLY 010000 /* attach read-only else read-write */
|
||||
#define SHM_RND 020000 /* round attach address to SHMLBA */
|
||||
#define SHM_REMAP 040000 /* take-over region on attach */
|
||||
|
||||
/* Commands for `shmctl'. */
|
||||
#define SHM_LOCK 11 /* lock segment (root only) */
|
||||
#define SHM_UNLOCK 12 /* unlock segment (root only) */
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Segment low boundary address multiple. */
|
||||
#define SHMLBA (__getpagesize ())
|
||||
extern int __getpagesize (void) __THROW __attribute__ ((__const__));
|
||||
|
||||
|
||||
/* Type to count number of attaches. */
|
||||
typedef unsigned long int shmatt_t;
|
||||
|
||||
/* Data structure describing a set of semaphores. */
|
||||
struct shmid_ds
|
||||
{
|
||||
struct ipc_perm shm_perm; /* operation permission struct */
|
||||
size_t shm_segsz; /* size of segment in bytes */
|
||||
__time_t shm_atime; /* time of last shmat() */
|
||||
unsigned long int __unused1;
|
||||
__time_t shm_dtime; /* time of last shmdt() */
|
||||
unsigned long int __unused2;
|
||||
__time_t shm_ctime; /* time of last change by shmctl() */
|
||||
unsigned long int __unused3;
|
||||
__pid_t shm_cpid; /* pid of creator */
|
||||
__pid_t shm_lpid; /* pid of last shmop */
|
||||
shmatt_t shm_nattch; /* number of current attaches */
|
||||
unsigned long int __unused4;
|
||||
unsigned long int __unused5;
|
||||
};
|
||||
|
||||
#ifdef __USE_MISC
|
||||
|
||||
/* ipcs ctl commands */
|
||||
# define SHM_STAT 13
|
||||
# define SHM_INFO 14
|
||||
|
||||
/* shm_mode upper byte flags */
|
||||
# define SHM_DEST 01000 /* segment will be destroyed on last detach */
|
||||
# define SHM_LOCKED 02000 /* segment will not be swapped */
|
||||
# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
|
||||
# define SHM_NORESERVE 010000 /* don't check for reservations */
|
||||
|
||||
struct shminfo
|
||||
{
|
||||
unsigned long int shmmax;
|
||||
unsigned long int shmmin;
|
||||
unsigned long int shmmni;
|
||||
unsigned long int shmseg;
|
||||
unsigned long int shmall;
|
||||
unsigned long int __unused1;
|
||||
unsigned long int __unused2;
|
||||
unsigned long int __unused3;
|
||||
unsigned long int __unused4;
|
||||
};
|
||||
|
||||
struct shm_info
|
||||
{
|
||||
int used_ids;
|
||||
unsigned long int shm_tot; /* total allocated shm */
|
||||
unsigned long int shm_rss; /* total resident shm */
|
||||
unsigned long int shm_swp; /* total swapped shm */
|
||||
unsigned long int swap_attempts;
|
||||
unsigned long int swap_successes;
|
||||
};
|
||||
|
||||
#endif /* __USE_MISC */
|
||||
|
||||
__END_DECLS
|
||||
77
tasks/libposix/include/posix/bits/sigaction.h
Normal file
77
tasks/libposix/include/posix/bits/sigaction.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/* The proper definitions for Linux's sigaction.
|
||||
Copyright (C) 1993-1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SIGNAL_H
|
||||
# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
|
||||
#endif
|
||||
|
||||
/* Structure describing the action to be taken when a signal arrives. */
|
||||
struct sigaction
|
||||
{
|
||||
/* Signal handler. */
|
||||
#ifdef __USE_POSIX199309
|
||||
union
|
||||
{
|
||||
/* Used if SA_SIGINFO is not set. */
|
||||
__sighandler_t sa_handler;
|
||||
/* Used if SA_SIGINFO is set. */
|
||||
void (*sa_sigaction) (int, siginfo_t *, void *);
|
||||
}
|
||||
__sigaction_handler;
|
||||
# define sa_handler __sigaction_handler.sa_handler
|
||||
# define sa_sigaction __sigaction_handler.sa_sigaction
|
||||
#else
|
||||
__sighandler_t sa_handler;
|
||||
#endif
|
||||
|
||||
/* Additional set of signals to be blocked. */
|
||||
__sigset_t sa_mask;
|
||||
|
||||
/* Special flags. */
|
||||
int sa_flags;
|
||||
|
||||
/* Restore handler. */
|
||||
void (*sa_restorer) (void);
|
||||
};
|
||||
|
||||
/* Bits in `sa_flags'. */
|
||||
#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
|
||||
#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
|
||||
#define SA_SIGINFO 4 /* Invoke signal-catching function with
|
||||
three arguments instead of one. */
|
||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||
# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
|
||||
# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
|
||||
# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when
|
||||
its handler is being executed. */
|
||||
# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
|
||||
#endif
|
||||
#ifdef __USE_MISC
|
||||
# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
|
||||
|
||||
/* Some aliases for the SA_ constants. */
|
||||
# define SA_NOMASK SA_NODEFER
|
||||
# define SA_ONESHOT SA_RESETHAND
|
||||
# define SA_STACK SA_ONSTACK
|
||||
#endif
|
||||
|
||||
/* Values for the HOW argument to `sigprocmask'. */
|
||||
#define SIG_BLOCK 0 /* Block signals. */
|
||||
#define SIG_UNBLOCK 1 /* Unblock signals. */
|
||||
#define SIG_SETMASK 2 /* Set the set of blocked signals. */
|
||||
29
tasks/libposix/include/posix/bits/sigcontext.h
Normal file
29
tasks/libposix/include/posix/bits/sigcontext.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
|
||||
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef sigcontext_struct
|
||||
/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
|
||||
we need sigcontext. */
|
||||
# define sigcontext_struct sigcontext
|
||||
|
||||
# include <asm/sigcontext.h>
|
||||
#endif
|
||||
51
tasks/libposix/include/posix/bits/sigcontextinfo.h
Normal file
51
tasks/libposix/include/posix/bits/sigcontextinfo.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/* Copyright (C) 1999, 2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Philip Blundell <philb@gnu.org>, 1999.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <bits/armsigctx.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#define SIGCONTEXT int _a2, int _a3, int _a4, union k_sigcontext
|
||||
#define SIGCONTEXT_EXTRA_ARGS _a2, _a3, _a4,
|
||||
|
||||
/* The sigcontext structure changed between 2.0 and 2.1 kernels. On any
|
||||
modern system we should be able to assume that the "new" format will be
|
||||
in use. */
|
||||
#if LINUX_VERSION_CODE > 131328
|
||||
|
||||
#define GET_PC(ctx) ((void *) ctx.v21.arm_pc)
|
||||
#define GET_FRAME(ctx) ADVANCE_STACK_FRAME ((void *) ctx.v21.arm_fp)
|
||||
#define GET_STACK(ctx) ((void *) ctx.v21.arm_sp)
|
||||
|
||||
#else
|
||||
|
||||
#define GET_PC(ctx) ((void *)((ctx.v20.magic == SIGCONTEXT_2_0_MAGIC) ? \
|
||||
ctx.v20.reg.ARM_pc : ctx.v21.arm_pc))
|
||||
#define GET_FRAME(ctx) \
|
||||
ADVANCE_STACK_FRAME((void *)((ctx.v20.magic == SIGCONTEXT_2_0_MAGIC) ? \
|
||||
ctx.v20.reg.ARM_fp : ctx.v21.arm_fp))
|
||||
#define GET_STACK(ctx) ((void *)((ctx.v20.magic == SIGCONTEXT_2_0_MAGIC) ? \
|
||||
ctx.v20.reg.ARM_sp : ctx.v21.arm_sp))
|
||||
|
||||
#endif
|
||||
|
||||
#define ADVANCE_STACK_FRAME(frm) \
|
||||
((struct layout *)frm - 1)
|
||||
|
||||
#define CALL_SIGHANDLER(handler, signo, ctx) \
|
||||
(handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
|
||||
313
tasks/libposix/include/posix/bits/siginfo.h
Normal file
313
tasks/libposix/include/posix/bits/siginfo.h
Normal file
@@ -0,0 +1,313 @@
|
||||
/* siginfo_t, sigevent and constants. Linux version.
|
||||
Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#if !defined _SIGNAL_H && !defined __need_siginfo_t \
|
||||
&& !defined __need_sigevent_t
|
||||
# error "Never include this file directly. Use <signal.h> instead"
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if (!defined __have_sigval_t \
|
||||
&& (defined _SIGNAL_H || defined __need_siginfo_t \
|
||||
|| defined __need_sigevent_t))
|
||||
# define __have_sigval_t 1
|
||||
|
||||
/* Type for data associated with a signal. */
|
||||
typedef union sigval
|
||||
{
|
||||
int sival_int;
|
||||
void *sival_ptr;
|
||||
} sigval_t;
|
||||
#endif
|
||||
|
||||
#if (!defined __have_siginfo_t \
|
||||
&& (defined _SIGNAL_H || defined __need_siginfo_t))
|
||||
# define __have_siginfo_t 1
|
||||
|
||||
# define __SI_MAX_SIZE 128
|
||||
# if __WORDSIZE == 64
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4)
|
||||
# else
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3)
|
||||
# endif
|
||||
|
||||
typedef struct siginfo
|
||||
{
|
||||
int si_signo; /* Signal number. */
|
||||
int si_errno; /* If non-zero, an errno value associated with
|
||||
this signal, as defined in <errno.h>. */
|
||||
int si_code; /* Signal code. */
|
||||
|
||||
union
|
||||
{
|
||||
int _pad[__SI_PAD_SIZE];
|
||||
|
||||
/* kill(). */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Sending process ID. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
} _kill;
|
||||
|
||||
/* POSIX.1b timers. */
|
||||
struct
|
||||
{
|
||||
int si_tid; /* Timer ID. */
|
||||
int si_overrun; /* Overrun count. */
|
||||
sigval_t si_sigval; /* Signal value. */
|
||||
} _timer;
|
||||
|
||||
/* POSIX.1b signals. */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Sending process ID. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
sigval_t si_sigval; /* Signal value. */
|
||||
} _rt;
|
||||
|
||||
/* SIGCHLD. */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Which child. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
int si_status; /* Exit value or signal. */
|
||||
__clock_t si_utime;
|
||||
__clock_t si_stime;
|
||||
} _sigchld;
|
||||
|
||||
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */
|
||||
struct
|
||||
{
|
||||
void *si_addr; /* Faulting insn/memory ref. */
|
||||
} _sigfault;
|
||||
|
||||
/* SIGPOLL. */
|
||||
struct
|
||||
{
|
||||
long int si_band; /* Band event for SIGPOLL. */
|
||||
int si_fd;
|
||||
} _sigpoll;
|
||||
} _sifields;
|
||||
} siginfo_t;
|
||||
|
||||
|
||||
/* X/Open requires some more fields with fixed names. */
|
||||
# define si_pid _sifields._kill.si_pid
|
||||
# define si_uid _sifields._kill.si_uid
|
||||
# define si_timerid _sifields._timer.si_tid
|
||||
# define si_overrun _sifields._timer.si_overrun
|
||||
# define si_status _sifields._sigchld.si_status
|
||||
# define si_utime _sifields._sigchld.si_utime
|
||||
# define si_stime _sifields._sigchld.si_stime
|
||||
# define si_value _sifields._rt.si_sigval
|
||||
# define si_int _sifields._rt.si_sigval.sival_int
|
||||
# define si_ptr _sifields._rt.si_sigval.sival_ptr
|
||||
# define si_addr _sifields._sigfault.si_addr
|
||||
# define si_band _sifields._sigpoll.si_band
|
||||
# define si_fd _sifields._sigpoll.si_fd
|
||||
|
||||
|
||||
/* Values for `si_code'. Positive values are reserved for kernel-generated
|
||||
signals. */
|
||||
enum
|
||||
{
|
||||
SI_ASYNCNL = -60, /* Sent by asynch name lookup completion. */
|
||||
# define SI_ASYNCNL SI_ASYNCNL
|
||||
SI_TKILL = -6, /* Sent by tkill. */
|
||||
# define SI_TKILL SI_TKILL
|
||||
SI_SIGIO, /* Sent by queued SIGIO. */
|
||||
# define SI_SIGIO SI_SIGIO
|
||||
SI_ASYNCIO, /* Sent by AIO completion. */
|
||||
# define SI_ASYNCIO SI_ASYNCIO
|
||||
SI_MESGQ, /* Sent by real time mesq state change. */
|
||||
# define SI_MESGQ SI_MESGQ
|
||||
SI_TIMER, /* Sent by timer expiration. */
|
||||
# define SI_TIMER SI_TIMER
|
||||
SI_QUEUE, /* Sent by sigqueue. */
|
||||
# define SI_QUEUE SI_QUEUE
|
||||
SI_USER, /* Sent by kill, sigsend, raise. */
|
||||
# define SI_USER SI_USER
|
||||
SI_KERNEL = 0x80 /* Send by kernel. */
|
||||
#define SI_KERNEL SI_KERNEL
|
||||
};
|
||||
|
||||
|
||||
/* `si_code' values for SIGILL signal. */
|
||||
enum
|
||||
{
|
||||
ILL_ILLOPC = 1, /* Illegal opcode. */
|
||||
# define ILL_ILLOPC ILL_ILLOPC
|
||||
ILL_ILLOPN, /* Illegal operand. */
|
||||
# define ILL_ILLOPN ILL_ILLOPN
|
||||
ILL_ILLADR, /* Illegal addressing mode. */
|
||||
# define ILL_ILLADR ILL_ILLADR
|
||||
ILL_ILLTRP, /* Illegal trap. */
|
||||
# define ILL_ILLTRP ILL_ILLTRP
|
||||
ILL_PRVOPC, /* Privileged opcode. */
|
||||
# define ILL_PRVOPC ILL_PRVOPC
|
||||
ILL_PRVREG, /* Privileged register. */
|
||||
# define ILL_PRVREG ILL_PRVREG
|
||||
ILL_COPROC, /* Coprocessor error. */
|
||||
# define ILL_COPROC ILL_COPROC
|
||||
ILL_BADSTK /* Internal stack error. */
|
||||
# define ILL_BADSTK ILL_BADSTK
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGFPE signal. */
|
||||
enum
|
||||
{
|
||||
FPE_INTDIV = 1, /* Integer divide by zero. */
|
||||
# define FPE_INTDIV FPE_INTDIV
|
||||
FPE_INTOVF, /* Integer overflow. */
|
||||
# define FPE_INTOVF FPE_INTOVF
|
||||
FPE_FLTDIV, /* Floating point divide by zero. */
|
||||
# define FPE_FLTDIV FPE_FLTDIV
|
||||
FPE_FLTOVF, /* Floating point overflow. */
|
||||
# define FPE_FLTOVF FPE_FLTOVF
|
||||
FPE_FLTUND, /* Floating point underflow. */
|
||||
# define FPE_FLTUND FPE_FLTUND
|
||||
FPE_FLTRES, /* Floating point inexact result. */
|
||||
# define FPE_FLTRES FPE_FLTRES
|
||||
FPE_FLTINV, /* Floating point invalid operation. */
|
||||
# define FPE_FLTINV FPE_FLTINV
|
||||
FPE_FLTSUB /* Subscript out of range. */
|
||||
# define FPE_FLTSUB FPE_FLTSUB
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGSEGV signal. */
|
||||
enum
|
||||
{
|
||||
SEGV_MAPERR = 1, /* Address not mapped to object. */
|
||||
# define SEGV_MAPERR SEGV_MAPERR
|
||||
SEGV_ACCERR /* Invalid permissions for mapped object. */
|
||||
# define SEGV_ACCERR SEGV_ACCERR
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGBUS signal. */
|
||||
enum
|
||||
{
|
||||
BUS_ADRALN = 1, /* Invalid address alignment. */
|
||||
# define BUS_ADRALN BUS_ADRALN
|
||||
BUS_ADRERR, /* Non-existant physical address. */
|
||||
# define BUS_ADRERR BUS_ADRERR
|
||||
BUS_OBJERR /* Object specific hardware error. */
|
||||
# define BUS_OBJERR BUS_OBJERR
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGTRAP signal. */
|
||||
enum
|
||||
{
|
||||
TRAP_BRKPT = 1, /* Process breakpoint. */
|
||||
# define TRAP_BRKPT TRAP_BRKPT
|
||||
TRAP_TRACE /* Process trace trap. */
|
||||
# define TRAP_TRACE TRAP_TRACE
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGCHLD signal. */
|
||||
enum
|
||||
{
|
||||
CLD_EXITED = 1, /* Child has exited. */
|
||||
# define CLD_EXITED CLD_EXITED
|
||||
CLD_KILLED, /* Child was killed. */
|
||||
# define CLD_KILLED CLD_KILLED
|
||||
CLD_DUMPED, /* Child terminated abnormally. */
|
||||
# define CLD_DUMPED CLD_DUMPED
|
||||
CLD_TRAPPED, /* Traced child has trapped. */
|
||||
# define CLD_TRAPPED CLD_TRAPPED
|
||||
CLD_STOPPED, /* Child has stopped. */
|
||||
# define CLD_STOPPED CLD_STOPPED
|
||||
CLD_CONTINUED /* Stopped child has continued. */
|
||||
# define CLD_CONTINUED CLD_CONTINUED
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGPOLL signal. */
|
||||
enum
|
||||
{
|
||||
POLL_IN = 1, /* Data input available. */
|
||||
# define POLL_IN POLL_IN
|
||||
POLL_OUT, /* Output buffers available. */
|
||||
# define POLL_OUT POLL_OUT
|
||||
POLL_MSG, /* Input message available. */
|
||||
# define POLL_MSG POLL_MSG
|
||||
POLL_ERR, /* I/O error. */
|
||||
# define POLL_ERR POLL_ERR
|
||||
POLL_PRI, /* High priority input available. */
|
||||
# define POLL_PRI POLL_PRI
|
||||
POLL_HUP /* Device disconnected. */
|
||||
# define POLL_HUP POLL_HUP
|
||||
};
|
||||
|
||||
# undef __need_siginfo_t
|
||||
#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */
|
||||
|
||||
|
||||
#if (defined _SIGNAL_H || defined __need_sigevent_t) \
|
||||
&& !defined __have_sigevent_t
|
||||
# define __have_sigevent_t 1
|
||||
|
||||
/* Structure to transport application-defined values with signals. */
|
||||
# define __SIGEV_MAX_SIZE 64
|
||||
# if __WORDSIZE == 64
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
|
||||
# else
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
|
||||
# endif
|
||||
|
||||
typedef struct sigevent
|
||||
{
|
||||
sigval_t sigev_value;
|
||||
int sigev_signo;
|
||||
int sigev_notify;
|
||||
|
||||
union
|
||||
{
|
||||
int _pad[__SIGEV_PAD_SIZE];
|
||||
|
||||
/* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
|
||||
thread to receive the signal. */
|
||||
__pid_t _tid;
|
||||
|
||||
struct
|
||||
{
|
||||
void (*_function) (sigval_t); /* Function to start. */
|
||||
void *_attribute; /* Really pthread_attr_t. */
|
||||
} _sigev_thread;
|
||||
} _sigev_un;
|
||||
} sigevent_t;
|
||||
|
||||
/* POSIX names to access some of the members. */
|
||||
# define sigev_notify_function _sigev_un._sigev_thread._function
|
||||
# define sigev_notify_attributes _sigev_un._sigev_thread._attribute
|
||||
|
||||
/* `sigev_notify' values. */
|
||||
enum
|
||||
{
|
||||
SIGEV_SIGNAL = 0, /* Notify via signal. */
|
||||
# define SIGEV_SIGNAL SIGEV_SIGNAL
|
||||
SIGEV_NONE, /* Other notification: meaningless. */
|
||||
# define SIGEV_NONE SIGEV_NONE
|
||||
SIGEV_THREAD, /* Deliver via thread creation. */
|
||||
# define SIGEV_THREAD SIGEV_THREAD
|
||||
|
||||
SIGEV_THREAD_ID = 4 /* Send signal to specific thread. */
|
||||
#define SIGEV_THREAD_ID SIGEV_THREAD_ID
|
||||
};
|
||||
|
||||
#endif /* have _SIGNAL_H. */
|
||||
80
tasks/libposix/include/posix/bits/signum.h
Normal file
80
tasks/libposix/include/posix/bits/signum.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/* Signal number definitions. Linux version.
|
||||
Copyright (C) 1995,1996,1997,1998,1999,2003 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifdef _SIGNAL_H
|
||||
|
||||
/* Fake signal functions. */
|
||||
#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
|
||||
#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
|
||||
#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
|
||||
|
||||
#ifdef __USE_UNIX98
|
||||
# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
|
||||
#endif
|
||||
|
||||
|
||||
/* Signals. */
|
||||
#define SIGHUP 1 /* Hangup (POSIX). */
|
||||
#define SIGINT 2 /* Interrupt (ANSI). */
|
||||
#define SIGQUIT 3 /* Quit (POSIX). */
|
||||
#define SIGILL 4 /* Illegal instruction (ANSI). */
|
||||
#define SIGTRAP 5 /* Trace trap (POSIX). */
|
||||
#define SIGABRT 6 /* Abort (ANSI). */
|
||||
#define SIGIOT 6 /* IOT trap (4.2 BSD). */
|
||||
#define SIGBUS 7 /* BUS error (4.2 BSD). */
|
||||
#define SIGFPE 8 /* Floating-point exception (ANSI). */
|
||||
#define SIGKILL 9 /* Kill, unblockable (POSIX). */
|
||||
#define SIGUSR1 10 /* User-defined signal 1 (POSIX). */
|
||||
#define SIGSEGV 11 /* Segmentation violation (ANSI). */
|
||||
#define SIGUSR2 12 /* User-defined signal 2 (POSIX). */
|
||||
#define SIGPIPE 13 /* Broken pipe (POSIX). */
|
||||
#define SIGALRM 14 /* Alarm clock (POSIX). */
|
||||
#define SIGTERM 15 /* Termination (ANSI). */
|
||||
#define SIGSTKFLT 16 /* Stack fault. */
|
||||
#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
|
||||
#define SIGCHLD 17 /* Child status has changed (POSIX). */
|
||||
#define SIGCONT 18 /* Continue (POSIX). */
|
||||
#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
|
||||
#define SIGTSTP 20 /* Keyboard stop (POSIX). */
|
||||
#define SIGTTIN 21 /* Background read from tty (POSIX). */
|
||||
#define SIGTTOU 22 /* Background write to tty (POSIX). */
|
||||
#define SIGURG 23 /* Urgent condition on socket (4.2 BSD). */
|
||||
#define SIGXCPU 24 /* CPU limit exceeded (4.2 BSD). */
|
||||
#define SIGXFSZ 25 /* File size limit exceeded (4.2 BSD). */
|
||||
#define SIGVTALRM 26 /* Virtual alarm clock (4.2 BSD). */
|
||||
#define SIGPROF 27 /* Profiling alarm clock (4.2 BSD). */
|
||||
#define SIGWINCH 28 /* Window size change (4.3 BSD, Sun). */
|
||||
#define SIGPOLL SIGIO /* Pollable event occurred (System V). */
|
||||
#define SIGIO 29 /* I/O now possible (4.2 BSD). */
|
||||
#define SIGPWR 30 /* Power failure restart (System V). */
|
||||
#define SIGSYS 31 /* Bad system call. */
|
||||
#define SIGUNUSED 31
|
||||
|
||||
#define _NSIG 65 /* Biggest signal number + 1
|
||||
(including real-time signals). */
|
||||
|
||||
#define SIGRTMIN (__libc_current_sigrtmin ())
|
||||
#define SIGRTMAX (__libc_current_sigrtmax ())
|
||||
|
||||
/* These are the hard limits of the kernel. These values should not be
|
||||
used directly at user level. */
|
||||
#define __SIGRTMIN 32
|
||||
#define __SIGRTMAX (_NSIG - 1)
|
||||
|
||||
#endif /* <signal.h> included. */
|
||||
125
tasks/libposix/include/posix/bits/sigset.h
Normal file
125
tasks/libposix/include/posix/bits/sigset.h
Normal file
@@ -0,0 +1,125 @@
|
||||
/* __sig_atomic_t, __sigset_t, and related definitions. Linux version.
|
||||
Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SIGSET_H_types
|
||||
# define _SIGSET_H_types 1
|
||||
|
||||
typedef int __sig_atomic_t;
|
||||
|
||||
/* A `sigset_t' has a bit for each signal. */
|
||||
|
||||
# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
|
||||
typedef struct
|
||||
{
|
||||
unsigned long int __val[_SIGSET_NWORDS];
|
||||
} __sigset_t;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* We only want to define these functions if <signal.h> was actually
|
||||
included; otherwise we were included just to define the types. Since we
|
||||
are namespace-clean, it wouldn't hurt to define extra macros. But
|
||||
trouble can be caused by functions being defined (e.g., any global
|
||||
register vars declared later will cause compilation errors). */
|
||||
|
||||
#if !defined _SIGSET_H_fns && defined _SIGNAL_H
|
||||
# define _SIGSET_H_fns 1
|
||||
|
||||
# ifndef _EXTERN_INLINE
|
||||
# define _EXTERN_INLINE extern __inline
|
||||
# endif
|
||||
|
||||
/* Return a mask that includes the bit for SIG only. */
|
||||
# define __sigmask(sig) \
|
||||
(((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int))))
|
||||
|
||||
/* Return the word index for SIG. */
|
||||
# define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int)))
|
||||
|
||||
# if defined __GNUC__ && __GNUC__ >= 2
|
||||
# define __sigemptyset(set) \
|
||||
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
|
||||
sigset_t *__set = (set); \
|
||||
while (--__cnt >= 0) __set->__val[__cnt] = 0; \
|
||||
0; }))
|
||||
# define __sigfillset(set) \
|
||||
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
|
||||
sigset_t *__set = (set); \
|
||||
while (--__cnt >= 0) __set->__val[__cnt] = ~0UL; \
|
||||
0; }))
|
||||
|
||||
# ifdef __USE_GNU
|
||||
/* The POSIX does not specify for handling the whole signal set in one
|
||||
command. This is often wanted and so we define three more functions
|
||||
here. */
|
||||
# define __sigisemptyset(set) \
|
||||
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
|
||||
const sigset_t *__set = (set); \
|
||||
int __ret = __set->__val[--__cnt]; \
|
||||
while (!__ret && --__cnt >= 0) \
|
||||
__ret = __set->__val[__cnt]; \
|
||||
__ret == 0; }))
|
||||
# define __sigandset(dest, left, right) \
|
||||
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
|
||||
sigset_t *__dest = (dest); \
|
||||
const sigset_t *__left = (left); \
|
||||
const sigset_t *__right = (right); \
|
||||
while (--__cnt >= 0) \
|
||||
__dest->__val[__cnt] = (__left->__val[__cnt] \
|
||||
& __right->__val[__cnt]); \
|
||||
0; }))
|
||||
# define __sigorset(dest, left, right) \
|
||||
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
|
||||
sigset_t *__dest = (dest); \
|
||||
const sigset_t *__left = (left); \
|
||||
const sigset_t *__right = (right); \
|
||||
while (--__cnt >= 0) \
|
||||
__dest->__val[__cnt] = (__left->__val[__cnt] \
|
||||
| __right->__val[__cnt]); \
|
||||
0; }))
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* These functions needn't check for a bogus signal number -- error
|
||||
checking is done in the non __ versions. */
|
||||
|
||||
extern int __sigismember (__const __sigset_t *, int);
|
||||
extern int __sigaddset (__sigset_t *, int);
|
||||
extern int __sigdelset (__sigset_t *, int);
|
||||
|
||||
# ifdef __USE_EXTERN_INLINES
|
||||
# define __SIGSETFN(NAME, BODY, CONST) \
|
||||
_EXTERN_INLINE int \
|
||||
NAME (CONST __sigset_t *__set, int __sig) \
|
||||
{ \
|
||||
unsigned long int __mask = __sigmask (__sig); \
|
||||
unsigned long int __word = __sigword (__sig); \
|
||||
return BODY; \
|
||||
}
|
||||
|
||||
__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, __const)
|
||||
__SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
|
||||
__SIGSETFN (__sigdelset, ((__set->__val[__word] &= ~__mask), 0), )
|
||||
|
||||
# undef __SIGSETFN
|
||||
# endif
|
||||
|
||||
|
||||
#endif /* ! _SIGSET_H_fns. */
|
||||
55
tasks/libposix/include/posix/bits/sigstack.h
Normal file
55
tasks/libposix/include/posix/bits/sigstack.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* sigstack, sigaltstack definitions.
|
||||
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SIGNAL_H
|
||||
# error "Never include this file directly. Use <signal.h> instead"
|
||||
#endif
|
||||
|
||||
|
||||
/* Structure describing a signal stack (obsolete). */
|
||||
struct sigstack
|
||||
{
|
||||
void *ss_sp; /* Signal stack pointer. */
|
||||
int ss_onstack; /* Nonzero if executing on this stack. */
|
||||
};
|
||||
|
||||
|
||||
/* Possible values for `ss_flags.'. */
|
||||
enum
|
||||
{
|
||||
SS_ONSTACK = 1,
|
||||
#define SS_ONSTACK SS_ONSTACK
|
||||
SS_DISABLE
|
||||
#define SS_DISABLE SS_DISABLE
|
||||
};
|
||||
|
||||
/* Minimum stack size for a signal handler. */
|
||||
#define MINSIGSTKSZ 2048
|
||||
|
||||
/* System default stack size. */
|
||||
#define SIGSTKSZ 8192
|
||||
|
||||
|
||||
/* Alternate, preferred interface. */
|
||||
typedef struct sigaltstack
|
||||
{
|
||||
void *ss_sp;
|
||||
int ss_flags;
|
||||
size_t ss_size;
|
||||
} stack_t;
|
||||
38
tasks/libposix/include/posix/bits/sigthread.h
Normal file
38
tasks/libposix/include/posix/bits/sigthread.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/* Signal handling function for threaded programs.
|
||||
Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _BITS_SIGTHREAD_H
|
||||
#define _BITS_SIGTHREAD_H 1
|
||||
|
||||
#if !defined _SIGNAL_H && !defined _PTHREAD_H
|
||||
# error "Never include this file directly. Use <pthread.h> instead"
|
||||
#endif
|
||||
|
||||
/* Functions for handling signals. */
|
||||
|
||||
/* Modify the signal mask for the calling thread. The arguments have
|
||||
the same meaning as for sigprocmask(2). */
|
||||
extern int pthread_sigmask (int __how,
|
||||
__const __sigset_t *__restrict __newmask,
|
||||
__sigset_t *__restrict __oldmask)__THROW;
|
||||
|
||||
/* Send signal SIGNO to the given thread. */
|
||||
extern int pthread_kill (pthread_t __threadid, int __signo) __THROW;
|
||||
|
||||
#endif /* bits/sigthread.h */
|
||||
40
tasks/libposix/include/posix/bits/sockaddr.h
Normal file
40
tasks/libposix/include/posix/bits/sockaddr.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Definition of `struct sockaddr_*' common members. Generic/4.2 BSD version.
|
||||
Copyright (C) 1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <sys/socket.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_SOCKADDR_H
|
||||
#define _BITS_SOCKADDR_H 1
|
||||
|
||||
|
||||
/* POSIX.1g specifies this type name for the `sa_family' member. */
|
||||
typedef unsigned short int sa_family_t;
|
||||
|
||||
/* This macro is used to declare the initial common members
|
||||
of the data types used for socket addresses, `struct sockaddr',
|
||||
`struct sockaddr_in', `struct sockaddr_un', etc. */
|
||||
|
||||
#define __SOCKADDR_COMMON(sa_prefix) \
|
||||
sa_family_t sa_prefix##family
|
||||
|
||||
#define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int))
|
||||
|
||||
#endif /* bits/sockaddr.h */
|
||||
327
tasks/libposix/include/posix/bits/socket.h
Normal file
327
tasks/libposix/include/posix/bits/socket.h
Normal file
@@ -0,0 +1,327 @@
|
||||
/* System-specific socket constants and types. Linux version.
|
||||
Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef __BITS_SOCKET_H
|
||||
#define __BITS_SOCKET_H
|
||||
|
||||
#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
|
||||
# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
|
||||
#endif
|
||||
|
||||
#define __need_size_t
|
||||
#define __need_NULL
|
||||
#include <stddef.h>
|
||||
|
||||
#include <limits.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Type for length arguments in socket calls. */
|
||||
#ifndef __socklen_t_defined
|
||||
typedef __socklen_t socklen_t;
|
||||
# define __socklen_t_defined
|
||||
#endif
|
||||
|
||||
/* Types of sockets. */
|
||||
enum __socket_type
|
||||
{
|
||||
SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
|
||||
byte streams. */
|
||||
#define SOCK_STREAM SOCK_STREAM
|
||||
SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
|
||||
of fixed maximum length. */
|
||||
#define SOCK_DGRAM SOCK_DGRAM
|
||||
SOCK_RAW = 3, /* Raw protocol interface. */
|
||||
#define SOCK_RAW SOCK_RAW
|
||||
SOCK_RDM = 4, /* Reliably-delivered messages. */
|
||||
#define SOCK_RDM SOCK_RDM
|
||||
SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
|
||||
datagrams of fixed maximum length. */
|
||||
#define SOCK_SEQPACKET SOCK_SEQPACKET
|
||||
SOCK_PACKET = 10 /* Linux specific way of getting packets
|
||||
at the dev level. For writing rarp and
|
||||
other similar things on the user level. */
|
||||
#define SOCK_PACKET SOCK_PACKET
|
||||
};
|
||||
|
||||
/* Protocol families. */
|
||||
#define PF_UNSPEC 0 /* Unspecified. */
|
||||
#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
|
||||
#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
|
||||
#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
|
||||
#define PF_INET 2 /* IP protocol family. */
|
||||
#define PF_AX25 3 /* Amateur Radio AX.25. */
|
||||
#define PF_IPX 4 /* Novell Internet Protocol. */
|
||||
#define PF_APPLETALK 5 /* Appletalk DDP. */
|
||||
#define PF_NETROM 6 /* Amateur radio NetROM. */
|
||||
#define PF_BRIDGE 7 /* Multiprotocol bridge. */
|
||||
#define PF_ATMPVC 8 /* ATM PVCs. */
|
||||
#define PF_X25 9 /* Reserved for X.25 project. */
|
||||
#define PF_INET6 10 /* IP version 6. */
|
||||
#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
|
||||
#define PF_DECnet 12 /* Reserved for DECnet project. */
|
||||
#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
|
||||
#define PF_SECURITY 14 /* Security callback pseudo AF. */
|
||||
#define PF_KEY 15 /* PF_KEY key management API. */
|
||||
#define PF_NETLINK 16
|
||||
#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
|
||||
#define PF_PACKET 17 /* Packet family. */
|
||||
#define PF_ASH 18 /* Ash. */
|
||||
#define PF_ECONET 19 /* Acorn Econet. */
|
||||
#define PF_ATMSVC 20 /* ATM SVCs. */
|
||||
#define PF_SNA 22 /* Linux SNA Project */
|
||||
#define PF_IRDA 23 /* IRDA sockets. */
|
||||
#define PF_PPPOX 24 /* PPPoX sockets. */
|
||||
#define PF_WANPIPE 25 /* Wanpipe API sockets. */
|
||||
#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
|
||||
#define PF_MAX 32 /* For now.. */
|
||||
|
||||
/* Address families. */
|
||||
#define AF_UNSPEC PF_UNSPEC
|
||||
#define AF_LOCAL PF_LOCAL
|
||||
#define AF_UNIX PF_UNIX
|
||||
#define AF_FILE PF_FILE
|
||||
#define AF_INET PF_INET
|
||||
#define AF_AX25 PF_AX25
|
||||
#define AF_IPX PF_IPX
|
||||
#define AF_APPLETALK PF_APPLETALK
|
||||
#define AF_NETROM PF_NETROM
|
||||
#define AF_BRIDGE PF_BRIDGE
|
||||
#define AF_ATMPVC PF_ATMPVC
|
||||
#define AF_X25 PF_X25
|
||||
#define AF_INET6 PF_INET6
|
||||
#define AF_ROSE PF_ROSE
|
||||
#define AF_DECnet PF_DECnet
|
||||
#define AF_NETBEUI PF_NETBEUI
|
||||
#define AF_SECURITY PF_SECURITY
|
||||
#define AF_KEY PF_KEY
|
||||
#define AF_NETLINK PF_NETLINK
|
||||
#define AF_ROUTE PF_ROUTE
|
||||
#define AF_PACKET PF_PACKET
|
||||
#define AF_ASH PF_ASH
|
||||
#define AF_ECONET PF_ECONET
|
||||
#define AF_ATMSVC PF_ATMSVC
|
||||
#define AF_SNA PF_SNA
|
||||
#define AF_IRDA PF_IRDA
|
||||
#define AF_PPPOX PF_PPPOX
|
||||
#define AF_WANPIPE PF_WANPIPE
|
||||
#define AF_BLUETOOTH PF_BLUETOOTH
|
||||
#define AF_MAX PF_MAX
|
||||
|
||||
/* Socket level values. Others are defined in the appropriate headers.
|
||||
|
||||
XXX These definitions also should go into the appropriate headers as
|
||||
far as they are available. */
|
||||
#define SOL_RAW 255
|
||||
#define SOL_DECNET 261
|
||||
#define SOL_X25 262
|
||||
#define SOL_PACKET 263
|
||||
#define SOL_ATM 264 /* ATM layer (cell level). */
|
||||
#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
|
||||
#define SOL_IRDA 266
|
||||
|
||||
/* Maximum queue length specifiable by listen. */
|
||||
#define SOMAXCONN 128
|
||||
|
||||
/* Get the definition of the macro to define the common sockaddr members. */
|
||||
#include <bits/sockaddr.h>
|
||||
|
||||
/* Structure describing a generic socket address. */
|
||||
struct sockaddr
|
||||
{
|
||||
__SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
|
||||
char sa_data[14]; /* Address data. */
|
||||
};
|
||||
|
||||
|
||||
/* Structure large enough to hold any socket address (with the historical
|
||||
exception of AF_UNIX). We reserve 128 bytes. */
|
||||
#if ULONG_MAX > 0xffffffff
|
||||
# define __ss_aligntype __uint64_t
|
||||
#else
|
||||
# define __ss_aligntype __uint32_t
|
||||
#endif
|
||||
#define _SS_SIZE 128
|
||||
#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
|
||||
|
||||
struct sockaddr_storage
|
||||
{
|
||||
__SOCKADDR_COMMON (ss_); /* Address family, etc. */
|
||||
__ss_aligntype __ss_align; /* Force desired alignment. */
|
||||
char __ss_padding[_SS_PADSIZE];
|
||||
};
|
||||
|
||||
|
||||
/* Bits in the FLAGS argument to `send', `recv', et al. */
|
||||
enum
|
||||
{
|
||||
MSG_OOB = 0x01, /* Process out-of-band data. */
|
||||
#define MSG_OOB MSG_OOB
|
||||
MSG_PEEK = 0x02, /* Peek at incoming messages. */
|
||||
#define MSG_PEEK MSG_PEEK
|
||||
MSG_DONTROUTE = 0x04, /* Don't use local routing. */
|
||||
#define MSG_DONTROUTE MSG_DONTROUTE
|
||||
#ifdef __USE_GNU
|
||||
/* DECnet uses a different name. */
|
||||
MSG_TRYHARD = MSG_DONTROUTE,
|
||||
# define MSG_TRYHARD MSG_DONTROUTE
|
||||
#endif
|
||||
MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
|
||||
#define MSG_CTRUNC MSG_CTRUNC
|
||||
MSG_PROXY = 0x10, /* Supply or ask second address. */
|
||||
#define MSG_PROXY MSG_PROXY
|
||||
MSG_TRUNC = 0x20,
|
||||
#define MSG_TRUNC MSG_TRUNC
|
||||
MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
|
||||
#define MSG_DONTWAIT MSG_DONTWAIT
|
||||
MSG_EOR = 0x80, /* End of record. */
|
||||
#define MSG_EOR MSG_EOR
|
||||
MSG_WAITALL = 0x100, /* Wait for a full request. */
|
||||
#define MSG_WAITALL MSG_WAITALL
|
||||
MSG_FIN = 0x200,
|
||||
#define MSG_FIN MSG_FIN
|
||||
MSG_SYN = 0x400,
|
||||
#define MSG_SYN MSG_SYN
|
||||
MSG_CONFIRM = 0x800, /* Confirm path validity. */
|
||||
#define MSG_CONFIRM MSG_CONFIRM
|
||||
MSG_RST = 0x1000,
|
||||
#define MSG_RST MSG_RST
|
||||
MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
|
||||
#define MSG_ERRQUEUE MSG_ERRQUEUE
|
||||
MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
|
||||
#define MSG_NOSIGNAL MSG_NOSIGNAL
|
||||
MSG_MORE = 0x8000 /* Sender will send more. */
|
||||
#define MSG_MORE MSG_MORE
|
||||
};
|
||||
|
||||
|
||||
/* Structure describing messages sent by
|
||||
`sendmsg' and received by `recvmsg'. */
|
||||
/* Note: do not change these members to match glibc; these match the
|
||||
SuSv3 spec already (e.g. msg_iovlen/msg_controllen).
|
||||
http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html */
|
||||
/* Note: linux kernel uses __kernel_size_t (which is 8bytes on 64bit
|
||||
platforms, and 4bytes on 32bit platforms) for msg_iovlen/msg_controllen */
|
||||
struct msghdr
|
||||
{
|
||||
void *msg_name; /* Address to send to/receive from. */
|
||||
socklen_t msg_namelen; /* Length of address data. */
|
||||
|
||||
struct iovec *msg_iov; /* Vector of data to send/receive into. */
|
||||
#if __WORDSIZE == 32
|
||||
int msg_iovlen; /* Number of elements in the vector. */
|
||||
#else
|
||||
size_t msg_iovlen; /* Number of elements in the vector. */
|
||||
#endif
|
||||
|
||||
void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
|
||||
#if __WORDSIZE == 32
|
||||
socklen_t msg_controllen; /* Ancillary data buffer length. */
|
||||
#else
|
||||
size_t msg_controllen; /* Ancillary data buffer length. */
|
||||
#endif
|
||||
|
||||
int msg_flags; /* Flags on received message. */
|
||||
};
|
||||
|
||||
/* Structure used for storage of ancillary data object information. */
|
||||
struct cmsghdr
|
||||
{
|
||||
size_t cmsg_len; /* Length of data in cmsg_data plus length
|
||||
of cmsghdr structure. */
|
||||
int cmsg_level; /* Originating protocol. */
|
||||
int cmsg_type; /* Protocol specific type. */
|
||||
#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
|
||||
__extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Ancillary data object manipulation macros. */
|
||||
#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
|
||||
# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
|
||||
#else
|
||||
# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
|
||||
#endif
|
||||
#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
|
||||
#define CMSG_FIRSTHDR(mhdr) \
|
||||
((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
|
||||
? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
|
||||
#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
|
||||
& (size_t) ~(sizeof (size_t) - 1))
|
||||
#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
|
||||
+ CMSG_ALIGN (sizeof (struct cmsghdr)))
|
||||
#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
|
||||
|
||||
extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
|
||||
struct cmsghdr *__cmsg) __THROW;
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
# ifndef _EXTERN_INLINE
|
||||
# define _EXTERN_INLINE extern __inline
|
||||
# endif
|
||||
_EXTERN_INLINE struct cmsghdr *
|
||||
__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
|
||||
{
|
||||
if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
|
||||
/* The kernel header does this so there may be a reason. */
|
||||
return 0;
|
||||
|
||||
__cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
|
||||
+ CMSG_ALIGN (__cmsg->cmsg_len));
|
||||
if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
|
||||
+ __mhdr->msg_controllen)
|
||||
|| ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
|
||||
> ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
|
||||
/* No more entries. */
|
||||
return 0;
|
||||
return __cmsg;
|
||||
}
|
||||
#endif /* Use `extern inline'. */
|
||||
|
||||
/* Socket level message types. This must match the definitions in
|
||||
<linux/socket.h>. */
|
||||
enum
|
||||
{
|
||||
SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
|
||||
#define SCM_RIGHTS SCM_RIGHTS
|
||||
#ifdef __USE_BSD
|
||||
, SCM_CREDENTIALS = 0x02 /* Credentials passing. */
|
||||
# define SCM_CREDENTIALS SCM_CREDENTIALS
|
||||
#endif
|
||||
};
|
||||
|
||||
/* User visible structure for SCM_CREDENTIALS message */
|
||||
|
||||
struct ucred
|
||||
{
|
||||
pid_t pid; /* PID of sending process. */
|
||||
uid_t uid; /* UID of sending process. */
|
||||
gid_t gid; /* GID of sending process. */
|
||||
};
|
||||
|
||||
/* Get socket manipulation related informations from kernel headers. */
|
||||
#include <asm/socket.h>
|
||||
|
||||
|
||||
/* Structure used to manipulate the SO_LINGER option. */
|
||||
struct linger
|
||||
{
|
||||
int l_onoff; /* Nonzero to linger on close. */
|
||||
int l_linger; /* Time to linger. */
|
||||
};
|
||||
|
||||
#endif /* bits/socket.h */
|
||||
28
tasks/libposix/include/posix/bits/stackinfo.h
Normal file
28
tasks/libposix/include/posix/bits/stackinfo.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* This file contains a bit of information about the stack allocation
|
||||
of the processor. */
|
||||
|
||||
#ifndef _STACKINFO_H
|
||||
#define _STACKINFO_H 1
|
||||
|
||||
/* On Arm the stack grows down. */
|
||||
#define _STACK_GROWS_DOWN 1
|
||||
|
||||
#endif /* stackinfo.h */
|
||||
165
tasks/libposix/include/posix/bits/stat.h
Normal file
165
tasks/libposix/include/posix/bits/stat.h
Normal file
@@ -0,0 +1,165 @@
|
||||
/* Copyright (C) 1992, 1995-2001, 2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_STAT_H
|
||||
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
|
||||
#endif
|
||||
|
||||
/* Versions of the `struct stat' data structure. */
|
||||
#define _STAT_VER_LINUX_OLD 1
|
||||
#define _STAT_VER_KERNEL 1
|
||||
#define _STAT_VER_SVR4 2
|
||||
#define _STAT_VER_LINUX 3
|
||||
#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
|
||||
|
||||
/* Versions of the `xmknod' interface. */
|
||||
#define _MKNOD_VER_LINUX 1
|
||||
#define _MKNOD_VER_SVR4 2
|
||||
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
|
||||
|
||||
|
||||
struct stat
|
||||
{
|
||||
__dev_t st_dev; /* Device. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
unsigned short int __pad1;
|
||||
__ino_t st_ino; /* File serial number. */
|
||||
#else
|
||||
unsigned int __pad1;
|
||||
__ino_t __st_ino; /* 32bit file serial number. */
|
||||
#endif
|
||||
__mode_t st_mode; /* File mode. */
|
||||
__nlink_t st_nlink; /* Link count. */
|
||||
__uid_t st_uid; /* User ID of the file's owner. */
|
||||
__gid_t st_gid; /* Group ID of the file's group.*/
|
||||
__dev_t st_rdev; /* Device number, if device. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
unsigned short int __pad2;
|
||||
__off_t st_size; /* Size of file, in bytes. */
|
||||
#else
|
||||
unsigned int __pad2;
|
||||
__off64_t st_size; /* Size of file, in bytes. */
|
||||
#endif
|
||||
__blksize_t st_blksize; /* Optimal block size for I/O. */
|
||||
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
#else
|
||||
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
#endif
|
||||
#if 0 /*def __USE_MISC*/
|
||||
/* Nanosecond resolution timestamps are stored in a format
|
||||
equivalent to 'struct timespec'. This is the type used
|
||||
whenever possible but the Unix namespace rules do not allow the
|
||||
identifier 'timespec' to appear in the <sys/stat.h> header.
|
||||
Therefore we have to handle the use of this header in strictly
|
||||
standard-compliant sources special. */
|
||||
struct timespec st_atim; /* Time of last access. */
|
||||
struct timespec st_mtim; /* Time of last modification. */
|
||||
struct timespec st_ctim; /* Time of last status change. */
|
||||
# define st_atime st_atim.tv_sec /* Backward compatibility. */
|
||||
# define st_mtime st_mtim.tv_sec
|
||||
# define st_ctime st_ctim.tv_sec
|
||||
#else
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
unsigned long int st_atimensec; /* Nscecs of last access. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
unsigned long int st_mtimensec; /* Nsecs of last modification. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
unsigned long int st_ctimensec; /* Nsecs of last status change. */
|
||||
#endif
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
unsigned long int __unused4;
|
||||
unsigned long int __unused5;
|
||||
#else
|
||||
__ino64_t st_ino; /* File serial number. */
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct stat64
|
||||
{
|
||||
__dev_t st_dev; /* Device. */
|
||||
unsigned int __pad1;
|
||||
|
||||
__ino_t __st_ino; /* 32bit file serial number. */
|
||||
__mode_t st_mode; /* File mode. */
|
||||
__nlink_t st_nlink; /* Link count. */
|
||||
__uid_t st_uid; /* User ID of the file's owner. */
|
||||
__gid_t st_gid; /* Group ID of the file's group.*/
|
||||
__dev_t st_rdev; /* Device number, if device. */
|
||||
unsigned int __pad2;
|
||||
__off64_t st_size; /* Size of file, in bytes. */
|
||||
__blksize_t st_blksize; /* Optimal block size for I/O. */
|
||||
|
||||
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
|
||||
#if 0 /*def __USE_MISC*/
|
||||
/* Nanosecond resolution timestamps are stored in a format
|
||||
equivalent to 'struct timespec'. This is the type used
|
||||
whenever possible but the Unix namespace rules do not allow the
|
||||
identifier 'timespec' to appear in the <sys/stat.h> header.
|
||||
Therefore we have to handle the use of this header in strictly
|
||||
standard-compliant sources special. */
|
||||
struct timespec st_atim; /* Time of last access. */
|
||||
struct timespec st_mtim; /* Time of last modification. */
|
||||
struct timespec st_ctim; /* Time of last status change. */
|
||||
#else
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
unsigned long int st_atimensec; /* Nscecs of last access. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
unsigned long int st_mtimensec; /* Nsecs of last modification. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
unsigned long int st_ctimensec; /* Nsecs of last status change. */
|
||||
#endif
|
||||
__ino64_t st_ino; /* File serial number. */
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Tell code we have these members. */
|
||||
#define _STATBUF_ST_BLKSIZE
|
||||
#define _STATBUF_ST_RDEV
|
||||
/* Nanosecond resolution time values are supported. */
|
||||
#define _STATBUF_ST_NSEC
|
||||
|
||||
/* Encoding of the file mode. */
|
||||
|
||||
#define __S_IFMT 0170000 /* These bits determine file type. */
|
||||
|
||||
/* File types. */
|
||||
#define __S_IFDIR 0040000 /* Directory. */
|
||||
#define __S_IFCHR 0020000 /* Character device. */
|
||||
#define __S_IFBLK 0060000 /* Block device. */
|
||||
#define __S_IFREG 0100000 /* Regular file. */
|
||||
#define __S_IFIFO 0010000 /* FIFO. */
|
||||
#define __S_IFLNK 0120000 /* Symbolic link. */
|
||||
#define __S_IFSOCK 0140000 /* Socket. */
|
||||
|
||||
/* POSIX.1b objects. Note that these macros always evaluate to zero. But
|
||||
they do it by enforcing the correct use of the macros. */
|
||||
#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
|
||||
|
||||
/* Protection bits. */
|
||||
|
||||
#define __S_ISUID 04000 /* Set user ID on execution. */
|
||||
#define __S_ISGID 02000 /* Set group ID on execution. */
|
||||
#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
|
||||
#define __S_IREAD 0400 /* Read by owner. */
|
||||
#define __S_IWRITE 0200 /* Write by owner. */
|
||||
#define __S_IEXEC 0100 /* Execute by owner. */
|
||||
67
tasks/libposix/include/posix/bits/statfs.h
Normal file
67
tasks/libposix/include/posix/bits/statfs.h
Normal file
@@ -0,0 +1,67 @@
|
||||
/* Copyright (C) 1997, 1998, 2000, 2002, 2003 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_STATFS_H
|
||||
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
struct statfs
|
||||
{
|
||||
__SWORD_TYPE f_type;
|
||||
__SWORD_TYPE f_bsize;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__fsblkcnt_t f_blocks;
|
||||
__fsblkcnt_t f_bfree;
|
||||
__fsblkcnt_t f_bavail;
|
||||
__fsfilcnt_t f_files;
|
||||
__fsfilcnt_t f_ffree;
|
||||
#else
|
||||
__fsblkcnt64_t f_blocks;
|
||||
__fsblkcnt64_t f_bfree;
|
||||
__fsblkcnt64_t f_bavail;
|
||||
__fsfilcnt64_t f_files;
|
||||
__fsfilcnt64_t f_ffree;
|
||||
#endif
|
||||
__fsid_t f_fsid;
|
||||
__SWORD_TYPE f_namelen;
|
||||
__SWORD_TYPE f_frsize;
|
||||
__SWORD_TYPE f_spare[5];
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct statfs64
|
||||
{
|
||||
__SWORD_TYPE f_type;
|
||||
__SWORD_TYPE f_bsize;
|
||||
__fsblkcnt64_t f_blocks;
|
||||
__fsblkcnt64_t f_bfree;
|
||||
__fsblkcnt64_t f_bavail;
|
||||
__fsfilcnt64_t f_files;
|
||||
__fsfilcnt64_t f_ffree;
|
||||
__fsid_t f_fsid;
|
||||
__SWORD_TYPE f_namelen;
|
||||
__SWORD_TYPE f_frsize;
|
||||
__SWORD_TYPE f_spare[5];
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Tell code we have these members. */
|
||||
#define _STATFS_F_NAMELEN
|
||||
#define _STATFS_F_FRSIZE
|
||||
107
tasks/libposix/include/posix/bits/statvfs.h
Normal file
107
tasks/libposix/include/posix/bits/statvfs.h
Normal file
@@ -0,0 +1,107 @@
|
||||
/* Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _SYS_STATVFS_H
|
||||
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h> /* For __fsblkcnt_t and __fsfilcnt_t. */
|
||||
|
||||
#if __WORDSIZE == 32
|
||||
#define _STATVFSBUF_F_UNUSED
|
||||
#endif
|
||||
|
||||
struct statvfs
|
||||
{
|
||||
unsigned long int f_bsize;
|
||||
unsigned long int f_frsize;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__fsblkcnt_t f_blocks;
|
||||
__fsblkcnt_t f_bfree;
|
||||
__fsblkcnt_t f_bavail;
|
||||
__fsfilcnt_t f_files;
|
||||
__fsfilcnt_t f_ffree;
|
||||
__fsfilcnt_t f_favail;
|
||||
#else
|
||||
__fsblkcnt64_t f_blocks;
|
||||
__fsblkcnt64_t f_bfree;
|
||||
__fsblkcnt64_t f_bavail;
|
||||
__fsfilcnt64_t f_files;
|
||||
__fsfilcnt64_t f_ffree;
|
||||
__fsfilcnt64_t f_favail;
|
||||
#endif
|
||||
unsigned long int f_fsid;
|
||||
#ifdef _STATVFSBUF_F_UNUSED
|
||||
int __f_unused;
|
||||
#endif
|
||||
unsigned long int f_flag;
|
||||
unsigned long int f_namemax;
|
||||
int __f_spare[6];
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct statvfs64
|
||||
{
|
||||
unsigned long int f_bsize;
|
||||
unsigned long int f_frsize;
|
||||
__fsblkcnt64_t f_blocks;
|
||||
__fsblkcnt64_t f_bfree;
|
||||
__fsblkcnt64_t f_bavail;
|
||||
__fsfilcnt64_t f_files;
|
||||
__fsfilcnt64_t f_ffree;
|
||||
__fsfilcnt64_t f_favail;
|
||||
unsigned long int f_fsid;
|
||||
#ifdef _STATVFSBUF_F_UNUSED
|
||||
int __f_unused;
|
||||
#endif
|
||||
unsigned long int f_flag;
|
||||
unsigned long int f_namemax;
|
||||
int __f_spare[6];
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Definitions for the flag in `f_flag'. These definitions should be
|
||||
kept in sync with the definitions in <sys/mount.h>. */
|
||||
enum
|
||||
{
|
||||
ST_RDONLY = 1, /* Mount read-only. */
|
||||
#define ST_RDONLY ST_RDONLY
|
||||
ST_NOSUID = 2 /* Ignore suid and sgid bits. */
|
||||
#define ST_NOSUID ST_NOSUID
|
||||
#ifdef __USE_GNU
|
||||
,
|
||||
ST_NODEV = 4, /* Disallow access to device special files. */
|
||||
# define ST_NODEV ST_NODEV
|
||||
ST_NOEXEC = 8, /* Disallow program execution. */
|
||||
# define ST_NOEXEC ST_NOEXEC
|
||||
ST_SYNCHRONOUS = 16, /* Writes are synced at once. */
|
||||
# define ST_SYNCHRONOUS ST_SYNCHRONOUS
|
||||
ST_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
|
||||
# define ST_MANDLOCK ST_MANDLOCK
|
||||
ST_WRITE = 128, /* Write on file/directory/symlink. */
|
||||
# define ST_WRITE ST_WRITE
|
||||
ST_APPEND = 256, /* Append-only file. */
|
||||
# define ST_APPEND ST_APPEND
|
||||
ST_IMMUTABLE = 512, /* Immutable file. */
|
||||
# define ST_IMMUTABLE ST_IMMUTABLE
|
||||
ST_NOATIME = 1024, /* Do not update access times. */
|
||||
# define ST_NOATIME ST_NOATIME
|
||||
ST_NODIRATIME = 2048 /* Do not update directory access times. */
|
||||
# define ST_NODIRATIME ST_NODIRATIME
|
||||
#endif /* Use GNU. */
|
||||
};
|
||||
23
tasks/libposix/include/posix/bits/stdio.h
Normal file
23
tasks/libposix/include/posix/bits/stdio.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Optimizing macros and inline functions for stdio functions.
|
||||
Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _STDIO_H
|
||||
# error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
|
||||
#endif
|
||||
|
||||
41
tasks/libposix/include/posix/bits/stdio_lim.h
Normal file
41
tasks/libposix/include/posix/bits/stdio_lim.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/* Copyright (C) 1994, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX
|
||||
# error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
|
||||
#endif
|
||||
|
||||
#ifdef _STDIO_H
|
||||
# define L_tmpnam 20
|
||||
# define TMP_MAX 238328
|
||||
# define FILENAME_MAX 4095
|
||||
|
||||
# ifdef __USE_POSIX
|
||||
# define L_ctermid 9
|
||||
# define L_cuserid 9
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined __need_FOPEN_MAX || defined _STDIO_H
|
||||
# undef FOPEN_MAX
|
||||
# define FOPEN_MAX 16
|
||||
#endif
|
||||
|
||||
#if defined __need_IOV_MAX && !defined IOV_MAX
|
||||
# define IOV_MAX 1024
|
||||
#endif
|
||||
244
tasks/libposix/include/posix/bits/syscalls.h
Normal file
244
tasks/libposix/include/posix/bits/syscalls.h
Normal file
@@ -0,0 +1,244 @@
|
||||
#ifndef _BITS_SYSCALLS_H
|
||||
#define _BITS_SYSCALLS_H
|
||||
#ifndef _SYSCALL_H
|
||||
# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
|
||||
#endif
|
||||
|
||||
/*
|
||||
Some of the sneaky macros in the code were taken from
|
||||
glibc-2.3.2/sysdeps/unix/sysv/linux/arm/sysdep.h
|
||||
*/
|
||||
|
||||
#define SYS_ify(syscall_name) (__NR_##syscall_name)
|
||||
|
||||
#ifdef __ASSEMBLER__
|
||||
|
||||
/* Call a given syscall, with arguments loaded. For EABI, we must
|
||||
save and restore r7 for the syscall number. Unlike the DO_CALL
|
||||
macro in glibc, this macro does not load syscall arguments. */
|
||||
#undef DO_CALL
|
||||
#if defined(__ARM_EABI__)
|
||||
#define DO_CALL(syscall_name) \
|
||||
mov ip, r7; \
|
||||
ldr r7, =SYS_ify (syscall_name); \
|
||||
swi 0x0; \
|
||||
mov r7, ip;
|
||||
#else
|
||||
#define DO_CALL(syscall_name) \
|
||||
swi SYS_ify (syscall_name);
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#undef _syscall0
|
||||
#define _syscall0(type,name) \
|
||||
type name(void) \
|
||||
{ \
|
||||
return (type) (INLINE_SYSCALL(name, 0)); \
|
||||
}
|
||||
|
||||
#undef _syscall1
|
||||
#define _syscall1(type,name,type1,arg1) \
|
||||
type name(type1 arg1) \
|
||||
{ \
|
||||
return (type) (INLINE_SYSCALL(name, 1, arg1)); \
|
||||
}
|
||||
|
||||
#undef _syscall2
|
||||
#define _syscall2(type,name,type1,arg1,type2,arg2) \
|
||||
type name(type1 arg1,type2 arg2) \
|
||||
{ \
|
||||
return (type) (INLINE_SYSCALL(name, 2, arg1, arg2)); \
|
||||
}
|
||||
|
||||
#undef _syscall3
|
||||
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
|
||||
type name(type1 arg1,type2 arg2,type3 arg3) \
|
||||
{ \
|
||||
return (type) (INLINE_SYSCALL(name, 3, arg1, arg2, arg3)); \
|
||||
}
|
||||
|
||||
#undef _syscall4
|
||||
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
|
||||
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
|
||||
{ \
|
||||
return (type) (INLINE_SYSCALL(name, 4, arg1, arg2, arg3, arg4)); \
|
||||
}
|
||||
|
||||
#undef _syscall5
|
||||
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
|
||||
type5,arg5) \
|
||||
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
|
||||
{ \
|
||||
return (type) (INLINE_SYSCALL(name, 5, arg1, arg2, arg3, arg4, arg5)); \
|
||||
}
|
||||
|
||||
#undef _syscall6
|
||||
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
|
||||
type5,arg5,type6,arg6) \
|
||||
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6) \
|
||||
{ \
|
||||
return (type) (INLINE_SYSCALL(name, 6, arg1, arg2, arg3, arg4, arg5, arg6)); \
|
||||
}
|
||||
|
||||
#undef _syscall7
|
||||
#define _syscall7(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
|
||||
type5,arg5,type6,arg6,type7,arg7) \
|
||||
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6,type7 arg7) \
|
||||
{ \
|
||||
return (type) (INLINE_SYSCALL(name, 7, arg1, arg2, arg3, arg4, arg5, arg6, arg7)); \
|
||||
}
|
||||
|
||||
|
||||
#undef INLINE_SYSCALL
|
||||
#define INLINE_SYSCALL(name, nr, args...) \
|
||||
({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
|
||||
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ), 0)) \
|
||||
{ \
|
||||
__set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
|
||||
_inline_sys_result = (unsigned int) -1; \
|
||||
} \
|
||||
(int) _inline_sys_result; })
|
||||
|
||||
#undef INTERNAL_SYSCALL_DECL
|
||||
#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
|
||||
|
||||
#undef INTERNAL_SYSCALL
|
||||
#if defined(__ARM_EABI__)
|
||||
#if !defined(__thumb__)
|
||||
#define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||
({unsigned int __sys_result; \
|
||||
{ \
|
||||
register int _a1 __asm__ ("r0"), _nr __asm__ ("r7"); \
|
||||
LOAD_ARGS_##nr (args) \
|
||||
_nr = SYS_ify(name); \
|
||||
__asm__ volatile ("swi 0x0 @ syscall " #name \
|
||||
: "=r" (_a1) \
|
||||
: "r" (_nr) ASM_ARGS_##nr \
|
||||
: "memory"); \
|
||||
__sys_result = _a1; \
|
||||
} \
|
||||
(int) __sys_result; })
|
||||
#else /* !defined(__thumb__) */
|
||||
/* So hide the use of r7 from the compiler, this would be a lot
|
||||
* easier but for the fact that the syscalls can exceed 255.
|
||||
* For the moment the LOAD_ARG_7 is sacrificed.
|
||||
*/
|
||||
#define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||
({ unsigned int __sys_result; \
|
||||
{ \
|
||||
register int _a1 asm ("a1"); \
|
||||
LOAD_ARGS_##nr (args) \
|
||||
register int _v3 asm ("v3") = (int) (SYS_ify(name)); \
|
||||
asm volatile ("push {r7}\n" \
|
||||
"\tmov r7, v3\n" \
|
||||
"\tswi 0 @ syscall " #name "\n" \
|
||||
"\tpop {r7}" \
|
||||
: "=r" (_a1) \
|
||||
: "r" (_v3) ASM_ARGS_##nr \
|
||||
: "memory"); \
|
||||
__sys_result = _a1; \
|
||||
} \
|
||||
(int) __sys_result; })
|
||||
#endif /*!defined(__thumb__)*/
|
||||
#else /* !defined(__ARM_EABI__) */
|
||||
#if !defined(__thumb__)
|
||||
#define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||
({ unsigned int __sys_result; \
|
||||
{ \
|
||||
register int _a1 __asm__ ("a1"); \
|
||||
LOAD_ARGS_##nr (args) \
|
||||
__asm__ volatile ("swi %1 @ syscall " #name \
|
||||
: "=r" (_a1) \
|
||||
: "i" (SYS_ify(name)) ASM_ARGS_##nr \
|
||||
: "memory"); \
|
||||
__sys_result = _a1; \
|
||||
} \
|
||||
(int) __sys_result; })
|
||||
#else
|
||||
#if 0
|
||||
/* This doesn't work because GCC uses r7 as a frame pointer in
|
||||
* some cases and doesn't notice that the _r7 value changes
|
||||
* it, resulting in mysterious crashes after the SWI.
|
||||
*/
|
||||
#define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||
({ unsigned int __sys_result; \
|
||||
{ \
|
||||
register int _a1 __asm__ ("a1"); \
|
||||
LOAD_ARGS_##nr (args) \
|
||||
register int _r7 __asm__ ("r7") = (int) (SYS_ify(name)); \
|
||||
__asm__ volatile ("swi 0 @ syscall " #name \
|
||||
: "=r" (_a1) \
|
||||
: "r" (_r7) ASM_ARGS_##nr \
|
||||
: "memory"); \
|
||||
__sys_result = _a1; \
|
||||
} \
|
||||
(int) __sys_result; })
|
||||
#else
|
||||
/* So hide the use of r7 from the compiler, this would be a lot
|
||||
* easier but for the fact that the syscalls can exceed 255.
|
||||
* For the moment the LOAD_ARG_7 is sacrificed.
|
||||
*/
|
||||
#define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||
({ unsigned int __sys_result; \
|
||||
{ \
|
||||
register int _a1 __asm__ ("a1"); \
|
||||
LOAD_ARGS_##nr (args) \
|
||||
register int _v3 __asm__ ("v3") = (int) (SYS_ify(name)); \
|
||||
__asm__ volatile ("push {r7}\n" \
|
||||
"\tmov r7, v3\n" \
|
||||
"\tswi 0 @ syscall " #name "\n" \
|
||||
"\tpop {r7}" \
|
||||
: "=r" (_a1) \
|
||||
: "r" (_v3) ASM_ARGS_##nr \
|
||||
: "memory"); \
|
||||
__sys_result = _a1; \
|
||||
} \
|
||||
(int) __sys_result; })
|
||||
#endif
|
||||
#endif
|
||||
#endif /* !defined(__ARM_EABI__) */
|
||||
|
||||
#undef INTERNAL_SYSCALL_ERROR_P
|
||||
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||
((unsigned int) (val) >= 0xfffff001u)
|
||||
|
||||
#undef INTERNAL_SYSCALL_ERRNO
|
||||
#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
|
||||
|
||||
#define LOAD_ARGS_0()
|
||||
#define ASM_ARGS_0
|
||||
#define LOAD_ARGS_1(a1) \
|
||||
_a1 = (int) (a1); \
|
||||
LOAD_ARGS_0 ()
|
||||
#define ASM_ARGS_1 ASM_ARGS_0, "r" (_a1)
|
||||
#define LOAD_ARGS_2(a1, a2) \
|
||||
register int _a2 __asm__ ("a2") = (int) (a2); \
|
||||
LOAD_ARGS_1 (a1)
|
||||
#define ASM_ARGS_2 ASM_ARGS_1, "r" (_a2)
|
||||
#define LOAD_ARGS_3(a1, a2, a3) \
|
||||
register int _a3 __asm__ ("a3") = (int) (a3); \
|
||||
LOAD_ARGS_2 (a1, a2)
|
||||
#define ASM_ARGS_3 ASM_ARGS_2, "r" (_a3)
|
||||
#define LOAD_ARGS_4(a1, a2, a3, a4) \
|
||||
register int _a4 __asm__ ("a4") = (int) (a4); \
|
||||
LOAD_ARGS_3 (a1, a2, a3)
|
||||
#define ASM_ARGS_4 ASM_ARGS_3, "r" (_a4)
|
||||
#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
|
||||
register int _v1 __asm__ ("v1") = (int) (a5); \
|
||||
LOAD_ARGS_4 (a1, a2, a3, a4)
|
||||
#define ASM_ARGS_5 ASM_ARGS_4, "r" (_v1)
|
||||
#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
|
||||
register int _v2 __asm__ ("v2") = (int) (a6); \
|
||||
LOAD_ARGS_5 (a1, a2, a3, a4, a5)
|
||||
#define ASM_ARGS_6 ASM_ARGS_5, "r" (_v2)
|
||||
#define LOAD_ARGS_7(a1, a2, a3, a4, a5, a6, a7) \
|
||||
register int _v3 __asm__ ("v3") = (int) (a7); \
|
||||
LOAD_ARGS_6 (a1, a2, a3, a4, a5, a6)
|
||||
#define ASM_ARGS_7 ASM_ARGS_6, "r" (_v3)
|
||||
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
#endif /* _BITS_SYSCALLS_H */
|
||||
980
tasks/libposix/include/posix/bits/sysnum.h
Normal file
980
tasks/libposix/include/posix/bits/sysnum.h
Normal file
@@ -0,0 +1,980 @@
|
||||
/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */
|
||||
|
||||
#ifndef _BITS_SYSNUM_H
|
||||
#define _BITS_SYSNUM_H
|
||||
|
||||
#ifndef _SYSCALL_H
|
||||
# error "Never use <bits/sysnum.h> directly; include <sys/syscall.h> instead."
|
||||
#endif
|
||||
|
||||
#undef __NR_OABI_SYSCALL_BASE
|
||||
#define __NR_OABI_SYSCALL_BASE 0x900000
|
||||
#define SYS_OABI_SYSCALL_BASE __NR_OABI_SYSCALL_BASE
|
||||
#undef __NR_SYSCALL_BASE
|
||||
#define __NR_SYSCALL_BASE 0
|
||||
#define SYS_SYSCALL_BASE __NR_SYSCALL_BASE
|
||||
#undef __NR_restart_syscall
|
||||
#define __NR_restart_syscall (0 + 0)
|
||||
#define SYS_restart_syscall __NR_restart_syscall
|
||||
#undef __NR_exit
|
||||
#define __NR_exit (0 + 1)
|
||||
#define SYS_exit __NR_exit
|
||||
#undef __NR_fork
|
||||
#define __NR_fork (0 + 2)
|
||||
#define SYS_fork __NR_fork
|
||||
#undef __NR_read
|
||||
#define __NR_read (0 + 3)
|
||||
#define SYS_read __NR_read
|
||||
#undef __NR_write
|
||||
#define __NR_write (0 + 4)
|
||||
#define SYS_write __NR_write
|
||||
#undef __NR_open
|
||||
#define __NR_open (0 + 5)
|
||||
#define SYS_open __NR_open
|
||||
#undef __NR_close
|
||||
#define __NR_close (0 + 6)
|
||||
#define SYS_close __NR_close
|
||||
#undef __NR_creat
|
||||
#define __NR_creat (0 + 8)
|
||||
#define SYS_creat __NR_creat
|
||||
#undef __NR_link
|
||||
#define __NR_link (0 + 9)
|
||||
#define SYS_link __NR_link
|
||||
#undef __NR_unlink
|
||||
#define __NR_unlink (0 + 10)
|
||||
#define SYS_unlink __NR_unlink
|
||||
#undef __NR_execve
|
||||
#define __NR_execve (0 + 11)
|
||||
#define SYS_execve __NR_execve
|
||||
#undef __NR_chdir
|
||||
#define __NR_chdir (0 + 12)
|
||||
#define SYS_chdir __NR_chdir
|
||||
#undef __NR_time
|
||||
#define __NR_time __NR_time
|
||||
#define SYS_time __NR_time
|
||||
#undef __NR_mknod
|
||||
#define __NR_mknod (0 + 14)
|
||||
#define SYS_mknod __NR_mknod
|
||||
#undef __NR_chmod
|
||||
#define __NR_chmod (0 + 15)
|
||||
#define SYS_chmod __NR_chmod
|
||||
#undef __NR_lchown
|
||||
#define __NR_lchown (0 + 16)
|
||||
#define SYS_lchown __NR_lchown
|
||||
#undef __NR_lseek
|
||||
#define __NR_lseek (0 + 19)
|
||||
#define SYS_lseek __NR_lseek
|
||||
#undef __NR_getpid
|
||||
#define __NR_getpid (0 + 20)
|
||||
#define SYS_getpid __NR_getpid
|
||||
#undef __NR_mount
|
||||
#define __NR_mount (0 + 21)
|
||||
#define SYS_mount __NR_mount
|
||||
#undef __NR_umount
|
||||
#define __NR_umount __NR_umount
|
||||
#define SYS_umount __NR_umount
|
||||
#undef __NR_setuid
|
||||
#define __NR_setuid (0 + 23)
|
||||
#define SYS_setuid __NR_setuid
|
||||
#undef __NR_getuid
|
||||
#define __NR_getuid (0 + 24)
|
||||
#define SYS_getuid __NR_getuid
|
||||
#undef __NR_stime
|
||||
#define __NR_stime __NR_stime
|
||||
#define SYS_stime __NR_stime
|
||||
#undef __NR_ptrace
|
||||
#define __NR_ptrace (0 + 26)
|
||||
#define SYS_ptrace __NR_ptrace
|
||||
#undef __NR_alarm
|
||||
#define __NR_alarm __NR_alarm
|
||||
#define SYS_alarm __NR_alarm
|
||||
#undef __NR_pause
|
||||
#define __NR_pause (0 + 29)
|
||||
#define SYS_pause __NR_pause
|
||||
#undef __NR_utime
|
||||
#define __NR_utime __NR_utime
|
||||
#define SYS_utime __NR_utime
|
||||
#undef __NR_access
|
||||
#define __NR_access (0 + 33)
|
||||
#define SYS_access __NR_access
|
||||
#undef __NR_nice
|
||||
#define __NR_nice (0 + 34)
|
||||
#define SYS_nice __NR_nice
|
||||
#undef __NR_sync
|
||||
#define __NR_sync (0 + 36)
|
||||
#define SYS_sync __NR_sync
|
||||
#undef __NR_kill
|
||||
#define __NR_kill (0 + 37)
|
||||
#define SYS_kill __NR_kill
|
||||
#undef __NR_rename
|
||||
#define __NR_rename (0 + 38)
|
||||
#define SYS_rename __NR_rename
|
||||
#undef __NR_mkdir
|
||||
#define __NR_mkdir (0 + 39)
|
||||
#define SYS_mkdir __NR_mkdir
|
||||
#undef __NR_rmdir
|
||||
#define __NR_rmdir (0 + 40)
|
||||
#define SYS_rmdir __NR_rmdir
|
||||
#undef __NR_dup
|
||||
#define __NR_dup (0 + 41)
|
||||
#define SYS_dup __NR_dup
|
||||
#undef __NR_pipe
|
||||
#define __NR_pipe (0 + 42)
|
||||
#define SYS_pipe __NR_pipe
|
||||
#undef __NR_times
|
||||
#define __NR_times (0 + 43)
|
||||
#define SYS_times __NR_times
|
||||
#undef __NR_brk
|
||||
#define __NR_brk (0 + 45)
|
||||
#define SYS_brk __NR_brk
|
||||
#undef __NR_setgid
|
||||
#define __NR_setgid (0 + 46)
|
||||
#define SYS_setgid __NR_setgid
|
||||
#undef __NR_getgid
|
||||
#define __NR_getgid (0 + 47)
|
||||
#define SYS_getgid __NR_getgid
|
||||
#undef __NR_geteuid
|
||||
#define __NR_geteuid (0 + 49)
|
||||
#define SYS_geteuid __NR_geteuid
|
||||
#undef __NR_getegid
|
||||
#define __NR_getegid (0 + 50)
|
||||
#define SYS_getegid __NR_getegid
|
||||
#undef __NR_acct
|
||||
#define __NR_acct (0 + 51)
|
||||
#define SYS_acct __NR_acct
|
||||
#undef __NR_umount2
|
||||
#define __NR_umount2 (0 + 52)
|
||||
#define SYS_umount2 __NR_umount2
|
||||
#undef __NR_ioctl
|
||||
#define __NR_ioctl (0 + 54)
|
||||
#define SYS_ioctl __NR_ioctl
|
||||
#undef __NR_fcntl
|
||||
#define __NR_fcntl (0 + 55)
|
||||
#define SYS_fcntl __NR_fcntl
|
||||
#undef __NR_setpgid
|
||||
#define __NR_setpgid (0 + 57)
|
||||
#define SYS_setpgid __NR_setpgid
|
||||
#undef __NR_umask
|
||||
#define __NR_umask (0 + 60)
|
||||
#define SYS_umask __NR_umask
|
||||
#undef __NR_chroot
|
||||
#define __NR_chroot (0 + 61)
|
||||
#define SYS_chroot __NR_chroot
|
||||
#undef __NR_ustat
|
||||
#define __NR_ustat (0 + 62)
|
||||
#define SYS_ustat __NR_ustat
|
||||
#undef __NR_dup2
|
||||
#define __NR_dup2 (0 + 63)
|
||||
#define SYS_dup2 __NR_dup2
|
||||
#undef __NR_getppid
|
||||
#define __NR_getppid (0 + 64)
|
||||
#define SYS_getppid __NR_getppid
|
||||
#undef __NR_getpgrp
|
||||
#define __NR_getpgrp (0 + 65)
|
||||
#define SYS_getpgrp __NR_getpgrp
|
||||
#undef __NR_setsid
|
||||
#define __NR_setsid (0 + 66)
|
||||
#define SYS_setsid __NR_setsid
|
||||
#undef __NR_sigaction
|
||||
#define __NR_sigaction (0 + 67)
|
||||
#define SYS_sigaction __NR_sigaction
|
||||
#undef __NR_setreuid
|
||||
#define __NR_setreuid (0 + 70)
|
||||
#define SYS_setreuid __NR_setreuid
|
||||
#undef __NR_setregid
|
||||
#define __NR_setregid (0 + 71)
|
||||
#define SYS_setregid __NR_setregid
|
||||
#undef __NR_sigsuspend
|
||||
#define __NR_sigsuspend (0 + 72)
|
||||
#define SYS_sigsuspend __NR_sigsuspend
|
||||
#undef __NR_sigpending
|
||||
#define __NR_sigpending (0 + 73)
|
||||
#define SYS_sigpending __NR_sigpending
|
||||
#undef __NR_sethostname
|
||||
#define __NR_sethostname (0 + 74)
|
||||
#define SYS_sethostname __NR_sethostname
|
||||
#undef __NR_setrlimit
|
||||
#define __NR_setrlimit (0 + 75)
|
||||
#define SYS_setrlimit __NR_setrlimit
|
||||
#undef __NR_getrlimit
|
||||
#define __NR_getrlimit __NR_getrlimit
|
||||
#define SYS_getrlimit __NR_getrlimit
|
||||
#undef __NR_getrusage
|
||||
#define __NR_getrusage (0 + 77)
|
||||
#define SYS_getrusage __NR_getrusage
|
||||
#undef __NR_gettimeofday
|
||||
#define __NR_gettimeofday (0 + 78)
|
||||
#define SYS_gettimeofday __NR_gettimeofday
|
||||
#undef __NR_settimeofday
|
||||
#define __NR_settimeofday (0 + 79)
|
||||
#define SYS_settimeofday __NR_settimeofday
|
||||
#undef __NR_getgroups
|
||||
#define __NR_getgroups (0 + 80)
|
||||
#define SYS_getgroups __NR_getgroups
|
||||
#undef __NR_setgroups
|
||||
#define __NR_setgroups (0 + 81)
|
||||
#define SYS_setgroups __NR_setgroups
|
||||
#undef __NR_select
|
||||
#define __NR_select __NR_select
|
||||
#define SYS_select __NR_select
|
||||
#undef __NR_symlink
|
||||
#define __NR_symlink (0 + 83)
|
||||
#define SYS_symlink __NR_symlink
|
||||
#undef __NR_readlink
|
||||
#define __NR_readlink (0 + 85)
|
||||
#define SYS_readlink __NR_readlink
|
||||
#undef __NR_uselib
|
||||
#define __NR_uselib (0 + 86)
|
||||
#define SYS_uselib __NR_uselib
|
||||
#undef __NR_swapon
|
||||
#define __NR_swapon (0 + 87)
|
||||
#define SYS_swapon __NR_swapon
|
||||
#undef __NR_reboot
|
||||
#define __NR_reboot (0 + 88)
|
||||
#define SYS_reboot __NR_reboot
|
||||
#undef __NR_readdir
|
||||
#define __NR_readdir __NR_readdir
|
||||
#define SYS_readdir __NR_readdir
|
||||
#undef __NR_mmap
|
||||
#define __NR_mmap __NR_mmap
|
||||
#define SYS_mmap __NR_mmap
|
||||
#undef __NR_munmap
|
||||
#define __NR_munmap (0 + 91)
|
||||
#define SYS_munmap __NR_munmap
|
||||
#undef __NR_truncate
|
||||
#define __NR_truncate (0 + 92)
|
||||
#define SYS_truncate __NR_truncate
|
||||
#undef __NR_ftruncate
|
||||
#define __NR_ftruncate (0 + 93)
|
||||
#define SYS_ftruncate __NR_ftruncate
|
||||
#undef __NR_fchmod
|
||||
#define __NR_fchmod (0 + 94)
|
||||
#define SYS_fchmod __NR_fchmod
|
||||
#undef __NR_fchown
|
||||
#define __NR_fchown (0 + 95)
|
||||
#define SYS_fchown __NR_fchown
|
||||
#undef __NR_getpriority
|
||||
#define __NR_getpriority (0 + 96)
|
||||
#define SYS_getpriority __NR_getpriority
|
||||
#undef __NR_setpriority
|
||||
#define __NR_setpriority (0 + 97)
|
||||
#define SYS_setpriority __NR_setpriority
|
||||
#undef __NR_statfs
|
||||
#define __NR_statfs (0 + 99)
|
||||
#define SYS_statfs __NR_statfs
|
||||
#undef __NR_fstatfs
|
||||
#define __NR_fstatfs (0 +100)
|
||||
#define SYS_fstatfs __NR_fstatfs
|
||||
#undef __NR_socketcall
|
||||
#define __NR_socketcall __NR_socketcall
|
||||
#define SYS_socketcall __NR_socketcall
|
||||
#undef __NR_syslog
|
||||
#define __NR_syslog (0 +103)
|
||||
#define SYS_syslog __NR_syslog
|
||||
#undef __NR_setitimer
|
||||
#define __NR_setitimer (0 +104)
|
||||
#define SYS_setitimer __NR_setitimer
|
||||
#undef __NR_getitimer
|
||||
#define __NR_getitimer (0 +105)
|
||||
#define SYS_getitimer __NR_getitimer
|
||||
#undef __NR_stat
|
||||
#define __NR_stat (0 +106)
|
||||
#define SYS_stat __NR_stat
|
||||
#undef __NR_lstat
|
||||
#define __NR_lstat (0 +107)
|
||||
#define SYS_lstat __NR_lstat
|
||||
#undef __NR_fstat
|
||||
#define __NR_fstat (0 +108)
|
||||
#define SYS_fstat __NR_fstat
|
||||
#undef __NR_vhangup
|
||||
#define __NR_vhangup (0 +111)
|
||||
#define SYS_vhangup __NR_vhangup
|
||||
#undef __NR_syscall
|
||||
#define __NR_syscall __NR_syscall
|
||||
#define SYS_syscall __NR_syscall
|
||||
#undef __NR_wait4
|
||||
#define __NR_wait4 (0 +114)
|
||||
#define SYS_wait4 __NR_wait4
|
||||
#undef __NR_swapoff
|
||||
#define __NR_swapoff (0 +115)
|
||||
#define SYS_swapoff __NR_swapoff
|
||||
#undef __NR_sysinfo
|
||||
#define __NR_sysinfo (0 +116)
|
||||
#define SYS_sysinfo __NR_sysinfo
|
||||
#undef __NR_ipc
|
||||
#define __NR_ipc __NR_ipc
|
||||
#define SYS_ipc __NR_ipc
|
||||
#undef __NR_fsync
|
||||
#define __NR_fsync (0 +118)
|
||||
#define SYS_fsync __NR_fsync
|
||||
#undef __NR_sigreturn
|
||||
#define __NR_sigreturn (0 +119)
|
||||
#define SYS_sigreturn __NR_sigreturn
|
||||
#undef __NR_clone
|
||||
#define __NR_clone (0 +120)
|
||||
#define SYS_clone __NR_clone
|
||||
#undef __NR_setdomainname
|
||||
#define __NR_setdomainname (0 +121)
|
||||
#define SYS_setdomainname __NR_setdomainname
|
||||
#undef __NR_uname
|
||||
#define __NR_uname (0 +122)
|
||||
#define SYS_uname __NR_uname
|
||||
#undef __NR_adjtimex
|
||||
#define __NR_adjtimex (0 +124)
|
||||
#define SYS_adjtimex __NR_adjtimex
|
||||
#undef __NR_mprotect
|
||||
#define __NR_mprotect (0 +125)
|
||||
#define SYS_mprotect __NR_mprotect
|
||||
#undef __NR_sigprocmask
|
||||
#define __NR_sigprocmask (0 +126)
|
||||
#define SYS_sigprocmask __NR_sigprocmask
|
||||
#undef __NR_init_module
|
||||
#define __NR_init_module (0 +128)
|
||||
#define SYS_init_module __NR_init_module
|
||||
#undef __NR_delete_module
|
||||
#define __NR_delete_module (0 +129)
|
||||
#define SYS_delete_module __NR_delete_module
|
||||
#undef __NR_quotactl
|
||||
#define __NR_quotactl (0 +131)
|
||||
#define SYS_quotactl __NR_quotactl
|
||||
#undef __NR_getpgid
|
||||
#define __NR_getpgid (0 +132)
|
||||
#define SYS_getpgid __NR_getpgid
|
||||
#undef __NR_fchdir
|
||||
#define __NR_fchdir (0 +133)
|
||||
#define SYS_fchdir __NR_fchdir
|
||||
#undef __NR_bdflush
|
||||
#define __NR_bdflush (0 +134)
|
||||
#define SYS_bdflush __NR_bdflush
|
||||
#undef __NR_sysfs
|
||||
#define __NR_sysfs (0 +135)
|
||||
#define SYS_sysfs __NR_sysfs
|
||||
#undef __NR_personality
|
||||
#define __NR_personality (0 +136)
|
||||
#define SYS_personality __NR_personality
|
||||
#undef __NR_setfsuid
|
||||
#define __NR_setfsuid (0 +138)
|
||||
#define SYS_setfsuid __NR_setfsuid
|
||||
#undef __NR_setfsgid
|
||||
#define __NR_setfsgid (0 +139)
|
||||
#define SYS_setfsgid __NR_setfsgid
|
||||
#undef __NR__llseek
|
||||
#define __NR__llseek (0 +140)
|
||||
#define SYS__llseek __NR__llseek
|
||||
#undef __NR_getdents
|
||||
#define __NR_getdents (0 +141)
|
||||
#define SYS_getdents __NR_getdents
|
||||
#undef __NR__newselect
|
||||
#define __NR__newselect (0 +142)
|
||||
#define SYS__newselect __NR__newselect
|
||||
#undef __NR_flock
|
||||
#define __NR_flock (0 +143)
|
||||
#define SYS_flock __NR_flock
|
||||
#undef __NR_msync
|
||||
#define __NR_msync (0 +144)
|
||||
#define SYS_msync __NR_msync
|
||||
#undef __NR_readv
|
||||
#define __NR_readv (0 +145)
|
||||
#define SYS_readv __NR_readv
|
||||
#undef __NR_writev
|
||||
#define __NR_writev (0 +146)
|
||||
#define SYS_writev __NR_writev
|
||||
#undef __NR_getsid
|
||||
#define __NR_getsid (0 +147)
|
||||
#define SYS_getsid __NR_getsid
|
||||
#undef __NR_fdatasync
|
||||
#define __NR_fdatasync (0 +148)
|
||||
#define SYS_fdatasync __NR_fdatasync
|
||||
#undef __NR__sysctl
|
||||
#define __NR__sysctl (0 +149)
|
||||
#define SYS__sysctl __NR__sysctl
|
||||
#undef __NR_mlock
|
||||
#define __NR_mlock (0 +150)
|
||||
#define SYS_mlock __NR_mlock
|
||||
#undef __NR_munlock
|
||||
#define __NR_munlock (0 +151)
|
||||
#define SYS_munlock __NR_munlock
|
||||
#undef __NR_mlockall
|
||||
#define __NR_mlockall (0 +152)
|
||||
#define SYS_mlockall __NR_mlockall
|
||||
#undef __NR_munlockall
|
||||
#define __NR_munlockall (0 +153)
|
||||
#define SYS_munlockall __NR_munlockall
|
||||
#undef __NR_sched_setparam
|
||||
#define __NR_sched_setparam (0 +154)
|
||||
#define SYS_sched_setparam __NR_sched_setparam
|
||||
#undef __NR_sched_getparam
|
||||
#define __NR_sched_getparam (0 +155)
|
||||
#define SYS_sched_getparam __NR_sched_getparam
|
||||
#undef __NR_sched_setscheduler
|
||||
#define __NR_sched_setscheduler (0 +156)
|
||||
#define SYS_sched_setscheduler __NR_sched_setscheduler
|
||||
#undef __NR_sched_getscheduler
|
||||
#define __NR_sched_getscheduler (0 +157)
|
||||
#define SYS_sched_getscheduler __NR_sched_getscheduler
|
||||
#undef __NR_sched_yield
|
||||
#define __NR_sched_yield (0 +158)
|
||||
#define SYS_sched_yield __NR_sched_yield
|
||||
#undef __NR_sched_get_priority_max
|
||||
#define __NR_sched_get_priority_max (0 +159)
|
||||
#define SYS_sched_get_priority_max __NR_sched_get_priority_max
|
||||
#undef __NR_sched_get_priority_min
|
||||
#define __NR_sched_get_priority_min (0 +160)
|
||||
#define SYS_sched_get_priority_min __NR_sched_get_priority_min
|
||||
#undef __NR_sched_rr_get_interval
|
||||
#define __NR_sched_rr_get_interval (0 +161)
|
||||
#define SYS_sched_rr_get_interval __NR_sched_rr_get_interval
|
||||
#undef __NR_nanosleep
|
||||
#define __NR_nanosleep (0 +162)
|
||||
#define SYS_nanosleep __NR_nanosleep
|
||||
#undef __NR_mremap
|
||||
#define __NR_mremap (0 +163)
|
||||
#define SYS_mremap __NR_mremap
|
||||
#undef __NR_setresuid
|
||||
#define __NR_setresuid (0 +164)
|
||||
#define SYS_setresuid __NR_setresuid
|
||||
#undef __NR_getresuid
|
||||
#define __NR_getresuid (0 +165)
|
||||
#define SYS_getresuid __NR_getresuid
|
||||
#undef __NR_poll
|
||||
#define __NR_poll (0 +168)
|
||||
#define SYS_poll __NR_poll
|
||||
#undef __NR_nfsservctl
|
||||
#define __NR_nfsservctl (0 +169)
|
||||
#define SYS_nfsservctl __NR_nfsservctl
|
||||
#undef __NR_setresgid
|
||||
#define __NR_setresgid (0 +170)
|
||||
#define SYS_setresgid __NR_setresgid
|
||||
#undef __NR_getresgid
|
||||
#define __NR_getresgid (0 +171)
|
||||
#define SYS_getresgid __NR_getresgid
|
||||
#undef __NR_prctl
|
||||
#define __NR_prctl (0 +172)
|
||||
#define SYS_prctl __NR_prctl
|
||||
#undef __NR_rt_sigreturn
|
||||
#define __NR_rt_sigreturn (0 +173)
|
||||
#define SYS_rt_sigreturn __NR_rt_sigreturn
|
||||
#undef __NR_rt_sigaction
|
||||
#define __NR_rt_sigaction (0 +174)
|
||||
#define SYS_rt_sigaction __NR_rt_sigaction
|
||||
#undef __NR_rt_sigprocmask
|
||||
#define __NR_rt_sigprocmask (0 +175)
|
||||
#define SYS_rt_sigprocmask __NR_rt_sigprocmask
|
||||
#undef __NR_rt_sigpending
|
||||
#define __NR_rt_sigpending (0 +176)
|
||||
#define SYS_rt_sigpending __NR_rt_sigpending
|
||||
#undef __NR_rt_sigtimedwait
|
||||
#define __NR_rt_sigtimedwait (0 +177)
|
||||
#define SYS_rt_sigtimedwait __NR_rt_sigtimedwait
|
||||
#undef __NR_rt_sigqueueinfo
|
||||
#define __NR_rt_sigqueueinfo (0 +178)
|
||||
#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo
|
||||
#undef __NR_rt_sigsuspend
|
||||
#define __NR_rt_sigsuspend (0 +179)
|
||||
#define SYS_rt_sigsuspend __NR_rt_sigsuspend
|
||||
#undef __NR_pread64
|
||||
#define __NR_pread64 (0 +180)
|
||||
#define SYS_pread64 __NR_pread64
|
||||
#undef __NR_pwrite64
|
||||
#define __NR_pwrite64 (0 +181)
|
||||
#define SYS_pwrite64 __NR_pwrite64
|
||||
#undef __NR_chown
|
||||
#define __NR_chown (0 +182)
|
||||
#define SYS_chown __NR_chown
|
||||
#undef __NR_getcwd
|
||||
#define __NR_getcwd (0 +183)
|
||||
#define SYS_getcwd __NR_getcwd
|
||||
#undef __NR_capget
|
||||
#define __NR_capget (0 +184)
|
||||
#define SYS_capget __NR_capget
|
||||
#undef __NR_capset
|
||||
#define __NR_capset (0 +185)
|
||||
#define SYS_capset __NR_capset
|
||||
#undef __NR_sigaltstack
|
||||
#define __NR_sigaltstack (0 +186)
|
||||
#define SYS_sigaltstack __NR_sigaltstack
|
||||
#undef __NR_sendfile
|
||||
#define __NR_sendfile (0 +187)
|
||||
#define SYS_sendfile __NR_sendfile
|
||||
#undef __NR_vfork
|
||||
#define __NR_vfork (0 +190)
|
||||
#define SYS_vfork __NR_vfork
|
||||
#undef __NR_ugetrlimit
|
||||
#define __NR_ugetrlimit (0 +191)
|
||||
#define SYS_ugetrlimit __NR_ugetrlimit
|
||||
#undef __NR_mmap2
|
||||
#define __NR_mmap2 (0 +192)
|
||||
#define SYS_mmap2 __NR_mmap2
|
||||
#undef __NR_truncate64
|
||||
#define __NR_truncate64 (0 +193)
|
||||
#define SYS_truncate64 __NR_truncate64
|
||||
#undef __NR_ftruncate64
|
||||
#define __NR_ftruncate64 (0 +194)
|
||||
#define SYS_ftruncate64 __NR_ftruncate64
|
||||
#undef __NR_stat64
|
||||
#define __NR_stat64 (0 +195)
|
||||
#define SYS_stat64 __NR_stat64
|
||||
#undef __NR_lstat64
|
||||
#define __NR_lstat64 (0 +196)
|
||||
#define SYS_lstat64 __NR_lstat64
|
||||
#undef __NR_fstat64
|
||||
#define __NR_fstat64 (0 +197)
|
||||
#define SYS_fstat64 __NR_fstat64
|
||||
#undef __NR_lchown32
|
||||
#define __NR_lchown32 (0 +198)
|
||||
#define SYS_lchown32 __NR_lchown32
|
||||
#undef __NR_getuid32
|
||||
#define __NR_getuid32 (0 +199)
|
||||
#define SYS_getuid32 __NR_getuid32
|
||||
#undef __NR_getgid32
|
||||
#define __NR_getgid32 (0 +200)
|
||||
#define SYS_getgid32 __NR_getgid32
|
||||
#undef __NR_geteuid32
|
||||
#define __NR_geteuid32 (0 +201)
|
||||
#define SYS_geteuid32 __NR_geteuid32
|
||||
#undef __NR_getegid32
|
||||
#define __NR_getegid32 (0 +202)
|
||||
#define SYS_getegid32 __NR_getegid32
|
||||
#undef __NR_setreuid32
|
||||
#define __NR_setreuid32 (0 +203)
|
||||
#define SYS_setreuid32 __NR_setreuid32
|
||||
#undef __NR_setregid32
|
||||
#define __NR_setregid32 (0 +204)
|
||||
#define SYS_setregid32 __NR_setregid32
|
||||
#undef __NR_getgroups32
|
||||
#define __NR_getgroups32 (0 +205)
|
||||
#define SYS_getgroups32 __NR_getgroups32
|
||||
#undef __NR_setgroups32
|
||||
#define __NR_setgroups32 (0 +206)
|
||||
#define SYS_setgroups32 __NR_setgroups32
|
||||
#undef __NR_fchown32
|
||||
#define __NR_fchown32 (0 +207)
|
||||
#define SYS_fchown32 __NR_fchown32
|
||||
#undef __NR_setresuid32
|
||||
#define __NR_setresuid32 (0 +208)
|
||||
#define SYS_setresuid32 __NR_setresuid32
|
||||
#undef __NR_getresuid32
|
||||
#define __NR_getresuid32 (0 +209)
|
||||
#define SYS_getresuid32 __NR_getresuid32
|
||||
#undef __NR_setresgid32
|
||||
#define __NR_setresgid32 (0 +210)
|
||||
#define SYS_setresgid32 __NR_setresgid32
|
||||
#undef __NR_getresgid32
|
||||
#define __NR_getresgid32 (0 +211)
|
||||
#define SYS_getresgid32 __NR_getresgid32
|
||||
#undef __NR_chown32
|
||||
#define __NR_chown32 (0 +212)
|
||||
#define SYS_chown32 __NR_chown32
|
||||
#undef __NR_setuid32
|
||||
#define __NR_setuid32 (0 +213)
|
||||
#define SYS_setuid32 __NR_setuid32
|
||||
#undef __NR_setgid32
|
||||
#define __NR_setgid32 (0 +214)
|
||||
#define SYS_setgid32 __NR_setgid32
|
||||
#undef __NR_setfsuid32
|
||||
#define __NR_setfsuid32 (0 +215)
|
||||
#define SYS_setfsuid32 __NR_setfsuid32
|
||||
#undef __NR_setfsgid32
|
||||
#define __NR_setfsgid32 (0 +216)
|
||||
#define SYS_setfsgid32 __NR_setfsgid32
|
||||
#undef __NR_getdents64
|
||||
#define __NR_getdents64 (0 +217)
|
||||
#define SYS_getdents64 __NR_getdents64
|
||||
#undef __NR_pivot_root
|
||||
#define __NR_pivot_root (0 +218)
|
||||
#define SYS_pivot_root __NR_pivot_root
|
||||
#undef __NR_mincore
|
||||
#define __NR_mincore (0 +219)
|
||||
#define SYS_mincore __NR_mincore
|
||||
#undef __NR_madvise
|
||||
#define __NR_madvise (0 +220)
|
||||
#define SYS_madvise __NR_madvise
|
||||
#undef __NR_fcntl64
|
||||
#define __NR_fcntl64 (0 +221)
|
||||
#define SYS_fcntl64 __NR_fcntl64
|
||||
#undef __NR_gettid
|
||||
#define __NR_gettid (0 +224)
|
||||
#define SYS_gettid __NR_gettid
|
||||
#undef __NR_readahead
|
||||
#define __NR_readahead (0 +225)
|
||||
#define SYS_readahead __NR_readahead
|
||||
#undef __NR_setxattr
|
||||
#define __NR_setxattr (0 +226)
|
||||
#define SYS_setxattr __NR_setxattr
|
||||
#undef __NR_lsetxattr
|
||||
#define __NR_lsetxattr (0 +227)
|
||||
#define SYS_lsetxattr __NR_lsetxattr
|
||||
#undef __NR_fsetxattr
|
||||
#define __NR_fsetxattr (0 +228)
|
||||
#define SYS_fsetxattr __NR_fsetxattr
|
||||
#undef __NR_getxattr
|
||||
#define __NR_getxattr (0 +229)
|
||||
#define SYS_getxattr __NR_getxattr
|
||||
#undef __NR_lgetxattr
|
||||
#define __NR_lgetxattr (0 +230)
|
||||
#define SYS_lgetxattr __NR_lgetxattr
|
||||
#undef __NR_fgetxattr
|
||||
#define __NR_fgetxattr (0 +231)
|
||||
#define SYS_fgetxattr __NR_fgetxattr
|
||||
#undef __NR_listxattr
|
||||
#define __NR_listxattr (0 +232)
|
||||
#define SYS_listxattr __NR_listxattr
|
||||
#undef __NR_llistxattr
|
||||
#define __NR_llistxattr (0 +233)
|
||||
#define SYS_llistxattr __NR_llistxattr
|
||||
#undef __NR_flistxattr
|
||||
#define __NR_flistxattr (0 +234)
|
||||
#define SYS_flistxattr __NR_flistxattr
|
||||
#undef __NR_removexattr
|
||||
#define __NR_removexattr (0 +235)
|
||||
#define SYS_removexattr __NR_removexattr
|
||||
#undef __NR_lremovexattr
|
||||
#define __NR_lremovexattr (0 +236)
|
||||
#define SYS_lremovexattr __NR_lremovexattr
|
||||
#undef __NR_fremovexattr
|
||||
#define __NR_fremovexattr (0 +237)
|
||||
#define SYS_fremovexattr __NR_fremovexattr
|
||||
#undef __NR_tkill
|
||||
#define __NR_tkill (0 +238)
|
||||
#define SYS_tkill __NR_tkill
|
||||
#undef __NR_sendfile64
|
||||
#define __NR_sendfile64 (0 +239)
|
||||
#define SYS_sendfile64 __NR_sendfile64
|
||||
#undef __NR_futex
|
||||
#define __NR_futex (0 +240)
|
||||
#define SYS_futex __NR_futex
|
||||
#undef __NR_sched_setaffinity
|
||||
#define __NR_sched_setaffinity (0 +241)
|
||||
#define SYS_sched_setaffinity __NR_sched_setaffinity
|
||||
#undef __NR_sched_getaffinity
|
||||
#define __NR_sched_getaffinity (0 +242)
|
||||
#define SYS_sched_getaffinity __NR_sched_getaffinity
|
||||
#undef __NR_io_setup
|
||||
#define __NR_io_setup (0 +243)
|
||||
#define SYS_io_setup __NR_io_setup
|
||||
#undef __NR_io_destroy
|
||||
#define __NR_io_destroy (0 +244)
|
||||
#define SYS_io_destroy __NR_io_destroy
|
||||
#undef __NR_io_getevents
|
||||
#define __NR_io_getevents (0 +245)
|
||||
#define SYS_io_getevents __NR_io_getevents
|
||||
#undef __NR_io_submit
|
||||
#define __NR_io_submit (0 +246)
|
||||
#define SYS_io_submit __NR_io_submit
|
||||
#undef __NR_io_cancel
|
||||
#define __NR_io_cancel (0 +247)
|
||||
#define SYS_io_cancel __NR_io_cancel
|
||||
#undef __NR_exit_group
|
||||
#define __NR_exit_group (0 +248)
|
||||
#define SYS_exit_group __NR_exit_group
|
||||
#undef __NR_lookup_dcookie
|
||||
#define __NR_lookup_dcookie (0 +249)
|
||||
#define SYS_lookup_dcookie __NR_lookup_dcookie
|
||||
#undef __NR_epoll_create
|
||||
#define __NR_epoll_create (0 +250)
|
||||
#define SYS_epoll_create __NR_epoll_create
|
||||
#undef __NR_epoll_ctl
|
||||
#define __NR_epoll_ctl (0 +251)
|
||||
#define SYS_epoll_ctl __NR_epoll_ctl
|
||||
#undef __NR_epoll_wait
|
||||
#define __NR_epoll_wait (0 +252)
|
||||
#define SYS_epoll_wait __NR_epoll_wait
|
||||
#undef __NR_remap_file_pages
|
||||
#define __NR_remap_file_pages (0 +253)
|
||||
#define SYS_remap_file_pages __NR_remap_file_pages
|
||||
#undef __NR_set_tid_address
|
||||
#define __NR_set_tid_address (0 +256)
|
||||
#define SYS_set_tid_address __NR_set_tid_address
|
||||
#undef __NR_timer_create
|
||||
#define __NR_timer_create (0 +257)
|
||||
#define SYS_timer_create __NR_timer_create
|
||||
#undef __NR_timer_settime
|
||||
#define __NR_timer_settime (0 +258)
|
||||
#define SYS_timer_settime __NR_timer_settime
|
||||
#undef __NR_timer_gettime
|
||||
#define __NR_timer_gettime (0 +259)
|
||||
#define SYS_timer_gettime __NR_timer_gettime
|
||||
#undef __NR_timer_getoverrun
|
||||
#define __NR_timer_getoverrun (0 +260)
|
||||
#define SYS_timer_getoverrun __NR_timer_getoverrun
|
||||
#undef __NR_timer_delete
|
||||
#define __NR_timer_delete (0 +261)
|
||||
#define SYS_timer_delete __NR_timer_delete
|
||||
#undef __NR_clock_settime
|
||||
#define __NR_clock_settime (0 +262)
|
||||
#define SYS_clock_settime __NR_clock_settime
|
||||
#undef __NR_clock_gettime
|
||||
#define __NR_clock_gettime (0 +263)
|
||||
#define SYS_clock_gettime __NR_clock_gettime
|
||||
#undef __NR_clock_getres
|
||||
#define __NR_clock_getres (0 +264)
|
||||
#define SYS_clock_getres __NR_clock_getres
|
||||
#undef __NR_clock_nanosleep
|
||||
#define __NR_clock_nanosleep (0 +265)
|
||||
#define SYS_clock_nanosleep __NR_clock_nanosleep
|
||||
#undef __NR_statfs64
|
||||
#define __NR_statfs64 (0 +266)
|
||||
#define SYS_statfs64 __NR_statfs64
|
||||
#undef __NR_fstatfs64
|
||||
#define __NR_fstatfs64 (0 +267)
|
||||
#define SYS_fstatfs64 __NR_fstatfs64
|
||||
#undef __NR_tgkill
|
||||
#define __NR_tgkill (0 +268)
|
||||
#define SYS_tgkill __NR_tgkill
|
||||
#undef __NR_utimes
|
||||
#define __NR_utimes (0 +269)
|
||||
#define SYS_utimes __NR_utimes
|
||||
#undef __NR_arm_fadvise64_64
|
||||
#define __NR_arm_fadvise64_64 (0 +270)
|
||||
#define SYS_arm_fadvise64_64 __NR_arm_fadvise64_64
|
||||
#undef __NR_pciconfig_iobase
|
||||
#define __NR_pciconfig_iobase (0 +271)
|
||||
#define SYS_pciconfig_iobase __NR_pciconfig_iobase
|
||||
#undef __NR_pciconfig_read
|
||||
#define __NR_pciconfig_read (0 +272)
|
||||
#define SYS_pciconfig_read __NR_pciconfig_read
|
||||
#undef __NR_pciconfig_write
|
||||
#define __NR_pciconfig_write (0 +273)
|
||||
#define SYS_pciconfig_write __NR_pciconfig_write
|
||||
#undef __NR_mq_open
|
||||
#define __NR_mq_open (0 +274)
|
||||
#define SYS_mq_open __NR_mq_open
|
||||
#undef __NR_mq_unlink
|
||||
#define __NR_mq_unlink (0 +275)
|
||||
#define SYS_mq_unlink __NR_mq_unlink
|
||||
#undef __NR_mq_timedsend
|
||||
#define __NR_mq_timedsend (0 +276)
|
||||
#define SYS_mq_timedsend __NR_mq_timedsend
|
||||
#undef __NR_mq_timedreceive
|
||||
#define __NR_mq_timedreceive (0 +277)
|
||||
#define SYS_mq_timedreceive __NR_mq_timedreceive
|
||||
#undef __NR_mq_notify
|
||||
#define __NR_mq_notify (0 +278)
|
||||
#define SYS_mq_notify __NR_mq_notify
|
||||
#undef __NR_mq_getsetattr
|
||||
#define __NR_mq_getsetattr (0 +279)
|
||||
#define SYS_mq_getsetattr __NR_mq_getsetattr
|
||||
#undef __NR_waitid
|
||||
#define __NR_waitid (0 +280)
|
||||
#define SYS_waitid __NR_waitid
|
||||
#undef __NR_socket
|
||||
#define __NR_socket (0 +281)
|
||||
#define SYS_socket __NR_socket
|
||||
#undef __NR_bind
|
||||
#define __NR_bind (0 +282)
|
||||
#define SYS_bind __NR_bind
|
||||
#undef __NR_connect
|
||||
#define __NR_connect (0 +283)
|
||||
#define SYS_connect __NR_connect
|
||||
#undef __NR_listen
|
||||
#define __NR_listen (0 +284)
|
||||
#define SYS_listen __NR_listen
|
||||
#undef __NR_accept
|
||||
#define __NR_accept (0 +285)
|
||||
#define SYS_accept __NR_accept
|
||||
#undef __NR_getsockname
|
||||
#define __NR_getsockname (0 +286)
|
||||
#define SYS_getsockname __NR_getsockname
|
||||
#undef __NR_getpeername
|
||||
#define __NR_getpeername (0 +287)
|
||||
#define SYS_getpeername __NR_getpeername
|
||||
#undef __NR_socketpair
|
||||
#define __NR_socketpair (0 +288)
|
||||
#define SYS_socketpair __NR_socketpair
|
||||
#undef __NR_send
|
||||
#define __NR_send (0 +289)
|
||||
#define SYS_send __NR_send
|
||||
#undef __NR_sendto
|
||||
#define __NR_sendto (0 +290)
|
||||
#define SYS_sendto __NR_sendto
|
||||
#undef __NR_recv
|
||||
#define __NR_recv (0 +291)
|
||||
#define SYS_recv __NR_recv
|
||||
#undef __NR_recvfrom
|
||||
#define __NR_recvfrom (0 +292)
|
||||
#define SYS_recvfrom __NR_recvfrom
|
||||
#undef __NR_shutdown
|
||||
#define __NR_shutdown (0 +293)
|
||||
#define SYS_shutdown __NR_shutdown
|
||||
#undef __NR_setsockopt
|
||||
#define __NR_setsockopt (0 +294)
|
||||
#define SYS_setsockopt __NR_setsockopt
|
||||
#undef __NR_getsockopt
|
||||
#define __NR_getsockopt (0 +295)
|
||||
#define SYS_getsockopt __NR_getsockopt
|
||||
#undef __NR_sendmsg
|
||||
#define __NR_sendmsg (0 +296)
|
||||
#define SYS_sendmsg __NR_sendmsg
|
||||
#undef __NR_recvmsg
|
||||
#define __NR_recvmsg (0 +297)
|
||||
#define SYS_recvmsg __NR_recvmsg
|
||||
#undef __NR_semop
|
||||
#define __NR_semop (0 +298)
|
||||
#define SYS_semop __NR_semop
|
||||
#undef __NR_semget
|
||||
#define __NR_semget (0 +299)
|
||||
#define SYS_semget __NR_semget
|
||||
#undef __NR_semctl
|
||||
#define __NR_semctl (0 +300)
|
||||
#define SYS_semctl __NR_semctl
|
||||
#undef __NR_msgsnd
|
||||
#define __NR_msgsnd (0 +301)
|
||||
#define SYS_msgsnd __NR_msgsnd
|
||||
#undef __NR_msgrcv
|
||||
#define __NR_msgrcv (0 +302)
|
||||
#define SYS_msgrcv __NR_msgrcv
|
||||
#undef __NR_msgget
|
||||
#define __NR_msgget (0 +303)
|
||||
#define SYS_msgget __NR_msgget
|
||||
#undef __NR_msgctl
|
||||
#define __NR_msgctl (0 +304)
|
||||
#define SYS_msgctl __NR_msgctl
|
||||
#undef __NR_shmat
|
||||
#define __NR_shmat (0 +305)
|
||||
#define SYS_shmat __NR_shmat
|
||||
#undef __NR_shmdt
|
||||
#define __NR_shmdt (0 +306)
|
||||
#define SYS_shmdt __NR_shmdt
|
||||
#undef __NR_shmget
|
||||
#define __NR_shmget (0 +307)
|
||||
#define SYS_shmget __NR_shmget
|
||||
#undef __NR_shmctl
|
||||
#define __NR_shmctl (0 +308)
|
||||
#define SYS_shmctl __NR_shmctl
|
||||
#undef __NR_add_key
|
||||
#define __NR_add_key (0 +309)
|
||||
#define SYS_add_key __NR_add_key
|
||||
#undef __NR_request_key
|
||||
#define __NR_request_key (0 +310)
|
||||
#define SYS_request_key __NR_request_key
|
||||
#undef __NR_keyctl
|
||||
#define __NR_keyctl (0 +311)
|
||||
#define SYS_keyctl __NR_keyctl
|
||||
#undef __NR_semtimedop
|
||||
#define __NR_semtimedop (0 +312)
|
||||
#define SYS_semtimedop __NR_semtimedop
|
||||
#undef __NR_vserver
|
||||
#define __NR_vserver (0 +313)
|
||||
#define SYS_vserver __NR_vserver
|
||||
#undef __NR_ioprio_set
|
||||
#define __NR_ioprio_set (0 +314)
|
||||
#define SYS_ioprio_set __NR_ioprio_set
|
||||
#undef __NR_ioprio_get
|
||||
#define __NR_ioprio_get (0 +315)
|
||||
#define SYS_ioprio_get __NR_ioprio_get
|
||||
#undef __NR_inotify_init
|
||||
#define __NR_inotify_init (0 +316)
|
||||
#define SYS_inotify_init __NR_inotify_init
|
||||
#undef __NR_inotify_add_watch
|
||||
#define __NR_inotify_add_watch (0 +317)
|
||||
#define SYS_inotify_add_watch __NR_inotify_add_watch
|
||||
#undef __NR_inotify_rm_watch
|
||||
#define __NR_inotify_rm_watch (0 +318)
|
||||
#define SYS_inotify_rm_watch __NR_inotify_rm_watch
|
||||
#undef __NR_mbind
|
||||
#define __NR_mbind (0 +319)
|
||||
#define SYS_mbind __NR_mbind
|
||||
#undef __NR_get_mempolicy
|
||||
#define __NR_get_mempolicy (0 +320)
|
||||
#define SYS_get_mempolicy __NR_get_mempolicy
|
||||
#undef __NR_set_mempolicy
|
||||
#define __NR_set_mempolicy (0 +321)
|
||||
#define SYS_set_mempolicy __NR_set_mempolicy
|
||||
#undef __NR_openat
|
||||
#define __NR_openat (0 +322)
|
||||
#define SYS_openat __NR_openat
|
||||
#undef __NR_mkdirat
|
||||
#define __NR_mkdirat (0 +323)
|
||||
#define SYS_mkdirat __NR_mkdirat
|
||||
#undef __NR_mknodat
|
||||
#define __NR_mknodat (0 +324)
|
||||
#define SYS_mknodat __NR_mknodat
|
||||
#undef __NR_fchownat
|
||||
#define __NR_fchownat (0 +325)
|
||||
#define SYS_fchownat __NR_fchownat
|
||||
#undef __NR_futimesat
|
||||
#define __NR_futimesat (0 +326)
|
||||
#define SYS_futimesat __NR_futimesat
|
||||
#undef __NR_fstatat64
|
||||
#define __NR_fstatat64 (0 +327)
|
||||
#define SYS_fstatat64 __NR_fstatat64
|
||||
#undef __NR_unlinkat
|
||||
#define __NR_unlinkat (0 +328)
|
||||
#define SYS_unlinkat __NR_unlinkat
|
||||
#undef __NR_renameat
|
||||
#define __NR_renameat (0 +329)
|
||||
#define SYS_renameat __NR_renameat
|
||||
#undef __NR_linkat
|
||||
#define __NR_linkat (0 +330)
|
||||
#define SYS_linkat __NR_linkat
|
||||
#undef __NR_symlinkat
|
||||
#define __NR_symlinkat (0 +331)
|
||||
#define SYS_symlinkat __NR_symlinkat
|
||||
#undef __NR_readlinkat
|
||||
#define __NR_readlinkat (0 +332)
|
||||
#define SYS_readlinkat __NR_readlinkat
|
||||
#undef __NR_fchmodat
|
||||
#define __NR_fchmodat (0 +333)
|
||||
#define SYS_fchmodat __NR_fchmodat
|
||||
#undef __NR_faccessat
|
||||
#define __NR_faccessat (0 +334)
|
||||
#define SYS_faccessat __NR_faccessat
|
||||
#undef __NR_unshare
|
||||
#define __NR_unshare (0 +337)
|
||||
#define SYS_unshare __NR_unshare
|
||||
#undef __NR_set_robust_list
|
||||
#define __NR_set_robust_list (0 +338)
|
||||
#define SYS_set_robust_list __NR_set_robust_list
|
||||
#undef __NR_get_robust_list
|
||||
#define __NR_get_robust_list (0 +339)
|
||||
#define SYS_get_robust_list __NR_get_robust_list
|
||||
#undef __NR_splice
|
||||
#define __NR_splice (0 +340)
|
||||
#define SYS_splice __NR_splice
|
||||
#undef __NR_arm_sync_file_range
|
||||
#define __NR_arm_sync_file_range (0 +341)
|
||||
#define SYS_arm_sync_file_range __NR_arm_sync_file_range
|
||||
#undef __NR_sync_file_range2
|
||||
#define __NR_sync_file_range2 (0 +341)
|
||||
#define SYS_sync_file_range2 __NR_sync_file_range2
|
||||
#undef __NR_tee
|
||||
#define __NR_tee (0 +342)
|
||||
#define SYS_tee __NR_tee
|
||||
#undef __NR_vmsplice
|
||||
#define __NR_vmsplice (0 +343)
|
||||
#define SYS_vmsplice __NR_vmsplice
|
||||
#undef __NR_move_pages
|
||||
#define __NR_move_pages (0 +344)
|
||||
#define SYS_move_pages __NR_move_pages
|
||||
#undef __NR_getcpu
|
||||
#define __NR_getcpu (0 +345)
|
||||
#define SYS_getcpu __NR_getcpu
|
||||
#undef __NR_kexec_load
|
||||
#define __NR_kexec_load (0 +347)
|
||||
#define SYS_kexec_load __NR_kexec_load
|
||||
#undef __NR_utimensat
|
||||
#define __NR_utimensat (0 +348)
|
||||
#define SYS_utimensat __NR_utimensat
|
||||
#undef __NR_signalfd
|
||||
#define __NR_signalfd (0 +349)
|
||||
#define SYS_signalfd __NR_signalfd
|
||||
#undef __NR_timerfd
|
||||
#define __NR_timerfd (0 +350)
|
||||
#define SYS_timerfd __NR_timerfd
|
||||
#undef __NR_eventfd
|
||||
#define __NR_eventfd (0 +351)
|
||||
#define SYS_eventfd __NR_eventfd
|
||||
#undef __NR_time
|
||||
#undef __NR_umount
|
||||
#undef __NR_stime
|
||||
#undef __NR_alarm
|
||||
#undef __NR_utime
|
||||
#undef __NR_getrlimit
|
||||
#undef __NR_select
|
||||
#undef __NR_readdir
|
||||
#undef __NR_mmap
|
||||
#undef __NR_socketcall
|
||||
#undef __NR_syscall
|
||||
#undef __NR_ipc
|
||||
|
||||
#endif
|
||||
222
tasks/libposix/include/posix/bits/termios.h
Normal file
222
tasks/libposix/include/posix/bits/termios.h
Normal file
@@ -0,0 +1,222 @@
|
||||
/* termios type and macro definitions. Linux version.
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2005
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _TERMIOS_H
|
||||
# error "Never include <bits/termios.h> directly; use <termios.h> instead."
|
||||
#endif
|
||||
|
||||
typedef unsigned char cc_t;
|
||||
typedef unsigned int speed_t;
|
||||
typedef unsigned int tcflag_t;
|
||||
|
||||
#define NCCS 32
|
||||
struct termios
|
||||
{
|
||||
tcflag_t c_iflag; /* input mode flags */
|
||||
tcflag_t c_oflag; /* output mode flags */
|
||||
tcflag_t c_cflag; /* control mode flags */
|
||||
tcflag_t c_lflag; /* local mode flags */
|
||||
cc_t c_line; /* line discipline */
|
||||
cc_t c_cc[NCCS]; /* control characters */
|
||||
speed_t c_ispeed; /* input speed */
|
||||
speed_t c_ospeed; /* output speed */
|
||||
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
|
||||
#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
|
||||
};
|
||||
|
||||
/* c_cc characters */
|
||||
#define VINTR 0
|
||||
#define VQUIT 1
|
||||
#define VERASE 2
|
||||
#define VKILL 3
|
||||
#define VEOF 4
|
||||
#define VTIME 5
|
||||
#define VMIN 6
|
||||
#define VSWTC 7
|
||||
#define VSTART 8
|
||||
#define VSTOP 9
|
||||
#define VSUSP 10
|
||||
#define VEOL 11
|
||||
#define VREPRINT 12
|
||||
#define VDISCARD 13
|
||||
#define VWERASE 14
|
||||
#define VLNEXT 15
|
||||
#define VEOL2 16
|
||||
|
||||
/* c_iflag bits */
|
||||
#define IGNBRK 0000001
|
||||
#define BRKINT 0000002
|
||||
#define IGNPAR 0000004
|
||||
#define PARMRK 0000010
|
||||
#define INPCK 0000020
|
||||
#define ISTRIP 0000040
|
||||
#define INLCR 0000100
|
||||
#define IGNCR 0000200
|
||||
#define ICRNL 0000400
|
||||
#define IUCLC 0001000
|
||||
#define IXON 0002000
|
||||
#define IXANY 0004000
|
||||
#define IXOFF 0010000
|
||||
#define IMAXBEL 0020000
|
||||
#define IUTF8 0040000
|
||||
|
||||
/* c_oflag bits */
|
||||
#define OPOST 0000001
|
||||
#define OLCUC 0000002
|
||||
#define ONLCR 0000004
|
||||
#define OCRNL 0000010
|
||||
#define ONOCR 0000020
|
||||
#define ONLRET 0000040
|
||||
#define OFILL 0000100
|
||||
#define OFDEL 0000200
|
||||
#if defined __USE_MISC || defined __USE_XOPEN
|
||||
# define NLDLY 0000400
|
||||
# define NL0 0000000
|
||||
# define NL1 0000400
|
||||
# define CRDLY 0003000
|
||||
# define CR0 0000000
|
||||
# define CR1 0001000
|
||||
# define CR2 0002000
|
||||
# define CR3 0003000
|
||||
# define TABDLY 0014000
|
||||
# define TAB0 0000000
|
||||
# define TAB1 0004000
|
||||
# define TAB2 0010000
|
||||
# define TAB3 0014000
|
||||
# define BSDLY 0020000
|
||||
# define BS0 0000000
|
||||
# define BS1 0020000
|
||||
# define FFDLY 0100000
|
||||
# define FF0 0000000
|
||||
# define FF1 0100000
|
||||
#endif
|
||||
|
||||
#define VTDLY 0040000
|
||||
#define VT0 0000000
|
||||
#define VT1 0040000
|
||||
|
||||
#ifdef __USE_MISC
|
||||
# define XTABS 0014000
|
||||
#endif
|
||||
|
||||
/* c_cflag bit meaning */
|
||||
#ifdef __USE_MISC
|
||||
# define CBAUD 0010017
|
||||
#endif
|
||||
#define B0 0000000 /* hang up */
|
||||
#define B50 0000001
|
||||
#define B75 0000002
|
||||
#define B110 0000003
|
||||
#define B134 0000004
|
||||
#define B150 0000005
|
||||
#define B200 0000006
|
||||
#define B300 0000007
|
||||
#define B600 0000010
|
||||
#define B1200 0000011
|
||||
#define B1800 0000012
|
||||
#define B2400 0000013
|
||||
#define B4800 0000014
|
||||
#define B9600 0000015
|
||||
#define B19200 0000016
|
||||
#define B38400 0000017
|
||||
#ifdef __USE_MISC
|
||||
# define EXTA B19200
|
||||
# define EXTB B38400
|
||||
#endif
|
||||
#define CSIZE 0000060
|
||||
#define CS5 0000000
|
||||
#define CS6 0000020
|
||||
#define CS7 0000040
|
||||
#define CS8 0000060
|
||||
#define CSTOPB 0000100
|
||||
#define CREAD 0000200
|
||||
#define PARENB 0000400
|
||||
#define PARODD 0001000
|
||||
#define HUPCL 0002000
|
||||
#define CLOCAL 0004000
|
||||
#ifdef __USE_MISC
|
||||
# define CBAUDEX 0010000
|
||||
#endif
|
||||
#define B57600 0010001
|
||||
#define B115200 0010002
|
||||
#if 0 /* limited on uClibc, keep in sync w/ cfsetspeed.c */
|
||||
#define B230400 0010003
|
||||
#define B460800 0010004
|
||||
#define B500000 0010005
|
||||
#define B576000 0010006
|
||||
#define B921600 0010007
|
||||
#define B1000000 0010010
|
||||
#define B1152000 0010011
|
||||
#define B1500000 0010012
|
||||
#define B2000000 0010013
|
||||
#define B2500000 0010014
|
||||
#define B3000000 0010015
|
||||
#define B3500000 0010016
|
||||
#define B4000000 0010017
|
||||
#define __MAX_BAUD B4000000
|
||||
#else
|
||||
#define __MAX_BAUD B115200
|
||||
#endif
|
||||
#ifdef __USE_MISC
|
||||
# define CIBAUD 002003600000 /* input baud rate (not used) */
|
||||
# define CMSPAR 010000000000 /* mark or space (stick) parity */
|
||||
# define CRTSCTS 020000000000 /* flow control */
|
||||
#endif
|
||||
|
||||
/* c_lflag bits */
|
||||
#define ISIG 0000001
|
||||
#define ICANON 0000002
|
||||
#if defined __USE_MISC || defined __USE_XOPEN
|
||||
# define XCASE 0000004
|
||||
#endif
|
||||
#define ECHO 0000010
|
||||
#define ECHOE 0000020
|
||||
#define ECHOK 0000040
|
||||
#define ECHONL 0000100
|
||||
#define NOFLSH 0000200
|
||||
#define TOSTOP 0000400
|
||||
#ifdef __USE_MISC
|
||||
# define ECHOCTL 0001000
|
||||
# define ECHOPRT 0002000
|
||||
# define ECHOKE 0004000
|
||||
# define FLUSHO 0010000
|
||||
# define PENDIN 0040000
|
||||
#endif
|
||||
#define IEXTEN 0100000
|
||||
|
||||
/* tcflow() and TCXONC use these */
|
||||
#define TCOOFF 0
|
||||
#define TCOON 1
|
||||
#define TCIOFF 2
|
||||
#define TCION 3
|
||||
|
||||
/* tcflush() and TCFLSH use these */
|
||||
#define TCIFLUSH 0
|
||||
#define TCOFLUSH 1
|
||||
#define TCIOFLUSH 2
|
||||
|
||||
/* tcsetattr uses these */
|
||||
#define TCSANOW 0
|
||||
#define TCSADRAIN 1
|
||||
#define TCSAFLUSH 2
|
||||
|
||||
|
||||
#define _IOT_termios /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
|
||||
79
tasks/libposix/include/posix/bits/time.h
Normal file
79
tasks/libposix/include/posix/bits/time.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/* System-dependent timing definitions. Generic version.
|
||||
Copyright (C) 1996,1997,1999-2002,2003 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <time.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef __need_timeval
|
||||
# ifndef _BITS_TIME_H
|
||||
# define _BITS_TIME_H 1
|
||||
|
||||
/* ISO/IEC 9899:1990 7.12.1: <time.h>
|
||||
The macro `CLOCKS_PER_SEC' is the number per second of the value
|
||||
returned by the `clock' function. */
|
||||
/* CAE XSH, Issue 4, Version 2: <time.h>
|
||||
The value of CLOCKS_PER_SEC is required to be 1 million on all
|
||||
XSI-conformant systems. */
|
||||
# define CLOCKS_PER_SEC 1000000l
|
||||
|
||||
/* Get the arch-specific value of __UCLIBC_CLK_TCK_CONST used for CLK_TCK
|
||||
* in sysconf() and clock(). */
|
||||
#include <bits/uClibc_clk_tck.h>
|
||||
|
||||
# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K
|
||||
/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
|
||||
presents the real value for clock ticks per second for the system. */
|
||||
# include <bits/types.h>
|
||||
/* Note (uClibc): glibc #defines CLK_TCK as a sysconf() call. */
|
||||
# define CLK_TCK ((__clock_t) __UCLIBC_CLK_TCK_CONST)
|
||||
# endif
|
||||
|
||||
# ifdef __USE_POSIX199309
|
||||
/* Identifier for system-wide realtime clock. */
|
||||
# define CLOCK_REALTIME 0
|
||||
/* Monotonic system-wide clock. */
|
||||
# define CLOCK_MONOTONIC 1
|
||||
/* High-resolution timer from the CPU. */
|
||||
# define CLOCK_PROCESS_CPUTIME_ID 2
|
||||
/* Thread-specific CPU-time clock. */
|
||||
# define CLOCK_THREAD_CPUTIME_ID 3
|
||||
|
||||
/* Flag to indicate time is absolute. */
|
||||
# define TIMER_ABSTIME 1
|
||||
# endif
|
||||
|
||||
# endif /* bits/time.h */
|
||||
#endif
|
||||
|
||||
#ifdef __need_timeval
|
||||
# undef __need_timeval
|
||||
# ifndef _STRUCT_TIMEVAL
|
||||
# define _STRUCT_TIMEVAL 1
|
||||
# include <bits/types.h>
|
||||
|
||||
/* A time value that is accurate to the nearest
|
||||
microsecond but also has a range of years. */
|
||||
struct timeval
|
||||
{
|
||||
__time_t tv_sec; /* Seconds. */
|
||||
__suseconds_t tv_usec; /* Microseconds. */
|
||||
};
|
||||
# endif /* struct timeval */
|
||||
#endif /* need timeval */
|
||||
209
tasks/libposix/include/posix/bits/types.h
Normal file
209
tasks/libposix/include/posix/bits/types.h
Normal file
@@ -0,0 +1,209 @@
|
||||
/* bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <sys/types.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_TYPES_H
|
||||
#define _BITS_TYPES_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#define __need_size_t
|
||||
#include <stddef.h>
|
||||
#include <bits/kernel_types.h>
|
||||
|
||||
/* Convenience types. */
|
||||
typedef unsigned char __u_char;
|
||||
typedef unsigned short int __u_short;
|
||||
typedef unsigned int __u_int;
|
||||
typedef unsigned long int __u_long;
|
||||
|
||||
/* Fixed-size types, underlying types depend on word size and compiler. */
|
||||
typedef signed char __int8_t;
|
||||
typedef unsigned char __uint8_t;
|
||||
typedef signed short int __int16_t;
|
||||
typedef unsigned short int __uint16_t;
|
||||
typedef signed int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
#if __WORDSIZE == 64
|
||||
typedef signed long int __int64_t;
|
||||
typedef unsigned long int __uint64_t;
|
||||
#elif defined(__GNUC__)
|
||||
__extension__ typedef signed long long int __int64_t;
|
||||
__extension__ typedef unsigned long long int __uint64_t;
|
||||
#endif
|
||||
|
||||
/* quad_t is also 64 bits. */
|
||||
#if __WORDSIZE == 64
|
||||
typedef long int __quad_t;
|
||||
typedef unsigned long int __u_quad_t;
|
||||
#elif defined(__GNUC__)
|
||||
__extension__ typedef long long int __quad_t;
|
||||
__extension__ typedef unsigned long long int __u_quad_t;
|
||||
#else
|
||||
typedef struct
|
||||
{
|
||||
long __val[2];
|
||||
} __quad_t;
|
||||
typedef struct
|
||||
{
|
||||
__u_long __val[2];
|
||||
} __u_quad_t;
|
||||
#endif
|
||||
|
||||
|
||||
/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
|
||||
macros for each of the OS types we define below. The definitions
|
||||
of those macros must use the following macros for underlying types.
|
||||
We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
|
||||
variants of each of the following integer types on this machine.
|
||||
|
||||
16 -- "natural" 16-bit type (always short)
|
||||
32 -- "natural" 32-bit type (always int)
|
||||
64 -- "natural" 64-bit type (long or long long)
|
||||
LONG32 -- 32-bit type, traditionally long
|
||||
QUAD -- 64-bit type, always long long
|
||||
WORD -- natural type of __WORDSIZE bits (int or long)
|
||||
LONGWORD -- type of __WORDSIZE bits, traditionally long
|
||||
|
||||
We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
|
||||
conventional uses of `long' or `long long' type modifiers match the
|
||||
types we define, even when a less-adorned type would be the same size.
|
||||
This matters for (somewhat) portably writing printf/scanf formats for
|
||||
these types, where using the appropriate l or ll format modifiers can
|
||||
make the typedefs and the formats match up across all GNU platforms. If
|
||||
we used `long' when it's 64 bits where `long long' is expected, then the
|
||||
compiler would warn about the formats not matching the argument types,
|
||||
and the programmer changing them to shut up the compiler would break the
|
||||
program's portability.
|
||||
|
||||
Here we assume what is presently the case in all the GCC configurations
|
||||
we support: long long is always 64 bits, long is always word/address size,
|
||||
and int is always 32 bits. */
|
||||
|
||||
#define __S16_TYPE short int
|
||||
#define __U16_TYPE unsigned short int
|
||||
#define __S32_TYPE int
|
||||
#define __U32_TYPE unsigned int
|
||||
#define __SLONGWORD_TYPE long int
|
||||
#define __ULONGWORD_TYPE unsigned long int
|
||||
#if __WORDSIZE == 32
|
||||
# define __SQUAD_TYPE __quad_t
|
||||
# define __UQUAD_TYPE __u_quad_t
|
||||
# define __SWORD_TYPE int
|
||||
# define __UWORD_TYPE unsigned int
|
||||
# define __SLONG32_TYPE long int
|
||||
# define __ULONG32_TYPE unsigned long int
|
||||
# define __S64_TYPE __quad_t
|
||||
# define __U64_TYPE __u_quad_t
|
||||
/* We want __extension__ before typedef's that use nonstandard base types
|
||||
such as `long long' in C89 mode. */
|
||||
# define __STD_TYPE __extension__ typedef
|
||||
#elif __WORDSIZE == 64
|
||||
# define __SQUAD_TYPE long int
|
||||
# define __UQUAD_TYPE unsigned long int
|
||||
# define __SWORD_TYPE long int
|
||||
# define __UWORD_TYPE unsigned long int
|
||||
# define __SLONG32_TYPE int
|
||||
# define __ULONG32_TYPE unsigned int
|
||||
# define __S64_TYPE long int
|
||||
# define __U64_TYPE unsigned long int
|
||||
/* No need to mark the typedef with __extension__. */
|
||||
# define __STD_TYPE typedef
|
||||
#else
|
||||
# error
|
||||
#endif
|
||||
#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
|
||||
|
||||
|
||||
__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
|
||||
__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */
|
||||
__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */
|
||||
__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
|
||||
__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/
|
||||
__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
|
||||
__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
|
||||
__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
|
||||
__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
|
||||
__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */
|
||||
__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
|
||||
__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
|
||||
__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
|
||||
__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
|
||||
__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */
|
||||
__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
|
||||
__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
|
||||
__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
|
||||
|
||||
__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
|
||||
__STD_TYPE __SWBLK_T_TYPE __swblk_t; /* Type of a swap block maybe? */
|
||||
__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */
|
||||
|
||||
/* Clock ID used in clock and timer functions. */
|
||||
__STD_TYPE __CLOCKID_T_TYPE __clockid_t;
|
||||
|
||||
/* Timer ID returned by `timer_create'. */
|
||||
__STD_TYPE __TIMER_T_TYPE __timer_t;
|
||||
|
||||
/* Type to represent block size. */
|
||||
__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;
|
||||
|
||||
/* Types from the Large File Support interface. */
|
||||
|
||||
/* Type to count number of disk blocks. */
|
||||
__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;
|
||||
__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;
|
||||
|
||||
/* Type to count file system blocks. */
|
||||
__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t;
|
||||
__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
|
||||
|
||||
/* Type to count file system nodes. */
|
||||
__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
|
||||
__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
|
||||
|
||||
__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */
|
||||
|
||||
/* These few don't really vary by system, they always correspond
|
||||
to one of the other defined types. */
|
||||
typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */
|
||||
typedef __quad_t *__qaddr_t;
|
||||
typedef char *__caddr_t;
|
||||
|
||||
/* Duplicates info from stdint.h but this is used in unistd.h. */
|
||||
__STD_TYPE __SWORD_TYPE __intptr_t;
|
||||
|
||||
/* Duplicate info from sys/socket.h. */
|
||||
__STD_TYPE __U32_TYPE __socklen_t;
|
||||
|
||||
|
||||
#undef __STD_TYPE
|
||||
|
||||
/* Used in `struct shmid_ds'. */
|
||||
typedef __kernel_ipc_pid_t __ipc_pid_t;
|
||||
|
||||
/* Now add the thread types. */
|
||||
#if defined __UCLIBC_HAS_THREADS__ && (defined __USE_POSIX199506 || defined __USE_UNIX98)
|
||||
# include <bits/pthreadtypes.h>
|
||||
#endif
|
||||
|
||||
#endif /* bits/types.h */
|
||||
66
tasks/libposix/include/posix/bits/typesizes.h
Normal file
66
tasks/libposix/include/posix/bits/typesizes.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/* bits/typesizes.h -- underlying types for *_t. Generic version.
|
||||
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _BITS_TYPES_H
|
||||
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_TYPESIZES_H
|
||||
#define _BITS_TYPESIZES_H 1
|
||||
|
||||
/* See <bits/types.h> for the meaning of these macros. This file exists so
|
||||
that <bits/types.h> need not vary across different GNU platforms. */
|
||||
|
||||
#define __DEV_T_TYPE __UQUAD_TYPE
|
||||
#define __UID_T_TYPE __U32_TYPE
|
||||
#define __GID_T_TYPE __U32_TYPE
|
||||
#define __INO_T_TYPE __ULONGWORD_TYPE
|
||||
#define __INO64_T_TYPE __UQUAD_TYPE
|
||||
#define __MODE_T_TYPE __U32_TYPE
|
||||
#define __NLINK_T_TYPE __UWORD_TYPE
|
||||
#define __OFF_T_TYPE __SLONGWORD_TYPE
|
||||
#define __OFF64_T_TYPE __SQUAD_TYPE
|
||||
#define __PID_T_TYPE __S32_TYPE
|
||||
#define __RLIM_T_TYPE __ULONGWORD_TYPE
|
||||
#define __RLIM64_T_TYPE __UQUAD_TYPE
|
||||
#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
|
||||
#define __BLKCNT64_T_TYPE __SQUAD_TYPE
|
||||
#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
|
||||
#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
|
||||
#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
|
||||
#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
|
||||
#define __ID_T_TYPE __U32_TYPE
|
||||
#define __CLOCK_T_TYPE __SLONGWORD_TYPE
|
||||
#define __TIME_T_TYPE __SLONGWORD_TYPE
|
||||
#define __USECONDS_T_TYPE __U32_TYPE
|
||||
#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
|
||||
#define __DADDR_T_TYPE __S32_TYPE
|
||||
#define __SWBLK_T_TYPE __SLONGWORD_TYPE
|
||||
#define __KEY_T_TYPE __S32_TYPE
|
||||
#define __CLOCKID_T_TYPE __S32_TYPE
|
||||
#define __TIMER_T_TYPE void *
|
||||
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
|
||||
#define __FSID_T_TYPE struct { int __val[2]; }
|
||||
#define __SSIZE_T_TYPE __SWORD_TYPE
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
#define __FD_SETSIZE 1024
|
||||
|
||||
|
||||
#endif /* bits/typesizes.h */
|
||||
41
tasks/libposix/include/posix/bits/uClibc_arch_features.h
Normal file
41
tasks/libposix/include/posix/bits/uClibc_arch_features.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Track misc arch-specific features that aren't config options
|
||||
*/
|
||||
|
||||
#ifndef _BITS_UCLIBC_ARCH_FEATURES_H
|
||||
#define _BITS_UCLIBC_ARCH_FEATURES_H
|
||||
|
||||
/* instruction used when calling abort() to kill yourself */
|
||||
#define __UCLIBC_ABORT_INSTRUCTION__ "bl abort"
|
||||
|
||||
/* can your target use syscall6() for mmap ? */
|
||||
#undef __UCLIBC_MMAP_HAS_6_ARGS__
|
||||
|
||||
/* does your target use syscall4() for truncate64 ? (32bit arches only) */
|
||||
#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
|
||||
|
||||
/* does your target have a broken create_module() ? */
|
||||
#define __UCLIBC_BROKEN_CREATE_MODULE__
|
||||
|
||||
/* does your target prefix all symbols with an _ ? */
|
||||
#define __UCLIBC_NO_UNDERSCORES__
|
||||
|
||||
/* does your target have an asm .set ? */
|
||||
#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
|
||||
|
||||
/* define if target doesn't like .global */
|
||||
#undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__
|
||||
|
||||
/* define if target supports .weak */
|
||||
#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__
|
||||
|
||||
/* define if target supports .weakext */
|
||||
#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__
|
||||
|
||||
/* needed probably only for ppc64 */
|
||||
#undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__
|
||||
|
||||
/* define if target supports IEEE signed zero floats */
|
||||
#define __UCLIBC_HAVE_SIGNED_ZERO__
|
||||
|
||||
#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
|
||||
8
tasks/libposix/include/posix/bits/uClibc_clk_tck.h
Normal file
8
tasks/libposix/include/posix/bits/uClibc_clk_tck.h
Normal file
@@ -0,0 +1,8 @@
|
||||
/* Use a default of 100 for CLK_TCK to implement sysconf() and clock().
|
||||
* Override this by supplying an arch-specific version of this header file.
|
||||
*
|
||||
* WARNING: It is assumed that this is a constant integer value usable in
|
||||
* preprocessor conditionals!!!
|
||||
*/
|
||||
|
||||
#define __UCLIBC_CLK_TCK_CONST 100
|
||||
198
tasks/libposix/include/posix/bits/uClibc_config.h
Normal file
198
tasks/libposix/include/posix/bits/uClibc_config.h
Normal file
@@ -0,0 +1,198 @@
|
||||
#if !defined __FEATURES_H && !defined __need_uClibc_config_h
|
||||
# error Never include <bits/uClibc_config.h> directly; use <features.h> instead
|
||||
#endif
|
||||
|
||||
#define __UCLIBC_MAJOR__ 0
|
||||
#define __UCLIBC_MINOR__ 9
|
||||
#define __UCLIBC_SUBLEVEL__ 29
|
||||
/* Automatically generated make config: don't edit */
|
||||
/* Sat Jan 12 11:19:30 2008 */
|
||||
#undef __TARGET_alpha__
|
||||
#define __TARGET_arm__ 1
|
||||
#undef __TARGET_avr32__
|
||||
#undef __TARGET_bfin__
|
||||
#undef __TARGET_cris__
|
||||
#undef __TARGET_e1__
|
||||
#undef __TARGET_frv__
|
||||
#undef __TARGET_h8300__
|
||||
#undef __TARGET_hppa__
|
||||
#undef __TARGET_i386__
|
||||
#undef __TARGET_i960__
|
||||
#undef __TARGET_ia64__
|
||||
#undef __TARGET_m68k__
|
||||
#undef __TARGET_microblaze__
|
||||
#undef __TARGET_mips__
|
||||
#undef __TARGET_nios__
|
||||
#undef __TARGET_nios2__
|
||||
#undef __TARGET_powerpc__
|
||||
#undef __TARGET_sh__
|
||||
#undef __TARGET_sh64__
|
||||
#undef __TARGET_sparc__
|
||||
#undef __TARGET_v850__
|
||||
#undef __TARGET_vax__
|
||||
#undef __TARGET_x86_64__
|
||||
|
||||
/* Target Architecture Features and Options */
|
||||
#define __TARGET_ARCH__ "arm"
|
||||
#define __FORCE_OPTIONS_FOR_ARCH__ 1
|
||||
#undef __CONFIG_ARM_OABI__
|
||||
#define __CONFIG_ARM_EABI__ 1
|
||||
#define __CONFIG_GENERIC_ARM__ 1
|
||||
#undef __CONFIG_ARM610__
|
||||
#undef __CONFIG_ARM710__
|
||||
#undef __CONFIG_ARM7TDMI__
|
||||
#undef __CONFIG_ARM720T__
|
||||
#undef __CONFIG_ARM920T__
|
||||
#undef __CONFIG_ARM922T__
|
||||
#undef __CONFIG_ARM926T__
|
||||
#undef __CONFIG_ARM10T__
|
||||
#undef __CONFIG_ARM1136JF_S__
|
||||
#undef __CONFIG_ARM1176JZ_S__
|
||||
#undef __CONFIG_ARM1176JZF_S__
|
||||
#undef __CONFIG_ARM_SA110__
|
||||
#undef __CONFIG_ARM_SA1100__
|
||||
#undef __CONFIG_ARM_XSCALE__
|
||||
#undef __CONFIG_ARM_IWMMXT__
|
||||
#define __TARGET_SUBARCH__ ""
|
||||
|
||||
/* Using ELF file format */
|
||||
#define __ARCH_ANY_ENDIAN__ 1
|
||||
#define __ARCH_LITTLE_ENDIAN__ 1
|
||||
#undef __ARCH_WANTS_BIG_ENDIAN__
|
||||
#define __ARCH_WANTS_LITTLE_ENDIAN__ 1
|
||||
#define __ARCH_HAS_MMU__ 1
|
||||
#define __ARCH_USE_MMU__ 1
|
||||
#define __UCLIBC_HAS_FLOATS__ 1
|
||||
#define __UCLIBC_HAS_FPU__ 1
|
||||
#define __DO_C99_MATH__ 1
|
||||
#define __KERNEL_HEADERS__ "/opt/l4-project/tasks/libc/linux-headers/include"
|
||||
#define __HAVE_DOT_CONFIG__ 1
|
||||
|
||||
/* General Library Settings */
|
||||
#undef __HAVE_NO_PIC__
|
||||
#define __DOPIC__ 1
|
||||
#undef __HAVE_NO_SHARED__
|
||||
#undef __ARCH_HAS_NO_LDSO__
|
||||
#define __HAVE_SHARED__ 1
|
||||
#undef __FORCE_SHAREABLE_TEXT_SEGMENTS__
|
||||
#define __LDSO_LDD_SUPPORT__ 1
|
||||
#define __LDSO_CACHE_SUPPORT__ 1
|
||||
#undef __LDSO_PRELOAD_FILE_SUPPORT__
|
||||
#define __LDSO_BASE_FILENAME__ "ld.so"
|
||||
#undef __UCLIBC_STATIC_LDCONFIG__
|
||||
#undef __LDSO_RUNPATH__
|
||||
#define __UCLIBC_CTOR_DTOR__ 1
|
||||
#undef __HAS_NO_THREADS__
|
||||
#define __UCLIBC_HAS_THREADS__ 1
|
||||
#undef __PTHREADS_DEBUG_SUPPORT__
|
||||
#define __LINUXTHREADS_OLD__ 1
|
||||
#define __UCLIBC_HAS_LFS__ 1
|
||||
#undef __MALLOC__
|
||||
#undef __MALLOC_SIMPLE__
|
||||
#define __MALLOC_STANDARD__ 1
|
||||
#define __MALLOC_GLIBC_COMPAT__ 1
|
||||
#define __UCLIBC_DYNAMIC_ATEXIT__ 1
|
||||
#undef __COMPAT_ATEXIT__
|
||||
#undef __UCLIBC_SUSV3_LEGACY__
|
||||
#undef __UCLIBC_SUSV3_LEGACY_MACROS__
|
||||
#define __UCLIBC_HAS_SHADOW__ 1
|
||||
#undef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
|
||||
#define __UCLIBC_HAS___PROGNAME__ 1
|
||||
#undef __UNIX98PTY_ONLY__
|
||||
#define __ASSUME_DEVPTS__ 1
|
||||
#define __UCLIBC_HAS_TM_EXTENSIONS__ 1
|
||||
#define __UCLIBC_HAS_TZ_CACHING__ 1
|
||||
#define __UCLIBC_HAS_TZ_FILE__ 1
|
||||
#define __UCLIBC_HAS_TZ_FILE_READ_MANY__ 1
|
||||
#define __UCLIBC_TZ_FILE_PATH__ "/etc/TZ"
|
||||
|
||||
/* Advanced Library Settings */
|
||||
#define __UCLIBC_PWD_BUFFER_SIZE__ 256
|
||||
#define __UCLIBC_GRP_BUFFER_SIZE__ 256
|
||||
|
||||
/* Networking Support */
|
||||
#undef __UCLIBC_HAS_IPV6__
|
||||
#define __UCLIBC_HAS_RPC__ 1
|
||||
#define __UCLIBC_HAS_FULL_RPC__ 1
|
||||
#define __UCLIBC_HAS_REENTRANT_RPC__ 1
|
||||
#undef __UCLIBC_USE_NETLINK__
|
||||
#undef __UCLIBC_HAS_BSD_RES_CLOSE__
|
||||
|
||||
/* String and Stdio Support */
|
||||
#define __UCLIBC_HAS_STRING_GENERIC_OPT__ 1
|
||||
#define __UCLIBC_HAS_STRING_ARCH_OPT__ 1
|
||||
#define __UCLIBC_HAS_CTYPE_TABLES__ 1
|
||||
#define __UCLIBC_HAS_CTYPE_SIGNED__ 1
|
||||
#undef __UCLIBC_HAS_CTYPE_UNSAFE__
|
||||
#define __UCLIBC_HAS_CTYPE_CHECKED__ 1
|
||||
#undef __UCLIBC_HAS_CTYPE_ENFORCED__
|
||||
#undef __UCLIBC_HAS_WCHAR__
|
||||
#undef __UCLIBC_HAS_LOCALE__
|
||||
#define __UCLIBC_HAS_HEXADECIMAL_FLOATS__ 1
|
||||
#define __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__ 1
|
||||
#undef __USE_OLD_VFPRINTF__
|
||||
#define __UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS__ 9
|
||||
#define __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ 1
|
||||
#undef __UCLIBC_HAS_STDIO_BUFSIZ_NONE__
|
||||
#undef __UCLIBC_HAS_STDIO_BUFSIZ_256__
|
||||
#undef __UCLIBC_HAS_STDIO_BUFSIZ_512__
|
||||
#undef __UCLIBC_HAS_STDIO_BUFSIZ_1024__
|
||||
#undef __UCLIBC_HAS_STDIO_BUFSIZ_2048__
|
||||
#define __UCLIBC_HAS_STDIO_BUFSIZ_4096__ 1
|
||||
#undef __UCLIBC_HAS_STDIO_BUFSIZ_8192__
|
||||
#define __UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE__ 1
|
||||
#undef __UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4__
|
||||
#undef __UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8__
|
||||
#undef __UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT__
|
||||
#define __UCLIBC_HAS_STDIO_GETC_MACRO__ 1
|
||||
#define __UCLIBC_HAS_STDIO_PUTC_MACRO__ 1
|
||||
#define __UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION__ 1
|
||||
#undef __UCLIBC_HAS_FOPEN_LARGEFILE_MODE__
|
||||
#define __UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE__ 1
|
||||
#define __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__ 1
|
||||
#define __UCLIBC_HAS_PRINTF_M_SPEC__ 1
|
||||
#define __UCLIBC_HAS_ERRNO_MESSAGES__ 1
|
||||
#undef __UCLIBC_HAS_SYS_ERRLIST__
|
||||
#define __UCLIBC_HAS_SIGNUM_MESSAGES__ 1
|
||||
#undef __UCLIBC_HAS_SYS_SIGLIST__
|
||||
#define __UCLIBC_HAS_GNU_GETOPT__ 1
|
||||
#define __UCLIBC_HAS_GNU_GETSUBOPT__ 1
|
||||
|
||||
/* Big and Tall */
|
||||
#define __UCLIBC_HAS_REGEX__ 1
|
||||
#define __UCLIBC_HAS_REGEX_OLD__ 1
|
||||
#define __UCLIBC_HAS_FNMATCH__ 1
|
||||
#define __UCLIBC_HAS_FNMATCH_OLD__ 1
|
||||
#undef __UCLIBC_HAS_WORDEXP__
|
||||
#define __UCLIBC_HAS_FTW__ 1
|
||||
#define __UCLIBC_HAS_GLOB__ 1
|
||||
#define __UCLIBC_HAS_GNU_GLOB__ 1
|
||||
|
||||
/* Library Installation Options */
|
||||
#define __SHARED_LIB_LOADER_PREFIX__ "/lib"
|
||||
#define __RUNTIME_PREFIX__ "/"
|
||||
#define __DEVEL_PREFIX__ "/usr/"
|
||||
|
||||
/* Security options */
|
||||
#undef __UCLIBC_BUILD_PIE__
|
||||
#undef __UCLIBC_HAS_ARC4RANDOM__
|
||||
#undef __HAVE_NO_SSP__
|
||||
#undef __UCLIBC_HAS_SSP__
|
||||
#define __UCLIBC_BUILD_RELRO__ 1
|
||||
#define __UCLIBC_BUILD_NOW__ 1
|
||||
#undef __UCLIBC_BUILD_NOEXECSTACK__
|
||||
|
||||
/* uClibc development/debugging options */
|
||||
#define __CROSS_COMPILER_PREFIX__ "/opt/scratch3/buildroot/build_arm/staging_dir/usr/bin/arm-linux-uclibcgnueabi-"
|
||||
#define __UCLIBC_EXTRA_CFLAGS__ ""
|
||||
#undef __DODEBUG__
|
||||
#undef __DODEBUG_PT__
|
||||
#define __DOSTRIP__ 1
|
||||
#undef __DOASSERTS__
|
||||
#undef __SUPPORT_LD_DEBUG__
|
||||
#undef __SUPPORT_LD_DEBUG_EARLY__
|
||||
#undef __UCLIBC_MALLOC_DEBUGGING__
|
||||
#define __WARNINGS__ "-Wall"
|
||||
#undef __EXTRA_WARNINGS__
|
||||
#undef __DOMULTI__
|
||||
#undef __UCLIBC_MJN3_ONLY__
|
||||
279
tasks/libposix/include/posix/bits/uClibc_ctype.h
Normal file
279
tasks/libposix/include/posix/bits/uClibc_ctype.h
Normal file
@@ -0,0 +1,279 @@
|
||||
/* Copyright (C) 2002 Manuel Novoa III
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* The GNU C Library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with the GNU C Library; if not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA.
|
||||
*/
|
||||
|
||||
/* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
|
||||
*
|
||||
* Besides uClibc, I'm using this code in my libc for elks, which is
|
||||
* a 16-bit environment with a fairly limited compiler. It would make
|
||||
* things much easier for me if this file isn't modified unnecessarily.
|
||||
* In particular, please put any new or replacement functions somewhere
|
||||
* else, and modify the makefile to use your version instead.
|
||||
* Thanks. Manuel
|
||||
*
|
||||
* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION! */
|
||||
|
||||
#if !defined(_CTYPE_H) && !defined(_WCTYPE_H)
|
||||
#error Always include <{w}ctype.h> rather than <bits/uClibc_ctype.h>
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_CTYPE_H
|
||||
#define _BITS_CTYPE_H
|
||||
|
||||
#ifdef __UCLIBC_GEN_LOCALE
|
||||
|
||||
/* Taking advantage of the C99 mutual-exclusion guarantees for the various
|
||||
* (w)ctype classes, including the descriptions of printing and control
|
||||
* (w)chars, we can place each in one of the following mutually-exlusive
|
||||
* subsets. Since there are less than 16, we can store the data for
|
||||
* each (w)chars in a nibble. In contrast, glibc uses an unsigned int
|
||||
* per (w)char, with one bit flag for each is* type. While this allows
|
||||
* a simple '&' operation to determine the type vs. a range test and a
|
||||
* little special handling for the "blank" and "xdigit" types in my
|
||||
* approach, it also uses 8 times the space for the tables on the typical
|
||||
* 32-bit archs we supported.*/
|
||||
enum {
|
||||
__CTYPE_unclassified = 0,
|
||||
__CTYPE_alpha_nonupper_nonlower,
|
||||
__CTYPE_alpha_lower,
|
||||
__CTYPE_alpha_upper_lower,
|
||||
__CTYPE_alpha_upper,
|
||||
__CTYPE_digit,
|
||||
__CTYPE_punct,
|
||||
__CTYPE_graph,
|
||||
__CTYPE_print_space_nonblank,
|
||||
__CTYPE_print_space_blank,
|
||||
__CTYPE_space_nonblank_noncntrl,
|
||||
__CTYPE_space_blank_noncntrl,
|
||||
__CTYPE_cntrl_space_nonblank,
|
||||
__CTYPE_cntrl_space_blank,
|
||||
__CTYPE_cntrl_nonspace
|
||||
};
|
||||
|
||||
/* Some macros that test for various (w)ctype classes when passed one of the
|
||||
* designator values enumerated above. */
|
||||
#define __CTYPE_isalnum(D) ((unsigned int)(D-1) <= (__CTYPE_digit-1))
|
||||
#define __CTYPE_isalpha(D) ((unsigned int)(D-1) <= (__CTYPE_alpha_upper-1))
|
||||
#define __CTYPE_isblank(D) \
|
||||
((((unsigned int)(D - __CTYPE_print_space_nonblank)) <= 5) && (D & 1))
|
||||
#define __CTYPE_iscntrl(D) (((unsigned int)(D - __CTYPE_cntrl_space_nonblank)) <= 2)
|
||||
#define __CTYPE_isdigit(D) (D == __CTYPE_digit)
|
||||
#define __CTYPE_isgraph(D) ((unsigned int)(D-1) <= (__CTYPE_graph-1))
|
||||
#define __CTYPE_islower(D) (((unsigned int)(D - __CTYPE_alpha_lower)) <= 1)
|
||||
#define __CTYPE_isprint(D) ((unsigned int)(D-1) <= (__CTYPE_print_space_blank-1))
|
||||
#define __CTYPE_ispunct(D) (D == __CTYPE_punct)
|
||||
#define __CTYPE_isspace(D) (((unsigned int)(D - __CTYPE_print_space_nonblank)) <= 5)
|
||||
#define __CTYPE_isupper(D) (((unsigned int)(D - __CTYPE_alpha_upper_lower)) <= 1)
|
||||
/* #define __CTYPE_isxdigit(D) -- isxdigit is untestable this way.
|
||||
* But that's ok as isxdigit() (and isdigit() too) are locale-invariant. */
|
||||
|
||||
#else /* __UCLIBC_GEN_LOCALE *****************************************/
|
||||
|
||||
/* Define some ctype macros valid for the C/POSIX locale. */
|
||||
|
||||
/* ASCII ords of \t, \f, \n, \r, and \v are 9, 12, 10, 13, 11 respectively. */
|
||||
#define __C_isspace(c) \
|
||||
((sizeof(c) == sizeof(char)) \
|
||||
? ((((c) == ' ') || (((unsigned char)((c) - 9)) <= (13 - 9)))) \
|
||||
: ((((c) == ' ') || (((unsigned int)((c) - 9)) <= (13 - 9)))))
|
||||
#define __C_isblank(c) (((c) == ' ') || ((c) == '\t'))
|
||||
#define __C_isdigit(c) \
|
||||
((sizeof(c) == sizeof(char)) \
|
||||
? (((unsigned char)((c) - '0')) < 10) \
|
||||
: (((unsigned int)((c) - '0')) < 10))
|
||||
#define __C_isxdigit(c) \
|
||||
(__C_isdigit(c) \
|
||||
|| ((sizeof(c) == sizeof(char)) \
|
||||
? (((unsigned char)((((c)) | 0x20) - 'a')) < 6) \
|
||||
: (((unsigned int)((((c)) | 0x20) - 'a')) < 6)))
|
||||
#define __C_iscntrl(c) \
|
||||
((sizeof(c) == sizeof(char)) \
|
||||
? ((((unsigned char)(c)) < 0x20) || ((c) == 0x7f)) \
|
||||
: ((((unsigned int)(c)) < 0x20) || ((c) == 0x7f)))
|
||||
#define __C_isalpha(c) \
|
||||
((sizeof(c) == sizeof(char)) \
|
||||
? (((unsigned char)(((c) | 0x20) - 'a')) < 26) \
|
||||
: (((unsigned int)(((c) | 0x20) - 'a')) < 26))
|
||||
#define __C_isalnum(c) (__C_isalpha(c) || __C_isdigit(c))
|
||||
#define __C_isprint(c) \
|
||||
((sizeof(c) == sizeof(char)) \
|
||||
? (((unsigned char)((c) - 0x20)) <= (0x7e - 0x20)) \
|
||||
: (((unsigned int)((c) - 0x20)) <= (0x7e - 0x20)))
|
||||
#define __C_islower(c) \
|
||||
((sizeof(c) == sizeof(char)) \
|
||||
? (((unsigned char)((c) - 'a')) < 26) \
|
||||
: (((unsigned int)((c) - 'a')) < 26))
|
||||
#define __C_isupper(c) \
|
||||
((sizeof(c) == sizeof(char)) \
|
||||
? (((unsigned char)((c) - 'A')) < 26) \
|
||||
: (((unsigned int)((c) - 'A')) < 26))
|
||||
#define __C_ispunct(c) \
|
||||
((!__C_isalnum(c)) \
|
||||
&& ((sizeof(c) == sizeof(char)) \
|
||||
? (((unsigned char)((c) - 0x21)) <= (0x7e - 0x21)) \
|
||||
: (((unsigned int)((c) - 0x21)) <= (0x7e - 0x21))))
|
||||
#define __C_isgraph(c) \
|
||||
((sizeof(c) == sizeof(char)) \
|
||||
? (((unsigned int)((c) - 0x21)) <= (0x7e - 0x21)) \
|
||||
: (((unsigned int)((c) - 0x21)) <= (0x7e - 0x21)))
|
||||
|
||||
#define __C_tolower(c) (__C_isupper(c) ? ((c) | 0x20) : (c))
|
||||
#define __C_toupper(c) (__C_islower(c) ? ((c) ^ 0x20) : (c))
|
||||
|
||||
/**********************************************************************/
|
||||
__BEGIN_DECLS
|
||||
|
||||
extern int isalnum(int c) __THROW;
|
||||
extern int isalpha(int c) __THROW;
|
||||
#ifdef __USE_ISOC99
|
||||
extern int isblank(int c) __THROW;
|
||||
#endif
|
||||
extern int iscntrl(int c) __THROW;
|
||||
extern int isdigit(int c) __THROW;
|
||||
extern int isgraph(int c) __THROW;
|
||||
extern int islower(int c) __THROW;
|
||||
extern int isprint(int c) __THROW;
|
||||
extern int ispunct(int c) __THROW;
|
||||
extern int isspace(int c) __THROW;
|
||||
extern int isupper(int c) __THROW;
|
||||
extern int isxdigit(int c) __THROW;
|
||||
|
||||
extern int tolower(int c) __THROW;
|
||||
extern int toupper(int c) __THROW;
|
||||
|
||||
#if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
|
||||
extern int isascii(int c) __THROW;
|
||||
extern int toascii(int c) __THROW;
|
||||
#endif
|
||||
|
||||
#if defined _LIBC && (defined NOT_IN_libc || defined IS_IN_libc)
|
||||
/* isdigit() is really locale-invariant, so provide some small fast macros.
|
||||
* These are uClibc-specific. */
|
||||
#define __isdigit_char(C) (((unsigned char)((C) - '0')) <= 9)
|
||||
#define __isdigit_int(C) (((unsigned int)((C) - '0')) <= 9)
|
||||
#endif
|
||||
|
||||
/* Next, some ctype macros which are valid for all supported locales. */
|
||||
/* WARNING: isspace and isblank need to be reverified if more 8-bit codesets
|
||||
* are added!!! But isdigit and isxdigit are always valid. */
|
||||
|
||||
/* #define __isspace(c) __C_isspace(c) */
|
||||
/* #define __isblank(c) __C_isblank(c) */
|
||||
|
||||
/* #define __isdigit(c) __C_isdigit(c) */
|
||||
/* #define __isxdigit(c) __C_isxdigit(c) */
|
||||
|
||||
/* Now some non-ansi/iso c99 macros. */
|
||||
|
||||
#define __isascii(c) (((c) & ~0x7f) == 0)
|
||||
#define __toascii(c) ((c) & 0x7f)
|
||||
#define _toupper(c) ((c) ^ 0x20)
|
||||
#define _tolower(c) ((c) | 0x20)
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/**********************************************************************/
|
||||
#ifdef __GNUC__
|
||||
|
||||
#define __isbody_C_macro(f,args) __C_ ## f args
|
||||
|
||||
#define __isbody(f,c) \
|
||||
(__extension__ ({ \
|
||||
int __res; \
|
||||
if (sizeof(c) > sizeof(char)) { \
|
||||
int __c = (c); \
|
||||
__res = __isbody_C_macro(f,(__c)); \
|
||||
} else { \
|
||||
unsigned char __c = (c); \
|
||||
__res = __isbody_C_macro(f,(__c)); \
|
||||
} \
|
||||
__res; \
|
||||
}))
|
||||
|
||||
#define __body_C_macro(f,args) __C_ ## f args
|
||||
|
||||
#define __body(f,c) \
|
||||
(__extension__ ({ \
|
||||
int __res; \
|
||||
if (sizeof(c) > sizeof(char)) { \
|
||||
int __c = (c); \
|
||||
__res = __body_C_macro(f,(__c)); \
|
||||
} else { \
|
||||
unsigned char __c = (c); \
|
||||
__res = __body_C_macro(f,(__c)); \
|
||||
} \
|
||||
__res; \
|
||||
}))
|
||||
|
||||
#define __isspace(c) __body(isspace,c)
|
||||
#define __isblank(c) __body(isblank,c)
|
||||
#define __isdigit(c) __body(isdigit,c)
|
||||
#define __isxdigit(c) __body(isxdigit,c)
|
||||
#define __iscntrl(c) __body(iscntrl,c)
|
||||
#define __isalpha(c) __body(isalpha,c)
|
||||
#define __isalnum(c) __body(isalnum,c)
|
||||
#define __isprint(c) __body(isprint,c)
|
||||
#define __islower(c) __body(islower,c)
|
||||
#define __isupper(c) __body(isupper,c)
|
||||
#define __ispunct(c) __body(ispunct,c)
|
||||
#define __isgraph(c) __body(isgraph,c)
|
||||
|
||||
#define __tolower(c) __body(tolower,c)
|
||||
#define __toupper(c) __body(toupper,c)
|
||||
|
||||
#if !defined __NO_CTYPE && !defined __cplusplus
|
||||
|
||||
#define isspace(c) __isspace(c)
|
||||
#define isblank(c) __isblank(c)
|
||||
#define isdigit(c) __isdigit(c)
|
||||
#define isxdigit(c) __isxdigit(c)
|
||||
#define iscntrl(c) __iscntrl(c)
|
||||
#define isalpha(c) __isalpha(c)
|
||||
#define isalnum(c) __isalnum(c)
|
||||
#define isprint(c) __isprint(c)
|
||||
#define islower(c) __islower(c)
|
||||
#define isupper(c) __isupper(c)
|
||||
#define ispunct(c) __ispunct(c)
|
||||
#define isgraph(c) __isgraph(c)
|
||||
|
||||
#define tolower(c) __tolower(c)
|
||||
#define toupper(c) __toupper(c)
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#else /* _GNUC__ ***************************************************/
|
||||
|
||||
#if !defined __NO_CTYPE && !defined __cplusplus
|
||||
|
||||
/* These macros should be safe from side effects. */
|
||||
|
||||
#define isdigit(c) __C_isdigit(c)
|
||||
#define isalpha(c) __C_isalpha(c)
|
||||
#define isprint(c) __C_isprint(c)
|
||||
#define islower(c) __C_islower(c)
|
||||
#define isupper(c) __C_isupper(c)
|
||||
#define isgraph(c) __C_isgraph(c)
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __GNUC__ */
|
||||
/**********************************************************************/
|
||||
|
||||
#endif /* __UCLIBC_GEN_LOCALE */
|
||||
|
||||
#endif /* _BITS_CTYPE_H */
|
||||
43
tasks/libposix/include/posix/bits/uClibc_errno.h
Normal file
43
tasks/libposix/include/posix/bits/uClibc_errno.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
|
||||
*
|
||||
* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
|
||||
*/
|
||||
#ifndef _BITS_UCLIBC_ERRNO_H
|
||||
#define _BITS_UCLIBC_ERRNO_H 1
|
||||
|
||||
#ifdef IS_IN_rtld
|
||||
# undef errno
|
||||
# define errno _dl_errno
|
||||
extern int _dl_errno; // attribute_hidden;
|
||||
#elif defined __UCLIBC_HAS_THREADS__
|
||||
# include <tls.h>
|
||||
# if defined USE___THREAD && USE___THREAD
|
||||
# undef errno
|
||||
# ifndef NOT_IN_libc
|
||||
# define errno __libc_errno
|
||||
# else
|
||||
# define errno errno
|
||||
# endif
|
||||
extern __thread int errno __attribute_tls_model_ie;
|
||||
# endif /* USE___THREAD */
|
||||
#endif /* IS_IN_rtld */
|
||||
|
||||
#define __set_errno(val) (errno = (val))
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
extern int *__errno_location (void) __THROW __attribute__ ((__const__))
|
||||
# ifdef IS_IN_rtld
|
||||
attribute_hidden
|
||||
# endif
|
||||
;
|
||||
# if defined __UCLIBC_HAS_THREADS__
|
||||
# include <tls.h>
|
||||
# if defined USE___THREAD && USE___THREAD
|
||||
libc_hidden_proto(__errno_location)
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif /* !__ASSEMBLER__ */
|
||||
|
||||
#endif
|
||||
122
tasks/libposix/include/posix/bits/uClibc_fpmax.h
Normal file
122
tasks/libposix/include/posix/bits/uClibc_fpmax.h
Normal file
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
* Copyright (C) 2003-2006 Manuel Novoa III
|
||||
*
|
||||
* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
|
||||
*/
|
||||
/* Define a maximal floating point type, and the associated constants
|
||||
* that are defined for the floating point types in float.h.
|
||||
*
|
||||
* This is to support archs that are missing long double, or even double.
|
||||
*/
|
||||
|
||||
#ifndef _UCLIBC_FPMAX_H
|
||||
#define _UCLIBC_FPMAX_H
|
||||
|
||||
#ifndef _ISOC99_SOURCE
|
||||
#define _ISOC99_SOURCE 1
|
||||
#endif
|
||||
|
||||
#include <features.h>
|
||||
#include <float.h>
|
||||
|
||||
#ifdef __UCLIBC_HAS_FLOATS__
|
||||
|
||||
#if defined(LDBL_MANT_DIG)
|
||||
|
||||
typedef long double __fpmax_t;
|
||||
#define FPMAX_TYPE 3
|
||||
|
||||
#define FPMAX_MANT_DIG LDBL_MANT_DIG
|
||||
#define FPMAX_DIG LDBL_DIG
|
||||
#define FPMAX_EPSILON LDBL_EPSILON
|
||||
#define FPMAX_MIN_EXP LDBL_MIN_EXP
|
||||
#define FPMAX_MIN LDBL_MIN
|
||||
#define FPMAX_MIN_10_EXP LDBL_MIN_10_EXP
|
||||
#define FPMAX_MAX_EXP LDBL_MAX_EXP
|
||||
#define FPMAX_MAX LDBL_MAX
|
||||
#define FPMAX_MAX_10_EXP LDBL_MAX_10_EXP
|
||||
|
||||
#elif defined(DBL_MANT_DIG)
|
||||
|
||||
typedef double __fpmax_t;
|
||||
#define FPMAX_TYPE 2
|
||||
|
||||
#define FPMAX_MANT_DIG DBL_MANT_DIG
|
||||
#define FPMAX_DIG DBL_DIG
|
||||
#define FPMAX_EPSILON DBL_EPSILON
|
||||
#define FPMAX_MIN_EXP DBL_MIN_EXP
|
||||
#define FPMAX_MIN DBL_MIN
|
||||
#define FPMAX_MIN_10_EXP DBL_MIN_10_EXP
|
||||
#define FPMAX_MAX_EXP DBL_MAX_EXP
|
||||
#define FPMAX_MAX DBL_MAX
|
||||
#define FPMAX_MAX_10_EXP DBL_MAX_10_EXP
|
||||
|
||||
#elif defined(FLT_MANT_DIG)
|
||||
|
||||
typedef float __fpmax_t;
|
||||
#define FPMAX_TYPE 1
|
||||
|
||||
#define FPMAX_MANT_DIG FLT_MANT_DIG
|
||||
#define FPMAX_DIG FLT_DIG
|
||||
#define FPMAX_EPSILON FLT_EPSILON
|
||||
#define FPMAX_MIN_EXP FLT_MIN_EXP
|
||||
#define FPMAX_MIN FLT_MIN
|
||||
#define FPMAX_MIN_10_EXP FLT_MIN_10_EXP
|
||||
#define FPMAX_MAX_EXP FLT_MAX_EXP
|
||||
#define FPMAX_MAX FLT_MAX
|
||||
#define FPMAX_MAX_10_EXP FLT_MAX_10_EXP
|
||||
|
||||
#else
|
||||
#error unable to determine appropriate type for __fpmax_t!
|
||||
#endif
|
||||
|
||||
#ifndef DECIMAL_DIG
|
||||
|
||||
#ifdef L___strtofpmax
|
||||
/* Emit warning only once. */
|
||||
#warning DECIMAL_DIG is not defined! If you are using gcc, it may not be defining __STDC_VERSION__ as it should.
|
||||
#endif
|
||||
#if !defined(FLT_RADIX) || (FLT_RADIX != 2)
|
||||
#error unable to compensate for missing DECIMAL_DIG!
|
||||
#endif
|
||||
|
||||
/* ceil (1 + #mantissa * log10 (FLT_RADIX)) */
|
||||
#define DECIMAL_DIG (1 + (((FPMAX_MANT_DIG * 100) + 331) / 332))
|
||||
|
||||
#endif /* DECIMAL_DIG */
|
||||
|
||||
#if defined _LIBC && defined IS_IN_libc
|
||||
extern __fpmax_t __strtofpmax(const char *str, char **endptr, int exp_adjust) attribute_hidden;
|
||||
|
||||
#ifdef __UCLIBC_HAS_XLOCALE__
|
||||
extern __fpmax_t __strtofpmax_l(const char *str, char **endptr, int exp_adjust,
|
||||
__locale_t locale_arg) attribute_hidden;
|
||||
#endif
|
||||
|
||||
#ifdef __UCLIBC_HAS_WCHAR__
|
||||
extern __fpmax_t __wcstofpmax(const wchar_t *wcs, wchar_t **endptr,
|
||||
int exp_adjust) attribute_hidden;
|
||||
|
||||
#ifdef __UCLIBC_HAS_XLOCALE__
|
||||
extern __fpmax_t __wcstofpmax_l(const wchar_t *wcs, wchar_t **endptr,
|
||||
int exp_adjust, __locale_t locale_arg) attribute_hidden;
|
||||
#endif
|
||||
#endif /* __UCLIBC_HAS_WCHAR__ */
|
||||
#endif /* _LIBC */
|
||||
|
||||
/* The following checks in an __fpmax_t is either 0 or +/- infinity.
|
||||
*
|
||||
* WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!!
|
||||
*
|
||||
* This only works if __fpmax_t is the actual maximal floating point type used
|
||||
* in intermediate calculations. Otherwise, excess precision in the
|
||||
* intermediate values can cause the test to fail.
|
||||
*
|
||||
* WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!!
|
||||
*/
|
||||
|
||||
#define __FPMAX_ZERO_OR_INF_CHECK(x) ((x) == ((x)/4) )
|
||||
|
||||
#endif /* __UCLIBC_HAS_FLOATS__ */
|
||||
|
||||
#endif /* _UCLIBC_FPMAX_H */
|
||||
33
tasks/libposix/include/posix/bits/uClibc_local_lim.h
Normal file
33
tasks/libposix/include/posix/bits/uClibc_local_lim.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
|
||||
*
|
||||
* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
|
||||
*/
|
||||
/*
|
||||
* Never include this file directly; use <unistd.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_UCLIBC_LOCAL_LIM_H
|
||||
#define _BITS_UCLIBC_LOCAL_LIM_H 1
|
||||
|
||||
/* This file works correctly only if local_lim.h is the NPTL version */
|
||||
#if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX
|
||||
# error local_lim.h was incorrectly updated, use the NPTL version from glibc
|
||||
#endif
|
||||
|
||||
/* This should really be moved to thread specific directories */
|
||||
#if defined __UCLIBC_HAS_THREADS__
|
||||
# define PTHREAD_THREADS_MAX 1024
|
||||
# define TIMER_MAX 256
|
||||
#endif
|
||||
|
||||
#ifndef __UCLIBC_HAS_THREADS__
|
||||
# undef _POSIX_THREAD_KEYS_MAX
|
||||
# undef PTHREAD_KEYS_MAX
|
||||
# undef _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
||||
# undef PTHREAD_DESTRUCTOR_ITERATIONS
|
||||
# undef PTHREAD_STACK_MIN
|
||||
# undef DELAYTIMER_MAX
|
||||
#endif
|
||||
|
||||
#endif /* bits/uClibc_local_lim.h */
|
||||
380
tasks/libposix/include/posix/bits/uClibc_locale.h
Normal file
380
tasks/libposix/include/posix/bits/uClibc_locale.h
Normal file
@@ -0,0 +1,380 @@
|
||||
/* Copyright (C) 2002, 2003 Manuel Novoa III
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* The GNU C Library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with the GNU C Library; if not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA.
|
||||
*/
|
||||
|
||||
/* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
|
||||
*
|
||||
* Besides uClibc, I'm using this code in my libc for elks, which is
|
||||
* a 16-bit environment with a fairly limited compiler. It would make
|
||||
* things much easier for me if this file isn't modified unnecessarily.
|
||||
* In particular, please put any new or replacement functions somewhere
|
||||
* else, and modify the makefile to use your version instead.
|
||||
* Thanks. Manuel
|
||||
*
|
||||
* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION! */
|
||||
|
||||
#ifndef _UCLIBC_LOCALE_H
|
||||
#define _UCLIBC_LOCALE_H
|
||||
|
||||
/**********************************************************************/
|
||||
/* uClibc compatibilty stuff */
|
||||
|
||||
#ifdef __UCLIBC_HAS_LOCALE__
|
||||
|
||||
#undef __LOCALE_C_ONLY
|
||||
|
||||
#else /* __UCLIBC_HAS_LOCALE__ */
|
||||
|
||||
#define __LOCALE_C_ONLY
|
||||
|
||||
#define __XL_NPP(N) N
|
||||
#define __LOCALE_PARAM
|
||||
#define __LOCALE_ARG
|
||||
|
||||
#endif /* __UCLIBC_HAS_LOCALE__ */
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
#define __NL_ITEM_CATEGORY_SHIFT (8)
|
||||
#define __NL_ITEM_INDEX_MASK (0xff)
|
||||
|
||||
/* TODO: Make sure these agree with the locale mmap file gererator! */
|
||||
|
||||
#define __LC_CTYPE 0
|
||||
#define __LC_NUMERIC 1
|
||||
#define __LC_MONETARY 2
|
||||
#define __LC_TIME 3
|
||||
#define __LC_COLLATE 4
|
||||
#define __LC_MESSAGES 5
|
||||
#define __LC_ALL 6
|
||||
|
||||
/**********************************************************************/
|
||||
#ifndef __LOCALE_C_ONLY
|
||||
|
||||
#if defined _LIBC /* && (defined IS_IN_libc || defined NOT_IN_libc) */
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <bits/uClibc_touplow.h>
|
||||
|
||||
#ifndef __UCLIBC_GEN_LOCALE
|
||||
#include <bits/uClibc_locale_data.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* extern void _locale_set(const unsigned char *p); */
|
||||
/* extern void _locale_init(void); */
|
||||
|
||||
enum {
|
||||
__ctype_encoding_7_bit, /* C/POSIX */
|
||||
__ctype_encoding_utf8, /* UTF-8 */
|
||||
__ctype_encoding_8_bit /* for 8-bit codeset locales */
|
||||
};
|
||||
|
||||
#define LOCALE_STRING_SIZE (2 * __LC_ALL + 2)
|
||||
|
||||
/*
|
||||
* '#' + 2_per_category + '\0'
|
||||
* {locale row # : 0 = C|POSIX} + 0x8001
|
||||
* encoded in two chars as (((N+1) >> 8) | 0x80) and ((N+1) & 0xff)
|
||||
* so decode is ((((uint16_t)(*s & 0x7f)) << 8) + s[1]) - 1
|
||||
*
|
||||
* Note: 0s are not used as they are nul-terminators for strings.
|
||||
* Note: 0xff, 0xff is the encoding for a non-selected locale.
|
||||
* (see setlocale() below).
|
||||
* In particular, C/POSIX locale is '#' + "\x80\x01"}*LC_ALL + nul.
|
||||
*/
|
||||
|
||||
#if defined _LIBC && !defined __UCLIBC_GEN_LOCALE /* && (defined IS_IN_libc || defined NOT_IN_libc) */
|
||||
typedef struct {
|
||||
uint16_t num_weights;
|
||||
uint16_t num_starters;
|
||||
uint16_t ii_shift;
|
||||
uint16_t ti_shift;
|
||||
uint16_t ii_len;
|
||||
uint16_t ti_len;
|
||||
uint16_t max_weight;
|
||||
uint16_t num_col_base;
|
||||
uint16_t max_col_index;
|
||||
uint16_t undefined_idx;
|
||||
uint16_t range_low;
|
||||
uint16_t range_count;
|
||||
uint16_t range_base_weight;
|
||||
uint16_t range_rule_offset; /* change name to index? */
|
||||
|
||||
uint16_t ii_mask;
|
||||
uint16_t ti_mask;
|
||||
|
||||
const uint16_t *index2weight_tbl;
|
||||
const uint16_t *index2ruleidx_tbl;
|
||||
const uint16_t *multistart_tbl;
|
||||
/* uint16_t wcs2colidt_offset_low; */
|
||||
/* uint16_t wcs2colidt_offset_hi; */
|
||||
const uint16_t *wcs2colidt_tbl;
|
||||
|
||||
/* uint16_t undefined_idx; */
|
||||
const uint16_t *overrides_tbl;
|
||||
/* uint16_t *multistart_tbl; */
|
||||
|
||||
const uint16_t *weightstr;
|
||||
const uint16_t *ruletable;
|
||||
|
||||
|
||||
uint16_t *index2weight;
|
||||
uint16_t *index2ruleidx;
|
||||
|
||||
uint16_t MAX_WEIGHTS;
|
||||
} __collate_t;
|
||||
|
||||
|
||||
/* static unsigned char cur_locale[LOCALE_STRING_SIZE]; */
|
||||
|
||||
typedef struct __uclibc_locale_struct {
|
||||
#ifdef __UCLIBC_HAS_XLOCALE__
|
||||
const __ctype_mask_t *__ctype_b;
|
||||
const __ctype_touplow_t *__ctype_tolower;
|
||||
const __ctype_touplow_t *__ctype_toupper;
|
||||
#endif
|
||||
|
||||
/* For now, just embed this in the structure. */
|
||||
__ctype_mask_t __ctype_b_data[256 + __UCLIBC_CTYPE_B_TBL_OFFSET];
|
||||
__ctype_touplow_t __ctype_tolower_data[256 + __UCLIBC_CTYPE_TO_TBL_OFFSET];
|
||||
__ctype_touplow_t __ctype_toupper_data[256 + __UCLIBC_CTYPE_TO_TBL_OFFSET];
|
||||
|
||||
/* int tables_loaded; */
|
||||
/* unsigned char lctypes[LOCALE_STRING_SIZE]; */
|
||||
unsigned char cur_locale[LOCALE_STRING_SIZE];
|
||||
|
||||
/* NL_LANGINFO stuff. BEWARE ORDERING!!! must agree with NL_* constants! */
|
||||
/* Also, numeric must be followed by monetary and the items must be in
|
||||
* the "struct lconv" order. */
|
||||
|
||||
uint16_t category_offsets[__LC_ALL]; /* TODO -- fix? */
|
||||
unsigned char category_item_count[__LC_ALL]; /* TODO - fix */
|
||||
|
||||
/* ctype */
|
||||
unsigned char encoding; /* C/POSIX, 8-bit, UTF-8 */
|
||||
unsigned char mb_cur_max; /* determined by encoding _AND_ translit!!! */
|
||||
const unsigned char outdigit_length[10];
|
||||
|
||||
#ifdef __CTYPE_HAS_8_BIT_LOCALES
|
||||
const unsigned char *idx8ctype;
|
||||
const unsigned char *tbl8ctype;
|
||||
const unsigned char *idx8uplow;
|
||||
const unsigned char *tbl8uplow;
|
||||
#ifdef __UCLIBC_HAS_WCHAR__
|
||||
const unsigned char *idx8c2wc;
|
||||
const uint16_t *tbl8c2wc; /* char > 0x7f to wide char */
|
||||
const unsigned char *idx8wc2c;
|
||||
const unsigned char *tbl8wc2c;
|
||||
/* translit */
|
||||
#endif /* __UCLIBC_HAS_WCHAR__ */
|
||||
#endif /* __CTYPE_HAS_8_BIT_LOCALES */
|
||||
#ifdef __UCLIBC_HAS_WCHAR__
|
||||
|
||||
const uint16_t *code2flag;
|
||||
|
||||
const unsigned char *tblwctype;
|
||||
const unsigned char *tblwuplow;
|
||||
/* const unsigned char *tblwcomb; */
|
||||
const int16_t *tblwuplow_diff; /* yes... signed */
|
||||
/* width?? */
|
||||
|
||||
wchar_t decimal_point_wc;
|
||||
wchar_t thousands_sep_wc;
|
||||
int decimal_point_len;
|
||||
int thousands_sep_len;
|
||||
|
||||
#endif /* __UCLIBC_HAS_WCHAR__ */
|
||||
|
||||
/* ctype */
|
||||
const char *outdigit0_mb;
|
||||
const char *outdigit1_mb;
|
||||
const char *outdigit2_mb;
|
||||
const char *outdigit3_mb;
|
||||
const char *outdigit4_mb;
|
||||
const char *outdigit5_mb;
|
||||
const char *outdigit6_mb;
|
||||
const char *outdigit7_mb;
|
||||
const char *outdigit8_mb;
|
||||
const char *outdigit9_mb;
|
||||
const char *codeset; /* MUST BE LAST!!! */
|
||||
|
||||
/* numeric */
|
||||
const char *decimal_point;
|
||||
const char *thousands_sep;
|
||||
const char *grouping;
|
||||
|
||||
/* monetary */
|
||||
const char *int_curr_symbol;
|
||||
const char *currency_symbol;
|
||||
const char *mon_decimal_point;
|
||||
const char *mon_thousands_sep;
|
||||
const char *mon_grouping;
|
||||
const char *positive_sign;
|
||||
const char *negative_sign;
|
||||
const char *int_frac_digits;
|
||||
const char *frac_digits;
|
||||
const char *p_cs_precedes;
|
||||
const char *p_sep_by_space;
|
||||
const char *n_cs_precedes;
|
||||
const char *n_sep_by_space;
|
||||
const char *p_sign_posn;
|
||||
const char *n_sign_posn;
|
||||
const char *int_p_cs_precedes;
|
||||
const char *int_p_sep_by_space;
|
||||
const char *int_n_cs_precedes;
|
||||
const char *int_n_sep_by_space;
|
||||
const char *int_p_sign_posn;
|
||||
const char *int_n_sign_posn;
|
||||
|
||||
const char *crncystr; /* not returned by localeconv */
|
||||
|
||||
/* time */
|
||||
const char *abday_1;
|
||||
const char *abday_2;
|
||||
const char *abday_3;
|
||||
const char *abday_4;
|
||||
const char *abday_5;
|
||||
const char *abday_6;
|
||||
const char *abday_7;
|
||||
|
||||
const char *day_1;
|
||||
const char *day_2;
|
||||
const char *day_3;
|
||||
const char *day_4;
|
||||
const char *day_5;
|
||||
const char *day_6;
|
||||
const char *day_7;
|
||||
|
||||
const char *abmon_1;
|
||||
const char *abmon_2;
|
||||
const char *abmon_3;
|
||||
const char *abmon_4;
|
||||
const char *abmon_5;
|
||||
const char *abmon_6;
|
||||
const char *abmon_7;
|
||||
const char *abmon_8;
|
||||
const char *abmon_9;
|
||||
const char *abmon_10;
|
||||
const char *abmon_11;
|
||||
const char *abmon_12;
|
||||
|
||||
const char *mon_1;
|
||||
const char *mon_2;
|
||||
const char *mon_3;
|
||||
const char *mon_4;
|
||||
const char *mon_5;
|
||||
const char *mon_6;
|
||||
const char *mon_7;
|
||||
const char *mon_8;
|
||||
const char *mon_9;
|
||||
const char *mon_10;
|
||||
const char *mon_11;
|
||||
const char *mon_12;
|
||||
|
||||
const char *am_str;
|
||||
const char *pm_str;
|
||||
|
||||
const char *d_t_fmt;
|
||||
const char *d_fmt;
|
||||
const char *t_fmt;
|
||||
const char *t_fmt_ampm;
|
||||
const char *era;
|
||||
|
||||
const char *era_year; /* non SUSv3 */
|
||||
const char *era_d_fmt;
|
||||
const char *alt_digits;
|
||||
const char *era_d_t_fmt;
|
||||
const char *era_t_fmt;
|
||||
|
||||
/* collate is at the end */
|
||||
|
||||
/* messages */
|
||||
const char *yesexpr;
|
||||
const char *noexpr;
|
||||
const char *yesstr;
|
||||
const char *nostr;
|
||||
|
||||
/* collate is at the end */
|
||||
__collate_t collate;
|
||||
|
||||
} __uclibc_locale_t;
|
||||
|
||||
extern __uclibc_locale_t __global_locale_data;
|
||||
extern struct __uclibc_locale_struct * __global_locale;
|
||||
#endif /* _LIBC */
|
||||
|
||||
typedef struct __uclibc_locale_struct *__locale_t;
|
||||
|
||||
/* if we need to leave only _LIBC, then attribute_hidden is not usable */
|
||||
#if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
|
||||
extern int __locale_mbrtowc_l(wchar_t *__restrict dst,
|
||||
const char *__restrict src,
|
||||
__locale_t loc ) attribute_hidden;
|
||||
#endif
|
||||
|
||||
#ifdef L_setlocale
|
||||
/* so we only get the warning once... */
|
||||
#warning need thread version of CUR_LOCALE!
|
||||
#endif
|
||||
/**********************************************************************/
|
||||
#ifdef __UCLIBC_HAS_XLOCALE__
|
||||
|
||||
extern __locale_t __curlocale_var;
|
||||
|
||||
#ifdef __UCLIBC_HAS_THREADS__
|
||||
|
||||
extern __locale_t __curlocale(void) __THROW __attribute__ ((__const__));
|
||||
extern __locale_t __curlocale_set(__locale_t newloc);
|
||||
#define __UCLIBC_CURLOCALE (__curlocale())
|
||||
#define __UCLIBC_CURLOCALE_DATA (*__curlocale())
|
||||
|
||||
#else /* __UCLIBC_HAS_THREADS__ */
|
||||
|
||||
#define __UCLIBC_CURLOCALE (__curlocale_var)
|
||||
#define __UCLIBC_CURLOCALE_DATA (*__curlocale_var)
|
||||
|
||||
#endif /* __UCLIBC_HAS_THREADS__ */
|
||||
|
||||
#elif defined(__UCLIBC_HAS_LOCALE__)
|
||||
|
||||
#define __UCLIBC_CURLOCALE (__global_locale)
|
||||
#define __UCLIBC_CURLOCALE_DATA (*__global_locale)
|
||||
|
||||
#endif
|
||||
/**********************************************************************/
|
||||
#if defined(__UCLIBC_HAS_XLOCALE__) && defined(__UCLIBC_DO_XLOCALE)
|
||||
|
||||
#define __XL_NPP(N) N ## _l
|
||||
#define __LOCALE_PARAM , __locale_t locale_arg
|
||||
#define __LOCALE_ARG , locale_arg
|
||||
#define __LOCALE_PTR locale_arg
|
||||
|
||||
#else /* defined(__UCLIBC_HAS_XLOCALE__) && defined(__UCLIBC_DO_XLOCALE) */
|
||||
|
||||
#define __XL_NPP(N) N
|
||||
#define __LOCALE_PARAM
|
||||
#define __LOCALE_ARG
|
||||
#define __LOCALE_PTR __UCLIBC_CURLOCALE
|
||||
|
||||
#endif /* defined(__UCLIBC_HAS_XLOCALE__) && defined(__UCLIBC_DO_XLOCALE) */
|
||||
/**********************************************************************/
|
||||
|
||||
#endif /* !defined(__LOCALE_C_ONLY) */
|
||||
/**********************************************************************/
|
||||
|
||||
#endif /* _UCLIBC_LOCALE_H */
|
||||
88
tasks/libposix/include/posix/bits/uClibc_mutex.h
Normal file
88
tasks/libposix/include/posix/bits/uClibc_mutex.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/* Copyright (C) 2006 Manuel Novoa III <mjn3@codepoet.org>
|
||||
*
|
||||
* GNU Library General Public License (LGPL) version 2 or later.
|
||||
*
|
||||
* Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
|
||||
*/
|
||||
|
||||
#ifndef _UCLIBC_MUTEX_H
|
||||
#define _UCLIBC_MUTEX_H
|
||||
|
||||
#include <features.h>
|
||||
|
||||
#ifdef __UCLIBC_HAS_THREADS__
|
||||
|
||||
#include <pthread.h>
|
||||
#include <bits/uClibc_pthread.h>
|
||||
|
||||
#define __UCLIBC_MUTEX_TYPE pthread_mutex_t
|
||||
|
||||
#define __UCLIBC_MUTEX(M) pthread_mutex_t M
|
||||
#define __UCLIBC_MUTEX_INIT(M,I) pthread_mutex_t M = I
|
||||
#define __UCLIBC_MUTEX_STATIC(M,I) static pthread_mutex_t M = I
|
||||
#define __UCLIBC_MUTEX_EXTERN(M) extern pthread_mutex_t M
|
||||
|
||||
#define __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(M) \
|
||||
__pthread_mutex_lock(&(M))
|
||||
|
||||
#define __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(M) \
|
||||
__pthread_mutex_unlock(&(M))
|
||||
|
||||
#define __UCLIBC_MUTEX_TRYLOCK_CANCEL_UNSAFE(M) \
|
||||
__pthread_mutex_trylock(&(M))
|
||||
|
||||
#define __UCLIBC_MUTEX_CONDITIONAL_LOCK(M,C) \
|
||||
do { \
|
||||
struct _pthread_cleanup_buffer __infunc_pthread_cleanup_buffer; \
|
||||
if (C) { \
|
||||
_pthread_cleanup_push_defer(&__infunc_pthread_cleanup_buffer, \
|
||||
(void (*) (void *))__pthread_mutex_unlock, \
|
||||
&(M)); \
|
||||
__pthread_mutex_lock(&(M)); \
|
||||
} \
|
||||
((void)0)
|
||||
|
||||
#define __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,C) \
|
||||
if (C) { \
|
||||
_pthread_cleanup_pop_restore(&__infunc_pthread_cleanup_buffer,1); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define __UCLIBC_MUTEX_AUTO_LOCK_VAR(A) int A
|
||||
|
||||
#define __UCLIBC_MUTEX_AUTO_LOCK(M,A,V) \
|
||||
__UCLIBC_MUTEX_CONDITIONAL_LOCK(M,((A=(V)) == 0))
|
||||
|
||||
#define __UCLIBC_MUTEX_AUTO_UNLOCK(M,A) \
|
||||
__UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,(A == 0))
|
||||
|
||||
#define __UCLIBC_MUTEX_LOCK(M) \
|
||||
__UCLIBC_MUTEX_CONDITIONAL_LOCK(M, 1)
|
||||
|
||||
#define __UCLIBC_MUTEX_UNLOCK(M) \
|
||||
__UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M, 1)
|
||||
|
||||
#else
|
||||
|
||||
#define __UCLIBC_MUTEX(M) void *__UCLIBC_MUTEX_DUMMY_ ## M
|
||||
#define __UCLIBC_MUTEX_INIT(M,I) extern void *__UCLIBC_MUTEX_DUMMY_ ## M
|
||||
#define __UCLIBC_MUTEX_STATIC(M,I) extern void *__UCLIBC_MUTEX_DUMMY_ ## M
|
||||
#define __UCLIBC_MUTEX_EXTERN(M) extern void *__UCLIBC_MUTEX_DUMMY_ ## M
|
||||
|
||||
#define __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(M) ((void)0)
|
||||
#define __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(M) ((void)0)
|
||||
#define __UCLIBC_MUTEX_TRYLOCK_CANCEL_UNSAFE(M) (0) /* Always succeed? */
|
||||
|
||||
#define __UCLIBC_MUTEX_CONDITIONAL_LOCK(M,C) ((void)0)
|
||||
#define __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,C) ((void)0)
|
||||
|
||||
#define __UCLIBC_MUTEX_AUTO_LOCK_VAR(A) ((void)0)
|
||||
#define __UCLIBC_MUTEX_AUTO_LOCK(M,A,V) ((void)0)
|
||||
#define __UCLIBC_MUTEX_AUTO_UNLOCK(M,A) ((void)0)
|
||||
|
||||
#define __UCLIBC_MUTEX_LOCK(M) ((void)0)
|
||||
#define __UCLIBC_MUTEX_UNLOCK(M) ((void)0)
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _UCLIBC_MUTEX_H */
|
||||
29
tasks/libposix/include/posix/bits/uClibc_page.h
Normal file
29
tasks/libposix/include/posix/bits/uClibc_page.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Copyright (C) 2004 Erik Andersen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* The GNU C Library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with the GNU C Library; if not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA.
|
||||
*/
|
||||
|
||||
/* Supply an architecture specific value for PAGE_SIZE and friends. */
|
||||
|
||||
#ifndef _UCLIBC_PAGE_H
|
||||
#define _UCLIBC_PAGE_H
|
||||
|
||||
/* PAGE_SHIFT determines the page size -- in this case 4096 */
|
||||
#define PAGE_SHIFT 12
|
||||
#define PAGE_SIZE (1UL << PAGE_SHIFT)
|
||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
||||
|
||||
#endif /* _UCLIBC_PAGE_H */
|
||||
50
tasks/libposix/include/posix/bits/uClibc_pthread.h
Normal file
50
tasks/libposix/include/posix/bits/uClibc_pthread.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/* Copyright (C) 2003 Manuel Novoa III
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* The GNU C Library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with the GNU C Library; if not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA.
|
||||
*/
|
||||
|
||||
/* Supply prototypes for the internal thread functions used by the
|
||||
* uClibc library code.
|
||||
*/
|
||||
|
||||
#ifndef _UCLIBC_PTHREAD_H
|
||||
#define _UCLIBC_PTHREAD_H
|
||||
|
||||
#ifndef _PTHREAD_H
|
||||
# error "Always include <pthread.h> rather than <bits/uClibc_pthread.h>"
|
||||
#endif
|
||||
|
||||
#if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
|
||||
/* Threading functions internal to uClibc. Make these thread functions
|
||||
* weak so that we can elide them from single-threaded processes. */
|
||||
extern int weak_function __pthread_mutex_init (pthread_mutex_t *__mutex,
|
||||
__const pthread_mutexattr_t *__mutex_attr);
|
||||
extern int weak_function __pthread_mutex_destroy (pthread_mutex_t *__mutex);
|
||||
extern int weak_function __pthread_mutex_lock (pthread_mutex_t *__mutex);
|
||||
extern int weak_function __pthread_mutex_unlock (pthread_mutex_t *__mutex);
|
||||
extern void __uclibc_mutex_unlock (void *) attribute_hidden;
|
||||
extern int weak_function __pthread_mutex_trylock (pthread_mutex_t *__mutex);
|
||||
# ifndef __UCLIBC_HAS_THREADS_NATIVE__
|
||||
extern void weak_function _pthread_cleanup_push_defer (
|
||||
struct _pthread_cleanup_buffer *__buffer,
|
||||
void (*__routine) (void *), void *__arg);
|
||||
extern void weak_function _pthread_cleanup_pop_restore (
|
||||
struct _pthread_cleanup_buffer *__buffer,
|
||||
int __execute);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
517
tasks/libposix/include/posix/bits/uClibc_stdio.h
Normal file
517
tasks/libposix/include/posix/bits/uClibc_stdio.h
Normal file
@@ -0,0 +1,517 @@
|
||||
/* Copyright (C) 2002-2004 Manuel Novoa III <mjn3@codepoet.org>
|
||||
*
|
||||
* GNU Library General Public License (LGPL) version 2 or later.
|
||||
*
|
||||
* Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
|
||||
*/
|
||||
|
||||
#ifndef _STDIO_H
|
||||
#error Always include <stdio.h> rather than <bits/uClibc_stdio.h>
|
||||
#endif
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
#define __STDIO_BUFFERS
|
||||
/* ANSI/ISO mandate at least 256. */
|
||||
#if defined(__UCLIBC_HAS_STDIO_BUFSIZ_NONE__)
|
||||
/* Fake this because some apps use stdio.h BUFSIZ. */
|
||||
#define __STDIO_BUFSIZ 256
|
||||
#undef __STDIO_BUFFERS
|
||||
#elif defined(__UCLIBC_HAS_STDIO_BUFSIZ_256__)
|
||||
#define __STDIO_BUFSIZ 256
|
||||
#elif defined(__UCLIBC_HAS_STDIO_BUFSIZ_512__)
|
||||
#define __STDIO_BUFSIZ 512
|
||||
#elif defined(__UCLIBC_HAS_STDIO_BUFSIZ_1024__)
|
||||
#define __STDIO_BUFSIZ 1024
|
||||
#elif defined(__UCLIBC_HAS_STDIO_BUFSIZ_2048__)
|
||||
#define __STDIO_BUFSIZ 2048
|
||||
#elif defined(__UCLIBC_HAS_STDIO_BUFSIZ_4096__)
|
||||
#define __STDIO_BUFSIZ 4096
|
||||
#elif defined(__UCLIBC_HAS_STDIO_BUFSIZ_8192__)
|
||||
#define __STDIO_BUFSIZ 8192
|
||||
#else
|
||||
#error config seems to be out of sync regarding bufsiz options
|
||||
#endif
|
||||
|
||||
#ifdef __UCLIBC_HAS_STDIO_BUFSIZ_NONE__
|
||||
#define __STDIO_BUILTIN_BUF_SIZE 0
|
||||
#else /* __UCLIBC_HAS_STDIO_BUFSIZ_NONE__ */
|
||||
#if defined(__UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE__)
|
||||
#define __STDIO_BUILTIN_BUF_SIZE 0
|
||||
#elif defined(__UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4__)
|
||||
#define __STDIO_BUILTIN_BUF_SIZE 4
|
||||
#elif defined(__UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8__)
|
||||
#define __STDIO_BUILTIN_BUF_SIZE 8
|
||||
#else
|
||||
#error config seems to be out of sync regarding builtin buffer size
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__STDIO_BUFFERS) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__) || defined(__UCLIBC_HAS_THREADS__)
|
||||
#define __STDIO_HAS_OPENLIST 1
|
||||
#else
|
||||
#undef __STDIO_HAS_OPENLIST
|
||||
#endif
|
||||
|
||||
/**********************************************************************/
|
||||
/* Make sure defines related to large files are consistent. */
|
||||
#ifdef _LIBC
|
||||
|
||||
#ifdef __UCLIBC_HAS_LFS__
|
||||
#undef __USE_LARGEFILE
|
||||
#undef __USE_LARGEFILE64
|
||||
#undef __USE_FILE_OFFSET64
|
||||
/* If we're actually building uClibc with large file support, only define... */
|
||||
#define __USE_LARGEFILE64 1
|
||||
#endif /* __UCLIBC_HAS_LFS__ */
|
||||
|
||||
#else /* not _LIBC */
|
||||
|
||||
#ifndef __UCLIBC_HAS_LFS__
|
||||
#if defined(__LARGEFILE64_SOURCE) || defined(__USE_LARGEFILE64) || defined(__USE_FILE_OFFSET64)
|
||||
#error Sorry... uClibc was built without large file support!
|
||||
#endif
|
||||
#endif /* __UCLIBC_HAS_LFS__ */
|
||||
|
||||
#endif /* _LIBC */
|
||||
/**********************************************************************/
|
||||
#ifdef __UCLIBC_HAS_WCHAR__
|
||||
|
||||
#define __need_wchar_t
|
||||
#include <stddef.h>
|
||||
|
||||
/* Note: we don't really need mbstate for 8-bit locales. We do for UTF-8.
|
||||
* For now, always use it. */
|
||||
#define __STDIO_MBSTATE
|
||||
#define __need_mbstate_t
|
||||
#include <wchar.h>
|
||||
|
||||
#endif
|
||||
/**********************************************************************/
|
||||
/* Currently unimplemented/untested */
|
||||
/* #define __STDIO_FLEXIBLE_SETVBUF */
|
||||
|
||||
#ifdef __UCLIBC_HAS_STDIO_GETC_MACRO__
|
||||
#define __STDIO_GETC_MACRO
|
||||
#endif
|
||||
|
||||
#ifdef __UCLIBC_HAS_STDIO_PUTC_MACRO__
|
||||
#define __STDIO_PUTC_MACRO
|
||||
#endif
|
||||
|
||||
|
||||
/* These are consistency checks on the different options */
|
||||
|
||||
#ifndef __STDIO_BUFFERS
|
||||
#undef __STDIO_GETC_MACRO
|
||||
#undef __STDIO_PUTC_MACRO
|
||||
#endif
|
||||
|
||||
#ifdef __BCC__
|
||||
#undef __UCLIBC_HAS_LFS__
|
||||
#endif
|
||||
|
||||
#ifndef __UCLIBC_HAS_LFS__
|
||||
#undef __UCLIBC_HAS_FOPEN_LARGEFILE_MODE__
|
||||
#endif
|
||||
|
||||
/**********************************************************************/
|
||||
#include <bits/uClibc_mutex.h>
|
||||
|
||||
/* user_locking
|
||||
* 0 : do auto locking/unlocking
|
||||
* 1 : user does locking/unlocking
|
||||
* 2 : initial state prior to thread initialization
|
||||
* with no auto locking/unlocking
|
||||
*
|
||||
* When threading is initialized, walk the stdio open stream list
|
||||
* and do "if (user_locking == 2) user_locking = 0;".
|
||||
*
|
||||
* This way, we avoid calling the weak lock/unlock functions.
|
||||
*/
|
||||
|
||||
#define __STDIO_AUTO_THREADLOCK_VAR \
|
||||
__UCLIBC_MUTEX_AUTO_LOCK_VAR(__infunc_user_locking)
|
||||
|
||||
#define __STDIO_AUTO_THREADLOCK(__stream) \
|
||||
__UCLIBC_MUTEX_AUTO_LOCK((__stream)->__lock, __infunc_user_locking, \
|
||||
(__stream)->__user_locking)
|
||||
|
||||
#define __STDIO_AUTO_THREADUNLOCK(__stream) \
|
||||
__UCLIBC_MUTEX_AUTO_UNLOCK((__stream)->__lock, __infunc_user_locking)
|
||||
|
||||
#define __STDIO_ALWAYS_THREADLOCK(__stream) \
|
||||
__UCLIBC_MUTEX_LOCK((__stream)->__lock)
|
||||
|
||||
#define __STDIO_ALWAYS_THREADUNLOCK(__stream) \
|
||||
__UCLIBC_MUTEX_UNLOCK((__stream)->__lock)
|
||||
|
||||
#define __STDIO_ALWAYS_THREADLOCK_CANCEL_UNSAFE(__stream) \
|
||||
__UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE((__stream)->__lock)
|
||||
|
||||
#define __STDIO_ALWAYS_THREADTRYLOCK_CANCEL_UNSAFE(__stream) \
|
||||
__UCLIBC_MUTEX_TRYLOCK_CANCEL_UNSAFE((__stream)->__lock)
|
||||
|
||||
#define __STDIO_ALWAYS_THREADUNLOCK_CANCEL_UNSAFE(__stream) \
|
||||
__UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE((__stream)->__lock)
|
||||
|
||||
#ifdef __UCLIBC_HAS_THREADS__
|
||||
#define __STDIO_SET_USER_LOCKING(__stream) ((__stream)->__user_locking = 1)
|
||||
#else
|
||||
#define __STDIO_SET_USER_LOCKING(__stream) ((void)0)
|
||||
#endif
|
||||
|
||||
/**********************************************************************/
|
||||
|
||||
#define __STDIO_IOFBF 0 /* Fully buffered. */
|
||||
#define __STDIO_IOLBF 1 /* Line buffered. */
|
||||
#define __STDIO_IONBF 2 /* No buffering. */
|
||||
|
||||
typedef struct {
|
||||
__off_t __pos;
|
||||
#ifdef __STDIO_MBSTATE
|
||||
__mbstate_t __mbstate;
|
||||
#endif
|
||||
#ifdef __UCLIBC_HAS_WCHAR__
|
||||
int __mblen_pending;
|
||||
#endif
|
||||
} __STDIO_fpos_t;
|
||||
|
||||
#ifdef __UCLIBC_HAS_LFS__
|
||||
typedef struct {
|
||||
__off64_t __pos;
|
||||
#ifdef __STDIO_MBSTATE
|
||||
__mbstate_t __mbstate;
|
||||
#endif
|
||||
#ifdef __UCLIBC_HAS_WCHAR__
|
||||
int __mblen_pending;
|
||||
#endif
|
||||
} __STDIO_fpos64_t;
|
||||
#endif
|
||||
|
||||
/**********************************************************************/
|
||||
#ifdef __UCLIBC_HAS_LFS__
|
||||
typedef __off64_t __offmax_t; /* TODO -- rename this? */
|
||||
#else
|
||||
typedef __off_t __offmax_t; /* TODO -- rename this? */
|
||||
#endif
|
||||
|
||||
/**********************************************************************/
|
||||
#ifdef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__
|
||||
|
||||
typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __bufsize);
|
||||
typedef __ssize_t __io_write_fn(void *__cookie,
|
||||
__const char *__buf, size_t __bufsize);
|
||||
/* NOTE: GLIBC difference!!! -- fopencookie seek function
|
||||
* For glibc, the type of pos is always (__off64_t *) but in our case
|
||||
* it is type (__off_t *) when the lib is built without large file support.
|
||||
*/
|
||||
typedef int __io_seek_fn(void *__cookie, __offmax_t *__pos, int __whence);
|
||||
typedef int __io_close_fn(void *__cookie);
|
||||
|
||||
typedef struct {
|
||||
__io_read_fn *read;
|
||||
__io_write_fn *write;
|
||||
__io_seek_fn *seek;
|
||||
__io_close_fn *close;
|
||||
} _IO_cookie_io_functions_t;
|
||||
|
||||
#if defined(_LIBC) || defined(_GNU_SOURCE)
|
||||
|
||||
typedef __io_read_fn cookie_read_function_t;
|
||||
typedef __io_write_fn cookie_write_function_t;
|
||||
typedef __io_seek_fn cookie_seek_function_t;
|
||||
typedef __io_close_fn cookie_close_function_t;
|
||||
|
||||
typedef _IO_cookie_io_functions_t cookie_io_functions_t;
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/**********************************************************************/
|
||||
|
||||
struct __STDIO_FILE_STRUCT {
|
||||
unsigned short __modeflags;
|
||||
/* There could be a hole here, but modeflags is used most.*/
|
||||
#ifdef __UCLIBC_HAS_WCHAR__
|
||||
unsigned char __ungot_width[2]; /* 0: current (building) char; 1: scanf */
|
||||
/* Move the following futher down to avoid problems with getc/putc
|
||||
* macros breaking shared apps when wchar config support is changed. */
|
||||
/* wchar_t ungot[2]; */
|
||||
#else /* __UCLIBC_HAS_WCHAR__ */
|
||||
unsigned char __ungot[2];
|
||||
#endif /* __UCLIBC_HAS_WCHAR__ */
|
||||
int __filedes;
|
||||
#ifdef __STDIO_BUFFERS
|
||||
unsigned char *__bufstart; /* pointer to buffer */
|
||||
unsigned char *__bufend; /* pointer to 1 past end of buffer */
|
||||
unsigned char *__bufpos;
|
||||
unsigned char *__bufread; /* pointer to 1 past last buffered read char */
|
||||
|
||||
#ifdef __STDIO_GETC_MACRO
|
||||
unsigned char *__bufgetc_u; /* 1 past last readable by getc_unlocked */
|
||||
#endif /* __STDIO_GETC_MACRO */
|
||||
#ifdef __STDIO_PUTC_MACRO
|
||||
unsigned char *__bufputc_u; /* 1 past last writeable by putc_unlocked */
|
||||
#endif /* __STDIO_PUTC_MACRO */
|
||||
|
||||
#endif /* __STDIO_BUFFERS */
|
||||
|
||||
#ifdef __STDIO_HAS_OPENLIST
|
||||
struct __STDIO_FILE_STRUCT *__nextopen;
|
||||
#endif
|
||||
#ifdef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__
|
||||
void *__cookie;
|
||||
_IO_cookie_io_functions_t __gcs;
|
||||
#endif
|
||||
#ifdef __UCLIBC_HAS_WCHAR__
|
||||
wchar_t __ungot[2];
|
||||
#endif
|
||||
#ifdef __STDIO_MBSTATE
|
||||
__mbstate_t __state;
|
||||
#endif
|
||||
#ifdef __UCLIBC_HAS_XLOCALE__
|
||||
void *__unused; /* Placeholder for codeset binding. */
|
||||
#endif
|
||||
#ifdef __UCLIBC_HAS_THREADS__
|
||||
int __user_locking;
|
||||
__UCLIBC_MUTEX(__lock);
|
||||
#endif
|
||||
/* Everything after this is unimplemented... and may be trashed. */
|
||||
#if __STDIO_BUILTIN_BUF_SIZE > 0
|
||||
unsigned char __builtinbuf[__STDIO_BUILTIN_BUF_SIZE];
|
||||
#endif /* __STDIO_BUILTIN_BUF_SIZE > 0 */
|
||||
};
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
/* Having ungotten characters implies the stream is reading.
|
||||
* The scheme used here treats the least significant 2 bits of
|
||||
* the stream's modeflags member as follows:
|
||||
* 0 0 Not currently reading.
|
||||
* 0 1 Reading, but no ungetc() or scanf() push back chars.
|
||||
* 1 0 Reading with one ungetc() char (ungot[1] is 1)
|
||||
* or one scanf() pushed back char (ungot[1] is 0).
|
||||
* 1 1 Reading with both an ungetc() char and a scanf()
|
||||
* pushed back char. Note that this must be the result
|
||||
* of a scanf() push back (in ungot[0]) _followed_ by
|
||||
* an ungetc() call (in ungot[1]).
|
||||
*
|
||||
* Notes:
|
||||
* scanf() can NOT use ungetc() to push back characters.
|
||||
* (See section 7.19.6.2 of the C9X rationale -- WG14/N897.)
|
||||
*/
|
||||
|
||||
#define __MASK_READING 0x0003U /* (0x0001 | 0x0002) */
|
||||
#define __FLAG_READING 0x0001U
|
||||
#define __FLAG_UNGOT 0x0002U
|
||||
#define __FLAG_EOF 0x0004U
|
||||
#define __FLAG_ERROR 0x0008U
|
||||
#define __FLAG_WRITEONLY 0x0010U
|
||||
#define __FLAG_READONLY 0x0020U /* (__FLAG_WRITEONLY << 1) */
|
||||
#define __FLAG_WRITING 0x0040U
|
||||
#define __FLAG_NARROW 0x0080U
|
||||
|
||||
#define __FLAG_FBF 0x0000U /* must be 0 */
|
||||
#define __FLAG_LBF 0x0100U
|
||||
#define __FLAG_NBF 0x0200U /* (__FLAG_LBF << 1) */
|
||||
#define __MASK_BUFMODE 0x0300U /* (__FLAG_LBF|__FLAG_NBF) */
|
||||
#define __FLAG_APPEND 0x0400U /* fixed! == O_APPEND for linux */
|
||||
#define __FLAG_WIDE 0x0800U
|
||||
/* available slot 0x1000U */
|
||||
#define __FLAG_FREEFILE 0x2000U
|
||||
#define __FLAG_FREEBUF 0x4000U
|
||||
#define __FLAG_LARGEFILE 0x8000U /* fixed! == 0_LARGEFILE for linux */
|
||||
#define __FLAG_FAILED_FREOPEN __FLAG_LARGEFILE
|
||||
|
||||
/* Note: In no-buffer mode, it would be possible to pack the necessary
|
||||
* flags into one byte. Since we wouldn't be buffering and there would
|
||||
* be no support for wchar, the only flags we would need would be:
|
||||
* 2 bits : ungot count
|
||||
* 2 bits : eof + error
|
||||
* 2 bits : readonly + writeonly
|
||||
* 1 bit : freefile
|
||||
* 1 bit : appending
|
||||
* So, for a very small system (< 128 files) we might have a
|
||||
* 4-byte FILE struct of:
|
||||
* unsigned char flags;
|
||||
* signed char filedes;
|
||||
* unsigned char ungot[2];
|
||||
*/
|
||||
/**********************************************************************
|
||||
* PROTOTYPES OF INTERNAL FUNCTIONS
|
||||
**********************************************************************/
|
||||
#if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
|
||||
|
||||
extern void _stdio_init(void) attribute_hidden;
|
||||
extern void _stdio_term(void) attribute_hidden;
|
||||
|
||||
#ifdef __STDIO_HAS_OPENLIST
|
||||
|
||||
extern struct __STDIO_FILE_STRUCT *_stdio_openlist;
|
||||
|
||||
#ifdef __UCLIBC_HAS_THREADS__
|
||||
__UCLIBC_MUTEX_EXTERN(_stdio_openlist_add_lock);
|
||||
#ifdef __STDIO_BUFFERS
|
||||
__UCLIBC_MUTEX_EXTERN(_stdio_openlist_del_lock);
|
||||
extern volatile int _stdio_openlist_use_count; /* _stdio_openlist_del_lock */
|
||||
extern int _stdio_openlist_del_count; /* _stdio_openlist_del_lock */
|
||||
#endif
|
||||
extern int _stdio_user_locking;
|
||||
extern void __stdio_init_mutex(__UCLIBC_MUTEX_TYPE *m) attribute_hidden;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/**********************************************************************/
|
||||
|
||||
#define __CLEARERR_UNLOCKED(__stream) \
|
||||
((void)((__stream)->__modeflags &= ~(__FLAG_EOF|__FLAG_ERROR)))
|
||||
#define __FEOF_UNLOCKED(__stream) ((__stream)->__modeflags & __FLAG_EOF)
|
||||
#define __FERROR_UNLOCKED(__stream) ((__stream)->__modeflags & __FLAG_ERROR)
|
||||
|
||||
#ifdef __UCLIBC_HAS_THREADS__
|
||||
# define __CLEARERR(__stream) (clearerr)(__stream)
|
||||
# define __FERROR(__stream) (ferror)(__stream)
|
||||
# define __FEOF(__stream) (feof)(__stream)
|
||||
#else
|
||||
# define __CLEARERR(__stream) __CLEARERR_UNLOCKED(__stream)
|
||||
# define __FERROR(__stream) __FERROR_UNLOCKED(__stream)
|
||||
# define __FEOF(__stream) __FEOF_UNLOCKED(__stream)
|
||||
#endif
|
||||
|
||||
extern int __fgetc_unlocked(FILE *__stream);
|
||||
extern int __fputc_unlocked(int __c, FILE *__stream);
|
||||
|
||||
/* First define the default definitions.
|
||||
They are overridden below as necessary. */
|
||||
#define __FGETC_UNLOCKED(__stream) (__fgetc_unlocked)((__stream))
|
||||
#define __FGETC(__stream) (fgetc)((__stream))
|
||||
#define __GETC_UNLOCKED_MACRO(__stream) (__fgetc_unlocked)((__stream))
|
||||
#define __GETC_UNLOCKED(__stream) (__fgetc_unlocked)((__stream))
|
||||
#define __GETC(__stream) (fgetc)((__stream))
|
||||
|
||||
#define __FPUTC_UNLOCKED(__c, __stream) (__fputc_unlocked)((__c),(__stream))
|
||||
#define __FPUTC(__c, __stream) (fputc)((__c),(__stream))
|
||||
#define __PUTC_UNLOCKED_MACRO(__c, __stream) (__fputc_unlocked)((__c),(__stream))
|
||||
#define __PUTC_UNLOCKED(__c, __stream) (__fputc_unlocked)((__c),(__stream))
|
||||
#define __PUTC(__c, __stream) (fputc)((__c),(__stream))
|
||||
|
||||
|
||||
#ifdef __STDIO_GETC_MACRO
|
||||
|
||||
extern FILE *__stdin; /* For getchar() macro. */
|
||||
|
||||
# undef __GETC_UNLOCKED_MACRO
|
||||
# define __GETC_UNLOCKED_MACRO(__stream) \
|
||||
( ((__stream)->__bufpos < (__stream)->__bufgetc_u) \
|
||||
? (*(__stream)->__bufpos++) \
|
||||
: __fgetc_unlocked(__stream) )
|
||||
|
||||
# if 0
|
||||
/* Classic macro approach. getc{_unlocked} can have side effects. */
|
||||
# undef __GETC_UNLOCKED
|
||||
# define __GETC_UNLOCKED(__stream) __GETC_UNLOCKED_MACRO((__stream))
|
||||
# ifndef __UCLIBC_HAS_THREADS__
|
||||
# undef __GETC
|
||||
# define __GETC(__stream) __GETC_UNLOCKED_MACRO((__stream))
|
||||
# endif
|
||||
|
||||
# else
|
||||
/* Using gcc extension for safety and additional inlining. */
|
||||
# undef __FGETC_UNLOCKED
|
||||
# define __FGETC_UNLOCKED(__stream) \
|
||||
(__extension__ ({ \
|
||||
FILE *__S = (__stream); \
|
||||
__GETC_UNLOCKED_MACRO(__S); \
|
||||
}) )
|
||||
|
||||
# undef __GETC_UNLOCKED
|
||||
# define __GETC_UNLOCKED(__stream) __FGETC_UNLOCKED((__stream))
|
||||
|
||||
# ifdef __UCLIBC_HAS_THREADS__
|
||||
# undef __FGETC
|
||||
# define __FGETC(__stream) \
|
||||
(__extension__ ({ \
|
||||
FILE *__S = (__stream); \
|
||||
((__S->__user_locking ) \
|
||||
? __GETC_UNLOCKED_MACRO(__S) \
|
||||
: (fgetc)(__S)); \
|
||||
}) )
|
||||
|
||||
# undef __GETC
|
||||
# define __GETC(__stream) __FGETC((__stream))
|
||||
|
||||
# else
|
||||
|
||||
# undef __FGETC
|
||||
# define __FGETC(__stream) __FGETC_UNLOCKED((__stream))
|
||||
# undef __GETC
|
||||
# define __GETC(__stream) __FGETC_UNLOCKED((__stream))
|
||||
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#else
|
||||
|
||||
#endif /* __STDIO_GETC_MACRO */
|
||||
|
||||
|
||||
#ifdef __STDIO_PUTC_MACRO
|
||||
|
||||
extern FILE *__stdout; /* For putchar() macro. */
|
||||
|
||||
# undef __PUTC_UNLOCKED_MACRO
|
||||
# define __PUTC_UNLOCKED_MACRO(__c, __stream) \
|
||||
( ((__stream)->__bufpos < (__stream)->__bufputc_u) \
|
||||
? (*(__stream)->__bufpos++) = (__c) \
|
||||
: __fputc_unlocked((__c),(__stream)) )
|
||||
|
||||
# if 0
|
||||
/* Classic macro approach. putc{_unlocked} can have side effects.*/
|
||||
# undef __PUTC_UNLOCKED
|
||||
# define __PUTC_UNLOCKED(__c, __stream) \
|
||||
__PUTC_UNLOCKED_MACRO((__c), (__stream))
|
||||
# ifndef __UCLIBC_HAS_THREADS__
|
||||
# undef __PUTC
|
||||
# define __PUTC(__c, __stream) __PUTC_UNLOCKED_MACRO((__c), (__stream))
|
||||
# endif
|
||||
|
||||
# else
|
||||
/* Using gcc extension for safety and additional inlining. */
|
||||
|
||||
# undef __FPUTC_UNLOCKED
|
||||
# define __FPUTC_UNLOCKED(__c, __stream) \
|
||||
(__extension__ ({ \
|
||||
FILE *__S = (__stream); \
|
||||
__PUTC_UNLOCKED_MACRO((__c),__S); \
|
||||
}) )
|
||||
|
||||
# undef __PUTC_UNLOCKED
|
||||
# define __PUTC_UNLOCKED(__c, __stream) __FPUTC_UNLOCKED((__c), (__stream))
|
||||
|
||||
# ifdef __UCLIBC_HAS_THREADS__
|
||||
# undef __FPUTC
|
||||
# define __FPUTC(__c, __stream) \
|
||||
(__extension__ ({ \
|
||||
FILE *__S = (__stream); \
|
||||
((__S->__user_locking) \
|
||||
? __PUTC_UNLOCKED_MACRO((__c),__S) \
|
||||
: (fputc)((__c),__S)); \
|
||||
}) )
|
||||
|
||||
# undef __PUTC
|
||||
# define __PUTC(__c, __stream) __FPUTC((__c), (__stream))
|
||||
|
||||
# else
|
||||
|
||||
# undef __FPUTC
|
||||
# define __FPUTC(__c, __stream) __FPUTC_UNLOCKED((__c),(__stream))
|
||||
# undef __PUTC
|
||||
# define __PUTC(__c, __stream) __FPUTC_UNLOCKED((__c),(__stream))
|
||||
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif /* __STDIO_PUTC_MACRO */
|
||||
55
tasks/libposix/include/posix/bits/uClibc_touplow.h
Normal file
55
tasks/libposix/include/posix/bits/uClibc_touplow.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright (C) 2003 Manuel Novoa III
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* The GNU C Library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with the GNU C Library; if not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA.
|
||||
*/
|
||||
|
||||
/* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
|
||||
*
|
||||
* Besides uClibc, I'm using this code in my libc for elks, which is
|
||||
* a 16-bit environment with a fairly limited compiler. It would make
|
||||
* things much easier for me if this file isn't modified unnecessarily.
|
||||
* In particular, please put any new or replacement functions somewhere
|
||||
* else, and modify the makefile to use your version instead.
|
||||
* Thanks. Manuel
|
||||
*
|
||||
* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION! */
|
||||
|
||||
#ifndef _UCLIBC_TOUPLOW_H
|
||||
#define _UCLIBC_TOUPLOW_H
|
||||
|
||||
#include <features.h>
|
||||
#include <bits/types.h>
|
||||
|
||||
/* glibc uses the equivalent of - typedef __int32_t __ctype_touplow_t; */
|
||||
|
||||
typedef __uint16_t __ctype_mask_t;
|
||||
|
||||
#ifdef __UCLIBC_HAS_CTYPE_SIGNED__
|
||||
|
||||
typedef __int16_t __ctype_touplow_t;
|
||||
#define __UCLIBC_CTYPE_B_TBL_OFFSET 128
|
||||
#define __UCLIBC_CTYPE_TO_TBL_OFFSET 128
|
||||
|
||||
#else /* __UCLIBC_HAS_CTYPE_SIGNED__ */
|
||||
|
||||
typedef unsigned char __ctype_touplow_t;
|
||||
#define __UCLIBC_CTYPE_B_TBL_OFFSET 1
|
||||
#define __UCLIBC_CTYPE_TO_TBL_OFFSET 0
|
||||
|
||||
#endif /* __UCLIBC_HAS_CTYPE_SIGNED__ */
|
||||
|
||||
#endif /* _UCLIBC_TOUPLOW_H */
|
||||
|
||||
116
tasks/libposix/include/posix/bits/uClibc_uintmaxtostr.h
Normal file
116
tasks/libposix/include/posix/bits/uClibc_uintmaxtostr.h
Normal file
@@ -0,0 +1,116 @@
|
||||
/* Copyright (C) 2003 Manuel Novoa III
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* The GNU C Library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with the GNU C Library; if not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA.
|
||||
*/
|
||||
|
||||
/* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
|
||||
*
|
||||
* This code is currently under development. Also, I plan to port
|
||||
* it to elks which is a 16-bit environment with a fairly limited
|
||||
* compiler. Therefore, please refrain from modifying this code
|
||||
* and, instead, pass any bug-fixes, etc. to me. Thanks. Manuel
|
||||
*
|
||||
* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION! */
|
||||
|
||||
#ifndef _UINTMAXTOSTR_H
|
||||
#define _UINTMAXTOSTR_H 1
|
||||
|
||||
#ifdef _FEATURES_H
|
||||
# ifndef __USE_ISOC99
|
||||
# error features was included without defining _ISOC99_SOURCE!
|
||||
# endif
|
||||
#else
|
||||
# ifndef _ISOC99_SOURCE
|
||||
# define _ISOC99_SOURCE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <features.h>
|
||||
#include <limits.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#if INTMAX_MAX <= 2147483647L
|
||||
#define __UIM_BUFLEN 12 /* 10 digits + 1 nul + 1 sign */
|
||||
#elif INTMAX_MAX <= 9223372036854775807LL
|
||||
#define __UIM_BUFLEN 22 /* 20 digits + 1 nul + 1 sign */
|
||||
#else
|
||||
#error unknown number of digits for intmax_t!
|
||||
#endif
|
||||
|
||||
#ifdef LLONG_MAX /* --------------- */
|
||||
#if LLONG_MAX <= 2147483647L
|
||||
#define __UIM_BUFLEN_LLONG 12 /* 10 digits + 1 nul + 1 sign */
|
||||
#elif LLONG_MAX <= 9223372036854775807LL
|
||||
#define __UIM_BUFLEN_LLONG 22 /* 20 digits + 1 nul + 1 sign */
|
||||
#else
|
||||
#error unknown number of digits for long long!
|
||||
#endif
|
||||
#endif /* ULLONG_MAX ----------------------------- */
|
||||
|
||||
#if LONG_MAX <= 2147483647L
|
||||
#define __UIM_BUFLEN_LONG 12 /* 10 digits + 1 nul + 1 sign */
|
||||
#elif LONG_MAX <= 9223372036854775807LL
|
||||
#define __UIM_BUFLEN_LONG 22 /* 20 digits + 1 nul + 1 sign */
|
||||
#else
|
||||
#error unknown number of digits for long!
|
||||
#endif
|
||||
|
||||
#if INT_MAX <= 32767
|
||||
#define __UIM_BUFLEN_INT 7 /* 10 digits + 1 nul + 1 sign */
|
||||
#elif INT_MAX <= 2147483647L
|
||||
#define __UIM_BUFLEN_INT 12 /* 10 digits + 1 nul + 1 sign */
|
||||
#else
|
||||
#error unknown number of digits for int!
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
__UIM_DECIMAL = 0,
|
||||
__UIM_GROUP = ',', /* Base 10 locale-dependent grouping. */
|
||||
__UIM_LOWER = 'a' - 10,
|
||||
__UIM_UPPER = 'A' - 10,
|
||||
} __UIM_CASE;
|
||||
|
||||
/* Convert the int val to a string in base abs(base). val is treated as
|
||||
* an unsigned ??? int type if base > 0, and signed if base < 0. This
|
||||
* is an internal function with _no_ error checking done unless assert()s
|
||||
* are enabled.
|
||||
*
|
||||
* Note: bufend is a pointer to the END of the buffer passed.
|
||||
* Call like this:
|
||||
* char buf[SIZE], *p;
|
||||
* p = _xltostr(buf + sizeof(buf) - 1, {unsigned int}, 10, __UIM_DECIMAL)
|
||||
* p = _xltostr(buf + sizeof(buf) - 1, {int}, -10, __UIM_DECIMAL)
|
||||
*
|
||||
* WARNING: If base > 10, case _must_be_ either __UIM_LOWER or __UIM_UPPER
|
||||
* for lower and upper case alphas respectively.
|
||||
* WARNING: If val is really a signed type, make sure base is negative!
|
||||
* Otherwise, you could overflow your buffer.
|
||||
*/
|
||||
extern char *_uintmaxtostr(char * __restrict bufend, uintmax_t uval,
|
||||
int base, __UIM_CASE alphacase) attribute_hidden;
|
||||
|
||||
/* TODO -- make this either a (possibly inline) function? */
|
||||
#ifndef __BCC__
|
||||
#define _int10tostr(bufend, intval) \
|
||||
_uintmaxtostr((bufend), (intval), -10, __UIM_DECIMAL)
|
||||
#else /* bcc doesn't do prototypes, we need to explicitly cast */
|
||||
#define _int10tostr(bufend, intval) \
|
||||
_uintmaxtostr((bufend), (uintmax_t)(intval), -10, __UIM_DECIMAL)
|
||||
#endif
|
||||
|
||||
#define __BUFLEN_INT10TOSTR __UIM_BUFLEN_INT
|
||||
|
||||
#endif /* _UINTMAXTOSTR_H */
|
||||
57
tasks/libposix/include/posix/bits/uClibc_uwchar.h
Normal file
57
tasks/libposix/include/posix/bits/uClibc_uwchar.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/* Copyright (C) 2003 Manuel Novoa III
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* The GNU C Library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with the GNU C Library; if not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA.
|
||||
*/
|
||||
|
||||
/* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
|
||||
*
|
||||
* Besides uClibc, I'm using this code in my libc for elks, which is
|
||||
* a 16-bit environment with a fairly limited compiler. It would make
|
||||
* things much easier for me if this file isn't modified unnecessarily.
|
||||
* In particular, please put any new or replacement functions somewhere
|
||||
* else, and modify the makefile to use your version instead.
|
||||
* Thanks. Manuel
|
||||
*
|
||||
* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION! */
|
||||
|
||||
|
||||
/* Define an internal unsigned int type __uwchar_t just large enough
|
||||
* to hold a wchar_t.
|
||||
*/
|
||||
|
||||
#ifndef _UCLIBC_UWCHAR_H
|
||||
#define _UCLIBC_UWCHAR_H
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#if WCHAR_MIN == 0
|
||||
typedef wchar_t __uwchar_t;
|
||||
#elif WCHAR_MAX <= USHRT_MAX
|
||||
typedef unsigned short __uwchar_t;
|
||||
#elif WCHAR_MAX <= UINT_MAX
|
||||
typedef unsigned int __uwchar_t;
|
||||
#elif WCHAR_MAX <= ULONG_MAX
|
||||
typedef unsigned long __uwchar_t;
|
||||
#elif defined(ULLONG_MAX) && (WCHAR_MAX <= ULLONG_MAX)
|
||||
typedef unsigned long long __uwchar_t;
|
||||
#elif WCHAR_MAX <= UINTMAX_MAX
|
||||
typedef uintmax_t __uwchar_t;
|
||||
#else
|
||||
#error Can not determine an appropriate type for __uwchar_t!
|
||||
#endif
|
||||
|
||||
#endif /* _UCLIBC_UWCHAR_H */
|
||||
40
tasks/libposix/include/posix/bits/uClibc_va_copy.h
Normal file
40
tasks/libposix/include/posix/bits/uClibc_va_copy.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Copyright (C) 2005 Manuel Novoa III <mjn3@codepoet.org>
|
||||
*
|
||||
* Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* The GNU C Library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with the GNU C Library; if not, write to the Free
|
||||
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
* 02111-1307 USA.
|
||||
*/
|
||||
|
||||
#ifndef _UCLIBC_VA_COPY_H
|
||||
#define _UCLIBC_VA_COPY_H 1
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
/* Deal with pre-C99 compilers. */
|
||||
#ifndef va_copy
|
||||
|
||||
#ifdef __va_copy
|
||||
#define va_copy(A,B) __va_copy(A,B)
|
||||
#else
|
||||
#warning Neither va_copy (C99/SUSv3) or __va_copy is defined. Using a simple copy instead. But you should really check that this is appropriate and supply an arch-specific override if necessary.
|
||||
/* the glibc manual suggests that this will usually suffice when
|
||||
__va_copy doesn't exist. */
|
||||
#define va_copy(A,B) A = B
|
||||
#endif
|
||||
|
||||
#endif /* va_copy */
|
||||
|
||||
#endif /* _UCLIBC_VA_COPY_H */
|
||||
50
tasks/libposix/include/posix/bits/uio.h
Normal file
50
tasks/libposix/include/posix/bits/uio.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/* Copyright (C) 1996, 1997, 2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#if !defined _SYS_UIO_H && !defined _FCNTL_H
|
||||
# error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _BITS_UIO_H
|
||||
#define _BITS_UIO_H 1
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
||||
/* We should normally use the Linux kernel header file to define this
|
||||
type and macros but this calls for trouble because of the header
|
||||
includes other kernel headers. */
|
||||
|
||||
/* Size of object which can be written atomically.
|
||||
|
||||
This macro has different values in different kernel versions. The
|
||||
latest versions of the kernel use 1024 and this is good choice. Since
|
||||
the C library implementation of readv/writev is able to emulate the
|
||||
functionality even if the currently running kernel does not support
|
||||
this large value the readv/writev call will not fail because of this. */
|
||||
#define UIO_MAXIOV 1024
|
||||
|
||||
|
||||
/* Structure for scatter/gather I/O. */
|
||||
struct iovec
|
||||
{
|
||||
void *iov_base; /* Pointer to data. */
|
||||
size_t iov_len; /* Length of data. */
|
||||
};
|
||||
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user