glibc/posix/sys/types.h

159 lines
4.1 KiB
C
Raw Normal View History

/* Copyright (C) 1991, 1992, 1994, 1995, 1996 Free Software Foundation, Inc.
1995-02-18 02:27:10 +01:00
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., 675 Mass Ave,
1995-02-18 02:27:10 +01:00
Cambridge, MA 02139, USA. */
/*
* POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
*/
#ifndef _SYS_TYPES_H
#define _SYS_TYPES_H 1
#include <features.h>
__BEGIN_DECLS
#include <gnu/types.h>
#ifdef __USE_BSD
#define u_char __u_char
#define u_short __u_short
#define u_int __u_int
#define u_long __u_long
#define quad_t __quad_t
#define u_quad_t __u_quad_t
#define fsid_t __fsid_t
#endif
#define dev_t __dev_t
#define gid_t __gid_t
#define ino_t __ino_t
#define mode_t __mode_t
#define nlink_t __nlink_t
#define off_t __off_t
#define pid_t __pid_t
#define uid_t __uid_t
#ifndef ssize_t
#define ssize_t __ssize_t
#endif
#ifdef __USE_BSD
#define daddr_t __daddr_t
#define caddr_t __caddr_t
#endif
#define __need_time_t
#include <time.h>
#define __need_size_t
#include <stddef.h>
#ifdef __USE_MISC
/* Old compatibility names for C types. */
typedef unsigned short int ushort;
typedef unsigned int uint;
#endif
#ifdef __USE_BSD
/* These size-specific names are used by some of the inet code. */
Wed Feb 7 18:48:30 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * hurd/hurdmsg.c (_S_msg_report_wait): Function removed. * hurd/report-wait.c: New file. * hurd/Makefile (routines): Added report-wait. * sysdeps/mach/hurd/Makefile (inhibit-unix-syscalls): New variable. * sysdeps/mach/hurd/i386/intr-msg.h (struct mach_msg_trap_args): New type. (SYSCALL_EXAMINE, MSG_EXAMINE): New inline functions. * sysdeps/mach/hurd/i386/trampoline.c (struct mach_msg_trap_args): Structure moved to intr-msg.h; include that. * time/Makefile (CFLAGS-ialloc.c): Add -Wno-unused. (CFLAGS-scheck.c): New variable. * sysdeps/mach/hurd/dl-sysdep.c (__hurd_sigthread_stack_base, __hurd_sigthread_stack_end, __hurd_sigthread_variables, __hurd_threadvar_stack_mask): New variables. * sysdeps/mach/hurd/fork.c: Set the new task's exception port to its new message port. * misc/init-misc.c: Put __init_misc in the __libc_subinit set. * configure.in (uname): Add quoting. * sysdeps/mach/hurd/fchdir.c: Don't consult errno unless lookup fails. * hurd/fchroot.c: Likewise. * posix/sys/types.h [GCC >= 2.7]: Define intN_t/u_intN_t using __attribute__ ((__mode__ (__XX__))). Wed Feb 7 03:24:05 1996 Torbjorn Granlund <tege@tmg.se> * sysdeps/i386/i586/memcopy.h (WORD_COPY_FWD): Manually allocate destination cache lines. (WORD_COPY_BWD): Likewise. Wed Feb 7 14:16:36 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * sysdeps/generic/Makefile (make_siglist): Get signum.h absolute file name first thing, before $(native-compile) changes directories. From Gord Matzigkeit <gord@enci.ucalgary.ca>: * sysdeps/unix/make_errlist.c: Use strerror if available. * sysdeps/unix/configure.in: New file * sysdeps/unix/bsd/sun/syscalls.list: Added sigvec. * sysdeps/unix/bsd/sun/sigvec.S: File removed. * sysdeps/stub/sendto.c: Make sockaddr arg pointer to const. * sysdeps/stub/connect.c: Likewise. * sysdeps/stub/bind.c: Likewise. * hurd/hurdlookup.c (__hurd_file_name_lookup_retry): RETRYNAME of "" is only special for FS_RETRY_NORMAL; for FS_RETRY_REAUTH, do another dir_lookup of "".
1996-02-08 03:10:15 +01:00
#if !defined (__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 7
1995-02-18 02:27:10 +01:00
typedef char int8_t;
typedef unsigned char u_int8_t;
typedef short int int16_t;
typedef unsigned short int u_int16_t;
typedef int int32_t;
typedef unsigned int u_int32_t;
#ifdef __GNUC__
typedef long long int int64_t;
typedef unsigned long long int u_int64_t;
typedef int register_t __attribute__ ((__mode__ (word)));
#endif
Wed Feb 7 18:48:30 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * hurd/hurdmsg.c (_S_msg_report_wait): Function removed. * hurd/report-wait.c: New file. * hurd/Makefile (routines): Added report-wait. * sysdeps/mach/hurd/Makefile (inhibit-unix-syscalls): New variable. * sysdeps/mach/hurd/i386/intr-msg.h (struct mach_msg_trap_args): New type. (SYSCALL_EXAMINE, MSG_EXAMINE): New inline functions. * sysdeps/mach/hurd/i386/trampoline.c (struct mach_msg_trap_args): Structure moved to intr-msg.h; include that. * time/Makefile (CFLAGS-ialloc.c): Add -Wno-unused. (CFLAGS-scheck.c): New variable. * sysdeps/mach/hurd/dl-sysdep.c (__hurd_sigthread_stack_base, __hurd_sigthread_stack_end, __hurd_sigthread_variables, __hurd_threadvar_stack_mask): New variables. * sysdeps/mach/hurd/fork.c: Set the new task's exception port to its new message port. * misc/init-misc.c: Put __init_misc in the __libc_subinit set. * configure.in (uname): Add quoting. * sysdeps/mach/hurd/fchdir.c: Don't consult errno unless lookup fails. * hurd/fchroot.c: Likewise. * posix/sys/types.h [GCC >= 2.7]: Define intN_t/u_intN_t using __attribute__ ((__mode__ (__XX__))). Wed Feb 7 03:24:05 1996 Torbjorn Granlund <tege@tmg.se> * sysdeps/i386/i586/memcopy.h (WORD_COPY_FWD): Manually allocate destination cache lines. (WORD_COPY_BWD): Likewise. Wed Feb 7 14:16:36 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * sysdeps/generic/Makefile (make_siglist): Get signum.h absolute file name first thing, before $(native-compile) changes directories. From Gord Matzigkeit <gord@enci.ucalgary.ca>: * sysdeps/unix/make_errlist.c: Use strerror if available. * sysdeps/unix/configure.in: New file * sysdeps/unix/bsd/sun/syscalls.list: Added sigvec. * sysdeps/unix/bsd/sun/sigvec.S: File removed. * sysdeps/stub/sendto.c: Make sockaddr arg pointer to const. * sysdeps/stub/connect.c: Likewise. * sysdeps/stub/bind.c: Likewise. * hurd/hurdlookup.c (__hurd_file_name_lookup_retry): RETRYNAME of "" is only special for FS_RETRY_NORMAL; for FS_RETRY_REAUTH, do another dir_lookup of "".
1996-02-08 03:10:15 +01:00
#else
/* For GCC 2.7 and later, we can use specific type-size attributes. */
#define __intN_t(N, MODE) \
typedef int int##N##_t __attribute__ ((__mode__ (MODE)))
#define __u_intN_t(N, MODE) \
typedef unsigned int u_int##N##_t __attribute__ ((__mode__ (MODE)))
__intN_t (8, __QI__);
__u_intN_t (8, __QI__);
__intN_t (16, __HI__);
__u_intN_t (16, __HI__);
__intN_t (32, __SI__);
__u_intN_t (32, __SI__);
__intN_t (64, __DI__);
__u_intN_t (64, __DI__);
typedef int register_t __attribute__ ((__mode__ (__word__)));
#endif
/* Some code from BIND tests this macro to see if the types above are
defined. */
#define __BIT_TYPES_DEFINED__ 1
1995-02-18 02:27:10 +01:00
#endif
Sat Sep 16 17:47:19 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de> * elf/elf.h (AT_GID): Fix typo: Read -> Real. * misc/efgvt_r.c: New file. Reentrant version of [efg]cvt functions. * misc/efgcvt.c: Rewrite to use reentrant functions. * misc/hsearch_r.c: New file. Reentrant version of functions from hsearch family. * misc/hsearch.c, misc/tsearch.c: New files. * misc/Makefile (routines): Add efgcvt_r, hsearch_r, hsearch, tsearch. * posix/unistd.h (ttyname_r): Add prototype for new function. * stdlib/drand48_r.c, stdlib/erand48_r.c, stdlib/jrand48_r.c, stdlib/lrand48_r.c, stdlib/mrand48_r.c, stdlib/nrand48_r.c, stdlib/seed48_r.c, stdlib/srand48_r.c, stdlib/lcong48_r.c, stdlib/drand48-iter.c: New files implementing reentrant versions of functions from drand48 family. * stdlib/seed48.c, stdlib/drand48.c, stdlib/erand48.c, stdlib/jrand48.c, stdlib/lrand48.c, stdlib/mrand48.c, stdlib/nrand48.c, stdlib/srand48.c, stdlib/lcong48.c: Rewrite to use reentrant versions. * stdlib/a64l.c, stdlib/l64a.c: New files. Implement a64l() and l64a() functions from SysV library. * stdlib/Makefile (routines): Add drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r, drand48-iter, a64l, l64a. * stdlib/stdlib.h: Declare them. * stdlib/random_r.c: New file. Reentrant version of functions from random family. * stdlib/stdlib.h: Declare them. * stdlib/random.c: Rewrite to use reentrant functions. * string/strerror_r.c: New file. Reentrant version. * string/strerror.c: Change for new _strerror_internal form. * string/Makefile (routines): Add strerror_r. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Set default value of user_entry to `_start'. Close AT_ENTRY case with `break'. * sysdeps/generic/strstr.c: New and much faster implementation by Stephen R. van den Berg. * sysdeps/generic/_strerror.c: _strerror_internal now takes three argument and has and explicit buffer length. * sysdeps/mach/_strerror.c: Change for new interface with three arguments. * stdio/perror.c, stdio/vfprintf.c: Callers changed. * sysdeps/mach/hurd/ttyname_r.c: New file. Reentrant version. * sysdeps/posix/ttyname_r.c: New file. Reentrant version. * sysdeps/stub/ttyname_r: New file. Define as dummy function. * sysdeps/posix/utimes.c: Include <utime.h> for prototype. (utimes): First parameter to utime must be file, not path. * sysdeps/posix/sysconf.c (__sysconf): Test for CLK_TCK in case _SC_CLK_TCK and return it when available. Test for STREAM_MAX in case _SC_STREAM_MAX and return it when available. Add case for _SC_2_LOCALEDEF which is now available. * posix/sys/types.h [__USE_SVID] (key_t): New type. * sysvipc/Makefile, sysvipc/ftok.c, sysvipc/sys/ipc.h, sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h, sysdeps/stub/sys/msq_buf.h, sysdeps/stub/sys/sem_buf.h, sysdeps/stub/sys/shm_buf.h, sysdeps/stub/sys/ipc_buf.h, sysdeps/stub/semctl.c, sysdeps/stub/semget.c, sysdeps/stub/semop.c, sysdeps/stub/shmat.c, sysdeps/stub/shmctl.c, sysdeps/stub/shmdt.c, sysdeps/stub/shmget.c, sysdeps/stub/msgctl.c, sysdeps/stub/msgget.c, sysdeps/stub/msgrcv.c, sysdeps/stub/msgsnd.c: New files. Add implementation of System V IPC.
1995-09-17 22:23:15 +02:00
#ifdef __USE_SVID
/* Data type for key value used in System V IPC functions. */
typedef long int key_t;
#endif
#ifdef __USE_BSD
/* In BSD <sys/types.h> is expected to define BYTE_ORDER. */
#include <endian.h>
#endif
1995-02-18 02:27:10 +01:00
#ifdef __USE_BSD
#define FD_SETSIZE __FD_SETSIZE
#define NFDBITS __NFDBITS
#define fd_set __fd_set
#define FD_ZERO(set) __FD_ZERO(set)
#define FD_SET(d, set) __FD_SET((d), (set))
#define FD_CLR(d, set) __FD_CLR((d), (set))
#define FD_ISSET(d, set)__FD_ISSET((d), (set))
/* This being here makes the `select' prototype valid whether or not
we have already included <sys/time.h> to define `struct timeval'. */
struct timeval;
/* Check the first NFDS descriptors each in READFDS (if not NULL) for read
readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
(if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out
after waiting the interval specified therein. Returns the number of ready
descriptors, or -1 for errors. */
extern int __select __P ((int __nfds, __fd_set *__readfds,
__fd_set *__writefds, __fd_set *__exceptfds,
struct timeval *__timeout));
extern int select __P ((int __nfds, __fd_set *__readfds,
__fd_set *__writefds, __fd_set *__exceptfds,
struct timeval *__timeout));
#endif /* Use BSD. */
__END_DECLS
#endif /* sys/types.h */