2000-03-20  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/aix/*: Add initial code for port to AIX 4.3.
This commit is contained in:
Ulrich Drepper 2000-03-21 01:29:48 +00:00
parent db8409143e
commit 7e836977ea
116 changed files with 4765 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2000-03-20 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/aix/*: Add initial code for port to AIX 4.3.
2000-03-16 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h: New.

View File

View File

@ -0,0 +1,29 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <stdlib.h>
/* We define only thr alias introduced in ISO C99 because _exit itself
is a system call. */
void
_Exit (status)
int status;
{
_exit (status);
}

View File

@ -0,0 +1,29 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <assert.h>
#include <sys/socket.h>
extern int naccept (int s, void *uap_name, int *uap_anamelen);
int
accept (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len)
{
assert (sizeof (socklen_t) == sizeof (int));
return naccept (fd, addr.__sockaddr__, addr_len);
}

View File

@ -0,0 +1,10 @@
#include <unistd.h>
extern int accessx (const char *name, int type, int who);
int
__access (const char *name, int type)
{
return accessx (name, type, ACC_INVOKER);
}
strong_alias (__access, access)

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _ENDIAN_H
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif
#define __BYTE_ORDER __BIG_ENDIAN

View File

@ -0,0 +1,155 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* 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 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.*/
# ifdef _LIBC
# define __set_errno(val) errno = (val)
# endif
#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 */

View File

@ -0,0 +1,137 @@
/* O_*, F_*, FD_* bit values for Linux.
Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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
#ifdef __USE_BSD
# 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. */

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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
};

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* 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])

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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. */

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#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. */
};

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#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. */

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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. */

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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

View File

@ -0,0 +1,291 @@
/* System-specific socket constants and types. AIX version.
Copyright (C) 1991,92,94,95,96,97,98,99, 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef __BITS_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. */
typedef unsigned int socklen_t;
/* 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__ && defined __GNUC__ && __GNUC__ >= 2
unsigned char __cmsg_data[0]; /* Ancillary data. */
/* XXX Perhaps this should be removed. */
#endif
};
/* Ancillary data object manipulation macros. */
#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
# 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 */

View File

@ -0,0 +1,124 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _SYS_STAT_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
#endif
struct stat
{
__dev_t st_dev; /* Device. */
#ifndef __USE_FILE_OFFSET64
__ino_t st_ino; /* File serial number. */
#else
__ino64_t st_ino; /* File serial number. */
#endif
__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. */
#ifndef __USE_FILE_OFFSET64
__blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
#else
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
#endif
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. */
__ino64_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. */
__blkcnt64_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. */
/* These don't actually exist on System V, but having them doesn't hurt. */
#define __S_IFLNK 0120000 /* Symbolic link. */
#define __S_IFSOCK 0140000 /* Socket. */
/* 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. */

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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

View File

@ -0,0 +1,148 @@
/* Copyright (C) 1991,92,94,95,96,97,98,99 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#ifndef _BITS_TYPES_H
#define _BITS_TYPES_H 1
#include <features.h>
#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 __u_long __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 __u_long __useconds_t;
typedef int __suseconds_t;
typedef long int __swblk_t; /* Type of a swap block maybe? */
typedef int __clock_t;
/* One element in the file descriptor mask array. */
typedef unsigned long int __fd_mask;
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
#define __NFDBITS (8 * sizeof (__fd_mask))
#define __FDELT(d) ((d) / __NFDBITS)
#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
/* fd_set for select and pselect. */
typedef struct
{
/* XPG4.2 requires this member name. Otherwise avoid the name
from the global namespace. */
#ifdef __USE_XOPEN
__fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->fds_bits)
#else
__fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->__fds_bits)
#endif
} __fd_set;
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 int __intptr_t;
#endif /* bits/types.h */

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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. */
};

View File

@ -0,0 +1,73 @@
/* The `struct utmp' type, describing entries in the utmp file. AIX.
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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _UTMP_H
# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
#endif
#include <time.h>
#define _PATH_UTMP "/etc/utmp"
#define _PATH_WTMP "/var/adm/wtmp"
#define _PATH_LASTLOG "/var/adm/lastlog"
#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];
};
/* 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
/* Values for the `ut_type' field of a `struct utmp'. */
#define EMPTY 0
#define RUN_LVL 1
#define BOOT_TIME 2
#define OLD_TIME 3
#define NEW_TIME 4
#define INIT_PROCESS 5
#define LOGIN_PROCESS 6
#define USER_PROCESS 7
#define DEAD_PROCESS 8
#define ACCOUNTING 9

View File

