1<!--- 2 Copyright 2017, Data61 3 Commonwealth Scientific and Industrial Research Organisation (CSIRO) 4 ABN 41 687 119 230. 5 6 This software may be distributed and modified according to the terms of 7 the BSD 2-Clause license. Note that NO WARRANTY is provided. 8 See "LICENSE_BSD2.txt" for details. 9 10 @TAG(DATA61_BSD) 11--> 12 13libsel4utils 14============= 15 16libsel4utils provides OS-like utilities for building benchmarks and applications on seL4. 17Although the library attempts to be policy agnostic, some decisions must be made. 18 19This library is intended to be used to quickly get tests, benchmarks and prototypes off the ground 20with minimal effort. It's meant to contain commonly useful stuff, that will be actively 21maintained. 22It can also be used as a reference for 'how-to' implement OS mechanisms on seL4. 23 24Utilities provided by this library: 25 26 * threads 27 * processes 28 * elf loading 29 * virtual memory management 30 * stack switching 31 * debugging tools 32 33No allocator is provided, although any allocator that implements the seL4 vka interface can be used 34(we recommend libsel4allocman). 35 36Dependencies 37------------------ 38 39libsel4utils depends on libsel4vka, libsel4vspace, libutils, libelf, libcpio, libsel4. 40 41Repository overview 42------------------- 43 44*include/sel4utils*: 45 46 * elf.h -- elf loading. 47 * mapping.h -- page mapping. 48 * process.h -- process creation, deletion. 49 * profile.h -- profiling. 50 * strerror.h -- for printing seL4 error codes. 51 * stack.h -- switch to a newly allocated stack. 52 * thread.h -- threads (kernel threads) creation, deletion. 53 * util.h -- includes utilities from libutils. 54 * vspace.h -- virtual memory management (implements vspace interface) 55 * vspace_internal.h -- virtual memory management internals, for hacking the above. 56 57*arch_include/sel4utils*: 58 59 * util.h -- utils to assist in writing arch independent code. 60 61Configuration options 62---------------------- 63 64* `SEL4UTILS_STACK_SIZE` -- the default stack size to use for processes and threads. 65* `SEL4UTILS_CSPACE_SIZE_BITS` -- the default cspace size for new processes (threads use the current 66 cspace). 67 68License 69======== 70 71The files in this repository are release under standard open source licenses. 72Please see individual file headers and the `LICENSE_BSD2`.txt file for details. 73