aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/apos/tcb.h14
-rw-r--r--include/arch/vmem.h5
2 files changed, 18 insertions, 1 deletions
diff --git a/include/apos/tcb.h b/include/apos/tcb.h
index 23e6451..6097153 100644
--- a/include/apos/tcb.h
+++ b/include/apos/tcb.h
@@ -78,6 +78,10 @@ struct tcb {
/** Execution continuation point. Important that it is first. */
vm_t exec;
+ /**
+ * Address where to save registers.
+ * @note his address is the top of the register save structure.
+ */
vm_t regs;
/** Arch-specific data. */
@@ -149,6 +153,16 @@ struct tcb {
/** RPC context of thread. */
struct tcb_ctx rpc;
+ /**
+ * RPC server context of thread. When a thread attaches itself to this
+ * process, its \ref rpc member is added to the list maintained in this
+ * variable. This allows the original thread to do rpc calls without
+ * messing up other threads' rpc status.
+ *
+ * I think, more testing required.
+ */
+ struct tcb_ctx server;
+
/** Notifcation state of thread. */
enum tcb_notify notify_state;
diff --git a/include/arch/vmem.h b/include/arch/vmem.h
index f6660ed..c829629 100644
--- a/include/arch/vmem.h
+++ b/include/arch/vmem.h
@@ -53,6 +53,8 @@ stat_t unmap_vpage(struct vmem *branch, vm_t vaddr);
* @param branch Branch in which to work.
* @param vaddr Virtual address of page.
* @param flags Flags to set.
+ * @return \ref ERR_NF if no page could be found at \p vaddr,
+ * \ref INFO_SEFF if modification has side effects, otherwise \ref OK.
*/
stat_t set_vpage_flags(struct vmem *branch, vm_t vaddr, vmflags_t flags);
@@ -62,6 +64,8 @@ stat_t set_vpage_flags(struct vmem *branch, vm_t vaddr, vmflags_t flags);
* @param branch Branch in which to work.
* @param vaddr Virtual address of page.
* @param flags Flags to clear.
+ * @return \ref ERR_NF if no page could be found at \p vaddr,
+ * \ref INFO_SEFF if modification has side effects, otherwise \ref OK.
*/
stat_t clear_vpage_flags(struct vmem *branch, vm_t vaddr, vmflags_t flags);
@@ -157,7 +161,6 @@ stat_t destroy_vmem(struct vmem *b);
*
* @param r Source virtual memory of clone.
* @param b Destination virtual memory of clone.
- * @return \ref OK.
*/
void clone_uvmem(struct vmem *r, struct vmem *b);