⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net_sock.h

📁 uCOS-II 2.8和uC-TCP/IP在ATMEL AT91SAM9261上移植
💻 H
📖 第 1 页 / 共 5 页
字号:
/*
*********************************************************************************************************
*                                              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 SOCKET LAYER
*
* Filename      : net_sock.h
* Version       : V1.89
* Programmer(s) : ITJ
*********************************************************************************************************
* Note(s)       : (1) Supports BSD 4.x Socket Layer with the following restrictions/constraints :
*
*                     (a) ONLY supports a single address family from the following families :
*                         (1) IPv4 (AF_INET)
*
*                     (b) ONLY supports the following socket types :
*                         (1) Datagram (SOCK_DGRAM)
*                         (2) Stream   (SOCK_STREAM)
*
*                     (c) ONLY supports a single protocol family from the following families :
*                         (1) IPv4 (PF_INET)
*                             (A) ONLY supports the following protocols :
*                                 (1) UDP (IPPROTO_UDP)
*                                 (2) TCP (IPPROTO_TCP)
*
*                     (d) ONLY supports the following socket options :
*                         (1) Global options
*                             #### ( )
*                         (2) Socket options
*                             #### ( )
*
*********************************************************************************************************
*/

/*$PAGE*/
/*
*********************************************************************************************************
*                                               MODULE
*
* Note(s) : (1) Socket module is required for :
*
*               (a) IPv4 Sockets
*                   (1) UDP Datagram Sockets
*                   (2) TCP Stream   Sockets
*
*
*               See also 'net_sock.h  Note #1c',
*                        'net_cfg.h   TRANSPORT LAYER CONFIGURATION',
*                      & 'net_cfg.h   USER DATAGRAM PROTOCOL LAYER CONFIGURATION'.
*
*           (2) The following socket-module-present configuration value MUST be pre-#define'd in 
*               'net_cfg_net.h' PRIOR to all other network modules that require Network Socket Layer
*               Configuration (see 'net_cfg_net.h  NETWORK SOCKET LAYER CONFIGURATION  Note #2b') :
*
*                   NET_SOCK_MODULE_PRESENT
*********************************************************************************************************
*/

#ifdef   NET_SOCK_MODULE_PRESENT                                /* See Note #2.                                         */


/*
*********************************************************************************************************
*                                               EXTERNS
*********************************************************************************************************
*/

#ifdef   NET_SOCK_MODULE
#define  NET_SOCK_EXT
#else
#define  NET_SOCK_EXT  extern
#endif


/*$PAGE*/
/*
*********************************************************************************************************
*                                               DEFINES
*********************************************************************************************************
*/


/*
*********************************************************************************************************
*                             NETWORK SOCKET IDENTIFICATION NUMBER DEFINES
*********************************************************************************************************
*/

#define  NET_SOCK_ID_NONE                                 -1
#define  NET_SOCK_ID_MIN                                   0
#define  NET_SOCK_ID_MAX                                (NET_SOCK_CFG_NBR_SOCK - 1)


/*
*********************************************************************************************************
*                                  NETWORK SOCKET PORT NUMBER DEFINES
*********************************************************************************************************
*/

#define  NET_SOCK_PORT_NBR_RESERVED                      NET_PORT_NBR_RESERVED
#define  NET_SOCK_PORT_NBR_NONE                          NET_SOCK_PORT_NBR_RESERVED


#define  NET_SOCK_PORT_NBR_RANDOM_NBR_OFF                 10

#define  NET_SOCK_PORT_NBR_RANDOM_NBR                   (NET_SOCK_CFG_NBR_SOCK + NET_SOCK_PORT_NBR_RANDOM_NBR_OFF)

#if     (NET_SOCK_PORT_NBR_RANDOM_NBR                  > DEF_INT_16U_MAX_VAL)
#undef   NET_SOCK_PORT_NBR_RANDOM_NBR
#define  NET_SOCK_PORT_NBR_RANDOM_NBR                    DEF_INT_16U_MAX_VAL
#endif

#define  NET_SOCK_PORT_NBR_RANDOM_MIN                    NET_SOCK_CFG_PORT_NBR_RANDOM_BASE
#define  NET_SOCK_PORT_NBR_RANDOM_MAX                   (NET_SOCK_CFG_PORT_NBR_RANDOM_BASE + NET_SOCK_PORT_NBR_RANDOM_NBR - 1)


/*
*********************************************************************************************************
*                                    NETWORK SOCKET TIMEOUT DEFINES
*********************************************************************************************************
*/

