stropts.h raw

   1  #ifndef _STROPTS_H
   2  #define _STROPTS_H
   3  
   4  #ifdef __cplusplus
   5  extern "C" {
   6  #endif
   7  
   8  #define __SID		('S' << 8)
   9  
  10  #define I_NREAD		(__SID | 1)
  11  #define I_PUSH		(__SID | 2)
  12  #define I_POP		(__SID | 3)
  13  #define I_LOOK		(__SID | 4)
  14  #define I_FLUSH		(__SID | 5)
  15  #define I_SRDOPT	(__SID | 6)
  16  #define I_GRDOPT	(__SID | 7)
  17  #define I_STR		(__SID | 8)
  18  #define I_SETSIG	(__SID | 9)
  19  #define I_GETSIG	(__SID |10)
  20  #define I_FIND		(__SID |11)
  21  #define I_LINK		(__SID |12)
  22  #define I_UNLINK	(__SID |13)
  23  #define I_PEEK		(__SID |15)
  24  #define I_FDINSERT	(__SID |16)
  25  #define I_SENDFD	(__SID |17)
  26  #define I_RECVFD	(__SID |14)
  27  #define I_SWROPT	(__SID |19)
  28  #define I_GWROPT	(__SID |20)
  29  #define I_LIST		(__SID |21)
  30  #define I_PLINK		(__SID |22)
  31  #define I_PUNLINK	(__SID |23)
  32  #define I_FLUSHBAND	(__SID |28)
  33  #define I_CKBAND	(__SID |29)
  34  #define I_GETBAND	(__SID |30)
  35  #define I_ATMARK	(__SID |31)
  36  #define I_SETCLTIME	(__SID |32)
  37  #define I_GETCLTIME	(__SID |33)
  38  #define I_CANPUT	(__SID |34)
  39  
  40  #define FMNAMESZ	8
  41  
  42  #define FLUSHR		0x01
  43  #define FLUSHW		0x02
  44  #define FLUSHRW		0x03
  45  #define FLUSHBAND	0x04
  46  
  47  #define S_INPUT		0x0001
  48  #define S_HIPRI		0x0002
  49  #define S_OUTPUT	0x0004
  50  #define S_MSG		0x0008
  51  #define S_ERROR		0x0010
  52  #define S_HANGUP	0x0020
  53  #define S_RDNORM	0x0040
  54  #define S_WRNORM	S_OUTPUT
  55  #define S_RDBAND	0x0080
  56  #define S_WRBAND	0x0100
  57  #define S_BANDURG	0x0200
  58  
  59  #define RS_HIPRI	0x01
  60  
  61  #define RNORM		0x0000
  62  #define RMSGD		0x0001
  63  #define RMSGN		0x0002
  64  #define RPROTDAT	0x0004
  65  #define RPROTDIS	0x0008
  66  #define RPROTNORM	0x0010
  67  #define RPROTMASK	0x001C
  68  
  69  #define SNDZERO		0x001
  70  #define SNDPIPE		0x002
  71  
  72  #define ANYMARK		0x01
  73  #define LASTMARK	0x02
  74  
  75  #define MUXID_ALL	(-1)
  76  
  77  #define MSG_HIPRI	0x01
  78  #define MSG_ANY		0x02
  79  #define MSG_BAND	0x04
  80  
  81  #define MORECTL		1
  82  #define MOREDATA	2
  83  
  84  struct bandinfo {
  85  	unsigned char bi_pri;
  86  	int bi_flag;
  87  };
  88  
  89  struct strbuf {
  90  	int maxlen;
  91  	int len;
  92  	char *buf;
  93  };
  94  
  95  struct strpeek {
  96  	struct strbuf ctlbuf;
  97  	struct strbuf databuf;
  98  	unsigned flags;
  99  };
 100  
 101  struct strfdinsert {
 102  	struct strbuf ctlbuf;
 103  	struct strbuf databuf;
 104  	unsigned flags;
 105  	int fildes;
 106  	int offset;
 107  };
 108  
 109  struct strioctl {
 110  	int ic_cmd;
 111  	int ic_timout;
 112  	int ic_len;
 113  	char *ic_dp;
 114  };
 115  
 116  struct strrecvfd {
 117  	int fd;
 118  	int uid;
 119  	int gid;
 120  	char __fill[8];
 121  };
 122  
 123  struct str_mlist {
 124  	char l_name[FMNAMESZ + 1];
 125  };
 126  
 127  struct str_list {
 128  	int sl_nmods;
 129  	struct str_mlist *sl_modlist;
 130  };
 131  
 132  int isastream(int);
 133  int ioctl(int, int, ...);
 134  
 135  #ifdef __cplusplus
 136  }
 137  #endif
 138  
 139  #endif
 140