/* frees or reduces the usage count of a mac descriptor smart pointer 
If the reference count reaches 0 (structure is no longer used anywhere) then the descriptor is freed back into the pool using  */
IX_ETH_DB_PUBLIC void ixEthDBFreeMacDescriptor(MacDescriptor *macDescriptor)
/* frees or reduces the usage count of a mac descriptor smart pointer 
If the reference count reaches 0 (structure is no longer used anywhere) then the descriptor is freed back into the pool using  */
IX_ETH_DB_PUBLIC void ixEthDBFreeMacDescriptor(MacDescriptor *macDescriptor)
{
    if (macDescriptor != NULL)
    {
        LOCK_MAC_POOL;
        if (macDescriptor->refCount > 0)
        {
            macDescriptor->refCount--;
            if (macDescriptor->refCount == 0)
            {
                UNLOCK_MAC_POOL;
                ixEthDBPoolFreeMacDescriptor(macDescriptor);
            }
            else
            {
                UNLOCK_MAC_POOL;
            }
        }
        else
        {
            UNLOCK_MAC_POOL;
        }
    }
}