📄 hypercall.h
字号:
/****************************************************************************** * asm-x86/hypercall.h */#ifndef __ASM_X86_HYPERCALL_H__#define __ASM_X86_HYPERCALL_H__#include <public/physdev.h>#include <xen/types.h>/* * Both do_mmuext_op() and do_mmu_update(): * We steal the m.s.b. of the @count parameter to indicate whether this * invocation of do_mmu_update() is resuming a previously preempted call. */#define MMU_UPDATE_PREEMPTED (~(~0U>>1))/* * This gets set to a non-zero value whenever hypercall_create_continuation() * is used (outside of multicall context; in multicall context the second call * from do_multicall() itself will have this effect). Internal callers of * hypercall handlers interested in this condition must clear the flag prior * to invoking the respective handler(s). */DECLARE_PER_CPU(char, hc_preempted);extern longdo_event_channel_op_compat( XEN_GUEST_HANDLE(evtchn_op_t) uop);extern longdo_physdev_op_compat( XEN_GUEST_HANDLE(physdev_op_t) uop);extern longdo_set_trap_table( XEN_GUEST_HANDLE(const_trap_info_t) traps);extern intdo_mmu_update( XEN_GUEST_HANDLE(mmu_update_t) ureqs, unsigned int count, XEN_GUEST_HANDLE(uint) pdone, unsigned int foreigndom);extern longdo_set_gdt( XEN_GUEST_HANDLE(ulong) frame_list, unsigned int entries);extern longdo_stack_switch( unsigned long ss, unsigned long esp);extern longdo_fpu_taskswitch( int set);extern longdo_set_debugreg( int reg, unsigned long value);extern unsigned longdo_get_debugreg( int reg);extern longdo_update_descriptor( u64 pa, u64 desc);extern intdo_update_va_mapping( unsigned long va, u64 val64, unsigned long flags);extern longdo_physdev_op( int cmd, XEN_GUEST_HANDLE(void) arg);extern intdo_update_va_mapping_otherdomain( unsigned long va, u64 val64, unsigned long flags, domid_t domid);extern intdo_mmuext_op( XEN_GUEST_HANDLE(mmuext_op_t) uops, unsigned int count, XEN_GUEST_HANDLE(uint) pdone, unsigned int foreigndom);extern unsigned longdo_iret( void);struct vcpu;extern longarch_do_vcpu_op( int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg);extern intdo_kexec( unsigned long op, unsigned arg1, XEN_GUEST_HANDLE(void) uarg);#ifdef __x86_64__extern longdo_set_callbacks( unsigned long event_address, unsigned long failsafe_address, unsigned long syscall_address);extern longdo_set_segment_base( unsigned int which, unsigned long base);#elseextern longdo_set_callbacks( unsigned long event_selector, unsigned long event_address, unsigned long failsafe_selector, unsigned long failsafe_address);#endif#ifdef CONFIG_COMPATextern intcompat_physdev_op( int cmd, XEN_GUEST_HANDLE(void) arg);extern intarch_compat_vcpu_op( int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg);#endif#endif /* __ASM_X86_HYPERCALL_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -