2000-02-25  Ulrich Drepper  <drepper@redhat.com>

	* conform/conformtest.pl (@headers): Add "sys/msg.h", "sys/mman.h",
	"sys/ipc.h", "syslog.h", and "stropts.h".
	Handle / in header names correctly.
	* conform/data/stropts.h-data: New file.
	* conform/data/syslog.h-data: New file.
	* conform/data/sys/ipc.h-data: New file.
	* conform/data/sys/mman.h-data: New file.
	* conform/data/sys/msg.h-data: New file.

	* misc/sys/mman.h: Define off_t and mode_t if not already done.

	* streams/stropts.h: Define gid_t and uid_t if not already done.

	* sysdeps/gnu/bits/ipc.h (IPC_INFO): Only define if __USE_GNU.
	* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/ipc.h: Likewise.

	* sysvipc/sys/msg.h: Don't include sys/types.h.
	Define time_t, pid_t, and ssize_t if not already done.
	(struct msgbuf): Define only if __USE_GNU.

	* sysdeps/generic/bits/msq.h: Include bits/types.h, not sys/types.h.
	(MSG_EXCEPT): Only define if __USE_GNU.
	Define msgqnum_t and msglen_t and use them in struct msqid_ds
	definition.
	* sysdeps/gnu/bits/msq.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/msq.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/msq.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/msq.h: Likewise.

	* sysdeps/generic/bits/stropts.h (I_GWROPT): Renamed from I_GWRSET.
	(FLUSHBAND): Only define is __USE_GNU.
	(RPROTMASK): Likewise.
	(SNDPIPE): Likewise.
	(MUXID_ALL): Likewise.
	(struct strrecvfd): Rename fill to __fill.
This commit is contained in:
Ulrich Drepper 2000-02-25 09:00:58 +00:00
parent 8934380c5b
commit bba09d234b
24 changed files with 481 additions and 85 deletions

View file

