summaryrefslogtreecommitdiff
path: root/doc/messaging.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/messaging.txt')
-rw-r--r--doc/messaging.txt48
1 files changed, 0 insertions, 48 deletions
diff --git a/doc/messaging.txt b/doc/messaging.txt
deleted file mode 100644
index 804bb5d..0000000
--- a/doc/messaging.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-Message passing is the technique used by processes for communicating with each other.
-It is based on a few basic functions :
-
-= msg_register =
-Registers the current process as the owner of a system channel.
-System channels are aliases for PIDs (negative PIDs resolve to corresponding real PID).
-They range from -1 to -255. They are allocated as follows :
- from -1 to -19 : drivers
- -1 = keyboard
- -2 = mouse
- from -20 to -29 : network services
- -20 = networking subsystem (may be in several parts)
- from -30 to -39 : system services
- -30 = virtual file system
- -31 = logger
- -32 = user server
- from -40 to -49 : UI services
- -40 = graphic server (includes VESA driver for now)
- -41 = sound server
-Modules for HDD drivers, network cards, sound cards, ... do not register as devices but instead
-notify of their presence to the corresponding service.
-
-= msg_send =
-Sends a message to a process. Arguments:
-- Receiver PID or system channel id
-- Message data (up to 64k bytes, minimum 4 bytes)
-The first 4 bytes of the message data always designate the message code (function).
-The kernel may intercept some special messages (as "kill process" or stuff like that).
-
-= msg_info =
-Gets first message in the queue for current process.
-Function can block waiting for a message if asked by caller and if no other function already does it.
-When it is there, return the following:
-- If a message has come
-- The sender PID
-- The message code (first 4 bytes of data)
-- The length of the data
-
-= msg_get =
-Reads the data of the first message in the queue for current process.
-Is passed a pointer where the data will be written. It is supposed that enougth memory is already allocated.
-
-From a kernel point of view, message passing is asynchronious,
-but there also are userland functions for making them look synchronious by waiting for an answer.
-Usually, message codes | 0x80000000 are answers to a message.
-
-Most processes, most of the time, will be in a loop waiting for messages to come.
-The drivers are the principal exception to that, they instead wait for an interrupt or another hardware signal.