/* initializes EthDB 
Note that this function is documented in the public component header file, IxEthDB.h. */
IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBInit(void)
/* initializes EthDB 
Note that this function is documented in the public component header file, IxEthDB.h. */
IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBInit(void)
{
    IxEthDBStatus result;
    if (ethDBInitializationComplete)
    {
        return IX_ETH_DB_SUCCESS;
    }
    IX_ETH_DB_PORTS_ASSERTION;
    ixEthDBInitMemoryPools();
    ixEthDBMatchMethodsRegister(matchFunctions);
    ixEthDBUpdateTypeRegister(ixEthDBPortUpdateRequired);
    ixEthDBKeyTypeRegister(ixEthDBKeyType);
    ixEthDBInitHash(&dbHashtable, NUM_BUCKETS, ixEthDBEntryXORHash, matchFunctions, (FreeFunction) ixEthDBFreeMacDescriptor);
    ixEthDBNPEUpdateAreasInit();
    ixEthDBRecordSerializeMethodsRegister();
    result = ixEthDBEventProcessorInit();
    if (result == IX_ETH_DB_SUCCESS)
    {
        ixEthDBFeatureCapabilityScan();
    }
    ethDBInitializationComplete = TRUE;
    return result;
}