@ -0,0 +1,67 @@
/* Structures and defenitions for the user accounting database. AIX.
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _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

View File

@ -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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _SYS_UTSNAME_H
# error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
#endif
#define _UTSNAME_LENGTH 32

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <unistd.h>
int
__brk (void *addr)
{
return brk (addr);
}

View File

@ -0,0 +1,25 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
int
__chown (const char *file, uid_t owner, gid_t group)
{
return chown (file, owner, group);
}

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <unistd.h>
int
__close (int fd)
{
return close (fd);
}

8
sysdeps/unix/sysv/aix/configure vendored Normal file
View File

@ -0,0 +1,8 @@
# Local configure fragment for sysdeps/unix/sysv/linux.
# On Linux, the default is to use libio instead of stdio.
test $stdio = default && stdio=libio
# Don't bother trying to generate any glue code to be compatible with the
# existing system library, because we are the only system library.
inhibit_glue=yes

View File

@ -0,0 +1,10 @@
sinclude(./aclocal.m4)dnl Autoconf lossage
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/unix/sysv/linux.
# On Linux, the default is to use libio instead of stdio.
test $stdio = default && stdio=libio
# Don't bother trying to generate any glue code to be compatible with the
# existing system library, because we are the only system library.
inhibit_glue=yes

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <sys/socket.h>
int
__connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t len)
{
return connect (fd, addr, len);
}

View File

@ -0,0 +1 @@
/* We don't need to define environ, the kernel does it. */

View File

@ -0,0 +1,5 @@
int
euidaccess (const char *name, int type)
{
return accessx (name, type, ACC_SELF);
}

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <unistd.h>
int
__execve (const char *path, char *const argv[], char *const envp[])
{
return execve (path, argv, envp);
}

View File

@ -0,0 +1,25 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
int
__fchown (int fds, uid_t owner, gid_t group)
{
return fchown (fds, owner, group);
}

View File

@ -0,0 +1,40 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <fcntl.h>
#include <stdarg.h>
extern int kfcntl (int fdes, int cmd, unsigned long int arg);
int
__fcntl (int fdes, int cmd, ...)
{
va_list va;
int res;
unsigned long int arg;
va_start (va, cmd);
arg = va_arg (va, unsigned long int);
res = kfcntl (fdes, cmd, arg);
va_end (va);
return res;
}
strong_alias (__fcntl, fcntl)

View File

@ -0,0 +1,31 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
#define _FDATASYNC 0x00400000
#define FDATASYNC _FDATASYNC
extern int kfsync_range (int fd, int how, long long int off,
long long int len);
int
fdatasync (int fd)
{
return kfsync_range (fd, FDATASYNC, 0, 0);
}

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
pid_t
__fork (void)
{
return kfork ();
}
strong_alias (__fork, fork)

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/statfs.h>
extern int fstatfs (int fd, struct statfs *buf);
int
__fstatfs (int fd, struct statfs *buf)
{
return fstatfs (fd, buf);
}

View File

@ -0,0 +1,31 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
#define _FSYNC 0x00000010
#define FFILESYNC _FSYNC
extern int kfsync_range (int fd, int how, long long int off,
long long int len);
int
fsync (int fd)
{
return kfsync_range (fd, FFILESYNC, 0, 0);
}

View File

@ -0,0 +1,28 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int kftruncate (int fd, long long int length);
int
__ftruncate (int fd, off_t length)
{
return kftruncate (fd, length);
}
strong_alias (__ftruncate, ftruncate)

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int kftruncate (int fd, long long int length);
int
ftruncate64 (int fd, off64_t length)
{
return kftruncate (fd, length);
}

View File

@ -0,0 +1,31 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <assert.h>
#include <sys/stat.h>
#define STX_NORMAL 0x00
extern int fstatx (int fd, struct stat *st, int len, int cmd);
int
__fxstat (int ver, int fd, struct stat *st)
{
assert (ver == 0);
return fstatx (fd, st, sizeof (*st), STX_NORMAL);
}

View File

@ -0,0 +1,32 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <assert.h>
#include <sys/stat.h>
#define STX_NORMAL 0x00
#define STX_64 0x08
extern int fstatx (int fd, struct stat64 *st, int len, int cmd);
int
__fxstat64 (int ver, int fd, struct stat64 *st)
{
assert (ver == 0);
return fstatx (fd, st, sizeof (*st), STX_NORMAL | STX_64);
}

View File

@ -0,0 +1,28 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <dirent.h>
#include <sys/types.h>
extern int getdirent (int fd, char *buf, size_t count);
ssize_t
__getdents (int fd, char *buf, size_t count)
{
return getdirent (fd, buf, count);
}

View File

@ -0,0 +1,29 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? If so #define ID_EFFECTIVE */
#include <sys/id.h>
gid_t
__getegid (void)
{
return getgidx (ID_EFFECTIVE);
}
strong_alias (__getegid, getegid)

View File

@ -0,0 +1,29 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? If so #define ID_EFFECTIVE */
#include <sys/id.h>
uid_t
__geteuid (void)
{
return getuidx (ID_EFFECTIVE);
}
strong_alias (__geteuid, geteuid)

View File

@ -0,0 +1,30 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? If so #define ID_REAL */
#include <sys/id.h>
extern gid_t getgidx (int which);
gid_t
__getgid (void)
{
return getgidx (ID_REAL);
}
strong_alias (__getgid, getgid)

View File

@ -0,0 +1,27 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/socket.h>
extern int ngetpeername (int s, void *uap_asa, int *uap_alen);
int
getpeername (int fd, __SOCKADDR_ARG addr, socklen_t *len)
{
return ngetpeername (fd, addr.__sockaddr__, len);
}

View File

@ -0,0 +1,28 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int kgetpgidx (pid_t pid);
int
__getgpid (pid_t pid)
{
return kgetpgidx (pid);
}
strong_alias (__getpgid, getpgid)

View File

@ -0,0 +1 @@
/* This function is available as a system call. */

View File

