VxWorks上のデバイスの管理
2099 ワード
VxWorksは、双方向チェーンテーブルを使用してすべてのデバイスを管理し、各ノードには次の内容が含まれています.
次の関数はdevsと同じ機能を実現し、すべてのデバイスの名前とデバイスが使用する駆動番号を印刷します.
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
",pDevHdr->name,pDevHdr->drvNum);
}
}