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