Changeset 849ed54 in mainline for uspace/srv/net/tl/tcp/tcp.c


Ignore:
Timestamp:
2010-03-30T18:39:04Z (14 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7553689
Parents:
7d6fe4db
Message:

Networking work:
Split the networking stack into end-user library (libsocket) and two helper libraries (libnet and libnetif).
Don't use over-the-hand compiling and linking, but rather separation of conserns.
There might be still some issues and the non-modular networking architecture is currently broken, but this will be fixed soon.

File:
1 edited

Legend:

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

    r7d6fe4db r849ed54  
    4646#include <ipc/services.h>
    4747
    48 #include "../../err.h"
    49 #include "../../messages.h"
    50 #include "../../modules.h"
    51 
    52 #include "../../structures/dynamic_fifo.h"
    53 #include "../../structures/packet/packet_client.h"
    54 
    55 #include "../../include/checksum.h"
    56 #include "../../include/in.h"
    57 #include "../../include/in6.h"
    58 #include "../../include/inet.h"
    59 #include "../../include/ip_client.h"
    60 #include "../../include/ip_interface.h"
    61 #include "../../include/ip_protocols.h"
    62 #include "../../include/icmp_client.h"
    63 #include "../../include/icmp_interface.h"
    64 #include "../../include/net_interface.h"
    65 #include "../../include/socket_codes.h"
    66 #include "../../include/socket_errno.h"
    67 #include "../../include/tcp_codes.h"
    68 
    69 #include "../../socket/socket_core.h"
    70 #include "../../socket/socket_messages.h"
    71 
    72 #include "../tl_common.h"
    73 #include "../tl_messages.h"
     48#include <net_err.h>
     49#include <net_messages.h>
     50#include <net_modules.h>
     51#include <adt/dynamic_fifo.h>
     52#include <packet/packet_client.h>
     53#include <net_checksum.h>
     54#include <in.h>
     55#include <in6.h>
     56#include <inet.h>
     57#include <ip_client.h>
     58#include <ip_interface.h>
     59#include <ip_protocols.h>
     60#include <icmp_client.h>
     61#include <icmp_interface.h>
     62#include <net_interface.h>
     63#include <socket_codes.h>
     64#include <socket_errno.h>
     65#include <tcp_codes.h>
     66#include <socket_core.h>
     67#include <socket_messages.h>
     68#include <tl_common.h>
     69#include <tl_messages.h>
    7470
    7571#include "tcp.h"
    7672#include "tcp_header.h"
    7773#include "tcp_module.h"
     74
     75/** TCP module name.
     76 */
     77#define NAME    "TCP protocol"
    7878
    7979/** The TCP window default value.
     
    19971997}
    19981998
     1999#ifdef CONFIG_NETWORKING_modular
     2000
     2001#include <tl_standalone.h>
     2002
     2003/** Default thread for new connections.
     2004 *
     2005 *  @param[in] iid The initial message identifier.
     2006 *  @param[in] icall The initial message call structure.
     2007 *
     2008 */
     2009static void tl_client_connection(ipc_callid_t iid, ipc_call_t * icall)
     2010{
     2011        /*
     2012         * Accept the connection
     2013         *  - Answer the first IPC_M_CONNECT_ME_TO call.
     2014         */
     2015        ipc_answer_0(iid, EOK);
     2016       
     2017        while(true) {
     2018                ipc_call_t answer;
     2019                int answer_count;
     2020               
     2021                /* Clear the answer structure */
     2022                refresh_answer(&answer, &answer_count);
     2023               
     2024                /* Fetch the next message */
     2025                ipc_call_t call;
     2026                ipc_callid_t callid = async_get_call(&call);
     2027               
     2028                /* Process the message */
     2029                int res = tl_module_message(callid, &call, &answer, &answer_count);
     2030               
     2031                /* End if said to either by the message or the processing result */
     2032                if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP))
     2033                        return;
     2034               
     2035                /* Answer the message */
     2036                answer_call(callid, res, &answer, answer_count);
     2037        }
     2038}
     2039
     2040/** Starts the module.
     2041 *
     2042 *  @param argc The count of the command line arguments. Ignored parameter.
     2043 *  @param argv The command line parameters. Ignored parameter.
     2044 *
     2045 *  @returns EOK on success.
     2046 *  @returns Other error codes as defined for each specific module start function.
     2047 *
     2048 */
     2049int main(int argc, char *argv[])
     2050{
     2051        ERROR_DECLARE;
     2052       
     2053        /* Print the module label */
     2054        printf("Task %d - %s\n", task_get_id(), NAME);
     2055       
     2056        /* Start the module */
     2057        if (ERROR_OCCURRED(tl_module_start(tl_client_connection))) {
     2058                printf(" - ERROR %i\n", ERROR_CODE);
     2059                return ERROR_CODE;
     2060        }
     2061       
     2062        return EOK;
     2063}
     2064
     2065#endif /* CONFIG_NETWORKING_modular */
     2066
    19992067/** @}
    20002068 */
Note: See TracChangeset for help on using the changeset viewer.