2021-07-24 | Paul Boddie | raw annotate files changeset graph | Introduced filesystem objects, separated file paging functionality from openers, and made the ext2 file opener configurable for specific users, each opener being created via the ext2 filesystem object. Changed the file opening mechanism so that openers are called from the file paging functionality where new file accessors and mappers need to be created. A file opening interface has been defined to establish the functionality provided by each opener to implement its part of the mechanism. Introduced filesystem-related functions to the client and file libraries, also changing functions with overridable capability details to accept the actual capability index instead of the name of the capability in the environment. Changed the libext2fs interfacing to work with the updated client library. |
1 -- vim:set ft=lua: 2 3 local L4 = require("L4"); 4 5 local l = L4.default_loader; 6 7 local blocksvr = l:new_channel(); 8 9 l:startv({ 10 caps = { 11 server = blocksvr:svr(), 12 }, 13 log = { "blocksvr", "r" }, 14 }, 15 "rom/dstest_block_server", "10"); 16 17 local ext2svr = l:new_channel(); 18 19 l:startv({ 20 caps = { 21 blocksvr = blocksvr, 22 ext2svr = ext2svr:svr(), 23 }, 24 log = { "ext2svr", "y" }, 25 }, 26 "rom/dstest_ext2_server", "blocksvr", "rom/e2test.fs", "10", "ext2svr"); 27 28 l:startv({ 29 caps = { 30 server = ext2svr, 31 }, 32 log = { "client", "g" }, 33 }, 34 -- program, file to read, user identifier, repetition 35 "rom/dstest_block_client_simple", "home/paulb/LICENCE.txt", "1000", "1");