@ -0,0 +1,6 @@
/* This is a system call. We only have to provide the wrapper. */
int
__getpid (void)
{
return getpid ();
}

View File

@ -0,0 +1 @@
/* This is a system call. */

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int kgetsid (pid_t pid);
int
getsid (pid_t pid)
{
return kgetsid (pid);
}

View File

@ -0,0 +1,27 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/socket.h>
extern int ngetsockname (int s, void *uap_asa, int *uap_alen);
int
getsockname (int fd, __SOCKADDR_ARG addr, socklen_t *len)
{
return ngetsockname (fd, addr.__sockaddr__, len);
}

View File

@ -0,0 +1,30 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? If so #define ID_REAL */
#include <sys/id.h>
extern uid_t getuidx (int which);
uid_t
__getuid (void)
{
return getuidx (ID_REAL);
}
strong_alias (__getuid, getuid)

View File

@ -0,0 +1,31 @@
#ifndef __GNU_LIB_NAMES_H
#define __GNU_LIB_NAMES_H 1
#define LIBBROKENLOCALE_SO "libBrokenLocale.a"
#define LIBCRYPT_SO "libcrypt.a"
#define LIBC_SO "libc.a"
#define LIBDB1_SO "libdb1.a"
#define LIBDB_SO "libdb.a"
#define LIBDL_SO "libdl.a"
#define LIBM_SO "libm.a"
#define LIBNOVERSION_SO "libNoVersion.a"
#define LIBNSL_SO "libnsl.a"
#define LIBNSS1_COMPAT_SO "libnss1_compat.a"
#define LIBNSS1_DB_SO "libnss1_db.a"
#define LIBNSS1_DNS_SO "libnss1_dns.a"
#define LIBNSS1_FILES_SO "libnss1_files.a"
#define LIBNSS1_NIS_SO "libnss1_nis.a"
#define LIBNSS_COMPAT_SO "libnss_compat.a"
#define LIBNSS_DB_SO "libnss_db.a"
#define LIBNSS_DNS_SO "libnss_dns.a"
#define LIBNSS_FILES_SO "libnss_files.a"
#define LIBNSS_HESIOD_SO "libnss_hesiod.a"
#define LIBNSS_LDAP_SO "libnss_ldap.a"
#define LIBNSS_NISPLUS_SO "libnss_nisplus.a"
#define LIBNSS_NIS_SO "libnss_nis.a"
#define LIBPTHREAD_SO "libpthread.a"
#define LIBRESOLV_SO "libresolv.a"
#define LIBRT_SO "librt.a"
#define LIBUTIL_SO "libutil.a"
#endif /* gnu/lib-names.h */

View File

@ -0,0 +1,43 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <stdarg.h>
#include <sys/ioctl.h>
extern int kioctl (int fdes, int cmd, unsigned long int arg,
unsigned long int ext);
int
__ioctl (int fdes, unsigned long int cmd, ...)
{
va_list va;
int res;
unsigned long int arg;
unsigned long int ext;
va_start (va, cmd);
arg = va_arg (va, unsigned long int);
ext = va_arg (va, unsigned long int);
res = kioctl (fdes, cmd, arg, ext);
va_end (va);
return res;
}
strong_alias (__ioctl, ioctl)

View File

@ -0,0 +1,25 @@
/* Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This file contains prototypes for the "functions" exported by /unix
on AIX. */
#include <sys/types.h>
extern ssize_t kwrite (int, const void *, size_t);

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <unistd.h>
int
__kill (pid_t pid, int sig)
{
return kill (pid, sig);
}

View File

@ -0,0 +1,25 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
int
__lchown (const char *file, uid_t owner, gid_t group)
{
return lchown (file, owner, group);
}

View File

@ -0,0 +1,20 @@
/* We don't need the usual code since we are using the AIX crt code. */
/* This function is called in the AIX crt0. */
void
__mod_init (void)
{
/* XXX What has to be done? */
}
/* This variable is reference in the AIX crt0 code.
XXX Since I don't know how it is used make it a pointer to a function. */
void *__crt0v = __mod_init;
/* XXX Another weird function from the C library. I have no idea what
it does but it is needed by libgcc. */
void
_savef14 (void)
{
}

View File

