search for: vmicall

Displaying 20 results from an estimated 29 matches for "vmicall".

2007 Apr 18
4
[RFC, PATCH 1/24] i386 Vmi documentation
...es the base functionality to establish running + the kernel in VMI mode. + + The interface will be expanded to include feature negotiation, more + explicit control over call bundling and flushing, and hypervisor + notifications to allow inline code patching. + + VMI_Init + + VMICALL void VMI_Init(void); + + Initializes the hypervisor environment. Returns zero on success, + or -1 if the hypervisor could not be initialized. Note that this + is a recoverable error if the guest provides the requisite native + code to support transparent paravirtualization...
2007 Apr 18
4
[RFC, PATCH 1/24] i386 Vmi documentation
...es the base functionality to establish running + the kernel in VMI mode. + + The interface will be expanded to include feature negotiation, more + explicit control over call bundling and flushing, and hypervisor + notifications to allow inline code patching. + + VMI_Init + + VMICALL void VMI_Init(void); + + Initializes the hypervisor environment. Returns zero on success, + or -1 if the hypervisor could not be initialized. Note that this + is a recoverable error if the guest provides the requisite native + code to support transparent paravirtualization...
2007 Apr 18
3
[RFC, PATCH 4/24] i386 Vmi inline implementation
...ve_start; \ + native; \ + vmi_native_finish; \ + \ + vmi_translation_start; \ + vmi_call(name); \ + vmi_translation_finish; \ + \ + vmi_padded_start; \ + native; \ + vmi_nop_pad; \ + vmi_padded_finish; \ + \ + vmi_annotate(name); + +#include <vmiCalls.h> +#ifdef __ASSEMBLY__ +/* + * Create VMI_CALL_FuncName definitions for assembly code using + * equates; the C enumerations can not be used without propagating + * them in some fashion, and rather the obfuscate asm-offsets.c, it + * seems reasonable to confine this here. + */ +.equ VMI_CALL_CU...
2007 Apr 18
3
[RFC, PATCH 4/24] i386 Vmi inline implementation
...ve_start; \ + native; \ + vmi_native_finish; \ + \ + vmi_translation_start; \ + vmi_call(name); \ + vmi_translation_finish; \ + \ + vmi_padded_start; \ + native; \ + vmi_nop_pad; \ + vmi_padded_finish; \ + \ + vmi_annotate(name); + +#include <vmiCalls.h> +#ifdef __ASSEMBLY__ +/* + * Create VMI_CALL_FuncName definitions for assembly code using + * equates; the C enumerations can not be used without propagating + * them in some fashion, and rather the obfuscate asm-offsets.c, it + * seems reasonable to confine this here. + */ +.equ VMI_CALL_CU...
2007 Apr 18
4
[RFC, PATCH 3/24] i386 Vmi interface definition
...+/* + * paravirtualInterface.h -- + * + * Header file for paravirtualization interface and definitions + * for the hypervisor option ROM tables. + * + * Copyright (C) 2005, VMWare, Inc. + * + */ + +#ifndef _PARAVIRTUAL_INTERFACE_H_ +#define _PARAVIRTUAL_INTERFACE_H_ + +#include "vmiCalls.h" + +/* + *--------------------------------------------------------------------- + * + * VMI Option ROM API + * + *--------------------------------------------------------------------- + */ +#define VDEF(call) VMI_CALL_##call, +typedef enum VMICall { + VMI_CALLS + NUM_VMI_CALLS +} VMICa...
2007 Apr 18
4
[RFC, PATCH 3/24] i386 Vmi interface definition
...+/* + * paravirtualInterface.h -- + * + * Header file for paravirtualization interface and definitions + * for the hypervisor option ROM tables. + * + * Copyright (C) 2005, VMWare, Inc. + * + */ + +#ifndef _PARAVIRTUAL_INTERFACE_H_ +#define _PARAVIRTUAL_INTERFACE_H_ + +#include "vmiCalls.h" + +/* + *--------------------------------------------------------------------- + * + * VMI Option ROM API + * + *--------------------------------------------------------------------- + */ +#define VDEF(call) VMI_CALL_##call, +typedef enum VMICall { + VMI_CALLS + NUM_VMI_CALLS +} VMICa...
2007 Apr 18
0
[PATCH 8/9] Vmi apic ops.diff
...MU ops to work */ - if (vmi_rom) + if (vmi_ops.set_linear_mapping) vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0); } /* - * Return a pointer to the VMI function or a NOP stub + * Return a pointer to a VMI function or NULL if unimplemented */ static void *vmi_get_function(int vmicall) { @@ -678,12 +679,13 @@ static void *vmi_get_function(int vmical if (rel->type == VMI_RELOCATION_CALL_REL) return (void *)rel->eip; else - return (void *)vmi_nop; + return NULL; } /* * Helper macro for making the VMI paravirt-ops fill code readable. - * For unimplemented oper...
2007 Apr 18
0
[PATCH 8/9] Vmi apic ops.diff
...MU ops to work */ - if (vmi_rom) + if (vmi_ops.set_linear_mapping) vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0); } /* - * Return a pointer to the VMI function or a NOP stub + * Return a pointer to a VMI function or NULL if unimplemented */ static void *vmi_get_function(int vmicall) { @@ -678,12 +679,13 @@ static void *vmi_get_function(int vmical if (rel->type == VMI_RELOCATION_CALL_REL) return (void *)rel->eip; else - return (void *)vmi_nop; + return NULL; } /* * Helper macro for making the VMI paravirt-ops fill code readable. - * For unimplemented oper...
2007 Apr 18
7
[RFC, PATCH 5/24] i386 Vmi code patching
...e.com + * + */ + +#include <linux/config.h> +#include <asm/processor.h> +#include <asm/desc.h> +#include <asm/bitops.h> +#include <vmi.h> +#include <asm/system.h> +#include <asm/apic.h> + +/* Init gets called on APs during SMP boot, so a stub is needed. */ +VMICALL void VMI_Init(VMI_UINT32 data) +{ + +} + +VMICALL VMI_UINT32 VMI_GetPxE(VMI_UINT32 *pte) +{ + return (*pte); +} + +VMICALL void VMI_SetPxE(VMI_UINT32 *pte, VMI_UINT32 pteval) +{ + *pte = pteval; +} + +VMICALL VMI_UINT32 VMI_SwapPxE(VMI_UINT32 *pte, VMI_UINT32 pteval) +{ + VMI_UINT32 val; + + val =...
2007 Apr 18
7
[RFC, PATCH 5/24] i386 Vmi code patching
...e.com + * + */ + +#include <linux/config.h> +#include <asm/processor.h> +#include <asm/desc.h> +#include <asm/bitops.h> +#include <vmi.h> +#include <asm/system.h> +#include <asm/apic.h> + +/* Init gets called on APs during SMP boot, so a stub is needed. */ +VMICALL void VMI_Init(VMI_UINT32 data) +{ + +} + +VMICALL VMI_UINT32 VMI_GetPxE(VMI_UINT32 *pte) +{ + return (*pte); +} + +VMICALL void VMI_SetPxE(VMI_UINT32 *pte, VMI_UINT32 pteval) +{ + *pte = pteval; +} + +VMICALL VMI_UINT32 VMI_SwapPxE(VMI_UINT32 *pte, VMI_UINT32 pteval) +{ + VMI_UINT32 val; + + val =...
2007 Apr 18
1
[PATCH] 2.6.21 - VMI logic error
....com> diff -r 99800d11a3ec arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c Thu Apr 12 16:37:29 2007 -0700 +++ b/arch/i386/kernel/vmi.c Thu Apr 12 19:00:46 2007 -0700 @@ -685,11 +685,14 @@ do { \ do { \ reloc =3D call_vrom_long_func(vmi_rom, get_reloc, \ VMI_CALL_##vmicall); \ - if (rel->type !=3D VMI_RELOCATION_NONE) { \ - BUG_ON(rel->type !=3D VMI_RELOCATION_CALL_REL); \ + if (rel->type =3D=3D VMI_RELOCATION_CALL_REL) \ paravirt_ops.opname =3D (void *)rel->eip; \ - } else if (rel->type =3D=3D VMI_RELOCATION_NOP) \ + else if (rel->type =...
2007 Apr 18
1
[PATCH] 2.6.21 - VMI logic error
....com> diff -r 99800d11a3ec arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c Thu Apr 12 16:37:29 2007 -0700 +++ b/arch/i386/kernel/vmi.c Thu Apr 12 19:00:46 2007 -0700 @@ -685,11 +685,14 @@ do { \ do { \ reloc =3D call_vrom_long_func(vmi_rom, get_reloc, \ VMI_CALL_##vmicall); \ - if (rel->type !=3D VMI_RELOCATION_NONE) { \ - BUG_ON(rel->type !=3D VMI_RELOCATION_CALL_REL); \ + if (rel->type =3D=3D VMI_RELOCATION_CALL_REL) \ paravirt_ops.opname =3D (void *)rel->eip; \ - } else if (rel->type =3D=3D VMI_RELOCATION_NOP) \ + else if (rel->type =...
2010 Aug 23
1
Removing VMI kernel support from 2.6.37
...ingup(void) -{ - /* We must establish the lowmem mapping for MMU ops to work */ - if (vmi_ops.set_linear_mapping) - vmi_ops.set_linear_mapping(0, (void *)__PAGE_OFFSET, MAXMEM_PFN, 0); -} - -/* - * Return a pointer to a VMI function or NULL if unimplemented - */ -static void *vmi_get_function(int vmicall) -{ - u64 reloc; - const struct vmi_relocation_info *rel = (struct vmi_relocation_info *)&reloc; - reloc = call_vrom_long_func(vmi_rom, get_reloc, vmicall); - BUG_ON(rel->type == VMI_RELOCATION_JUMP_REL); - if (rel->type == VMI_RELOCATION_CALL_REL) - return (void *)rel->eip; - else -...
2010 Aug 23
1
Removing VMI kernel support from 2.6.37
...ingup(void) -{ - /* We must establish the lowmem mapping for MMU ops to work */ - if (vmi_ops.set_linear_mapping) - vmi_ops.set_linear_mapping(0, (void *)__PAGE_OFFSET, MAXMEM_PFN, 0); -} - -/* - * Return a pointer to a VMI function or NULL if unimplemented - */ -static void *vmi_get_function(int vmicall) -{ - u64 reloc; - const struct vmi_relocation_info *rel = (struct vmi_relocation_info *)&reloc; - reloc = call_vrom_long_func(vmi_rom, get_reloc, vmicall); - BUG_ON(rel->type == VMI_RELOCATION_JUMP_REL); - if (rel->type == VMI_RELOCATION_CALL_REL) - return (void *)rel->eip; - else -...
2007 Apr 18
0
[PATCH 4/5] Vmi.patch
...MI setup common to all processors + */ +void vmi_bringup(void) +{ + /* We must establish the lowmem mapping for MMU ops to work */ + vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0); +} + +/* + * Return a pointer to the VMI function or a NOP stub + */ +static void *vmi_get_function(int vmicall) +{ + u64 reloc; + const struct vmi_relocation_info *rel = (struct vmi_relocation_info *)&reloc; + reloc = call_vrom_long_func(vmi_rom, get_reloc, vmicall); + BUG_ON(rel->type == VMI_RELOCATION_JUMP_REL); + if (rel->type == VMI_RELOCATION_CALL_REL) + return (void *)rel->eip; + else +...
2007 Apr 18
0
[PATCH 4/5] Vmi.patch
...MI setup common to all processors + */ +void vmi_bringup(void) +{ + /* We must establish the lowmem mapping for MMU ops to work */ + vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0); +} + +/* + * Return a pointer to the VMI function or a NOP stub + */ +static void *vmi_get_function(int vmicall) +{ + u64 reloc; + const struct vmi_relocation_info *rel = (struct vmi_relocation_info *)&reloc; + reloc = call_vrom_long_func(vmi_rom, get_reloc, vmicall); + BUG_ON(rel->type == VMI_RELOCATION_JUMP_REL); + if (rel->type == VMI_RELOCATION_CALL_REL) + return (void *)rel->eip; + else +...
2007 Apr 18
0
[PATCH 5/6] VMI backend for paravirt-ops
...MI setup common to all processors + */ +void vmi_bringup(void) +{ + /* We must establish the lowmem mapping for MMU ops to work */ + vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0); +} + +/* + * Return a pointer to the VMI function or a NOP stub + */ +static void *vmi_get_function(int vmicall) +{ + u64 reloc; + const struct vmi_relocation_info *rel = (struct vmi_relocation_info *)&reloc; + reloc = call_vrom_long_func(vmi_rom, get_reloc, vmicall); + BUG_ON(rel->type == VMI_RELOCATION_JUMP_REL); + if (rel->type == VMI_RELOCATION_CALL_REL) + return (void *)rel->eip; + else +...
2007 Apr 18
0
[PATCH 5/6] VMI backend for paravirt-ops
...MI setup common to all processors + */ +void vmi_bringup(void) +{ + /* We must establish the lowmem mapping for MMU ops to work */ + vmi_ops.set_linear_mapping(0, __PAGE_OFFSET, max_low_pfn, 0); +} + +/* + * Return a pointer to the VMI function or a NOP stub + */ +static void *vmi_get_function(int vmicall) +{ + u64 reloc; + const struct vmi_relocation_info *rel = (struct vmi_relocation_info *)&reloc; + reloc = call_vrom_long_func(vmi_rom, get_reloc, vmicall); + BUG_ON(rel->type == VMI_RELOCATION_JUMP_REL); + if (rel->type == VMI_RELOCATION_CALL_REL) + return (void *)rel->eip; + else +...
2007 Apr 18
0
[RFC, PATCH 6/24] i386 Vmi magic fixes
...lic License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Send feedback to zach@vmware.com + * + */ + +#include <vmiCalls.h> + +#define VDEF(name) \ + . = __VMI_NEXT; \ + __VMI_NEXT = . + 32; \ + *(.text.VMI_##name); + +#define MACH_TEXT \ +. = ALIGN(4096); \ +__VMI_START = .; \ +__VMI_NEXT = .; \ +__VMI_END = . + 16384; \ +VMI_CALLS \ +. = __VMI_END; \ +. = ALIGN(4096); Index: linux-2.6.16-rc3/include/asm-i...
2007 Apr 18
0
[RFC, PATCH 6/24] i386 Vmi magic fixes
...lic License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Send feedback to zach@vmware.com + * + */ + +#include <vmiCalls.h> + +#define VDEF(name) \ + . = __VMI_NEXT; \ + __VMI_NEXT = . + 32; \ + *(.text.VMI_##name); + +#define MACH_TEXT \ +. = ALIGN(4096); \ +__VMI_START = .; \ +__VMI_NEXT = .; \ +__VMI_END = . + 16384; \ +VMI_CALLS \ +. = __VMI_END; \ +. = ALIGN(4096); Index: linux-2.6.16-rc3/include/asm-i...