X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?p=polintos%2Fscott%2Fpriv.git;a=blobdiff_plain;f=kernel%2Forb%2Finvoke.cc;h=ffcd8372318c4e8f581fc490602c73b750c4993b;hp=102ea95ba40704e26c850c8a968cb02adedcf7f1;hb=0601614ebbcc48b961a2f0613281e6e629af29b1;hpb=292f369387f0b1018b3cfc59ad555698d75d6d46 diff --git a/kernel/orb/invoke.cc b/kernel/orb/invoke.cc index 102ea95..ffcd837 100644 --- a/kernel/orb/invoke.cc +++ b/kernel/orb/invoke.cc @@ -77,20 +77,28 @@ namespace ORB { return obj; } -} -extern "C" void invoke_method(ParamInfoBlock *user_pib, ulong ret_pc) -{ - ParamInfoBlock pib = Arch::copyin(user_pib); - CallFrame *frame = new_frame(curthread); - -// frame->object = objid; - frame->caller_user_pib = user_pib; - frame->ret_pc = ret_pc; - - printf("invoke_method: frame %p pib %p ret %lx\n", - frame, frame->caller_user_pib, - frame->ret_pc); - + void invoke_method(ParamInfoBlock *user_pib, uintptr_t &stack) + { + ParamInfoBlock pib = Arch::copyin(user_pib); + CallFrame *frame = new_frame(curthread); + +// if (pib->objlist_len == 0) + + +// frame->object = objid; + frame->caller_user_pib = user_pib; +// frame->ret_pc = ret_pc; + + printf("invoke_method: frame %p pib %p ret %lx\n", + frame, frame->caller_user_pib, + frame->ret_pc); + + + } + uintptr_t return_from_method(uintptr_t &exptr, size_t &exlen) + { + return 0; + } }