小硕vxworks网络驱动开发笔记

2026/4/24 11:30:46

pDrvCtrl->pNetBufCfg->pClDescTbl->clSize = CLUSTER_SIZE; pDrvCtrl->pNetBufCfg->pClDescTbl->clNum = pDrvCtrl->nClusters * 10;

pDrvCtrl->pNetBufCfg->clDescTblNumEnt = 1;

11. Call netPoolCreate( ) with the link pool function table. if ((pDrvCtrl->endObj.pNetPool =

netPoolCreate ((NETBUF_CFG *)pDrvCtrl->pNetBufCfg, _pLinkPoolFuncTbl)) == NULL) return (ERROR);

12. Free the pDrvCtrl->pNetBufCfg and pDrvCtrl->pNetBufCfg->pCIDescTbl. free (pDrvCtrl->pNetBufCfg->pClDescTbl); free (pDrvCtrl->pNetBufCfg);

网络驱动中一种很重要的数据结构

END_OBJ

typedef struct end_object {

NODE node; /* root of the device hierarchy */ DEV_OBJ devObject; /* accesses your device’s ctrl struct */ FUNCPTR receiveRtn; /* routine to call on reception */ BOOL attached; /* indicates unit is attached */ SEM_ID txSem; /* transmitter semaphore */ long flags; /* various flags */ struct net_funcs *pFuncTable; /* function table */ M2_INTERFACETBL mib2Tbl; /* MIBII counters */

struct ETHER_MULTI *pAddrList; /* head of the multicast address

list */

49 / 71

int nMulti; /* number of elements in the list */ LIST protocols; /* protocol node list */ BOOL snarfProto; /* is someone snarfing us? */

void* pMemPool; /* memory cookie used by MUX bufr mgr. */

M2_ID* pMib2Tbl; /* RFC 2233 MIB objects */ } END_OBJ;

这里这里的flag 很有含义,说明网络的各种参数 IFF_UP 接口是开启 的 IFF_BROADCAST 广播地址有效 IFF_DEBUG 正在调试

IFF_LOOPBACK loopback 网络(什么是loopback网络) IFF_POINTOPOINT 接口是点对点网络 IFF_NOTRAILERS 该设备避免使用trailers IFF_RUNNING 该设备成功被分配资源 IFF_NOARP 没有地址处理协议 IFF_PROMISC 接收所有的数据包 IFF_ALLMULTI 接收所有的广播包 IFF_OACTIVE 发送过程

IFF_SIMPLEX 该设备不能听到自己的发送 IFF_LINK0, IFF_LINK1, IFF_LINK2 每一层自定义bit IFF_MULTICAST 支持多播 IFF_LOAN 支持缓存loaning IFF_SCAT 支持scatter-gather

设备结构体

typedef struct dev_obj

50 / 71


小硕vxworks网络驱动开发笔记.doc 将本文的Word文档下载到电脑
搜索更多关于: 小硕vxworks网络驱动开发笔记 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219