mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-07-19 18:02:06 +00:00
hv: move 'setup_io_bitmap' to vm.c
move this api from io_emul.c to vm.c to avoid reverse dependency Tracked-On: #1842 Signed-off-by: Mingqiang Chi <mingqiang.chi@intel.com> Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com> Reviewed-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
parent
de4ab6fdfa
commit
1d98b7012d
@ -310,9 +310,6 @@ The following structure represents a MMIO handler.
|
|||||||
The following APIs are provided to initialize, deinitialize or configure
|
The following APIs are provided to initialize, deinitialize or configure
|
||||||
I/O bitmaps and register or unregister I/O handlers:
|
I/O bitmaps and register or unregister I/O handlers:
|
||||||
|
|
||||||
.. doxygenfunction:: setup_io_bitmap
|
|
||||||
:project: Project ACRN
|
|
||||||
|
|
||||||
.. doxygenfunction:: allow_guest_pio_access
|
.. doxygenfunction:: allow_guest_pio_access
|
||||||
:project: Project ACRN
|
:project: Project ACRN
|
||||||
|
|
||||||
|
@ -42,6 +42,21 @@ static inline bool is_vm_valid(uint16_t vm_id)
|
|||||||
return bitmap_test(vm_id, &vmid_bitmap);
|
return bitmap_test(vm_id, &vmid_bitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialize the I/O bitmap for \p vm
|
||||||
|
*
|
||||||
|
* @param vm The VM whose I/O bitmap is to be initialized
|
||||||
|
*/
|
||||||
|
static void setup_io_bitmap(struct acrn_vm *vm)
|
||||||
|
{
|
||||||
|
if (is_vm0(vm)) {
|
||||||
|
(void)memset(vm->arch_vm.io_bitmap, 0x00U, PAGE_SIZE * 2U);
|
||||||
|
} else {
|
||||||
|
/* block all IO port access from Guest */
|
||||||
|
(void)memset(vm->arch_vm.io_bitmap, 0xFFU, PAGE_SIZE * 2U);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* return a pointer to the virtual machine structure associated with
|
/* return a pointer to the virtual machine structure associated with
|
||||||
* this VM ID
|
* this VM ID
|
||||||
*/
|
*/
|
||||||
|
@ -442,21 +442,6 @@ static void deny_guest_pio_access(struct acrn_vm *vm, uint16_t port_address,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Initialize the I/O bitmap for \p vm
|
|
||||||
*
|
|
||||||
* @param vm The VM whose I/O bitmap is to be initialized
|
|
||||||
*/
|
|
||||||
void setup_io_bitmap(struct acrn_vm *vm)
|
|
||||||
{
|
|
||||||
if (is_vm0(vm)) {
|
|
||||||
(void)memset(vm->arch_vm.io_bitmap, 0x00U, PAGE_SIZE * 2U);
|
|
||||||
} else {
|
|
||||||
/* block all IO port access from Guest */
|
|
||||||
(void)memset(vm->arch_vm.io_bitmap, 0xFFU, PAGE_SIZE * 2U);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Register a port I/O handler
|
* @brief Register a port I/O handler
|
||||||
*
|
*
|
||||||
|
@ -91,13 +91,6 @@ int32_t pio_instr_vmexit_handler(struct acrn_vcpu *vcpu);
|
|||||||
*/
|
*/
|
||||||
void allow_guest_pio_access(struct acrn_vm *vm, uint16_t port_address, uint32_t nbytes);
|
void allow_guest_pio_access(struct acrn_vm *vm, uint16_t port_address, uint32_t nbytes);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Initialize the I/O bitmap for \p vm
|
|
||||||
*
|
|
||||||
* @param vm The VM whose I/O bitmap is to be initialized
|
|
||||||
*/
|
|
||||||
void setup_io_bitmap(struct acrn_vm *vm);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Register a port I/O handler
|
* @brief Register a port I/O handler
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user