VxWorks上设备的管理

VxWorks使用一个双向链表管理所有的设备,每个节点包含以下内容

typedef struct dev_hdr
{
    DL_NODE     node;       /* device linked list node */
    const char *name;       /* device name */
    int         drvRefCount;/* counter of concurrent driver invocations */
    UINT32      drvRefFlag; /* driver reference flags */
    void *      pDrvEntry;  /* driver table of this device */
    FUNCPTR     deleteDrv;  /* driver called upon device delete */
    short       drvNum;     /* driver number for this device */
} DEV_HDR;

下面的函数实现和devs相同的功能,打印出所有的设备的名字,以及设备使用的驱动号

#include<ioLib.h>

extern DL_LIST     iosDvList;
void listDev(void)
{
    DEV_HDR * pDevHdr;

    for (pDevHdr = (DEV_HDR *) DLL_FIRST (&iosDvList);
         pDevHdr != NULL;
         pDevHdr = (DEV_HDR *) DLL_NEXT (&pDevHdr->node))
        {
            printf("pDevHdr->name=%s,drvId=%d\n",pDevHdr->name,pDevHdr->drvNum);
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值