From 498512fe0d0c5bc444ba36e4dee69a5e8cfc253e Mon Sep 17 00:00:00 2001 From: aramya <22577625+thamugadi@users.noreply.github.com> Date: Sat, 1 Jul 2023 16:36:00 +0100 Subject: [PATCH] interface, time --- entry/ofw/interface.c | 47 +++++++++++++++++++++++++++++++++++++++++++ entry/ofw/time.c | 20 ++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 entry/ofw/interface.c create mode 100644 entry/ofw/time.c diff --git a/entry/ofw/interface.c b/entry/ofw/interface.c new file mode 100644 index 0000000..7ac9395 --- /dev/null +++ b/entry/ofw/interface.c @@ -0,0 +1,47 @@ +#include + +extern void (*ofw)(); + +void* interpret(char* cmd, ...) +{ +} + +void* set_callback(void* addr) +{ + struct + { + char* service; + int32_t n_args; + int32_t n_rets; + void* arg; + void* ret; + } ofw_arg; + + SERVICE("set-callback", 13, 1, 1); + + ofw_arg.arg = addr; + + ofw(&ofw_arg); + return ofw_arg.ret; +} + +void set_symbol_lookup(void* sym_to_value, void* value_to_sym) +{ + struct + { + char* service; + int32_t n_args; + int32_t n_rets; + void* arg1; + void* arg2; + } ofw_arg; + + SERVICE("set-symbol-lookup", 17, 2, 0); + + ofw_arg.arg1 = sym_to_value; + ofw_arg.arg2 = value_to_sym; + + ofw(&ofw_arg); +} + + diff --git a/entry/ofw/time.c b/entry/ofw/time.c new file mode 100644 index 0000000..72763d6 --- /dev/null +++ b/entry/ofw/time.c @@ -0,0 +1,20 @@ +#include + +extern void (*ofw)(); + +int32_t milliseconds(void) +{ + struct + { + char* service; + int32_t n_args; + int32_t n_rets; + int32_t ret; + } ofw_arg; + + SERVICE("milliseconds", 13, 0, 1); + + ofw(&ofw_arg); + + return ofw_arg.ret; +}