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

📄 net_sock.h

📁 从Luminary官方网站下载的LM3S6000系列的UCos+Tcp/IP的源码, 经本人稍微修改后可直接在IAR6.2下编译通过,里面包括了LM3S6000系列的所有外设UART, PWn....
💻 H
📖 第 1 页 / 共 5 页
字号:
*********************************************************************************************************
*/

                                                                /* -------------------- SOCK TYPES -------------------- */
#define  NET_SOCK_TYPE_NONE                                0
#define  NET_SOCK_TYPE_DATAGRAM                         SOCK_DGRAM
#define  NET_SOCK_TYPE_STREAM                           SOCK_STREAM


                                                                /* -------------- TCP/IP SOCK PROTOCOLS --------------- */
#define  NET_SOCK_PROTOCOL_DFLT                            0
#define  NET_SOCK_PROTOCOL_NONE                         NET_SOCK_PROTOCOL_DFLT

#define  NET_SOCK_PROTOCOL_UDP                          IPPROTO_UDP
#define  NET_SOCK_PROTOCOL_TCP                          IPPROTO_TCP


/*
*********************************************************************************************************
*                                   NETWORK SOCKET ADDRESS DEFINES
*********************************************************************************************************
*/

                                                                /* ------------------ SOCK ADDR CFG ------------------- */
#if     (NET_SOCK_CFG_FAMILY == NET_SOCK_FAMILY_IP_V4)

#define  NET_SOCK_ADDR_IP_LEN_PORT               (sizeof(NET_PORT_NBR))
#define  NET_SOCK_ADDR_IP_LEN_ADDR               (sizeof(NET_IP_ADDR))

#define  NET_SOCK_ADDR_IP_IX_BASE                          0
#define  NET_SOCK_ADDR_IP_IX_PORT                        NET_SOCK_ADDR_IP_IX_BASE
#define  NET_SOCK_ADDR_IP_IX_ADDR                       (NET_SOCK_ADDR_IP_IX_PORT + NET_SOCK_ADDR_IP_LEN_PORT) 


#define  NET_SOCK_ADDR_IP_WILD_CARD                      INADDR_ANY
#define  NET_SOCK_ADDR_IP_BROADCAST                      INADDR_BROADCAST

#endif


/*$PAGE*/
/*
*********************************************************************************************************
*                                     NETWORK SOCKET API DEFINES
*********************************************************************************************************
*/

#define  NET_SOCK_BSD_ADDR_LEN_MAX                       NET_BSD_ADDR_LEN_MAX

#define  NET_SOCK_ADDR_IP_NBR_OCTETS_UNUSED              NET_BSD_ADDR_IP_NBR_OCTETS_UNUSED


#define  NET_SOCK_BSD_SOCK_ID_MIN_VAL                      0
#define  NET_SOCK_BSD_SOCK_ID_MAX_VAL                  32767


#define  NET_SOCK_BSD_ERR_NONE                           NET_BSD_ERR_NONE
#define  NET_SOCK_BSD_ERR_DFLT                           NET_BSD_ERR_DFLT

#define  NET_SOCK_BSD_ERR_OPEN                           NET_SOCK_BSD_ERR_DFLT
#define  NET_SOCK_BSD_ERR_CLOSE                          NET_SOCK_BSD_ERR_DFLT
#define  NET_SOCK_BSD_ERR_BIND                           NET_SOCK_BSD_ERR_DFLT
#define  NET_SOCK_BSD_ERR_CONN                           NET_SOCK_BSD_ERR_DFLT
#define  NET_SOCK_BSD_ERR_LISTEN                         NET_SOCK_BSD_ERR_DFLT
#define  NET_SOCK_BSD_ERR_ACCEPT                         NET_SOCK_BSD_ERR_DFLT
#define  NET_SOCK_BSD_ERR_RX                             NET_SOCK_BSD_ERR_DFLT
#define  NET_SOCK_BSD_ERR_TX                             NET_SOCK_BSD_ERR_DFLT


#define  NET_SOCK_BSD_RTN_CODE_CONN_CLOSED               NET_BSD_RTN_CODE_CONN_CLOSED


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

#define  NET_SOCK_FLAG_RX_DATA_PEEK                      MSG_PEEK

#define  NET_SOCK_FLAG_NO_BLOCK                          MSG_DONTWAIT
#define  NET_SOCK_FLAG_RX_NO_BLOCK                       NET_SOCK_FLAG_NO_BLOCK
#define  NET_SOCK_FLAG_TX_NO_BLOCK                       NET_SOCK_FLAG_NO_BLOCK


/*$PAGE*/
/*
*********************************************************************************************************
*                                             DATA TYPES
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                  NETWORK SOCKET QUANTITY DATA TYPE
*
* Note(s) : (1) See also 'NETWORK SOCKET IDENTIFICATION DATA TYPE  Note #1'.
*********************************************************************************************************
*/

typedef  CPU_INT16U  NET_SOCK_QTY;                              /* Defines max qty of socks to support.                 */


/*
*********************************************************************************************************
*                                   NETWORK SOCKET FAMILY DATA TYPE
*********************************************************************************************************
*/

typedef  CPU_INT16U  NET_SOCK_FAMILY;


