diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/arch/vmem.h | 2 | ||||
| -rw-r--r-- | include/kmi/bkl.h | 2 | ||||
| -rw-r--r-- | include/kmi/tcb.h | 21 |
3 files changed, 24 insertions, 1 deletions
diff --git a/include/arch/vmem.h b/include/arch/vmem.h index 1674e95..79c42b9 100644 --- a/include/arch/vmem.h +++ b/include/arch/vmem.h @@ -179,7 +179,7 @@ void destroy_vmem(struct vmem *b); * @param r Source virtual memory of clone. * @param b Destination virtual memory of clone. */ -void clone_uvmem(struct vmem * restrict r, struct vmem * restrict b); +void clone_uvmem(struct vmem *r, struct vmem *b); /** * Jump into kernelspace from a physical address space. diff --git a/include/kmi/bkl.h b/include/kmi/bkl.h index 39e3ef9..8a56061 100644 --- a/include/kmi/bkl.h +++ b/include/kmi/bkl.h @@ -12,6 +12,8 @@ #include <kmi/lock.h> +void bkl_init(); + /** Lock the Big Kernel Lock. */ void bkl_lock(); diff --git a/include/kmi/tcb.h b/include/kmi/tcb.h index d61845f..b12ad7e 100644 --- a/include/kmi/tcb.h +++ b/include/kmi/tcb.h @@ -22,6 +22,27 @@ struct tcb; #include <arch/tcb.h> +/** Structure for maintaining the required context data for an rpc call. */ +struct call_ctx { + /** Execution continuation point. */ + vm_t exec; + + /** Position in rpc stack. */ + vm_t rpc_stack; + + /** Effective process ID. */ + id_t eid; + + /** Current process ID. */ + id_t pid; + + /** If this frame was due to a notification, which means leaving the + * frame must restore registers as they were */ + bool notify; + + /* register save area follows this in the stack */ +}; + /** * Check if thread is process thread. * |
