diff --git a/entry/ofw.c b/entry/devicetree.c similarity index 91% rename from entry/ofw.c rename to entry/devicetree.c index 4315333..d43c624 100644 --- a/entry/ofw.c +++ b/entry/devicetree.c @@ -2,52 +2,29 @@ extern void (*ofw)(); -int ofw_test(char* name) +phandle child(phandle _child) { - struct + struct { char* service; int n_args; int n_rets; - char* arg; - int ret; + phandle arg; + phandle ret; } ofw_arg; - char _service[5] = "test"; + char _service[6] = "child"; ofw_arg.service = _service; ofw_arg.n_args = 1; ofw_arg.n_rets = 1; - ofw_arg.arg = name; + ofw_arg.arg = _child; ofw(&ofw_arg); return ofw_arg.ret; } -phandle child(phandle _child) -{ - struct - { - char* service; - int n_args; - int n_rets; - phandle arg; - phandle ret; - } ofw_arg; - - char _service[6] = "child"; - ofw_arg.service = _service; - - ofw_arg.n_args = 1; - ofw_arg.n_rets = 1; - ofw_arg.arg = _child; - - ofw(&ofw_arg); - - return ofw_arg.ret; -} - phandle parent(phandle _parent) { struct @@ -102,7 +79,7 @@ int getproplen(phandle node, char* name) int n_args; int n_rets; phandle arg1; - char* arg2; + char* arg2; int ret; } ofw_arg; @@ -112,7 +89,7 @@ int getproplen(phandle node, char* name) ofw_arg.n_args = 2; ofw_arg.n_rets = 1; ofw_arg.arg1 = node; - ofw_arg.arg2 = name; + ofw_arg.arg2 = name; ofw(&ofw_arg); return ofw_arg.ret; @@ -126,9 +103,9 @@ int getprop(phandle node, char* name, uint8_t* buf, int buflen) int n_args; int n_rets; phandle arg1; - char* arg2; - uint8_t* arg3; - int arg4; + char* arg2; + uint8_t* arg3; + int arg4; int ret; } ofw_arg; @@ -139,8 +116,8 @@ int getprop(phandle node, char* name, uint8_t* buf, int buflen) ofw_arg.n_rets = 1; ofw_arg.arg1 = node; ofw_arg.arg2 = name; - ofw_arg.arg3 = buf; - ofw_arg.arg4 = buflen; + ofw_arg.arg3 = buf; + ofw_arg.arg4 = buflen; ofw(&ofw_arg); return ofw_arg.ret; @@ -305,3 +282,4 @@ int package_to_path(phandle package, uint8_t* buf, int buflen) void* call_method(char* method, ihandle instance, ...) { } + diff --git a/entry/ofw_common.c b/entry/ofw_common.c new file mode 100644 index 0000000..213e8e9 --- /dev/null +++ b/entry/ofw_common.c @@ -0,0 +1,27 @@ +#include + +extern void (*ofw)(); + +int ofw_test(char* name) +{ + struct + { + char* service; + int n_args; + int n_rets; + char* arg; + int ret; + } ofw_arg; + + char _service[5] = "test"; + ofw_arg.service = _service; + + ofw_arg.n_args = 1; + ofw_arg.n_rets = 1; + ofw_arg.arg = name; + + ofw(&ofw_arg); + + return ofw_arg.ret; +} +