VOID RemoveMenuFromList()

in OemPkg/FrontPage/FrontPage.c [819:846]


VOID RemoveMenuFromList (UINT16 MenuId) {
    BOOLEAN FullMenuRemoved = FALSE;
    BOOLEAN LimitedMenuRemoved = FALSE;
    UINTN   Count;

    UINT16  MenuOptionCount  = (sizeof(mFormMap) / sizeof(mFormMap[0]));

    for (Count=0 ; Count < MenuOptionCount ; Count++)
    {
        if (mFormMap[Count].MenuString == MenuId)
        {
            if (mFormMap[Count].FullMenuIndex != UNUSED_INDEX) {
                FullMenuRemoved = TRUE;
                mFormMap[Count].FullMenuIndex = UNUSED_INDEX;
            }
            if (mFormMap[Count].LimitedMenuIndex != UNUSED_INDEX) {
                LimitedMenuRemoved = TRUE;
                mFormMap[Count].LimitedMenuIndex = UNUSED_INDEX;
            }
        }
        if (FullMenuRemoved && mFormMap[Count].FullMenuIndex != UNUSED_INDEX) {
            mFormMap[Count].FullMenuIndex -= 1;
        }
        if (LimitedMenuRemoved && mFormMap[Count].LimitedMenuIndex != UNUSED_INDEX) {
            mFormMap[Count].LimitedMenuIndex -= 1;
        }
    }
}