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

📄 usrnetwork.c

📁 一个VXWORKS的网络驱动原代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    -----------		----		-------		-------    */    {64,		NUM_64,		NULL,		0},    {128,		NUM_128,	NULL,		0},    {256,		NUM_256,	NULL,		0},    {512,		NUM_512,	NULL,		0},    {1024,		NUM_1024,	NULL,		0},    {2048,		NUM_2048,	NULL,		0}    };int clDescTblNumEnt = (NELEMENTS(clDescTbl));/* * mBlk, clBlk configuration table for network stack system pool. * Used for network stack system structures such as routes, sockets, * protocol control blocks, interface addresses, mulitcast addresses, * and multicast routing entries. */M_CL_CONFIG sysMclBlkConfig =    {    /*    no. mBlks		no. clBlks		memArea		memSize    -----------		----------		-------		-------    */    NUM_SYS_MBLKS, 	NUM_SYS_CL_BLKS,	NULL, 		0    };/* * network stack system cluster pool configuration table * Used for network stack system structures such as routes, sockets, * protocol control blocks, interface addresses, mulitcast addresses, * and multicast routing entries. */CL_DESC sysClDescTbl [] =    {    /*    clusterSize		num		memArea		memSize    -----------		----		-------		-------    */    {64,		NUM_SYS_64,	NULL,		0},    {128,		NUM_SYS_128,	NULL,		0},    {256,		NUM_SYS_256,	NULL,		0},    {512,		NUM_SYS_512,	NULL,		0},    };int sysClDescTblNumEnt = (NELEMENTS(sysClDescTbl));#ifdef INCLUDE_END	#ifndef MUX_MAX_BINDS#define MUX_MAX_BINDS 16#endif /* MUX_MAX_BINDS */#endif 	/* INCLUDE_END */#ifndef IP_MAX_UNITS #define IP_MAX_UNITS 1#endifIP_DRV_CTRL ipDrvCtrl [IP_MAX_UNITS]; int ipMaxUnits = IP_MAX_UNITS;#ifndef ARP_MAX_ENTRIES#define ARP_MAX_ENTRIES 20#endifIMPORT int arpMaxEntries;/* * These parameters are required when using the routines arpShow, routeShow or * mRouteShow either through a remote session like telnet or through the host * shell using WDB_COMM_NETWORK. Here RT_BUFFERED_DISPLAY should be set to * TRUE. This will cause the route entries to be stored in a buffer before * being displayed. RT_DISPLAY_MEMORY sets the size of the buffer in bytes. * Some entries may not be displayed depending on the value of this parameter. */#ifdef INCLUDE_NET_SHOW#define RT_DISPLAY_MEMORY   10000#define RT_BUFFERED_DISPLAY FALSE#endif#ifdef INCLUDE_MIB2_SYSTEM#define MIB2_SYS_DESCR    "VxWorks SNMPv1/v2c Agent"#define MIB2_SYS_CONTACT  "Wind River Systems"#define MIB2_SYS_LOCATION "Planet Earth"#define MIB2_SYS_OBJID    NULL#endif#ifdef INCLUDE_MIB2_IF#define MIB2IF_TRAP_RTN NULL#define MIB2IF_TRAP_ARG NULL#endif#ifdef INCLUDE_MIB2_IP#define MIB2IP_MAX_ROUTE_TBL_SIZE 0#endif#ifdef	INCLUDE_PPP#ifndef PPP_OPTIONS_FLAGS#define PPP_OPTIONS_FLAGS ((PPP_OPT_NO_ALL << PPP_S_NO_ALL)  | \    (PPP_OPT_PASSIVE_MODE << PPP_S_PASSIVE_MODE)             | \    (PPP_OPT_SILENT_MODE << PPP_S_SILENT_MODE)               | \    (PPP_OPT_DEFAULTROUTE << PPP_S_DEFAULTROUTE)             | \    (PPP_OPT_PROXYARP << PPP_S_PROXYARP)                     | \    (PPP_OPT_IPCP_ACCEPT_LOCAL << PPP_S_IPCP_ACCEPT_LOCAL)   | \    (PPP_OPT_IPCP_ACCEPT_REMOTE << PPP_S_IPCP_ACCEPT_REMOTE) | \    (PPP_OPT_NO_IP << PPP_S_NO_IP)                           | \    (PPP_OPT_NO_ACC << PPP_S_NO_ACC)                         | \    (PPP_OPT_NO_PC << PPP_S_NO_PC)                           | \    (PPP_OPT_NO_VJ << PPP_S_NO_VJ)                           | \    (PPP_OPT_NO_VJCCOMP << PPP_S_NO_VJCCOMP)                 | \    (PPP_OPT_NO_ASYNCMAP << PPP_S_NO_ASYNCMAP)               | \    (PPP_OPT_NO_MN << PPP_S_NO_MN)                           | \    (PPP_OPT_NO_MRU << PPP_S_NO_MRU)                         | \    (PPP_OPT_NO_PAP << PPP_S_NO_PAP)                         | \    (PPP_OPT_NO_CHAP << PPP_S_NO_CHAP)                       | \    (PPP_OPT_REQUIRE_PAP << PPP_S_REQUIRE_PAP)               | \    (PPP_OPT_REQUIRE_CHAP << PPP_S_REQUIRE_CHAP)             | \    (PPP_OPT_LOGIN << PPP_S_LOGIN)                           | \    (PPP_OPT_DEBUG << PPP_S_DEBUG)                           | \    (PPP_OPT_DRIVER_DEBUG << PPP_S_DRIVER_DEBUG))#endif  /* PPP_OPTIONS_FLAGS */PPP_OPTIONS pppOptions =    {    PPP_OPTIONS_FLAGS,              /* flags field */    PPP_STR_ASYNCMAP,               /* Set the desired async map */    PPP_STR_ESCAPE_CHARS,           /* Set chars to escape on transmission */    PPP_STR_VJ_MAX_SLOTS,           /* Set max VJ compression header slots */    PPP_STR_NETMASK,                /* Set netmask value for negotiation */    PPP_STR_MRU,                    /* Set MRU value for negotiation */    PPP_STR_MTU,                    /* Set MTU value for negotiation */    PPP_STR_LCP_ECHO_FAILURE,       /* Set max consecutive LCP echo failures */    PPP_STR_LCP_ECHO_INTERVAL,      /* Set time for LCP echo requests */    PPP_STR_LCP_RESTART,            /* Set timeout for LCP */    PPP_STR_LCP_MAX_TERMINATE,      /* Set max # xmits for LCP term-reqs */    PPP_STR_LCP_MAX_CONFIGURE,      /* Set max # xmits for LCP conf-reqs */    PPP_STR_LCP_MAX_FAILURE,        /* Set max # conf-naks for LCP */    PPP_STR_IPCP_RESTART,           /* Set timeout for IPCP */    PPP_STR_IPCP_MAX_TERMINATE,     /* Set max # xmits for IPCP term-reqs */    PPP_STR_IPCP_MAX_CONFIGURE,     /* Set max # xmits for IPCP conf-reqs */    PPP_STR_IPCP_MAX_FAILURE,       /* Set max # conf-naks for IPCP */    PPP_STR_LOCAL_AUTH_NAME,        /* Set local name for authentication */    PPP_STR_REMOTE_AUTH_NAME,       /* Set remote name for authentication */    PPP_STR_PAP_FILE,               /* Set the PAP secrets file */    PPP_STR_PAP_USER_NAME,          /* Set username for PAP auth with peer */    PPP_STR_PAP_PASSWD,             /* Set password for PAP auth with peer */    PPP_STR_PAP_RESTART,            /* Set timeout for PAP */    PPP_STR_PAP_MAX_AUTHREQ,        /* Set max # xmits for PAP auth-reqs */    PPP_STR_CHAP_FILE,              /* Set the CHAP secrets file */    PPP_STR_CHAP_RESTART,           /* Set timeout for CHAP */    PPP_STR_CHAP_INTERVAL,          /* Set interval for CHAP rechallenge */    PPP_STR_CHAP_MAX_CHALLENGE      /* Set max # xmits for CHAP challenge */    };#endif  /* INCLUDE_PPP *//* extern declarations, IMPORTS */#ifdef INCLUDE_MIB2_IFIMPORT FUNCPTR  _m2SetIfLastChange;     /* def'd in if.c for scalability */IMPORT FUNCPTR  _m2IfTableUpdate;#endif /* INCLUDE_MIB2_IF *//* Network interface table. */IMPORT int lnEbsaattach ();IMPORT int oliattach();IMPORT int dcattach ();IMPORT int eglattach ();IMPORT int eiattach ();IMPORT int feiattach ();IMPORT int exattach ();IMPORT int enpattach ();IMPORT int ieattach ();IMPORT int ilacattach ();IMPORT int lnattach ();IMPORT int lnsgiattach ();IMPORT int nicattach ();IMPORT int nicEvbattach ();IMPORT int medattach ();IMPORT int loattach ();IMPORT int snattach ();IMPORT int fnattach ();IMPORT int elcattach ();IMPORT int ultraattach ();IMPORT int eexattach ();IMPORT int eltattach ();IMPORT int eneattach ();IMPORT int esmcattach ();IMPORT int quattach ();IMPORT int slattach ();IMPORT int pppattach ();#ifdef NETIF_USR_DECL	/* Additional declarations, from BSP */    NETIF_USR_DECL#endif/* generic driver */#ifdef INCLUDE_ENDIMPORT int 	ipAttach ();IMPORT END_TBL_ENTRY endDevTbl[];#endif /* INCLUDE_END */#ifdef  INCLUDE_TCP_DEBUGIMPORT void tcpTraceInit ();#endif  /* INCLUDE_TCP_DEBUG */#ifdef	INCLUDE_IF_USRIMPORT int IF_USR_ATTACH ();#endif	/* INCLUDE_IF_USR *//* local typedefs *//* variables */NETIF usrNetIfTbl [] =	/* network interfaces */    {#ifdef NETIF_USR_ENTRIES	/* Additional entries, from BSP */    NETIF_USR_ENTRIES#endif#ifdef	INCLUDE_LNEBSA        { "lnEbsa", lnEbsaattach, (char*)IO_ADRS_LNEBSA, INT_VEC_LNEBSA,          INT_LVL_LNEBSA, LNEBSA_POOL_ADRS, LNEBSA_POOL_SIZE, LNEBSA_DATA_WIDTH,          LNEBSA_MODE, LNEBSA_DMA_CHAN },#endif	/* INCLUDE_LNEBSA */#ifdef	INCLUDE_OLI	{ "oli", oliattach, (char*)IO_ADRS_NISA_BASE,	  IO_ADRS_NISA_PCMCIA, IO_ADRS_NISA_PCMEM,	  INT_VEC_PCMCIA_A, INT_LVL_PCMCIA_A,	  INT_VEC_PCMCIA_B, INT_LVL_PCMCIA_B },#endif	/* INCLUDE_OLI */#ifdef	INCLUDE_DC	{ "dc", dcattach, (char*)IO_ADRS_DC, INT_VEC_DC, INT_LVL_DC,	  DC_POOL_ADRS, DC_POOL_SIZE, DC_DATA_WIDTH, DC_RAM_PCI_ADRS,	  DC_MODE },#endif	/* INCLUDE_DC */#ifdef  INCLUDE_EGL        { "egl", eglattach, (char*)IO_ADRS_EGL, INT_VEC_EGL, INT_LVL_EGL },#endif	/* INCLUDE_EGL */#ifdef	INCLUDE_EI	{ "ei", eiattach, (char*)INT_VEC_EI, EI_SYSBUS, EI_POOL_ADRS, 0, 0},#endif	/* INCLUDE_EI */#ifdef	INCLUDE_FEI        { "fei", feiattach, (char*)FEI_POOL_ADRS, 0, 0, 0, 0},#endif	/* INCLUDE_FEI */#ifdef	INCLUDE_EX	{ "ex", exattach, (char*)IO_ADRS_EX, INT_VEC_EX, INT_LVL_EX,	  IO_AM_EX_MASTER, IO_AM_EX },#endif	/* INCLUDE_EX */#ifdef	INCLUDE_ENP	{ "enp", enpattach, (char*)IO_ADRS_ENP, INT_VEC_ENP, INT_LVL_ENP,	  IO_AM_ENP },#endif	/* INCLUDE_ENP */#ifdef	INCLUDE_IE	{ "ie", ieattach, (char*)IO_ADRS_IE, INT_VEC_IE, INT_LVL_IE },#endif	/* INCLUDE_IE */#ifdef	INCLUDE_ILAC	{ "ilac", ilacattach, (char*)IO_ADRS_ILAC, INT_VEC_ILAC},#endif	/* INCLUDE_ILAC */#ifdef	INCLUDE_IF_USR	{ IF_USR_NAME, IF_USR_ATTACH, IF_USR_ARG1, IF_USR_ARG2, IF_USR_ARG3,	  IF_USR_ARG4, IF_USR_ARG5, IF_USR_ARG6, IF_USR_ARG7, IF_USR_ARG8 },#endif	/* INCLUDE_IF_USR */#ifdef	INCLUDE_LN	{ "ln", lnattach, (char*)IO_ADRS_LN, INT_VEC_LN, INT_LVL_LN,	  LN_POOL_ADRS, LN_POOL_SIZE, LN_DATA_WIDTH, LN_PADDING,	  LN_RING_BUF_SIZE },#endif	/* INCLUDE_LN */#ifdef  INCLUDE_LNSGI        { "lnsgi", lnsgiattach, (char*)IO_ADRS_LNSGI, INT_VEC_LNSGI,          INT_LVL_LNSGI, LNSGI_POOL_ADRS, LNSGI_POOL_SIZE, LNSGI_DATA_WIDTH,          LNSGI_PADDING, LNSGI_RING_BUF_SIZE },#endif  /* INCLUDE_LNSGI */#ifdef  INCLUDE_NIC        { "nic", nicattach, (char*)IO_ADRS_NIC, INT_VEC_NIC, INT_LVL_NIC },#endif	/* INCLUDE_NIC */#ifdef  INCLUDE_NIC_EVB        { "nicEvb", nicEvbattach, (char*)IO_ADRS_NIC,INT_VEC_NIC,INT_LVL_NIC },#endif  /* INCLUDE_NIC_EVB */#ifdef  INCLUDE_MED        { "med", medattach, (char*)IO_ADRS_DBETH, INT_VEC_DBETH, INT_LVL_DBETH},#endif	/* INCLUDE_MED */#ifdef  INCLUDE_ELC	{ "elc", elcattach, (char*)IO_ADRS_ELC, INT_VEC_ELC, INT_LVL_ELC,	  MEM_ADRS_ELC, MEM_SIZE_ELC, CONFIG_ELC},#endif  /* INCLUDE_ELC */#ifdef  INCLUDE_ULTRA	{ "ultra", ultraattach, (char*)IO_ADRS_ULTRA, INT_VEC_ULTRA,	  INT_LVL_ULTRA, MEM_ADRS_ULTRA, MEM_SIZE_ULTRA, CONFIG_ULTRA},#endif  /* INCLUDE_ULTRA */#ifdef  INCLUDE_EEX	{ "eex", eexattach, (char*)IO_ADRS_EEX, INT_VEC_EEX, INT_LVL_EEX,	  NTFDS_EEX, CONFIG_EEX},#endif  /* INCLUDE_EEX */#ifdef  INCLUDE_ELT	{ "elt", eltattach, (char*)IO_ADRS_ELT, INT_VEC_ELT, INT_LVL_ELT,	  NRF_ELT, CONFIG_ELT},#endif  /* INCLUDE_ELT */#ifdef  INCLUDE_QU	{ "qu", quattach, (char*)IO_ADRS_QU_EN, INT_VEC_QU_EN, QU_EN_SCC,	  QU_EN_TX_BD, QU_EN_RX_BD, QU_EN_TX_OFF, QU_EN_RX_OFF, QU_EN_MEM},#endif  /* INCLUDE_QU */#ifdef  INCLUDE_ENE	{ "ene", eneattach, (char*)IO_ADRS_ENE, INT_VEC_ENE, INT_LVL_ENE},#endif  /* INCLUDE_ENE */#ifdef  INCLUDE_ESMC	{ "esmc", esmcattach, (char*)IO_ADRS_ESMC, INT_VEC_ESMC, INT_LVL_ESMC,	  CONFIG_ESMC, RX_MODE_ESMC},#endif  /* INCLUDE_ESMC */#ifdef  INCLUDE_SN        { "sn", snattach, (char*)IO_ADRS_SN, INT_VEC_SN },#endif	/* INCLUDE_SN */#ifdef  INCLUDE_FN        { "fn", fnattach },#endif	/* INCLUDE_FN */#ifdef  INCLUDE_SM_NET        { "sm", smNetAttach2, 0, 0, 0, 0, 0, 0, 0, 0 },#endif  /* INCLUDE_SM_NET */#ifdef	INCLUDE_PCMCIA	{ "pcmcia", pcmciaattach, 0, 0, 0, 0, 0, 0 },#endif	/* INCLUDE_PCMCIA */#ifdef	INCLUDE_PPP	{"ppp", 0, 0, 0, 0, 0},#endif	/* INCLUDE_PPP */#ifdef	INCLUDE_SLIP	{"sl", 0, 0, 0, 0, 0},#endif	/* INCLUDE_SLIP */	{ "lo", loattach  },	{ 0, 0, 0, 0, 0, 0 },    };/* forward declarations */STATUS usrNetProtoInit (void);#ifdef INCLUDE_DNS_RESOLVERLOCAL STATUS usrResolvInit (void);#endif /* INCLUDE_DNS_RESOLVER */#ifdef INCLUDE_NET_SHOWconst UINT rtMem = RT_DISPLAY_MEMORY;const BOOL bufferedRtShow = RT_BUFFERED_DISPLAY;#endif#if defined (INCLUDE_DHCPS) || defined (INCLUDE_DHCPR)/* * The following table lists the IP addresses which will receive DHCP * messages forwarded across network boundaries by a DHCP server or * relay agent. */DHCP_TARGET_DESC dhcpTargetTbl [] =    {    /*     IP address of DHCP target servers     ---------------------------------     */     /* {"90.11.42.2"}, */     { NULL } /* List terminator, must be last */     };struct ifnet *devlist[1];int dhcpMaxHops = DHCP_MAX_HOPS;int dhcpSPort = DHCPS_SPORT;int dhcpCPort = DHCPS_CPORT;#endif	/* INCLUDE_DHCPS || INCLUDE_DHCPR */#ifdef INCLUDE_DHCPRLOCAL int dhcpTargetTblSize = (NELEMENTS(dhcpTargetTbl));#endif	/* INCLUDE_DHCPR *//* * Example cache routine - should store records of active leases *                         across reboots. *//*#ifdef INCLUDE_DHCPSSTATUS dhcpsDummyCache (int, char *, int);STATUS dhcpsDummyCache (int op, char *name, int length)    {    printf("Cache called with op %d on %d bytes.\n", op, length);    if (op == DHCPS_STORAGE_READ)        return (ERROR);          /@ Simulated end-of-file. @/    return (OK);    }#endif	/@ INCLUDE_DHCPS @/*/#ifdef INCLUDE_DHCPS/*  * This table contains a list of interfaces that the server * will listen to. The boot device is used when the table's      * first entry is the null string. */DHCPS_IF_DESC dhcpsIfTbl [] =    {    {""}                             /* Use primary interface */    /* Sample interface entries. */    /*  {"fei1"}, */    /*  {"ln0"} */    };

⌨️ 快捷键说明

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