Ignore:
File:
1 edited

Legend:

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

    r25d2de69 r61bfc370  
    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,
    66     const char *filename, services_t service, task_id_t task_id,
     65add_module(module_t **module, modules_t *modules, const uint8_t *name,
     66    const uint8_t *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, uint8_t *name)
    108107{
    109         module_ref module;
     108        module_t *module;
    110109
    111110        module = modules_find(modules, name, 0);
     
    114113
    115114        if (!module->task_id) {
    116                 module->task_id = spawn(module->filename);
     115                module->task_id = net_spawn(module->filename);
    117116                if (!module->task_id)
    118117                        return NULL;
     
    124123}
    125124
    126 /** Starts the given module.
     125/** Start the given module.
    127126 *
    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.
     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 *
    131132 */
    132 task_id_t spawn(const char *fname)
     133task_id_t net_spawn(const uint8_t *fname)
    133134{
    134         const char *argv[2];
    135         task_id_t res;
     135        task_id_t id;
     136        int rc;
    136137       
    137         argv[0] = fname;
    138         argv[1] = NULL;
    139         res = task_spawn(fname, argv, NULL);
     138        rc = task_spawnl(&id, (const char *) fname, (const char *) fname, NULL);
     139        if (rc != EOK)
     140                return 0;
    140141       
    141         return res;
     142        return id;
    142143}
    143144
Note: See TracChangeset for help on using the changeset viewer.