/* initializes the memory pools used by the ethernet database component 
Initializes the hash table node, mac descriptor and mac tree node pools. Called at initialization time by ixEthDBInit().  */
IX_ETH_DB_PUBLIC void ixEthDBInitMemoryPools(void)
/* initializes the memory pools used by the ethernet database component 
Initializes the hash table node, mac descriptor and mac tree node pools. Called at initialization time by ixEthDBInit().  */
IX_ETH_DB_PUBLIC void ixEthDBInitMemoryPools(void)
{
    int local_index;
    ixOsalMutexInit(&nodePoolLock);
    for (local_index = 0 ; local_index < NODE_POOL_SIZE ; local_index++)
    {
        HashNode *freeNode = &nodePoolArea[local_index];
        freeNode->nextFree = nodePool;
        nodePool           = freeNode;
    }
    ixOsalMutexInit(&macPoolLock);
    for (local_index = 0 ; local_index < MAC_POOL_SIZE ; local_index++)
    {
        MacDescriptor *freeDescriptor = &macPoolArea[local_index];
        freeDescriptor->nextFree = macPool;
        macPool                  = freeDescriptor;
    }
    ixOsalMutexInit(&treePoolLock);
    for (local_index = 0 ; local_index < TREE_POOL_SIZE ; local_index++)
    {
        MacTreeNode *freeNode = &treePoolArea[local_index];
        freeNode->nextFree = treePool;
        treePool           = freeNode;
    }
}