From ad1ec29070e1ffba7461687cd268e64be06aa78b Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Tue, 30 Mar 2010 19:22:23 +0200 Subject: More work on IPC and userland tools. --- doc/memlayout.txt | 8 ++++++++ doc/method.txt | 1 + doc/roadmap.txt | 12 ++++++++++++ doc/syscalls.txt | 4 +++- 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 doc/memlayout.txt create mode 100644 doc/method.txt create mode 100644 doc/roadmap.txt (limited to 'doc') 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 -- cgit v1.2.3