Ignore:
File:
1 edited

Legend:

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

    r6b82009 r61bfc370  
    3939#include <unistd.h>
    4040#include <errno.h>
     41
     42#include <ipc/services.h>
     43
    4144#include <net/modules.h>
     45
    4246#include <adt/generic_char_map.h>
    4347#include <adt/module_map.h>
     
    4549GENERIC_CHAR_MAP_IMPLEMENT(modules, module_t)
    4650
    47 /** Add module to the module map.
     51/** Adds module to the module map.
    4852 *
    49  * @param[out] module         Module structure added.
    50  * @param[in]  modules        Module map.
    51  * @param[in]  name           Module name.
    52  * @param[in]  filename       Full path filename.
    53  * @param[in]  service        Module service.
    54  * @param[in]  task_id        Module current task identifier.
    55  *                            Zero means not running.
    56  * @param[in]  connect_module Module connecting function.
    57  *
    58  * @return EOK on success.
    59  * @return ENOMEM if there is not enough memory left.
    60  *
     53 * @param[out] module   The module structure added.
     54 * @param[in] modules   The module map.
     55 * @param[in] name      The module name.
     56 * @param[in] filename  The full path filename.
     57 * @param[in] service   The module service.
     58 * @param[in] task_id   The module current task identifier. Zero means not
     59 *                      running.
     60 * @param[in] connect_module The module connecting function.
     61 * @return              EOK on success.
     62 * @return              ENOMEM if there is not enough memory left.
    6163 */
    62 int add_module(module_t **module, modules_t *modules, const uint8_t *name,
     64int
     65add_module(module_t **module, modules_t *modules, const uint8_t *name,
    6366    const uint8_t *filename, services_t service, task_id_t task_id,
    6467    connect_module_t connect_module)
     
    6669        module_t *tmp_module;
    6770        int rc;
    68        
     71
    6972        tmp_module = (module_t *) malloc(sizeof(module_t));
    7073        if (!tmp_module)
    7174                return ENOMEM;
    72        
     75
    7376        tmp_module->task_id = task_id;
    74         tmp_module->sess = NULL;
     77        tmp_module->phone = 0;
    7578        tmp_module->usage = 0;
    7679        tmp_module->name = name;
     
    7881        tmp_module->service = service;
    7982        tmp_module->connect_module = connect_module;
    80        
     83
    8184        rc = modules_add(modules, tmp_module->name, 0, tmp_module);
    8285        if (rc != EOK) {
     
    8487                return rc;
    8588        }
    86        
    8789        if (module)
    8890                *module = tmp_module;
    89        
     91
    9092        return EOK;
    9193}
    9294
    93 /** Search and return the specified module.
     95/** Searches and returns the specified module.
    9496 *
    9597 * If the module is not running, the module filaname is spawned.
    9698 * If the module is not connected, the connect_function is called.
    9799 *
    98  * @param[in] modules Module map.
    99  * @param[in] name    Module name.
    100  *
    101  * @return The running module found. It does not have to be
    102  *         connected.
    103  * @return NULL if there is no such module.
    104  *
     100 * @param[in] modules   The module map.
     101 * @param[in] name      The module name.
     102 * @return              The running module found. It does not have to be
     103 *                      connected.
     104 * @return              NULL if there is no such module.
    105105 */
    106106module_t *get_running_module(modules_t *modules, uint8_t *name)
    107107{
    108         module_t *module = modules_find(modules, name, 0);
     108        module_t *module;
     109
     110        module = modules_find(modules, name, 0);
    109111        if (!module)
    110112                return NULL;
    111        
     113
    112114        if (!module->task_id) {
    113115                module->task_id = net_spawn(module->filename);
     
    115117                        return NULL;
    116118        }
    117        
    118         if (!module->sess)
    119                 module->sess = module->connect_module(module->service);
    120        
     119        if (!module->phone)
     120                module->phone = module->connect_module(module->service);
     121
    121122        return module;
    122123}
Note: See TracChangeset for help on using the changeset viewer.