Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 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
2 changes: 1 addition & 1 deletion tools/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ endif
ifeq ($(ARCH), loongarch)
toolchain := $(CCARCH)-unknown-linux-$(LIBC)
else
toolchain := $(CCARCH)-linux-$(LIBC)
toolchain := $(CCARCH)-none-linux-$(LIBC)
endif

CFLAGS := -Wall -Wextra -DLOG_USE_COLOR -DHLOG=$(LOG) --sysroot=$(ROOT)
Expand Down
3 changes: 2 additions & 1 deletion tools/hvisor.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "safe_cjson.h"
#include "virtio.h"
#include "zone_config.h"

static void __attribute__((noreturn)) help(int exit_status) {
printf("Hypervisor Management Tool\n\n");
printf("Usage:\n");
Expand Down Expand Up @@ -111,7 +112,7 @@ static __u64 load_image_to_memory(const char *path, __u64 load_paddr) {
exit(1);
}
// Load image content into memory
image_content = read_file(path, &size);
image_content = read_file(path, (uint64_t *)&size);

page_size = sysconf(_SC_PAGESIZE);
map_size = (size + page_size - 1) & ~(page_size - 1);
Expand Down
37 changes: 20 additions & 17 deletions tools/virtio.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ int get_zone_ram_index(void *zonex_ipa, int zone_id) {
if (zone_mem[zone_id][i][MEM_SIZE] == 0)
continue;
;
if (zonex_ipa >= zone_mem[zone_id][i][ZONEX_IPA] &&
zonex_ipa < zone_mem[zone_id][i][ZONEX_IPA] +
zone_mem[zone_id][i][MEM_SIZE]) {
if ((uintptr_t)zonex_ipa >= zone_mem[zone_id][i][ZONEX_IPA] &&
(uintptr_t)zonex_ipa < zone_mem[zone_id][i][ZONEX_IPA] +
zone_mem[zone_id][i][MEM_SIZE]) {
return i;
}
}
Expand Down Expand Up @@ -396,21 +396,24 @@ void virtqueue_set_desc_table(VirtQueue *vq) {
int zone_id = vq->dev->zone_id;
log_debug("zone %d set dev %s desc table ipa at %#x", zone_id,
virtio_device_type_to_string(vq->dev->type), vq->desc_table_addr);
vq->desc_table = (VirtqDesc *)get_virt_addr(vq->desc_table_addr, zone_id);
vq->desc_table = (VirtqDesc *)get_virt_addr(
(void *)(uintptr_t)vq->desc_table_addr, zone_id);
}

void virtqueue_set_avail(VirtQueue *vq) {
int zone_id = vq->dev->zone_id;
log_debug("zone %d set dev %s avail ring ipa at %#x", zone_id,
virtio_device_type_to_string(vq->dev->type), vq->avail_addr);
vq->avail_ring = (VirtqAvail *)get_virt_addr(vq->avail_addr, zone_id);
vq->avail_ring =
(VirtqAvail *)get_virt_addr((void *)(uintptr_t)vq->avail_addr, zone_id);
}

void virtqueue_set_used(VirtQueue *vq) {
int zone_id = vq->dev->zone_id;
log_debug("zone %d set dev %s used ring ipa at %#x", zone_id,
virtio_device_type_to_string(vq->dev->type), vq->used_addr);
vq->used_ring = (VirtqUsed *)get_virt_addr(vq->used_addr, zone_id);
vq->used_ring =
(VirtqUsed *)get_virt_addr((void *)(uintptr_t)vq->used_addr, zone_id);
}

// record one descriptor to iov.
Expand Down Expand Up @@ -1242,14 +1245,14 @@ int virtio_start_from_json(char *json_path) {
for (int j = 0; j < num_mems; j++) {
cJSON *mem_region =
SAFE_CJSON_GET_ARRAY_ITEM(memory_region_json, j);
zone0_ipa =
strtoull(SAFE_CJSON_GET_OBJECT_ITEM(mem_region, "zone0_ipa")
->valuestring,
NULL, 16);
zonex_ipa =
strtoull(SAFE_CJSON_GET_OBJECT_ITEM(mem_region, "zonex_ipa")
->valuestring,
NULL, 16);
zone0_ipa = (void *)(uintptr_t)strtoull(
SAFE_CJSON_GET_OBJECT_ITEM(mem_region, "zone0_ipa")
->valuestring,
NULL, 16);
zonex_ipa = (void *)(uintptr_t)strtoull(
SAFE_CJSON_GET_OBJECT_ITEM(mem_region, "zonex_ipa")
->valuestring,
NULL, 16);
mem_size = strtoull(
SAFE_CJSON_GET_OBJECT_ITEM(mem_region, "size")->valuestring,
NULL, 16);
Expand All @@ -1275,9 +1278,9 @@ int virtio_start_from_json(char *json_path) {
err = -1;
goto err_out;
}
zone_mem[zone_id][j][VIRT_ADDR] = virt_addr;
zone_mem[zone_id][j][ZONE0_IPA] = zone0_ipa;
zone_mem[zone_id][j][ZONEX_IPA] = zonex_ipa;
zone_mem[zone_id][j][VIRT_ADDR] = (uintptr_t)virt_addr;
zone_mem[zone_id][j][ZONE0_IPA] = (uintptr_t)zone0_ipa;
zone_mem[zone_id][j][ZONEX_IPA] = (uintptr_t)zonex_ipa;
zone_mem[zone_id][j][MEM_SIZE] = mem_size;
}

Expand Down