Logo Search packages:      
Sourcecode: linux version File versions  Download package

socksys.h

/* $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


Generated by  Doxygen 1.6.0   Back to index