add a readme
diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c0ba1f --- /dev/null +++ b/README.md
@@ -0,0 +1,71 @@ +<!-- + 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.