paul@308 | 1 | -- vim:set ft=lua: |
paul@308 | 2 | |
paul@308 | 3 | local L4 = require("L4"); |
paul@308 | 4 | |
paul@308 | 5 | local l = L4.default_loader; |
paul@308 | 6 | |
paul@308 | 7 | local pipe_server = l:new_channel(); |
paul@308 | 8 | |
paul@308 | 9 | l:startv({ |
paul@308 | 10 | caps = { |
paul@308 | 11 | server = pipe_server:svr(), |
paul@308 | 12 | }, |
paul@308 | 13 | log = { "pipes", "r" }, |
paul@308 | 14 | }, |
paul@308 | 15 | "rom/dstest_pipe_server", "10"); |
paul@308 | 16 | |
paul@308 | 17 | local block_server = l:new_channel(); |
paul@308 | 18 | |
paul@308 | 19 | l:startv({ |
paul@308 | 20 | caps = { |
paul@308 | 21 | server = block_server:svr(), |
paul@308 | 22 | }, |
paul@308 | 23 | log = { "blocksvr", "r" }, |
paul@308 | 24 | }, |
paul@308 | 25 | "rom/dstest_block_server", "10"); |
paul@308 | 26 | |
paul@308 | 27 | local ext2svr = l:new_channel(); |
paul@308 | 28 | |
paul@308 | 29 | l:startv({ |
paul@308 | 30 | caps = { |
paul@308 | 31 | blocksvr = block_server, |
paul@308 | 32 | pipes = pipe_server, |
paul@308 | 33 | ext2svr = ext2svr:svr(), |
paul@308 | 34 | }, |
paul@308 | 35 | log = { "ext2svr", "y" }, |
paul@308 | 36 | }, |
paul@308 | 37 | "rom/dstest_ext2_server", "blocksvr", "rom/e2test.fs", "10", "ext2svr"); |
paul@308 | 38 | |
paul@308 | 39 | -- Obtain user filesystems with umask 0022 (18). |
paul@308 | 40 | |
paul@308 | 41 | local open_for_user = 6; |
paul@308 | 42 | local ext2svr_paulb = L4.cast(L4.Proto.Factory, ext2svr):create(open_for_user, 1000, 1000, 18); |
paul@308 | 43 | |
paul@308 | 44 | l:startv({ |
paul@308 | 45 | caps = { |
paul@308 | 46 | server = ext2svr_paulb, |
paul@308 | 47 | }, |
paul@308 | 48 | log = { "client", "g" }, |
paul@308 | 49 | }, |
paul@318 | 50 | "rom/dstest_exec", "home/paulb/dstest_exec_payload", "hello", "world"); |