Ignore:
File:
1 edited

Legend:

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

    r25d2de69 r1bfd3d3  
    3838#include <task.h>
    3939#include <unistd.h>
    40 #include <err.h>
     40#include <errno.h>
    4141
    4242#include <ipc/services.h>
     
    5959 *                      running.
    6060 * @param[in] connect_module The module connecting function.
    61  * @returns             EOK on success.
    62  * @returns             ENOMEM if there is not enough memory left.
     61 * @return              EOK on success.
     62 * @return              ENOMEM if there is not enough memory left.
    6363 */
    6464int
    65 add_module(module_ref *module, modules_ref modules, const char *name,
     65add_module(module_t **module, modules_t *modules, const char *name,
    6666    const char *filename, services_t service, task_id_t task_id,
    6767    connect_module_t connect_module)
    6868{
    69         ERROR_DECLARE;
     69        module_t *tmp_module;
     70        int rc;
    7071
    71         module_ref tmp_module;
    72 
    73         tmp_module = (module_ref) malloc(sizeof(module_t));
     72        tmp_module = (module_t *) malloc(sizeof(module_t));
    7473        if (!tmp_module)
    7574                return ENOMEM;
     
    8382        tmp_module->connect_module = connect_module;
    8483
    85         if (ERROR_OCCURRED(modules_add(modules, tmp_module->name, 0,
    86             tmp_module))) {
     84        rc = modules_add(modules, tmp_module->name, 0, tmp_module);
     85        if (rc != EOK) {
    8786                free(tmp_module);
    88                 return ERROR_CODE;
     87                return rc;
    8988        }
    9089        if (module)
     
    101100 * @param[in] modules   The module map.
    102101 * @param[in] name      The module name.
    103  * @returns             The running module found. It does not have to be
     102 * @return              The running module found. It does not have to be
    104103 *                      connected.
    105  * @returns             NULL if there is no such module.
     104 * @return              NULL if there is no such module.
    106105 */
    107 module_ref get_running_module(modules_ref modules, char *name)
     106module_t *get_running_module(modules_t *modules, char *name)
    108107{
    109         module_ref module;
     108        module_t *module;
    110109
    111110        module = modules_find(modules, name, 0);
     
    127126 *
    128127 * @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.
     128 * @return              The new module task identifier on success.
     129 * @return              Zero if there is no such module.
    131130 */
    132131task_id_t spawn(const char *fname)
    133132{
    134         const char *argv[2];
    135         task_id_t res;
     133        task_id_t id;
     134        int rc;
    136135       
    137         argv[0] = fname;
    138         argv[1] = NULL;
    139         res = task_spawn(fname, argv, NULL);
     136        rc = task_spawnl(&id, fname, fname, NULL);
     137        if (rc != EOK)
     138                return 0;
    140139       
    141         return res;
     140        return id;
    142141}
    143142
Note: See TracChangeset for help on using the changeset viewer.