/******************************************************************************* * qdUnloadDriver * * DESCRIPTION: * This function unloads the QuaterDeck Driver. * * INPUTS: * None. * * OUTPUTS: * None. * * RETURNS: * GT_OK - on success * GT_FAIL - on error * * COMMENTS: * 1. This function should be called only after successful execution of * qdLoadDriver(). * *******************************************************************************/ GT_STATUS qdUnloadDriver ( IN GT_QD_DEV* dev ) { DBG_INFO(("qdUnloadDriver Called.\n")); /* Delete the MultiAddress mode reagister access semaphore. */ if(gtSemDelete(dev,dev->multiAddrSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the ATU semaphore. */ if(gtSemDelete(dev,dev->atuRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the VTU semaphore. */ if(gtSemDelete(dev,dev->vtuRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the STATS semaphore. */ if(gtSemDelete(dev,dev->statsRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } gtMemSet(dev,0,sizeof(GT_QD_DEV)); return GT_OK; }
/******************************************************************************* * qdUnloadDriver * * DESCRIPTION: * This function unloads the QuaterDeck Driver. * * INPUTS: * None. * * OUTPUTS: * None. * * RETURNS: * GT_OK - on success * GT_FAIL - on error * * COMMENTS: * 1. This function should be called only after successful execution of * qdLoadDriver(). * *******************************************************************************/ GT_STATUS qdUnloadDriver ( IN GT_QD_DEV* dev ) { DBG_INFO(("qdUnloadDriver Called.\n")); /* Delete the MultiAddress mode reagister access semaphore. */ if(gtSemDelete(dev,dev->multiAddrSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the ATU semaphore. */ if(gtSemDelete(dev,dev->atuRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the VTU semaphore. */ if(gtSemDelete(dev,dev->vtuRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the STATS semaphore. */ if(gtSemDelete(dev,dev->statsRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the PIRL semaphore. */ if(gtSemDelete(dev,dev->pirlRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the PTP semaphore. */ if(gtSemDelete(dev,dev->ptpRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the Table semaphore. */ if(gtSemDelete(dev,dev->tblRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the EEPROM Configuration semaphore. */ if(gtSemDelete(dev,dev->eepromRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the PHY Device semaphore. */ if(gtSemDelete(dev,dev->phyRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } /* Delete the Remote management Register Access semaphore. */ if(gtSemDelete(dev,dev->hwAccessRegsSem) != GT_OK) { DBG_INFO(("Failed.\n")); return GT_FAIL; } gtMemSet(dev,0,sizeof(GT_QD_DEV)); return GT_OK; }