Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified .gitignore
100755 → 100644
Empty file.
23 changes: 23 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ if(ENABLE_BUILD_GUEST)
include_dependency(BOXY_SOURCE_DEPENDS_DIR linux)
endif()

if(ENABLE_BUILD_GUEST AND ENABLE_BUILD_EXAMPLES)
include_dependency(BOXY_SOURCE_DEPENDS_DIR buildroot)
endif()

# ------------------------------------------------------------------------------
# VMM
# ------------------------------------------------------------------------------
Expand Down Expand Up @@ -86,3 +90,22 @@ if(NOT WIN32 AND NOT CYGWIN)
DEPENDS bfintrinsics
)
endif()

# ------------------------------------------------------------------------------
# Examples
# ------------------------------------------------------------------------------

if(ENABLE_BUILD_EXAMPLES AND NOT WIN32 AND NOT CYGWIN)
add_subproject(
vmilinux userspace
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/examples/vmilinux
DEPENDS bflinux
)
endif()

# ------------------------------------------------------------------------------
# Validate Build
# ------------------------------------------------------------------------------

include(${CMAKE_CURRENT_LIST_DIR}/scripts/cmake/validate.cmake)
validate_build()
135 changes: 134 additions & 1 deletion bfbuilder/src/platform/linux/intrinsics.S
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ _mv_handle_op_close_handle:

mov r10, rdi

mov rax, 0x764D000000010000
mov rax, 0x764D000000010001
vmcall

ret
Expand Down Expand Up @@ -104,6 +104,139 @@ _mv_vm_properties_op_set_e820:
ret
.size _mv_vm_properties_op_set_e820, .-_mv_vm_properties_op_set_e820

/* -------------------------------------------------------------------------- */
/* _mv_vm_state_op_gva_to_gpa */
/* -------------------------------------------------------------------------- */

.globl _mv_vm_state_op_gva_to_gpa
.type _mv_vm_state_op_gva_to_gpa, @function
_mv_vm_state_op_gva_to_gpa:

push r12
push r13

mov r10, rdi
mov r11, rsi
mov r12, rdx
mov r13, rcx

mov rax, 0x764D000000030008
vmcall

mov [r8], r10
mov [r9], r11

pop r13
pop r12
ret
.size _mv_vm_state_op_gva_to_gpa, .-_mv_vm_state_op_gva_to_gpa

/* -------------------------------------------------------------------------- */
/* _mv_vm_state_op_map_range */
/* -------------------------------------------------------------------------- */

.globl _mv_vm_state_op_map_range
.type _mv_vm_state_op_map_range, @function
_mv_vm_state_op_map_range:

push r12
push r13
push r14
push r15

mov r10, rdi
mov r11, rsi
mov r12, rdx
mov r13, rcx
mov r14, r8
mov r15, r9

mov rax, 0x764D000000030009
vmcall

pop r15
pop r14
pop r13
pop r12
ret
.size _mv_vm_state_op_map_range, .-_mv_vm_state_op_map_range

/* -------------------------------------------------------------------------- */
/* _mv_vm_state_op_unmap_range */
/* -------------------------------------------------------------------------- */

.globl _mv_vm_state_op_unmap_range
.type _mv_vm_state_op_unmap_range, @function
_mv_vm_state_op_unmap_range:

push r12
push r13
push r14
push r15

mov r10, rdi
mov r11, rsi
mov r12, rdx
mov r13, rcx
mov r14, r8
mov r15, r9

mov rax, 0x764D00000003000A
vmcall

pop r15
pop r14
pop r13
pop r12
ret
.size _mv_vm_state_op_unmap_range, .-_mv_vm_state_op_unmap_range

/* -------------------------------------------------------------------------- */
/* _mv_vp_state_op_reg_val */
/* -------------------------------------------------------------------------- */

.globl _mv_vp_state_op_reg_val
.type _mv_vp_state_op_reg_val, @function
_mv_vp_state_op_reg_val:

push r12

mov r10, rdi
mov r11, rsi
mov r12, rdx

mov rax, 0x764D000000070000
vmcall

mov [rcx], r10

pop r12
ret
.size _mv_vp_state_op_reg_val, .-_mv_vp_state_op_reg_val

/* -------------------------------------------------------------------------- */
/* _mv_vp_state_op_msr_val */
/* -------------------------------------------------------------------------- */

.globl _mv_vp_state_op_msr_val
.type _mv_vp_state_op_msr_val, @function
_mv_vp_state_op_msr_val:

push r12

mov r10, rdi
mov r11, rsi
mov r12, rdx

mov rax, 0x764D000000070004
vmcall

mov [rcx], r10

pop r12
ret
.size _mv_vp_state_op_msr_val, .-_mv_vp_state_op_msr_val

/* -------------------------------------------------------------------------- */
/* !!! WARNING DEPRECATED !!! */
/* -------------------------------------------------------------------------- */
Expand Down
Loading