a774cc832f
this patch does not add or change any functionality of do_ipc(), it only makes things a little cleaner (hopefully). Until now do_ipc() was responsible for handling all ipc calls. The catch is that SENDA is fairly different which results in some ugly code like this typecasting and variables naming which does not make much sense for SENDA and makes the code hard to read. result = mini_senda(caller_ptr, (asynmsg_t *)m_ptr, (size_t)src_dst_e); As it is called directly from assembly, the new do_ipc() takes as input values of 3 registers in reg_t variables (it used to be 4, however, bit_map wasn't used so I removed it), does the checks common to all ipc calls and call the appropriate handler either for do_sync_ipc() (all except SENDA) or mini_senda() (for SENDA) while typecasting the reg_t values correctly. As a result, handling SENDA differences in do_sync_ipc() is no more needed. Also the code that uses msg_size variable is improved a little bit. arch_do_syscall() is simplified too. |
||
---|---|---|
.. | ||
i386 |