From 836026dbba64793afc0d2591ffdb6fb39b696977 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sat, 21 May 2022 15:04:01 +0300 Subject: implement timers better --- common/timer.c | 3 +++ common/uapi/ipc.c | 15 +++++++-------- common/uapi/mem.c | 6 +++--- common/vmem.c | 7 +++---- 4 files changed, 16 insertions(+), 15 deletions(-) (limited to 'common') diff --git a/common/timer.c b/common/timer.c index da4fd11..0442c44 100644 --- a/common/timer.c +++ b/common/timer.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -27,6 +28,8 @@ static struct sp_root *__cpu_timers() void init_timer(const void *fdt) { ticks_per_sec = stat_timer(fdt); + info("ticks_per_sec: %" PRIu64 "\n", ticks_per_sec); + info("current ticks: %" PRIu64 "\n", current_ticks()); init_nodes(&node_root, sizeof(struct timer_node)); } diff --git a/common/uapi/ipc.c b/common/uapi/ipc.c index 7181490..bef9665 100644 --- a/common/uapi/ipc.c +++ b/common/uapi/ipc.c @@ -11,17 +11,16 @@ SYSCALL_DEFINE1(ipc_server)(sys_arg_t callback) return (struct sys_ret){ OK, 0 }; } -SYSCALL_DEFINE4(ipc_req) -(sys_arg_t pid, sys_arg_t d0, sys_arg_t d1, sys_arg_t d2) +SYSCALL_DEFINE3(ipc_req)(sys_arg_t tid, sys_arg_t d0, sys_arg_t d1) { - struct tcb *t = get_tcb(pid); - /* something like jump_to_callback(t, d0, d1, d2) */ - return (struct sys_ret){ OK, 0 }; + struct tcb *r = get_tcb(tid); + /* something like jump_to_callback(t, d0, d1) */ + return (struct sys_ret){ d0, d1 }; } -SYSCALL_DEFINE3(ipc_resp)(sys_arg_t pid, sys_arg_t ret, sys_arg_t val) +SYSCALL_DEFINE3(ipc_resp)(sys_arg_t tid, sys_arg_t d0, sys_arg_t d1) { - struct tcb *r = get_tcb(pid); + struct tcb *r = get_tcb(tid); /* something like return_from_callback(t, r) */ - return (struct sys_ret){ ret, val }; + return (struct sys_ret){ d0, d1 }; } diff --git a/common/uapi/mem.c b/common/uapi/mem.c index ace40b9..7526152 100644 --- a/common/uapi/mem.c +++ b/common/uapi/mem.c @@ -50,7 +50,7 @@ SYSCALL_DEFINE2(req_sharedmem) if ((start = alloc_shared_uvmem(t, size, flags))) return (struct sys_ret){ ERR_OOMEM, 0 }; - return (struct sys_ret){ OK, start}; + return (struct sys_ret){ OK, start }; } /* add a syscall like ref_sharedmem that adds a reference to an existing shared @@ -61,7 +61,7 @@ SYSCALL_DEFINE3(ref_sharedmem)(sys_arg_t tid, sys_arg_t va, sys_arg_t flags) struct tcb *t2 = get_tcb(tid); vm_t start = 0; if ((start = ref_shared_uvmem(t1, t2, va, flags))) - return (struct sys_ret){ERR_OOMEM, 0}; + return (struct sys_ret){ ERR_OOMEM, 0 }; - return (struct sys_ret) {OK, start}; + return (struct sys_ret){ OK, start }; } diff --git a/common/vmem.c b/common/vmem.c index 89e1140..989029a 100644 --- a/common/vmem.c +++ b/common/vmem.c @@ -21,12 +21,11 @@ vm_t alloc_fixed_uvmem(struct tcb *t, vm_t start, size_t size, vmflags_t flags) } /* free_shared_uvmem shouldn't be needed, likely to work with free_uvmem */ -vm_t alloc_shared_uvmem(struct tcb *t, size_t size, - vmflags_t flags) +vm_t alloc_shared_uvmem(struct tcb *t, size_t size, vmflags_t flags) { /* TODO: proper error handling */ vm_t v = alloc_region(&t->sp_r, size, &size, - flags | MR_SHARED | MR_OWNED); + flags | MR_SHARED | MR_OWNED); return map_shared_region(t->b_r, v, size, flags); } @@ -81,7 +80,7 @@ stat_t alloc_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, } stat_t alloc_shared_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, - vmflags_t flags, enum mm_order order) + vmflags_t flags, enum mm_order order) { if (order != MM_O0) return REGION_TRY_AGAIN; -- cgit v1.3