/*
* Typedef: struct GT_QD_DEV
*
* Description: Includes Tapi layer switch configuration data.
*
* Fields:
* deviceId - The device type identifier.
* revision - The device revision number.
* baseRegAddr - Switch Base Register address.
* numOfPorts - Number of active ports.
* maxPorts - max ports. This field is only for driver's use.
* cpuPortNum - Logical port number whose physical port is connected to the CPU.
* maxPhyNum - max configurable Phy address.
* stpMode - current switch STP mode (0 none, 1 en, 2 dis)
* accessMode - shows how to find and access the device.
* phyAddr - SMI address used to access Switch registers(only for SMI_MULTI_ADDR_MODE).
* validPortVec - valid port list in vector format
* validPhyVec - valid phy list in vector format
* validSerdesVec - valid serdes list in vector format
* devGroup - the device group
* devName - name of the device
* devStorage - driver internal use (hold various temp information)
* multiAddrSem - Semaphore for Accessing SMI Device
* atuRegsSem - Semaphore for ATU access
* vtuRegsSem - Semaphore for VTU access
* statsRegsSem - Semaphore for RMON counter access
* pirlRegsSem - Semaphore for PIRL Resource access
* ptpRegsSem - Semaphore for PTP Resource access
* tblRegsSem - Semaphore for various Table Resource access,
* such as Trunk Tables and Device Table
* eepromRegsSem - Semaphore for eeprom control access
* phyRegsSem - Semaphore for PHY Device access
* fgtReadMii - platform specific SMI register Read function
* fgtWriteMii - platform specific SMI register Write function
* semCreate - function to create semapore
* semDelete - function to delete the semapore
* semTake - function to get a semapore
* semGive - function to return semaphore
* appData - application data that user may use
*/
semtake函数可以在中断中使用的