summaryrefslogtreecommitdiff
path: root/Source/Kernel/TaskManager
diff options
context:
space:
mode:
authorAlexis211 <alexis211@gmail.com>2009-10-23 19:40:08 +0200
committerAlexis211 <alexis211@gmail.com>2009-10-23 19:40:08 +0200
commit48de0cd029b52f64f76345b6e1fdf3cde5c58de3 (patch)
tree792061381c556bef6639b327716cca107f6168c5 /Source/Kernel/TaskManager
parentf0556ed7f051fb101dc68752526696365bf79a11 (diff)
downloadMelon-48de0cd029b52f64f76345b6e1fdf3cde5c58de3.tar.gz
Melon-48de0cd029b52f64f76345b6e1fdf3cde5c58de3.zip
More work on syscalls and shell
Diffstat (limited to 'Source/Kernel/TaskManager')
-rw-r--r--Source/Kernel/TaskManager/Process.class.cpp1
-rw-r--r--Source/Kernel/TaskManager/Process.class.h5
2 files changed, 6 insertions, 0 deletions
diff --git a/Source/Kernel/TaskManager/Process.class.cpp b/Source/Kernel/TaskManager/Process.class.cpp
index ce0a1d7..5859f86 100644
--- a/Source/Kernel/TaskManager/Process.class.cpp
+++ b/Source/Kernel/TaskManager/Process.class.cpp
@@ -78,6 +78,7 @@ Process::Process(String binfile, u32int uid) : Ressource(PRIF_OBJTYPE, m_callTab
m_retval = 0;
m_state = P_STARTING;
m_uid = uid;
+ m_cwd = Task::currProcess()->getCwd();
m_inVT = Task::currProcess()->getInVT();
m_outVT = Task::currProcess()->getOutVT();
m_fileDescriptors = 0;
diff --git a/Source/Kernel/TaskManager/Process.class.h b/Source/Kernel/TaskManager/Process.class.h
index 24df783..d0556e5 100644
--- a/Source/Kernel/TaskManager/Process.class.h
+++ b/Source/Kernel/TaskManager/Process.class.h
@@ -8,6 +8,7 @@
#include <Heap.class.h>
#include <VTManager/VirtualTerminal.proto.h>
#include <VFS/File.class.h>
+class DirectoryNode;
#include <SyscallManager/Ressource.class.h>
@@ -42,6 +43,7 @@ class Process : public Ressource {
PageDirectory* m_pagedir;
u32int m_uid; //User ID
VirtualTerminal *m_inVT, *m_outVT;
+ DirectoryNode *m_cwd;
Heap *m_userHeap;
@@ -79,6 +81,9 @@ class Process : public Ressource {
u32int getPid() { return m_pid; }
u32int getPpid() { return m_ppid; }
+ void setCwd(DirectoryNode *cwd) { m_cwd = cwd; }
+ DirectoryNode *getCwd() { return m_cwd; }
+
VirtualTerminal* getInVT();
VirtualTerminal* getOutVT();
void setInVT(VirtualTerminal* vt);