@ -1,3 +1,45 @@
2000-02-25 Ulrich Drepper <drepper@redhat.com>
* conform/conformtest.pl (@headers): Add "sys/msg.h", "sys/mman.h",
"sys/ipc.h", "syslog.h", and "stropts.h".
Handle / in header names correctly.
* conform/data/stropts.h-data: New file.
* conform/data/syslog.h-data: New file.
* conform/data/sys/ipc.h-data: New file.
* conform/data/sys/mman.h-data: New file.
* conform/data/sys/msg.h-data: New file.
* misc/sys/mman.h: Define off_t and mode_t if not already done.
* streams/stropts.h: Define gid_t and uid_t if not already done.
* sysdeps/gnu/bits/ipc.h (IPC_INFO): Only define if __USE_GNU.
* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/ipc.h: Likewise.
* sysvipc/sys/msg.h: Don't include sys/types.h.
Define time_t, pid_t, and ssize_t if not already done.
(struct msgbuf): Define only if __USE_GNU.
* sysdeps/generic/bits/msq.h: Include bits/types.h, not sys/types.h.
(MSG_EXCEPT): Only define if __USE_GNU.
Define msgqnum_t and msglen_t and use them in struct msqid_ds
definition.
* sysdeps/gnu/bits/msq.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/msq.h: Likewise.
* sysdeps/unix/sysv/linux/bits/msq.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/msq.h: Likewise.
* sysdeps/generic/bits/stropts.h (I_GWROPT): Renamed from I_GWRSET.
(FLUSHBAND): Only define is __USE_GNU.
(RPROTMASK): Likewise.
(SNDPIPE): Likewise.
(MUXID_ALL): Likewise.
(struct strrecvfd): Rename fill to __fill.
2000-02-24 Ulrich Drepper <drepper@redhat.com>
* stdlib/stdlib.h: Move definition X/Open compatibility stuff

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1995, 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
@ -20,11 +20,15 @@
#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
/* Types used in the structure definition. */
typedef unsigned short int msgqnum_t;
typedef unsigned short int msglen_t;
/* Structure of record for one message inside the kernel.
The type `struct __msg' is opaque. */
@ -34,8 +38,8 @@ struct msqid_ds
__time_t msg_stime; /* time of last msgsnd command */
__time_t msg_rtime; /* time of last msgrcv command */
__time_t msg_ctime; /* time of last change */
unsigned short int msg_qnum; /* number of messages currently on queue */
unsigned short int msg_qbytes;/* max number of bytes allowed on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
__pid_t msg_lspid; /* pid of last msgsnd() */
__pid_t msg_lrpid; /* pid of last msgrcv() */
};

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
/* 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
@ -61,7 +61,7 @@
of a STREAMS pipe. */
#define I_RECVFD (__SID |14) /* Non-EFT definition. */
#define I_SWROPT (__SID |19) /* Set the write mode. */
#define I_GWRSET (__SID |20) /* Return the current write mode setting. */
#define I_GWROPT (__SID |20) /* Return the current write mode setting. */
#define I_LIST (__SID |21) /* List all the module names on the STREAM, up
to and including the topmost driver name. */
#define I_PLINK (__SID |22) /* Connect two STREAMs with a persistent
@ -91,7 +91,9 @@
#define FLUSHR 0x01 /* Flush read queues. */
#define FLUSHW 0x02 /* Flush write queues. */
#define FLUSHRW 0x03 /* Flush read and write queues. */
#define FLUSHBAND 0x04 /* Flush only specified band. */
#ifdef __USE_GNU
# define FLUSHBAND 0x04 /* Flush only specified band. */
#endif
/* Possible arguments for `I_SETSIG'. */
#define S_INPUT 0x0001 /* A message, other than a high-priority
@ -129,13 +131,17 @@
#define RPROTNORM 0x0010 /* Fail `read' with EBADMSG if a message
containing a control part is at the front
of the STREAM head read queue. */
#define RPROTMASK 0x001C /* The RPROT bits */
#ifdef __USE_GNU
# define RPROTMASK 0x001C /* The RPROT bits */
#endif
/* Possible mode for `I_SWROPT'. */
#define SNDZERO 0x001 /* Send a zero-length message downstream when a
`write' of 0 bytes occurs. */
#define SNDPIPE 0x002 /* Send SIGPIPE on write and putmsg if
#ifdef __USE_GNU
# define SNDPIPE 0x002 /* Send SIGPIPE on write and putmsg if
sd_werror is set. */
#endif
/* Arguments for `I_ATMARK'. */
#define ANYMARK 0x01 /* Check if the message is marked. */
@ -143,8 +149,10 @@
on the queue. */
/* Argument for `I_UNLINK'. */
#define MUXID_ALL (-1) /* Unlink all STREAMs linked to the STREAM
#ifdef __USE_GNU
# define MUXID_ALL (-1) /* Unlink all STREAMs linked to the STREAM
associated with `fildes'. */
#endif
/* Macros for `getmsg', `getpmsg', `putmsg' and `putpmsg'. */
@ -176,14 +184,14 @@ struct strpeek
{
struct strbuf ctlbuf;
struct strbuf databuf;
__t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
};
struct strfdinsert
{
struct strbuf ctlbuf;
struct strbuf databuf;
__t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
int fildes;
int offset;
};
@ -199,9 +207,9 @@ struct strioctl
struct strrecvfd
{
int fd;
__uid_t uid;
__gid_t gid;
char fill[8]; /* UnixWare/Solaris compatibility */
uid_t uid;
gid_t gid;
char __fill[8]; /* UnixWare/Solaris compatibility */
};

View file