@ -0,0 +1,125 @@
/* Convert the error number the AIX kernel returns to what the Linux
application expects. */
#include <errno.h>
#include "linux-errno.h"
static int mapping[] =
{
[EPERM] = LINUX_EPERM,
[ENOENT] = LINUX_ENOENT,
[ESRCH] = LINUX_ESRCH,
[EINTR] = LINUX_EINTR,
[EIO] = LINUX_EIO,
[ENXIO] = LINUX_ENXIO,
[E2BIG] = LINUX_E2BIG,
[ENOEXEC] = LINUX_ENOEXEC,
[EBADF] = LINUX_EBADF,
[ECHILD] = LINUX_ECHILD,
[EAGAIN] = LINUX_EAGAIN,
[ENOMEM] = LINUX_ENOMEM,
[EACCES] = LINUX_EACCES,
[EFAULT] = LINUX_EFAULT,
[ENOTBLK] = LINUX_ENOTBLK,
[EBUSY] = LINUX_EBUSY,
[EEXIST] = LINUX_EEXIST,
[EXDEV] = LINUX_EXDEV,
[ENODEV] = LINUX_ENODEV,
[ENOTDIR] = LINUX_ENOTDIR,
[EISDIR] = LINUX_EISDIR,
[EINVAL] = LINUX_EINVAL,
[ENFILE] = LINUX_ENFILE,
[EMFILE] = LINUX_EMFILE,
[ENOTTY] = LINUX_ENOTTY,
[ETXTBSY] = LINUX_ETXTBSY,
[EFBIG] = LINUX_EFBIG,
[ENOSPC] = LINUX_ENOSPC,
[EIDRM] = LINUX_EIDRM,
[ECHRNG] = LINUX_ECHRNG,
[EL2NSYNC] = LINUX_EL2NSYNC,
[EL3HLT] = LINUX_EL3HLT,
[EL3RST] = LINUX_EL3RST,
[ELNRNG] = LINUX_ELNRNG,
[EUNATCH] = LINUX_EUNATCH,
[ENOCSI] = LINUX_ENOCSI,
[EL2HLT] = LINUX_EL2HLT,
[EDEADLK] = LINUX_EDEADLK,
[ENOTREADY] = LINUX_ENOTREADY,
// EWPROTECT: no Linux equivalent
// EFORMAT: no Linux equivalent
[ENOLCK] = LINUX_ENOLCK,
// ENOCONNECT: No Linux equivalent
[ESTALE] = LINUX_ESTALE,
// EDIST: no Linux equivalent
[54] = LINUX_EAGAIN, // EWOULDBLOCK
[EINPROGRESS] = LINUX_EINPROGRESS,
[EALREADY] = LINUX_EALREADY,
[ENOTSOCK] = LINUX_ENOTSOCK,
[EDESTADDRREQ] = LINUX_EDESTADDRREQ,
[EMSGSIZE] = LINUX_EMSGSIZE,
[EPROTOTYPE] = LINUX_EPROTOTYPE,
[ENOPROTOOPT] = LINUX_ENOPROTOOPT,
[EPROTONOSUPPORT] = LINUX_EPROTONOSUPPORT,
[ESOCKTNOSUPPORT] = LINUX_ESOCKTNOSUPPORT,
[EOPNOTSUPP] = LINUX_EOPNOTSUPP,
[EPFNOSUPPORT] = LINUX_EPFNOSUPPORT,
[EAFNOSUPPORT] = LINUX_EAFNOSUPPORT,
[EADDRINUSE] = LINUX_EADDRINUSE,
[EADDRNOTAVAIL] = LINUX_EADDRNOTAVAIL,
[ENETDOWN] = LINUX_ENETDOWN,
[ENETUNREACH] = LINUX_ENETUNREACH,
[ENETRESET] = LINUX_ENETRESET,
[ECONNABORTED] = LINUX_ECONNABORTED,
[ECONNRESET] = LINUX_ECONNRESET,
[ENOBUFS] = LINUX_ENOBUFS,
[EISCONN] = LINUX_EISCONN,
[ENOTCONN] = LINUX_ENOTCONN,
[ESHUTDOWN] = LINUX_ESHUTDOWN,
[ETIMEDOUT] = LINUX_ETIMEDOUT,
[ECONNREFUSED] = LINUX_ECONNREFUSED,
[EHOSTDOWN] = LINUX_EHOSTDOWN,
[EHOSTUNREACH] = LINUX_EHOSTUNREACH,
[ERESTART] = LINUX_ERESTART,
[EPROCLIM] = LINUX_EPROCLIM,
[EUSERS] = LINUX_EUSERS,
[ELOOP] = LINUX_ELOOP,
[ENAMETOOLONG] = LINUX_ENAMETOOLONG,
[87] = LINUX_ENOTEMPTY, // ENOTEMPTY
[EDQUOT] = LINUX_EDQUOT,
[ECORRUPT] = LINUX_ECORRUPT,
[EREMOTE] = LINUX_EREMOTE,
[ENOSYS] = LINUX_ENOSYS,
[EMEDIA] = LINUX_EMEDIA,
[ESOFT] = LINUX_ESOFT,
[ENOATTR] = LINUX_ENOATTR,
[ESAD] = LINUX_ESAD,
// ENOTRUST: no Linux equivalent
[ETOOMANYREFS] = LINUX_ETOOMANYREFS,
[EILSEQ] = LINUX_EILSEQ,
[ECANCELED] = LINUX_ECANCELED,
[ENOSR] = LINUX_ENOSR,
[ETIME] = LINUX_ETIME,
[EBADMSG] = LINUX_EBADMSG,
[EPROTO] = LINUX_EPROTO,
[ENODATA] = LINUX_ENODATA,
[ENOSTR] = LINUX_ENOSTR,
[ENOTSUP] = LINUX_ENOTSUP,
[EMULTIHOP] = LINUX_EMULTIHOP,
[ENOLINK] = LINUX_ENOLINK,
[EOVERFLOW] = LINUX_EOVERFLOW
};
int
__errno_aix_to_linux (int err)
{
int conv;
if (err >= 0 && err < (sizeof (mapping) / sizeof (mapping[0]))
&& ((conv = mapping[err]) != 0 || err == 0))
return conv;
/* The error value is not known. Create a special value which can
be easily recognized as an invalid result. */
return 512 + err;
}

