Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tl/tcp/tcp_module.c

    rfb04cba8 r614d065  
    2828
    2929/** @addtogroup tcp
    30  * @{
     30 *  @{
    3131 */
    3232
    3333/** @file
    34  * TCP standalone module implementation.
    35  * Contains skeleton module functions mapping.
    36  * The functions are used by the module skeleton as module specific entry
    37  * points.
    38  * @see module.c
     34 *  TCP standalone module implementation.
     35 *  Contains skeleton module functions mapping.
     36 *  The functions are used by the module skeleton as module specific entry points.
     37 *  @see module.c
    3938 */
    40 
    41 #include "tcp.h"
    42 #include "tcp_module.h"
    4339
    4440#include <async.h>
    4541#include <stdio.h>
    46 #include <errno.h>
     42#include <err.h>
    4743#include <ipc/ipc.h>
    4844#include <ipc/services.h>
     
    5046#include <net/ip_protocols.h>
    5147#include <net/modules.h>
     48
    5249#include <net/packet.h>
    5350#include <net_interface.h>
    54 
    5551#include <ip_interface.h>
    5652#include <tl_local.h>
    5753
    58 /** TCP module global data. */
    59 extern tcp_globals_t tcp_globals;
     54#include "tcp.h"
     55#include "tcp_module.h"
    6056
     57/** TCP module global data.
     58 */
     59extern tcp_globals_t    tcp_globals;
     60
     61/** Starts the TCP module.
     62 *  Initializes the client connection serving function, initializes the module, registers the module service and starts the async manager, processing IPC messages in an infinite loop.
     63 *  @param[in] client_connection The client connection processing function. The module skeleton propagates its own one.
     64 *  @returns EOK on successful module termination.
     65 *  @returns Other error codes as defined for the tcp_initialize() function.
     66 *  @returns Other error codes as defined for the REGISTER_ME() macro function.
     67 */
    6168int tl_module_start_standalone(async_client_conn_t client_connection)
    6269{
    63         ipcarg_t phonehash;
    64         int rc;
    65 
     70        ERROR_DECLARE;
     71       
    6672        async_set_client_connection(client_connection);
    6773        tcp_globals.net_phone = net_connect_module();
    68 
    69         rc = pm_init();
    70         if (rc != EOK)
    71                 return rc;
    72 
    73         rc = tcp_initialize(client_connection);
    74         if (rc != EOK)
    75                 goto out;
    76 
    77         rc = REGISTER_ME(SERVICE_TCP, &phonehash);
    78         if (rc != EOK)
    79                 goto out;
     74        ERROR_PROPAGATE(pm_init());
     75       
     76        ipcarg_t phonehash;
     77        if (ERROR_OCCURRED(tcp_initialize(client_connection))
     78            || ERROR_OCCURRED(REGISTER_ME(SERVICE_TCP, &phonehash))) {
     79                pm_destroy();
     80                return ERROR_CODE;
     81        }
    8082       
    8183        async_manager();
    8284       
    83 out:
    8485        pm_destroy();
    85         return rc;
     86        return EOK;
    8687}
    8788
    88 int tl_module_message_standalone(ipc_callid_t callid, ipc_call_t *call,
    89     ipc_call_t *answer, int *answer_count)
    90 {
     89/** Processes the TCP message.
     90 *  @param[in] callid The message identifier.
     91 *  @param[in] call The message parameters.
     92 *  @param[out] answer The message answer parameters.
     93 *  @param[out] answer_count The last parameter for the actual answer in the answer parameter.
     94 *  @returns EOK on success.
     95 *  @returns Other error codes as defined for the tcp_message() function.
     96 */
     97int tl_module_message_standalone(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){
    9198        return tcp_message_standalone(callid, call, answer, answer_count);
    9299}
Note: See TracChangeset for help on using the changeset viewer.