summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/memlayout.txt8
-rw-r--r--doc/method.txt1
-rw-r--r--doc/roadmap.txt12
-rw-r--r--doc/syscalls.txt4
4 files changed, 24 insertions, 1 deletions
diff --git a/doc/memlayout.txt b/doc/memlayout.txt
new file mode 100644
index 0000000..6720d00
--- /dev/null
+++ b/doc/memlayout.txt
@@ -0,0 +1,8 @@
+This is the memory layout of a standard service :
+
+- 0x00100000 to 0x20000000 Application's code and static data
+- 0x20000000 to 0x6F000000 Application's heap
+- 0x70000000 to 0x80000000 Free space, can be used for mapping device memory
+- 0x80000000 to 0xD0000000 Space for mapping shared memory segments
+- 0xD0000000 to 0xDF000000 Stacks (automatically allocated by kernel, size 0x8000 each)
+- 0xE0000000 to 0xFFFFFFFF Kernel code and heap
diff --git a/doc/method.txt b/doc/method.txt
new file mode 100644
index 0000000..066e0ae
--- /dev/null
+++ b/doc/method.txt
@@ -0,0 +1 @@
+All methods are defined in src/include/gm/method.h and src/include/gm/m/*
diff --git a/doc/roadmap.txt b/doc/roadmap.txt
new file mode 100644
index 0000000..7304e4b
--- /dev/null
+++ b/doc/roadmap.txt
@@ -0,0 +1,12 @@
+** 0.0.4 'Cat in my heart' **
+- [OK] Userland heap (meaning kernel can give memory to processes)
+- Userland helper functions for objects (server and client)
+- Basic object method for knowing if object handles another method (list methods in src/include/gm)
+- Userland library for writing numbers and other stuff
+- A manager module that manages all other running modules (the privilege of manager is given by the kernel to the first module loaded)
+
+** 0.0.5 'Truth is better cold' **
+- Review privilege system
+- Driver processes can ask to map physical memory in their address space
+- Describe interfaces for server (any service's main object), reader and writer.
+- Keyboard driver, userland display driver, virtual terminal driver
diff --git a/doc/syscalls.txt b/doc/syscalls.txt
index 6846fb9..67b4b3c 100644
--- a/doc/syscalls.txt
+++ b/doc/syscalls.txt
@@ -31,6 +31,8 @@ id=eax Name Parameters Description
17 request ebx: object descriptor Send a blocking request to object
ecx: pointer to user_sendrequest struct with information
18 send_msg same as above Send a nonblocking request to object, same as above
+ 19 proc_setheap ebx: start address Creates/resizes/moves the heap segment allocated to this process (one per process)
+ ecx: end address
If a processes wishes to exit with an error code, it HAS to use process_exit. thread_exit will do nothing.
@@ -73,7 +75,7 @@ Returns:
- 2 if a request is being processed
= request_answer (15)
-Parameters: an object descriptor, two ints forming a long long if necessary
+Parameters: an object descriptor, two ints forming a long long if necessary, an int which is the return status (error code) of the function
Returns: nothing
Answers a request marked as currently being processed, ignoring cases where :
- descriptor does not exist