View File

@ -0,0 +1,135 @@
#ifndef _LINUX_ERRNO_H
#define _LINUX_ERRNO_H
#define LINUX_EPERM 1
#define LINUX_ENOENT 2
#define LINUX_ESRCH 3
#define LINUX_EINTR 4
#define LINUX_EIO 5
#define LINUX_ENXIO 6
#define LINUX_E2BIG 7
#define LINUX_ENOEXEC 8
#define LINUX_EBADF 9
#define LINUX_ECHILD 10
#define LINUX_EAGAIN 11
#define LINUX_ENOMEM 12
#define LINUX_EACCES 13
#define LINUX_EFAULT 14
#define LINUX_ENOTBLK 15
#define LINUX_EBUSY 16
#define LINUX_EEXIST 17
#define LINUX_EXDEV 18
#define LINUX_ENODEV 19
#define LINUX_ENOTDIR 20
#define LINUX_EISDIR 21
#define LINUX_EINVAL 22
#define LINUX_ENFILE 23
#define LINUX_EMFILE 24
#define LINUX_ENOTTY 25
#define LINUX_ETXTBSY 26
#define LINUX_EFBIG 27
#define LINUX_ENOSPC 28
#define LINUX_ESPIPE 29
#define LINUX_EROFS 30
#define LINUX_EMLINK 31
#define LINUX_EPIPE 32
#define LINUX_EDOM 33
#define LINUX_ERANGE 34
#define LINUX_EDEADLK 35
#define LINUX_ENAMETOOLONG 36
#define LINUX_ENOLCK 37
#define LINUX_ENOSYS 38
#define LINUX_ENOTEMPTY 39
#define LINUX_ELOOP 40
#define LINUX_ENOMSG 42
#define LINUX_EIDRM 43
#define LINUX_ECHRNG 44
#define LINUX_EL2NSYNC 45
#define LINUX_EL3HLT 46
#define LINUX_EL3RST 47
#define LINUX_ELNRNG 48
#define LINUX_EUNATCH 49
#define LINUX_ENOCSI 50
#define LINUX_EL2HLT 51
#define LINUX_EBADE 52
#define LINUX_EBADR 53
#define LINUX_EXFULL 54
#define LINUX_ENOANO 55
#define LINUX_EBADRQC 56
#define LINUX_EBADSLT 57
#define LINUX_EDEADLOCK 58
#define LINUX_EBFONT 59
#define LINUX_ENOSTR 60
#define LINUX_ENODATA 61
#define LINUX_ETIME 62
#define LINUX_ENOSR 63
#define LINUX_ENONET 64
#define LINUX_ENOPKG 65
#define LINUX_EREMOTE 66
#define LINUX_ENOLINK 67
#define LINUX_EADV 68
#define LINUX_ESRMNT 69
#define LINUX_ECOMM 70
#define LINUX_EPROTO 71
#define LINUX_EMULTIHOP 72
#define LINUX_EDOTDOT 73
#define LINUX_EBADMSG 74
#define LINUX_EOVERFLOW 75
#define LINUX_ENOTUNIQ 76
#define LINUX_EBADFD 77
#define LINUX_EREMCHG 78
#define LINUX_ELIBACC 79
#define LINUX_ELIBBAD 80
#define LINUX_ELIBSCN 81
#define LINUX_ELIBMAX 82
#define LINUX_ELIBEXEC 83
#define LINUX_EILSEQ 84
#define LINUX_ERESTART 85
#define LINUX_ESTRPIPE 86
#define LINUX_EUSERS 87
#define LINUX_ENOTSOCK 88
#define LINUX_EDESTADDRREQ 89
#define LINUX_EMSGSIZE 90
#define LINUX_EPROTOTYPE 91
#define LINUX_ENOPROTOOPT 92
#define LINUX_EPROTONOSUPPORT 93
#define LINUX_ESOCKTNOSUPPORT 94
#define LINUX_EOPNOTSUPP 95
#define LINUX_EPFNOSUPPORT 96
#define LINUX_EAFNOSUPPORT 97
#define LINUX_EADDRINUSE 98
#define LINUX_EADDRNOTAVAIL 99
#define LINUX_ENETDOWN 100
#define LINUX_ENETUNREACH 101
#define LINUX_ENETRESET 102
#define LINUX_ECONNABORTED 103
#define LINUX_ECONNRESET 104
#define LINUX_ENOBUFS 105
#define LINUX_EISCONN 106
#define LINUX_ENOTCONN 107
#define LINUX_ESHUTDOWN 108
#define LINUX_ETOOMANYREFS 109
#define LINUX_ETIMEDOUT 110
#define LINUX_ECONNREFUSED 111
#define LINUX_EHOSTDOWN 112
#define LINUX_EHOSTUNREACH 113
#define LINUX_EALREADY 114
#define LINUX_EINPROGRESS 115
#define LINUX_ESTALE 116
#define LINUX_EUCLEAN 117
#define LINUX_ENOTNAM 118
#define LINUX_ENAVAIL 119
#define LINUX_EISNAM 120
#define LINUX_EREMOTEIO 121
#define LINUX_EDQUOT 122
#define LINUX_ENOMEDIUM 123
#define LINUX_EMEDIUMTYPE 124
/* Should never be seen by user programs */
#define LINUX_ERESTARTSYS 512
#define LINUX_ERESTARTNOINTR 513
#define LINUX_ERESTARTNOHAND 514
#define LINUX_ENOIOCTLCMD 515
#endif

