/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* from S5R3 sys/stropts.h 10.7 */ #pragma ident "%Z%%M% %I% %E% SMI" /* Copyright (c) 1984 AT&T */ /* All Rights Reserved */ #ifndef _sys_stropts_h #define _sys_stropts_h /* * Read options */ #define RNORM 0 /* read msg norm */ #define RMSGD 1 /* read msg discard */ #define RMSGN 2 /* read msg no discard */ /* * Flush options */ #define FLUSHR 1 /* flush read queue */ #define FLUSHW 2 /* flush write queue */ #define FLUSHRW 3 /* flush both queues */ /* * Events for which to be sent SIGPOLL signal */ #define S_INPUT 001 /* regular priority msg on read Q */ #define S_HIPRI 002 /* high priority msg on read Q */ #define S_OUTPUT 004 /* write Q no longer full */ #define S_MSG 010 /* signal msg at front of read Q */ /* * Flags for recv() and send() syscall arguments */ #define RS_HIPRI 1 /* send/recv high priority message */ /* * Flags returned as value of recv() syscall */ #define MORECTL 1 /* more ctl info is left in message */ #define MOREDATA 2 /* more data is left in message */ #ifndef FMNAMESZ #define FMNAMESZ 8 #endif #include /* * Stream Ioctl defines */ #define I_NREAD _IOR(S,01,int) #define I_PUSH _IOWN(S,02,FMNAMESZ+1) #define I_POP _IO(S,03) #define I_LOOK _IORN(S,04,FMNAMESZ+1) #define I_FLUSH _IO(S,05) #define I_SRDOPT _IO(S,06) #define I_GRDOPT _IOR(S,07,int) #define I_STR _IOWR(S,010,struct strioctl) #define I_SETSIG _IO(S,011) #define I_GETSIG _IOR(S,012,int) #define I_FIND _IOWN(S,013,FMNAMESZ+1) #define I_LINK _IO(S,014) #define I_UNLINK _IO(S,015) #define I_PEEK _IOWR(S,017,struct strpeek) #define I_FDINSERT _IOW(S,020,struct strfdinsert) #define I_SENDFD _IO(S,021) #define I_RECVFD _IOR(S,022,struct strrecvfd) #define I_PLINK _IO(S,023) #define I_PUNLINK _IO(S,024) /* * User level ioctl format for ioctl that go downstream I_STR */ struct strioctl { int ic_cmd; /* command */ int ic_timout; /* timeout value */ int ic_len; /* length of data */ char *ic_dp; /* pointer to data */ }; /* * Value for timeouts (ioctl, select) that denotes infinity */ #define INFTIM -1 /* * Stream buffer structure for send and recv system calls */ struct strbuf { int maxlen; /* no. of bytes in buffer */ int len; /* no. of bytes returned */ char *buf; /* pointer to data */ }; /* * stream I_PEEK ioctl format */ struct strpeek { struct strbuf ctlbuf; struct strbuf databuf; long flags; }; /* * stream I_FDINSERT ioctl format */ struct strfdinsert { struct strbuf ctlbuf; struct strbuf databuf; long flags; int fildes; int offset; }; /* * receive file descriptor structure */ struct strrecvfd { #ifdef KERNEL union { struct file *fp; int fd; } f; #else int fd; #endif unsigned short uid; unsigned short gid; char fill[8]; }; #endif /*!_sys_stropts_h*/