⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shared.h

📁 xen虚拟机源代码安装包
💻 H
字号:
#ifndef __XEN_X86_SHARED_H__#define __XEN_X86_SHARED_H__#ifdef CONFIG_COMPAT#define nmi_reason(d) (!has_32bit_shinfo(d) ?                             \                       (u32 *)&(d)->shared_info->native.arch.nmi_reason : \                       (u32 *)&(d)->shared_info->compat.arch.nmi_reason)#define GET_SET_SHARED(type, field)                             \static inline type arch_get_##field(const struct domain *d)     \{                                                               \    return !has_32bit_shinfo(d) ?                               \           d->shared_info->native.arch.field :                  \           d->shared_info->compat.arch.field;                   \}                                                               \static inline void arch_set_##field(struct domain *d,           \                                    type val)                   \{                                                               \    if ( !has_32bit_shinfo(d) )                                 \        d->shared_info->native.arch.field = val;                \    else                                                        \        d->shared_info->compat.arch.field = val;                \}#define GET_SET_VCPU(type, field)                               \static inline type arch_get_##field(const struct vcpu *v)       \{                                                               \    return !has_32bit_shinfo(v->domain) ?                       \           v->vcpu_info->native.arch.field :                    \           v->vcpu_info->compat.arch.field;                     \}                                                               \static inline void arch_set_##field(struct vcpu *v,             \                                    type val)                   \{                                                               \    if ( !has_32bit_shinfo(v->domain) )                         \        v->vcpu_info->native.arch.field = val;                  \    else                                                        \        v->vcpu_info->compat.arch.field = val;                  \}#else#define nmi_reason(d) ((u32 *)&(d)->shared_info->arch.nmi_reason)#define GET_SET_SHARED(type, field)                             \static inline type arch_get_##field(const struct domain *d)     \{                                                               \    return d->shared_info->arch.field;                          \}                                                               \static inline void arch_set_##field(struct domain *d,           \                                    type val)                   \{                                                               \    d->shared_info->arch.field = val;                           \}#define GET_SET_VCPU(type, field)                               \static inline type arch_get_##field(const struct vcpu *v)       \{                                                               \    return v->vcpu_info->arch.field;                            \}                                                               \static inline void arch_set_##field(struct vcpu *v,             \                                    type val)                   \{                                                               \    v->vcpu_info->arch.field = val;                             \}#endifGET_SET_SHARED(unsigned long, max_pfn)GET_SET_SHARED(xen_pfn_t, pfn_to_mfn_frame_list_list)GET_SET_SHARED(unsigned long, nmi_reason)GET_SET_VCPU(unsigned long, cr2)#undef GET_SET_VCPU#undef GET_SET_SHARED#endif /* __XEN_X86_SHARED_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -