interface loader extends service { /* Establish connection */ ipcarg_t ipc_m_connect_me_to(void); /* Set task pathname */ ipcarg_t set_pathname(in_copy string pathname); /* Set task arguments */ ipcarg_t set_args(in_copy stream args); /* Set task initial files */ ipcarg_t set_files(in_copy stream files); /* Get task ID */ ipcarg_t get_taskid(out_copy stream id); /* Load binary */ ipcarg_t load(void); /* Run binary */ ipcarg_t run(void); /* Close connection */ ipcarg_t ipc_m_phone_hungup(void); protocol: [loader.bp] }; frame loader { provides: loader loader; requires: [/uspace/lib/libc/requires%] ns ns; protocol: [/uspace/lib/libc/protocol] + [loader_server.bp] };