209 lines
4.2 KiB
C
209 lines
4.2 KiB
C
/* $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
|
|
|