= GIET-VM documentation = [[PageOutline]] == __A) [wiki:mapping_info Mapping_Info data structure]__ == == __B) [wiki:peripherals_drivers Peripherals Drivers]__ == == __C) [wiki:common_functions Shared kernel functions]__ == == __Y) [wiki:boot_loader Boot-loader]__ == == __W) [wiki:kernel_functions Kernel functions]__ == The GIET acronym stands for ''Gestionnaire Interruptions, Exceptions & Trappes''. This section describe the kernel functions, supporting Interrupts, Exceptions and Traps (i.e. syscalls). === [wiki:kernel_interrupts Interrupt Handler] === === [wiki:kernel_exceptions Exception Handler] === === [wiki:kernel_syscalls Syscall Handler] === === [wiki:kernel_context Context Switch Handler] === == __Z) [wiki:user_libraries User level libraries]__ == This section describes the user libraries : === [wiki:library_stdio Stdio library] === This library contains all system calls allowing an application to access a protected ressource (peripheral register, or protected processor register). Each function in this library contains at least one SYSCALL instruction to enter the kernel mode. === [wiki:library_stdlib Stdlib user library] === This library contains various utility functions that do not use system calls. === [wiki:library_mwmr MWMR user library] === This library defines a communication middleware supporting channelised communications in a multi-tasks parallel application. This middleware does not use system calls. === [wiki:library_barrier Barrier user library] === This library contains functions used to synchronize severals tasks in a multi-task parallel application. Most of these functions do not use system calls. === [wiki:library_locks Spin_lock user library] === This library contains functions used to provide exclusive access to a shared ressource in a multi-task parallel application. These functions do not use system calls. === [wiki:library_malloc Malloc user library] === This library contains functions allowing an user application to dynamically allocate virtual memory from the application heap. When the target architecture is clusterized (several physical banks), the heap is physically distributed on the clusters, and there is actually on allocator per cluster.