View File

@ -0,0 +1,131 @@
/* Copyright (C) 1992, 95, 96, 97, 98, 99, 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _SYS_STAT_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
#endif
/* Versions of the `struct stat' data structure. */
#define _STAT_VER_LINUX_OLD 1
#define _STAT_VER_KERNEL 1
#define _STAT_VER_SVR4 2
#define _STAT_VER_LINUX 3
#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
/* Versions of the `xmknod' interface. */
#define _MKNOD_VER_LINUX 1
#define _MKNOD_VER_SVR4 2
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
struct stat
{
__dev_t st_dev; /* Device. */
unsigned short int __pad1;
#ifndef __USE_FILE_OFFSET64
__ino_t st_ino; /* File serial number. */
#else
__ino64_t st_ino; /* File serial number. */
#endif
__mode_t st_mode; /* File mode. */
__nlink_t st_nlink; /* Link count. */
__uid_t st_uid; /* User ID of the file's owner. */
__gid_t st_gid; /* Group ID of the file's group.*/
__dev_t st_rdev; /* Device number, if device. */
unsigned short int __pad2;
#ifndef __USE_FILE_OFFSET64
__off_t st_size; /* Size of file, in bytes. */
#else
__off64_t st_size; /* Size of file, in bytes. */
#endif
__blksize_t st_blksize; /* Optimal block size for I/O. */
#ifndef __USE_FILE_OFFSET64
__blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
#else
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
#endif
__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;
unsigned long int __unused4;
unsigned long int __unused5;
};
#ifdef __USE_LARGEFILE64
struct stat64
{
__dev_t st_dev; /* Device. */
unsigned short int __pad1;
__ino64_t st_ino; /* File serial number. */
__mode_t st_mode; /* File mode. */
__nlink_t st_nlink; /* Link count. */
__uid_t st_uid; /* User ID of the file's owner. */
__gid_t st_gid; /* Group ID of the file's group.*/
__dev_t st_rdev; /* Device number, if device. */
unsigned short int __pad2;
__off64_t st_size; /* Size of file, in bytes. */
__blksize_t st_blksize; /* Optimal block size for I/O. */
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
__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;
unsigned long int __unused4;
unsigned long int __unused5;
};
#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. */
/* These don't actually exist on System V, but having them doesn't hurt. */
#define __S_IFLNK 0120000 /* Symbolic link. */
#define __S_IFSOCK 0140000 /* Socket. */
/* 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. */
/* Thi macro (with a different name) is normally in <sys/sysmacros.h>. */
#define linux_makedev(major, minor) (((major) << 8 | (minor)))

View File

@ -0,0 +1,35 @@
void
__stat_aix_to_linux (const struct stat *aixstat, struct stat *linuxstat)
{
linuxstat->st_dev = linux_makedev (major (aixstat->st_dev),
minor (aixstat->st_dev));
linuxstat->st_ino = aixstat->st_ino;
/* The following assumes that the mode values are the same on AIX
and Linux which is true in the moment. */
linuxstat->st_mode = aixstat->st_mode;
linuxstat->st_nlink = aixstat->st_nlink;
/* There is no st_flag field in Linux. */
linuxstat->st_uid = aixstat->st_uid;
linuxstat->st_gid = aixstat->st_gid;
linuxstat->st_rdev = linux_makedev (major (aixstat->st_rdev),
minor (aixstat->st_rdev));
linuxstat->st_size = aixstat->st_size;
linuxstat->st_atime = aixstat->st_atime;
linuxstat->st_mtime = aixstat->st_mtime;
linuxstat->st_ctime = aixstat->st_ctime;
linuxstat->st_blksize = aixstat->st_blksize;
linuxstat->st_blocks = aixstat->st_blocks;
/* There is no st_vfstype in Linux. */
/* There is no st_vfs in Linux. */
/* There is no st_type in Linux. */
/* There is no st_gen in Linux. */
/* File in the padding values with repeatable values. */
linuxstat->__pad1 = 0;
linuxstat->__pad2 = 0;
linuxstat->__unused1 = 0;
linuxstat->__unused2 = 0;
linuxstat->__unused3 = 0;
linuxstat->__unused4 = 0;
linuxstat->__unused5 = 0;
}

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int klockf (int fd, int function, long long int size);
int
lockf (int fd, int cmd, off_t len)
{
return klockf (fd, cmd, len);
}

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int klockf (int fd, int function, long long int size);
int
lockf64 (int fd, int cmd, off64_t len)
{
return klockf (fd, cmd, len);
}

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <unistd.h>
off_t
__lseek (int fd, off_t offset, int whence)
{
return lseek (fd, offset, whence);
}

View File

@ -0,0 +1,35 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int klseek (int fd, long long int offset, int sbase,
long long int *new_offp);
off64_t
__libc_lseek64 (int fd, off64_t offset, int whence)
{
long long int res;
if (klseek (fd, offset, whence, &res) < 0)
res = -1ll;
return res;
}
strong_alias (__libc_lseek64, __lseek64)
strong_alias (__libc_lseek64, lseek64)

View File

