diff options
Diffstat (limited to 'ports/sysdeps/unix/sysv/aix/bits')
24 files changed, 2432 insertions, 0 deletions
diff --git a/ports/sysdeps/unix/sysv/aix/bits/dirent.h b/ports/sysdeps/unix/sysv/aix/bits/dirent.h new file mode 100644 index 000000000..48eeb3288 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/dirent.h @@ -0,0 +1,55 @@ +/* Directory entry structure `struct dirent'. Old System V version. + Copyright (C) 1996, 1997, 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 _DIRENT_H +# error "Never use <bits/dirent.h> directly; include <dirent.h> instead." +#endif + +struct dirent + { +#ifndef __USE_FILE_OFFSET64 + __off_t d_off; + __ino_t d_ino; +#else + __off64_t d_off; + __ino64_t d_ino; +#endif + unsigned short int d_reclen; + unsigned short int d_namlen; + char d_name[256]; + }; + +#ifdef __USE_LARGEFILE64 +struct dirent64 + { + __off64_t d_off; + __ino64_t d_ino; + unsigned short int d_reclen; + unsigned short int d_namlen; + char d_name[256]; + }; +#endif + +#define d_fileno d_ino /* Backwards compatibility. */ +#define d_offset d_off + +#define _DIRENT_HAVE_D_NAMLEN +#define _DIRENT_HAVE_D_RECLEN +#define _DIRENT_HAVE_D_OFF +#undef _DIRENT_HAVE_D_TYPE diff --git a/ports/sysdeps/unix/sysv/aix/bits/dlfcn.h b/ports/sysdeps/unix/sysv/aix/bits/dlfcn.h new file mode 100644 index 000000000..e18417527 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/dlfcn.h @@ -0,0 +1,47 @@ +/* AIX dependent definitions for run-time dynamic loading. + 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 _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 0x004 /* Lazy function call binding. */ +#define RTLD_NOW 0x002 /* Immediate function call binding. */ +#define RTLD_BINDING_MASK 0x6 /* Mask of binding time value. */ + +/* 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 0x10000 + +/* 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 0x800000 + +#ifdef __USE_GNU +/* These are extensions of the AIX kernel. */ +# define RTLD_NOAUTODEFER 0x020000 +# define RTLD_MEMBER 0x040000 +# define RTLD_UNIX_LATEST 0x100000 +#endif + +/* No support to profile shared libraries available. */ +# define DL_CALL_FCT(fctp, args) fctp args diff --git a/ports/sysdeps/unix/sysv/aix/bits/endian.h b/ports/sysdeps/unix/sysv/aix/bits/endian.h new file mode 100644 index 000000000..8e9b98ef7 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/endian.h @@ -0,0 +1,23 @@ +/* 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 _ENDIAN_H +# error "Never use <bits/endian.h> directly; include <endian.h> instead." +#endif + +#define __BYTE_ORDER __BIG_ENDIAN diff --git a/ports/sysdeps/unix/sysv/aix/bits/errno.h b/ports/sysdeps/unix/sysv/aix/bits/errno.h new file mode 100644 index 000000000..9f22a965e --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/errno.h @@ -0,0 +1,153 @@ +/* Copyright (C) 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. */ + +/* This file defines the `errno' constants. */ + +#if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath) +#undef __need_Emath +#define __Emath_defined 1 + +#endif + +#ifdef _ERRNO_H +# undef EDOM +# undef EILSEQ +# undef ERANGE + +# 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 /* Arg list too long. */ +# define ENOEXEC 8 /* Exec format error. */ +# define EBADF 9 /* Bad file descriptor. */ +# define ECHILD 10 /* No child processes. */ +# define EAGAIN 11 /* Resource temporarily unavailable. */ +# define ENOMEM 12 /* Not enough space. */ +# define EACCES 13 /* Permission denied. */ +# define EFAULT 14 /* Bad address. */ +# define ENOTBLK 15 /* Block device required. */ +# define EBUSY 16 /* Resource busy. */ +# define EEXIST 17 /* File exists. */ +# define EXDEV 18 /* Improper 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 /* Inappropriate I/O control operation. */ +# define ETXTBSY 26 /* Text file busy. */ +# define EFBIG 27 /* File too large. */ +# define ENOSPC 28 /* No space left on device. */ +# define ESPIPE 29 /* Invalid seek. */ +# define EROFS 30 /* Read only file system. */ +# define EMLINK 31 /* Too many links. */ +# define EPIPE 32 /* Broken pipe. */ +# define EDOM 33 /* Domain error within math function. */ +# define ERANGE 34 /* Result too large. */ +# 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 /* Resource deadlock avoided. */ +# define ENOTREADY 46 /* Device not ready. */ +# define EWRPROTECT 47 /* Write-protected media. */ +# define EFORMAT 48 /* Unformatted media. */ +# define ENOLCK 49 /* No locks available. */ +# define ENOCONNECT 50 /* No connection. */ +# define ESTALE 52 /* No filesystem. */ +# define EDIST 53 /* Old, currently unused AIX errno. */ +# if __USE_XOPEN_EXTENDED +# define EWOULDBLOCK EAGAIN /* Operation would block. */ +# else /* __USE_XOPEN_EXTENDED */ +# define EWOULDBLOCK 54 +# endif /* __USE_XOPEN_EXTENDED */ +# define EINPROGRESS 55 /* Operation now in progress. */ +# define EALREADY 56 /* Operation already in progress. */ +# define ENOTSOCK 57 /* Socket operation on non-socket. */ +# define EDESTADDRREQ 58 /* Destination address required. */ +# define EDESTADDREQ EDESTADDRREQ /* Destination address required. */ +# define EMSGSIZE 59 /* Message too long. */ +# define EPROTOTYPE 60 /* Protocol wrong type for socket. */ +# define ENOPROTOOPT 61 /* Protocol not available. */ +# define EPROTONOSUPPORT 62 /* Protocol not supported. */ +# define ESOCKTNOSUPPORT 63 /* Socket type not supported. */ +# define EOPNOTSUPP 64 /* Operation not supported on socket. */ +# define EPFNOSUPPORT 65 /* Protocol family not supported. */ +# define EAFNOSUPPORT 66 /* Address family not supported by protocol + family. */ +# define EADDRINUSE 67 /* Address already in use. */ +# define EADDRNOTAVAIL 68 /* Can't assign requested address. */ +# define ENETDOWN 69 /* Network is down. */ +# define ENETUNREACH 70 /* Network is unreachable. */ +# define ENETRESET 71 /* Network dropped connection on reset. */ +# define ECONNABORTED 72 /* Software caused connection abort. */ +# define ECONNRESET 73 /* Connection reset by peer. */ +# define ENOBUFS 74 /* No buffer space available. */ +# define EISCONN 75 /* Socket is already connected. */ +# define ENOTCONN 76 /* Socket is not connected. */ +# define ESHUTDOWN 77 /* Can't send after socket shutdown. */ +# define ETIMEDOUT 78 /* Connection timed out. */ +# define ECONNREFUSED 79 /* Connection refused. */ +# define EHOSTDOWN 80 /* Host is down. */ +# define EHOSTUNREACH 81 /* No route to host. */ +# define ERESTART 82 /* Restart the system call. */ +# define EPROCLIM 83 /* Too many processes. */ +# define EUSERS 84 /* Too many users. */ +# define ELOOP 85 /* Too many levels of symbolic links. */ +# define ENAMETOOLONG 86 /* File name too long. */ +# define ENOTEMPTY EEXIST /* Directory not empty. */ +# define EDQUOT 88 /* Disc quota exceeded. */ +# define ECORRUPT 89 /* Invalid file system control data. */ +# define EREMOTE 93 /* Item is not local to host. */ +# define ENOSYS 109 /* Function not implemented POSIX. */ +# define EMEDIA 110 /* Media surface error. */ +# define ESOFT 111 /* I/O completed, but needs relocation. */ +# define ENOATTR 112 /* No attribute found. */ +# define ESAD 113 /* Security authentication denied. */ +# define ENOTRUST 114 /* Not a trusted program. */ +# define ETOOMANYREFS 115 /* Too many references: can't splice. */ +# define EILSEQ 116 /* Invalid wide character. */ +# define ECANCELED 117 /* Asynchronous i/o cancelled. */ +# define ENOSR 118 /* Temp out of streams resources. */ +# define ETIME 119 /* I_STR ioctl timed out. */ +# define EBADMSG 120 /* Wrong message type at stream head. */ +# define EPROTO 121 /* STREAMS protocol error. */ +# define ENODATA 122 /* No message ready at stream head. */ +# define ENOSTR 123 /* Fd is not a stream. */ +# define ECLONEME ERESTART /* This is the way we clone a stream. */ +# define ENOTSUP 124 /* POSIX threads unsupported value. */ +# define EMULTIHOP 125 /* Multihop is not allowed. */ +# define ENOLINK 126 /* The link has been severed. */ +# define EOVERFLOW 127 /* Value too large to be stored in data type.*/ +#endif + +#if !defined _ERRNO_H && defined __need_Emath +# define EDOM 33 /* Math argument out of domain of function. */ +# define EILSEQ 116 /* Illegal byte sequence. */ +# define ERANGE 34 /* Math result not representable. */ +#endif /* !_ERRNO_H && __need_Emath */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/fcntl.h b/ports/sysdeps/unix/sysv/aix/bits/fcntl.h new file mode 100644 index 000000000..c65b8beeb --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/fcntl.h @@ -0,0 +1,137 @@ +/* O_*, F_*, FD_* bit values for Linux. + Copyright (C) 1995-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 _FCNTL_H +# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." +#endif + + +#include <sys/types.h> + +/* open/fcntl. */ +#define O_ACCMODE 0003 +#define O_RDONLY 00 +#define O_WRONLY 01 +#define O_RDWR 02 +#define O_NONBLOCK 04 +#define O_NDELAY O_NONBLOCK +#define O_APPEND 010 +#define O_SYNC 020 +#define O_FSYNC O_SYNC +#define O_CREAT 0400 /* not fcntl */ +#define O_TRUNC 01000 /* not fcntl */ +#define O_EXCL 02000 /* not fcntl */ +#define O_NOCTTY 04000 /* not fcntl */ +#define O_ASYNC 0400000 + +#ifdef __USE_LARGEFILE64 +# define O_LARGEFILE 0400000000 +#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 020000000 /* Synchronize data. */ +# define O_RSYNC 010000000 /* Synchronize read operations. */ +#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 11 /* Get record locking info. */ +# define F_SETLK 12 /* Set record locking info (non-blocking). */ +# define F_SETLKW 13 /* Set record locking info (blocking). */ +#endif + +#ifdef __USE_LARGEFILE64 +# define F_GETLK64 11 /* Get record locking info. */ +# define F_SETLK64 12 /* Set record locking info (non-blocking). */ +# define F_SETLKW64 13 /* Set record locking info (blocking). */ +#endif + +#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 + +/* 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 1 /* Read lock. */ +#define F_WRLCK 2 /* Write lock. */ +#define F_UNLCK 3 /* Remove lock. */ + +#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 + +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. */ +#endif + unsigned int l_sysid; + __pid_t l_pid; /* Process holding the lock. */ + int l_vfs; +#ifdef __USE_FILE_OFFSET64 + __off64_t l_start; /* Offset where the lock begins. */ + __off64_t l_len; /* Size of the locked area; zero means until EOF. */ +#endif + }; + +#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'). */ + unsigned int l_sysid; + __pid_t l_pid; /* Process holding the lock. */ + int l_vfs; + __off64_t l_start; /* Offset where the lock begins. */ + __off64_t l_len; /* Size of the locked area; zero means until EOF. */ + }; +#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. */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/ioctl-types.h b/ports/sysdeps/unix/sysv/aix/bits/ioctl-types.h new file mode 100644 index 000000000..d8fe8c8d5 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/ioctl-types.h @@ -0,0 +1,91 @@ +/* Structure types for pre-termios terminal ioctls. AIX version. + Copyright (C) 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; 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 + +/* Constants for use with `ioctl'. */ +#define TIOC ('T' << 8) +#define TCGETS (TIOC | 1) +#define TCSETS (TIOC | 2) +#define TCSETSW (TIOC | 3) +#define TCSETSF (TIOC | 4) +#define TCGETA (TIOC | 5) +#define TCSETA (TIOC | 6) +#define TCSETAW (TIOC | 7) +#define TCSETAF (TIOC | 8) +#define TCSBRK (TIOC | 9) +#define TCSBREAK (TIOC | 10) +#define TCXONC (TIOC | 11) +#define TCFLSH (TIOC | 12) +#define TCGLEN (TIOC | 13) +#define TCSLEN (TIOC | 14) +#define TCSAK (TIOC | 15) +#define TCQSAK (TIOC | 16) +#define TCTRUST (TIOC | 17) +#define TCQTRUST (TIOC | 18) +#define TCSMAP (TIOC | 19) +#define TCGMAP (TIOC | 20) +#define TCKEP (TIOC | 21) +#define TCGSAK (TIOC | 22) +#define TCLOOP (TIOC | 23) +#define TCVPD (TIOC | 24) +#define TCREG (TIOC | 25) +#define TCGSTATUS (TIOC | 26) +#define TCSCONTROL (TIOC | 27) +#define TCSCSMAP (TIOC | 28) +#define TCGCSMAP (TIOC | 29) +#define TCMGR TCSAK +#define TCQMGR TCQSAK +#define TIONREAD FIONREAD + + + +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 */ + 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 diff --git a/ports/sysdeps/unix/sysv/aix/bits/ioctls.h b/ports/sysdeps/unix/sysv/aix/bits/ioctls.h new file mode 100644 index 000000000..8023c144d --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/ioctls.h @@ -0,0 +1,248 @@ +/* Copyright (C) 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_IOCTL_H +# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead." +#endif + + +#define IOCPARM_MASK 0x7f /* parameters must be < 128 bytes */ +#define IOC_VOID 0x20000000 /* no parameters */ +#define IOC_OUT 0x40000000 /* copy out parameters */ +#define IOC_IN (0x40000000<<1) /* copy in parameters */ +#define IOC_INOUT (IOC_IN|IOC_OUT) +#define _IO(x,y) (IOC_VOID|(x<<8)|y) +#define _IOR(x,y,t) (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) +#define _IOW(x,y,t) (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) +#define _IOWR(x,y,t) (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y) + +#define TIOCGETD _IOR('t', 0, int) /* get line discipline */ +#define TIOCSETD _IOW('t', 1, int) /* set line discipline */ +#define TIOCHPCL _IO('t', 2) /* hang up on last close */ +#define TIOCMODG _IOR('t', 3, int) /* get modem control state */ +#define TIOCMODS _IOW('t', 4, int) /* set modem control state */ +#define TIOCGETP _IOR('t', 8,struct sgttyb)/* get parameters -- gtty */ +#define TIOCSETP _IOW('t', 9,struct sgttyb)/* set parameters -- stty */ +#define TIOCSETN _IOW('t',10,struct sgttyb)/* as above, but no flushtty */ +#define TIOCEXCL _IO('t', 13) /* set exclusive use of tty */ +#define TIOCNXCL _IO('t', 14) /* reset exclusive use of tty */ +#define TIOCFLUSH _IOW('t', 16, int) /* flush buffers */ +#define TIOCSETC _IOW('t',17,struct tchars)/* set special characters */ +#define TIOCGETC _IOR('t',18,struct tchars)/* get special characters */ +#define TANDEM 0x00000001 /* send stopc on out q full */ +#define CBREAK 0x00000002 /* half-cooked mode */ +#define LCASE 0x00000004 /* simulate lower case */ +#define CRMOD 0x00000010 /* map \r to \r\n on output */ +#define RAW 0x00000020 /* no i/o processing */ +#define ODDP 0x00000040 /* get/send odd parity */ +#define EVENP 0x00000080 /* get/send even parity */ +#define ANYP 0x000000c0 /* get any parity/send none */ +#define CRDELAY 0x00000300 /* \r delay */ +#define TBDELAY 0x00000c00 /* horizontal tab delay */ +#define XTABS 0x00000c00 /* expand tabs on output */ +#define BSDELAY 0x00001000 /* \b delay */ +#define VTDELAY 0x00002000 /* vertical tab delay */ +#define NLDELAY 0x0000c000 /* \n delay */ +#define NL2 0x00008000 /* vt05 */ +#define NL3 0x0000c000 +#define ALLDELAY (NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY) +#define PRTERA 0x00020000 /* \ ... / erase */ +#define CRTERA 0x00040000 /* " \b " to wipe out char */ +#define TILDE 0x00080000 /* hazeltine tilde kludge */ +#define LITOUT 0x00200000 /* literal output */ +#define CRTBS 0x00400000 /* do backspacing for crt */ +#define MDMBUF 0x00800000 /* dtr pacing */ +#define NOHANG 0x01000000 /* no SIGHUP on carrier drop */ +#define L001000 0x02000000 +#define CRTKIL 0x04000000 /* kill line with " \b " */ +#define PASS8 0x08000000 +#define CTLECH 0x10000000 /* echo control chars as ^X */ +#define DECCTQ 0x40000000 /* only ^Q starts after ^S */ +#define NOFLUSH 0x80000000 /* no output flush on signal */ + + +/* SYS V REL. 4 PTY IOCTLs */ +#define UNLKPT _IO('t',70) /* unlock slave pty */ +#define ISPTM _IO('t',71) /* ret. maj+min of pty master */ +#define ISPTS _IO('t',73) /* return maj+min of slave */ +#define GRTPT _IO('t',74) /* grantpt slave pty*/ +#define RLOGIND _IO('t',75) /* for rlogind protocol in ptydd */ +#define TELNETDP _IO('t',76) /* for telnetd protocol in ptydd */ + +#define TIOCCONS _IOW('t', 98, int) /* become virtual console */ +#define TIOCGSID _IOR('t', 72, int) /* get the tty session id */ + + /* locals, from 127 down */ +#define TIOCLBIS _IOW('t', 127, int) /* bis local mode bits */ +#define TIOCLBIC _IOW('t', 126, int) /* bic local mode bits */ +#define TIOCLSET _IOW('t', 125, int) /* set entire mode word */ +#define TIOCLGET _IOR('t', 124, int) /* get local modes */ +#define LCRTBS (CRTBS>>16) +#define LPRTERA (PRTERA>>16) +#define LCRTERA (CRTERA>>16) +#define LTILDE (TILDE>>16) +#define LMDMBUF (MDMBUF>>16) +#define LLITOUT (LITOUT>>16) +#define LTOSTOP (TOSTOP>>16) +#define LFLUSHO (FLUSHO>>16) +#define LNOHANG (NOHANG>>16) +#define LCRTKIL (CRTKIL>>16) +#define LPASS8 (PASS8>>16) +#define LCTLECH (CTLECH>>16) +#define LPENDIN (PENDIN>>16) +#define LDECCTQ (DECCTQ>>16) +#define LNOFLSH (NOFLUSH>>16) +#define TIOCSBRK _IO('t', 123) /* set break bit */ +#define TIOCCBRK _IO('t', 122) /* clear break bit */ +#define TIOCSDTR _IO('t', 121) /* set data terminal ready */ +#define TIOCCDTR _IO('t', 120) /* clear data terminal ready */ +#define TIOCGPGRP _IOR('t', 119, int) /* get process group */ +#define TIOCSPGRP _IOW('t', 118, int) /* set process gorup */ +#define TIOCSLTC _IOW('t',117,struct ltchars)/* set local special chars */ +#define TIOCGLTC _IOR('t',116,struct ltchars)/* get local special chars */ +#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */ +#define TIOCSTI _IOW('t', 114, char) /* simulate terminal input */ +#define TIOCNOTTY _IO('t', 113) /* void tty association */ +#define TIOCPKT _IOW('t', 112, int) /* pty: set/clear packet mode */ +#define TIOCPKT_DATA 0x00 /* data packet */ +#define TIOCPKT_FLUSHREAD 0x01 /* flush packet */ +#define TIOCPKT_FLUSHWRITE 0x02 /* flush packet */ +#define TIOCPKT_STOP 0x04 /* stop output */ +#define TIOCPKT_START 0x08 /* start output */ +#define TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */ +#define TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */ +#define TIOCSTOP _IO('t', 111) /* stop output, like ^S */ +#define TIOCSTART _IO('t', 110) /* start output, like ^Q */ +#define TIOCMSET _IOW('t', 109, int) /* set all modem bits */ +#define TIOCMBIS _IOW('t', 108, int) /* bis modem bits */ +#define TIOCMBIC _IOW('t', 107, int) /* bic modem bits */ +#define TIOCMGET _IOR('t', 106, int) /* get all modem bits */ +#define TIOCREMOTE _IOW('t', 105, int) /* remote input editing */ +#define TIOCGWINSZ _IOR('t', 104, struct winsize) /* get window size */ +#define TIOCSWINSZ _IOW('t', 103, struct winsize) /* set window size */ +#define TIOCUCNTL _IOW('t', 102, int) /* pty: set/clr usr cntl mode */ +/* SLIP (Serial Line IP) ioctl's */ +#define SLIOCGUNIT _IOR('t', 101, int) /* get slip unit number */ +#define SLIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */ +#define SLIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */ +#define SLIOCSATTACH _IOWR('t', 91, int) /* Attach slip i.f. to tty */ +#define UIOCCMD(n) _IO('u', n) /* usr cntl op "n" */ + +#define OTTYDISC 0 /* old, v7 std tty driver */ +#define NETLDISC 1 /* line discip for berk net */ +#define NTTYDISC 2 /* new tty discipline */ +#define TABLDISC 3 /* tablet discipline */ +#define SLIPDISC 4 /* serial IP discipline */ + +#define FIOCLEX _IO('f', 1) /* set close on exec */ +#define FIONCLEX _IO('f', 2) /* clear close on exec */ +/* another local */ + +#define FIONREAD _IOR('f', 127, int) /* get # bytes to read */ +#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */ +#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */ + +#define FIOSETOWN _IOW('f', 124, int) /* set owner */ +#define FIOGETOWN _IOR('f', 123, int) /* get owner */ +#define FIOASYNCQX _IOW('f', 122, int) /* set/clear async queueing */ + +/* socket i/o controls */ +#define SIOCSHIWAT _IOW('s', 0, int) /* set high watermark */ +#define SIOCGHIWAT _IOR('s', 1, int) /* get high watermark */ +#define SIOCSLOWAT _IOW('s', 2, int) /* set low watermark */ +#define SIOCGLOWAT _IOR('s', 3, int) /* get low watermark */ +#define SIOCATMARK _IOR('s', 7, int) /* at oob mark? */ +#define SIOCSPGRP _IOW('s', 8, int) /* set process group */ +#define SIOCGPGRP _IOR('s', 9, int) /* get process group */ + +#define SIOCADDRT (int)_IOW('r', 10, struct ortentry) /* add route */ +#define SIOCDELRT (int)_IOW('r', 11, struct ortentry) /* delete route */ + +#define SIOCSIFADDR (int)_IOW('i', 12, struct oifreq) /* set ifnet address */ +#define OSIOCGIFADDR (int)_IOWR('i',13, struct oifreq) /* get ifnet address */ +#define SIOCGIFADDR (int)_IOWR('i',33, struct oifreq) /* get ifnet address */ +#define SIOCSIFDSTADDR (int)_IOW('i', 14, struct oifreq) /* set p-p address */ +#define OSIOCGIFDSTADDR (int)_IOWR('i',15, struct oifreq) /* get p-p address */ +#define SIOCGIFDSTADDR (int)_IOWR('i',34, struct oifreq) /* get p-p address */ +#define SIOCSIFFLAGS (int)_IOW('i', 16, struct oifreq) /* set ifnet flags */ +#define SIOCGIFFLAGS (int)_IOWR('i',17, struct oifreq) /* get ifnet flags */ +#define OSIOCGIFBRDADDR (int)_IOWR('i',18, struct oifreq) /* get broadcast addr */ +#define SIOCGIFBRDADDR (int)_IOWR('i',35, struct oifreq) /* get broadcast addr */ +#define SIOCSIFBRDADDR (int)_IOW('i',19, struct oifreq) /* set broadcast addr */ +#define OSIOCGIFCONF (int)_IOWR('i',20, struct ifconf) /* get ifnet list */ +#define CSIOCGIFCONF (int)_IOWR('i',36, struct ifconf) /* get ifnet list */ +#define SIOCGIFCONF (int)_IOWR('i',69, struct ifconf) /* get ifnet list */ +#define OSIOCGIFNETMASK (int)_IOWR('i',21, struct oifreq) /* get net addr mask */ +#define SIOCGIFNETMASK (int)_IOWR('i',37, struct oifreq) /* get net addr mask */ +#define SIOCSIFNETMASK (int)_IOW('i',22, struct oifreq) /* set net addr mask */ +#define SIOCGIFMETRIC (int)_IOWR('i',23, struct oifreq) /* get IF metric */ +#define SIOCSIFMETRIC (int)_IOW('i',24, struct oifreq) /* set IF metric */ +#define SIOCDIFADDR (int)_IOW('i',25, struct oifreq) /* delete IF addr */ +#define SIOCAIFADDR (int)_IOW('i',26, struct ifaliasreq) /* add/chg IF alias */ +#define SIOCSIFSUBCHAN (int)_IOW('i',27, struct oifreq) /* set subchannel adr.*/ +#define SIOCSIFNETDUMP (int)_IOW('i',28, struct oifreq) /* set netdump fastwrt*/ + +#define SIOCSARP (int)_IOW('i', 30, struct arpreq) /* set arp entry */ +#define OSIOCGARP (int)_IOWR('i',31, struct arpreq) /* get arp entry */ +#define SIOCGARP (int)_IOWR('i',38, struct arpreq) /* get arp entry */ +#define SIOCDARP (int)_IOW('i', 32, struct arpreq) /* delete arp entry */ + +#define SIOCSIFOPTIONS (int)_IOW('i', 41, struct oifreq) /* set ifnet options */ +#define SIOCGIFOPTIONS (int)_IOWR('i',42, struct oifreq) /* get ifnet options */ +#define SIOCADDMULTI (int)_IOW('i', 49, struct ifreq) /* add multicast addr */ +#define SIOCDELMULTI (int)_IOW('i', 50, struct ifreq) /* del multicast addr */ +#define SIOCGETVIFCNT (int)_IOWR('u', 51, struct sioc_vif_req)/* vif pkt cnt */ +#define SIOCGETSGCNT (int)_IOWR('u', 52, struct sioc_sg_req) /* s,g pkt cnt */ + +#define SIOCADDNETID (int)_IOW('i',87, struct oifreq) /* set netids */ +#define SIOCSIFMTU (int)_IOW('i',88, struct oifreq) /* set mtu */ +#define SIOCGIFMTU (int)_IOWR('i',86, struct oifreq) /* get mtu */ + +#define SIOCSNETOPT (int)_IOW('i', 90, struct optreq) /* set network option */ +#define SIOCGNETOPT (int)_IOWR('i', 91, struct optreq) /* get network option */ +#define SIOCDNETOPT (int)_IOWR('i', 92, struct optreq) /* set default */ + +#define SIOCSX25XLATE (int)_IOW('i', 99, struct oifreq) /* set xlate tab */ +#define SIOCGX25XLATE (int)_IOWR('i',100, struct oifreq) /* get xlate tab */ +#define SIOCDX25XLATE (int)_IOW('i', 101, struct oifreq) /* delete xlate tab */ + +#define SIOCIFDETACH (int)_IOW('i', 102, struct ifreq) /* detach an ifnet */ +#define SIOCIFATTACH (int)_IOW('i', 103, struct ifreq) /* attach an ifnet */ + +#define SIOCGNMTUS (int)_IO('i',110) /* get NMTUs */ +#define SIOCGETMTUS (int)_IO('i',111) /* get common_mtus */ +#define SIOCADDMTU (int)_IOW('i',112, int) /* add mtu */ +#define SIOCDELMTU (int)_IOW('i',113, int) /* delete mtu */ + +#define SIOCGIFGIDLIST (int)_IO('i', 104) /* get gidlist */ +#define SIOCSIFGIDLIST (int)_IO('i', 105) /* set gidlist */ + +#define SIOCGSIZIFCONF (int)_IOR('i', 106, int) /* get size for SIOCGIFCONF */ + +#define SIOCIF_ATM_UBR (int)_IOW('i',120,struct ifreq) /* set ubr rate */ +#define SIOCIF_ATM_SNMPARP (int)_IOW('i',121,struct ifreq) /* atm snmp arp */ +#define SIOCIF_ATM_IDLE (int)_IOW('i',122,struct ifreq) /* set idle time */ +#define SIOCIF_ATM_DUMPARP (int)_IOW('i',123,struct ifreq) /* atm dump arp */ +#define SIOCIF_ATM_SVC (int)_IOW('i',124,struct ifreq) /* atmif init */ +#define SIOCIF_ATM_DARP (int)_IOW('i',125,struct ifreq) /* del atmarp */ +#define SIOCIF_ATM_GARP (int)_IOW('i',126,struct ifreq) /* get atmarp */ +#define SIOCIF_ATM_SARP (int)_IOW('i',127,struct ifreq) /* set atmarp */ + +#define SIOCGISNO (int)_IOWR('i',107, struct oifreq) /* get IF network options */ +#define SIOCSISNO (int)_IOW('i', 108, struct oifreq) /* set IF network options */ +#define SIOCGIFBAUDRATE (int)_IOWR('i', 109, struct oifreq) /* get ifnet's if_baudrate */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/poll.h b/ports/sysdeps/unix/sysv/aix/bits/poll.h new file mode 100644 index 000000000..b9f2f7155 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/poll.h @@ -0,0 +1,43 @@ +/* Copyright (C) 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_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 0x0001 /* There is data to read. */ +#define POLLPRI 0x0002 /* There is urgent data to read. */ +#define POLLOUT 0x0004 /* Writing now will not block. */ + +#ifdef __USE_XOPEN +/* These values are defined in XPG4.2. */ +# define POLLRDNORM 0x0010 /* Normal data may be read. */ +# define POLLRDBAND 0x0020 /* Priority data may be read. */ +# define POLLWRNORM POLLOUT /* Writing now will not block. */ +# define POLLWRBAND 0x0040 /* Priority data may be written. */ +#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 0x4000 /* Error condition. */ +#define POLLHUP 0x2000 /* Hung up. */ +#define POLLNVAL 0x8000 /* Invalid polling request. */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/resource.h b/ports/sysdeps/unix/sysv/aix/bits/resource.h new file mode 100644 index 000000000..cc851e8a0 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/resource.h @@ -0,0 +1,191 @@ +/* Bit values & structures for resource limits. AIX version. + Copyright (C) 1994, 1996-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_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 + + /* Address space limit (?) */ + RLIMIT_AS = 6, +#define RLIMIT_AS RLIMIT_AS + + /* 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 + + RLIM_NLIMITS = 10 +#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 ((long int)(~0UL >> 1)) +#else +# define RLIM_INFINITY 0x7fffffffffffffffLL +#endif + +#ifdef __USE_LARGEFILE64 +# define RLIM64_INFINITY 0x7fffffffffffffffLL +#endif + +#define RLIM_SAVED_MAX (RLIM_INFINITY - 1) +#define RLIM_SAVED_CUR (RLIM_INFINITY - 2) + + +/* 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 +}; diff --git a/ports/sysdeps/unix/sysv/aix/bits/setjmp.h b/ports/sysdeps/unix/sysv/aix/bits/setjmp.h new file mode 100644 index 000000000..82a58ae06 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/setjmp.h @@ -0,0 +1,46 @@ +/* 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. */ + +/* Define the machine-dependent type `jmp_buf'. PowerPC version. */ + +#ifndef _SETJMP_H +# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." +#endif + +/* The previous bits/setjmp.h had __jmp_buf defined as a structure. + We use an array of 'long int' instead, to make writing the + assembler easier. Naturally, user code should not depend on + either representation. */ + +#if defined __USE_MISC || defined _ASM +# define JB_GPR1 0 /* Also known as the stack pointer */ +# define JB_GPR2 1 +# define JB_LR 2 /* The address we will return to */ +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */ +# define JB_CR 21 /* Condition code registers. */ +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */ +#endif + +#ifndef _ASM +typedef long int __jmp_buf[64]; +#endif + +/* Test if longjmp to JMPBUF would unwind the frame + containing a local variable at ADDRESS. */ +#define _JMPBUF_UNWINDS(jmpbuf, address) \ + ((void *) (address) < (void *) (jmpbuf)[JB_GPR1]) diff --git a/ports/sysdeps/unix/sysv/aix/bits/sigaction.h b/ports/sysdeps/unix/sysv/aix/bits/sigaction.h new file mode 100644 index 000000000..55414b8f1 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/sigaction.h @@ -0,0 +1,72 @@ +/* The proper definitions for AIX'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; + }; + +/* Bits in `sa_flags'. */ +#define SA_NOCLDSTOP 4 /* Don't send SIGCHLD when children stop. */ +#define SA_NOCLDWAIT 0x400 /* Don't create on death of child. */ +#define SA_SIGINFO 0x100 /* Invoke signal-catching function with + three arguments instead of one. */ +#if defined __USE_UNIX98 || defined __USE_MISC +# define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */ +# define SA_RESTART 0x00000008 /* Restart syscall on signal return. */ +# define SA_NODEFER 0x00000200 /* Don't automatically block the signal when + its handler is being executed. */ +# define SA_RESETHAND 0x00000002 /* Reset to SIG_DFL on entry to handler. */ +#endif +#ifdef __USE_MISC +/* 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. */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/sigcontext.h b/ports/sysdeps/unix/sysv/aix/bits/sigcontext.h new file mode 100644 index 000000000..40bec1b71 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/sigcontext.h @@ -0,0 +1,32 @@ +/* Copyright (C) 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. */ + +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H +# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead." +#endif + +#include <sys/ucontext.h> + + +struct sigcontext +{ + int sc_onstack; /* Sigstack state to restore. */ + sigset_t sc_mask; /* Signal mask to restore. */ + int sc_uerror; /* u_error to restore. */ + struct mcontext_t sc_jmpbuf; /* Process context to restore. */ +}; diff --git a/ports/sysdeps/unix/sysv/aix/bits/signum.h b/ports/sysdeps/unix/sysv/aix/bits/signum.h new file mode 100644 index 000000000..67eb94960 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/signum.h @@ -0,0 +1,96 @@ +/* Signal number definitions. AIX version. + 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. */ + +#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. */ +# define SIG_CATCHE ((__sighandler_t) 3) +#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 SIGABRT /* Abort (terminal) process. */ +#define SIGEMT 7 /* EMT instruction. */ +#define SIGFPE 8 /* Floating-point exception (ANSI). */ +#define SIGKILL 9 /* Kill, unblockable (POSIX). */ +#define SIGBUS 10 /* BUS error (4.2 BSD). */ +#define SIGSEGV 11 /* Segmentation violation (ANSI). */ +#define SIGSYS 12 /* Bad system call. */ +#define SIGPIPE 13 /* Broken pipe (POSIX). */ +#define SIGALRM 14 /* Alarm clock (POSIX). */ +#define SIGTERM 15 /* Termination (ANSI). */ +#define SIGURG 16 /* Urgent condition on socket (4.2 BSD). */ +#define SIGIOINT SIGURG /* Printer to backend error signal. */ +#define SIGSTOP 17 /* Stop, unblockable (POSIX). */ +#define SIGTSTP 18 /* Keyboard stop (POSIX). */ +#define SIGCONT 19 /* Continue (POSIX). */ +#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ +#define SIGCHLD 20 /* Child status has changed (POSIX). */ +#define SIGTTIN 21 /* Background read from tty (POSIX). */ +#define SIGTTOU 22 /* Background write to tty (POSIX). */ +#define SIGIO 23 /* I/O now possible (4.2 BSD). */ +#define SIGAIO SIGIO /* Base LAN I/O. */ +#define SIGPTY SIGIO /* PTY I/O. */ +#define SIGPOLL SIGIO /* ANother I/O event. */ +#define SIGXCPU 24 /* CPU limit exceeded (4.2 BSD). */ +#define SIGXFSZ 25 /* File size limit exceeded (4.2 BSD). */ +#define SIGMSG 27 /* Input data is in the ring buffer. */ +#define SIGWINCH 28 /* Window size change (4.3 BSD, Sun). */ +#define SIGPWR 29 /* Power failure restart (System V). */ +#define SIGUSR1 30 /* User-defined signal 1 (POSIX). */ +#define SIGUSR2 31 /* User-defined signal 2 (POSIX). */ +#define SIGPROF 32 /* Profiling alarm clock (4.2 BSD). */ +#define SIGDANGER 33 /* System crash imminent. */ +#define SIGVTALRM 34 /* Virtual alarm clock (4.2 BSD). */ +#define SIGMIGRATE 35 /* Migrate process. */ +#define SIGPRE 36 /* Programming exception. */ +#define SIGVIRT 37 /* AIX virtual time alarm. */ +#define SIGARLM1 38 /* Reserved, don't use. */ +#define SIGWAITING 39 /* Reserved, don't use. */ +#define SIGCPUFAIL 59 /* Predictive de-configuration of processors.*/ +#define SIGKAP 60 /* Keep alive poll from native keyboard. */ +#define SIGGRANT SIGKAP /* Monitor mode granted. */ +#define SIGRETRACT 61 /* Monitor mode should be relinguished. */ +#define SIGSOUND 62 /* Sound control has completed. */ +#define SIGSAK 63 /* Secure attentation key. */ + +#define _NSIG 64 /* 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 888 +#define __SIGRTMAX 999 + +#endif /* <signal.h> included. */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/sigset.h b/ports/sysdeps/unix/sysv/aix/bits/sigset.h new file mode 100644 index 000000000..0dc6b40a7 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/sigset.h @@ -0,0 +1,125 @@ +/* __sig_atomic_t, __sigset_t, and related definitions. AIX version. + Copyright (C) 1991,1992,1994,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 _SIGSET_H_types +# define _SIGSET_H_types 1 + +typedef int __sig_atomic_t; + +/* A `sigset_t' has a bit for each signal. */ + +typedef struct + { + unsigned int __losigs; + unsigned int __hisigs; + } __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 int)))) + +# if defined __GNUC__ && __GNUC__ >= 2 +# define __sigemptyset(set) \ + (__extension__ ({ sigset_t *__set = (set); \ + __set->__losigs = __set->__hisigs = 0; \ + 0; })) +# define __sigfillset(set) \ + (__extension__ ({ sigset_t *__set = (set); \ + __set->__losigs = __set->__hisigs = ~0u; \ + 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__ ({ const sigset_t *__set = (set); \ + (__set->__losigs | __set->__hisigs) == 0; })) +# define __sigandset(dest, left, right) \ + (__extension__ ({ sigset_t *__dest = (dest); \ + const sigset_t *__left = (left); \ + const sigset_t *__right = (right); \ + __dest->__losigs = __left->__losigs & __right->__losigs; \ + __dest->__hisigs = __left->__hisigs & __right->__hisigs; \ + 0; })) +# define __sigorset(dest, left, right) \ + (__extension__ ({ sigset_t *__dest = (dest); \ + const sigset_t *__left = (left); \ + const sigset_t *__right = (right); \ + __dest->__losigs = __left->__losigs | __right->__losigs; \ + __dest->__hisigs = __left->__hisigs | __right->__hisigs; \ + 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 +_EXTERN_INLINE int +__sigismember (__const __sigset_t *__set, int __sig) +{ + unsigned int __mask = __sigmask (__sig); + + return ((__sig < 33 ? __set->__losigs : __set->__hisigs) & __mask ) ? 1 : 0; +} + +_EXTERN_INLINE int +__sigaddset (__sigset_t *__set, int __sig) +{ + unsigned int __mask = __sigmask (__sig); + + (__sig < 33 ? __set->__losigs : __set->__hisigs) |= __mask; + + return 0; +} + +_EXTERN_INLINE int +__sigdelset (__sigset_t *__set, int __sig) +{ + unsigned int __mask = __sigmask (__sig); + + (__sig < 33 ? __set->__losigs : __set->__hisigs) &= ~__mask; + + return 0; +} +# endif + + +#endif /* ! _SIGSET_H_fns. */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/sigstack.h b/ports/sysdeps/unix/sysv/aix/bits/sigstack.h new file mode 100644 index 000000000..cefd33c23 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/sigstack.h @@ -0,0 +1,46 @@ +/* sigstack, sigaltstack definitions. + Copyright (C) 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 _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 1024 + +/* System default stack size. */ +#define SIGSTKSZ 4096 diff --git a/ports/sysdeps/unix/sysv/aix/bits/socket.h b/ports/sysdeps/unix/sysv/aix/bits/socket.h new file mode 100644 index 000000000..1fdadfe08 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/socket.h @@ -0,0 +1,293 @@ +/* System-specific socket constants and types. AIX version. + Copyright (C) 1991,92,1994-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 __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_CONN_DGRAM = 6 /* Conneciton datagram. */ +#define SOCK_CONN_DGRAM SOCK_CONN_DGRAM +}; + +/* 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_IMPLINK 3 /* ARPAnet IMP addresses. */ +#define PF_PUP 4 /* PUP protocols (e.g., BSP). */ +#define PF_CHAOS 5 /* MIT CHAOS protocols. */ +#define PF_NS 6 /* XEROX NS protocols. */ +#define PF_ISO 7 /* ISO protocols. */ +#define PF_OSI PF_ISO +#define PF_ECMA 8 /* European Computer Manufacturers. */ +#define PF_DATAKIT 9 /* Datakit protocols. */ +#define PF_CCITT 10 /* CCITT protocols, X.25 etc. */ +#define PF_SNA 11 /* IBM SNA. */ +#define PF_DECnet 12 /* DECnet. */ +#define PF_DLI 13 /* DEC Direct data link interface. */ +#define PF_LAT 14 /* LAT. */ +#define PF_HYLINK 15 /* NSC Hyperchannel. */ +#define PF_APPLETALK 16 /* Apple Talk. */ +#define PF_NETLINK 17 /* Internet Routing Protocol. */ +#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */ +#define PF_LINK 18 /* Link layer interface. */ +#define PF_XTP 19 /* eXpress Transfer Protocol (no AF). */ +#define PF_INTF 20 /* Debugging use only. */ +#define PF_RIF 21 /* Raw interface. */ +#define PF_NETWARE 22 +#define PF_NDD 23 +#define PF_INET6 24 /* IPv6. */ +#define PF_MAX 30 /* 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_IMPLINK PF_IMPLINK +#define AF_PUP PF_PUP +#define AF_CHAOS PF_CHAOS +#define AF_NS PF_NS +#define AF_ISO PF_ISO +#define AF_OSI PF_OSI +#define AF_ECMA PF_ECMA +#define AF_DATAKIT PF_DATAKIT +#define AF_CCITT PF_CCITT +#define AF_SNA PF_SNA +#define AF_DECnet PF_DECnet +#define AF_DLI PF_DLI +#define AF_LAT PF_LAT +#define AF_HYLINK PF_HYLINK +#define AF_APPLETALK PF_APPLETALK +#define AF_NETLINK PF_NETLINK +#define AF_ROUTE PF_ROUTE +#define AF_LINK PF_LINK +#define AF_INTF PF_INTF +#define AF_RIF PF_RIF +#define AF_NETWARE PF_NETWARE +#define AF_NDD PF_NDD +#define AF_INET6 PF_INET6 +#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_SOCKET 0xffff + +/* Maximum queue length specifiable by listen. */ +#define SOMAXCONN 1024 + +/* 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 + MSG_EOR = 0x08, /* End of record. */ +#define MSG_EOR MSG_EOR + MSG_TRUNC = 0x10, +#define MSG_TRUNC MSG_TRUNC + MSG_CTRUNC = 0x20, /* Control data lost before delivery. */ +#define MSG_CTRUNC MSG_CTRUNC + MSG_WAITALL = 0x40, /* Wait for a full request. */ +#define MSG_WAITALL MSG_WAITALL + MSG_MPEG2 = 0x80, /* Message contain MPEG2 data. */ +#define MSG_MPEG2 MSG_MPEG2 + }; + + +/* Structure describing messages sent by + `sendmsg' and received by `recvmsg'. */ +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. */ + int msg_iovlen; /* Number of elements in the vector. */ + + void *msg_control; /* Ancillary data (eg BSD filedesc passing). */ + socklen_t msg_controllen; /* Ancillary data buffer length. */ + + int msg_flags; /* Flags on received message. */ + }; + +/* Structure used for storage of ancillary data object information. */ +struct cmsghdr + { + socklen_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) \ + & ~(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 * +__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW +{ + 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 + }; + +/* Options flags per socket. */ +#define SO_DEBUG 0x0001 /* Turn on debugging info recording. */ +#define SO_ACCEPTCONN 0x0002 /* Socket has had listen(). */ +#define SO_REUSEADDR 0x0004 /* Allow local address reuse. */ +#define SO_KEEPALIVE 0x0008 /* Keep connections alive. */ +#define SO_DONTROUTE 0x0010 /* Just use interface addresses. */ +#define SO_BROADCAST 0x0020 /* Permit sending of broadcast msgs. */ +#define SO_USELOOPBACK 0x0040 /* Bypass hardware when possible. */ +#define SO_LINGER 0x0080 /* Linger on close if data present. */ +#define SO_OOBINLINE 0x0100 /* Leave received OOB data in line. */ +#define SO_REUSEPORT 0x0200 /* Allow local address & port reuse. */ +#define SO_USE_IFBUFS 0x0400 /* Interface will supply buffers. */ +#define SO_CKSUMRECV 0x0800 /* Defer checksum until receive. */ +#define SO_NOREUSEADDR 0x1000 /* Prevent local address reuse. */ +#define SO_SNDBUF 0x1001 /* Send buffer size. */ +#define SO_RCVBUF 0x1002 /* Receive buffer size. */ +#define SO_SNDLOWAT 0x1003 /* Send low-water mark. */ +#define SO_RCVLOWAT 0x1004 /* Receive low-water mark. */ +#define SO_SNDTIMEO 0x1005 /* Send timeout. */ +#define SO_RCVTIMEO 0x1006 /* Receive timeout. */ +#define SO_ERROR 0x1007 /* Get error status and clear. */ +#define SO_TYPE 0x1008 /* Get socket type. */ +#define SO_KERNACCEPT 0x2000 /* Derive a in-kernel only socket. */ +#define SO_AUDIT 0x8000 /* Turn on socket auditing. */ + + +/* 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 */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/stat.h b/ports/sysdeps/unix/sysv/aix/bits/stat.h new file mode 100644 index 000000000..adcb1d101 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/stat.h @@ -0,0 +1,119 @@ +/* Copyright (C) 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_STAT_H +# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead." +#endif + +struct stat + { + __dev_t st_dev; /* Device. */ + __ino_t st_ino; /* File serial number. */ + __mode_t st_mode; /* File mode. */ + __nlink_t st_nlink; /* Link count. */ + unsigned short int st_flag; /* Flag word. */ + __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 + __off_t st_size; /* Size of file, in bytes. */ +#else + int st_ssize; /* Size of file, in bytes. */ +#endif + __time_t st_atime; /* Time of last access. */ + unsigned long int __unused1; + __time_t st_mtime; /* Time of last modification. */ + unsigned long int __unused2; + __time_t st_ctime; /* Time of last status change. */ + unsigned long int __unused3; + __blksize_t st_blksize; /* Optimal block size for I/O. */ + __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ + int st_vfstype; /* Type of the filesystem. */ + unsigned int st_vfs; /* Vfs number. */ + unsigned int st_type; /* Vnode type. */ + unsigned int st_gen; /* Inode generation number. */ + +#define _STATBUF_RESERVED_SPACE 9 + unsigned int st_reserved[_STATBUF_RESERVED_SPACE]; + +#ifdef __USE_FILE_OFFSET64 + unsigned int st_padto_ll; + __off64_t st_size; /* 64 bit file size in bytes. */ +#endif + }; + +#ifdef __USE_LARGEFILE64 +struct stat64 + { + __dev_t st_dev; /* Device. */ + __ino_t st_ino; /* File serial number. */ + __mode_t st_mode; /* File mode. */ + __nlink_t st_nlink; /* Link count. */ + unsigned short int st_flag; /* Flag word. */ + __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. */ + int st_ssize; /* Size of file, in bytes. */ + __time_t st_atime; /* Time of last access. */ + unsigned long int __unused1; + __time_t st_mtime; /* Time of last modification. */ + unsigned long int __unused2; + __time_t st_ctime; /* Time of last status change. */ + unsigned long int __unused3; + __blksize_t st_blksize; /* Optimal block size for I/O. */ + __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ + int st_vfstype; /* Type of the filesystem. */ + unsigned int st_vfs; /* Vfs number. */ + unsigned int st_type; /* Vnode type. */ + unsigned int st_gen; /* Inode generation number. */ + unsigned int st_reserved[_STATBUF_RESERVED_SPACE]; + unsigned int st_padto_ll; + __off64_t st_size; /* 64 bit file size in bytes. */ + }; +#endif + +/* Tell code we have these members. */ +#define _STATBUF_ST_BLKSIZE +#define _STATBUF_ST_RDEV + +/* 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. */ +#define __S_TYPEISMQ(buf) (0) +#define __S_TYPEISSEM(buf) (0) +#define __S_TYPEISSHM(buf) (0) + +/* 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. */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/statfs.h b/ports/sysdeps/unix/sysv/aix/bits/statfs.h new file mode 100644 index 000000000..0a1c0a5e6 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/statfs.h @@ -0,0 +1,77 @@ +/* Copyright (C) 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_STATFS_H +# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead." +#endif + +#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t*/ + +struct statfs + { + int f_version; + int f_type; + int f_bsize; + /* The following five elements have type `int' since AIX's fsfilcnt_t + and fsblkcnt_t types do not fit. */ + int f_blocks; + int f_bfree; + int f_bavail; + int f_files; + int f_ffree; + __fsid_t f_fsid; + int f_vfstype; + int f_fsize; + int f_vfsnumber; + int f_vfsoff; + int f_vfslen; + int f_vfsvers; + char f_fname[32]; + char f_fpack[32]; + int f_name_max; + }; + +#ifdef __USE_LARGEFILE64 +/* XXX There seems to be no 64-bit versio of this structure. */ +struct statfs64 + { + int f_version; + int f_type; + int f_bsize; + /* The following five elements have type `int' since AIX's fsfilcnt_t + and fsblkcnt_t types do not fit. */ + int f_blocks; + int f_bfree; + int f_bavail; + int f_files; + int f_ffree; + __fsid_t f_fsid; + int f_vfstype; + int f_fsize; + int f_vfsnumber; + int f_vfsoff; + int f_vfslen; + int f_vfsvers; + char f_fname[32]; + char f_fpack[32]; + int f_name_max; + }; +#endif + +/* Tell code we have these members. */ +#define _STATFS_F_NAME_MAX diff --git a/ports/sysdeps/unix/sysv/aix/bits/termios.h b/ports/sysdeps/unix/sysv/aix/bits/termios.h new file mode 100644 index 000000000..b178d9c1b --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/termios.h @@ -0,0 +1,189 @@ +/* termios type and macro definitions. AIX version. + Copyright (C) 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 _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 16 +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_cc[NCCS]; /* control characters */ + }; + +/* c_cc characters */ +#define VINTR 0 +#define VQUIT 1 +#define VERASE 2 +#define VKILL 3 +#define VEOF 4 +#define VEOL 5 +#define VSTART 7 +#define VSTOP 8 +#define VSUSP 9 +#define VMIN 4 +#define VTIME 5 +#define VEOL2 6 +#define VDSUSP 10 +#define VREPRINT 11 +#define VDISCARD 12 +#define VWERSE 13 +#define VWERASE VWERSE +#define VLNEXT 14 +#define VSTRT VSTART + +/* 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 IXON 0001000 +#define IXOFF 0002000 +#define IUCLC 0004000 +#define IXANY 0010000 +#define IMAXBEL 0200000 + +/* 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 CRDLY 0001400 +# define CR0 0000000 +# define CR1 0000400 +# define CR2 0001000 +# define CR3 0001400 +# define TABDLY 0006000 +# define TAB0 0000000 +# define TAB1 0002000 +# define TAB2 0004000 +# define TAB3 0006000 +# define BSDLY 0010000 +# define BS0 0000000 +# define BS1 0010000 +# define FFDLY 0020000 +# define FF0 0000000 +# define FF1 0020000 +# define NLDLY 0040000 +# define NL0 0000000 +# define NL1 0040000 +#endif + +#define VTDLY 0100000 +#define VT0 0000000 +#define VT1 0100000 + +/* c_cflag bit meaning */ +#ifdef __USE_MISC +# define CBAUD 0000017 +#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 CIBAUD 000003600000 /* input baud rate (not used) */ +# 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 0200000 +#ifdef __USE_MISC +# define ECHOCTL 0400000 +# define ECHOPRT 01000000 +# define ECHOKE 02000000 +# define FLUSHO 004000000 +# define PENDIN 04000000000 +#endif +#define IEXTEN 010000000 + +/* 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) diff --git a/ports/sysdeps/unix/sysv/aix/bits/types.h b/ports/sysdeps/unix/sysv/aix/bits/types.h new file mode 100644 index 000000000..12c3be730 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/types.h @@ -0,0 +1,136 @@ +/* Copyright (C) 1991,92,1994-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; use <sys/types.h> instead. + */ + +#ifndef _BITS_TYPES_H +#define _BITS_TYPES_H 1 + +#include <features.h> + +#define __need_NULL +#define __need_size_t +#include <stddef.h> + +/* Convenience types. */ +typedef unsigned char __u_char; +typedef unsigned short __u_short; +typedef unsigned int __u_int; +typedef unsigned long __u_long; +#ifdef __GNUC__ +__extension__ typedef unsigned long long int __u_quad_t; +__extension__ typedef long long int __quad_t; +#else +typedef struct + { + long int __val[2]; + } __quad_t; +typedef struct + { + __u_long __val[2]; + } __u_quad_t; +#endif +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; +#ifdef __GNUC__ +__extension__ typedef signed long long int __int64_t; +__extension__ typedef unsigned long long int __uint64_t; +#endif +typedef __quad_t *__qaddr_t; + +typedef __u_long __dev_t; /* Type of device numbers. */ +typedef __u_int __uid_t; /* Type of user identifications. */ +typedef __u_int __gid_t; /* Type of group identifications. */ +typedef __u_long __ino_t; /* Type of file serial numbers. */ +typedef __u_int __mode_t; /* Type of file attribute bitmasks. */ +typedef short int __nlink_t; /* Type of file link counts. */ +typedef long int __off_t; /* Type of file sizes and offsets. */ +typedef __quad_t __loff_t; /* Type of file sizes and offsets. */ +typedef int __pid_t; /* Type of process identifications. */ +typedef long int __ssize_t; /* Type of a byte count, or error. */ +typedef __u_long __rlim_t; /* Type of resource counts. */ +typedef __u_quad_t __rlim64_t; /* Type of resource counts (LFS). */ +typedef unsigned int __id_t; /* General type for ID. */ + +typedef struct + { + unsigned long int __val[2]; + } __fsid_t; /* Type of file system IDs. */ + +/* Everythin' else. */ +typedef long int __daddr_t; /* The type of a disk address. */ +typedef char *__caddr_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef int __suseconds_t; +typedef long int __swblk_t; /* Type of a swap block maybe? */ + +typedef int __clock_t; + +/* Clock ID used in clock and timer functions. */ +typedef int __clockid_t; + +/* Timer ID returned by `timer_create'. */ +typedef int __timer_t; + +/* Number of descriptors that can fit in an `fd_set'. */ +#define __FD_SETSIZE 1024 + + +typedef long int __key_t; + +/* Type to represent block size. */ +typedef int __blksize_t; + +/* Types from the Large File Support interface. */ + +/* Type to count number os disk blocks. */ +typedef int __blkcnt_t; +typedef __quad_t __blkcnt64_t; + +/* Type to count file system blocks. */ +typedef __u_long __fsblkcnt_t; +typedef __u_quad_t __fsblkcnt64_t; + +/* Type to count file system inodes. */ +typedef __u_long __fsfilcnt_t; +typedef __u_quad_t __fsfilcnt64_t; + +/* Type of file serial numbers. */ +typedef __u_quad_t __ino64_t; + +/* Type of file sizes and offsets. */ +typedef __loff_t __off64_t; + +/* Used in XTI. */ +typedef int __t_scalar_t; +typedef unsigned int __t_uscalar_t; + +/* Duplicates info from stdint.h but this is used in unistd.h. */ +typedef signed long __intptr_t; + +/* Duplicate info from sys/socket.h. */ +typedef unsigned int __socklen_t; + +#endif /* bits/types.h */ diff --git a/ports/sysdeps/unix/sysv/aix/bits/uio.h b/ports/sysdeps/unix/sysv/aix/bits/uio.h new file mode 100644 index 000000000..60781532a --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/uio.h @@ -0,0 +1,42 @@ +/* Copyright (C) 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_UIO_H +# error "Never include <bits/uio.h> directly; use <sys/uio.h> instead." +#endif + + +#include <sys/types.h> + + +/* Size of object which can be written atomically. + + This macro has different values in different kernel versions. The + latest versions of ther 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 16 + + +/* Structure for scatter/gather I/O. */ +struct iovec + { + void *iov_base; /* Pointer to data. */ + size_t iov_len; /* Length of data. */ + }; diff --git a/ports/sysdeps/unix/sysv/aix/bits/utmp.h b/ports/sysdeps/unix/sysv/aix/bits/utmp.h new file mode 100644 index 000000000..b78a2afda --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/utmp.h @@ -0,0 +1,73 @@ +/* The `struct utmp' type, describing entries in the utmp file. AIX. + Copyright (C) 1996, 1997, 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 _UTMP_H +# error "Never include <bits/utmp.h> directly; use <utmp.h> instead." +#endif + +#include <paths.h> +#include <sys/time.h> +#include <sys/types.h> + + +#define UT_LINESIZE 12 +#define UT_NAMESIZE 8 +#define UT_HOSTSIZE 16 + + +struct utmp + { +#define ut_name ut_user + char ut_user[UT_NAMESIZE]; + char ut_id[14]; + char ut_line[UT_LINESIZE]; + short int ut_type; + short int ut_pid; + struct exit_status + { + short int e_termination; + short int e_exit; + } ut_exit; + __time_t ut_time; + char ut_host[UT_HOSTSIZE]; + }; + + +/* Values for the `ut_type' field of a `struct utmp'. */ +#define EMPTY 0 /* No valid user accounting information. */ + +#define RUN_LVL 1 /* The system's runlevel. */ +#define BOOT_TIME 2 /* Time of system boot. */ +#define OLD_TIME 3 /* Time when system clock changed. */ +#define NEW_TIME 4 /* Time after system clock changed. */ + +#define INIT_PROCESS 5 /* Process spawned by the init process. */ +#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */ +#define USER_PROCESS 7 /* Normal process. */ +#define DEAD_PROCESS 8 /* Terminated process. */ + +#define ACCOUNTING 9 + + +/* Tell the user that we have a modern system with UT_HOST, UT_TYPE, and + UT_ID fields. */ +#define _HAVE_UT_TYPE 1 +#define _HAVE_UT_PID 1 +#define _HAVE_UT_ID 1 +#define _HAVE_UT_HOST 1 diff --git a/ports/sysdeps/unix/sysv/aix/bits/utmpx.h b/ports/sysdeps/unix/sysv/aix/bits/utmpx.h new file mode 100644 index 000000000..438b5f3a5 --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/utmpx.h @@ -0,0 +1,75 @@ +/* Structures and defenitions for the user accounting database. AIX. + 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 _UTMPX_H +# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead." +#endif + +#include <bits/types.h> +#include <sys/time.h> + + +#ifdef __USE_GNU +# include <paths.h> +# define _PATH_UTMPX _PATH_UTMP +# define _PATH_WTMPX _PATH_WTMP +#endif + + +#define __UT_LINESIZE 12 +#define __UT_NAMESIZE 8 +#define __UT_HOSTSIZE 16 + + +/* The structure describing an entry in the user accounting database. */ +struct utmpx +{ + char ut_user[__UT_NAMESIZE]; /* Username. */ + char ut_id[14]; /* Inittab ID. */ + char ut_line[__UT_LINESIZE]; /* Devicename. */ + short int ut_type; /* Type of login. */ + __pid_t ut_pid; /* Process ID of login process. */ + struct timeval ut_tv; /* Time entry was made. */ + char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ +}; + + +/* Values for the `ut_type' field of a `struct utmpx'. */ +#define EMPTY 0 /* No valid user accounting information. */ + +#define RUN_LVL 1 /* The system's runlevel. */ +#define BOOT_TIME 2 /* Time of system boot. */ +#define NEW_TIME 3 /* Time after system clock changed. */ +#define OLD_TIME 4 /* Time when system clock changed. */ + +#define INIT_PROCESS 5 /* Process spawned by the init process. */ +#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */ +#define USER_PROCESS 7 /* Normal process. */ +#define DEAD_PROCESS 8 /* Terminated process. */ + +#ifdef __USE_GNU +# define ACCOUNTING 9 /* System accounting. */ +#endif + +#define _HAVE_UT_TYPE 1 +#define _HAVE_UT_PID 1 +#define _HAVE_UT_ID 1 +#define _HAVE_UT_TV 1 +#define _HAVE_UT_HOST 1 + diff --git a/ports/sysdeps/unix/sysv/aix/bits/utsname.h b/ports/sysdeps/unix/sysv/aix/bits/utsname.h new file mode 100644 index 000000000..d238f5efd --- /dev/null +++ b/ports/sysdeps/unix/sysv/aix/bits/utsname.h @@ -0,0 +1,23 @@ +/* Copyright (C) 1997, 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 _SYS_UTSNAME_H +# error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead." +#endif + +#define _UTSNAME_LENGTH 32 |