亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? multi.c

?? xen虛擬機源代碼安裝包
?? C
?? 第 1 頁 / 共 5 頁
字號:
    shadow_l1e_t old_sl1e;#if SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC    mfn_t new_gmfn = shadow_l1e_get_mfn(new_sl1e);#endif    ASSERT(sl1e != NULL);#if SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC    if ( mfn_valid(new_gmfn) && mfn_oos_may_write(new_gmfn)         && ((shadow_l1e_get_flags(new_sl1e) & (_PAGE_RW|_PAGE_PRESENT))             == (_PAGE_RW|_PAGE_PRESENT)) )        oos_fixup_add(v, new_gmfn, sl1mfn, pgentry_ptr_to_slot(sl1e));#endif        old_sl1e = *sl1e;    if ( old_sl1e.l1 == new_sl1e.l1 ) return 0; /* Nothing to do */        if ( (shadow_l1e_get_flags(new_sl1e) & _PAGE_PRESENT)         && !sh_l1e_is_magic(new_sl1e) )     {        /* About to install a new reference */                if ( shadow_mode_refcounts(d) ) {            if ( shadow_get_page_from_l1e(new_sl1e, d) == 0 )             {                /* Doesn't look like a pagetable. */                flags |= SHADOW_SET_ERROR;                new_sl1e = shadow_l1e_empty();            }            else            {                shadow_vram_get_l1e(new_sl1e, sl1e, sl1mfn, d);            }        }    }     /* Write the new entry */    shadow_write_entries(sl1e, &new_sl1e, 1, sl1mfn);    flags |= SHADOW_SET_CHANGED;    if ( (shadow_l1e_get_flags(old_sl1e) & _PAGE_PRESENT)          && !sh_l1e_is_magic(old_sl1e) )    {        /* We lost a reference to an old mfn. */        /* N.B. Unlike higher-level sets, never need an extra flush          * when writing an l1e.  Because it points to the same guest frame          * as the guest l1e did, it's the guest's responsibility to         * trigger a flush later. */        if ( shadow_mode_refcounts(d) )         {            shadow_vram_put_l1e(old_sl1e, sl1e, sl1mfn, d);            shadow_put_page_from_l1e(old_sl1e, d);        }     }    return flags;}/**************************************************************************//* Macros to walk pagetables.  These take the shadow of a pagetable and  * walk every "interesting" entry.  That is, they don't touch Xen mappings,  * and for 32-bit l2s shadowed onto PAE or 64-bit, they only touch every  * second entry (since pairs of entries are managed together). For multi-page * shadows they walk all pages. *  * Arguments are an MFN, the variable to point to each entry, a variable  * to indicate that we are done (we will shortcut to the end of the scan  * when _done != 0), a variable to indicate that we should avoid Xen mappings, * and the code.  * * WARNING: These macros have side-effects.  They change the values of both  * the pointer and the MFN. */ static inline void increment_ptr_to_guest_entry(void *ptr){    if ( ptr )    {        guest_l1e_t **entry = ptr;        (*entry)++;    }}/* All kinds of l1: touch all entries */#define _SHADOW_FOREACH_L1E(_sl1mfn, _sl1e, _gl1p, _done, _code)        \do {                                                                    \    int _i;                                                             \    shadow_l1e_t *_sp = sh_map_domain_page((_sl1mfn));                  \    ASSERT(mfn_to_shadow_page(_sl1mfn)->type == SH_type_l1_shadow       \           || mfn_to_shadow_page(_sl1mfn)->type == SH_type_fl1_shadow); \    for ( _i = 0; _i < SHADOW_L1_PAGETABLE_ENTRIES; _i++ )              \    {                                                                   \        (_sl1e) = _sp + _i;                                             \        if ( shadow_l1e_get_flags(*(_sl1e)) & _PAGE_PRESENT )           \            {_code}                                                     \        if ( _done ) break;                                             \        increment_ptr_to_guest_entry(_gl1p);                            \    }                                                                   \    sh_unmap_domain_page(_sp);                                          \} while (0)/* 32-bit l1, on PAE or 64-bit shadows: need to walk both pages of shadow */#if GUEST_PAGING_LEVELS == 2 && SHADOW_PAGING_LEVELS > 2#define SHADOW_FOREACH_L1E(_sl1mfn, _sl1e, _gl1p, _done,  _code)        \do {                                                                    \    int __done = 0;                                                     \    _SHADOW_FOREACH_L1E(_sl1mfn, _sl1e, _gl1p,                          \                         ({ (__done = _done); }), _code);               \    _sl1mfn = _mfn(mfn_x(_sl1mfn) + 1);                                 \    if ( !__done )                                                      \        _SHADOW_FOREACH_L1E(_sl1mfn, _sl1e, _gl1p,                      \                             ({ (__done = _done); }), _code);           \} while (0)#else /* Everything else; l1 shadows are only one page */#define SHADOW_FOREACH_L1E(_sl1mfn, _sl1e, _gl1p, _done, _code)         \       _SHADOW_FOREACH_L1E(_sl1mfn, _sl1e, _gl1p, _done, _code)#endif    #if GUEST_PAGING_LEVELS == 2/* 32-bit l2 on PAE/64: four pages, touch every second entry, and avoid Xen */#define SHADOW_FOREACH_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)     \do {                                                                      \    int _i, _j, __done = 0;                                               \    int _xen = !shadow_mode_external(_dom);                               \    ASSERT(mfn_to_shadow_page(_sl2mfn)->type == SH_type_l2_32_shadow);    \    for ( _j = 0; _j < 4 && !__done; _j++ )                               \    {                                                                     \        shadow_l2e_t *_sp = sh_map_domain_page(_sl2mfn);                  \        for ( _i = 0; _i < SHADOW_L2_PAGETABLE_ENTRIES; _i += 2 )         \            if ( (!(_xen))                                                \                 || ((_j * SHADOW_L2_PAGETABLE_ENTRIES) + _i)             \                 < (HYPERVISOR_VIRT_START >> SHADOW_L2_PAGETABLE_SHIFT) ) \            {                                                             \                (_sl2e) = _sp + _i;                                       \                if ( shadow_l2e_get_flags(*(_sl2e)) & _PAGE_PRESENT )     \                    {_code}                                               \                if ( (__done = (_done)) ) break;                          \                increment_ptr_to_guest_entry(_gl2p);                      \            }                                                             \        sh_unmap_domain_page(_sp);                                        \        _sl2mfn = _mfn(mfn_x(_sl2mfn) + 1);                               \    }                                                                     \} while (0)#elif GUEST_PAGING_LEVELS == 3/* PAE: if it's an l2h, don't touch Xen mappings */#define SHADOW_FOREACH_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)      \do {                                                                       \    int _i;                                                                \    int _xen = !shadow_mode_external(_dom);                                \    shadow_l2e_t *_sp = sh_map_domain_page((_sl2mfn));                     \    ASSERT(mfn_to_shadow_page(_sl2mfn)->type == SH_type_l2_pae_shadow      \           || mfn_to_shadow_page(_sl2mfn)->type == SH_type_l2h_pae_shadow);\    for ( _i = 0; _i < SHADOW_L2_PAGETABLE_ENTRIES; _i++ )                 \        if ( (!(_xen))                                                     \             || mfn_to_shadow_page(_sl2mfn)->type != SH_type_l2h_pae_shadow\             || ((_i + (3 * SHADOW_L2_PAGETABLE_ENTRIES))                  \                 < (HYPERVISOR_VIRT_START >> SHADOW_L2_PAGETABLE_SHIFT)) ) \        {                                                                  \            (_sl2e) = _sp + _i;                                            \            if ( shadow_l2e_get_flags(*(_sl2e)) & _PAGE_PRESENT )          \                {_code}                                                    \            if ( _done ) break;                                            \            increment_ptr_to_guest_entry(_gl2p);                           \        }                                                                  \    sh_unmap_domain_page(_sp);                                             \} while (0)#else /* 64-bit l2: touch all entries except for PAE compat guests. */#define SHADOW_FOREACH_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)       \do {                                                                        \    int _i;                                                                 \    int _xen = !shadow_mode_external(_dom);                                 \    shadow_l2e_t *_sp = sh_map_domain_page((_sl2mfn));                      \    ASSERT(mfn_to_shadow_page(_sl2mfn)->type == SH_type_l2_64_shadow ||     \           mfn_to_shadow_page(_sl2mfn)->type == SH_type_l2h_64_shadow);     \    for ( _i = 0; _i < SHADOW_L2_PAGETABLE_ENTRIES; _i++ )                  \    {                                                                       \        if ( (!(_xen))                                                      \             || !is_pv_32on64_domain(_dom)                                  \             || mfn_to_shadow_page(_sl2mfn)->type != SH_type_l2h_64_shadow  \             || (_i < COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom)) )           \        {                                                                   \            (_sl2e) = _sp + _i;                                             \            if ( shadow_l2e_get_flags(*(_sl2e)) & _PAGE_PRESENT )           \                {_code}                                                     \            if ( _done ) break;                                             \            increment_ptr_to_guest_entry(_gl2p);                            \        }                                                                   \    }                                                                       \    sh_unmap_domain_page(_sp);                                              \} while (0)#endif /* different kinds of l2 */#if GUEST_PAGING_LEVELS == 4/* 64-bit l3: touch all entries */#define SHADOW_FOREACH_L3E(_sl3mfn, _sl3e, _gl3p, _done, _code)         \do {                                                                    \    int _i;                                                             \    shadow_l3e_t *_sp = sh_map_domain_page((_sl3mfn));                  \    ASSERT(mfn_to_shadow_page(_sl3mfn)->type == SH_type_l3_64_shadow);  \    for ( _i = 0; _i < SHADOW_L3_PAGETABLE_ENTRIES; _i++ )              \    {                                                                   \        (_sl3e) = _sp + _i;                                             \        if ( shadow_l3e_get_flags(*(_sl3e)) & _PAGE_PRESENT )           \            {_code}                                                     \        if ( _done ) break;                                             \        increment_ptr_to_guest_entry(_gl3p);                            \    }                                                                   \    sh_unmap_domain_page(_sp);                                          \} while (0)/* 64-bit l4: avoid Xen mappings */#define SHADOW_FOREACH_L4E(_sl4mfn, _sl4e, _gl4p, _done, _dom, _code)   \do {                                                                    \    shadow_l4e_t *_sp = sh_map_domain_page((_sl4mfn));                  \    int _xen = !shadow_mode_external(_dom);                             \    int _i;                                                             \    ASSERT(mfn_to_shadow_page(_sl4mfn)->type == SH_type_l4_64_shadow);  \    for ( _i = 0; _i < SHADOW_L4_PAGETABLE_ENTRIES; _i++ )              \    {                                                                   \        if ( (!(_xen)) || is_guest_l4_slot(_dom, _i) )                  \        {                                                               \            (_sl4e) = _sp + _i;                                         \            if ( shadow_l4e_get_flags(*(_sl4e)) & _PAGE_PRESENT )       \                {_code}                                                 \            if ( _done ) break;                                         \        }                                                               \        increment_ptr_to_guest_entry(_gl4p);                            \    }                                                                   \    sh_unmap_domain_page(_sp);                                          \} while (0)#endif/**************************************************************************//* Functions to install Xen mappings and linear mappings in shadow pages */// XXX -- this function should probably be moved to shadow-common.c, but that//        probably wants to wait until the shadow types have been moved from//        shadow-types.h to shadow-private.h//#if CONFIG_PAGING_LEVELS == 4 && GUEST_PAGING_LEVELS == 4void sh_install_xen_entries_in_l4(struct vcpu *v, mfn_t gl4mfn, mfn_t sl4mfn){    struct domain *d = v->domain;    shadow_l4e_t *sl4e;    sl4e = sh_map_domain_page(sl4mfn);    ASSERT(sl4e != NULL);    ASSERT(sizeof (l4_pgentry_t) == sizeof (shadow_l4e_t));        /* Copy the common Xen mappings from the idle domain */    memcpy(&sl4e[ROOT_PAGETABLE_FIRST_XEN_SLOT],           &idle_pg_table[ROOT_PAGETABLE_FIRST_XEN_SLOT],           ROOT_PAGETABLE_XEN_SLOTS * sizeof(l4_pgentry_t));    /* Install the per-domain mappings for this domain */    sl4e[shadow_l4_table_offset(PERDOMAIN_VIRT_START)] =        shadow_l4e_from_mfn(page_to_mfn(virt_to_page(d->arch.mm_perdomain_l3)),                            __PAGE_HYPERVISOR);    /* Shadow linear mapping for 4-level shadows.  N.B. for 3-level     * shadows on 64-bit xen, this linear mapping is later replaced by the     * monitor pagetable structure, which is built in make_monitor_table     * and maintained by sh_update_linear_entries. */    sl4e[shadow_l4_table_offset(SH_LINEAR_PT_VIRT_START)] =        shadow_l4e_from_mfn(sl4mfn, __PAGE_HYPERVISOR);    /* Self linear mapping.  */    if ( shadow_mode_translate(v->domain) && !shadow_mode_external(v->domain) )    {        // linear tables may not be used with translated PV guests        sl4e[shadow_l4_table_offset(LINEAR_PT_VIRT_START)] =            shadow_l4e_empty();    }    else    {        sl4e[shadow_l4_table_offset(LINEAR_PT_VIRT_START)] =            shadow_l4e_from_mfn(gl4mfn, __PAGE_HYPERVISOR);    }    if ( shadow_mode_translate(v->domain) )    {        /* install domain-specific P2M table */        sl4e[shadow_l4_table_offset(RO_MPT_VIRT_START)] =            shadow_l4e_from_mfn(pagetable_get_mfn(d->arch.phys_table),                                __PAGE_HYPERVISOR);    }    sh_unmap_domain_page(sl4e);    }#endif#if CONFIG_PAGING_LEVELS >= 3 && GUEST_PAGING_LEVELS >= 3// For 3-on-3 PV guests, we need to make sure the xen mappings are in// place, which means that we need to populate the l2h entry in the l3// table.static void sh_install_xen_entries_in_l2h(struct vcpu *v, mfn_t sl2hmfn){    struct domain *d = v->domain;    shadow_l2e_t *sl2e;#if CONFIG_PAGING_LEVELS == 3    int i;#else    if ( !is_pv_32on64_vcpu(v) )        return;#endif    sl2e = sh_map_domain_page(sl2hmfn);    ASSERT(sl2e != NULL);    ASSERT(sizeof (l2_pgentry_t) == sizeof (shadow_l2e_t));    #if CONFIG_PAGING_LEVELS == 3    /* Copy the common Xen mappings from the idle domain */    memcpy(&sl2e[L2_PAGETABLE_FIRST_XEN_SLOT & (L2_PAGETABLE_ENTRIES-1)],           &idle_pg_table_l2[L2_PAGETABLE_FIRST_XEN_SLOT],           L2_PAGETABLE_XEN_SLOTS * sizeof(l2_pgentry_t));    /* Install the per-domain mappings for this domain */    for ( i = 0; i < PDPT_L2_ENTRIES; i++ )        sl2e[shadow_l2_table_offset(PERDOMAIN_VIRT_START) + i] =            shadow_l2e_from_mfn(                page_to_mfn(virt_to_page(d->arch.mm_perdomain_pt) + i),                __PAGE_HYPERVISOR);        /* We don't set up a linear mapping here because we can't until this     * l2h is installed in an l3e.  sh_update_linear_entries() handles     * the linear mappings when CR3 (and so the fourth l3e) is loaded.       * We zero them here, just as a safety measure.     */    for ( i = 0; i < SHADOW_L3_PAGETABLE_ENTRIES; i++ )        sl2e[shadow_l2_table_offset(LINEAR_PT_VIRT_START) + i] =            shadow_l2e_empty();    for ( i = 0; i < SHADOW_L3_PAGETABLE_ENTRIES; i++ )        sl2e[shadow_l2_table_offset(SH_LINEAR_PT_VIRT_START) + i] =            shadow_l2e_empty();    if ( shadow_mode_translate(d) )    {        /* Install the domain-specific p2m table *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚区不卡日本| 精品少妇一区二区三区日产乱码| 欧美亚洲综合色| 久久影院午夜片一区| 亚洲一区在线观看视频| 国产成人综合在线观看| 欧美精品 国产精品| 国产精品国产三级国产aⅴ入口 | 国产一区在线精品| 色久综合一二码| 国产精品色噜噜| 国产毛片精品一区| 3d成人h动漫网站入口| 一区二区三区**美女毛片| 国产成人在线网站| 日韩欧美综合一区| 日韩不卡手机在线v区| 欧美亚洲综合色| 洋洋av久久久久久久一区| 成人精品小蝌蚪| 国产亚洲欧美日韩在线一区| 精品一区二区三区免费视频| 欧美日韩另类国产亚洲欧美一级| 亚洲乱码日产精品bd | 捆绑调教一区二区三区| 欧美亚洲尤物久久| 亚洲激情图片qvod| 91视频在线观看| 亚洲视频在线观看三级| 成人aa视频在线观看| 国产精品久久午夜夜伦鲁鲁| 国产成人综合网| 国产精品欧美精品| 9l国产精品久久久久麻豆| 国产精品天干天干在线综合| 成人综合日日夜夜| 中文字幕亚洲一区二区av在线| 99久久精品国产麻豆演员表| 国产精品你懂的在线| www.欧美色图| 亚洲欧美经典视频| 欧美在线影院一区二区| 性做久久久久久久久| 91麻豆精品国产综合久久久久久| 婷婷成人激情在线网| 日韩欧美成人一区| 国产精品911| 欧美—级在线免费片| 99re热这里只有精品免费视频| 国产精品国产馆在线真实露脸| 91在线看国产| 亚洲va韩国va欧美va精品| 欧美一区二区三区成人| 国产乱人伦偷精品视频免下载| 久久精品男人的天堂| 99在线精品视频| 日韩中文字幕不卡| 欧美国产日韩在线观看| 老司机精品视频导航| 欧美日韩国产精品自在自线| 亚洲精品国产精品乱码不99 | 国产一区二区调教| 色8久久人人97超碰香蕉987| 久久国产精品第一页| 丝袜亚洲精品中文字幕一区| 亚洲欧美偷拍另类a∨色屁股| 欧美国产日韩精品免费观看| 精品免费视频.| 欧美一级片在线看| 日韩午夜av一区| 91精品在线观看入口| 欧美精选一区二区| 欧美日韩在线播放三区| 欧洲亚洲精品在线| 精品国产乱码久久久久久闺蜜| 欧美一区午夜精品| 欧美一级二级在线观看| 日韩欧美在线不卡| 日韩欧美一二三| 欧美精品一区视频| 精品国偷自产国产一区| 欧美zozo另类异族| 久久蜜桃一区二区| 国产亚洲午夜高清国产拍精品| 久久嫩草精品久久久精品一| 精品日韩成人av| 久久九九久久九九| 中文欧美字幕免费| 国产精品麻豆欧美日韩ww| 亚洲欧美日韩电影| 一区二区三区日韩精品| 午夜精品久久久久影视| 日韩成人av影视| 国产精品一区免费视频| 国产成人一区二区精品非洲| 92国产精品观看| 日本韩国视频一区二区| 91精品国产综合久久久久久久久久 | 美洲天堂一区二卡三卡四卡视频| 奇米影视一区二区三区| 激情成人综合网| 99久久99久久精品免费观看| 91在线看国产| 欧美一卡二卡在线观看| 国产亚洲一区字幕| 亚洲精品久久久久久国产精华液| 亚洲国产精品嫩草影院| 国产一区二区三区黄视频| 粉嫩av亚洲一区二区图片| 亚洲国产成人私人影院tom| 亚洲视频一区在线观看| 日韩高清电影一区| 国产成人精品免费看| 欧美亚洲尤物久久| 国产欧美日韩视频在线观看| 亚洲日本在线看| 麻豆国产一区二区| 99久久精品国产观看| 日韩你懂的在线观看| 亚洲欧洲精品一区二区精品久久久| 午夜精品福利一区二区三区av| 国产精品1区2区3区| 欧洲日韩一区二区三区| 久久伊99综合婷婷久久伊| 亚洲色图一区二区三区| 日本不卡123| 在线亚洲免费视频| 久久精品一级爱片| 亚洲午夜精品在线| 懂色av噜噜一区二区三区av| 欧美男人的天堂一二区| 国产精品久久久久久久久图文区| 偷拍与自拍一区| 91麻豆.com| 国产亚洲制服色| 理论电影国产精品| 欧美性三三影院| 国产精品不卡在线观看| 久久99精品视频| 欧美亚洲综合久久| 国产精品亚洲专一区二区三区| 欧美丰满一区二区免费视频| 国产精品嫩草影院av蜜臀| 老汉av免费一区二区三区| 欧美色中文字幕| 亚洲人成亚洲人成在线观看图片| 国产在线精品一区二区| 欧美一区二区三区四区五区 | 一区二区三区精密机械公司| 国产一区二区三区不卡在线观看 | 成人美女视频在线看| 精品欧美一区二区在线观看| 亚洲风情在线资源站| 一本大道av伊人久久综合| 日本一区二区视频在线观看| 极品瑜伽女神91| 日韩免费性生活视频播放| 日韩精品欧美精品| 欧美视频你懂的| 亚洲一区二区三区中文字幕| 91视频免费观看| 国产精品视频一二| 成人福利电影精品一区二区在线观看 | 2024国产精品| 精品一区二区三区免费播放| 7777精品伊人久久久大香线蕉完整版 | 国产精品久久一卡二卡| 国产白丝精品91爽爽久久| 久久久国际精品| 国产激情91久久精品导航 | 免费成人深夜小野草| 欧美欧美午夜aⅴ在线观看| 亚洲一本大道在线| 欧美顶级少妇做爰| 丝袜亚洲精品中文字幕一区| 欧美一二三区在线| 黑人巨大精品欧美黑白配亚洲| 精品精品欲导航| 国产麻豆一精品一av一免费 | 国产美女在线观看一区| 久久精品一区八戒影视| 顶级嫩模精品视频在线看| 国产精品久久影院| 91福利视频久久久久| 视频在线观看国产精品| 欧美成人一区二区三区片免费 | 99久久久精品| 亚洲综合999| 精品粉嫩超白一线天av| 日韩一区二区三区免费看 | 日本aⅴ亚洲精品中文乱码| 日韩美女视频一区二区在线观看| 狠狠网亚洲精品| 国产精品久久久久桃色tv| 欧美在线观看视频一区二区三区| 琪琪久久久久日韩精品| 国产性色一区二区| 91官网在线免费观看| 寂寞少妇一区二区三区| 综合久久久久久|