19 lines
510 B
ArmAsm
19 lines
510 B
ArmAsm
|
|
/* see drivers/exec/secf.c for info on SECF */
|
||
|
|
|
||
|
|
|
||
|
|
.global _exec
|
||
|
|
.type _exec, @function
|
||
|
|
|
||
|
|
/* XXX: YOU NEED TO SAVE REGISTERS BEFORE CALLING THIS FUNCTION!!! THIS FUNCTION OVERWRITES REGISTERS!!! :XXX */
|
||
|
|
/* args (C style): void* var_area_ptr, char* arg_str, int arg_str_len, int var_area_size, void* entry_func_ptr */
|
||
|
|
_exec:
|
||
|
|
pop %edx /* var_area_ptr */
|
||
|
|
pop %esi /* arg_str */
|
||
|
|
pop %ecx /* arg_str_len */
|
||
|
|
pop %ebp /* var_area_size */
|
||
|
|
pop %eax /* entry_func_ptr */
|
||
|
|
|
||
|
|
call %eax
|
||
|
|
|
||
|
|
ret
|