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:
Mingqiang Chi 2019-01-18 13:55:01 +08:00 committed by wenlingz
parent de4ab6fdfa
commit 1d98b7012d
4 changed files with 15 additions and 25 deletions

View File

@ -310,9 +310,6 @@ The following structure represents a MMIO handler.
The following APIs are provided to initialize, deinitialize or configure
I/O bitmaps and register or unregister I/O handlers:
.. doxygenfunction:: setup_io_bitmap
:project: Project ACRN
.. doxygenfunction:: allow_guest_pio_access
:project: Project ACRN

View File

@ -42,6 +42,21 @@ static inline bool is_vm_valid(uint16_t vm_id)
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
* this VM ID
*/

View File

@ -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
*

View File

@ -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);
/**
* @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
*