blob: 5d1b78ec1600854a7156699e74d0e96b2cdf23c7 [file] [log] [blame]
/* $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