Intel ZT 4901 manual HSK Driver Instantiation Code Segment, Compatlistcheckdevice

Models: ZT 4901

1 136
Download 136 pages 35.65 Kb
Page 115
Image 115

HSK Device Driver Interface for VxWorks* 5.4

UINT8 BaseClass;

UINT16 SubVendorID;

UINT16 SubSystemID;

} RH_COMPAT_DEVICE, *PRH_COMPAT_DEVICE;

C.3 HSK Driver Instantiation Code Segment

The following code segment populates the HA Driver object. Return status validation has been omitted, but an HA device driver should respond appropriately to failed return values.

STATUS RHDrv(void)

{

RH_DEVICE_INFO* devInfo = NULL;

RH_HSK_DRV_OBJ* drvObj = NULL;

/* Create our RH data object for Rh driver registration */ drvObj = (RH_HSK_DRV_OBJ*)malloc(sizeof(RH_HSK_DRV_OBJ)); memset(drvObj, 0x00, sizeof(RH_HSK_DRV_OBJ));

/* Create the device info object */

devInfo = (RH_DEVICE_INFO*)malloc(sizeof(RH_DEVICE_INFO) +

sizeof(RH_COMPAT_DEVICE));

memset(devInfo, 0x00, sizeof(RH_DEVICE_INFO) + sizeof(RH_COMPAT_DEVICE));

devInfo->ListSize = 2; devInfo->CompatDevList[0].VendorID = DEC; devInfo->CompatDevList[0].DeviceID = DEC_21554;

devInfo->CompatDevList[0].ValidFields = COMPAT_LIST_CHECK_VENDOR

COMPAT_LIST_CHECK_DEVICE; devInfo->CompatDevList[1].VendorID = INTEL; devInfo->CompatDevList[1].DeviceID = INTEL_21555; devInfo->CompatDevList[1].ValidFields = COMPAT_LIST_CHECK_VENDOR

COMPAT_LIST_CHECK_DEVICE;

/* Attach the device list to our RH driver object */ drvObj->DeviceInfo = devInfo;

/* Set pointers to our hotplug callback routines */

drvObj->AddDevice

=

bptdAddDevice;

drvObj->StartDevice

=

bptdStartDevice;

drvObj->StopDevice

=

bptdStopDevice;

drvObj->RemoveDevice

=

bptdRemoveDevice;

drvObj->SurpriseRemoval =

bptdRemoveDevice;

/* Register this driver's

Interface with the RH/HSK driver */

rhHskRegisterDriver(drvObj);

return OK;

}

High Availability Software for the Intel® NetStructureTM ZT 4901 Technical Product Specification

115

Page 115
Image 115
Intel ZT 4901 manual HSK Driver Instantiation Code Segment, Compatlistcheckdevice