summaryrefslogtreecommitdiff
path: root/kernel/proc.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/proc.h')
-rw-r--r--kernel/proc.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/proc.h b/kernel/proc.h
index a195b02..ebdbb7a 100644
--- a/kernel/proc.h
+++ b/kernel/proc.h
@@ -81,6 +81,20 @@ struct trapframe {
enum procstate { UNUSED, USED, SLEEPING, RUNNABLE, RUNNING, ZOMBIE };
+// mmap vm area
+#define MAX_VM_AREA 0x40
+
+struct vm_area {
+ uint64 start_addr;
+ uint64 roff;
+ uint64 woff;
+ uint64 len;
+ int prot;
+ int flags;
+ struct file* file;
+ int fd;
+};
+
// Per-process state
struct proc {
struct spinlock lock;
@@ -111,4 +125,6 @@ struct proc {
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
+ struct vm_area vma[MAX_VM_AREA]; // vm_area
+ uint64 cur_max_vm_addr; // current max vm addr, used by mmap
};