No linear addresses in message delivery

- removes p_delivermsg_lin item from the process structure and code
  related to it

- as the send part, the receive does not need to use the
  PHYS_COPY_CATCH() and umap_local() couple.  

- The address space of the target process is installed before
  delivermsg() is called.

- unlike the linear address, the virtual address does not change when
  paging is turned on nor after fork().
This commit is contained in:
Tomas Hruby
2010-06-11 08:16:10 +00:00
parent 1bf6d23f34
commit 360de619c0
7 changed files with 17 additions and 45 deletions

View File

@@ -29,7 +29,6 @@ PUBLIC int do_exec(struct proc * caller, message * m_ptr)
if(rp->p_misc_flags & MF_DELIVERMSG) {
rp->p_misc_flags &= ~MF_DELIVERMSG;
rp->p_delivermsg_lin = 0;
}
/* Save command name for debugging, ps(1) output, etc. */

View File

@@ -109,7 +109,6 @@ PUBLIC int do_fork(struct proc * caller, message * m_ptr)
/* Install new map */
r = newmap(caller, rpc, map_ptr);
FIXLINMSG(rpc);
/* Don't schedule process in VM mode until it has a new pagetable. */
if(m_ptr->PR_FORK_FLAGS & PFF_VMINHIBIT) {