static void page_flush_tb_1(int level, void **lp)

{

    int i;



    if (*lp == NULL) {

        return;

    }

    if (level == 0) {

        PageDesc *pd = *lp;



        for (i = 0; i < L2_SIZE; ++i) {

            pd[i].first_tb = NULL;

            invalidate_page_bitmap(pd + i);

        }

    } else {

        void **pp = *lp;



        for (i = 0; i < L2_SIZE; ++i) {

            page_flush_tb_1(level - 1, pp + i);

        }

    }

}

static void page_flush_tb_1(int level, void **lp)

{

    int i;



    if (*lp == NULL) {

        return;

    }

    if (level == 0) {

        PageDesc *pd = *lp;



        for (i = 0; i < L2_SIZE; ++i) {

            pd[i].first_tb = NULL;

            invalidate_page_bitmap(pd + i);

        }

    } else {

        void **pp = *lp;



        for (i = 0; i < L2_SIZE; ++i) {

            page_flush_tb_1(level - 1, pp + i);

        }

    }

}

static void FUNC_0(int VAR_0, void **VAR_1)

{

    int VAR_2;



    if (*VAR_1 == NULL) {

        return;

    }

    if (VAR_0 == 0) {

        PageDesc *pd = *VAR_1;



        for (VAR_2 = 0; VAR_2 < L2_SIZE; ++VAR_2) {

            pd[VAR_2].first_tb = NULL;

            invalidate_page_bitmap(pd + VAR_2);

        }

    } else {

        void **VAR_3 = *VAR_1;



        for (VAR_2 = 0; VAR_2 < L2_SIZE; ++VAR_2) {

            FUNC_0(VAR_0 - 1, VAR_3 + VAR_2);

        }

    }

}

static void FUNC_0(int VAR_0, void **VAR_1)
{ int VAR_2; if (*VAR_1 == NULL) { return; } if (VAR_0 == 0) { PageDesc *pd = *VAR_1; for (VAR_2 = 0; VAR_2 < L2_SIZE; ++VAR_2) { pd[VAR_2].first_tb = NULL; invalidate_page_bitmap(pd + VAR_2); } } else { void **VAR_3 = *VAR_1; for (VAR_2 = 0; VAR_2 < L2_SIZE; ++VAR_2) { FUNC_0(VAR_0 - 1, VAR_3 + VAR_2); } } }