Changes in uspace/lib/c/generic/loader.c [21d3201:01900b6] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/loader.c
r21d3201 r01900b6 46 46 #include "private/loader.h" 47 47 48 /** Connect to a new program loader. 49 * 50 * Spawns a new program loader task and returns the connection structure. 48 /** Spawn a new program loader. 49 * 50 * Spawn a new program loader task. The loader then independetly 51 * connects to the naming service. 51 52 * 52 53 * @param name Symbolic name to set on the newly created task. 53 54 * 54 55 * @return Error code. 56 * 55 57 */ 56 58 errno_t loader_spawn(const char *name) … … 60 62 } 61 63 62 loader_t *loader_connect(void) 64 /** Connect to a program loader. 65 * 66 * @param rc Placeholder for return code. Unused if NULL. 67 * 68 * @return Loader structure. 69 * 70 */ 71 loader_t *loader_connect(errno_t *rc) 63 72 { 64 73 loader_t *ldr = malloc(sizeof(loader_t)); … … 67 76 68 77 async_sess_t *sess = 69 service_connect_blocking(SERVICE_LOADER, INTERFACE_LOADER, 0 );78 service_connect_blocking(SERVICE_LOADER, INTERFACE_LOADER, 0, rc); 70 79 if (sess == NULL) { 71 80 free(ldr); … … 345 354 } 346 355 356 /** Instruct loader to execute the program and do not wait for reply. 357 * 358 * This function does not block even if the loaded task is stopped 359 * for debugging. 360 * 361 * After using this function, no further operations can be performed 362 * on the loader structure and it is deallocated. 363 * 364 * @param ldr Loader connection structure. 365 * 366 * @return Zero on success or an error code. 367 * 368 */ 369 void loader_run_nowait(loader_t *ldr) 370 { 371 async_exch_t *exch = async_exchange_begin(ldr->sess); 372 async_msg_0(exch, LOADER_RUN); 373 async_exchange_end(exch); 374 375 async_hangup(ldr->sess); 376 free(ldr); 377 } 378 347 379 /** Cancel the loader session. 348 380 *
Note:
See TracChangeset
for help on using the changeset viewer.