fill in junk in stropts.h
authorRich Felker <dalias@aerifal.cx>
Fri, 1 Jul 2011 00:23:24 +0000 (20:23 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 1 Jul 2011 00:23:24 +0000 (20:23 -0400)
STREAMS are utterly useless as far as I can tell, but some software
was apparently broken by the presence of stropts.h but lack of macros
it's supposed to define...

include/stropts.h

index 80776ba637d79896fe3884edf3e01c80140a1c94..36d84bbba2b6da0d673ce01e7044fd8c6933678c 100644 (file)
@@ -5,7 +5,129 @@
 extern "C" {
 #endif
 
-// FIXME
+#define __SID          ('S' << 8)
+
+#define I_NREAD                (__SID | 1)
+#define I_PUSH         (__SID | 2)
+#define I_POP          (__SID | 3)
+#define I_LOOK         (__SID | 4)
+#define I_FLUSH                (__SID | 5)
+#define I_SRDOPT       (__SID | 6)
+#define I_GRDOPT       (__SID | 7)
+#define I_STR          (__SID | 8)
+#define I_SETSIG       (__SID | 9)
+#define I_GETSIG       (__SID |10)
+#define I_FIND         (__SID |11)
+#define I_LINK         (__SID |12)
+#define I_UNLINK       (__SID |13)
+#define I_PEEK         (__SID |15)
+#define I_FDINSERT     (__SID |16)
+#define I_SENDFD       (__SID |17)
+#define I_RECVFD       (__SID |14)
+#define I_SWROPT       (__SID |19)
+#define I_GWROPT       (__SID |20)
+#define I_LIST         (__SID |21)
+#define I_PLINK                (__SID |22)
+#define I_PUNLINK      (__SID |23)
+#define I_FLUSHBAND    (__SID |28)
+#define I_CKBAND       (__SID |29)
+#define I_GETBAND      (__SID |30)
+#define I_ATMARK       (__SID |31)
+#define I_SETCLTIME    (__SID |32)
+#define I_GETCLTIME    (__SID |33)
+#define I_CANPUT       (__SID |34)
+
+#define FMNAMESZ       8
+
+#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 RNORM          0x0000
+#define RMSGD          0x0001
+#define RMSGN          0x0002
+#define RPROTDAT       0x0004
+#define RPROTDIS       0x0008
+#define RPROTNORM      0x0010
+#define RPROTMASK      0x001C
+
+#define SNDZERO                0x001
+#define SNDPIPE                0x002
+
+#define ANYMARK                0x01
+#define LASTMARK       0x02
+
+#define MUXID_ALL      (-1)
+
+#define MSG_HIPRI      0x01
+#define MSG_ANY                0x02
+#define MSG_BAND       0x04
+
+#define MORECTL                1
+#define MOREDATA       2
+
+struct bandinfo {
+       unsigned char bi_pri;
+       int bi_flag;
+};
+
+struct strbuf {
+       int maxlen;
+       int len;
+       char *buf;
+};
+
+struct strpeek {
+       struct strbuf ctlbuf;
+       struct strbuf databuf;
+       unsigned flags;
+};
+
+struct strfdinsert {
+       struct strbuf ctlbuf;
+       struct strbuf databuf;
+       unsigned flags;
+       int fildes;
+       int offset;
+};
+
+struct strioctl {
+       int ic_cmd;
+       int ic_timout;
+       int ic_len;
+       char *ic_dp;
+};
+
+struct strrecvfd {
+       int fd;
+       int uid;
+       int gid;
+       char __fill[8];
+};
+
+struct str_mlist {
+       char l_name[FMNAMESZ + 1];
+};
+
+struct str_list {
+       int sl_nmods;
+       struct str_mlist *sl_modlist;
+};
 
 int ioctl (int, int, ...);