/* 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