#
745291ce |
|
27-Nov-2020 |
Gerwin Klein <gerwin.klein@data61.csiro.au> |
Convert to SPDX license tags Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
|
#
0bf36184 |
|
26-Feb-2020 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Renamed include 'guest_memory_map.h' Renamed internal source include 'guest_memory_map.h' to a more general name 'guest_memory.h'. This being more general for other internal functions.
|
#
06e840ef |
|
08-Jan-2020 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Remove init in x86 instr decoding As the instruction definitions in the x86 instruction decoding table are constant and in a static location we can define them directly in the decoding tables. This removes the need to call an initialisation function.
|
#
ab3699dc |
|
05-Jan-2020 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Refactoring of x86 instruction decoding This commit refactors the x86 instruction decoding in-order to make its implementation is more modular and easier to read and update. The key changes being:: * moving "magic" instruction value constants into enum definitions * initialisation of an instruction decoding table that associates a single op instruction with a decoding handler - simplifying the 'vm_decode_instruction' function
|
#
c69cd028 |
|
13-Dec-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
trivial: Style changed files
|
#
298c2359 |
|
13-Dec-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
libsel4vm: Allocate 1:1 pd in vm_create_vcpu_arch This is created in the context of the vcpu object thus we move it out of vm_init.
|
#
ca31812e |
|
01-Dec-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed page_size field in VM object Removed the page_size field in the VM object. The page size of allocations and mappings can be left to the library user to define. Updated uses of the page_size field to directly define the page size value instead.
|
#
58a8b656 |
|
09-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: default error callback out of mem utils Moved the function 'default_error_fault_callback' out of the guest memory utils interface and into its own interface 'guest_memory_helpers'. The intention is to eventually move guest memory utils out of libsel4vm but we want to keep the 'default_error_fault_callback'.
|
#
f1bcc013 |
|
01-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed vpcu_init cookie parameter This parameter has never been needed or used hence we can remove it.
|
#
29b7a4f3 |
|
01-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed vm_init cookie for arch params Removed architecture specific vm initialisation params as both architecture sources no longer need to pass in specific parameters. This additionally means we can delete the 'cookie' parameter since its no longer used.
|
#
aa782bfb |
|
01-Nov-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Consolidate notification/fault endpoint Both arm and x86 source take in the hosts own endpoint such that it can wait on it for notifications and events. Removed the passing of the endpoint as an arch specfic boot parameter as its now passed through the common vm_init function.
|
#
e1947740 |
|
22-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed uses of 'vmm' in x86 source Updated x86 source such that the naming convention used is to prefix/postfix with 'vm' rather than 'vmm'. This change makes the naming convention consistent as this library now represents a single 'vm' instance rather than a vmm.
|
#
1283782d |
|
21-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: x86 processor src as private interface Moved the x86 processor source and header into the x86 architecture subdirectory. This has been transformed into an private interface that only internal code can access. We choose to abstract over processor source. Updated the processor header includes to reflect this change.
|
#
b649fca0 |
|
16-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Add x86 guest state initialisation Added a helper function to the guest state interface for setting the datastructure to a default state.
|
#
5d9bef1c |
|
16-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Refactored x86 vmcs interface The vmcs interface has been made private, this ensuring the guest x86 context interface is the only interface with public methods for updating vmcs fields. This ensures external vmcs updates are always consistent with our internal shadow state. The vmcs read and write helpers have been merged into the guest x86 context implementation and made privately available to our internal source.
|
#
e2420adf |
|
15-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Make guest_state interface private Make the guest_state interface a private header as we don't want to expose this to the user. Updated the internal source to include the private header.
|
#
7c175c94 |
|
15-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Make x86 vcpu guest state a pointer Updated the reference to the guest state datastructure to be a pointer. This being allocated at initialisation time. In addition update all references of the guest state datastructure to reflect the type change. This change stages way for making the guest state datastructure a private interface.
|
#
ddb615cb |
|
10-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed [get|has]_interrupt callbacks Removed the [get|has]_interrupt callbacks stored in the x86 vm->arch datastructure. Internal libsel4vm source can now directly call into the i8259 source.
|
#
271455b0 |
|
10-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: i8259 implements x86 irq controller Updated the i8259 to implement the guest irq controller interface. This updates the i8259 source to implement the interface prototypes. In addition this commit lifts the initialisation of the APIC memory region to create a single guest irq controller init function.
|
#
c064928c |
|
09-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Reintroduced IOPort interface to x86 Reintroduced the IOPort interface to the x86 VM. This is an architecture specific interface that lets the user register in and out callbacks for emulation on a specific io port.
|
#
76bffc7e |
|
09-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Moved vm check in x86 'vm_init_arch' Moved NULL check of VM handle in the x86 'vm_init_arch' function. Code above it would derefernce the vm making the check pointless.
|
#
51f618ab |
|
08-Oct-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Guest page dir reservation creation As the guest page directory creation did not use reservations, we updated it to use the vm memory reservation interface. In addition since it is not a RAM region we can no longer use vm_ram_touch. Updated the page preparation to use the internal vm reservation mapping interface to force a mapping for us to manipulate.
|
#
c1c0021e |
|
11-Sep-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed x86 ioport and pci source Removed the x86 pci and ioport management source. This has since been moved and refactored into the 'libsel4vmmcore' and 'libsel4pci' libraries. The VMM can choose to initialise the management datastructures seperately.
|
#
dd8820f3 |
|
09-Sep-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed vm_plat_callbacks Due to the async notification callback being refactored to a new location, the vm_plat_callbacks is only relevant to x86 source code. This has been refactored to a x86 specific configuration datastructure.
|
#
d7437c3d |
|
15-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Enabled vm_run to exit to caller Introduced vm exit constants that can be used to return to the library caller (vmm) for handling specific vm exits. Updated the exit handling functions and vm run loop to handle cases where it may exit and return an exit reason to the vmm. This is an initial change that will allow the vm to reduce policy and refactor out various drivers from the library such that it can be handled and managed by the vmm.
|
#
156d37cf |
|
12-Aug-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Removed x86 mmio interface Removed the mmio interface in the x86 source. This is replaced with the new guest memory interface.
|
#
2a78a936 |
|
11-Aug-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Updated x86 lapic fault handling Updated the lapic fault hander to go through the new guest memory interface as the mmio abstraction is now longer used on ept faults.
|
#
5032b89d |
|
17-Jul-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Renamed guest_memory to guest_ram Renamed the guest_memory interface to 'guest_ram'. The functions in the interface are intended to interact with guest ram memory. Updated calls to the guest ram interface.
|
#
ed2b25d5 |
|
10-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Made guest_vspace interface private Refactored the guest_vspace source to be private. This in particular makes 'vm_init_guest_vspace' a private function (named 'vm_get_guest_vspace' prior).
|
#
bfe0a05a |
|
12-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Updated x86 usage of vm_guest_touch Updated the x86 source to use 'vm_guest_mem_touch' over 'vm_guest_vspace_touch'. This now uses the 'guest_memory.h' interface.
|
#
98529f20 |
|
06-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Updated x86 to use new vspace interface Updated the sel4-x86-vmm source to use the new guest vspace interface.
|
#
6cd6b022 |
|
07-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Dropped 'vm_' prefix in vm_vcpu struct The 'vm_' prefix is reduntant since it exists in the vm_vcpu struct context.
|
#
db0c177d |
|
07-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Renamed vm_pd field to vm_vspace_root Renamed vm_pd field to vm_vspace_root as the top level data structure is not necessarily a page directory.
|
#
7867c421 |
|
06-May-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: Made arch_init functions private Refactored the architecture specific init/boot functions into a private interface. These are no needed in the public boot.h interface.
|
#
668be99f |
|
30-Apr-2019 |
Alison Felizzi <Alison.Felizzi@data61.csiro.au> |
libsel4vm: vm data-structure initialisation Refactored the x86 and arm initialisation of the guest vm data-structure. This brings the initialisation of the vm data structure under the one interface 'sel4vm/boot.h'.
|