import from github
This commit is contained in:
15
agbcc/libc/include/sys/_types.h
Normal file
15
agbcc/libc/include/sys/_types.h
Normal file
@ -0,0 +1,15 @@
|
||||
/* ANSI C namespace clean utility typedefs */
|
||||
|
||||
/* This file defines various typedefs needed by the system calls that support
|
||||
the C library. Basically, they're just the POSIX versions with an '_'
|
||||
prepended. This file lives in the `sys' directory so targets can provide
|
||||
their own if desired (or they can put target dependant conditionals here).
|
||||
*/
|
||||
|
||||
#ifndef _SYS__TYPES_H
|
||||
#define _SYS__TYPES_H
|
||||
|
||||
typedef long _off_t;
|
||||
typedef long _ssize_t;
|
||||
|
||||
#endif /* _SYS__TYPES_H */
|
111
agbcc/libc/include/sys/config.h
Normal file
111
agbcc/libc/include/sys/config.h
Normal file
@ -0,0 +1,111 @@
|
||||
#ifndef __SYS_CONFIG_H__
|
||||
#define __SYS_CONFIG_H__
|
||||
|
||||
/* exceptions first */
|
||||
/* ??? Why is much of this stuff duplicated with machine/ieeefp.h? */
|
||||
#if defined(__H8300__) || defined(__H8500__) || defined (__H8300H__) || defined(__W65__) || defined (__H8300S__)
|
||||
#define _FLOAT_ARG float
|
||||
#define __SMALL_BITFIELDS
|
||||
#define _DOUBLE_IS_32BITS
|
||||
#define __IEEE_BIG_ENDIAN
|
||||
/* ??? This conditional is true for the h8500 and the w65, defining H8300
|
||||
in those cases probably isn't the right thing to do. */
|
||||
#define H8300 1
|
||||
#endif
|
||||
|
||||
#ifdef __W65__
|
||||
#define _DOUBLE_IS_32BITS
|
||||
#define __SMALL_BITFIELDS
|
||||
#define __IEEE_BIG_ENDIAN
|
||||
#undef INT_MAX
|
||||
#undef UINT_MAX
|
||||
#define INT_MAX 32767
|
||||
#define UINT_MAX 65535
|
||||
|
||||
#endif
|
||||
|
||||
/* 16 bit integer machines */
|
||||
#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8300__) || defined(__H8500__) || defined(__W65__) || defined (__H8300H__) || defined (__H8300S__) || defined (__mn10200__)
|
||||
|
||||
#undef INT_MAX
|
||||
#undef UINT_MAX
|
||||
#define INT_MAX 32767
|
||||
#define UINT_MAX 65535
|
||||
#endif
|
||||
|
||||
#if defined(__D10V__)
|
||||
#undef INT_MAX
|
||||
#undef UINT_MAX
|
||||
#define INT_MAX __INT_MAX__
|
||||
#define UINT_MAX (__INT_MAX__ * 2U + 1)
|
||||
#define _DOUBLE_IS_32BITS
|
||||
#define _POINTER_INT short
|
||||
#define __IEEE_BIG_ENDIAN
|
||||
#endif
|
||||
|
||||
#ifdef ___AM29K__
|
||||
#define _FLOAT_RET double
|
||||
#endif
|
||||
|
||||
#ifdef __i386__
|
||||
#ifndef __unix__
|
||||
/* in other words, go32 */
|
||||
#define _FLOAT_RET double
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __M32R__
|
||||
#define __IEEE_BIG_ENDIAN
|
||||
#endif
|
||||
|
||||
#ifdef __m68k__
|
||||
/* This is defined in machine/ieeefp.h; need to check is it redundant here? */
|
||||
#define __IEEE_BIG_ENDIAN
|
||||
#endif
|
||||
|
||||
#ifdef __mn10300__
|
||||
#define __IEEE_LITTLE_ENDIAN
|
||||
#endif
|
||||
|
||||
#ifdef __mn10200__
|
||||
#define _DOUBLE_IS_32BITS
|
||||
#define __SMALL_BITFIELDS
|
||||
#define __IEEE_LITTLE_ENDIAN
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __v850
|
||||
#define __IEEE_LITTLE_ENDIAN
|
||||
#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
|
||||
#endif
|
||||
|
||||
#ifdef __D30V__
|
||||
#define __IEEE_BIG_ENDIAN
|
||||
#endif
|
||||
|
||||
/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
|
||||
#if defined(__PPC__) && defined(_CALL_SYSV)
|
||||
#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
|
||||
#endif
|
||||
|
||||
#ifdef __sparc__
|
||||
#ifdef __LITTLE_ENDIAN_DATA__
|
||||
#define __IEEE_LITTLE_ENDIAN
|
||||
#else
|
||||
#define __IEEE_BIG_ENDIAN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if INT_MAX == 32767
|
||||
typedef long int __int32_t;
|
||||
typedef unsigned long int __uint32_t;
|
||||
#else
|
||||
typedef int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
#endif
|
||||
|
||||
#ifndef _POINTER_INT
|
||||
#define _POINTER_INT long
|
||||
#endif
|
||||
|
||||
#endif /* __SYS_CONFIG_H__ */
|
15
agbcc/libc/include/sys/dirent.h
Normal file
15
agbcc/libc/include/sys/dirent.h
Normal file
@ -0,0 +1,15 @@
|
||||
/* <dirent.h> includes <sys/dirent.h>, which is this file. On a
|
||||
system which supports <dirent.h>, this file is overridden by
|
||||
dirent.h in the libc/sys/.../sys directory. On a system which does
|
||||
not support <dirent.h>, we will get this file which tries to find
|
||||
any other <dirent.h> which may be lurking around. If there isn't
|
||||
one, the user will get an error indicating that there is no
|
||||
<dirent.h>. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include_next <dirent.h>
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
154
agbcc/libc/include/sys/errno.h
Normal file
154
agbcc/libc/include/sys/errno.h
Normal file
@ -0,0 +1,154 @@
|
||||
/* errno is not a global variable, because that would make using it
|
||||
non-reentrant. Instead, its address is returned by the function
|
||||
__errno. */
|
||||
|
||||
#ifndef _SYS_ERRNO_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#define _SYS_ERRNO_H_
|
||||
|
||||
#include <sys/reent.h>
|
||||
|
||||
#ifndef _REENT_ONLY
|
||||
#define errno (*__errno())
|
||||
extern int *__errno _PARAMS ((void));
|
||||
#endif
|
||||
|
||||
#if !defined(__CYGWIN32__) || defined(__INSIDE_CYGWIN__)
|
||||
extern _CONST char * _CONST _sys_errlist[];
|
||||
extern int _sys_nerr;
|
||||
#else
|
||||
extern _CONST char * _CONST _sys_errlist[] __declspec(dllimport);
|
||||
extern int _sys_nerr __declspec(dllimport);
|
||||
#endif
|
||||
|
||||
#define __errno_r(ptr) ((ptr)->_errno)
|
||||
|
||||
#define EPERM 1 /* Not super-user */
|
||||
#define ENOENT 2 /* No such file or directory */
|
||||
#define ESRCH 3 /* No such process */
|
||||
#define EINTR 4 /* Interrupted system call */
|
||||
#define EIO 5 /* I/O error */
|
||||
#define ENXIO 6 /* No such device or address */
|
||||
#define E2BIG 7 /* Arg list too long */
|
||||
#define ENOEXEC 8 /* Exec format error */
|
||||
#define EBADF 9 /* Bad file number */
|
||||
#define ECHILD 10 /* No children */
|
||||
#define EAGAIN 11 /* No more processes */
|
||||
#define ENOMEM 12 /* Not enough core */
|
||||
#define EACCES 13 /* Permission denied */
|
||||
#define EFAULT 14 /* Bad address */
|
||||
#define ENOTBLK 15 /* Block device required */
|
||||
#define EBUSY 16 /* Mount device busy */
|
||||
#define EEXIST 17 /* File exists */
|
||||
#define EXDEV 18 /* Cross-device link */
|
||||
#define ENODEV 19 /* No such device */
|
||||
#define ENOTDIR 20 /* Not a directory */
|
||||
#define EISDIR 21 /* Is a directory */
|
||||
#define EINVAL 22 /* Invalid argument */
|
||||
#define ENFILE 23 /* Too many open files in system */
|
||||
#define EMFILE 24 /* 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 arg out of domain of func */
|
||||
#define ERANGE 34 /* Math result not representable */
|
||||
#define ENOMSG 35 /* No message of desired type */
|
||||
#define EIDRM 36 /* Identifier removed */
|
||||
#define ECHRNG 37 /* Channel number out of range */
|
||||
#define EL2NSYNC 38 /* Level 2 not synchronized */
|
||||
#define EL3HLT 39 /* Level 3 halted */
|
||||
#define EL3RST 40 /* Level 3 reset */
|
||||
#define ELNRNG 41 /* Link number out of range */
|
||||
#define EUNATCH 42 /* Protocol driver not attached */
|
||||
#define ENOCSI 43 /* No CSI structure available */
|
||||
#define EL2HLT 44 /* Level 2 halted */
|
||||
#define EDEADLK 45 /* Deadlock condition */
|
||||
#define ENOLCK 46 /* No record locks available */
|
||||
#define EBADE 50 /* Invalid exchange */
|
||||
#define EBADR 51 /* Invalid request descriptor */
|
||||
#define EXFULL 52 /* Exchange full */
|
||||
#define ENOANO 53 /* No anode */
|
||||
#define EBADRQC 54 /* Invalid request code */
|
||||
#define EBADSLT 55 /* Invalid slot */
|
||||
#define EDEADLOCK 56 /* File locking deadlock error */
|
||||
#define EBFONT 57 /* Bad font file fmt */
|
||||
#define ENOSTR 60 /* Device not a stream */
|
||||
#define ENODATA 61 /* No data (for no delay io) */
|
||||
#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 /* The object is remote */
|
||||
#define ENOLINK 67 /* The 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 74 /* Multihop attempted */
|
||||
#define ELBIN 75 /* Inode is remote (not really error) */
|
||||
#define EDOTDOT 76 /* Cross mount point (not really error) */
|
||||
#define EBADMSG 77 /* Trying to read unreadable message */
|
||||
#define ENOTUNIQ 80 /* Given log. name not unique */
|
||||
#define EBADFD 81 /* f.d. invalid for this operation */
|
||||
#define EREMCHG 82 /* Remote address changed */
|
||||
#define ELIBACC 83 /* Can't access a needed shared lib */
|
||||
#define ELIBBAD 84 /* Accessing a corrupted shared lib */
|
||||
#define ELIBSCN 85 /* .lib section in a.out corrupted */
|
||||
#define ELIBMAX 86 /* Attempting to link in too many libs */
|
||||
#define ELIBEXEC 87 /* Attempting to exec a shared library */
|
||||
#define ENOSYS 88 /* Function not implemented */
|
||||
#define ENMFILE 89 /* No more files */
|
||||
#define ENOTEMPTY 90 /* Directory not empty */
|
||||
#define ENAMETOOLONG 91 /* File or path name too long */
|
||||
#define ELOOP 92 /* Too many symbolic links */
|
||||
#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
|
||||
#define EPFNOSUPPORT 96 /* Protocol family not supported */
|
||||
#define ECONNRESET 104 /* Connection reset by peer */
|
||||
#define ENOBUFS 105 /* No buffer space available */
|
||||
#define EAFNOSUPPORT 106
|
||||
#define EPROTOTYPE 107
|
||||
#define ENOTSOCK 108
|
||||
#define ENOPROTOOPT 109
|
||||
#define ESHUTDOWN 110
|
||||
#define ECONNREFUSED 111 /* Connection refused */
|
||||
#define EADDRINUSE 112 /* Address already in use */
|
||||
#define ECONNABORTED 113 /* Connection aborted */
|
||||
#define ENETUNREACH 114
|
||||
#define ENETDOWN 115
|
||||
#define ETIMEDOUT 116
|
||||
#define EHOSTDOWN 117
|
||||
#define EHOSTUNREACH 118
|
||||
#define EINPROGRESS 119
|
||||
#define EALREADY 120
|
||||
#define EDESTADDRREQ 121
|
||||
#define EMSGSIZE 122
|
||||
#define EPROTONOSUPPORT 123
|
||||
#define ESOCKTNOSUPPORT 124
|
||||
#define EADDRNOTAVAIL 125
|
||||
#define ENETRESET 126
|
||||
#define EISCONN 127
|
||||
#define ENOTCONN 128
|
||||
#define ETOOMANYREFS 129
|
||||
#define EPROCLIM 130
|
||||
#define EUSERS 131
|
||||
#define EDQUOT 132
|
||||
#define ESTALE 133
|
||||
#define ENOTSUP 134
|
||||
#define ENOMEDIUM 135
|
||||
|
||||
/* From cygwin32. */
|
||||
#define EWOULDBLOCK EAGAIN /* Operation would block */
|
||||
|
||||
#define __ELASTERROR 2000 /* Users can add values starting here */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _SYS_ERRNO_H */
|
178
agbcc/libc/include/sys/fcntl.h
Normal file
178
agbcc/libc/include/sys/fcntl.h
Normal file
@ -0,0 +1,178 @@
|
||||
|
||||
#ifndef _FCNTL_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#define _FCNTL_
|
||||
#include <_ansi.h>
|
||||
#define _FOPEN (-1) /* from sys/file.h, kernel use only */
|
||||
#define _FREAD 0x0001 /* read enabled */
|
||||
#define _FWRITE 0x0002 /* write enabled */
|
||||
#define _FNDELAY 0x0004 /* non blocking I/O (4.2 style) */
|
||||
#define _FAPPEND 0x0008 /* append (writes guaranteed at the end) */
|
||||
#define _FMARK 0x0010 /* internal; mark during gc() */
|
||||
#define _FDEFER 0x0020 /* internal; defer for next gc pass */
|
||||
#define _FASYNC 0x0040 /* signal pgrp when data ready */
|
||||
#define _FSHLOCK 0x0080 /* BSD flock() shared lock present */
|
||||
#define _FEXLOCK 0x0100 /* BSD flock() exclusive lock present */
|
||||
#define _FCREAT 0x0200 /* open with file create */
|
||||
#define _FTRUNC 0x0400 /* open with truncation */
|
||||
#define _FEXCL 0x0800 /* error on open if file exists */
|
||||
#define _FNBIO 0x1000 /* non blocking I/O (sys5 style) */
|
||||
#define _FSYNC 0x2000 /* do all writes synchronously */
|
||||
#define _FNONBLOCK 0x4000 /* non blocking I/O (POSIX style) */
|
||||
#define _FNOCTTY 0x8000 /* don't assign a ctty on this open */
|
||||
|
||||
#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR)
|
||||
|
||||
/*
|
||||
* Flag values for open(2) and fcntl(2)
|
||||
* The kernel adds 1 to the open modes to turn it into some
|
||||
* combination of FREAD and FWRITE.
|
||||
*/
|
||||
#define O_RDONLY 0 /* +1 == FREAD */
|
||||
#define O_WRONLY 1 /* +1 == FWRITE */
|
||||
#define O_RDWR 2 /* +1 == FREAD|FWRITE */
|
||||
#define O_APPEND _FAPPEND
|
||||
#define O_CREAT _FCREAT
|
||||
#define O_TRUNC _FTRUNC
|
||||
#define O_EXCL _FEXCL
|
||||
/* O_SYNC _FSYNC not posix, defined below */
|
||||
/* O_NDELAY _FNDELAY set in include/fcntl.h */
|
||||
/* O_NDELAY _FNBIO set in 5include/fcntl.h */
|
||||
#define O_NONBLOCK _FNONBLOCK
|
||||
#define O_NOCTTY _FNOCTTY
|
||||
/* For machines which care - */
|
||||
#ifdef _WIN32
|
||||
#define _FBINARY 0x10000
|
||||
#define _FTEXT 0x20000
|
||||
#define _FNOINHERIT 0x40000
|
||||
|
||||
#define O_BINARY _FBINARY
|
||||
#define O_TEXT _FTEXT
|
||||
#define O_NOINHERIT _FNOINHERIT
|
||||
|
||||
/* The windows header files define versions with a leading underscore. */
|
||||
#define _O_RDONLY O_RDONLY
|
||||
#define _O_WRONLY O_WRONLY
|
||||
#define _O_RDWR O_RDWR
|
||||
#define _O_APPEND O_APPEND
|
||||
#define _O_CREATE O_CREAT
|
||||
#define _O_TRUNC O_TRUNC
|
||||
#define _O_EXCL O_EXCL
|
||||
#define _O_TEXT O_TEXT
|
||||
#define _O_BINARY O_BINARY
|
||||
#define _O_RAW O_BINARY
|
||||
#define _O_NOINHERIT O_NOINHERIT
|
||||
#endif
|
||||
|
||||
#ifndef _POSIX_SOURCE
|
||||
|
||||
#define O_SYNC _FSYNC
|
||||
|
||||
/*
|
||||
* Flags that work for fcntl(fd, F_SETFL, FXXXX)
|
||||
*/
|
||||
#define FAPPEND _FAPPEND
|
||||
#define FSYNC _FSYNC
|
||||
#define FASYNC _FASYNC
|
||||
#define FNBIO _FNBIO
|
||||
#define FNONBIO _FNONBLOCK /* XXX fix to be NONBLOCK everywhere */
|
||||
#define FNDELAY _FNDELAY
|
||||
|
||||
/*
|
||||
* Flags that are disallowed for fcntl's (FCNTLCANT);
|
||||
* used for opens, internal state, or locking.
|
||||
*/
|
||||
#define FREAD _FREAD
|
||||
#define FWRITE _FWRITE
|
||||
#define FMARK _FMARK
|
||||
#define FDEFER _FDEFER
|
||||
#define FSHLOCK _FSHLOCK
|
||||
#define FEXLOCK _FEXLOCK
|
||||
|
||||
/*
|
||||
* The rest of the flags, used only for opens
|
||||
*/
|
||||
#define FOPEN _FOPEN
|
||||
#define FCREAT _FCREAT
|
||||
#define FTRUNC _FTRUNC
|
||||
#define FEXCL _FEXCL
|
||||
#define FNOCTTY _FNOCTTY
|
||||
|
||||
#endif /* !_POSIX_SOURCE */
|
||||
|
||||
/* XXX close on exec request; must match UF_EXCLOSE in user.h */
|
||||
#define FD_CLOEXEC 1 /* posix */
|
||||
|
||||
/* fcntl(2) requests */
|
||||
#define F_DUPFD 0 /* Duplicate fildes */
|
||||
#define F_GETFD 1 /* Get fildes flags (close on exec) */
|
||||
#define F_SETFD 2 /* Set fildes flags (close on exec) */
|
||||
#define F_GETFL 3 /* Get file flags */
|
||||
#define F_SETFL 4 /* Set file flags */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define F_GETOWN 5 /* Get owner - for ASYNC */
|
||||
#define F_SETOWN 6 /* Set owner - for ASYNC */
|
||||
#endif /* !_POSIX_SOURCE */
|
||||
#define F_GETLK 7 /* Get record-locking information */
|
||||
#define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */
|
||||
#define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define F_RGETLK 10 /* Test a remote lock to see if it is blocked */
|
||||
#define F_RSETLK 11 /* Set or unlock a remote lock */
|
||||
#define F_CNVT 12 /* Convert a fhandle to an open fd */
|
||||
#define F_RSETLKW 13 /* Set or Clear remote record-lock(Blocking) */
|
||||
#endif /* !_POSIX_SOURCE */
|
||||
|
||||
/* fcntl(2) flags (l_type field of flock structure) */
|
||||
#define F_RDLCK 1 /* read lock */
|
||||
#define F_WRLCK 2 /* write lock */
|
||||
#define F_UNLCK 3 /* remove lock(s) */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define F_UNLKSYS 4 /* remove remote locks for a given system */
|
||||
#endif /* !_POSIX_SOURCE */
|
||||
|
||||
/*#include <sys/stdtypes.h>*/
|
||||
|
||||
/* file segment locking set data type - information passed to system by user */
|
||||
struct flock {
|
||||
short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */
|
||||
short l_whence; /* flag to choose starting offset */
|
||||
long l_start; /* relative offset, in bytes */
|
||||
long l_len; /* length, in bytes; 0 means lock to EOF */
|
||||
short l_pid; /* returned with F_GETLK */
|
||||
short l_xxx; /* reserved for future use */
|
||||
};
|
||||
|
||||
#ifndef _POSIX_SOURCE
|
||||
/* extended file segment locking set data type */
|
||||
struct eflock {
|
||||
short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */
|
||||
short l_whence; /* flag to choose starting offset */
|
||||
long l_start; /* relative offset, in bytes */
|
||||
long l_len; /* length, in bytes; 0 means lock to EOF */
|
||||
short l_pid; /* returned with F_GETLK */
|
||||
short l_xxx; /* reserved for future use */
|
||||
long l_rpid; /* Remote process id wanting this lock */
|
||||
long l_rsys; /* Remote system id wanting this lock */
|
||||
};
|
||||
#endif /* !_POSIX_SOURCE */
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h> /* sigh. for the mode bits for open/creat */
|
||||
|
||||
extern int open _PARAMS ((const char *, int, ...));
|
||||
extern int creat _PARAMS ((const char *, mode_t));
|
||||
extern int fcntl _PARAMS ((int, int, ...));
|
||||
|
||||
/* Provide _<systemcall> prototypes for functions provided by some versions
|
||||
of newlib. */
|
||||
extern int _open _PARAMS ((const char *, int, ...));
|
||||
extern int _fcntl _PARAMS ((int, int, ...));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* !_FCNTL_ */
|
2
agbcc/libc/include/sys/file.h
Normal file
2
agbcc/libc/include/sys/file.h
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
#include <sys/fcntl.h>
|
18
agbcc/libc/include/sys/param.h
Normal file
18
agbcc/libc/include/sys/param.h
Normal file
@ -0,0 +1,18 @@
|
||||
/* This is a dummy <sys/param.h> file, not customized for any
|
||||
particular system. If there is a param.h in libc/sys/SYSDIR/sys,
|
||||
it will override this one. */
|
||||
|
||||
#ifndef _SYS_PARAM_H
|
||||
# define _SYS_PARAM_H
|
||||
|
||||
# define HZ (60)
|
||||
# define NOFILE (60)
|
||||
# define PATHSIZE (1024)
|
||||
|
||||
#ifdef __i386__
|
||||
#define BIG_ENDIAN 4321
|
||||
#define LITTLE_ENDIAN 1234
|
||||
#define BYTE_ORDER LITTLE_ENDIAN
|
||||
#endif
|
||||
|
||||
#endif
|
238
agbcc/libc/include/sys/reent.h
Normal file
238
agbcc/libc/include/sys/reent.h
Normal file
@ -0,0 +1,238 @@
|
||||
/* This header file provides the reentrancy. */
|
||||
|
||||
/* WARNING: All identifiers here must begin with an underscore. This file is
|
||||
included by stdio.h and others and we therefore must only use identifiers
|
||||
in the namespace allotted to us. */
|
||||
|
||||
#ifndef _SYS_REENT_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#define _SYS_REENT_H_
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifndef Long
|
||||
#if __LONG_MAX__ == 2147483647L
|
||||
#define Long long
|
||||
typedef unsigned Long ULong;
|
||||
#elif __INT_MAX__ == 2147483647
|
||||
#define Long int
|
||||
typedef unsigned Long ULong;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef Long
|
||||
#define Long __int32_t
|
||||
typedef __uint32_t ULong;
|
||||
#endif
|
||||
|
||||
struct _glue
|
||||
{
|
||||
struct _glue *_next;
|
||||
int _niobs;
|
||||
struct __sFILE *_iobs;
|
||||
};
|
||||
|
||||
struct _Bigint
|
||||
{
|
||||
struct _Bigint *_next;
|
||||
int _k, _maxwds, _sign, _wds;
|
||||
ULong _x[1];
|
||||
};
|
||||
|
||||
/*
|
||||
* atexit() support
|
||||
*/
|
||||
|
||||
#define _ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */
|
||||
|
||||
struct _atexit {
|
||||
struct _atexit *_next; /* next in list */
|
||||
int _ind; /* next index in this table */
|
||||
void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */
|
||||
};
|
||||
|
||||
/*
|
||||
* Stdio buffers.
|
||||
*
|
||||
* This and __sFILE are defined here because we need them for struct _reent,
|
||||
* but we don't want stdio.h included when stdlib.h is.
|
||||
*/
|
||||
|
||||
struct __sbuf {
|
||||
unsigned char *_base;
|
||||
int _size;
|
||||
};
|
||||
|
||||
/*
|
||||
* We need fpos_t for the following, but it doesn't have a leading "_",
|
||||
* so we use _fpos_t instead.
|
||||
*/
|
||||
|
||||
typedef long _fpos_t; /* XXX must match off_t in <sys/types.h> */
|
||||
/* (and must be `long' for now) */
|
||||
|
||||
/*
|
||||
* Stdio state variables.
|
||||
*
|
||||
* The following always hold:
|
||||
*
|
||||
* if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
|
||||
* _lbfsize is -_bf._size, else _lbfsize is 0
|
||||
* if _flags&__SRD, _w is 0
|
||||
* if _flags&__SWR, _r is 0
|
||||
*
|
||||
* This ensures that the getc and putc macros (or inline functions) never
|
||||
* try to write or read from a file that is in `read' or `write' mode.
|
||||
* (Moreover, they can, and do, automatically switch from read mode to
|
||||
* write mode, and back, on "r+" and "w+" files.)
|
||||
*
|
||||
* _lbfsize is used only to make the inline line-buffered output stream
|
||||
* code as compact as possible.
|
||||
*
|
||||
* _ub, _up, and _ur are used when ungetc() pushes back more characters
|
||||
* than fit in the current _bf, or when ungetc() pushes back a character
|
||||
* that does not match the previous one in _bf. When this happens,
|
||||
* _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
|
||||
* _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
|
||||
*/
|
||||
|
||||
struct __sFILE {
|
||||
unsigned char *_p; /* current position in (some) buffer */
|
||||
int _r; /* read space left for getc() */
|
||||
int _w; /* write space left for putc() */
|
||||
short _flags; /* flags, below; this FILE is free if 0 */
|
||||
short _file; /* fileno, if Unix descriptor, else -1 */
|
||||
struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
|
||||
int _lbfsize; /* 0 or -_bf._size, for inline putc */
|
||||
|
||||
/* operations */
|
||||
_PTR _cookie; /* cookie passed to io functions */
|
||||
|
||||
int _EXFUN((*_read),(_PTR _cookie, char *_buf, int _n));
|
||||
int _EXFUN((*_write),(_PTR _cookie, const char *_buf, int _n));
|
||||
_fpos_t _EXFUN((*_seek),(_PTR _cookie, _fpos_t _offset, int _whence));
|
||||
int _EXFUN((*_close),(_PTR _cookie));
|
||||
|
||||
/* separate buffer for long sequences of ungetc() */
|
||||
struct __sbuf _ub; /* ungetc buffer */
|
||||
unsigned char *_up; /* saved _p when _p is doing ungetc data */
|
||||
int _ur; /* saved _r when _r is counting ungetc data */
|
||||
|
||||
/* tricks to meet minimum requirements even when malloc() fails */
|
||||
unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */
|
||||
unsigned char _nbuf[1]; /* guarantee a getc() buffer */
|
||||
|
||||
/* separate buffer for fgetline() when line crosses buffer boundary */
|
||||
struct __sbuf _lb; /* buffer for fgetline() */
|
||||
|
||||
/* Unix stdio files get aligned to block boundaries on fseek() */
|
||||
int _blksize; /* stat.st_blksize (may be != _bf._size) */
|
||||
int _offset; /* current lseek offset */
|
||||
|
||||
struct _reent *_data;
|
||||
};
|
||||
|
||||
/*
|
||||
* struct _reent
|
||||
*
|
||||
* This structure contains *all* globals needed by the library.
|
||||
* It's raison d'etre is to facilitate threads by making all library routines
|
||||
* reentrant. IE: All state information is contained here.
|
||||
*/
|
||||
|
||||
struct _reent
|
||||
{
|
||||
/* local copy of errno */
|
||||
int _errno;
|
||||
|
||||
/* FILE is a big struct and may change over time. To try to achieve binary
|
||||
compatibility with future versions, put stdin,stdout,stderr here.
|
||||
These are pointers into member __sf defined below. */
|
||||
struct __sFILE *_stdin, *_stdout, *_stderr;
|
||||
|
||||
int _inc; /* used by tmpnam */
|
||||
char _emergency[25];
|
||||
|
||||
int _current_category; /* used by setlocale */
|
||||
_CONST char *_current_locale;
|
||||
|
||||
int __sdidinit; /* 1 means stdio has been init'd */
|
||||
|
||||
void _EXFUN((*__cleanup),(struct _reent *));
|
||||
|
||||
/* used by mprec routines */
|
||||
struct _Bigint *_result;
|
||||
int _result_k;
|
||||
struct _Bigint *_p5s;
|
||||
struct _Bigint **_freelist;
|
||||
|
||||
/* used by some fp conversion routines */
|
||||
int _cvtlen; /* should be size_t */
|
||||
char *_cvtbuf;
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
unsigned int _rand_next;
|
||||
char * _strtok_last;
|
||||
char _asctime_buf[26];
|
||||
struct tm _localtime_buf;
|
||||
int _gamma_signgam;
|
||||
} _reent;
|
||||
/* Two next two fields were once used by malloc. They are no longer
|
||||
used. They are used to preserve the space used before so as to
|
||||
allow addition of new reent fields and keep binary compatibility. */
|
||||
struct
|
||||
{
|
||||
#define _N_LISTS 30
|
||||
unsigned char * _nextf[_N_LISTS];
|
||||
unsigned int _nmalloc[_N_LISTS];
|
||||
} _unused;
|
||||
} _new;
|
||||
|
||||
/* atexit stuff */
|
||||
struct _atexit *_atexit; /* points to head of LIFO stack */
|
||||
struct _atexit _atexit0; /* one guaranteed table, required by ANSI */
|
||||
|
||||
/* signal info */
|
||||
void (**(_sig_func))(int);
|
||||
|
||||
/* These are here last so that __sFILE can grow without changing the offsets
|
||||
of the above members (on the off chance that future binary compatibility
|
||||
would be broken otherwise). */
|
||||
struct _glue __sglue; /* root of glue chain */
|
||||
struct __sFILE __sf[3]; /* first three file descriptors */
|
||||
};
|
||||
|
||||
#define _REENT_INIT(var) \
|
||||
{ 0, &var.__sf[0], &var.__sf[1], &var.__sf[2], 0, "", 0, "C", \
|
||||
0, NULL, NULL, 0, NULL, NULL, 0, NULL, { {1, NULL, "", \
|
||||
{ 0,0,0,0,0,0,0,0}, 0 } } }
|
||||
|
||||
/*
|
||||
* All references to struct _reent are via this pointer.
|
||||
* Internally, newlib routines that need to reference it should use _REENT.
|
||||
*/
|
||||
|
||||
#ifndef __ATTRIBUTE_IMPURE_PTR__
|
||||
#define __ATTRIBUTE_IMPURE_PTR__
|
||||
#endif
|
||||
|
||||
extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__;
|
||||
|
||||
void _reclaim_reent _PARAMS ((struct _reent *));
|
||||
|
||||
/* #define _REENT_ONLY define this to get only reentrant routines */
|
||||
|
||||
#ifndef _REENT_ONLY
|
||||
#define _REENT _impure_ptr
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _SYS_REENT_H_ */
|
15
agbcc/libc/include/sys/resource.h
Normal file
15
agbcc/libc/include/sys/resource.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef _SYS_RESOURCE_H_
|
||||
#define _SYS_RESOURCE_H_
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
#define RUSAGE_SELF 0 /* calling process */
|
||||
#define RUSAGE_CHILDREN -1 /* terminated child processes */
|
||||
|
||||
struct rusage {
|
||||
struct timeval ru_utime; /* user time used */
|
||||
struct timeval ru_stime; /* system time used */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
182
agbcc/libc/include/sys/signal.h
Normal file
182
agbcc/libc/include/sys/signal.h
Normal file
@ -0,0 +1,182 @@
|
||||
/* sys/signal.h */
|
||||
|
||||
#ifndef _SYS_SIGNAL_H
|
||||
#define _SYS_SIGNAL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "_ansi.h"
|
||||
|
||||
#ifndef __STRICT_ANSI__
|
||||
typedef unsigned long sigset_t;
|
||||
struct sigaction
|
||||
{
|
||||
void (*sa_handler)(int);
|
||||
sigset_t sa_mask;
|
||||
int sa_flags;
|
||||
};
|
||||
#define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */
|
||||
#define SIG_SETMASK 0 /* set mask with sigprocmask() */
|
||||
#define SIG_BLOCK 1 /* set of signals to block */
|
||||
#define SIG_UNBLOCK 2 /* set of signals to, well, unblock */
|
||||
|
||||
/* These depend upon the type of sigset_t, which right now
|
||||
is always a long.. They're in the POSIX namespace, but
|
||||
are not ANSI. */
|
||||
#define sigaddset(what,sig) (*(what) |= (1<<(sig)))
|
||||
#define sigemptyset(what) (*(what) = 0)
|
||||
|
||||
int sigprocmask (int __how, const sigset_t *__a, sigset_t *__b);
|
||||
|
||||
/* protos for functions found in winsup sources */
|
||||
#if defined(__CYGWIN32__)
|
||||
#undef sigaddset
|
||||
#undef sigemptyset
|
||||
/* The first argument to kill should be pid_t. Right now
|
||||
<sys/types.h> always defines pid_t to be int. If that ever
|
||||
changes, then we will need to do something else, perhaps along the
|
||||
lines of <machine/types.h>. */
|
||||
int _EXFUN(kill, (int, int));
|
||||
int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *));
|
||||
int _EXFUN(sigaddset, (sigset_t *, const int));
|
||||
int _EXFUN(sigdelset, (sigset_t *, const int));
|
||||
int _EXFUN(sigismember, (const sigset_t *, int));
|
||||
int _EXFUN(sigfillset, (sigset_t *));
|
||||
int _EXFUN(sigemptyset, (sigset_t *));
|
||||
int _EXFUN(sigpending, (sigset_t *));
|
||||
int _EXFUN(sigsuspend, (const sigset_t *));
|
||||
int _EXFUN(sigpause, (int));
|
||||
#endif
|
||||
|
||||
#endif /* __STRICT_ANSI__ */
|
||||
|
||||
#if defined(___AM29K__)
|
||||
/* These all need to be defined for ANSI C, but I don't think they are
|
||||
meaningful. */
|
||||
#define SIGABRT 1
|
||||
#define SIGFPE 1
|
||||
#define SIGILL 1
|
||||
#define SIGINT 1
|
||||
#define SIGSEGV 1
|
||||
#define SIGTERM 1
|
||||
/* These need to be defined for POSIX, and some others do too. */
|
||||
#define SIGHUP 1
|
||||
#define SIGQUIT 1
|
||||
#define NSIG 2
|
||||
#elif defined(__GO32__)
|
||||
#define SIGINT 1
|
||||
#define SIGKILL 2
|
||||
#define SIGPIPE 3
|
||||
#define SIGFPE 4
|
||||
#define SIGHUP 5
|
||||
#define SIGTERM 6
|
||||
#define SIGSEGV 7
|
||||
#define SIGTSTP 8
|
||||
#define SIGQUIT 9
|
||||
#define SIGTRAP 10
|
||||
#define SIGILL 11
|
||||
#define SIGEMT 12
|
||||
#define SIGALRM 13
|
||||
#define SIGBUS 14
|
||||
#define SIGLOST 15
|
||||
#define SIGSTOP 16
|
||||
#define SIGABRT 17
|
||||
#define SIGUSR1 18
|
||||
#define SIGUSR2 19
|
||||
#define NSIG 20
|
||||
#elif defined(__CYGWIN32__) /* BSD signals symantics */
|
||||
#define SIGHUP 1 /* hangup */
|
||||
#define SIGINT 2 /* interrupt */
|
||||
#define SIGQUIT 3 /* quit */
|
||||
#define SIGILL 4 /* illegal instruction (not reset when caught) */
|
||||
#define SIGTRAP 5 /* trace trap (not reset when caught) */
|
||||
#define SIGABRT 6 /* used by abort */
|
||||
#define SIGEMT 7 /* EMT instruction */
|
||||
#define SIGFPE 8 /* floating point exception */
|
||||
#define SIGKILL 9 /* kill (cannot be caught or ignored) */
|
||||
#define SIGBUS 10 /* bus error */
|
||||
#define SIGSEGV 11 /* segmentation violation */
|
||||
#define SIGSYS 12 /* bad argument to system call */
|
||||
#define SIGPIPE 13 /* write on a pipe with no one to read it */
|
||||
#define SIGALRM 14 /* alarm clock */
|
||||
#define SIGTERM 15 /* software termination signal from kill */
|
||||
#define SIGURG 16 /* urgent condition on IO channel */
|
||||
#define SIGSTOP 17 /* sendable stop signal not from tty */
|
||||
#define SIGTSTP 18 /* stop signal from tty */
|
||||
#define SIGCONT 19 /* continue a stopped process */
|
||||
#define SIGCHLD 20 /* to parent on child stop or exit */
|
||||
#define SIGCLD 20 /* System V name for SIGCHLD */
|
||||
#define SIGTTIN 21 /* to readers pgrp upon background tty read */
|
||||
#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */
|
||||
#define SIGIO 23 /* input/output possible signal */
|
||||
#define SIGPOLL SIGIO /* System V name for SIGIO */
|
||||
#define SIGXCPU 24 /* exceeded CPU time limit */
|
||||
#define SIGXFSZ 25 /* exceeded file size limit */
|
||||
#define SIGVTALRM 26 /* virtual time alarm */
|
||||
#define SIGPROF 27 /* profiling time alarm */
|
||||
#define SIGWINCH 28 /* window changed */
|
||||
#define SIGLOST 29 /* resource lost (eg, record-lock lost) */
|
||||
#define SIGUSR1 30 /* user defined signal 1 */
|
||||
#define SIGUSR2 31 /* user defined signal 2 */
|
||||
#define NSIG 32 /* signal 0 implied */
|
||||
#else
|
||||
#define SIGHUP 1 /* hangup */
|
||||
#define SIGINT 2 /* interrupt */
|
||||
#define SIGQUIT 3 /* quit */
|
||||
#define SIGILL 4 /* illegal instruction (not reset when caught) */
|
||||
#define SIGTRAP 5 /* trace trap (not reset when caught) */
|
||||
#define SIGIOT 6 /* IOT instruction */
|
||||
#define SIGABRT 6 /* used by abort, replace SIGIOT in the future */
|
||||
#define SIGEMT 7 /* EMT instruction */
|
||||
#define SIGFPE 8 /* floating point exception */
|
||||
#define SIGKILL 9 /* kill (cannot be caught or ignored) */
|
||||
#define SIGBUS 10 /* bus error */
|
||||
#define SIGSEGV 11 /* segmentation violation */
|
||||
#define SIGSYS 12 /* bad argument to system call */
|
||||
#define SIGPIPE 13 /* write on a pipe with no one to read it */
|
||||
#define SIGALRM 14 /* alarm clock */
|
||||
#define SIGTERM 15 /* software termination signal from kill */
|
||||
|
||||
#if defined(__svr4__)
|
||||
/* svr4 specifics. different signals above 15, and sigaction. */
|
||||
#define SIGUSR1 16
|
||||
#define SIGUSR2 17
|
||||
#define SIGCLD 18
|
||||
#define SIGPWR 19
|
||||
#define SIGWINCH 20
|
||||
#define SIGPOLL 22 /* 20 for x.out binaries!!!! */
|
||||
#define SIGSTOP 23 /* sendable stop signal not from tty */
|
||||
#define SIGTSTP 24 /* stop signal from tty */
|
||||
#define SIGCONT 25 /* continue a stopped process */
|
||||
#define SIGTTIN 26 /* to readers pgrp upon background tty read */
|
||||
#define SIGTTOU 27 /* like TTIN for output if (tp->t_local<OSTOP) */
|
||||
#define NSIG 28
|
||||
#else
|
||||
#define SIGURG 16 /* urgent condition on IO channel */
|
||||
#define SIGSTOP 17 /* sendable stop signal not from tty */
|
||||
#define SIGTSTP 18 /* stop signal from tty */
|
||||
#define SIGCONT 19 /* continue a stopped process */
|
||||
#define SIGCHLD 20 /* to parent on child stop or exit */
|
||||
#define SIGCLD 20 /* System V name for SIGCHLD */
|
||||
#define SIGTTIN 21 /* to readers pgrp upon background tty read */
|
||||
#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */
|
||||
#define SIGIO 23 /* input/output possible signal */
|
||||
#define SIGPOLL SIGIO /* System V name for SIGIO */
|
||||
#define SIGXCPU 24 /* exceeded CPU time limit */
|
||||
#define SIGXFSZ 25 /* exceeded file size limit */
|
||||
#define SIGVTALRM 26 /* virtual time alarm */
|
||||
#define SIGPROF 27 /* profiling time alarm */
|
||||
#define SIGWINCH 28 /* window changed */
|
||||
#define SIGLOST 29 /* resource lost (eg, record-lock lost) */
|
||||
#define SIGUSR1 30 /* user defined signal 1 */
|
||||
#define SIGUSR2 31 /* user defined signal 2 */
|
||||
#define NSIG 32 /* signal 0 implied */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _SYS_SIGNAL_H */
|
59
agbcc/libc/include/sys/stat-dj.h
Normal file
59
agbcc/libc/include/sys/stat-dj.h
Normal file
@ -0,0 +1,59 @@
|
||||
/* This is file STAT.H */
|
||||
/*
|
||||
** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
|
||||
**
|
||||
** This file is distributed under the terms listed in the document
|
||||
** "copying.dj", available from DJ Delorie at the address above.
|
||||
** A copy of "copying.dj" should accompany this file; if not, a copy
|
||||
** should be available from where this file was obtained. This file
|
||||
** may not be distributed without a verbatim copy of "copying.dj".
|
||||
**
|
||||
** This file is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*/
|
||||
|
||||
#ifndef _STAT_H_
|
||||
#define _STAT_H_
|
||||
|
||||
struct stat {
|
||||
short st_dev;
|
||||
short st_ino;
|
||||
unsigned short st_mode;
|
||||
short st_nlink;
|
||||
short st_uid;
|
||||
short st_gid;
|
||||
short st_rdev;
|
||||
short st_align_for_word32;
|
||||
long st_size;
|
||||
long st_atime;
|
||||
long st_mtime;
|
||||
long st_ctime;
|
||||
long st_blksize;
|
||||
};
|
||||
|
||||
#define S_IFMT 0xF000 /* file type mask */
|
||||
#define S_IFDIR 0x4000 /* directory */
|
||||
#define S_IFIFO 0x1000 /* FIFO special */
|
||||
#define S_IFCHR 0x2000 /* character special */
|
||||
#define S_IFBLK 0x3000 /* block special */
|
||||
#define S_IFREG 0x8000 /* or just 0x0000, regular */
|
||||
#define S_IREAD 0x0100 /* owner may read */
|
||||
#define S_IWRITE 0x0080 /* owner may write */
|
||||
#define S_IEXEC 0x0040 /* owner may execute <directory search> */
|
||||
|
||||
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
|
||||
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
|
||||
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
||||
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
int stat(const char *, struct stat *);
|
||||
int fstat(int, struct stat *);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
140
agbcc/libc/include/sys/stat.h
Normal file
140
agbcc/libc/include/sys/stat.h
Normal file
@ -0,0 +1,140 @@
|
||||
#ifndef _SYS_STAT_H
|
||||
#define _SYS_STAT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <time.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __i386__
|
||||
#ifdef __MSDOS__
|
||||
#include "stat-dj.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* dj's stat defines _STAT_H_ */
|
||||
#ifndef _STAT_H_
|
||||
|
||||
/* It is intended that the layout of this structure not change when the
|
||||
sizes of any of the basic types change (short, int, long) [via a compile
|
||||
time option]. */
|
||||
|
||||
struct stat
|
||||
{
|
||||
dev_t st_dev;
|
||||
ino_t st_ino;
|
||||
mode_t st_mode;
|
||||
nlink_t st_nlink;
|
||||
uid_t st_uid;
|
||||
gid_t st_gid;
|
||||
dev_t st_rdev;
|
||||
off_t st_size;
|
||||
/* SysV/sco doesn't have the rest... But Solaris, eabi does. */
|
||||
#if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__)
|
||||
time_t st_atime;
|
||||
time_t st_mtime;
|
||||
time_t st_ctime;
|
||||
#else
|
||||
time_t st_atime;
|
||||
long st_spare1;
|
||||
time_t st_mtime;
|
||||
long st_spare2;
|
||||
time_t st_ctime;
|
||||
long st_spare3;
|
||||
long st_blksize;
|
||||
long st_blocks;
|
||||
long st_spare4[2];
|
||||
#endif
|
||||
};
|
||||
|
||||
#define _IFMT 0170000 /* type of file */
|
||||
#define _IFDIR 0040000 /* directory */
|
||||
#define _IFCHR 0020000 /* character special */
|
||||
#define _IFBLK 0060000 /* block special */
|
||||
#define _IFREG 0100000 /* regular */
|
||||
#define _IFLNK 0120000 /* symbolic link */
|
||||
#define _IFSOCK 0140000 /* socket */
|
||||
#define _IFIFO 0010000 /* fifo */
|
||||
|
||||
#define S_BLKSIZE 1024 /* size of a block */
|
||||
|
||||
#define S_ISUID 0004000 /* set user id on execution */
|
||||
#define S_ISGID 0002000 /* set group id on execution */
|
||||
#ifndef _POSIX_SOURCE
|
||||
#define S_ISVTX 0001000 /* save swapped text even after use */
|
||||
#define S_IREAD 0000400 /* read permission, owner */
|
||||
#define S_IWRITE 0000200 /* write permission, owner */
|
||||
#define S_IEXEC 0000100 /* execute/search permission, owner */
|
||||
|
||||
#define S_ENFMT 0002000 /* enforcement-mode locking */
|
||||
|
||||
#define S_IFMT _IFMT
|
||||
#define S_IFDIR _IFDIR
|
||||
#define S_IFCHR _IFCHR
|
||||
#define S_IFBLK _IFBLK
|
||||
#define S_IFREG _IFREG
|
||||
#define S_IFLNK _IFLNK
|
||||
#define S_IFSOCK _IFSOCK
|
||||
#define S_IFIFO _IFIFO
|
||||
#endif /* !_POSIX_SOURCE */
|
||||
|
||||
#ifdef _WIN32
|
||||
/* The Windows header files define _S_ forms of these, so we do too
|
||||
for easier portability. */
|
||||
#define _S_IFMT _IFMT
|
||||
#define _S_IFDIR _IFDIR
|
||||
#define _S_IFCHR _IFCHR
|
||||
#define _S_IFIFO _IFIFO
|
||||
#define _S_IFREG _IFREG
|
||||
#define _S_IREAD 0000400
|
||||
#define _S_IWRITE 0000200
|
||||
#define _S_IEXEC 0000100
|
||||
#endif
|
||||
|
||||
#define S_IRWXU 0000700 /* rwx, owner */
|
||||
#define S_IRUSR 0000400 /* read permission, owner */
|
||||
#define S_IWUSR 0000200 /* write permission, owner */
|
||||
#define S_IXUSR 0000100 /* execute/search permission, owner */
|
||||
#define S_IRWXG 0000070 /* rwx, group */
|
||||
#define S_IRGRP 0000040 /* read permission, group */
|
||||
#define S_IWGRP 0000020 /* write permission, grougroup */
|
||||
#define S_IXGRP 0000010 /* execute/search permission, group */
|
||||
#define S_IRWXO 0000007 /* rwx, other */
|
||||
#define S_IROTH 0000004 /* read permission, other */
|
||||
#define S_IWOTH 0000002 /* write permission, other */
|
||||
#define S_IXOTH 0000001 /* execute/search permission, other */
|
||||
|
||||
#define S_ISBLK(m) (((m)&_IFMT) == _IFBLK)
|
||||
#define S_ISCHR(m) (((m)&_IFMT) == _IFCHR)
|
||||
#define S_ISDIR(m) (((m)&_IFMT) == _IFDIR)
|
||||
#define S_ISFIFO(m) (((m)&_IFMT) == _IFIFO)
|
||||
#define S_ISREG(m) (((m)&_IFMT) == _IFREG)
|
||||
#define S_ISLNK(m) (((m)&_IFMT) == _IFLNK)
|
||||
#define S_ISSOCK(m) (((m)&_IFMT) == _IFSOCK)
|
||||
|
||||
|
||||
int _EXFUN(chmod,( const char *__path, mode_t __mode ));
|
||||
int _EXFUN(fchmod,(int __fd, mode_t __mode));
|
||||
int _EXFUN(fstat,( int __fd, struct stat *__sbuf ));
|
||||
int _EXFUN(mkdir,( const char *_path, mode_t __mode ));
|
||||
int _EXFUN(mkfifo,( char *__path, mode_t __mode ));
|
||||
int _EXFUN(stat,( const char *__path, struct stat *__sbuf ));
|
||||
mode_t _EXFUN(umask,( mode_t __mask ));
|
||||
|
||||
/* Provide prototypes for most of the _<systemcall> names that are
|
||||
provided in newlib for some compilers. */
|
||||
int _EXFUN(_fstat,( int __fd, struct stat *__sbuf ));
|
||||
int _EXFUN(_stat,( const char *__path, struct stat *__sbuf ));
|
||||
|
||||
#ifdef __CYGWIN32__
|
||||
int _EXFUN(lstat,( const char *__path, struct stat *__buf ));
|
||||
#endif
|
||||
|
||||
#endif /* !_STAT_H_ */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _SYS_STAT_H */
|
51
agbcc/libc/include/sys/time.h
Normal file
51
agbcc/libc/include/sys/time.h
Normal file
@ -0,0 +1,51 @@
|
||||
/* time.h -- An implementation of the standard Unix <sys/time.h> file.
|
||||
Written by Geoffrey Noer <noer@cygnus.com>
|
||||
Public domain; no rights reserved. */
|
||||
|
||||
#ifndef _SYS_TIME_H_
|
||||
#define _SYS_TIME_H_
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef _GNU_H_WINDOWS32_SOCKETS
|
||||
struct timeval {
|
||||
long tv_sec;
|
||||
long tv_usec;
|
||||
};
|
||||
|
||||
struct timezone {
|
||||
int tz_minuteswest;
|
||||
int tz_dsttime;
|
||||
};
|
||||
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/select.h>
|
||||
#endif /* __CYGWIN32__ */
|
||||
|
||||
#endif /* _GNU_H_WINDOWS32_SOCKETS */
|
||||
|
||||
#define ITIMER_REAL 0
|
||||
#define ITIMER_VIRTUAL 1
|
||||
#define ITIMER_PROF 2
|
||||
|
||||
struct itimerval {
|
||||
struct timeval it_interval;
|
||||
struct timeval it_value;
|
||||
};
|
||||
|
||||
int _EXFUN(gettimeofday, (struct timeval *__p, struct timezone *__z));
|
||||
int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *));
|
||||
int _EXFUN(utimes, (const char *__path, struct timeval *__tvp));
|
||||
int _EXFUN(getitimer, (int __which, struct itimerval *__value));
|
||||
int _EXFUN(setitimer, (int __which, const struct itimerval *__value,
|
||||
struct itimerval *__ovalue));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _SYS_TIME_H_ */
|
39
agbcc/libc/include/sys/timeb.h
Normal file
39
agbcc/libc/include/sys/timeb.h
Normal file
@ -0,0 +1,39 @@
|
||||
/* timeb.h -- An implementation of the standard Unix <sys/timeb.h> file.
|
||||
Written by Ian Lance Taylor <ian@cygnus.com>
|
||||
Public domain; no rights reserved.
|
||||
|
||||
<sys/timeb.h> declares the structure used by the ftime function, as
|
||||
well as the ftime function itself. Newlib does not provide an
|
||||
implementation of ftime. */
|
||||
|
||||
#ifndef _SYS_TIMEB_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define _SYS_TIMEB_H
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <machine/types.h>
|
||||
|
||||
#ifndef __time_t_defined
|
||||
typedef _TIME_T_ time_t;
|
||||
#define __time_t_defined
|
||||
#endif
|
||||
|
||||
struct timeb
|
||||
{
|
||||
time_t time;
|
||||
unsigned short millitm;
|
||||
short timezone;
|
||||
short dstflag;
|
||||
};
|
||||
|
||||
extern int ftime _PARAMS ((struct timeb *));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ! defined (_SYS_TIMEB_H) */
|
27
agbcc/libc/include/sys/times.h
Normal file
27
agbcc/libc/include/sys/times.h
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef _SYS_TIMES_H
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#define _SYS_TIMES_H
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <machine/types.h>
|
||||
|
||||
#ifndef __clock_t_defined
|
||||
typedef _CLOCK_T_ clock_t;
|
||||
#define __clock_t_defined
|
||||
#endif
|
||||
|
||||
struct tms {
|
||||
clock_t tms_utime; /* user time */
|
||||
clock_t tms_stime; /* system time */
|
||||
clock_t tms_cutime; /* user time, children */
|
||||
clock_t tms_cstime; /* system time, children */
|
||||
};
|
||||
|
||||
clock_t _EXFUN(times,(struct tms *));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* !_SYS_TIMES_H */
|
170
agbcc/libc/include/sys/types.h
Normal file
170
agbcc/libc/include/sys/types.h
Normal file
@ -0,0 +1,170 @@
|
||||
/* unified sys/types.h:
|
||||
start with sef's sysvi386 version.
|
||||
merge go32 version -- a few ifdefs.
|
||||
h8300hms, h8300xray, and sysvnecv70 disagree on the following types:
|
||||
|
||||
typedef int gid_t;
|
||||
typedef int uid_t;
|
||||
typedef int dev_t;
|
||||
typedef int ino_t;
|
||||
typedef int mode_t;
|
||||
typedef int caddr_t;
|
||||
|
||||
however, these aren't "reasonable" values, the sysvi386 ones make far
|
||||
more sense, and should work sufficiently well (in particular, h8300
|
||||
doesn't have a stat, and the necv70 doesn't matter.) -- eichin
|
||||
*/
|
||||
|
||||
#ifndef _SYS_TYPES_H
|
||||
#define _SYS_TYPES_H
|
||||
|
||||
#ifdef __i386__
|
||||
#if defined (GO32) || defined (__MSDOS__) || defined (_WIN32)
|
||||
#define __MS_types__
|
||||
#endif
|
||||
#endif
|
||||
|
||||
# include <stddef.h>
|
||||
# include <machine/types.h>
|
||||
|
||||
/* To ensure the stat struct's layout doesn't change when sizeof(int), etc.
|
||||
changes, we assume sizeof short and long never change and have all types
|
||||
used to define struct stat use them and not int where possible.
|
||||
Where not possible, _ST_INTxx are used. It would be preferable to not have
|
||||
such assumptions, but until the extra fluff is necessary, it's avoided.
|
||||
No 64 bit targets use stat yet. What to do about them is postponed
|
||||
until necessary. */
|
||||
#ifdef __GNUC__
|
||||
#define _ST_INT32 __attribute__ ((__mode__ (__SI__)))
|
||||
#else
|
||||
#define _ST_INT32
|
||||
#endif
|
||||
|
||||
# ifndef _POSIX_SOURCE
|
||||
|
||||
# define physadr physadr_t
|
||||
# define quad quad_t
|
||||
|
||||
#ifndef _GNU_H_WINDOWS32_SOCKETS
|
||||
typedef unsigned char u_char;
|
||||
typedef unsigned short u_short;
|
||||
typedef unsigned int u_int;
|
||||
typedef unsigned long u_long;
|
||||
#endif
|
||||
|
||||
typedef unsigned short ushort; /* System V compatibility */
|
||||
typedef unsigned int uint; /* System V compatibility */
|
||||
# endif /*!_POSIX_SOURCE */
|
||||
|
||||
#ifndef __time_t_defined
|
||||
typedef _TIME_T_ time_t;
|
||||
#define __time_t_defined
|
||||
#endif
|
||||
|
||||
typedef long daddr_t;
|
||||
typedef char * caddr_t;
|
||||
|
||||
#ifdef __MS_types__
|
||||
typedef unsigned long ino_t;
|
||||
#else
|
||||
#ifdef __sparc__
|
||||
typedef unsigned long ino_t;
|
||||
#else
|
||||
typedef unsigned short ino_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __MS_types__
|
||||
typedef unsigned long vm_offset_t;
|
||||
typedef unsigned long vm_size_t;
|
||||
|
||||
#define __BIT_TYPES_DEFINED__
|
||||
|
||||
typedef char int8_t;
|
||||
typedef unsigned char u_int8_t;
|
||||
typedef short int16_t;
|
||||
typedef unsigned short u_int16_t;
|
||||
typedef int int32_t;
|
||||
typedef unsigned int u_int32_t;
|
||||
typedef long long int64_t;
|
||||
typedef unsigned long long u_int64_t;
|
||||
typedef int32_t register_t;
|
||||
#endif /* __MS_types__ */
|
||||
|
||||
/*
|
||||
* All these should be machine specific - right now they are all broken.
|
||||
* However, for all of Cygnus' embedded targets, we want them to all be
|
||||
* the same. Otherwise things like sizeof (struct stat) might depend on
|
||||
* how the file was compiled (e.g. -mint16 vs -mint32, etc.).
|
||||
*/
|
||||
|
||||
typedef short dev_t;
|
||||
|
||||
typedef long off_t;
|
||||
|
||||
typedef unsigned short uid_t;
|
||||
typedef unsigned short gid_t;
|
||||
typedef int pid_t;
|
||||
typedef long key_t;
|
||||
typedef long ssize_t;
|
||||
|
||||
#ifdef __MS_types__
|
||||
typedef char * addr_t;
|
||||
typedef int mode_t;
|
||||
#else
|
||||
#if defined (__sparc__) && !defined (__sparc_v9__)
|
||||
#ifdef __svr4__
|
||||
typedef unsigned long mode_t;
|
||||
#else
|
||||
typedef unsigned short mode_t;
|
||||
#endif
|
||||
#else
|
||||
typedef unsigned int mode_t _ST_INT32;
|
||||
#endif
|
||||
#endif /* ! __MS_types__ */
|
||||
|
||||
typedef unsigned short nlink_t;
|
||||
|
||||
/* We don't define fd_set and friends if we are compiling POSIX
|
||||
source, or if we have included the Windows Sockets.h header (which
|
||||
defines Windows versions of them). Note that a program which
|
||||
includes the Windows sockets.h header must know what it is doing;
|
||||
it must not call the cygwin select function. */
|
||||
# if ! defined (_POSIX_SOURCE) && ! defined (_GNU_H_WINDOWS32_SOCKETS)
|
||||
|
||||
# define NBBY 8 /* number of bits in a byte */
|
||||
/*
|
||||
* Select uses bit masks of file descriptors in longs.
|
||||
* These macros manipulate such bit fields (the filesystem macros use chars).
|
||||
* FD_SETSIZE may be defined by the user, but the default here
|
||||
* should be >= NOFILE (param.h).
|
||||
*/
|
||||
# ifndef FD_SETSIZE
|
||||
# define FD_SETSIZE 64
|
||||
# endif
|
||||
|
||||
typedef long fd_mask;
|
||||
# define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */
|
||||
# ifndef howmany
|
||||
# define howmany(x,y) (((x)+((y)-1))/(y))
|
||||
# endif
|
||||
|
||||
/* We use a macro for fd_set so that including Sockets.h afterwards
|
||||
can work. */
|
||||
typedef struct _types_fd_set {
|
||||
fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
|
||||
} _types_fd_set;
|
||||
|
||||
#define fd_set _types_fd_set
|
||||
|
||||
# define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS)))
|
||||
# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS)))
|
||||
# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS)))
|
||||
# define FD_ZERO(p) bzero((caddr_t)(p), sizeof (*(p)))
|
||||
|
||||
# endif /* ! defined (_POSIX_SOURCE) && ! defined (GNU_H_WINDOWS32_SOCKETS) */
|
||||
|
||||
#undef __MS_types__
|
||||
#undef _ST_INT32
|
||||
|
||||
#endif /* _SYS_TYPES_H */
|
155
agbcc/libc/include/sys/unistd.h
Normal file
155
agbcc/libc/include/sys/unistd.h
Normal file
@ -0,0 +1,155 @@
|
||||
#ifndef _SYS_UNISTD_H
|
||||
#define _SYS_UNISTD_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <sys/types.h>
|
||||
#define __need_size_t
|
||||
#include <stddef.h>
|
||||
|
||||
extern char **environ;
|
||||
|
||||
void _EXFUN(_exit, (int __status ) _ATTRIBUTE ((noreturn)));
|
||||
|
||||
int _EXFUN(access,(const char *__path, int __amode ));
|
||||
unsigned _EXFUN(alarm, (unsigned __secs ));
|
||||
int _EXFUN(chdir, (const char *__path ));
|
||||
int _EXFUN(chmod, (const char *__path, mode_t __mode ));
|
||||
int _EXFUN(chown, (const char *__path, uid_t __owner, gid_t __group ));
|
||||
int _EXFUN(close, (int __fildes ));
|
||||
char _EXFUN(*ctermid, (char *__s ));
|
||||
char _EXFUN(*cuserid, (char *__s ));
|
||||
int _EXFUN(dup, (int __fildes ));
|
||||
int _EXFUN(dup2, (int __fildes, int __fildes2 ));
|
||||
int _EXFUN(execl, (const char *__path, const char *, ... ));
|
||||
int _EXFUN(execle, (const char *__path, const char *, ... ));
|
||||
int _EXFUN(execlp, (const char *__file, const char *, ... ));
|
||||
int _EXFUN(execv, (const char *__path, char * const __argv[] ));
|
||||
int _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] ));
|
||||
int _EXFUN(execvp, (const char *__file, char * const __argv[] ));
|
||||
pid_t _EXFUN(fork, (void ));
|
||||
long _EXFUN(fpathconf, (int __fd, int __name ));
|
||||
int _EXFUN(fsync, (int __fd));
|
||||
char _EXFUN(*getcwd, (char *__buf, size_t __size ));
|
||||
gid_t _EXFUN(getegid, (void ));
|
||||
uid_t _EXFUN(geteuid, (void ));
|
||||
gid_t _EXFUN(getgid, (void ));
|
||||
int _EXFUN(getgroups, (int __gidsetsize, gid_t __grouplist[] ));
|
||||
char _EXFUN(*getlogin, (void ));
|
||||
char _EXFUN(*getpass, (__const char *__prompt));
|
||||
size_t _EXFUN(getpagesize, (void));
|
||||
pid_t _EXFUN(getpgrp, (void ));
|
||||
pid_t _EXFUN(getpid, (void ));
|
||||
pid_t _EXFUN(getppid, (void ));
|
||||
uid_t _EXFUN(getuid, (void ));
|
||||
int _EXFUN(isatty, (int __fildes ));
|
||||
int _EXFUN(link, (const char *__path1, const char *__path2 ));
|
||||
off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence ));
|
||||
long _EXFUN(pathconf, (char *__path, int __name ));
|
||||
int _EXFUN(pause, (void ));
|
||||
int _EXFUN(pipe, (int __fildes[2] ));
|
||||
int _EXFUN(read, (int __fildes, void *__buf, size_t __nbyte ));
|
||||
int _EXFUN(rmdir, (const char *__path ));
|
||||
void * _EXFUN(sbrk, (size_t __incr));
|
||||
int _EXFUN(setgid, (gid_t __gid ));
|
||||
int _EXFUN(setpgid, (pid_t __pid, pid_t __pgid ));
|
||||
pid_t _EXFUN(setsid, (void ));
|
||||
int _EXFUN(setuid, (uid_t __uid ));
|
||||
unsigned _EXFUN(sleep, (unsigned int __seconds ));
|
||||
void _EXFUN(swab, (const void *, void *, ssize_t));
|
||||
long _EXFUN(sysconf, (int __name ));
|
||||
pid_t _EXFUN(tcgetpgrp, (int __fildes ));
|
||||
int _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id ));
|
||||
char _EXFUN(*ttyname, (int __fildes ));
|
||||
int _EXFUN(unlink, (const char *__path ));
|
||||
int _EXFUN(write, (int __fildes, const void *__buf, size_t __nbyte ));
|
||||
|
||||
/* Provide prototypes for most of the _<systemcall> names that are
|
||||
provided in newlib for some compilers. */
|
||||
int _EXFUN(_close, (int __fildes ));
|
||||
pid_t _EXFUN(_fork, (void ));
|
||||
pid_t _EXFUN(_getpid, (void ));
|
||||
int _EXFUN(_link, (const char *__path1, const char *__path2 ));
|
||||
off_t _EXFUN(_lseek, (int __fildes, off_t __offset, int __whence ));
|
||||
int _EXFUN(_read, (int __fildes, void *__buf, size_t __nbyte ));
|
||||
void * _EXFUN(_sbrk, (size_t __incr));
|
||||
int _EXFUN(_unlink, (const char *__path ));
|
||||
int _EXFUN(_write, (int __fildes, const void *__buf, size_t __nbyte ));
|
||||
|
||||
#ifdef __CYGWIN32__
|
||||
unsigned _EXFUN(usleep, (unsigned int __useconds));
|
||||
int _EXFUN(ftruncate, (int __fd, off_t __length));
|
||||
int _EXFUN(truncate, (const char *, off_t __length));
|
||||
int _EXFUN(gethostname, (char *__name, size_t __len));
|
||||
char * _EXFUN(mktemp, (char *));
|
||||
int _EXFUN(sync, (void));
|
||||
int _EXFUN(readlink, (const char *__path, char *__buf, int __buflen));
|
||||
int _EXFUN(symlink, (const char *__name1, const char *__name2));
|
||||
#endif
|
||||
|
||||
# define F_OK 0
|
||||
# define R_OK 4
|
||||
# define W_OK 2
|
||||
# define X_OK 1
|
||||
|
||||
# define SEEK_SET 0
|
||||
# define SEEK_CUR 1
|
||||
# define SEEK_END 2
|
||||
|
||||
#ifdef __svr4__
|
||||
# define _POSIX_JOB_CONTROL 1
|
||||
# define _POSIX_SAVED_IDS 1
|
||||
# define _POSIX_VERSION 199009L
|
||||
#endif
|
||||
|
||||
#ifdef __CYGWIN32__
|
||||
# define _POSIX_JOB_CONTROL 1
|
||||
# define _POSIX_SAVED_IDS 0
|
||||
# define _POSIX_VERSION 199009L
|
||||
#endif
|
||||
|
||||
#define STDIN_FILENO 0 /* standard input file descriptor */
|
||||
#define STDOUT_FILENO 1 /* standard output file descriptor */
|
||||
#define STDERR_FILENO 2 /* standard error file descriptor */
|
||||
|
||||
long _EXFUN(sysconf, (int __name));
|
||||
|
||||
# define _SC_ARG_MAX 0
|
||||
# define _SC_CHILD_MAX 1
|
||||
# define _SC_CLK_TCK 2
|
||||
# define _SC_NGROUPS_MAX 3
|
||||
# define _SC_OPEN_MAX 4
|
||||
/* no _SC_STREAM_MAX */
|
||||
# define _SC_JOB_CONTROL 5
|
||||
# define _SC_SAVED_IDS 6
|
||||
# define _SC_VERSION 7
|
||||
# define _SC_PAGESIZE 8
|
||||
|
||||
# define _PC_LINK_MAX 0
|
||||
# define _PC_MAX_CANON 1
|
||||
# define _PC_MAX_INPUT 2
|
||||
# define _PC_NAME_MAX 3
|
||||
# define _PC_PATH_MAX 4
|
||||
# define _PC_PIPE_BUF 5
|
||||
# define _PC_CHOWN_RESTRICTED 6
|
||||
# define _PC_NO_TRUNC 7
|
||||
# define _PC_VDISABLE 8
|
||||
|
||||
# ifndef _POSIX_SOURCE
|
||||
# define MAXNAMLEN 1024
|
||||
# endif /* _POSIX_SOURCE */
|
||||
|
||||
/* FIXME: This is temporary until winsup gets sorted out. */
|
||||
#ifdef __CYGWIN32__
|
||||
#define MAXPATHLEN (260 - 1 /* NUL */)
|
||||
#else
|
||||
# define MAXPATHLEN 1024
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _SYS_UNISTD_H */
|
22
agbcc/libc/include/sys/utime.h
Normal file
22
agbcc/libc/include/sys/utime.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef _SYS_UTIME_H
|
||||
#define _SYS_UTIME_H
|
||||
|
||||
/* This is a dummy <sys/utime.h> file, not customized for any
|
||||
particular system. If there is a utime.h in libc/sys/SYSDIR/sys,
|
||||
it will override this one. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct utimbuf
|
||||
{
|
||||
time_t actime;
|
||||
time_t modtime;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif /* _SYS_UTIME_H */
|
40
agbcc/libc/include/sys/wait.h
Normal file
40
agbcc/libc/include/sys/wait.h
Normal file
@ -0,0 +1,40 @@
|
||||
#ifndef _SYS_WAIT_H
|
||||
#define _SYS_WAIT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#define WNOHANG 1
|
||||
#define WUNTRACED 2
|
||||
|
||||
/* A status looks like:
|
||||
<2 bytes info> <2 bytes code>
|
||||
|
||||
<code> == 0, child has exited, info is the exit value
|
||||
<code> == 1..7e, child has exited, info is the signal number.
|
||||
<code> == 7f, child has stopped, info was the signal number.
|
||||
<code> == 80, there was a core dump.
|
||||
*/
|
||||
|
||||
#define WIFEXITED(w) (((w) & 0xff) == 0)
|
||||
#define WIFSIGNALED(w) (((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f))
|
||||
#define WIFSTOPPED(w) (((w) & 0xff) == 0x7f)
|
||||
#define WEXITSTATUS(w) (((w) >> 8) & 0xff)
|
||||
#define WTERMSIG(w) ((w) & 0x7f)
|
||||
#define WSTOPSIG WEXITSTATUS
|
||||
|
||||
pid_t wait (int *);
|
||||
pid_t waitpid (pid_t, int *, int);
|
||||
|
||||
/* Provide prototypes for most of the _<systemcall> names that are
|
||||
provided in newlib for some compilers. */
|
||||
pid_t _wait (int *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user