static void vtd_iotlb_page_invalidate(IntelIOMMUState *s, uint16_t domain_id,

                                      hwaddr addr, uint8_t am)

{

    VTDIOTLBPageInvInfo info;



    assert(am <= VTD_MAMV);

    info.domain_id = domain_id;

    info.gfn = addr >> VTD_PAGE_SHIFT_4K;

    info.mask = ~((1 << am) - 1);

    g_hash_table_foreach_remove(s->iotlb, vtd_hash_remove_by_page, &info);

}

static void vtd_iotlb_page_invalidate(IntelIOMMUState *s, uint16_t domain_id,

                                      hwaddr addr, uint8_t am)

{

    VTDIOTLBPageInvInfo info;



    assert(am <= VTD_MAMV);

    info.domain_id = domain_id;

    info.gfn = addr >> VTD_PAGE_SHIFT_4K;

    info.mask = ~((1 << am) - 1);

    g_hash_table_foreach_remove(s->iotlb, vtd_hash_remove_by_page, &info);

}

static void FUNC_0(IntelIOMMUState *VAR_0, uint16_t VAR_1,

                                      hwaddr VAR_2, uint8_t VAR_3)

{

    VTDIOTLBPageInvInfo info;



    assert(VAR_3 <= VTD_MAMV);

    info.VAR_1 = VAR_1;

    info.gfn = VAR_2 >> VTD_PAGE_SHIFT_4K;

    info.mask = ~((1 << VAR_3) - 1);

    g_hash_table_foreach_remove(VAR_0->iotlb, vtd_hash_remove_by_page, &info);

}

static void FUNC_0(IntelIOMMUState *VAR_0, uint16_t VAR_1,
hwaddr VAR_2, uint8_t VAR_3)
{ VTDIOTLBPageInvInfo info; assert(VAR_3 <= VTD_MAMV); info.VAR_1 = VAR_1; info.gfn = VAR_2 >> VTD_PAGE_SHIFT_4K; info.mask = ~((1 << VAR_3) - 1); g_hash_table_foreach_remove(VAR_0->iotlb, vtd_hash_remove_by_page, &info); }