summaryrefslogtreecommitdiff
path: root/kernel/proc.h
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2024-02-11 14:44:22 +0800
committerMole Shang <[email protected]>2024-02-11 16:06:15 +0800
commit2fe04bc8faa4bf737a86c36a8017473e84814f3b (patch)
tree2146d3dae86f21060e2e807ad364f5a949fd1c53 /kernel/proc.h
parent5ce1f630132d8b7b35b9dc46b4a55f860eb85d5c (diff)
parent48a5e34fcd07852b4a68825ce8e37feb6f6d04d7 (diff)
downloadxv6-labs-2fe04bc8faa4bf737a86c36a8017473e84814f3b.tar.gz
xv6-labs-2fe04bc8faa4bf737a86c36a8017473e84814f3b.tar.bz2
xv6-labs-2fe04bc8faa4bf737a86c36a8017473e84814f3b.zip
Merge branch 'traps' into cow
Conflicts: .gitignore Makefile conf/lab.mk
Diffstat (limited to 'kernel/proc.h')
-rw-r--r--kernel/proc.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/proc.h b/kernel/proc.h
index d021857..a195b02 100644
--- a/kernel/proc.h
+++ b/kernel/proc.h
@@ -91,6 +91,7 @@ struct proc {
int killed; // If non-zero, have been killed
int xstate; // Exit status to be returned to parent's wait
int pid; // Process ID
+ int trace_mask; // SYS_trace mask (1 << SYS_xxx)
// wait_lock must be held when using this:
struct proc *parent; // Parent process
@@ -100,8 +101,14 @@ struct proc {
uint64 sz; // Size of process memory (bytes)
pagetable_t pagetable; // User page table
struct trapframe *trapframe; // data page for trampoline.S
+ struct usyscall *usyscall; // data page for usyscall
struct context context; // swtch() here to run process
struct file *ofile[NOFILE]; // Open files
struct inode *cwd; // Current directory
char name[16]; // Process name (debugging)
+ int alarm_interval; // sigalarm syscall interval
+ uint64 alarm_handler; // sigalarm syscall handler
+ int alarm_tickspassed; // record how many ticks passed since last sigalarm handler call
+ int alarm_caninvoke; // prevent re-entrant calls to handler
+ struct trapframe *atpfm; // trapframe to resume after handling, must hold p->lock
};