17777dab0Sopenharmony_ci#ifndef _STROPTS_H
27777dab0Sopenharmony_ci#define _STROPTS_H
37777dab0Sopenharmony_ci
47777dab0Sopenharmony_ci#ifdef __cplusplus
57777dab0Sopenharmony_ciextern "C" {
67777dab0Sopenharmony_ci#endif
77777dab0Sopenharmony_ci
87777dab0Sopenharmony_ci#define __SID		('S' << 8)
97777dab0Sopenharmony_ci
107777dab0Sopenharmony_ci#define I_NREAD		(__SID | 1)
117777dab0Sopenharmony_ci#define I_PUSH		(__SID | 2)
127777dab0Sopenharmony_ci#define I_POP		(__SID | 3)
137777dab0Sopenharmony_ci#define I_LOOK		(__SID | 4)
147777dab0Sopenharmony_ci#define I_FLUSH		(__SID | 5)
157777dab0Sopenharmony_ci#define I_SRDOPT	(__SID | 6)
167777dab0Sopenharmony_ci#define I_GRDOPT	(__SID | 7)
177777dab0Sopenharmony_ci#define I_STR		(__SID | 8)
187777dab0Sopenharmony_ci#define I_SETSIG	(__SID | 9)
197777dab0Sopenharmony_ci#define I_GETSIG	(__SID |10)
207777dab0Sopenharmony_ci#define I_FIND		(__SID |11)
217777dab0Sopenharmony_ci#define I_LINK		(__SID |12)
227777dab0Sopenharmony_ci#define I_UNLINK	(__SID |13)
237777dab0Sopenharmony_ci#define I_PEEK		(__SID |15)
247777dab0Sopenharmony_ci#define I_FDINSERT	(__SID |16)
257777dab0Sopenharmony_ci#define I_SENDFD	(__SID |17)
267777dab0Sopenharmony_ci#define I_RECVFD	(__SID |14)
277777dab0Sopenharmony_ci#define I_SWROPT	(__SID |19)
287777dab0Sopenharmony_ci#define I_GWROPT	(__SID |20)
297777dab0Sopenharmony_ci#define I_LIST		(__SID |21)
307777dab0Sopenharmony_ci#define I_PLINK		(__SID |22)
317777dab0Sopenharmony_ci#define I_PUNLINK	(__SID |23)
327777dab0Sopenharmony_ci#define I_FLUSHBAND	(__SID |28)
337777dab0Sopenharmony_ci#define I_CKBAND	(__SID |29)
347777dab0Sopenharmony_ci#define I_GETBAND	(__SID |30)
357777dab0Sopenharmony_ci#define I_ATMARK	(__SID |31)
367777dab0Sopenharmony_ci#define I_SETCLTIME	(__SID |32)
377777dab0Sopenharmony_ci#define I_GETCLTIME	(__SID |33)
387777dab0Sopenharmony_ci#define I_CANPUT	(__SID |34)
397777dab0Sopenharmony_ci
407777dab0Sopenharmony_ci#define FMNAMESZ	8
417777dab0Sopenharmony_ci
427777dab0Sopenharmony_ci#define FLUSHR		0x01
437777dab0Sopenharmony_ci#define FLUSHW		0x02
447777dab0Sopenharmony_ci#define FLUSHRW		0x03
457777dab0Sopenharmony_ci#define FLUSHBAND	0x04
467777dab0Sopenharmony_ci
477777dab0Sopenharmony_ci#define S_INPUT		0x0001
487777dab0Sopenharmony_ci#define S_HIPRI		0x0002
497777dab0Sopenharmony_ci#define S_OUTPUT	0x0004
507777dab0Sopenharmony_ci#define S_MSG		0x0008
517777dab0Sopenharmony_ci#define S_ERROR		0x0010
527777dab0Sopenharmony_ci#define S_HANGUP	0x0020
537777dab0Sopenharmony_ci#define S_RDNORM	0x0040
547777dab0Sopenharmony_ci#define S_WRNORM	S_OUTPUT
557777dab0Sopenharmony_ci#define S_RDBAND	0x0080
567777dab0Sopenharmony_ci#define S_WRBAND	0x0100
577777dab0Sopenharmony_ci#define S_BANDURG	0x0200
587777dab0Sopenharmony_ci
597777dab0Sopenharmony_ci#define RS_HIPRI	0x01
607777dab0Sopenharmony_ci
617777dab0Sopenharmony_ci#define RNORM		0x0000
627777dab0Sopenharmony_ci#define RMSGD		0x0001
637777dab0Sopenharmony_ci#define RMSGN		0x0002
647777dab0Sopenharmony_ci#define RPROTDAT	0x0004
657777dab0Sopenharmony_ci#define RPROTDIS	0x0008
667777dab0Sopenharmony_ci#define RPROTNORM	0x0010
677777dab0Sopenharmony_ci#define RPROTMASK	0x001C
687777dab0Sopenharmony_ci
697777dab0Sopenharmony_ci#define SNDZERO		0x001
707777dab0Sopenharmony_ci#define SNDPIPE		0x002
717777dab0Sopenharmony_ci
727777dab0Sopenharmony_ci#define ANYMARK		0x01
737777dab0Sopenharmony_ci#define LASTMARK	0x02
747777dab0Sopenharmony_ci
757777dab0Sopenharmony_ci#define MUXID_ALL	(-1)
767777dab0Sopenharmony_ci
777777dab0Sopenharmony_ci#define MSG_HIPRI	0x01
787777dab0Sopenharmony_ci#define MSG_ANY		0x02
797777dab0Sopenharmony_ci#define MSG_BAND	0x04
807777dab0Sopenharmony_ci
817777dab0Sopenharmony_ci#define MORECTL		1
827777dab0Sopenharmony_ci#define MOREDATA	2
837777dab0Sopenharmony_ci
847777dab0Sopenharmony_cistruct bandinfo {
857777dab0Sopenharmony_ci	unsigned char bi_pri;
867777dab0Sopenharmony_ci	int bi_flag;
877777dab0Sopenharmony_ci};
887777dab0Sopenharmony_ci
897777dab0Sopenharmony_cistruct strbuf {
907777dab0Sopenharmony_ci	int maxlen;
917777dab0Sopenharmony_ci	int len;
927777dab0Sopenharmony_ci	char *buf;
937777dab0Sopenharmony_ci};
947777dab0Sopenharmony_ci
957777dab0Sopenharmony_cistruct strpeek {
967777dab0Sopenharmony_ci	struct strbuf ctlbuf;
977777dab0Sopenharmony_ci	struct strbuf databuf;
987777dab0Sopenharmony_ci	unsigned flags;
997777dab0Sopenharmony_ci};
1007777dab0Sopenharmony_ci
1017777dab0Sopenharmony_cistruct strfdinsert {
1027777dab0Sopenharmony_ci	struct strbuf ctlbuf;
1037777dab0Sopenharmony_ci	struct strbuf databuf;
1047777dab0Sopenharmony_ci	unsigned flags;
1057777dab0Sopenharmony_ci	int fildes;
1067777dab0Sopenharmony_ci	int offset;
1077777dab0Sopenharmony_ci};
1087777dab0Sopenharmony_ci
1097777dab0Sopenharmony_cistruct strioctl {
1107777dab0Sopenharmony_ci	int ic_cmd;
1117777dab0Sopenharmony_ci	int ic_timout;
1127777dab0Sopenharmony_ci	int ic_len;
1137777dab0Sopenharmony_ci	char *ic_dp;
1147777dab0Sopenharmony_ci};
1157777dab0Sopenharmony_ci
1167777dab0Sopenharmony_cistruct strrecvfd {
1177777dab0Sopenharmony_ci	int fd;
1187777dab0Sopenharmony_ci	int uid;
1197777dab0Sopenharmony_ci	int gid;
1207777dab0Sopenharmony_ci	char __fill[8];
1217777dab0Sopenharmony_ci};
1227777dab0Sopenharmony_ci
1237777dab0Sopenharmony_cistruct str_mlist {
1247777dab0Sopenharmony_ci	char l_name[FMNAMESZ + 1];
1257777dab0Sopenharmony_ci};
1267777dab0Sopenharmony_ci
1277777dab0Sopenharmony_cistruct str_list {
1287777dab0Sopenharmony_ci	int sl_nmods;
1297777dab0Sopenharmony_ci	struct str_mlist *sl_modlist;
1307777dab0Sopenharmony_ci};
1317777dab0Sopenharmony_ci
1327777dab0Sopenharmony_ciint ioctl(int, int, ...);
1337777dab0Sopenharmony_ci
1347777dab0Sopenharmony_ci#ifdef __cplusplus
1357777dab0Sopenharmony_ci}
1367777dab0Sopenharmony_ci#endif
1377777dab0Sopenharmony_ci
1387777dab0Sopenharmony_ci#endif
139