diff options
| author | Eric Andersen <andersen@codepoet.org> | 2001-09-27 05:25:55 +0000 | 
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2001-09-27 05:25:55 +0000 | 
| commit | fec403c593168e63ad7e6414f6e8df8ab11a7d8f (patch) | |
| tree | 3868f9ddf22cdddb92728f05ea5008f702fca2f8 /libc/sysdeps/linux/arm/bits/stropts.h | |
| parent | 2512c847453c24b928c34beed88902fbb6877b7a (diff) | |
| download | uClibc-alpine-fec403c593168e63ad7e6414f6e8df8ab11a7d8f.tar.bz2 uClibc-alpine-fec403c593168e63ad7e6414f6e8df8ab11a7d8f.tar.xz  | |
Finish syncing up arm
Diffstat (limited to 'libc/sysdeps/linux/arm/bits/stropts.h')
| -rw-r--r-- | libc/sysdeps/linux/arm/bits/stropts.h | 227 | 
1 files changed, 227 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/arm/bits/stropts.h b/libc/sysdeps/linux/arm/bits/stropts.h new file mode 100644 index 000000000..21538c31d --- /dev/null +++ b/libc/sysdeps/linux/arm/bits/stropts.h @@ -0,0 +1,227 @@ +/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. +   This file is part of the GNU C Library. + +   The GNU C Library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 of the License, or (at your option) any later version. + +   The GNU C Library is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */ + +#ifndef _BITS_STROPTS_H +#define _BITS_STROPTS_H	1 + +#include <bits/types.h> + +/* Macros used as `request' argument to `ioctl'.  */ +#define __SID		('S' << 8) + +#define I_NREAD	    (__SID | 1)	/* Counts the number of data bytes in the data +				   block in the first message.  */ +#define I_PUSH	    (__SID | 2)	/* Push STREAMS module onto top of the current +				   STREAM, just below the STREAM head.  */ +#define I_POP	    (__SID | 3)	/* Remove STREAMS module from just below the +				   STREAM head.  */ +#define I_LOOK	    (__SID | 4)	/* Retrieve the name of the module just below +				   the STREAM head and place it in a character +				   string.  */ +#define I_FLUSH	    (__SID | 5)	/* Flush all input and/or output.  */ +#define I_SRDOPT    (__SID | 6)	/* Sets the read mode.  */ +#define I_GRDOPT    (__SID | 7)	/* Returns the current read mode setting.  */ +#define I_STR	    (__SID | 8)	/* Construct an internal STREAMS `ioctl' +				   message and send that message downstream. */ +#define I_SETSIG    (__SID | 9)	/* Inform the STREAM head that the process +				   wants the SIGPOLL signal issued.  */ +#define I_GETSIG    (__SID |10) /* Return the events for which the calling +				   process is currently registered to be sent +				   a SIGPOLL signal.  */ +#define I_FIND	    (__SID |11) /* Compares the names of all modules currently +				   present in the STREAM to the name pointed to +				   by `arg'.  */ +#define I_LINK	    (__SID |12) /* Connect two STREAMs.  */ +#define I_UNLINK    (__SID |13) /* Disconnects the two STREAMs.  */ +#define I_PEEK	    (__SID |15) /* Allows a process to retrieve the information +				   in the first message on the STREAM head read +				   queue without taking the message off the +				   queue.  */ +#define I_FDINSERT  (__SID |16) /* Create a message from the specified +				   buffer(s), adds information about another +				   STREAM, and send the message downstream.  */ +#define I_SENDFD    (__SID |17) /* Requests the STREAM associated with `fildes' +				   to send a message, containing a file +				   pointer, to the STREAM head at the other end +				   of a STREAMS pipe.  */ +#define I_RECVFD    (__SID |14) /* Non-EFT definition.  */ +#define I_SWROPT    (__SID |19) /* Set the write mode.  */ +#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 +				   link.  */ +#define I_PUNLINK   (__SID |23) /* Disconnect the two STREAMs that were +				   connected with a persistent link.  */ +#define I_FLUSHBAND (__SID |28) /* Flush only band specified.  */ +#define I_CKBAND    (__SID |29) /* Check if the message of a given priority +				   band exists on the STREAM head read +				   queue.  */ +#define I_GETBAND   (__SID |30) /* Return the priority band of the first +				   message on the STREAM head read queue.  */ +#define I_ATMARK    (__SID |31) /* See if the current message on the STREAM +				   head read queue is "marked" by some module +				   downstream.  */ +#define I_SETCLTIME (__SID |32) /* Set the time the STREAM head will delay when +				   a STREAM is closing and there is data on +				   the write queues.  */ +#define I_GETCLTIME (__SID |33) /* Get current value for closing timeout.  */ +#define I_CANPUT    (__SID |34) /* Check if a certain band is writable.  */ + + +/* Used in `I_LOOK' request.  */ +#define FMNAMESZ	8	/* compatibility w/UnixWare/Solaris.  */ + +/* Flush options.  */ +#define FLUSHR		0x01	/* Flush read queues.  */ +#define FLUSHW		0x02	/* Flush write queues.  */ +#define FLUSHRW		0x03	/* Flush read and write queues.  */ +#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 +				   message, has arrived.  */ +#define S_HIPRI		0x0002	/* A high-priority message is present.  */ +#define S_OUTPUT	0x0004	/* The write queue for normal data is no longer +				   full.  */ +#define S_MSG		0x0008	/* A STREAMS signal message that contains the +				   SIGPOLL signal reaches the front of the +				   STREAM head read queue.  */ +#define S_ERROR		0x0010	/* Notification of an error condition.  */ +#define S_HANGUP	0x0020	/* Notification of a hangup.  */ +#define S_RDNORM	0x0040	/* A normal message has arrived.  */ +#define S_WRNORM	S_OUTPUT +#define S_RDBAND	0x0080	/* A message with a non-zero priority has +				   arrived.  */ +#define S_WRBAND	0x0100	/* The write queue for a non-zero priority +				   band is no longer full.  */ +#define S_BANDURG	0x0200	/* When used in conjunction with S_RDBAND, +				   SIGURG is generated instead of SIGPOLL when +				   a priority message reaches the front of the +				   STREAM head read queue.  */ + +/* Option for `I_PEEK'.  */ +#define RS_HIPRI	0x01	/* Only look for high-priority messages.  */ + +/* Options for `I_SRDOPT'.  */ +#define RNORM		0x0000	/* Byte-STREAM mode, the default.  */ +#define RMSGD		0x0001	/* Message-discard mode.   */ +#define RMSGN		0x0002	/* Message-nondiscard mode.   */ +#define RPROTDAT	0x0004	/* Deliver the control part of a message as +				   data.  */ +#define RPROTDIS	0x0008	/* Discard the control part of a message, +				   delivering any data part.  */ +#define RPROTNORM	0x0010	/* Fail `read' with EBADMSG if a message +				   containing a control part is at the front +				   of the STREAM head read queue.  */ +#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.  */ +#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.  */ +#define LASTMARK	0x02	/* Check if the message is the last one marked +				   on the queue.  */ + +/* Argument for `I_UNLINK'.  */ +#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'.  */ +#define MSG_HIPRI	0x01	/* Send/receive high priority message.  */ +#define MSG_ANY		0x02	/* Receive any message.  */ +#define MSG_BAND	0x04	/* Receive message from specified band.  */ + +/* Values returned by getmsg and getpmsg */ +#define MORECTL		1	/* More control information is left in +				   message.  */ +#define MOREDATA	2	/* More data is left in message.  */ + + +/* Structure used for the I_FLUSHBAND ioctl on streams.  */ +struct bandinfo +  { +    unsigned char bi_pri; +    int bi_flag; +  }; + +struct strbuf +  { +    int maxlen;		/* Maximum buffer length.  */ +    int len;		/* Length of data.  */ +    char *buf;		/* Pointer to buffer.  */ +  }; + +struct strpeek +  { +    struct strbuf ctlbuf; +    struct strbuf databuf; +    t_uscalar_t flags;			/* UnixWare/Solaris compatibility.  */ +  }; + +struct strfdinsert +  { +    struct strbuf ctlbuf; +    struct strbuf databuf; +    t_uscalar_t flags;			/* UnixWare/Solaris compatibility.  */ +    int fildes; +    int offset; +  }; + +struct strioctl +  { +    int ic_cmd; +    int ic_timout; +    int ic_len; +    char *ic_dp; +  }; + +struct strrecvfd +  { +    int fd; +    uid_t uid; +    gid_t gid; +    char __fill[8];			/* UnixWare/Solaris compatibility */ +  }; + + +struct str_mlist +  { +    char l_name[FMNAMESZ + 1]; +  }; + +struct str_list +  { +    int sl_nmods; +    struct str_mlist *sl_modlist; +  }; + +#endif /* bits/stropts.h */  | 
