summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-07-25 01:18:45 +0200
committerRichard Braun <rbraun@sceen.net>2017-07-25 01:20:29 +0200
commit34a60abd1ab042960a8b7fcb2cd78f24e79ae2a0 (patch)
tree08ae5a81f4e423f5eaef5c6f4f896ae2cc2ee545
parent02110f5991676b2ba8cb8d4f191997d74e92b7fb (diff)
doc/intro(9): mention the hash/hlist/slist/mutex implementation modules
-rw-r--r--doc/asciidoc.conf9
-rw-r--r--doc/intro.9.txt24
2 files changed, 31 insertions, 2 deletions
diff --git a/doc/asciidoc.conf b/doc/asciidoc.conf
index 49c30091..ee2bb5fa 100644
--- a/doc/asciidoc.conf
+++ b/doc/asciidoc.conf
@@ -6,9 +6,18 @@ against-priority-inheritance=https://fsmlabs.com/pdfs/Priority_Inheritance.pdf[A
the-art-of-unix-programming=http://www.catb.org/esr/writings/taoup/html/[The Art of Unix Programming]
[macros]
+(?su)(?P<name>module_mutex):(?P<impl>\w+)=
(?su)(?P<name>module):(?P<component>\w+)/(?P<module>\w+)=
(?su)(?P<name>manpage):(?P<page>\w+)=
+[module_mutex-inlinemacro]
+ifdef::basebackend-html[]
+<a href="https://git.sceen.net/rbraun/x15.git/tree/kern/mutex/mutex_{impl}_i.h"><b>mutex_{impl}</b></a>
+endif::basebackend-html[]
+ifdef::basebackend-docbook[]
+<ulink url="https://git.sceen.net/rbraun/x15.git/tree/kern/mutex/mutex_{impl}_i.h"><emphasis role="bold">mutex_{impl}</emphasis></ulink>
+endif::basebackend-docbook[]
+
[module-inlinemacro]
ifdef::basebackend-html[]
<a href="https://git.sceen.net/rbraun/x15.git/tree/{component@arch:arch/x86/machine:{component}}/{module}.h"><b>{module}</b></a>
diff --git a/doc/intro.9.txt b/doc/intro.9.txt
index e3eb4ee2..8d9bb87e 100644
--- a/doc/intro.9.txt
+++ b/doc/intro.9.txt
@@ -102,6 +102,21 @@ module:kern/thread::
module:kern/work::
Work queue of deferred asynchronous lightweight jobs.
+Mutex implementations
+~~~~~~~~~~~~~~~~~~~~~
+
+In order to best satisfy either performance or real-time needs, the
+kernel provides multiple mutex implementations. Note that, whatever
+implementation is chosen, the *rtmutex* module is always available.
+The mutex implementations are :
+
+module_mutex:adaptive::
+ Adaptive spinning mutex.
+module_mutex:pi::
+ Real-time mutex with priority inheritance.
+module_mutex:plain::
+ Default mutex.
+
[[generic_development_tools]]
GENERIC DEVELOPMENT TOOLS
-------------------------
@@ -115,6 +130,10 @@ module:kern/cbuf::
Circular character buffer.
module:kern/error::
Common errors and error handling functions.
+module:kern/hash::
+ Hash functions for integers and strings.
+module:kern/hlist::
+ Doubly-linked list specialized for forward traversals and O(1) removals.
module:kern/kmem::
Object caching and general purpose memory allocator.
module:kern/list::
@@ -127,6 +146,8 @@ module:kern/rbtree::
Red-black tree.
module:kern/rdxtree::
Radix tree (with integer keys).
+module:kern/slist::
+ Singly-linked list.
module:kern/sprintf::
Formatted string functions.
module:kern/syscnt::
@@ -135,8 +156,7 @@ module:kern/syscnt::
X15 doesn't provide a generic queue interface, because the requirements
often vary too much. Similarly, it doesn't provide a hash table interface.
Instead, users can easily build specialized queues, hash tables and ring
-buffers on top of the provided facilities. Hash functions may be provided
-in the future.
+buffers on top of the provided facilities.
[[multiprocessor_support]]
MULTIPROCESSOR SUPPORT