Annotation of sys/compat/svr4/svr4_stropts.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: svr4_stropts.h,v 1.5 2002/03/14 01:26:51 millert Exp $ */
2: /* $NetBSD: svr4_stropts.h,v 1.9 1996/10/28 08:46:38 fvdl Exp $ */
3:
4: /*
5: * Copyright (c) 1994 Christos Zoulas
6: * All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: * 3. The name of the author may not be used to endorse or promote products
17: * derived from this software without specific prior written permission
18: *
19: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29: */
30:
31: #ifndef _SVR4_STROPTS_H_
32: #define _SVR4_STROPTS_H_
33:
34:
35: struct svr4_strbuf {
36: int maxlen;
37: int len;
38: char *buf;
39: };
40:
41: #define SVR4_STR ('S' << 8)
42: #define SVR4_I_NREAD (SVR4_STR| 1)
43: #define SVR4_I_PUSH (SVR4_STR| 2)
44: #define SVR4_I_POP (SVR4_STR| 3)
45: #define SVR4_I_LOOK (SVR4_STR| 4)
46: #define SVR4_I_FLUSH (SVR4_STR| 5)
47: #define SVR4_I_SRDOPT (SVR4_STR| 6)
48: #define SVR4_I_GRDOPT (SVR4_STR| 7)
49: #define SVR4_I_STR (SVR4_STR| 8)
50: #define SVR4_I_SETSIG (SVR4_STR| 9)
51: #define SVR4_I_GETSIG (SVR4_STR|10)
52: #define SVR4_I_FIND (SVR4_STR|11)
53: #define SVR4_I_LINK (SVR4_STR|12)
54: #define SVR4_I_UNLINK (SVR4_STR|13)
55: #define SVR4_I_ERECVFD (SVR4_STR|14)
56: #define SVR4_I_PEEK (SVR4_STR|15)
57: #define SVR4_I_FDINSERT (SVR4_STR|16)
58: #define SVR4_I_SENDFD (SVR4_STR|17)
59: #define SVR4_I_RECVFD (SVR4_STR|18)
60: #define SVR4_I_SWROPT (SVR4_STR|19)
61: #define SVR4_I_GWROPT (SVR4_STR|20)
62: #define SVR4_I_LIST (SVR4_STR|21)
63: #define SVR4_I_PLINK (SVR4_STR|22)
64: #define SVR4_I_PUNLINK (SVR4_STR|23)
65: #define SVR4_I_SETEV (SVR4_STR|24)
66: #define SVR4_I_GETEV (SVR4_STR|25)
67: #define SVR4_I_STREV (SVR4_STR|26)
68: #define SVR4_I_UNSTREV (SVR4_STR|27)
69: #define SVR4_I_FLUSHBAND (SVR4_STR|28)
70: #define SVR4_I_CKBAND (SVR4_STR|29)
71: #define SVR4_I_GETBAND (SVR4_STR|30)
72: #define SVR4_I_ATMARK (SVR4_STR|31)
73: #define SVR4_I_SETCLTIME (SVR4_STR|32)
74: #define SVR4_I_GETCLTIME (SVR4_STR|33)
75: #define SVR4_I_CANPUT (SVR4_STR|34)
76:
77: /*
78: * The following two ioctls are OS specific and
79: * undocumented.
80: */
81: #define SVR4__I_BIND_RSVD (SVR4_STR|242)
82: #define SVR4__I_RELE_RSVD (SVR4_STR|243)
83:
84: /* Struct passed for SVR4_I_STR */
85: struct svr4_strioctl {
86: u_long cmd;
87: int timeout;
88: int len;
89: char *buf;
90: };
91:
92:
93: /*
94: * Our internal state for the stream
95: * For now we keep almost nothing... In the future we can keep more
96: * streams state.
97: */
98: struct svr4_strm {
99: int s_family; /* socket family */
100: int s_cmd; /* last getmsg reply or putmsg request */
101: int s_afd; /* last accepted fd; [for fd_insert] */
102: };
103:
104: /*
105: * The following structures are determined empirically.
106: */
107: struct svr4_strmcmd {
108: long cmd; /* command ? */
109: long len; /* Address len */
110: long offs; /* Address offset */
111: long pad[61];
112: };
113:
114: struct svr4_infocmd {
115: long cmd;
116: long tsdu;
117: long etsdu;
118: long cdata;
119: long ddata;
120: long addr;
121: long opt;
122: long tidu;
123: long serv;
124: long current;
125: long provider;
126: };
127:
128: struct svr4_strfdinsert {
129: struct svr4_strbuf ctl;
130: struct svr4_strbuf data;
131: long flags;
132: int fd;
133: int offset;
134: };
135:
136: struct svr4_netaddr_in {
137: u_short family;
138: u_short port;
139: u_long addr;
140: };
141:
142: struct svr4_netaddr_un {
143: u_short family;
144: char path[1];
145: };
146:
147: #define SVR4_ADDROF(sc) (void *) (((char *) (sc)) + (sc)->offs)
148: #define SVR4_C_ADDROF(sc) (const void *) (((const char *) (sc)) + (sc)->offs)
149:
150: struct svr4_strm *svr4_stream_get(struct file *fp);
151:
152: #endif /* !_SVR4_STROPTS */
CVSweb