hi ,in sys_ipc_wrapper, the code first get the current thread's syscall entry frame:
....
Thread *curr=current_thread();
Syscall_frame *f = curr-regs();
...

according to the Syscall_frame's implemention, it can get the Utcb by Syscall_frame::utcb().

but the following code get the Utcb in another way:

Utcb *utcb = curr->utcb().access(true);

what's the difference between those two Utcb?