| <!-- | |
| Copyright 2014, NICTA | |
| This software may be distributed and modified according to the terms of | |
| the BSD 2-Clause license. Note that NO WARRANTY is provided. | |
| See "LICENSE_BSD2.txt" for details. | |
| @TAG(NICTA_BSD) | |
| --> | |
| libsel4utils | |
| ============= | |
| libsel4utils provides OS-like utilities for building benchmarks and applications on seL4. | |
| Although the library attempts to be policy agnostic, some decisions must be made. | |
| This library is intended to be used to quickly get tests, benchmarks and prototypes off the ground | |
| with minimal effort. | |
| It can also be used as a reference for 'how-to' implement OS mechanisms on seL4. | |
| Utilities provided by this library: | |
| * threads | |
| * processes | |
| * elf loading | |
| * virtual memory management | |
| * stack switching | |
| * debugging tools | |
| No allocator is provided, although any allocator that implements the seL4 vka interface can be used | |
| (we recommend libsel4allocman). | |
| Dependencies | |
| ------------------ | |
| libsel4utils depends on libsel4vka, libsel4vspace, libutils, libelf, libcpio, libsel4. | |
| Repository overview | |
| ------------------- | |
| *include/sel4utils*: | |
| * client_server_vspace.h -- a virtual address space that proxies calls between two different | |
| vspaces | |
| * elf.h -- elf loading. | |
| * mapping.h -- page mapping. | |
| * process.h -- process creation, deletion. | |
| * profile.h -- profiling. | |
| * sel4_debug.h -- for printing seL4 error codes. | |
| * stack.h -- switch to a newly allocated stack. | |
| * thread.h -- threads (kernel threads) creation, deletion. | |
| * util.h -- includes utilities from libutils. | |
| * vspace.h -- virtual memory management (implements vspace interface) | |
| * vspace_internal.h -- virtual memory management internals, for hacking the above. | |
| *arch_include/sel4utils*: | |
| * util.h -- utils to assist in writing arch independent code. | |
| Configuration options | |
| ---------------------- | |
| * SEL4UTILS_STACK_SIZE -- the default stack size to use for processes and threads. | |
| * SEL4UTILS_CSPACE_SIZE_BITS -- the default cspace size for new processes (threads use the current | |
| cspace). | |
| License | |
| ======== | |
| The files in this repository are release under standard open source licenses. | |
| Please see individual file headers and the `LICENSE_BSD2`.txt file for details. |