#define  NET_SOCK_TIMEOUT_MIN_MS                         NET_OS_TIMEOUT_MIN_MS
#define  NET_SOCK_TIMEOUT_MAX_MS                         NET_OS_TIMEOUT_MAX_MS

#define  NET_SOCK_TIMEOUT_MIN_SEC                        NET_OS_TIMEOUT_MIN_SEC
#define  NET_SOCK_TIMEOUT_MAX_SEC                        NET_OS_TIMEOUT_MAX_SEC


/*$PAGE*/
/*
*********************************************************************************************************
*                                        NETWORK SOCKET STATES
*********************************************************************************************************
*/

#define  NET_SOCK_STATE_NONE                               0
#define  NET_SOCK_STATE_FREE                               1
#define  NET_SOCK_STATE_DISCARD                            2
#define  NET_SOCK_STATE_CLOSED                            10
#define  NET_SOCK_STATE_CLOSED_FAULT                      11
#define  NET_SOCK_STATE_CLOSE_IN_PROGRESS                 15
#define  NET_SOCK_STATE_CLOSING_DATA_AVAIL                16
#define  NET_SOCK_STATE_BOUND                             20
#define  NET_SOCK_STATE_LISTEN                            30
#define  NET_SOCK_STATE_CONN                              40
#define  NET_SOCK_STATE_CONN_IN_PROGRESS                  41
#define  NET_SOCK_STATE_CONN_DONE                         42


/*
*********************************************************************************************************
*                                     NETWORK SOCKET FLAG DEFINES
*********************************************************************************************************
*/

                                                                /* ------------------ NET SOCK FLAGS ------------------ */
#define  NET_SOCK_FLAG_NONE                       DEF_BIT_NONE
#define  NET_SOCK_FLAG_USED                       DEF_BIT_00    /* Sock cur used; i.e. NOT in free sock pool.           */
#define  NET_SOCK_FLAG_BLOCK                      DEF_BIT_01    /* Sock blocking ENABLED.                               */


/*
*********************************************************************************************************
*                                     NETWORK SOCKET TYPE DEFINES
*
* Note(s) : (1) NET_SOCK_TYPE_??? #define values specifically chosen as ASCII representations of the socket
*               types.  Memory displays of socket types will display the socket TYPE with the chosen ASCII 
*               name.
*********************************************************************************************************
*/

                                                                /* ------------------ NET SOCK TYPES ------------------ */
#if     (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
#define  NET_SOCK_TYPE_SOCK_NONE                  0x4E4F4E45    /* "NONE" in ASCII.                                     */
#define  NET_SOCK_TYPE_SOCK                       0x534F434B    /* "SOCK" in ASCII.                                     */

#else

#if     (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_32)
#define  NET_SOCK_TYPE_SOCK_NONE                  0x454E4F4E    /* "NONE" in ASCII.                                     */
#define  NET_SOCK_TYPE_SOCK                       0x4B434F53    /* "SOCK" in ASCII.                                     */

#elif   (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_16)
#define  NET_SOCK_TYPE_SOCK_NONE                  0x4F4E454E    /* "NONE" in ASCII.                                     */
#define  NET_SOCK_TYPE_SOCK                       0x4F534B43    /* "SOCK" in ASCII.                                     */

#else                                                           /* Dflt CPU_WORD_SIZE_08.                               */
#define  NET_SOCK_TYPE_SOCK_NONE                  0x4E4F4E45    /* "NONE" in ASCII.                                     */
#define  NET_SOCK_TYPE_SOCK                       0x534F434B    /* "SOCK" in ASCII.                                     */

#endif
#endif


/*$PAGE*/
/*
*********************************************************************************************************
*                              NETWORK SOCKET FAMILY & PROTOCOL DEFINES
*
* Note(s) : (1) The following socket values MUST be pre-#define'd in 'net_def.h' PRIOR to 'net_cfg.h'
*               so that the developer can configure sockets for the correct socket family values (see
*               'net_def.h  BSD 4.x & NETWORK SOCKET LAYER DEFINES  Note #1' & 'net_cfg_net.h  NETWORK 
*               SOCKET LAYER CONFIGURATION') :
*
*                   AF_INET                                        2
*                   PF_INET                                  AF_INET
*
*                   NET_SOCK_FAMILY_IP_V4                    PF_INET
*                   NET_SOCK_PROTOCOL_MAX_IP_V4                    2
*                   NET_SOCK_ADDR_LEN_IP_V4                        6

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -