/* Copyright (C) 1986-1994 by Digital Mars. $Revision: 1.1.1.1 $ */ #if __SC__ || __RCC__ #pragma once #endif #ifndef __SYS_STROPTS_H #define __SYS_STROPTS_H 1 #include #define SNDZERO 0x001 #define SNDPIPE 0x002 #define RNORM 0x000 #define RMSGD 0x001 #define RMSGN 0x002 #define RMODEMASK 0x003 #define RPROTDAT 0x004 #define RPROTDIS 0x008 #define RPROTNORM 0x010 #define RPROTMASK 0x01c #define FLUSHR 0x01 #define FLUSHW 0x02 #define FLUSHRW 0x03 #define FLUSHBAND 0x04 #define S_INPUT 0x0001 #define S_HIPRI 0x0002 #define S_OUTPUT 0x0004 #define S_MSG 0x0008 #define S_ERROR 0x0010 #define S_HANGUP 0x0020 #define S_RDNORM 0x0040 #define S_WRNORM S_OUTPUT #define S_RDBAND 0x0080 #define S_WRBAND 0x0100 #define S_BANDURG 0x0200 #define RS_HIPRI 0x01 #define DONT_BLOCK 0x02 #define MSG_HIPRI 0x01 #define MSG_ANY 0x02 #define MSG_BAND 0x04 #define MORECTL 1 #define MOREDATA 2 #define MUXID_ALL (-1) #define ANYMARK 0x01 #define LASTMARK 0x02 /* Stream Ioctl defines */ #define STR ('S'<<8) /* (STR|000) in use */ #define I_NREAD (STR|01) #define I_PUSH (STR|02) #define I_POP (STR|03) #define I_LOOK (STR|04) #define I_FLUSH (STR|05) #define I_SRDOPT (STR|06) #define I_GRDOPT (STR|07) #define I_STR (STR|010) #define I_SETSIG (STR|011) #define I_GETSIG (STR|012) #define I_FIND (STR|013) #define I_LINK (STR|014) #define I_UNLINK (STR|015) /* (STR|016) in use */ #define I_PEEK (STR|017) #define I_FDINSERT (STR|020) #define I_SENDFD (STR|021) #define I_RECVFD (STR|022) #define I_SWROPT (STR|023) #define I_GWROPT (STR|024) #define I_LIST (STR|025) #define I_PLINK (STR|026) #define I_PUNLINK (STR|027) #define I_FLUSHBAND (STR|034) #define I_CKBAND (STR|035) #define I_GETBAND (STR|036) #define I_ATMARK (STR|037) #define I_SETCLTIME (STR|040) #define I_GETCLTIME (STR|041) #define I_CANPUT (STR|042) #define I_S_RECVFD (STR|043) /* Same ioctl as O_MODESWITCH */ #define X_STR ('S'<<8) /* SCO XENIX Streams ioctl's */ #define X_I_BASE (X_STR|0200) #define X_I_NREAD (X_STR|0201) #define X_I_PUSH (X_STR|0202) #define X_I_POP (X_STR|0203) #define X_I_LOOK (X_STR|0204) #define X_I_FLUSH (X_STR|0205) #define X_I_SRDOPT (X_STR|0206) #define X_I_GRDOPT (X_STR|0207) #define X_I_STR (X_STR|0210) #define X_I_SETSIG (X_STR|0211) #define X_I_GETSIG (X_STR|0212) #define X_I_FIND (X_STR|0213) #define X_I_LINK (X_STR|0214) #define X_I_UNLINK (X_STR|0215) #define X_I_PEEK (X_STR|0217) #define X_I_FDINSERT (X_STR|0220) #define X_I_SENDFD (X_STR|0221) #define X_I_RECVFD (X_STR|0222) struct strioctl { int ic_cmd; int ic_timout; int ic_len; char *ic_dp; }; #define INFTIM -1 struct strbuf { int maxlen; int len; char *buf; }; struct strpeek { struct strbuf ctlbuf; struct strbuf databuf; long flags; }; struct strfdinsert { struct strbuf ctlbuf; struct strbuf databuf; long flags; int fildes; int offset; }; struct strrecvfd { int fd; o_uid_t uid; o_gid_t gid; char fill[8]; }; #ifndef FMNAMESZ #define FMNAMESZ 8 #endif struct str_mlist { char l_name[FMNAMESZ+1]; }; struct str_list { int sl_nmods; struct str_mlist *sl_modlist; }; struct bandinfo { unsigned char bi_pri; int bi_flag; }; #if __cplusplus extern "C" { #endif #if !__STDC__ int __cdecl getmsg(int, struct strbuf *, struct strbuf *, int *); int __cdecl putmsg(int, const struct strbuf *, const struct strbuf *, int); #endif #if __cplusplus } #endif #endif