Changeset f51f193 in mainline for uspace/lib/net/adt/module_map.c


Ignore:
Timestamp:
2011-07-12T03:00:14Z (13 years ago)
Author:
Petr Koupy <petr.koupy@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6817eba
Parents:
eca52a8 (diff), 026793d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes.

File:
1 edited

Legend:

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

    reca52a8 rf51f193  
    3939#include <unistd.h>
    4040#include <errno.h>
    41 
    42 #include <ipc/services.h>
    43 
    4441#include <net/modules.h>
    45 
    4642#include <adt/generic_char_map.h>
    4743#include <adt/module_map.h>
     
    4945GENERIC_CHAR_MAP_IMPLEMENT(modules, module_t)
    5046
    51 /** Adds module to the module map.
     47/** Add module to the module map.
    5248 *
    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.
     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 *
    6361 */
    64 int
    65 add_module(module_t **module, modules_t *modules, const uint8_t *name,
     62int add_module(module_t **module, modules_t *modules, const uint8_t *name,
    6663    const uint8_t *filename, services_t service, task_id_t task_id,
    6764    connect_module_t connect_module)
     
    6966        module_t *tmp_module;
    7067        int rc;
    71 
     68       
    7269        tmp_module = (module_t *) malloc(sizeof(module_t));
    7370        if (!tmp_module)
    7471                return ENOMEM;
    75 
     72       
    7673        tmp_module->task_id = task_id;
    77         tmp_module->phone = 0;
     74        tmp_module->sess = NULL;
    7875        tmp_module->usage = 0;
    7976        tmp_module->name = name;
     
    8178        tmp_module->service = service;
    8279        tmp_module->connect_module = connect_module;
    83 
     80       
    8481        rc = modules_add(modules, tmp_module->name, 0, tmp_module);
    8582        if (rc != EOK) {
     
    8784                return rc;
    8885        }
     86       
    8987        if (module)
    9088                *module = tmp_module;
    91 
     89       
    9290        return EOK;
    9391}
    9492
    95 /** Searches and returns the specified module.
     93/** Search and return the specified module.
    9694 *
    9795 * If the module is not running, the module filaname is spawned.
    9896 * If the module is not connected, the connect_function is called.
    9997 *
    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.
     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 *
    105105 */
    106106module_t *get_running_module(modules_t *modules, uint8_t *name)
    107107{
    108         module_t *module;
    109 
    110         module = modules_find(modules, name, 0);
     108        module_t *module = modules_find(modules, name, 0);
    111109        if (!module)
    112110                return NULL;
    113 
     111       
    114112        if (!module->task_id) {
    115113                module->task_id = net_spawn(module->filename);
     
    117115                        return NULL;
    118116        }
    119         if (!module->phone)
    120                 module->phone = module->connect_module(module->service);
    121 
     117       
     118        if (!module->sess)
     119                module->sess = module->connect_module(module->service);
     120       
    122121        return module;
    123122}
Note: See TracChangeset for help on using the changeset viewer.