1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
|
/* $Id: socksys.h,v 1.2 1998/03/26 08:46:07 jj Exp $
* socksys.h: Definitions for STREAMS modules emulation code.
*
* Copyright (C) 1998 Patrik Rak (prak3264@ss1000.ms.mff.cuni.cz)
*/
#define MSG_HIPRI 0x01
#define MSG_ANY 0x02
#define MSG_BAND 0x04
#define MORECTL 1
#define MOREDATA 2
#define TBADADDR 1
#define TBADOPT 2
#define TACCES 3
#define TBADF 4
#define TNOADDR 5
#define TOUTSTATE 6
#define TBADSEQ 7
#define TSYSERR 8
#define TLOOK 9
#define TBADDATA 10
#define TBUFOVFLW 11
#define TFLOW 12
#define TNODATA 13
#define TNODIS 14
#define TNOUDERR 15
#define TBADFLAG 16
#define TNOREL 17
#define TNOTSUPPORT 18
#define TSTATECHNG 19
#define T_CONN_REQ 0
#define T_CONN_RES 1
#define T_DISCON_REQ 2
#define T_DATA_REQ 3
#define T_EXDATA_REQ 4
#define T_INFO_REQ 5
#define T_BIND_REQ 6
#define T_UNBIND_REQ 7
#define T_UNITDATA_REQ 8
#define T_OPTMGMT_REQ 9
#define T_ORDREL_REQ 10
#define T_CONN_IND 11
#define T_CONN_CON 12
#define T_DISCON_IND 13
#define T_DATA_IND 14
#define T_EXDATA_IND 15
#define T_INFO_ACK 16
#define T_BIND_ACK 17
#define T_ERROR_ACK 18
#define T_OK_ACK 19
#define T_UNITDATA_IND 20
#define T_UDERROR_IND 21
#define T_OPTMGMT_ACK 22
#define T_ORDREL_IND 23
#define T_NEGOTIATE 0x0004
#define T_FAILURE 0x0040
#define TS_UNBND 0 /* unbound */
#define TS_WACK_BREQ 1 /* waiting for T_BIND_REQ ack */
#define TS_WACK_UREQ 2 /* waiting for T_UNBIND_REQ ack */
#define TS_IDLE 3 /* idle */
#define TS_WACK_OPTREQ 4 /* waiting for T_OPTMGMT_REQ ack */
#define TS_WACK_CREQ 5 /* waiting for T_CONN_REQ ack */
#define TS_WCON_CREQ 6 /* waiting for T_CONN_REQ confirmation */
#define TS_WRES_CIND 7 /* waiting for T_CONN_IND */
#define TS_WACK_CRES 8 /* waiting for T_CONN_RES ack */
#define TS_DATA_XFER 9 /* data transfer */
#define TS_WIND_ORDREL 10 /* releasing read but not write */
#define TS_WREQ_ORDREL 11 /* wait to release write but not read */
#define TS_WACK_DREQ6 12 /* waiting for T_DISCON_REQ ack */
#define TS_WACK_DREQ7 13 /* waiting for T_DISCON_REQ ack */
#define TS_WACK_DREQ9 14 /* waiting for T_DISCON_REQ ack */
#define TS_WACK_DREQ10 15 /* waiting for T_DISCON_REQ ack */
#define TS_WACK_DREQ11 16 /* waiting for T_DISCON_REQ ack */
#define TS_NOSTATES 17
struct T_conn_req {
s32 PRIM_type;
s32 DEST_length;
s32 DEST_offset;
s32 OPT_length;
s32 OPT_offset;
};
struct T_bind_req {
s32 PRIM_type;
s32 ADDR_length;
s32 ADDR_offset;
u32 CONIND_number;
};
struct T_unitdata_req {
s32 PRIM_type;
s32 DEST_length;
s32 DEST_offset;
s32 OPT_length;
s32 OPT_offset;
};
struct T_optmgmt_req {
s32 PRIM_type;
s32 OPT_length;
s32 OPT_offset;
s32 MGMT_flags;
};
struct T_bind_ack {
s32 PRIM_type;
s32 ADDR_length;
s32 ADDR_offset;
u32 CONIND_number;
};
struct T_error_ack {
s32 PRIM_type;
s32 ERROR_prim;
s32 TLI_error;
s32 UNIX_error;
};
struct T_ok_ack {
s32 PRIM_type;
s32 CORRECT_prim;
};
struct T_conn_ind {
s32 PRIM_type;
s32 SRC_length;
s32 SRC_offset;
s32 OPT_length;
s32 OPT_offset;
s32 SEQ_number;
};
struct T_conn_con {
s32 PRIM_type;
s32 RES_length;
s32 RES_offset;
s32 OPT_length;
s32 OPT_offset;
};
struct T_discon_ind {
s32 PRIM_type;
s32 DISCON_reason;
s32 SEQ_number;
};
struct T_unitdata_ind {
s32 PRIM_type;
s32 SRC_length;
s32 SRC_offset;
s32 OPT_length;
s32 OPT_offset;
};
struct T_optmgmt_ack {
s32 PRIM_type;
s32 OPT_length;
s32 OPT_offset;
s32 MGMT_flags;
};
struct opthdr {
s32 level;
s32 name;
s32 len;
char value[0];
};
struct T_primsg {
struct T_primsg *next;
unsigned char pri;
unsigned char band;
int length;
s32 type;
};
struct strbuf {
s32 maxlen;
s32 len;
u32 buf;
} ;
/* Constants used by STREAMS modules emulation code */
typedef char sol_module;
#define MAX_NR_STREAM_MODULES 16
/* Private data structure assigned to sockets. */
struct sol_socket_struct {
int magic;
int modcount;
sol_module module[MAX_NR_STREAM_MODULES];
long state;
int offset;
struct T_primsg *pfirst, *plast;
};
#define SOLARIS_SOCKET_MAGIC 0xADDED
|