diff options
author | Richard Braun <rbraun@sceen.net> | 2017-07-25 01:18:45 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2017-07-25 01:20:29 +0200 |
commit | 34a60abd1ab042960a8b7fcb2cd78f24e79ae2a0 (patch) | |
tree | 08ae5a81f4e423f5eaef5c6f4f896ae2cc2ee545 | |
parent | 02110f5991676b2ba8cb8d4f191997d74e92b7fb (diff) |
doc/intro(9): mention the hash/hlist/slist/mutex implementation modules
-rw-r--r-- | doc/asciidoc.conf | 9 | ||||
-rw-r--r-- | doc/intro.9.txt | 24 |
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 |