From cbadacbb881200b601c7b53b29aa0c1b78747692 Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Tue, 23 Mar 2010 16:34:36 +0100 Subject: More work on IPC --- doc/directories.txt | 11 +++++++++++ doc/objects-requests.txt | 11 +++++++++++ doc/syscalls.txt | 4 ++++ 3 files changed, 26 insertions(+) create mode 100644 doc/directories.txt create mode 100644 doc/objects-requests.txt (limited to 'doc') diff --git a/doc/directories.txt b/doc/directories.txt new file mode 100644 index 0000000..b0adf7b --- /dev/null +++ b/doc/directories.txt @@ -0,0 +1,11 @@ +This file explains all the directories of the source tree : + +doc documentation about the system +mnt temporary folder for mounting disk images +src source code +src/include all includable headers to be used in userland +src/include/gc Grapes Core (communication with the kernel) headers +src/include/gm Grapes Modules headers +src/kernel kernel source +src/library source and linkable objects to be used by userland applications +src/modules userland applications diff --git a/doc/objects-requests.txt b/doc/objects-requests.txt new file mode 100644 index 0000000..9169552 --- /dev/null +++ b/doc/objects-requests.txt @@ -0,0 +1,11 @@ +Requests are identified by a 32bit function number, composed as follows : + (8 bit) parameter and return type ; (24bit) function number + +the first 8 bits are : + 2bit answer type ; 2bit parameter a ; 2bit parameter b ; 2bit parameter c + +each two bit couple can be one of the following : +- 00 : void +- 01 : object descriptor number (will be copied with a new number to reciever) +- 10 : integer +- 11 : long long (replies), or shared memory offset (requests and messages) diff --git a/doc/syscalls.txt b/doc/syscalls.txt index baa537e..663618d 100644 --- a/doc/syscalls.txt +++ b/doc/syscalls.txt @@ -12,5 +12,9 @@ id=eax Name Parameters Description 5 thread_new ebx: entry point Creates a new thread ecx: data pointer 6 irq_wait ebx: irq number Waits for an IRQ (requires privilege PL_DRIVER) + 7 proc_priv none Returns current process privilege level + 8 shm_create ebx: offset Create a shared memory segment at offset (ret = errcode) + ecx: length + 9 shm_delete ebx: offset Delete a shared memory segment at offset (ret = errcode) If a processes wishes to exit with an error code, it HAS to use process_exit. thread_exit will do nothing. -- cgit v1.2.3