1 #include <systypes/base.h> /* flags_t, object_flags_t, offset_t */ 2 3 /* An interface providing a way of opening or manipulating filesystem objects 4 relying on a dataspace to transfer filesystem paths specifying the objects 5 involved. */ 6 7 interface OpenerContext 8 { 9 /* Mount the filesystem reference given a mountpoint path written to the 10 dataspace. */ 11 12 [opcode(0)] void mount(in cap fs); 13 14 /* Obtain a filesystem reference. */ 15 16 [opcode(1)] void getfs(out cap fs); 17 18 /* Make a new directory given a path written to the context's dataspace. */ 19 20 [opcode(18)] void mkdir(in sys_mode_t mode); 21 22 /* Obtain a file reference given a path written to the context's dataspace. */ 23 24 [opcode(12)] void open(in flags_t flags, out offset_t size, out cap file, 25 out object_flags_t object_flags); 26 27 /* Remove a file using a path written to the context's dataspace. */ 28 29 [opcode(14)] void remove(); 30 31 /* Rename a file within a filesystem using paths written to the context's 32 dataspace. */ 33 34 [opcode(15)] void rename(); 35 36 /* Obtain file metadata given a path written to the context's dataspace, 37 writing the metadata to the dataspace. */ 38 39 [opcode(11)] void stat(); 40 }; 41 42 /* vim: tabstop=2 expandtab shiftwidth=2 43 */