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

📄 udplib.c

📁 VXWORKS源代码
💻 C
字号:
/* udpLib.c - udp protocol interface library *//* Copyright 1984 - 2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01b,15oct01,rae  merge from truestack ver 01b, base 01a (VIRTUAL_STACK)01a,20jan97,vin written*//*DESCRIPTIONThis library contains the interface to the udp protocol. The UDP protocolis configured in this library. The routine udpLibInit() is responsible for configuring the udp protocolwith various parameters.INCLUDE FILES: netLib.h.pG "Network"NOMANUAL*//* includes */#include "vxWorks.h"#include "netLib.h"#include "net/protosw.h"#include "net/domain.h"#include "net/mbuf.h"#include "netinet/in.h"#include "netinet/in_systm.h"#include "netinet/in_pcb.h"#include "netinet/ip.h"#include "netinet/ip_var.h"#include "netinet/udp.h"#include "netinet/udp_var.h"#ifdef VIRTUAL_STACK#include "netinet/vsLib.h"#endif/* externs */#ifndef VIRTUAL_STACKIMPORT int	_protoSwIndex;IMPORT struct protosw 	inetsw [IP_PROTO_NUM_MAX]; IMPORT u_long	udp_sendspace;		/* variable to control send space */IMPORT u_long	udp_recvspace;		/* variable to control recv space */IMPORT int	udpcksum;		/* variable to control send cksum */IMPORT int	udpDoCkSumRcv;		/* vairiable to control rcv cksum */#endif /* VIRTUAL_STACK *//* globals *//* defines *//* typedefs *//* locals */STATUS udpLibInit     (    UDP_CFG_PARAMS * 	udpCfg		/* udp config parameters */    )    {    FAST struct protosw	* pProtoSwitch;     if (_protoSwIndex >= sizeof(inetsw)/sizeof(inetsw[0]))	return (ERROR) ;    pProtoSwitch = &inetsw [_protoSwIndex];     if (pProtoSwitch->pr_domain != NULL)	return (OK); 				/* already initialized */    pProtoSwitch->pr_type   	=  SOCK_DGRAM;    pProtoSwitch->pr_domain   	=  &inetdomain;    pProtoSwitch->pr_protocol   =  IPPROTO_UDP;    pProtoSwitch->pr_flags	=  PR_ATOMIC | PR_ADDR;    pProtoSwitch->pr_input	=  udp_input;    pProtoSwitch->pr_output	=  0;    pProtoSwitch->pr_ctlinput	=  udp_ctlinput;    pProtoSwitch->pr_ctloutput	=  ip_ctloutput;    pProtoSwitch->pr_usrreq	=  udp_usrreq;    pProtoSwitch->pr_init	=  udp_init;    pProtoSwitch->pr_fasttimo	=  0;    pProtoSwitch->pr_slowtimo	=  0;    pProtoSwitch->pr_drain	=  0;    pProtoSwitch->pr_sysctl	=  0;    _protoSwIndex++;     /* initialize udp configuration parameters */    udpcksum 	  = (udpCfg->udpCfgFlags & UDP_DO_CKSUM_SND) ? TRUE : FALSE;     udpDoCkSumRcv = (udpCfg->udpCfgFlags & UDP_DO_CKSUM_RCV) ? TRUE : FALSE;    udp_sendspace = udpCfg->udpSndSpace;    udp_recvspace = udpCfg->udpRcvSpace;#ifdef VIRTUAL_STACK    /*     * Assign (former) global variables previously initialized by the compiler.     * Setting 0 is repeated for clarity - the vsLib.c setup zeroes all values.     */    udp_in.sin_len = sizeof (struct sockaddr_in);    udp_in.sin_family = AF_INET;    udp_last_inpcb = NULL;    udp_ttl = UDP_TTL;    udp_pcbhashsize = UDBHASHSIZE;#endif    return (OK);     }

⌨️ 快捷键说明

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