/*
*********************************************************************************************************
*                               NETWORK SOCKET IDENTIFICATION DATA TYPE
*
* Note(s) : (1) (a) NET_SOCK_NBR_MAX  SHOULD be globally #define'd AFTER 'NET_SOCK_QTY' data type declared.
*
*               (b) Since socket handle identifiers are data-typed as 16-bit signed integers, the maximum
*                   unique number of valid socket identifiers (i.e. non-negative) is the total number of
*                   positive values that 16-bit signed integers support.
*********************************************************************************************************
*/

typedef  CPU_INT16S  NET_SOCK_ID;

#define  NET_SOCK_NBR_MAX               DEF_INT_16S_MAX_VAL     /* See Note #1.                                         */


/*
*********************************************************************************************************
*                               NETWORK SOCKET ADDRESS LENGTH DATA TYPE
*********************************************************************************************************
*/

typedef  CPU_INT16S  NET_SOCK_ADDR_LEN;


/*$PAGE*/
/*
*********************************************************************************************************
*                                 NETWORK SOCKET QUEUE SIZE DATA TYPE
*
* Note(s) : (1) (a) NET_SOCK_Q_SIZE #define's SHOULD be globally #define'd AFTER 'NET_SOCK_Q_SIZE'
*                   data type declared.
*
*               (b) Since socket/connection handle identifiers are data-typed as 16-bit signed 
*                   integers, the maximum unique number of valid identifiers (i.e. non-negative) 
*                   is the total number of positive values that 16-bit signed integers support.
*
*                   See also             'NETWORK SOCKET     IDENTIFICATION DATA TYPE  Note #1b'
*                          & 'net_conn.h  NETWORK CONNECTION IDENTIFICATION DATA TYPE  Note #2b'.
*
*           (2) (a) NET_SOCK_Q_IX   #define's SHOULD be globally #define'd AFTER 'NET_SOCK_Q_SIZE'
*                   data type declared.
*
*               (b) Since socket queue size is data typed as a 16-bit unsigned integer but the
*                   maximum queue sizes are #define'd as 16-bit signed integer values, valid
*                   socket queue indices are #define'd within the range of 16-bit signed integer
*                   values but socket queue indice exception values may be #define'd with 16-bit
*                   unsigned integer values.
*********************************************************************************************************
*/

typedef  CPU_INT16U  NET_SOCK_Q_SIZE;

                                                                /* See Note #1.                                         */
#define  NET_SOCK_Q_SIZE_NONE             0
#define  NET_SOCK_Q_SIZE_MIN              1
#define  NET_SOCK_Q_SIZE_MAX            DEF_INT_16S_MAX_VAL     /* See Note #1b.                                        */

                                                                /* See Note #2.                                         */
#define  NET_SOCK_Q_IX_NONE             DEF_INT_16U_MAX_VAL
#define  NET_SOCK_Q_IX_MIN                0
#define  NET_SOCK_Q_IX_MAX             (NET_SOCK_Q_SIZE_MAX - 1)


/*
*********************************************************************************************************
*                                   NETWORK SOCKET STATE DATA TYPE
*********************************************************************************************************
*/

typedef  CPU_INT08U  NET_SOCK_STATE;


/*
*********************************************************************************************************
*                            NETWORK SOCKET (ERROR) RETURN CODE DATA TYPE
*********************************************************************************************************
*/

typedef  CPU_INT16S  NET_SOCK_RTN_CODE;


/*$PAGE*/
/*
*********************************************************************************************************
*                                  NETWORK SOCKET ADDRESS DATA TYPES
*
* Note(s) : (1) See 'net_sock.h  Note #1a' for supported socket address families.
*
*           (2) (a) Socket address structure 'Family' member MUST be configured in host-order & MUST NOT
*                   be converted to/from network-order.
*
*               (b) Socket address structure addresses MUST be configured/converted from host-order to
*                   network-order.
*********************************************************************************************************
*/

                                                                /* ------------------ NET SOCK ADDR ------------------- */
typedef  struct  net_sock_addr {
    NET_SOCK_FAMILY     Family;                                 /* Sock family type (see Note #2a).                     */
    CPU_INT08U          Addr[NET_SOCK_BSD_ADDR_LEN_MAX];        /* Sock addr        (see Note #2b).                     */
} NET_SOCK_ADDR;

#define  NET_SOCK_ADDR_SIZE                 (sizeof(NET_SOCK_ADDR))



#if (NET_SOCK_CFG_FAMILY == NET_SOCK_FAMILY_IP_V4)
                                                                /* ----------------- NET SOCK ADDR IP ----------------- */
typedef  struct  net_sock_addr_ip {
    NET_SOCK_FAMILY     Family;                                 /* Sock family = NET_SOCK_FAMILY_IP_V4 (AF_INET).       */
    NET_PORT_NBR        Port;                                   /* UDP/TCP port nbr.                                    */
    NET_IP_ADDR         Addr;                                   /* IP addr.                                             */
    CPU_INT08U          Unused[NET_SOCK_ADDR_IP_NBR_OCTETS_UNUSED]; /* Unused (MUST be zero).                           */
} NET_SOCK_ADDR_IP;

#define  NET_SOCK_ADDR_IP_SIZE              (sizeof(NET_SOCK_ADDR_IP))

#endif

⌨️ 快捷键说明

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