From 9d6a0bbf1d22ed50d64ad7ca4ca1fbab06e792f1 Mon Sep 17 00:00:00 2001 From: aramya <22577625+thamugadi@users.noreply.github.com> Date: Sat, 1 Jul 2023 21:31:17 +0100 Subject: [PATCH] interpret --- entry/boot.c | 2 ++ entry/ofw/interface.c | 9 ++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/entry/boot.c b/entry/boot.c index 61a7de9..0db78ea 100644 --- a/entry/boot.c +++ b/entry/boot.c @@ -1,3 +1,5 @@ +#include + void (*ofw)(); void __eabi(); diff --git a/entry/ofw/interface.c b/entry/ofw/interface.c index 78841c7..9256bfb 100644 --- a/entry/ofw/interface.c +++ b/entry/ofw/interface.c @@ -2,7 +2,7 @@ extern void (*ofw)(); -void* interpret(char* cmd, int32_t* stack_args, int n_stack_args, int32_t* retaddr) +void* interpret(char* cmd, int32_t* stack_args, int n_stack_args, int n_ret_args, int32_t* retaddr) { struct { @@ -12,10 +12,10 @@ void* interpret(char* cmd, int32_t* stack_args, int n_stack_args, int32_t* retad char* arg1; int32_t argN[n_stack_args]; int32_t ret1; - int32_t retN[16]; + int32_t retN[n_ret_args]; } ofw_arg; - SERVICE("interpret", 10, 1+n_stack_args, 16); + SERVICE("interpret", 10, 1+n_stack_args, n_ret_args); ofw_arg.arg1 = cmd; @@ -27,9 +27,8 @@ void* interpret(char* cmd, int32_t* stack_args, int n_stack_args, int32_t* retad ofw(&ofw_arg); - *retaddr = ofw_arg.ret1; - for (i = 1; i < 17; i++) + for (i = 1; i < n_ret_args+1; i++) { retaddr[i] = ofw_arg.retN[i]; }