/* adds an ADD or REMOVE event to the main event queue  */
IX_ETH_DB_PRIVATE IxEthDBStatus ixEthDBTriggerPortUpdate(UINT32 eventType, IxEthDBMacAddr *macAddr, IxEthDBPortId portID, BOOL staticEntry)
/* adds an ADD or REMOVE event to the main event queue  */
IX_ETH_DB_PRIVATE IxEthDBStatus ixEthDBTriggerPortUpdate(UINT32 eventType, IxEthDBMacAddr *macAddr, IxEthDBPortId portID, BOOL staticEntry)
{
    UINT32 intLockKey;
    intLockKey = ixOsalIrqLock();
    if (CAN_ENQUEUE(&eventQueue))
    {
        PortEvent *queueEvent = QUEUE_HEAD(&eventQueue);
        memcpy(queueEvent->macAddr.macAddress, macAddr->macAddress, sizeof (IxEthDBMacAddr));
        queueEvent->eventType     = eventType;
        queueEvent->portID        = portID;
        queueEvent->staticEntry   = staticEntry;
        PUSH_UPDATE_QUEUE(&eventQueue);
        ixOsalSemaphorePost(&eventQueueSemaphore);
        ixOsalIrqUnlock(intLockKey);
        return IX_ETH_DB_SUCCESS;
    }
    else
    {
        ixOsalIrqUnlock(intLockKey);
        return IX_ETH_DB_BUSY;
    }
}