beng work in progress, to be explained in a future commit message :).
This commit is contained in:
@@ -42,6 +42,8 @@ register message *m_ptr; /* pointer to request message */
|
||||
/* No reply to EXEC call */
|
||||
RTS_LOCK_UNSET(rp, RECEIVING);
|
||||
|
||||
printf("kernel: exec %d now %s\n", rp->p_endpoint, rp->p_name);
|
||||
|
||||
return(OK);
|
||||
}
|
||||
#endif /* USE_EXEC */
|
||||
|
||||
@@ -88,6 +88,9 @@ register message *m_ptr; /* pointer to request message */
|
||||
RTS_LOCK_UNSET(rpc, (SIGNALED | SIG_PENDING | P_STOP));
|
||||
sigemptyset(&rpc->p_pending);
|
||||
|
||||
printf("kernel: %d / %s forked into %d\n",
|
||||
rpp->p_endpoint, rpp->p_name, rpc->p_endpoint);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,10 +18,8 @@ PUBLIC int do_memset(m_ptr)
|
||||
register message *m_ptr;
|
||||
{
|
||||
/* Handle sys_memset(). This writes a pattern into the specified memory. */
|
||||
unsigned long p;
|
||||
unsigned char c = m_ptr->MEM_PATTERN;
|
||||
p = c | (c << 8) | (c << 16) | (c << 24);
|
||||
phys_memset((phys_bytes) m_ptr->MEM_PTR, p, (phys_bytes) m_ptr->MEM_COUNT);
|
||||
vm_phys_memset((phys_bytes) m_ptr->MEM_PTR, c, (phys_bytes) m_ptr->MEM_COUNT);
|
||||
return(OK);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
*/
|
||||
#include "../system.h"
|
||||
|
||||
#if 0
|
||||
|
||||
#define VM_DEBUG 0 /* enable/ disable debug output */
|
||||
|
||||
/*===========================================================================*
|
||||
@@ -27,3 +29,5 @@ message *m_ptr; /* pointer to request message */
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -25,8 +25,6 @@ register message *m_ptr; /* pointer to request message */
|
||||
|
||||
if(ep == SELF) { ep = m_ptr->m_source; }
|
||||
|
||||
vm_init();
|
||||
|
||||
if(!isokendpt(ep, &proc_nr)) {
|
||||
kprintf("do_vmctl: unexpected endpoint %d from VM\n", ep);
|
||||
return EINVAL;
|
||||
@@ -45,6 +43,9 @@ register message *m_ptr; /* pointer to request message */
|
||||
if(!RTS_ISSET(rp, VMREQUEST))
|
||||
minix_panic("do_vmctl: no VMREQUEST set", NO_NUM);
|
||||
|
||||
printf("kernel: vm request sent by: %s / %d about %d\n",
|
||||
rp->p_name, rp->p_endpoint, rp->p_vmrequest.who);
|
||||
|
||||
/* Reply with request fields. */
|
||||
m_ptr->SVMCTL_MRG_ADDR = (char *) rp->p_vmrequest.start;
|
||||
m_ptr->SVMCTL_MRG_LEN = rp->p_vmrequest.length;
|
||||
@@ -73,6 +74,7 @@ register message *m_ptr; /* pointer to request message */
|
||||
rp->p_vmrequest.vmresult);
|
||||
|
||||
/* Put on restart chain. */
|
||||
printf("kernel: vm reply received for %d\n", rp->p_endpoint);
|
||||
rp->p_vmrequest.nextrestart = vmrestart;
|
||||
vmrestart = rp;
|
||||
|
||||
@@ -93,10 +95,15 @@ kprintf("SYSTEM: request %d:0x%lx-0x%lx, wrflag %d, failed\n",
|
||||
}
|
||||
#endif
|
||||
return OK;
|
||||
#if VM_KERN_NOPAGEZERO
|
||||
case VMCTL_NOPAGEZERO:
|
||||
case VMCTL_ENABLE_PAGING:
|
||||
if(vm_running)
|
||||
minix_panic("do_vmctl: paging already enabled", NO_NUM);
|
||||
vm_init(p);
|
||||
if(!vm_running)
|
||||
minix_panic("do_vmctl: paging enabling failed", NO_NUM);
|
||||
if(newmap(p, m_ptr->SVMCTL_VALUE) != OK)
|
||||
minix_panic("do_vmctl: newmap failed", NO_NUM);
|
||||
return OK;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Try architecture-specific vmctls. */
|
||||
|
||||
Reference in New Issue
Block a user