@ -0,0 +1,33 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <assert.h>
#include <sys/stat.h>
/* this is #define'd in <sys/stat.h> - why #define it again?
#define STX_LINK 0x01
*/
extern int statx (const char *pathname, struct stat *st, int len, int cmd);
int
__lxstat (int ver, const char *pathname, struct stat *st)
{
assert (ver == 0);
return statx (pathname, st, sizeof (*st), STX_LINK);
}

View File

@ -0,0 +1,34 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <assert.h>
#include <sys/stat.h>
/* these are #define'd in <sys/stat.h> why #define them again?
#define STX_LINK 0x01
#define STX_64 0x08
*/
extern int statx (const char *pathname, struct stat64 *st, int len, int cmd);
int
__lxstat64 (int ver, const char *pathname, struct stat64 *st)
{
assert (ver == 0);
return statx (pathname, st, sizeof (*st), STX_LINK | STX_64);
}

View File

@ -0,0 +1,9 @@
/* This is a system call. We only have to provide the wrapper. */
#include <sys/mman.h>
#include <sys/types.h>
void *
__mmap (void *addr, size_t len, int prot, int flags, int fd, off_t offset)
{
return mmap (addr, len, prot, flags, fd, offset);
}

View File

@ -0,0 +1,30 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/mman.h>
#include <sys/types.h>
extern int kmmap (void *addr, size_t len, int prot, int flags, int fd,
long long int offset);
void *
__mmap64 (void *addr, size_t len, int prot, int flags, int fd, off64_t offset)
{
return kmmap (addr, len, prot, flags, fd, offset);
}
strong_alias (__mmap64, mmap64)

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <sys/mman.h>
int
__munmap (void *addr, size_t len)
{
return munmap (addr, len);
}

View File

@ -0,0 +1,41 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <assert.h>
#include <sys/time.h>
#include <sys/types.h>
/* this is declared in <sys/time.h> not <time.h > */
#if 0
struct timestruc_t
{
time_t tv_sec; /* seconds. */
suseconds_t tv_nsec; /* and nanoseconds. */
};
#endif
extern int _nsleep (struct timestruc_t *rqtp, struct timestruc_t *rmtp);
int
__libc_nanosleep (const struct timespec *req, struct timespec *rem)
{
assert (sizeof (struct timestruc_t) == sizeof (*req));
return _nsleep ((struct timestruc_t *) req, (struct timestruc_t *) rem);
}
strong_alias (__libc_nanosleep, __nanosleep)
strong_alias (__libc_nanosleep, nanosleep)

View File

@ -0,0 +1,37 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <fcntl.h>
#include <stdarg.h>
#include <unistd.h>
int
__open (const char *file, int oflag, ...)
{
int mode = 0;
if (oflag & O_CREAT)
{
va_list arg;
va_start (arg, oflag);
mode = va_arg (arg, int);
va_end (arg);
}
return open (file, oflag, mode);
}

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int kpread (int fd, void *buf, size_t len, long long int off);
ssize_t
__pread (int fd, void *buf, size_t len, off_t off)
{
return kpread (fd, buf, len, off);
}

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int kpread (int fd, void *buf, size_t len, long long int off);
ssize_t
__pread64 (int fd, void *buf, size_t len, off64_t off)
{
return kpread (fd, buf, len, off);
}

View File

@ -0,0 +1,27 @@
/* Machine-dependent SIGPROF signal handler. AIX version.
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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* In many Unix systems signal handlers are called like this
and the interrupted PC is easily findable in the `struct sigcontext'. */
static void
profil_counter (int signr, int code, struct sigcontext *scp)
{
profil_count ((void *) scp->sc_jmpbuf.__jmp_context.__gpr[0]);
}

View File

@ -0,0 +1,29 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
extern int kread (int fd, void *buf, size_t len);
ssize_t
__libc_read (int fd, void *buf, size_t len)
{
return kread (fd, buf, len);
}
strong_alias (__libc_read, __read)
strong_alias (__libc_read, read)

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <unistd.h>
int
__readlink (const char *path, char *buf, size_t len)
{
return readlink (path, buf, len);
}

View File

@ -0,0 +1,37 @@
/* Copyright (C) 1991, 1995-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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/uio.h>
extern ssize_t kreadv (int fd, const struct iovec *iovp, size_t iovcnt,
long int ext);
/* Read data from file descriptor FD, and put the result in the
buffers described by VECTOR, which is a vector of COUNT `struct iovec's.
The buffers are filled in the order specified.
Operates just like `read' (see <unistd.h>) except that data are
put in VECTOR instead of a contiguous buffer. */
ssize_t
__readv (fd, vector, count)
int fd;
const struct iovec *vector;
int count;
{
return kreadv (fd, vector, count, 0);
}
strong_alias (__readv, readv)

View File

@ -0,0 +1,29 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/socket.h>
extern int nrecvfrom (int s, void *uap_buf, int len, int flags,
void *uap_from, int *uap_fromlenaddr);
int
recvfrom (int fd, void *buf, size_t n, int flags, __SOCKADDR_ARG addr,
socklen_t *addr_len)
{
return nrecvfrom (fd, buf, n, flags, addr.__sockaddr__, addr_len);
}

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/socket.h>
extern int nrecvmsg (int s, struct msghdr *uap_msg, int flags);
int
recvmsg (int fd, struct msghdr *message, int flags)
{
return nrecvmsg (fd, message, flags);
}

