git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Unifying the Lunaix's Physical Memory Model (#28)
[lunaix-os.git]
/
lunaix-os
/
includes
/
lunaix
/
process.h
diff --git
a/lunaix-os/includes/lunaix/process.h
b/lunaix-os/includes/lunaix/process.h
index 78756de7ab5f121a1c088e665dc6354ded813e23..ba73de0b8a5738bfa6ce0d0c789e1f632e80b9e1 100644
(file)
--- a/
lunaix-os/includes/lunaix/process.h
+++ b/
lunaix-os/includes/lunaix/process.h
@@
-6,7
+6,7
@@
#include <lunaix/fs.h>
#include <lunaix/iopoll.h>
#include <lunaix/mm/mm.h>
#include <lunaix/fs.h>
#include <lunaix/iopoll.h>
#include <lunaix/mm/mm.h>
-#include <lunaix/mm/page.h>
+#include <lunaix/mm/page
table
.h>
#include <lunaix/mm/region.h>
#include <lunaix/signal.h>
#include <lunaix/timer.h>
#include <lunaix/mm/region.h>
#include <lunaix/signal.h>
#include <lunaix/timer.h>
@@
-167,19
+167,26
@@
set_current_executing(struct thread* thread)
static inline struct proc_mm*
vmspace(struct proc_info* proc)
{
static inline struct proc_mm*
vmspace(struct proc_info* proc)
{
- return proc
->mm
;
+ return proc
? proc->mm : NULL
;
}
static inline ptr_t
vmroot(struct proc_info* proc)
{
}
static inline ptr_t
vmroot(struct proc_info* proc)
{
- return proc
->mm->vmroot
;
+ return proc
? proc->mm->vmroot : 0
;
}
static inline vm_regions_t*
vmregions(struct proc_info* proc)
{
}
static inline vm_regions_t*
vmregions(struct proc_info* proc)
{
- return &proc->mm->regions;
+ return proc ? &proc->mm->regions : NULL;
+}
+
+
+static inline unsigned int
+procvm_asid(struct proc_mm* mm)
+{
+ return mm->proc->pid;
}
static inline void
}
static inline void
@@
-302,7
+309,7
@@
struct thread*
alloc_thread(struct proc_info* process);
void
alloc_thread(struct proc_info* process);
void
-destory_thread(
ptr_t vm_mnt,
struct thread* thread);
+destory_thread(struct thread* thread);
void
terminate_thread(struct thread* thread, ptr_t val);
void
terminate_thread(struct thread* thread, ptr_t val);
@@
-311,26
+318,26
@@
void
terminate_current_thread(ptr_t val);
struct thread*
terminate_current_thread(ptr_t val);
struct thread*
-create_thread(struct proc_info* proc,
ptr_t vm_mnt,
bool with_ustack);
+create_thread(struct proc_info* proc, bool with_ustack);
void
void
-start_thread(struct thread* th, ptr_t
vm_mnt, ptr_t
entry);
+start_thread(struct thread* th, ptr_t entry);
static inline void
spawn_kthread(ptr_t entry) {
assert(kernel_process(__current));
static inline void
spawn_kthread(ptr_t entry) {
assert(kernel_process(__current));
- struct thread* th = create_thread(__current,
VMS_SELF,
false);
+ struct thread* th = create_thread(__current, false);
assert(th);
assert(th);
- start_thread(th,
VMS_SELF,
entry);
+ start_thread(th, entry);
}
void
exit_thread(void* val);
void
}
void
exit_thread(void* val);
void
-thread_release_mem(struct thread* thread
, ptr_t vm_mnt
);
+thread_release_mem(struct thread* thread);
/*
========= Signal =========
/*
========= Signal =========