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 /* Obtain a file reference given a path written to the context's dataspace. */ 19 20 [opcode(12)] void open(in flags_t flags, out offset_t size, out cap file, 21 out object_flags_t object_flags); 22 23 /* Remove a file using a path written to the context's dataspace. */ 24 25 [opcode(14)] void remove(); 26 27 /* Rename a file within a filesystem using paths written to the context's 28 dataspace. */ 29 30 [opcode(15)] void rename(); 31 32 /* Obtain file metadata given a path written to the context's dataspace, 33 writing the metadata to the dataspace. */ 34 35 [opcode(11)] void stat(); 36 }; 37 38 /* vim: tabstop=2 expandtab shiftwidth=2 39 */