View File

@ -0,0 +1,41 @@
/* Revoke the access of all descriptors currently open on a file. AIX version.
Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
extern int frevoke (int fdes);
int
revoke (file)
const char *file;
{
int fd;
int res;
fd = open (file, O_RDONLY);
if (fd < 0)
return -1;
res = frevoke (fd);
(void) close (fd);
return res;
}

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <unistd.h>
void *
__sbrk (ptrdiff_t delta)
{
return sbrk (delta);
}

View File

@ -0,0 +1,31 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sched.h>
extern void yield (void);
/* Yield the processor. */
int
__sched_yield (void)
{
yield ();
return 0;
}
strong_alias (__sched_yield, sched_yield)

View File

@ -0,0 +1,27 @@
/* 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/socket.h>
extern int nsendmsg (int s, void *uap_msg, int flags);
int
sendmsg (int fd, const struct msghdr *message, int flags)
{
return nsendmsg (fd, message, flags);
}

View File

@ -0,0 +1,32 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? If so #define ID_EFFECTIVE */
#include <sys/id.h>
extern int setgidx (int mask, gid_t gid);
int
__setegid (gid_t gid)
{
return setgidx (ID_EFFECTIVE, gid);
}
strong_alias (__setegid, setegid)

View File

@ -0,0 +1,32 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? If so #define ID_EFFECTIVE */
#include <sys/id.h>
extern int setuidx (int mask, uid_t uid);
int
__seteuid (uid_t uid)
{
return setuidx (ID_EFFECTIVE, uid);
}
strong_alias (__seteuid, seteuid)

View File

@ -0,0 +1,32 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? If so #define ID_REAL */
#include <sys/id.h>
extern int setgidx (int mask, gid_t gid);
int
__setgid (gid_t gid)
{
return setgidx (ID_REAL, gid);
}
strong_alias (__setgid, setgid)

View File

@ -0,0 +1,42 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? */
/* If so #define ID_EFFECTIVE and ID_REAL */
#include <sys/id.h>
extern int setgidx (int mask, gid_t gid);
int
__setregid (gid_t rgid, gid_t egid)
{
int res;
if (rgid == egid)
return setgidx (ID_EFFECTIVE | ID_REAL, egid);
res = setgidx (ID_REAL, rgid);
if (res == 0)
res = setgidx (ID_EFFECTIVE, egid);
return res;
}
strong_alias (__setregid, setregid)

View File

@ -0,0 +1,41 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? */
/* If so #define ID_EFFECTIVE and ID_REAL */
#include <sys/id.h>
extern int setuidx (int mask, uid_t uid);
int
__setreuid (uid_t ruid, uid_t euid)
{
int res;
if (ruid == euid)
return setuidx (ID_EFFECTIVE | ID_REAL, euid);
res = setuidx (ID_REAL, ruid);
if (res == 0)
res = setuidx (ID_EFFECTIVE, euid);
return res;
}
strong_alias (__setreuid, setreuid)

View File

@ -0,0 +1,31 @@
/* Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <unistd.h>
/* is there a reason *NOT* to include <sys/id.h>? If so #define ID_REAL */
#include <sys/id.h>
extern int setuidx (int mask, uid_t uid);
int
__setuid (uid_t uid)
{
return setuidx (ID_REAL, uid);
}
strong_alias (__setuid, setuid)

View File

@ -0,0 +1,35 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <errno.h>
#include <signal.h>
extern int _sigaction (int sig, const struct sigaction *act,
struct sigaction *oact);
/* If ACT is not NULL, change the action for SIG to *ACT.
If OACT is not NULL, put the old action for SIG in *OACT. */
int
__sigaction (sig, act, oact)
int sig;
const struct sigaction *act;
struct sigaction *oact;
{
return _sigaction (sig, act, oact);
}
strong_alias (__sigaction, sigaction)

View File

@ -0,0 +1,30 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <signal.h>
extern int _sigpending (sigset_t *set);
/* Store in SET all signals that are blocked and pending. */
int
sigpending (set)
sigset_t *set;
{
return _sigpending (set);
}

View File

@ -0,0 +1,8 @@
/* This is a system call. We only have to provide the wrapper. */
#include <signal.h>
int
__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
{
return sigprocmask (how, set, oset);
}

View File

@ -0,0 +1,28 @@
/* Convert between lowlevel sigmask and libc representation of sigset_t.
AIX version.
Copyright (C) 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#define sigset_set_old_mask(set, mask) \
do { \
(set)->__losigs = (unsigned int) mask; \
(set)->__hisigs = 0; \
} while (0)
#define sigset_get_old_mask(set, mask) \
((mask) = (unsigned int) (set)->__losigs)

View File

@ -0,0 +1,32 @@
/* Copyright (C) 1991, 1995-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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <signal.h>
extern int _sigsuspend (const sigset_t *sigmask);
/* Change the set of blocked signals to SET,
wait until a signal arrives, and restore the set of blocked signals. */
int
__sigsuspend (set)
const sigset_t *set;
{
return _sigsuspend (set);
}
weak_alias (__sigsuspend, sigsuspend)

Some files were not shown because too many files have changed in this diff Show More