summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorAlexis211 <alexis211@gmail.com>2009-12-09 16:03:02 +0100
committerAlexis211 <alexis211@gmail.com>2009-12-09 16:03:02 +0100
commit1a1e0efa7b1894848c81d7f7e80bdcf6e8591c3f (patch)
treee8f48d76c145635acf5acf19dd5274038f3d21de /Source
parent99e021d4d6b29bb180a7c6a8883251408b7a3f62 (diff)
parent8ec4ea37162121bf76d9df4b469478697ef6ba04 (diff)
downloadMelon-1a1e0efa7b1894848c81d7f7e80bdcf6e8591c3f.tar.gz
Melon-1a1e0efa7b1894848c81d7f7e80bdcf6e8591c3f.zip
Merge branch 'master' into mountpoints
Conflicts: Makefile
Diffstat (limited to 'Source')
-rw-r--r--Source/Applications/Shell/Shell.ns.cpp3
-rw-r--r--Source/Kernel/TaskManager/Process-sc.class.cpp1
-rw-r--r--Source/Library/Interface/Process.iface.h1
-rw-r--r--Source/Library/Userland/Binding/Process.class.h3
4 files changed, 8 insertions, 0 deletions
diff --git a/Source/Applications/Shell/Shell.ns.cpp b/Source/Applications/Shell/Shell.ns.cpp
index d34c360..56a6b5f 100644
--- a/Source/Applications/Shell/Shell.ns.cpp
+++ b/Source/Applications/Shell/Shell.ns.cpp
@@ -1,5 +1,6 @@
#include "Shell.ns.h"
#include <Binding/Sys.ns.h>
+#include <Binding/Process.class.h>
namespace Shell {
@@ -64,6 +65,8 @@ u32int run() {
outvt << "Uptime : " << (s64int)Sys::uptime() << "s\n";
} else if (cmd[0] == "free") {
outvt << "Free RAM : " << (s64int)Sys::freeRam() << " Kio of " << (s64int)Sys::totalRam() << " Kio\n";
+ } else if (cmd[0] == "uid") {
+ outvt << "User ID : " << (s64int)(Process::get().getUid()) << "\n";
} else if (cmd[0] == "help") {
while (cmd.size() > 1) cmd.pop();
cmd.push("/Applications/Shell/Help.txt");
diff --git a/Source/Kernel/TaskManager/Process-sc.class.cpp b/Source/Kernel/TaskManager/Process-sc.class.cpp
index 8564c22..e5910af 100644
--- a/Source/Kernel/TaskManager/Process-sc.class.cpp
+++ b/Source/Kernel/TaskManager/Process-sc.class.cpp
@@ -13,6 +13,7 @@ call_t Process::m_callTable[] = {
CALL1(PRIF_FREEPAGES, &Process::freePagesSC),
CALL0(PRIF_GETPID, &Process::getPid),
CALL0(PRIF_GETPPID, &Process::getPpid),
+ CALL0(PRIF_GETUID, &Process::getUid),
CALL0(PRIF_ARGC, &Process::argcSC),
CALL1(PRIF_ARGV, &Process::argvSC),
CALL0(PRIF_START, &Process::startSC),
diff --git a/Source/Library/Interface/Process.iface.h b/Source/Library/Interface/Process.iface.h
index 4d3217f..b387801 100644
--- a/Source/Library/Interface/Process.iface.h
+++ b/Source/Library/Interface/Process.iface.h
@@ -15,6 +15,7 @@
#define PRIF_FREEPAGES 0x03 //Free frames for pages (v) | i:position, i:count
#define PRIF_GETPID 0x04 //Get PID of a process (i) | no arguments
#define PRIF_GETPPID 0x05 //Get PPID of a process (i) | no arguments
+#define PRIF_GETUID 0x06 //Get UID of a process (i) | no arguments
#define PRIF_ARGC 0x10 //Get argument count for a process (i) | no arguments
#define PRIF_ARGV 0x11 //Get argument value for a process (S) | i:argument_index
diff --git a/Source/Library/Userland/Binding/Process.class.h b/Source/Library/Userland/Binding/Process.class.h
index 523be79..1a1481f 100644
--- a/Source/Library/Userland/Binding/Process.class.h
+++ b/Source/Library/Userland/Binding/Process.class.h
@@ -33,6 +33,9 @@ class Process : public RessourceCaller {
u32int getPpid() {
return doCall(PRIF_GETPPID);
}
+ u32int getUid() {
+ return doCall(PRIF_GETUID);
+ }
u32int argc() {
return doCall(PRIF_ARGC);
}