1 = Libraries = 2 3 Within the `departure` package, a number of libraries have been established to 4 retain certain kinds of functionality. This document provides an overview of 5 each of them. 6 7 <<TableOfContents(2, 2)>> 8 9 == libe2access == 10 11 Convenience functions for `libext2fs` operations. 12 13 || '''Header File''' || '''Contents''' || 14 || `e2access/access.h` || Access control functions || 15 || `e2access/format.h` || File metadata formatting || 16 || `e2access/image.h` || Filesystem image access functions || 17 || `e2access/path.h` || Path functions || 18 || `e2access/utils.h` || Common utilities for filesystem users || 19 20 == libe2access_blockserver == 21 22 A convenience wrapper around `libext2fs`, providing initialisation functions 23 for the opening of filesystems and for indicating the capability through which 24 a block server, this providing a filesystem, may be accessed. 25 26 || '''Header File''' || '''Contents''' || 27 || `e2access/fs.h` || Filesystem opening functions || 28 29 == libexec == 30 31 Support for initialising and executing programs in new tasks. 32 33 || '''Header File''' || '''Contents''' || 34 || `exec/common.h` || Common structures and functions || 35 || `exec/elf.h` || ELF payload decoding support || 36 || `exec/external_pager.h` || A system pager implementation residing in a separate task || 37 || `exec/internal_pager.h` || A system pager implementation residing in the same task as a program || 38 || `exec/mapped_region.h` || Mapped memory region support || 39 || `exec/memory.h` || Program memory initialisation support || 40 || `exec/pager.h` || Common system pager functionality || 41 || `exec/process.h` || Support for initialising programs in new tasks and threads || 42 || `exec/segment.h` || Program memory segment support || 43 || `exec/stack.h` || Stack support for new tasks and threads || 44 45 == libext2fs == 46 47 The ext2 filesystem library provided by the 48 [[http://e2fsprogs.sourceforge.net/|e2fsprogs]] project. 49 50 == libext2fs_blockserver == 51 52 Interfacing functions for `libext2fs`, permitting the library to access block 53 servers, these being servers supporting the [[Components#Openers|opener]] 54 interface, doing so using the [[Client Library|client library]]. 55 56 == libfsclient == 57 58 The [[Client Library|client library]] for accessing filesystem servers. 59 60 || '''Header File''' || '''Contents''' || 61 || `fsclient/client.h` || Filesystem client functions || 62 || `fsclient/file.h` || File access convenience functions and types || 63 || `fsclient/notify.h` || Common notification-related functions || 64 65 == libfsserver == 66 67 The [[Server Library|server library]] providing supporting abstractions and 68 functionality for filesystem-related [[Components|components]]. 69 70 || '''Header File''' || '''Contents''' || 71 || `fsserver/access_map.h` || An access map providing memory corresponding to file regions || 72 || `fsserver/accessor.h` || Generic accessor functionality || 73 || `fsserver/accountable.h` || Accountable object support || 74 || `fsserver/block_file_accessor.h` || A file accessor employing a rewritable memory area || 75 || `fsserver/block_file_opener.h` || An opener for a file employing a rewritable memory area || 76 || `fsserver/copied_page_mapper.h` || A page mapper providing copied memory pages or deferring to another page mapper to satisfy file accesses || 77 || `fsserver/directory_accessor.h` || An object providing access to a filesystem directory || 78 || `fsserver/directory_provider.h` || An object providing a directory abstraction with notification facilities || 79 || `fsserver/directory_resource.h` || A resource offering support for directory operations || 80 || `fsserver/ext2_directory_accessor.h` || An object for a directory provided by an Ext2-compatible filesystem || 81 || `fsserver/ext2_file_accessor.h` || A file accessor employing a file provided by an Ext2-compatible filesystem || 82 || `fsserver/ext2_file_opener.h` || An opener for a file provided by an Ext2-compatible filesystem || 83 || `fsserver/ext2_file_operations.h` || File operations supporting an Ext2-compatible filesystem || 84 || `fsserver/ext2_filesystem.h` || A resource supporting the creation of user-specific ext2 filesystem opener resources || 85 || `fsserver/file_opening.h` || Generic support for opening files || 86 || `fsserver/file_pager.h` || File-specific pager functionality || 87 || `fsserver/file_provider.h` || An object encapsulating file resources || 88 || `fsserver/filesystem_resource.h` || A resource supporting the creation of user-specific opener resources || 89 || `fsserver/generic_page_mapper.h` || A generic page mapper providing memory pages to satisfy file accesses || 90 || `fsserver/host_directory_accessor.h` || An object for a "host" directory provided via the C library || 91 || `fsserver/host_file_accessor.h` || A file accessor employing a "host" file provided via the C library || 92 || `fsserver/host_file_opener.h` || An opener for a "host" file provided via the C library || 93 || `fsserver/ipc.h` || Interprocess communication utilities || 94 || `fsserver/masked_page_mapper.h` || A page mapper providing memory pages to satisfy file accesses, masking the limits of a visible region of the file's contents || 95 || `fsserver/notification.h` || Notification support || 96 || `fsserver/opener_context_resource.h` || A context resource offering support for opening files || 97 || `fsserver/opener_resource.h` || A resource offering support for creating contexts and opening files || 98 || `fsserver/page_mapper.h` || A page mapper providing memory pages to satisfy file accesses || 99 || `fsserver/page_owner.h` || A page owner abstraction, indicating the current user of a memory region || 100 || `fsserver/page_queue.h` || A page queue abstraction || 101 || `fsserver/page_queue_partitioned.h` || A page queue retaining two internal collections of memory pages || 102 || `fsserver/page_queue_shared.h` || A page queue whose users take turns to access pages || 103 || `fsserver/pager.h` || Generic pager functionality || 104 || `fsserver/pages.h` || A page collection abstraction providing pages from a queue to users || 105 || `fsserver/pipe_accessor.h` || A pipe accessor merely resetting allocated memory for use || 106 || `fsserver/pipe_opener_resource.h` || A pipe opener resource || 107 || `fsserver/pipe_pager.h` || A pipe pager providing access to pipe content and navigation support || 108 || `fsserver/pipe_paging.h` || A pipe paging coordinator, permitting memory sharing pipe endpoints || 109 || `fsserver/provider.h` || Filesystem object provider support || 110 || `fsserver/provider_registry.h` || A registry of filesystem object providers || 111 || `fsserver/resource_registry.h` || A registry of filesystem object resources || 112 || `fsserver/simple_pager.h` || A simple pager exposing a single memory region || 113 || `fsserver/test_file_accessor.h` || A test accessor producing generated content || 114 || `fsserver/test_file_opener.h` || An opener for a test file containing generated content || 115 116 == libipc == 117 118 A library providing IPC (interprocess communication) mechanisms to support 119 communication and interactions between components. 120 121 || '''Header File''' || '''Contents''' || 122 || `ipc/cap_alloc.h` || Capability allocation and management || 123 || `ipc/direct.h` || Interprocess communication operations || 124 || `ipc/factory.h` || Factory-related data types || 125 || `ipc/irq.h` || Interrupt request handling || 126 || `ipc/macros_ipc.h` || Interprocess communication macros || 127 || `ipc/map.h` || Capability mapping between tasks || 128 || `ipc/mem_ipc.h` || Memory sharing abstractions || 129 || `ipc/message.h` || Interprocess communication message abstraction || 130 || `ipc/semaphore.h` || Semaphore utilities || 131 || `ipc/server.h` || Server binding/registration || 132 || `ipc/thread.h` || Thread-related initialisation || 133 || `ipc/util_ipc.h` || Interprocess communication abstractions || 134 135 == libmem == 136 137 A library providing memory-related abstractions and utilities. 138 139 || '''Header File''' || '''Contents''' || 140 || `mem/flexpage.h` || A flexpage abstraction || 141 || `mem/memory.h` || A generic memory pool abstraction || 142 || `mem/memory_incremental.h` || A memory pool allocating a region at a time from the system || 143 || `mem/memory_preallocated.h` || A memory pool providing regions from a preallocated amount of memory || 144 || `mem/memory_utils.h` || Memory quantity calculation utilities || 145 || `mem/region.h` || Memory region abstractions || 146 || `mem/send_flexpage.h` || A "send" flexpage abstraction for communicating memory mappings || 147 || `mem/types.h` || Miscellaneous types || 148 149 == libnotifier == 150 151 A library providing notification support for programs. 152 153 || '''Header File''' || '''Contents''' || 154 || `notifier/notifier.h` || Event notification support || 155 156 == libresource == 157 158 A library providing support for resources, which are managed server 159 components. 160 161 || '''Header File''' || '''Contents''' || 162 || `resource/resource.h` || Common resource classes and functions || 163 || `resource/resource_server.h` || Common resource server functions || 164 165 == libsystypes == 166 167 A repository of fundamental types used by the other libraries. 168 169 || '''Header File''' || '''Contents''' || 170 || `systypes/base.h` || Base types used by various other types || 171 || `systypes/factory.h` || Factory-related data type macros || 172 || `systypes/fcntl.h` || File control definitions || 173 || `systypes/format.h` || Format specifiers for output || 174 || `systypes/stat.h` || File metadata abstractions || 175 || `systypes/timespec.h` || Time-related types || 176 || `systypes/user.h` || User abstractions ||