@ -4,7 +4,8 @@ $CC = "gcc";
$CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500";
# List of the headers we are testing.
@headers = ("strings.h", "string.h", "stdlib.h", "stdio.h",
@headers = ("sys/msg.h", "sys/mman.h", "sys/ipc.h", "syslog.h",
"stropts.h", "strings.h", "string.h", "stdlib.h", "stdio.h",
"stddef.h", "stdarg.h", "signal.h", "setjmp.h", "semaphore.h",
"search.h", "sched.h", "regex.h", "pwd.h", "pthread.h",
"poll.h", "nl_types.h", "ndbm.h", "mqueue.h", "monetary.h",
@ -13,7 +14,7 @@ $CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500";
"fmtmsg.h", "float.h", "fcntl.h", "errno.h", "dlfcn.h", "dirent.h",
"ctype.h", "cpio.h", "assert.h", "aio.h");
# These are the ISO C9x keywords.
# These are the ISO C99 keywords.
@keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default',
'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto',
'if', 'inline', 'int', 'long', 'register', 'restrict', 'return',
@ -234,7 +235,9 @@ sub checknamespace {
while ($#headers >= 0) {
my($h) = pop (@headers);
my($fnamebase) = "$tmpdir/$h-test";
my($hf) = $h;
$hf =~ s|/|-|;
my($fnamebase) = "$tmpdir/$hf-test";
my($missing);
my(@allow) = ();
my($prepend) = $mustprepend{$h};

123
conform/data/stropts.h-data Normal file
View file

@ -0,0 +1,123 @@
type {struct bandinfo}
element {struct bandinfo} {unsigned char} bi_pri
element {struct bandinfo} int bi_flag
type {struct strpeek}
element {struct strpeek} {struct strbuf} ctlbuf
element {struct strpeek} {struct strbuf} databuf
element {struct strpeek} t_uscalar_t flags
type {struct strbuf}
element {struct strbuf} int maxlen
element {struct strbuf} int len
element {struct strbuf} {char*} buf
type {struct strfdinsert}
element {struct strfdinsert} {struct strbuf} ctlbuf
element {struct strfdinsert} {struct strbuf} databuf
element {struct strfdinsert} t_uscalar_t flags
element {struct strfdinsert} int fildes
element {struct strfdinsert} int offset
type {struct strioctl}
element {struct strioctl} int ic_cmd
element {struct strioctl} int ic_timout
element {struct strioctl} int ic_len
element {struct strioctl} {char*} ic_dp
type {struct strrecvfd}
element {struct strrecvfd} int fd
element {struct strrecvfd} uid_t uid
element {struct strrecvfd} gid_t gid
type uid_t
type gid_t
type t_uscalar_t
type {struct str_list}
element {struct str_list} int sl_nmods
element {struct str_list} {struct str_mlist*} sl_modlist
type {struct str_mlist}
element {struct str_mlist} char l_name [FMNAMESZ+1]
macro I_PUSH
macro I_POP
macro I_LOOK
macro FMNAMESZ
macro I_FLUSH
macro FLUSHR
macro FLUSHW
macro FLUSHRW
macro I_FLUSHBAND
macro I_SETSIG
macro S_RDNORM
macro S_RDBAND
macro S_INPUT
macro S_HIPRI
macro S_OUTPUT
macro S_WRNORM
macro S_WRBAND
macro S_MSG
macro S_ERROR
macro S_HANGUP
macro S_BANDURG
macro I_GETSIG
macro I_FIND
macro I_PEEK
macro RS_HIPRI
macro I_SRDOPT
macro RNORM
macro RMSGD
macro RMSGN
macro RPROTNORM
macro RPROTDAT
macro RPROTDIS
macro I_GRDOPT
macro I_NREAD
macro I_FDINSERT
macro I_STR
macro I_SWROPT
macro SNDZERO
macro I_GWROPT
macro I_SENDFD
macro I_RECVFD
macro I_LIST
macro I_ATMARK
macro ANYMARK
macro LASTMARK
macro I_CKBAND
macro I_GETBAND
macro I_CANPUT
macro I_SETCLTIME
macro I_GETCLTIME
macro I_LINK
macro I_UNLINK
macro I_PLINK
macro I_PUNLINK
macro MSG_ANY
macro MSG_BAND
macro MSG_HIPRI
macro MORECTL
macro MOREDATA
function int isastream (int)
function int getmsg (int, struct strbuf*, struct strbuf*, int*)
function int getpmsg (int, struct strbuf*, struct strbuf*, int*, int*)
function int ioctl (int, int, ...)
function int putmsg (int, const struct strbuf*, const struct strbuf*, int)
function int putpmsg (int, const struct strbuf*, const struct strbuf*, int, int)
function int fattach (int, const char*)
function int fdetach (const char*)
allow-header unistd.h

View file

@ -0,0 +1,24 @@
type {struct ipc_perm}
element {struct ipc_perm} uid_t uid
element {struct ipc_perm} gid_t gid
element {struct ipc_perm} uid_t cuid
element {struct ipc_perm} gid_t cgid
element {struct ipc_perm} mode_t mode
type uid_t
type gid_t
type mode_t
type key_t
constant IPC_CREAT
constant IPC_EXCL
constant IPC_NOWAIT
constant IPC_PRIVATE
constant IPC_RMID
constant IPC_SET
constant IPC_STAT
function key_t ftok (const char*, int)

View file

@ -0,0 +1,32 @@
constant PROT_READ
constant PROT_WRITE
constant PROT_EXEC
constant PROT_NONE
constant MAP_SHARED
constant MAP_PRIVATE
constant MAP_FIXED
constant MS_ASYNC
constant MS_SYNC
constant MS_INVALIDATE
constant MCL_CURRENT
constant MCL_FUTURE
constant MAP_FAILED
type size_t
type off_t
type mode_t
function int mlock (const void*, size_t)
function int mlockall (int)
function {void*} mmap (void*, size_t, int, int, int, off_t)
function int mprotect (void*, size_t, int)
function int msync (void*, size_t, int)
function int munlock (const void*, size_t)
function int munlockall (void)
function int munmap (void*, size_t)
function int shm_open (const char*, int, mode_t)
function int shm_unlink (const char*)

View file

@ -0,0 +1,28 @@
type {struct msqid_ds}
type msgqnum_t
type msglen_t
constant MSG_NOERROR
element {struct msqid_ds} {struct ipc_perm} msg_perm
element {struct msqid_ds} msgqnum_t msg_qnum
element {struct msqid_ds} msglen_t msg_qbytes
element {struct msqid_ds} pid_t msg_lspid
element {struct msqid_ds} pid_t msg_lrpid
element {struct msqid_ds} time_t msg_stime
element {struct msqid_ds} time_t msg_rtime
element {struct msqid_ds} time_t msg_ctime
type pid_t
type time_t
type key_t
type size_t
type ssize_t
function int msgctl (int, int, struct msqid_ds*)
function int msgget (key_t, int)
function ssize_t msgrcv (int, void*, size_t, long int, int)
function int msgsnd (int, const void*, size_t, int)
allow-header sys/ipc.h

View file

@ -0,0 +1,39 @@
constant LOG_PID
constant LOG_CONS
constant LOG_NDELAY
constant LOG_ODELAY
constant LOG_NOWAIT
constant LOG_KERN
constant LOG_USER
constant LOG_MAIL
constant LOG_NEWS
constant LOG_UUCP
constant LOG_DAEMON
constant LOG_AUTH
constant LOG_CRON
constant LOG_LPR
constant LOG_LOCAL0
constant LOG_LOCAL1
constant LOG_LOCAL2
constant LOG_LOCAL3
constant LOG_LOCAL4
constant LOG_LOCAL5
constant LOG_LOCAL6
constant LOG_LOCAL7
macro LOG_MASK
constant LOG_EMERG
constant LOG_ALERT
constant LOG_CRIT
constant LOG_ERR
constant LOG_WARNING
constant LOG_NOTICE
constant LOG_INFO
constant LOG_DEBUG
function void closelog (void)
function void openlog (const char*, int, int)
function int setlogmask (int)
function void syslog (int, const char*, ...)

View file

@ -1,5 +1,5 @@
/* Definitions for BSD-style memory management.
Copyright (C) 1994, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
Copyright (C) 1994-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
@ -25,6 +25,20 @@
#define __need_size_t
#include <stddef.h>
#ifndef __off_t_defined
# ifndef __USE_FILE_OFFSET64
typedef __off_t off_t;
# else
typedef __off64_t off_t;
# endif
# define __off_t_defined
#endif
#ifndef __mode_t_defined
typedef __mode_t mode_t;
# define __mode_t_defined
#endif
#include <bits/mman.h>
/* Return value of `mmap' in case of an error. */

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
/* 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
@ -22,6 +22,18 @@
#include <features.h>
#include <bits/types.h>
#ifndef __gid_t_defined
typedef __gid_t gid_t;
# define __gid_t_defined
#endif
#ifndef __uid_t_defined
typedef __uid_t uid_t;
# define __uid_t_defined
#endif
typedef __t_uscalar_t t_uscalar_t;
/* Get system specific contants. */
#include <bits/stropts.h>

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1995, 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
@ -20,11 +20,15 @@
#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
/* Types used in the structure definition. */
typedef unsigned short int msgqnum_t;
typedef unsigned short int msglen_t;
/* Structure of record for one message inside the kernel.
The type `struct __msg' is opaque. */
@ -34,8 +38,8 @@ struct msqid_ds
__time_t msg_stime; /* time of last msgsnd command */
__time_t msg_rtime; /* time of last msgrcv command */
__time_t msg_ctime; /* time of last change */
unsigned short int msg_qnum; /* number of messages currently on queue */
unsigned short int msg_qbytes;/* max number of bytes allowed on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
__pid_t msg_lspid; /* pid of last msgsnd() */
__pid_t msg_lrpid; /* pid of last msgrcv() */
};

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
/* 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
@ -61,7 +61,7 @@
of a STREAMS pipe. */
#define I_RECVFD (__SID |14) /* Non-EFT definition. */
#define I_SWROPT (__SID |19) /* Set the write mode. */
#define I_GWRSET (__SID |20) /* Return the current write mode setting. */
#define I_GWROPT (__SID |20) /* Return the current write mode setting. */
#define I_LIST (__SID |21) /* List all the module names on the STREAM, up
to and including the topmost driver name. */
#define I_PLINK (__SID |22) /* Connect two STREAMs with a persistent
@ -91,7 +91,9 @@
#define FLUSHR 0x01 /* Flush read queues. */
#define FLUSHW 0x02 /* Flush write queues. */
#define FLUSHRW 0x03 /* Flush read and write queues. */
#define FLUSHBAND 0x04 /* Flush only specified band. */
#ifdef __USE_GNU
# define FLUSHBAND 0x04 /* Flush only specified band. */
#endif
/* Possible arguments for `I_SETSIG'. */
#define S_INPUT 0x0001 /* A message, other than a high-priority
@ -129,13 +131,17 @@
#define RPROTNORM 0x0010 /* Fail `read' with EBADMSG if a message
containing a control part is at the front
of the STREAM head read queue. */
#define RPROTMASK 0x001C /* The RPROT bits */
#ifdef __USE_GNU
# define RPROTMASK 0x001C /* The RPROT bits */
#endif
/* Possible mode for `I_SWROPT'. */
#define SNDZERO 0x001 /* Send a zero-length message downstream when a
`write' of 0 bytes occurs. */
#define SNDPIPE 0x002 /* Send SIGPIPE on write and putmsg if
#ifdef __USE_GNU
# define SNDPIPE 0x002 /* Send SIGPIPE on write and putmsg if
sd_werror is set. */
#endif
/* Arguments for `I_ATMARK'. */
#define ANYMARK 0x01 /* Check if the message is marked. */
@ -143,8 +149,10 @@
on the queue. */
/* Argument for `I_UNLINK'. */
#define MUXID_ALL (-1) /* Unlink all STREAMs linked to the STREAM
#ifdef __USE_GNU
# define MUXID_ALL (-1) /* Unlink all STREAMs linked to the STREAM
associated with `fildes'. */
#endif
/* Macros for `getmsg', `getpmsg', `putmsg' and `putpmsg'. */
@ -176,14 +184,14 @@ struct strpeek
{
struct strbuf ctlbuf;
struct strbuf databuf;
__t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
};
struct strfdinsert
{
struct strbuf ctlbuf;
struct strbuf databuf;
__t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
t_uscalar_t flags; /* UnixWare/Solaris compatibility. */
int fildes;
int offset;
};
@ -199,9 +207,9 @@ struct strioctl
struct strrecvfd
{
int fd;
__uid_t uid;
__gid_t gid;
char fill[8]; /* UnixWare/Solaris compatibility */
uid_t uid;
gid_t gid;
char __fill[8]; /* UnixWare/Solaris compatibility */
};

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
/* 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
@ -31,7 +31,9 @@
#define IPC_RMID 0 /* Remove identifier. */
#define IPC_SET 1 /* Set `ipc_perm' options. */
#define IPC_STAT 2 /* Get `ipc_perm' options. */
#define IPC_INFO 3 /* See ipcs. */
#ifdef __USE_GNU
# define IPC_INFO 3 /* See ipcs. */
#endif
/* Special key values. */
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
/* 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
@ -20,11 +20,17 @@
# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
#define MSG_EXCEPT 020000 /* recv any msg except of specified type */
#ifdef __USE_GNU
# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
#endif
/* Types used in the structure definition. */
typedef unsigned short int msgqnum_t;
typedef unsigned short int msglen_t;
/* Structure of record for one message inside the kernel.
@ -40,8 +46,8 @@ struct msqid_ds
struct wait_queue *__wwait; /* ??? */
struct wait_queue *__rwait; /* ??? */
unsigned short int __msg_cbytes;/* current number of bytes on queue */
unsigned short int msg_qnum; /* number of messages currently on queue */
unsigned short int msg_qbytes;/* max number of bytes allowed on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
__ipc_pid_t msg_lspid; /* pid of last msgsnd() */
__ipc_pid_t msg_lrpid; /* pid of last msgrcv() */
};

View file

@ -31,7 +31,9 @@
#define IPC_RMID 0 /* Remove identifier. */
#define IPC_SET 1 /* Set `ipc_perm' options. */
#define IPC_STAT 2 /* Get `ipc_perm' options. */
#define IPC_INFO 3 /* See ipcs. */
#ifdef __USE_GNU
# define IPC_INFO 3 /* See ipcs. */
#endif
/* Special key values. */
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */

View file

@ -20,11 +20,17 @@
# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
#define MSG_EXCEPT 020000 /* recv any msg except of specified type */
#ifdef __USE_GNU
# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
#endif
/* Types used in the structure definition. */
typedef unsigned long int msgqnum_t;
typedef unsigned long int msglen_t;
/* Structure of record for one message inside the kernel.
@ -36,8 +42,8 @@ struct msqid_ds
__time_t msg_rtime; /* time of last msgrcv command */
__time_t msg_ctime; /* time of last change */
unsigned long int __msg_cbytes; /* current number of bytes on queue */
unsigned long int msg_qnum; /* number of messages currently on queue */
unsigned long int msg_qbytes; /* max number of bytes allowed on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
pid_t msg_lspid; /* pid of last msgsnd() */
pid_t msg_lrpid; /* pid of last msgrcv() */
unsigned long int __unused1;

View file

@ -31,7 +31,9 @@
#define IPC_RMID 0 /* Remove identifier. */
#define IPC_SET 1 /* Set `ipc_perm' options. */
#define IPC_STAT 2 /* Get `ipc_perm' options. */
#define IPC_INFO 3 /* See ipcs. */
#ifdef __USE_GNU
# define IPC_INFO 3 /* See ipcs. */
#endif
/* Special key values. */
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */

View file

@ -20,11 +20,17 @@
# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
#define MSG_EXCEPT 020000 /* recv any msg except of specified type */
#ifdef __USE_GNU
# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
#endif
/* Types used in the structure definition. */
typedef unsigned long int msgqnum_t;
typedef unsigned long int msglen_t;
/* Structure of record for one message inside the kernel.
@ -39,8 +45,8 @@ struct msqid_ds
__time_t msg_ctime; /* time of last change */
unsigned long int __unused3;
unsigned long int __msg_cbytes; /* current number of bytes on queue */
unsigned long int msg_qnum; /* number of messages currently on queue */
unsigned long int msg_qbytes; /* max number of bytes allowed on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
pid_t msg_lspid; /* pid of last msgsnd() */
pid_t msg_lrpid; /* pid of last msgrcv() */
unsigned long int __unused4;

View file

@ -31,7 +31,9 @@
#define IPC_RMID 0 /* Remove identifier. */
#define IPC_SET 1 /* Set `ipc_perm' options. */
#define IPC_STAT 2 /* Get `ipc_perm' options. */
#define IPC_INFO 3 /* See ipcs. */
#ifdef __USE_GNU
# define IPC_INFO 3 /* See ipcs. */
#endif
/* Special key values. */
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
@ -58,15 +60,17 @@ extern int __ipc (int __call, int __first, int __second, int __third,
__END_DECLS
#ifdef __USE_GNU
/* The codes for the functions to use the multiplexer `__ipc'. */
#define IPCOP_semop 1
#define IPCOP_semget 2
#define IPCOP_semctl 3
#define IPCOP_msgsnd 11
#define IPCOP_msgrcv 12
#define IPCOP_msgget 13
#define IPCOP_msgctl 14
#define IPCOP_shmat 21
#define IPCOP_shmdt 22
#define IPCOP_shmget 23
#define IPCOP_shmctl 24
# define IPCOP_semop 1
# define IPCOP_semget 2
# define IPCOP_semctl 3
# define IPCOP_msgsnd 11
# define IPCOP_msgrcv 12
# define IPCOP_msgget 13
# define IPCOP_msgctl 14
# define IPCOP_shmat 21
# define IPCOP_shmdt 22
# define IPCOP_shmget 23
# define IPCOP_shmctl 24
#endif

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
/* 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
@ -31,7 +31,9 @@
#define IPC_RMID 0 /* Remove identifier. */
#define IPC_SET 1 /* Set `ipc_perm' options. */
#define IPC_STAT 2 /* Get `ipc_perm' options. */
#define IPC_INFO 3 /* See ipcs. */
#ifdef __USE_GNU
# define IPC_INFO 3 /* See ipcs. */
#endif
/* Special key values. */
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
@ -58,15 +60,17 @@ extern int __ipc __P ((int __call, int __first, int __second, int __third,
__END_DECLS
#ifdef __USE_GNU
/* The codes for the functions to use the multiplexer `__ipc'. */
#define IPCOP_semop 1
#define IPCOP_semget 2
#define IPCOP_semctl 3
#define IPCOP_msgsnd 11
#define IPCOP_msgrcv 12
#define IPCOP_msgget 13
#define IPCOP_msgctl 14
#define IPCOP_shmat 21
#define IPCOP_shmdt 22
#define IPCOP_shmget 23
#define IPCOP_shmctl 24
# define IPCOP_semop 1
# define IPCOP_semget 2
# define IPCOP_semctl 3
# define IPCOP_msgsnd 11
# define IPCOP_msgrcv 12
# define IPCOP_msgget 13
# define IPCOP_msgctl 14
# define IPCOP_shmat 21
# define IPCOP_shmdt 22
# define IPCOP_shmget 23
# define IPCOP_shmctl 24
#endif

View file

@ -32,7 +32,9 @@
#define IPC_RMID 0 /* Remove identifier. */
#define IPC_SET 1 /* Set `ipc_perm' options. */
#define IPC_STAT 2 /* Get `ipc_perm' options. */
#define IPC_INFO 3 /* See ipcs. */
#ifdef __USE_GNU
# define IPC_INFO 3 /* See ipcs. */
#endif
/* Special key values. */
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
@ -51,7 +53,7 @@ struct ipc_perm
unsigned short int mode; /* Read/write permission. */
unsigned short int __pad2;
#else
unsigned int mode; /* Read/write permission. */
__mode_t mode; /* Read/write permission. */
unsigned short int __pad1;
#endif
unsigned short int __seq; /* Sequence number. */

View file

@ -20,12 +20,18 @@
# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
#include <bits/wordsize.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
#define MSG_EXCEPT 020000 /* recv any msg except of specified type */
#ifdef __USE_GNU
# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
#endif
/* Types used in the structure definition. */
typedef unsigned long int msgqnum_t;
typedef unsigned long int msglen_t;
/* Structure of record for one message inside the kernel.
@ -46,8 +52,8 @@ struct msqid_ds
#endif
__time_t msg_ctime; /* time of last change */
unsigned long int __msg_cbytes; /* current number of bytes on queue */
unsigned long int msg_qnum; /* number of messages currently on queue */
unsigned long int msg_qbytes; /* max number of bytes allowed on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
pid_t msg_lspid; /* pid of last msgsnd() */
pid_t msg_lrpid; /* pid of last msgrcv() */
unsigned long int __unused1;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -20,7 +20,6 @@
#define _SYS_MSG_H
#include <features.h>
#include <sys/types.h>
/* Get common definition of System V style IPC. */
#include <sys/ipc.h>
@ -28,15 +27,31 @@
/* Get system dependent definition of `struct msqid_ds' and more. */
#include <bits/msq.h>
/* Define types required by the standard. */
#define __need_time_t
#include <time.h>
#ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
#endif
#ifndef __ssize_t_defined
typedef __ssize_t ssize_t;
# define __ssize_t_defined
#endif
/* The following System V style IPC functions implement a message queue
system. The definition is found in XPG2. */
#ifdef __USE_GNU
/* Template for struct to be used as argument for `msgsnd' and `msgrcv'. */
struct msgbuf
{
long int mtype; /* type of received/sent message */
char mtext[1]; /* text of the message */
};
#endif
__BEGIN_DECLS