github.com/afumu/libc@v0.0.6/musl/include/stropts.h (about)

     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