mirror of
https://github.com/dimoniche/Moyka.git
synced 2026-01-30 09:53:31 +03:00
626 lines
30 KiB
C
626 lines
30 KiB
C
/*
|
||
*********************************************************************************************************
|
||
* uC/TCP-IP
|
||
* The Embedded TCP/IP Suite
|
||
*
|
||
* (c) Copyright 2003-2007; Micrium, Inc.; Weston, FL
|
||
*
|
||
* All rights reserved. Protected by international copyright laws.
|
||
*
|
||
* uC/TCP-IP is provided in source form for FREE evaluation, for educational
|
||
* use or peaceful research. If you plan on using uC/TCP-IP in a commercial
|
||
* product you need to contact Micrium to properly license its use in your
|
||
* product. We provide ALL the source code for your convenience and to help
|
||
* you experience uC/TCP-IP. The fact that the source code is provided does
|
||
* NOT mean that you can use it without paying a licensing fee.
|
||
*
|
||
* Knowledge of the source code may NOT be used to develop a similar product.
|
||
*
|
||
* Please help us continue to provide the Embedded community with the finest
|
||
* software available. Your honesty is greatly appreciated.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
*
|
||
* NETWORK CONNECTION MANAGEMENT
|
||
*
|
||
* Filename : net_conn.h
|
||
* Version : V1.89
|
||
* Programmer(s) : ITJ
|
||
*********************************************************************************************************
|
||
* Note(s) : (1) Supports network connections for local & remote addresses of the following :
|
||
*
|
||
* (a) Families :
|
||
* (1) IPv4 Connections
|
||
* (A) BSD 4.x Sockets
|
||
*
|
||
* (b) Connection types :
|
||
* (1) Datagram
|
||
* (2) Stream
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* MODULE
|
||
*
|
||
* Note(s) : (1) Connection module is required for :
|
||
*
|
||
* (a) IPv4 Connections
|
||
* (1) BSD 4.x Sockets
|
||
*
|
||
* See also 'net_conn.h Note #1'.
|
||
*
|
||
* (2) The following connection-module-present configuration value MUST be pre-#define'd in
|
||
* 'net_cfg_net.h' PRIOR to all other network modules that require Connection Management
|
||
* Module Configuration (see 'net_cfg_net.h NETWORK CONNECTION MANAGEMENT CONFIGURATION
|
||
* Note #2b') :
|
||
*
|
||
* NET_CONN_MODULE_PRESENT
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#ifdef NET_CONN_MODULE_PRESENT /* See Note #2. */
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* EXTERNS
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#ifdef NET_CONN_MODULE
|
||
#define NET_CONN_EXT
|
||
#else
|
||
#define NET_CONN_EXT extern
|
||
#endif
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* DEFINES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#define NET_CONN_ACCESSED_TH_MIN 10u
|
||
#define NET_CONN_ACCESSED_TH_MAX 65000u
|
||
#define NET_CONN_ACCESSED_TH_DFLT 100u
|
||
|
||
|
||
#define NET_CONN_ID_MIN 0
|
||
#define NET_CONN_ID_MAX (NET_CONN_CFG_NBR_CONN - 1)
|
||
#define NET_CONN_ID_NONE (NET_CONN_ID_MIN - 1)
|
||
|
||
|
||
#define NET_CONN_CLOSE_FULL 0
|
||
#define NET_CONN_CLOSE_HALF 1 /* Conn closed to tx's; open to rx's. */
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION LIST TYPES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#define NET_CONN_LIST_TYPE_NONE 0
|
||
#define NET_CONN_LIST_TYPE_ALL NET_CONN_LIST_TYPE_NONE
|
||
|
||
#define NET_CONN_LIST_TYPE_SERVER 1
|
||
#define NET_CONN_LIST_TYPE_CLIENT 2
|
||
|
||
#define NET_CONN_LIST_TYPE_MAX 3
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION LIST INDICES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#if (NET_CONN_CFG_FAMILY == NET_CONN_FAMILY_IP_V4_SOCK)
|
||
#define NET_CONN_LIST_IX_IP_V4_SOCK_UDP 0
|
||
#define NET_CONN_LIST_IX_IP_V4_SOCK_TCP 1
|
||
#endif
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION ADDRESS DEFINES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#if (NET_CONN_CFG_FAMILY == NET_CONN_FAMILY_IP_V4_SOCK)
|
||
|
||
#define NET_CONN_ADDR_IP_LEN_PORT NET_SOCK_ADDR_IP_LEN_PORT
|
||
#define NET_CONN_ADDR_IP_LEN_ADDR NET_SOCK_ADDR_IP_LEN_ADDR
|
||
|
||
#define NET_CONN_ADDR_IP_IX_BASE NET_SOCK_ADDR_IP_IX_BASE
|
||
#define NET_CONN_ADDR_IP_IX_PORT NET_SOCK_ADDR_IP_IX_PORT
|
||
#define NET_CONN_ADDR_IP_IX_ADDR NET_SOCK_ADDR_IP_IX_ADDR
|
||
|
||
|
||
#define NET_CONN_ADDR_IP_WILD_CARD NET_SOCK_ADDR_IP_WILD_CARD
|
||
#define NET_CONN_ADDR_IP_BROADCAST NET_SOCK_ADDR_IP_BROADCAST
|
||
|
||
#endif
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION FLAG DEFINES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
/* ------------------ NET CONN FLAGS ------------------ */
|
||
#define NET_CONN_FLAG_NONE DEF_BIT_NONE
|
||
#define NET_CONN_FLAG_USED DEF_BIT_00 /* Conn cur used; i.e. NOT in free conn pool. */
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION TYPE DEFINES
|
||
*
|
||
* Note(s) : (1) NET_CONN_TYPE_??? #define values specifically chosen as ASCII representations of the
|
||
* connection types. Memory displays of connection types will display the connection
|
||
* TYPE with the chosen ASCII name.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
/* ------------------ NET CONN TYPES ------------------ */
|
||
#if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
|
||
#define NET_CONN_TYPE_NONE 0x4E4F4E45 /* "NONE" in ASCII. */
|
||
#define NET_CONN_TYPE_CONN 0x434F4E4E /* "CONN" in ASCII. */
|
||
|
||
#else
|
||
|
||
#if (CPU_CFG_DATA_SIZE == CPU_WORD_SIZE_32)
|
||
#define NET_CONN_TYPE_NONE 0x454E4F4E /* "NONE" in ASCII. */
|
||
#define NET_CONN_TYPE_CONN 0x4E4E4F43 /* "CONN" in ASCII. */
|
||
|
||
#elif (CPU_CFG_DATA_SIZE == CPU_WORD_SIZE_16)
|
||
#define NET_CONN_TYPE_NONE 0x4F4E454E /* "NONE" in ASCII. */
|
||
#define NET_CONN_TYPE_CONN 0x4F434E4E /* "CONN" in ASCII. */
|
||
|
||
#else /* Dflt CPU_WORD_SIZE_08. */
|
||
#define NET_CONN_TYPE_NONE 0x4E4F4E45 /* "NONE" in ASCII. */
|
||
#define NET_CONN_TYPE_CONN 0x434F4E4E /* "CONN" in ASCII. */
|
||
|
||
#endif
|
||
#endif
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* DATA TYPES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION QUANTITY DATA TYPE
|
||
*
|
||
* Note(s) : (1) See also 'NETWORK CONNECTION IDENTIFICATION DATA TYPE Note #2'.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
typedef CPU_INT16U NET_CONN_QTY; /* Defines max qty of conns to support. */
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION LIST QUANTITY DATA TYPE
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
typedef CPU_INT08U NET_CONN_LIST_QTY; /* Defines max qty of conn lists to support. */
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION LIST TYPE DATA TYPE
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
typedef CPU_INT08U NET_CONN_LIST_TYPE;
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION LIST INDEX DATA TYPE
|
||
*
|
||
* Note(s) : (1) NET_CONN_LIST_IX_NONE SHOULD be globally #define'd AFTER 'NET_CONN_LIST_IX' data type declared.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
typedef CPU_INT08U NET_CONN_LIST_IX;
|
||
|
||
#define NET_CONN_LIST_IX_NONE DEF_INT_08U_MAX_VAL /* Define as max unsigned val (see Note #1). */
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION FAMILY DATA TYPE
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
typedef CPU_INT08U NET_CONN_FAMILY;
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION IDENTIFICATION DATA TYPE
|
||
*
|
||
* Note(s) : (1) The following Network Connection Module data type MUST be pre-#define'd in 'net_type.h'
|
||
* PRIOR to other network modules/layers that reference this data type (see 'net_type.h
|
||
* NETWORK CONNECTION MANAGEMENT DATA TYPES Note #1') :
|
||
*
|
||
* typedef CPU_INT16S NET_CONN_ID
|
||
*
|
||
* (2) (a) NET_CONN_NBR_MAX SHOULD be globally #define'd AFTER 'NET_CONN_ID' data type declared.
|
||
*
|
||
* (b) Since connection handle identifiers are data-typed as 16-bit signed integers, the
|
||
* maximum number of valid connection identifiers (i.e. non-negative) is the total
|
||
* number of positive values that 16-bit signed integers support.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
|
||
#define NET_CONN_NBR_MAX DEF_INT_16S_MAX_VAL /* See Note #2. */
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION ADDRESS LENGTH DATA TYPE
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
typedef CPU_INT16U NET_CONN_ADDR_LEN;
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* NETWORK CONNECTION DATA TYPE
|
||
*
|
||
* NET_CONN
|
||
* |-------------|
|
||
* | Conn Type |
|
||
* Previous |-------------|
|
||
* Connection <----------O |
|
||
* Link |-------------| Next
|
||
* | O----------> Connection
|
||
* Previous |-------------| Link
|
||
* Connection <----------O |
|
||
* |-------------| Next
|
||
* | O----------> Connection
|
||
* |-------------|
|
||
* | O----------> Connection
|
||
* |-------------| List
|
||
* | Connection |
|
||
* | Family |
|
||
* | Protocol |
|
||
* | Type |
|
||
* |-------------|
|
||
* | Conn IDs |
|
||
* |-------------|
|
||
* | Local |
|
||
* | Address |
|
||
* |-------------|
|
||
* | Remote |
|
||
* | Address |
|
||
* |-------------|
|
||
* | Accessed |
|
||
* | Counters |
|
||
* |-------------|
|
||
* | Flags |
|
||
* |-------------|
|
||
*
|
||
*
|
||
* Note(s) : (1) Forced word-alignment at start of connection NOT required since first data member 'Type'
|
||
* is declared as 'CPU_INT32U'.
|
||
*
|
||
* (2) 'PrevChainPtr'/'NextChainPtr'/'PrevConnPtr'/'NextConnPtr'/'ConnList' ideally declared as
|
||
* 'NET_CONN' pointers; declared as 'void' pointers because 'NET_CONN' NOT fully defined at
|
||
* time of declaration.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
typedef struct net_conn {
|
||
NET_TYPE Type; /* Type cfg'd @ init : NET_CONN_TYPE_CONN. */
|
||
|
||
void *PrevChainPtr; /* Ptr to PREV conn list. */
|
||
void *NextChainPtr; /* Ptr to NEXT conn list. */
|
||
|
||
void *PrevConnPtr; /* Ptr to PREV conn. */
|
||
void *NextConnPtr; /* Ptr to NEXT conn. */
|
||
|
||
void **ConnList; /* Conn list. */
|
||
|
||
|
||
NET_CONN_FAMILY Family; /* Conn family. */
|
||
NET_CONN_LIST_IX ProtocolListIx; /* Conn protocol list ix. */
|
||
NET_CONN_LIST_TYPE ConnListType; /* Conn list type. */
|
||
|
||
|
||
NET_CONN_ID ID; /* Conn id. */
|
||
NET_CONN_ID ID_App; /* App layer conn id. */
|
||
NET_CONN_ID ID_AppClone; /* App layer conn id clone. */
|
||
NET_CONN_ID ID_Transport; /* Transport layer conn id. */
|
||
|
||
|
||
CPU_INT08U AddrLocal[NET_CONN_CFG_ADDR_LEN]; /* Conn local addr. */
|
||
CPU_BOOLEAN AddrLocalValid; /* Conn local addr valid flag. */
|
||
|
||
CPU_INT08U AddrRemote[NET_CONN_CFG_ADDR_LEN]; /* Conn remote addr. */
|
||
CPU_BOOLEAN AddrRemoteValid; /* Conn remote addr valid flag. */
|
||
|
||
|
||
CPU_INT16U ConnChainAccessedCtr; /* Nbr conn chain head accesses. */
|
||
CPU_INT16U ConnAccessedCtr; /* Nbr conn accesses (non-chain head). */
|
||
|
||
|
||
CPU_INT16U Flags; /* Conn flags. */
|
||
} NET_CONN;
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* GLOBAL VARIABLES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
NET_CONN_EXT NET_CONN NetConn_Tbl[NET_CONN_CFG_NBR_CONN];
|
||
NET_CONN_EXT NET_CONN *NetConn_PoolPtr; /* Ptr to pool of free net conns. */
|
||
NET_CONN_EXT NET_STAT_POOL NetConn_PoolStat;
|
||
|
||
/* Arrays of ptrs to net conn lists. */
|
||
NET_CONN_EXT NET_CONN *NetConn_ServerConnListHead[NET_CONN_CFG_PROTOCOL_MAX];
|
||
NET_CONN_EXT NET_CONN *NetConn_ClientConnListHead[NET_CONN_CFG_PROTOCOL_MAX];
|
||
|
||
NET_CONN_EXT NET_CONN *NetConn_ConnListChainPtr; /* Ptr to cur conn list chain to update. */
|
||
NET_CONN_EXT NET_CONN *NetConn_ConnListConnPtr; /* Ptr to cur conn list conn to update. */
|
||
NET_CONN_EXT NET_CONN *NetConn_ConnListNextChainPtr; /* Ptr to next conn list chain to update. */
|
||
NET_CONN_EXT NET_CONN *NetConn_ConnListNextConnPtr; /* Ptr to next conn list conn to update. */
|
||
|
||
|
||
NET_CONN_EXT CPU_INT16U NetConn_AccessedTh_nbr; /* Nbr successful srch's to promote net conns. */
|
||
|
||
|
||
/* Conn addr wildcard cfg. */
|
||
NET_CONN_EXT CPU_BOOLEAN NetConn_AddrWildCardAvail;
|
||
NET_CONN_EXT CPU_INT08U NetConn_AddrWildCard[NET_CONN_CFG_ADDR_LEN];
|
||
|
||
|
||
|
||
#if (NET_CTR_CFG_ERR_EN == DEF_ENABLED) /* ---------------- NET CONN ERRS ----------------- */
|
||
NET_CONN_EXT NET_CTR NetConn_ErrNoneAvailCtr; /* Nbr net conn unavail accesses. */
|
||
NET_CONN_EXT NET_CTR NetConn_ErrNotUsedCtr; /* Nbr unused net conn accesses. */
|
||
|
||
NET_CONN_EXT NET_CTR NetConn_ErrCloseCtr; /* Nbr net conn closes. */
|
||
|
||
NET_CONN_EXT NET_CTR NetConn_ErrInvalidConnCtr; /* Nbr invalid net conn ID accesses. */
|
||
NET_CONN_EXT NET_CTR NetConn_ErrInvalidConnAddrLenCtr; /* Nbr net conns with invalid addr len. */
|
||
NET_CONN_EXT NET_CTR NetConn_ErrInvalidConnAddrInUseCtr; /* Nbr net conns with addr already in use. */
|
||
|
||
NET_CONN_EXT NET_CTR NetConn_ErrInvalidFamilyCtr; /* Nbr net conns with invalid conn family. */
|
||
|
||
NET_CONN_EXT NET_CTR NetConn_ErrInvalidListTypeCtr; /* Nbr net conn list invalid type accesses. */
|
||
NET_CONN_EXT NET_CTR NetConn_ErrInvalidListIxCtr; /* Nbr net conn lists with invalid ix. */
|
||
|
||
#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
|
||
NET_CONN_EXT NET_CTR NetConn_ErrNullPtrCtr; /* Nbr null net conn accesses. */
|
||
|
||
NET_CONN_EXT NET_CTR NetConn_ErrInvalidTypeCtr; /* Nbr net conn invalid type accesses. */
|
||
#endif
|
||
|
||
#endif
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* FUNCTION PROTOTYPES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
void NetConn_Init (void);
|
||
|
||
|
||
|
||
/* ------------ CFG FNCTS ------------- */
|
||
CPU_BOOLEAN NetConn_CfgAccessedTh (CPU_INT16U nbr_access);
|
||
|
||
|
||
|
||
/* ---------- CONN API FNCTS ---------- */
|
||
NET_CONN_ID NetConn_Get (NET_CONN_FAMILY family,
|
||
NET_CONN_LIST_IX protocol_ix,
|
||
NET_ERR *perr);
|
||
|
||
void NetConn_Free (NET_CONN_ID conn_id);
|
||
|
||
|
||
|
||
void NetConn_CloseFromApp (NET_CONN_ID conn_id,
|
||
CPU_BOOLEAN close_conn_transport);
|
||
|
||
void NetConn_CloseFromTransport (NET_CONN_ID conn_id,
|
||
CPU_BOOLEAN close_conn_app);
|
||
|
||
|
||
void NetConn_CloseAllConns (void);
|
||
|
||
void NetConn_CloseAllConnsHandler(void);
|
||
|
||
|
||
|
||
|
||
NET_CONN_ID NetConn_ID_AppGet (NET_CONN_ID conn_id,
|
||
NET_ERR *perr);
|
||
|
||
void NetConn_ID_AppSet (NET_CONN_ID conn_id,
|
||
NET_CONN_ID conn_id_app,
|
||
NET_ERR *perr);
|
||
|
||
|
||
NET_CONN_ID NetConn_ID_AppCloneGet (NET_CONN_ID conn_id,
|
||
NET_ERR *perr);
|
||
|
||
void NetConn_ID_AppCloneSet (NET_CONN_ID conn_id,
|
||
NET_CONN_ID conn_id_app,
|
||
NET_ERR *perr);
|
||
|
||
|
||
NET_CONN_ID NetConn_ID_TransportGet (NET_CONN_ID conn_id,
|
||
NET_ERR *perr);
|
||
|
||
void NetConn_ID_TransportSet (NET_CONN_ID conn_id,
|
||
NET_CONN_ID conn_id_transport,
|
||
NET_ERR *perr);
|
||
|
||
|
||
|
||
void NetConn_AddrLocalGet (NET_CONN_ID conn_id,
|
||
CPU_INT08U *paddr_local,
|
||
NET_CONN_ADDR_LEN *paddr_len,
|
||
NET_ERR *perr);
|
||
|
||
void NetConn_AddrLocalSet (NET_CONN_ID conn_id,
|
||
CPU_INT08U *paddr_local,
|
||
NET_CONN_ADDR_LEN addr_len,
|
||
CPU_BOOLEAN addr_over_wr,
|
||
NET_ERR *perr);
|
||
|
||
|
||
void NetConn_AddrRemoteGet (NET_CONN_ID conn_id,
|
||
CPU_INT08U *paddr_remote,
|
||
NET_CONN_ADDR_LEN *paddr_len,
|
||
NET_ERR *perr);
|
||
|
||
void NetConn_AddrRemoteSet (NET_CONN_ID conn_id,
|
||
CPU_INT08U *paddr_remote,
|
||
NET_CONN_ADDR_LEN addr_len,
|
||
CPU_BOOLEAN addr_over_wr,
|
||
NET_ERR *perr);
|
||
|
||
CPU_BOOLEAN NetConn_AddrRemoteCmp (NET_CONN_ID conn_id,
|
||
CPU_INT08U *paddr_remote,
|
||
NET_CONN_ADDR_LEN addr_len,
|
||
NET_ERR *perr);
|
||
|
||
|
||
|
||
/*$PAGE*/
|
||
/* -------- CONN STATUS FNCTS --------- */
|
||
CPU_BOOLEAN NetConn_IsUsed (NET_CONN_ID conn_id,
|
||
NET_ERR *perr);
|
||
|
||
void NetConn_IsConn (NET_CONN_ID conn_id,
|
||
NET_ERR *perr);
|
||
|
||
|
||
NET_CONN_LIST_TYPE NetConn_GetConnListType (NET_CONN_ID conn_id,
|
||
NET_ERR *perr);
|
||
|
||
|
||
NET_STAT_POOL NetConn_PoolStatGet (void);
|
||
|
||
void NetConn_PoolStatResetMaxUsed(void);
|
||
|
||
|
||
|
||
/* --------- CONN LIST FNCTS ---------- */
|
||
NET_CONN_ID NetConn_Srch (NET_CONN_FAMILY family,
|
||
NET_CONN_LIST_IX protocol_ix,
|
||
NET_CONN_LIST_TYPE conn_list_type,
|
||
CPU_BOOLEAN sec_srch_addr_reqd,
|
||
CPU_INT08U *paddr_local,
|
||
CPU_INT08U *paddr_remote,
|
||
NET_CONN_ADDR_LEN addr_len,
|
||
NET_CONN_ID *pconn_id_transport,
|
||
NET_CONN_ID *pconn_id_app);
|
||
|
||
void NetConn_ListAdd (NET_CONN_ID conn_id,
|
||
NET_CONN_LIST_TYPE conn_list_type,
|
||
NET_ERR *perr);
|
||
|
||
void NetConn_ListUnlink (NET_CONN_ID conn_id,
|
||
NET_ERR *perr);
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* CONFIGURATION ERRORS
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#ifndef NET_CONN_CFG_FAMILY
|
||
#error "NET_CONN_CFG_FAMILY not #define'd in 'net_cfg.h' "
|
||
#error " [MUST be NET_CONN_FAMILY_IP_V4_SOCK]"
|
||
|
||
|
||
|
||
#elif (NET_CONN_CFG_FAMILY == NET_CONN_FAMILY_IP_V4_SOCK)
|
||
/* Correctly configured in 'net_cfg_net.h'; DO NOT MODIFY. */
|
||
#ifndef NET_CONN_CFG_PROTOCOL_MAX
|
||
#error "NET_CONN_CFG_PROTOCOL_MAX not #define'd in 'net_cfg_net.h' "
|
||
#error " [MUST be >= NET_SOCK_PROTOCOL_MAX_MIN ]"
|
||
#error " [ && <= NET_CONN_PROTOCOL_MAX_IP_V4_SOCK]"
|
||
#elif ((NET_CONN_CFG_PROTOCOL_MAX < NET_SOCK_PROTOCOL_MAX_MIN ) || \
|
||
(NET_CONN_CFG_PROTOCOL_MAX > NET_CONN_PROTOCOL_MAX_IP_V4_SOCK))
|
||
#error "NET_CONN_CFG_PROTOCOL_MAX illegally #define'd in 'net_cfg_net.h' "
|
||
#error " [MUST be >= NET_SOCK_PROTOCOL_MAX_MIN ]"
|
||
#error " [ && <= NET_CONN_PROTOCOL_MAX_IP_V4_SOCK]"
|
||
#endif
|
||
|
||
|
||
#ifndef NET_CONN_CFG_ADDR_LEN
|
||
#error "NET_CONN_CFG_ADDR_LEN not #define'd in 'net_cfg_net.h' "
|
||
#error " [MUST be NET_CONN_ADDR_LEN_IP_V4_SOCK]"
|
||
#elif (NET_CONN_CFG_ADDR_LEN != NET_CONN_ADDR_LEN_IP_V4_SOCK)
|
||
#error "NET_CONN_CFG_ADDR_LEN illegally #define'd in 'net_cfg_net.h' "
|
||
#error " [MUST be NET_CONN_ADDR_LEN_IP_V4_SOCK]"
|
||
#endif
|
||
|
||
|
||
|
||
#else
|
||
#error "NET_CONN_CFG_FAMILY illegally #define'd in 'net_cfg.h' "
|
||
#error " [MUST be NET_CONN_FAMILY_IP_V4_SOCK]"
|
||
|
||
#endif
|
||
|
||
|
||
|
||
/* Correctly configured in 'net_cfg_net.h'; DO NOT MODIFY. */
|
||
#ifndef NET_CONN_CFG_NBR_CONN
|
||
#error "NET_CONN_CFG_NBR_CONN not #define'd in 'net_cfg.h'"
|
||
#error " [MUST be > 0 ]"
|
||
#error " [ && <= NET_CONN_NBR_MAX ]"
|
||
#elif ((NET_CONN_CFG_NBR_CONN < 1) || \
|
||
(NET_CONN_CFG_NBR_CONN > NET_CONN_NBR_MAX))
|
||
#error "NET_CONN_CFG_NBR_CONN illegally #define'd in 'net_cfg.h'"
|
||
#error " [MUST be > 0 ]"
|
||
#error " [ && <= NET_CONN_NBR_MAX ]"
|
||
#endif
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* MODULE END
|
||
*
|
||
* Note(s) : (1) See 'MODULE Note #1'.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#endif /* End of net conn module include (see Note #1). */
|
||
|