Searched refs:pv_ops (Results 1 – 9 of 9) sorted by relevance
1199 pv_ops.irq.save_fl = __PV_IS_CALLEE_SAVE(xen_save_fl_direct); in xen_setup_vcpu_info_placement()1200 pv_ops.irq.irq_disable = __PV_IS_CALLEE_SAVE(xen_irq_disable_direct); in xen_setup_vcpu_info_placement()1201 pv_ops.irq.irq_enable = __PV_IS_CALLEE_SAVE(xen_irq_enable_direct); in xen_setup_vcpu_info_placement()1202 pv_ops.mmu.read_cr2 = __PV_IS_CALLEE_SAVE(xen_read_cr2_direct); in xen_setup_vcpu_info_placement()1312 pv_ops.cpu.write_gdt_entry = xen_write_gdt_entry_boot; in xen_setup_gdt()1313 pv_ops.cpu.load_gdt = xen_load_gdt_boot; in xen_setup_gdt()1317 pv_ops.cpu.write_gdt_entry = xen_write_gdt_entry; in xen_setup_gdt()1318 pv_ops.cpu.load_gdt = xen_load_gdt; in xen_setup_gdt()1363 pv_ops.cpu.cpuid = xen_cpuid; in xen_start_kernel()1364 pv_ops.cpu.set_debugreg = xen_set_debugreg; in xen_start_kernel()[all …]
1271 pv_ops.mmu.set_pte = __xen_set_pte; in xen_pagetable_init()2166 pv_ops.mmu.set_pte = xen_set_pte; in xen_post_allocator_init()2167 pv_ops.mmu.set_pmd = xen_set_pmd; in xen_post_allocator_init()2168 pv_ops.mmu.set_pud = xen_set_pud; in xen_post_allocator_init()2169 pv_ops.mmu.set_p4d = xen_set_p4d; in xen_post_allocator_init()2173 pv_ops.mmu.alloc_pte = xen_alloc_pte; in xen_post_allocator_init()2174 pv_ops.mmu.alloc_pmd = xen_alloc_pmd; in xen_post_allocator_init()2175 pv_ops.mmu.release_pte = xen_release_pte; in xen_post_allocator_init()2176 pv_ops.mmu.release_pmd = xen_release_pmd; in xen_post_allocator_init()2177 pv_ops.mmu.alloc_pud = xen_alloc_pud; in xen_post_allocator_init()[all …]
65 pv_ops.mmu.exit_mmap = xen_hvm_exit_mmap; in xen_hvm_init_mmu_ops()
22 (hypervisor,下文简称超级管理器),需要不同的二进制内核,这个限制已经被pv_ops移23 除了。Linux pv_ops是一个虚拟化API,它能够支持不同的管理程序。它允许每个管理程序27 pv_ops提供了一组函数指针,代表了与低级关键指令和各领域高级功能相对应的操作。30 pv_ops操作被分为三类:
9 different hypervisors; this restriction was removed with pv_ops.10 Linux pv_ops is a virtualization API which enables support for different15 pv_ops provides a set of function pointers which represent operations17 functionalities in various areas. pv_ops allows for optimizations at run21 pv_ops operations are classified into three categories:
53 if (!f->pv_ops) { in objtool_pv_add()70 list_add(&func->pv_target, &f->pv_ops[idx].targets); in objtool_pv_add()71 f->pv_ops[idx].clean = false; in objtool_pv_add()
616 file->pv_ops = NULL; in init_pv_ops()632 file->pv_ops = calloc(nr, sizeof(struct pv_state)); in init_pv_ops()633 if (!file->pv_ops) { in init_pv_ops()639 INIT_LIST_HEAD(&file->pv_ops[idx].targets); in init_pv_ops()3476 if (file->pv_ops[idx].clean) in pv_call_dest()3479 file->pv_ops[idx].clean = true; in pv_call_dest()3481 list_for_each_entry(target, &file->pv_ops[idx].targets, pv_target) { in pv_call_dest()3484 file->pv_ops[idx].clean = false; in pv_call_dest()3488 return file->pv_ops[idx].clean; in pv_call_dest()3500 if (file->pv_ops) in noinstr_call_dest()
48 pv_ops.cpu.load_gs_index = native_lkgs; in lkgs_init()
39 struct pv_state *pv_ops; member