diff --git a/hosts/host-sdl/host-sdl.c b/hosts/host-sdl/host-sdl.c index 460d85b..94b7d84 100644 --- a/hosts/host-sdl/host-sdl.c +++ b/hosts/host-sdl/host-sdl.c @@ -225,7 +225,7 @@ int main(int argc, char *argv[]) { case UVM32_EVT_SYSCALL: switch(evt.data.syscall.code) { case UVM32_SYSCALL_PRINTBUF: { - uvm32_slice_t buf = uvm32_arg_getbuf(vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf = uvm32_arg_getslice(vmst, &evt, ARG0, ARG1); while(buf.len--) { printf("%02x", *buf.ptr++); } @@ -259,7 +259,7 @@ int main(int argc, char *argv[]) { uvm32_arg_setval(vmst, &evt, RET, 0xFFFFFFFF); } break; case UVM32_SYSCALL_RENDER: { - uvm32_slice_t buf = uvm32_arg_getbuf(vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf = uvm32_arg_getslice(vmst, &evt, ARG0, ARG1); // copy into texture void* dst; diff --git a/hosts/host/host.c b/hosts/host/host.c index 4e28a9a..6aa8f05 100644 --- a/hosts/host/host.c +++ b/hosts/host/host.c @@ -237,7 +237,7 @@ int main(int argc, char *argv[]) { case UVM32_EVT_SYSCALL: switch(evt.data.syscall.code) { case UVM32_SYSCALL_PRINTBUF: { - uvm32_slice_t buf = uvm32_arg_getbuf(&vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf = uvm32_arg_getslice(&vmst, &evt, ARG0, ARG1); while(buf.len--) { printf("%02x", *buf.ptr++); } diff --git a/precompiled/zigdoom.bin b/precompiled/zigdoom.bin index 91a4d81..888f4a4 100755 Binary files a/precompiled/zigdoom.bin and b/precompiled/zigdoom.bin differ diff --git a/test/extram/test/tests.c b/test/extram/test/tests.c index e7a3179..0d50ec3 100644 --- a/test/extram/test/tests.c +++ b/test/extram/test/tests.c @@ -204,7 +204,7 @@ void test_extram_buf_slice(void) { // check for printbuf of val TEST_ASSERT_EQUAL(UVM32_EVT_SYSCALL, evt.typ); TEST_ASSERT_EQUAL(evt.data.syscall.code, UVM32_SYSCALL_PRINTBUF); - uvm32_slice_t buf = uvm32_arg_getbuf(&vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf = uvm32_arg_getslice(&vmst, &evt, ARG0, ARG1); TEST_ASSERT_EQUAL(5, buf.len); TEST_ASSERT_EQUAL(0, memcmp(buf.ptr, "hello", 5)); } @@ -275,7 +275,7 @@ void test_extram_buf_slice_rugpull(void) { // remove extram uvm32_extram(&vmst, NULL, 0); - uvm32_slice_t buf = uvm32_arg_getbuf(&vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf = uvm32_arg_getslice(&vmst, &evt, ARG0, ARG1); // check that reading from non-existent extram gives empty buffer and puts into err state TEST_ASSERT_EQUAL(0, buf.len); uvm32_run(&vmst, &evt, 100); @@ -362,7 +362,7 @@ void test_extram_buf_slice_beyond_extram_end(void) { // string starts in valid extram, but no terminator will be found before hitting end of extram // check that reading from non-existent extram gives empty string and puts into err state - uvm32_slice_t buf = uvm32_arg_getbuf(&vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf = uvm32_arg_getslice(&vmst, &evt, ARG0, ARG1); TEST_ASSERT_EQUAL(0, buf.len); uvm32_run(&vmst, &evt, 100); TEST_ASSERT_EQUAL(evt.typ, UVM32_EVT_ERR); diff --git a/test/syscall_args/test/tests.c b/test/syscall_args/test/tests.c index 6c915f5..44a1228 100644 --- a/test/syscall_args/test/tests.c +++ b/test/syscall_args/test/tests.c @@ -76,7 +76,7 @@ void test_syscall_args_bufrd(void) { TEST_ASSERT_EQUAL(evt.data.syscall.code, SYSCALL_C); // get buffer described by ptr=ARG0,len=ARG1 - uvm32_slice_t buf = uvm32_arg_getbuf(&vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf = uvm32_arg_getslice(&vmst, &evt, ARG0, ARG1); uint8_t expected[32]; for (int i=0;i<32;i++) { expected[i] = i; @@ -98,7 +98,7 @@ void test_syscall_args_bufrd_bad_addr(void) { TEST_ASSERT_EQUAL(evt.data.syscall.code, SYSCALL_D); // get buffer described by ptr=ARG0,len=ARG1 - uvm32_slice_t buf = uvm32_arg_getbuf(&vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf = uvm32_arg_getslice(&vmst, &evt, ARG0, ARG1); TEST_ASSERT_EQUAL(0, buf.len); // it was invalid, should get a safe zero length buffer // attempt to run vm, should be stuck in err uvm32_run(&vmst, &evt, 1000); @@ -118,13 +118,13 @@ void test_syscall_args_bufrd_ptrs(void) { TEST_ASSERT_EQUAL(evt.data.syscall.code, SYSCALL_E); // get uint32_t buffer described by ptr=ARG0 - uvm32_slice_t buf0 = uvm32_arg_getbuf_fixed(&vmst, &evt, ARG0, 4); + uvm32_slice_t buf0 = uvm32_arg_getslice_fixed(&vmst, &evt, ARG0, 4); TEST_ASSERT_EQUAL(4, buf0.len); // check read ok uint32_t rspa = 0xABCD1234; memcpy(buf0.ptr, &rspa, 4); // send it back // get uint32_t buffer described by ptr=ARG1 - uvm32_slice_t buf1 = uvm32_arg_getbuf_fixed(&vmst, &evt, ARG1, 4); + uvm32_slice_t buf1 = uvm32_arg_getslice_fixed(&vmst, &evt, ARG1, 4); TEST_ASSERT_EQUAL(4, buf1.len); // check read ok uint32_t rspb = 0x9876DECF; memcpy(buf1.ptr, &rspb, 4); // send it back @@ -150,7 +150,7 @@ void test_syscall_args_buf_pass(void) { TEST_ASSERT_EQUAL(evt.data.syscall.code, SYSCALL_G); // get buffer described by ptr=ARG0,len=ARG1 - uvm32_slice_t buf0 = uvm32_arg_getbuf(&vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf0 = uvm32_arg_getslice(&vmst, &evt, ARG0, ARG1); TEST_ASSERT_EQUAL(32, buf0.len); // fill with a pattern for (int i=0;i<32;i++) { @@ -162,7 +162,7 @@ void test_syscall_args_buf_pass(void) { TEST_ASSERT_EQUAL(evt.data.syscall.code, SYSCALL_H); // get buffer described by ptr=ARG0,len=ARG1 - uvm32_slice_t buf1 = uvm32_arg_getbuf(&vmst, &evt, ARG0, ARG1); + uvm32_slice_t buf1 = uvm32_arg_getslice(&vmst, &evt, ARG0, ARG1); TEST_ASSERT_EQUAL(32, buf1.len); for (int i=0;i<32;i++) { TEST_ASSERT_EQUAL(i*2, buf1.ptr[i]); diff --git a/uvm32/uvm32.c b/uvm32/uvm32.c index cfde7d4..b8a3844 100644 --- a/uvm32/uvm32.c +++ b/uvm32/uvm32.c @@ -393,7 +393,7 @@ const char *uvm32_arg_getcstr(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t } } -uvm32_slice_t uvm32_arg_getbuf(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t argPtr, uvm32_arg_t argLen) { +uvm32_slice_t uvm32_arg_getslice(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t argPtr, uvm32_arg_t argLen) { uvm32_slice_t scb; if (!get_safeptr(vmst, uvm32_arg_getval(vmst, evt, argPtr), uvm32_arg_getval(vmst, evt, argLen), &scb)) { setStatusErr(vmst, UVM32_ERR_MEM_RD); @@ -404,7 +404,7 @@ uvm32_slice_t uvm32_arg_getbuf(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_ return scb; } -uvm32_slice_t uvm32_arg_getbuf_fixed(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t argPtr, uint32_t len) { +uvm32_slice_t uvm32_arg_getslice_fixed(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t argPtr, uint32_t len) { uvm32_slice_t scb; if (!get_safeptr(vmst, uvm32_arg_getval(vmst, evt, argPtr), len, &scb)) { setStatusErr(vmst, UVM32_ERR_MEM_RD); diff --git a/uvm32/uvm32.h b/uvm32/uvm32.h index 6f8f3e5..ceb92d2 100644 --- a/uvm32/uvm32.h +++ b/uvm32/uvm32.h @@ -164,10 +164,10 @@ const char *uvm32_arg_getcstr(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t void uvm32_arg_setval(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t, uint32_t val); /*! Read a syscall argument pair (ptr, length) as a slice */ -uvm32_slice_t uvm32_arg_getbuf(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t argPtr, uvm32_arg_t argLen); +uvm32_slice_t uvm32_arg_getslice(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t argPtr, uvm32_arg_t argLen); /*! Read a syscall argument pointer as a slice of known length */ -uvm32_slice_t uvm32_arg_getbuf_fixed(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t arg, uint32_t len); +uvm32_slice_t uvm32_arg_getslice_fixed(uvm32_state_t *vmst, uvm32_evt_t *evt, uvm32_arg_t arg, uint32_t len); /*! Setup a block of memory to act as external RAM, it will be available on in VM code at address `UVM32_EXTRAM_BASE`. The memory is not copied, so the caller must ensure it remains available until `uvm32_extram()` is called to setup a different region or the VM is ended. */