Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/adt/module_map.c

    r61bfc370 r25d2de69  
    3838#include <task.h>
    3939#include <unistd.h>
    40 #include <errno.h>
     40#include <err.h>
    4141
    4242#include <ipc/services.h>
     
    5959 *                      running.
    6060 * @param[in] connect_module The module connecting function.
    61  * @return              EOK on success.
    62  * @return              ENOMEM if there is not enough memory left.
     61 * @returns             EOK on success.
     62 * @returns             ENOMEM if there is not enough memory left.
    6363 */
    6464int
    65 add_module(module_t **module, modules_t *modules, const uint8_t *name,
    66     const uint8_t *filename, services_t service, task_id_t task_id,
     65add_module(module_ref *module, modules_ref modules, const char *name,
     66    const char *filename, services_t service, task_id_t task_id,
    6767    connect_module_t connect_module)
    6868{
    69         module_t *tmp_module;
    70         int rc;
     69        ERROR_DECLARE;
    7170
    72         tmp_module = (module_t *) malloc(sizeof(module_t));
     71        module_ref tmp_module;
     72
     73        tmp_module = (module_ref) malloc(sizeof(module_t));
    7374        if (!tmp_module)
    7475                return ENOMEM;
     
    8283        tmp_module->connect_module = connect_module;
    8384
    84         rc = modules_add(modules, tmp_module->name, 0, tmp_module);
    85         if (rc != EOK) {
     85        if (ERROR_OCCURRED(modules_add(modules, tmp_module->name, 0,
     86            tmp_module))) {
    8687                free(tmp_module);
    87                 return rc;
     88                return ERROR_CODE;
    8889        }
    8990        if (module)
     
    100101 * @param[in] modules   The module map.
    101102 * @param[in] name      The module name.
    102  * @return              The running module found. It does not have to be
     103 * @returns             The running module found. It does not have to be
    103104 *                      connected.
    104  * @return              NULL if there is no such module.
     105 * @returns             NULL if there is no such module.
    105106 */
    106 module_t *get_running_module(modules_t *modules, uint8_t *name)
     107module_ref get_running_module(modules_ref modules, char *name)
    107108{
    108         module_t *module;
     109        module_ref module;
    109110
    110111        module = modules_find(modules, name, 0);
     
    113114
    114115        if (!module->task_id) {
    115                 module->task_id = net_spawn(module->filename);
     116                module->task_id = spawn(module->filename);
    116117                if (!module->task_id)
    117118                        return NULL;
     
    123124}
    124125
    125 /** Start the given module.
     126/** Starts the given module.
    126127 *
    127  * @param[in] fname The module full or relative path filename.
    128  *
    129  * @return The new module task identifier on success.
    130  * @return Zero if there is no such module.
    131  *
     128 * @param[in] fname     The module full or relative path filename.
     129 * @returns             The new module task identifier on success.
     130 * @returns             Zero if there is no such module.
    132131 */
    133 task_id_t net_spawn(const uint8_t *fname)
     132task_id_t spawn(const char *fname)
    134133{
    135         task_id_t id;
    136         int rc;
     134        const char *argv[2];
     135        task_id_t res;
    137136       
    138         rc = task_spawnl(&id, (const char *) fname, (const char *) fname, NULL);
    139         if (rc != EOK)
    140                 return 0;
     137        argv[0] = fname;
     138        argv[1] = NULL;
     139        res = task_spawn(fname, argv, NULL);
    141140       
    142         return id;
     141        return res;
    143142}
    144143
Note: See TracChangeset for help on using the changeset viewer.