Changes in / [9f10660f:3aae4e8] in mainline
- Files:
-
- 137 added
- 119 deleted
- 58 edited
Legend:
- Unmodified
- Added
- Removed
-
HelenOS.config
r9f10660f r3aae4e8 345 345 346 346 % Simics SMP Hack 347 ! [PROCESSOR=sun4v ] CONFIG_SIMICS_SMP_HACK (y/n)347 ! [PROCESSOR=sun4v&CONFIG_SMP=y] CONFIG_SIMICS_SMP_HACK (n/y) 348 348 349 349 % Support for userspace debuggers … … 523 523 524 524 % Networking architecture 525 @ "none" No networking526 525 @ "modular" Modular 527 526 @ "module" One module 528 527 ! CONFIG_NETWORKING (choice) 529 528 530 % DP8390 (NE2k) network interface531 ! [CONFIG_NETWORKING=modular|CONFIG_NETWORKING=module] CONFIG_NETIF_DP8390 (y/n)532 -
boot/Makefile.common
r9f10660f r3aae4e8 58 58 $(USPACEDIR)/srv/fs/tmpfs/tmpfs \ 59 59 $(USPACEDIR)/srv/fs/fat/fat \ 60 $(USPACEDIR)/srv/taskmon/taskmon 60 $(USPACEDIR)/srv/taskmon/taskmon \ 61 $(USPACEDIR)/srv/hw/netif/dp8390/dp8390 \ 62 $(USPACEDIR)/srv/net/net/net \ 63 $(USPACEDIR)/srv/net/netstart/netstart \ 64 $(USPACEDIR)/srv/net/netif/lo/lo \ 65 $(USPACEDIR)/srv/net/nil/eth/eth \ 66 $(USPACEDIR)/srv/net/nil/nildummy/nildummy 61 67 62 68 RD_APPS = \ … … 71 77 $(USPACEDIR)/app/tester/tester \ 72 78 $(USPACEDIR)/app/tetris/tetris \ 73 $(USPACEDIR)/app/trace/trace 79 $(USPACEDIR)/app/trace/trace \ 80 $(USPACEDIR)/app/netecho/netecho \ 81 $(USPACEDIR)/app/ping/ping \ 82 $(USPACEDIR)/app/nettest1/nettest1 \ 83 $(USPACEDIR)/app/nettest2/nettest2 74 84 75 85 COMPONENTS = \ … … 88 98 endif 89 99 90 CFG = 100 NET_CFG = \ 101 $(USPACEDIR)/srv/net/cfg/$(CONFIG_NETWORKING)/general \ 102 $(USPACEDIR)/srv/net/cfg/$(CONFIG_NETWORKING)/lo \ 103 $(USPACEDIR)/srv/net/cfg/$(CONFIG_NETWORKING)/ne2k 91 104 92 NET_SRVS = \ 93 $(USPACEDIR)/srv/net/net/net \ 94 $(USPACEDIR)/srv/net/netif/lo/lo \ 95 $(USPACEDIR)/srv/net/nil/eth/eth \ 96 $(USPACEDIR)/srv/net/nil/nildummy/nildummy \ 97 $(USPACEDIR)/srv/net/app/echo/echo 98 99 NET_APPS = \ 100 $(USPACEDIR)/srv/net/net/start/netstart \ 101 $(USPACEDIR)/srv/net/app/ping/ping \ 102 $(USPACEDIR)/srv/net/app/nettest1/nettest1 \ 103 $(USPACEDIR)/srv/net/app/nettest2/nettest2 104 105 ifneq ($(CONFIG_NETWORKING),none) 106 NET_CFG = \ 107 $(USPACEDIR)/srv/net/cfg/$(CONFIG_NETWORKING)/general \ 108 $(USPACEDIR)/srv/net/cfg/$(CONFIG_NETWORKING)/lo 109 110 ifeq ($(CONFIG_NETIF_DP8390),y) 111 NET_SRVS += $(USPACEDIR)/srv/net/netif/dp8390/dp8390 112 NET_CFG += $(USPACEDIR)/srv/net/cfg/$(CONFIG_NETWORKING)/ne2k 113 endif 114 115 ifeq ($(CONFIG_NETWORKING),module) 116 RD_APPS += $(NET_APPS) 117 RD_SRVS += $(NET_SRVS) 118 CFG += $(NET_CFG) 119 endif 120 121 ifeq ($(CONFIG_NETWORKING),modular) 122 RD_APPS += $(NET_APPS) 123 RD_SRVS += $(NET_SRVS) 124 RD_SRVS += \ 125 $(USPACEDIR)/srv/net/il/ip/ip \ 126 $(USPACEDIR)/srv/net/il/arp/arp \ 127 $(USPACEDIR)/srv/net/tl/udp/udp \ 128 $(USPACEDIR)/srv/net/tl/tcp/tcp \ 129 $(USPACEDIR)/srv/net/tl/icmp/icmp 130 CFG += $(NET_CFG) 131 endif 105 ifeq ($(CONFIG_NETWORKING),modular) 106 RD_SRVS += \ 107 $(USPACEDIR)/srv/net/il/ip/ip \ 108 $(USPACEDIR)/srv/net/il/arp/arp \ 109 $(USPACEDIR)/srv/net/tl/udp/udp \ 110 $(USPACEDIR)/srv/net/tl/tcp/tcp \ 111 $(USPACEDIR)/srv/net/tl/icmp/icmp 132 112 endif -
defaults/arm32/Makefile.config
r9f10660f r3aae4e8 39 39 40 40 # Default networking architecture 41 CONFIG_NETWORKING = none41 CONFIG_NETWORKING = modular -
defaults/mips32/Makefile.config
r9f10660f r3aae4e8 45 45 46 46 # Default networking architecture 47 CONFIG_NETWORKING = none47 CONFIG_NETWORKING = modular -
defaults/ppc32/Makefile.config
r9f10660f r3aae4e8 45 45 46 46 # Default networking architecture 47 CONFIG_NETWORKING = none47 CONFIG_NETWORKING = modular -
defaults/sparc64/sun4v/Makefile.config
r9f10660f r3aae4e8 12 12 13 13 CONFIG_FB = n 14 15 CONFIG_NETWORKING = none -
defaults/special/Makefile.config
r9f10660f r3aae4e8 28 28 # Load disk drivers on startup 29 29 CONFIG_START_BD = n 30 31 # Default networking architecture 32 CONFIG_NETWORKING = modular -
defaults/special/abs32le/Makefile.config
r9f10660f r3aae4e8 4 4 # Cross-compiler target 5 5 CROSS_TARGET = ia32 6 7 # Networking architecture8 CONFIG_NETWORKING = none -
kernel/arch/amd64/src/amd64.c
r9f10660f r3aae4e8 228 228 (uintptr_t) I8042_BASE); 229 229 #endif 230 231 #ifdef CONFIG_NETIF_DP8390 230 231 /* 232 * This nasty hack should also go away ASAP. 233 */ 232 234 trap_virtual_enable_irqs(1 << IRQ_DP8390); 233 235 sysinfo_set_item_val("netif.dp8390.inr", NULL, IRQ_DP8390); 234 #endif235 236 } 236 237 -
kernel/arch/ia32/src/ia32.c
r9f10660f r3aae4e8 186 186 (uintptr_t) I8042_BASE); 187 187 #endif 188 189 #ifdef CONFIG_NETIF_DP8390 188 189 /* 190 * This nasty hack should also go away ASAP. 191 */ 190 192 trap_virtual_enable_irqs(1 << IRQ_DP8390); 191 193 sysinfo_set_item_val("netif.dp8390.inr", NULL, IRQ_DP8390); 192 #endif193 194 } 194 195 -
kernel/arch/ia64/src/ia64.c
r9f10660f r3aae4e8 213 213 #endif 214 214 215 #ifdef CONFIG_NETIF_DP8390216 215 sysinfo_set_item_val("netif.dp8390.inr", NULL, IRQ_DP8390); 217 #endif218 216 219 217 sysinfo_set_item_val("ia64_iospace", NULL, true); -
kernel/arch/sparc64/src/smp/sun4v/smp.c
r9f10660f r3aae4e8 54 54 #include <arch/smp/sun4v/smp.h> 55 55 #include <str.h> 56 #include <errno.h> 56 57 57 58 /** hypervisor code of the "running" state of the CPU */ -
uspace/Makefile
r9f10660f r3aae4e8 65 65 srv/hid/fb \ 66 66 srv/hid/kbd \ 67 srv/hw/char/i8042 67 srv/hw/char/i8042 \ 68 srv/hw/netif/dp8390 68 69 69 70 ## Platform-specific hardware support … … 95 96 # 96 97 97 ifeq ($(CONFIG_NETIF_DP8390),y)98 DIRS += srv/net/netif/dp839099 endif100 101 98 NETWORKING_COMMON = \ 102 99 srv/net/netif/lo \ … … 104 101 srv/net/nil/nildummy \ 105 102 srv/net/net \ 106 srv/net/net/start \ 107 srv/net/socket \ 108 srv/net/app/echo \ 109 srv/net/app/ping \ 110 srv/net/app/nettest1 \ 111 srv/net/app/nettest2 103 srv/net/netstart \ 104 app/netecho \ 105 app/nettest1 \ 106 app/nettest2 \ 107 app/ping 112 108 113 109 NETWORKING_MODULAR = \ … … 128 124 lib/softint \ 129 125 lib/softfloat \ 126 lib/socket \ 127 lib/net \ 128 lib/netif 130 129 131 130 ifeq ($(UARCH),amd64) … … 149 148 endif 150 149 151 ifeq ($(CONFIG_NETWORKING),none)152 BUILDS := $(addsuffix .build,$(DIRS))153 endif154 155 150 CLEANS := $(addsuffix .clean,$(DIRS)) $(addsuffix .clean,$(NETWORKING_COMMON)) $(addsuffix .clean,$(NETWORKING_MODULAR)) $(addsuffix .clean,$(LIBS)) $(addsuffix .clean,$(LIBC)) 156 151 -
uspace/Makefile.common
r9f10660f r3aae4e8 77 77 78 78 LIB_PREFIX = $(USPACE_PREFIX)/lib 79 LIBC_PREFIX = $(USPACE_PREFIX)/lib/c80 LIBBLOCK_PREFIX = $(USPACE_PREFIX)/lib/block81 LIBFS_PREFIX = $(USPACE_PREFIX)/lib/fs82 LIBPCI_PREFIX = $(USPACE_PREFIX)/lib/pci83 SOFTFLOAT_PREFIX = $(USPACE_PREFIX)/lib/softfloat84 SOFTINT_PREFIX = $(USPACE_PREFIX)/lib/softint85 79 86 BASE_LIBS = $(LIBC_PREFIX)/libc.a $(SOFTINT_PREFIX)/libsoftint.a 80 LIBC_PREFIX = $(LIB_PREFIX)/c 81 LIBSOFTFLOAT_PREFIX = $(LIB_PREFIX)/softfloat 82 LIBSOFTINT_PREFIX = $(LIB_PREFIX)/softint 83 84 LIBBLOCK_PREFIX = $(LIB_PREFIX)/block 85 LIBFS_PREFIX = $(LIB_PREFIX)/fs 86 LIBCLUI_PREFIX = $(LIB_PREFIX)/clui 87 88 LIBPCI_PREFIX = $(LIB_PREFIX)/pci 89 90 LIBSOCKET_PREFIX = $(LIB_PREFIX)/socket 91 LIBNET_PREFIX = $(LIB_PREFIX)/net 92 LIBNETIF_PREFIX = $(LIB_PREFIX)/netif 93 94 BASE_LIBS = $(LIBC_PREFIX)/libc.a $(LIBSOFTINT_PREFIX)/libsoftint.a 87 95 88 96 LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld -
uspace/app/bdsh/Makefile
r9f10660f r3aae4e8 29 29 30 30 USPACE_PREFIX = ../.. 31 LIBS = $(LIB _PREFIX)/block/libblock.a $(LIB_PREFIX)/clui/libclui.a32 EXTRA_CFLAGS = -I$(LIB _PREFIX)/block -I$(LIB_PREFIX)/clui-I. -Icmds/ \33 31 LIBS = $(LIBBLOCK_PREFIX)/libblock.a $(LIBCLUI_PREFIX)/libclui.a 32 EXTRA_CFLAGS = -I$(LIBBLOCK_PREFIX) -I$(LIBCLUI_PREFIX) -I. -Icmds/ \ 33 -Icmds/builtins -Icmds/modules 34 34 BINARY = bdsh 35 35 -
uspace/app/bdsh/input.c
r9f10660f r3aae4e8 50 50 #include "errors.h" 51 51 #include "exec.h" 52 53 extern volatile unsigned int cli_quit; 52 54 53 55 /** Text input field. */ … … 107 109 { 108 110 char *str; 111 int rc; 109 112 110 113 fflush(stdout); … … 114 117 console_set_style(fphone(stdout), STYLE_NORMAL); 115 118 116 str = tinput_read(tinput); 119 rc = tinput_read(tinput, &str); 120 if (rc == ENOENT) { 121 /* User requested exit */ 122 cli_quit = 1; 123 putchar('\n'); 124 return; 125 } 126 127 if (rc != EOK) { 128 /* Error in communication with console */ 129 return; 130 } 117 131 118 132 /* Check for empty input. */ -
uspace/app/bdsh/scli.c
r9f10660f r3aae4e8 100 100 } 101 101 } 102 goto finit;103 102 104 finit: 103 printf("Leaving %s.\n", progname); 104 105 105 cli_finit(&usr); 106 106 return ret; -
uspace/app/sbi/Makefile
r9f10660f r3aae4e8 28 28 29 29 USPACE_PREFIX = ../.. 30 LIBS = $(LIB _PREFIX)/clui/libclui.a31 EXTRA_CFLAGS = -D__HELENOS__ -I$(LIB _PREFIX)/clui30 LIBS = $(LIBCLUI_PREFIX)/libclui.a 31 EXTRA_CFLAGS = -D__HELENOS__ -I$(LIBCLUI_PREFIX) 32 32 33 33 BINARY = sbi -
uspace/app/sbi/src/os/helenos.c
r9f10660f r3aae4e8 105 105 { 106 106 char *line; 107 int rc; 107 108 108 109 if (tinput == NULL) { … … 112 113 } 113 114 114 line = tinput_read(tinput); 115 if (line == NULL) 115 rc = tinput_read(tinput, &line); 116 if (rc == ENOENT) { 117 /* User-requested abort */ 118 *ptr = os_str_dup(""); 119 return EOK; 120 } 121 122 if (rc != EOK) { 123 /* Error in communication with console */ 116 124 return EIO; 125 } 117 126 118 127 /* XXX Input module needs trailing newline to keep going. */ -
uspace/lib/clui/tinput.c
r9f10660f r3aae4e8 513 513 } 514 514 515 /** Read in one line of input. */ 516 char *tinput_read(tinput_t *ti) 515 /** Read in one line of input. 516 * 517 * @param ti Text input. 518 * @param dstr Place to save pointer to new string. 519 * @return EOK on success, ENOENT if user requested abort, EIO 520 * if communication with console failed. 521 */ 522 int tinput_read(tinput_t *ti, char **dstr) 517 523 { 518 524 console_event_t ev; … … 522 528 523 529 if (console_get_size(fphone(stdin), &ti->con_cols, &ti->con_rows) != EOK) 524 return NULL;530 return EIO; 525 531 if (console_get_pos(fphone(stdin), &ti->col0, &ti->row0) != EOK) 526 return NULL;532 return EIO; 527 533 528 534 ti->pos = ti->sel_start = 0; … … 530 536 ti->buffer[0] = '\0'; 531 537 ti->done = false; 538 ti->exit_clui = false; 532 539 533 540 while (!ti->done) { 534 541 fflush(stdout); 535 542 if (!console_get_event(fphone(stdin), &ev)) 536 return NULL;543 return EIO; 537 544 538 545 if (ev.type != KEY_PRESS) … … 565 572 } 566 573 574 if (ti->exit_clui) 575 return ENOENT; 576 567 577 ti->pos = ti->nc; 568 578 tinput_position_caret(ti); … … 575 585 ti->hpos = 0; 576 586 577 return str; 587 *dstr = str; 588 return EOK; 578 589 } 579 590 … … 606 617 case KC_A: 607 618 tinput_sel_all(ti); 619 break; 620 case KC_Q: 621 /* Signal libary client to quit interactive loop. */ 622 ti->done = true; 623 ti->exit_clui = true; 608 624 break; 609 625 default: -
uspace/lib/clui/tinput.h
r9f10660f r3aae4e8 64 64 /** Current position in history */ 65 65 int hpos; 66 /** Exit flag*/66 /** @c true if finished with this line (return to caller) */ 67 67 bool done; 68 /** @c true if user requested to abort interactive loop */ 69 bool exit_clui; 68 70 } tinput_t; 69 71 70 72 extern tinput_t *tinput_new(void); 71 73 extern void tinput_destroy(tinput_t *ti); 72 extern char *tinput_read(tinput_t *ti);74 extern int tinput_read(tinput_t *ti, char **str); 73 75 74 76 #endif -
uspace/srv/net/il/arp/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ../..31 30 USPACE_PREFIX = ../../../.. 31 LIBS = $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 32 EXTRA_CFLAGS = -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 32 33 BINARY = arp 33 34 34 35 SOURCES = \ 35 36 arp.c \ 36 arp_module.c \ 37 $(NET_BASE)/module.c \ 38 $(NET_BASE)/modules.c \ 39 $(NET_BASE)/net/net_remote.c \ 40 $(NET_BASE)/nil/nil_remote.c \ 41 $(NET_BASE)/structures/char_map.c \ 42 $(NET_BASE)/structures/measured_strings.c \ 43 $(NET_BASE)/structures/packet/packet.c \ 44 $(NET_BASE)/structures/packet/packet_client.c \ 45 $(NET_BASE)/structures/packet/packet_remote.c 37 arp_module.c 46 38 47 39 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/il/arp/arp.c
r9f10660f r3aae4e8 43 43 #include <str.h> 44 44 #include <task.h> 45 46 45 #include <ipc/ipc.h> 47 46 #include <ipc/services.h> 48 47 49 #include "../../err.h" 50 #include "../../messages.h" 51 #include "../../modules.h" 52 53 #include "../../include/byteorder.h" 54 #include "../../include/device.h" 55 #include "../../include/arp_interface.h" 56 #include "../../include/nil_interface.h" 57 #include "../../include/protocol_map.h" 58 59 #include "../../structures/measured_strings.h" 60 #include "../../structures/packet/packet.h" 61 #include "../../structures/packet/packet_client.h" 62 63 #include "../il_messages.h" 48 #include <net_err.h> 49 #include <net_messages.h> 50 #include <net_modules.h> 51 #include <net_byteorder.h> 52 #include <net_device.h> 53 #include <arp_interface.h> 54 #include <nil_interface.h> 55 #include <protocol_map.h> 56 #include <adt/measured_strings.h> 57 #include <packet/packet.h> 58 #include <packet/packet_client.h> 59 #include <il_messages.h> 60 #include <arp_messages.h> 64 61 65 62 #include "arp.h" … … 67 64 #include "arp_oc.h" 68 65 #include "arp_module.h" 69 #include "arp_messages.h" 66 67 68 /** ARP module name. 69 */ 70 #define NAME "ARP protocol" 70 71 71 72 /** ARP global data. … … 618 619 } 619 620 621 #ifdef CONFIG_NETWORKING_modular 622 623 #include <il_standalone.h> 624 625 /** Default thread for new connections. 626 * 627 * @param[in] iid The initial message identifier. 628 * @param[in] icall The initial message call structure. 629 * 630 */ 631 static void il_client_connection(ipc_callid_t iid, ipc_call_t * icall) 632 { 633 /* 634 * Accept the connection 635 * - Answer the first IPC_M_CONNECT_ME_TO call. 636 */ 637 ipc_answer_0(iid, EOK); 638 639 while(true) { 640 ipc_call_t answer; 641 int answer_count; 642 643 /* Clear the answer structure */ 644 refresh_answer(&answer, &answer_count); 645 646 /* Fetch the next message */ 647 ipc_call_t call; 648 ipc_callid_t callid = async_get_call(&call); 649 650 /* Process the message */ 651 int res = il_module_message(callid, &call, &answer, &answer_count); 652 653 /* End if said to either by the message or the processing result */ 654 if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP)) 655 return; 656 657 /* Answer the message */ 658 answer_call(callid, res, &answer, answer_count); 659 } 660 } 661 662 /** Starts the module. 663 * 664 * @param argc The count of the command line arguments. Ignored parameter. 665 * @param argv The command line parameters. Ignored parameter. 666 * 667 * @returns EOK on success. 668 * @returns Other error codes as defined for each specific module start function. 669 * 670 */ 671 int main(int argc, char *argv[]) 672 { 673 ERROR_DECLARE; 674 675 /* Print the module label */ 676 printf("Task %d - %s\n", task_get_id(), NAME); 677 678 /* Start the module */ 679 if (ERROR_OCCURRED(il_module_start(il_client_connection))) { 680 printf(" - ERROR %i\n", ERROR_CODE); 681 return ERROR_CODE; 682 } 683 684 return EOK; 685 } 686 687 #endif /* CONFIG_NETWORKING_modular */ 688 620 689 /** @} 621 690 */ -
uspace/srv/net/il/arp/arp.h
r9f10660f r3aae4e8 43 43 #include <ipc/services.h> 44 44 45 #include "../../include/device.h" 46 #include "../../include/hardware.h" 47 48 #include "../../structures/generic_char_map.h" 49 #include "../../structures/int_map.h" 50 #include "../../structures/measured_strings.h" 45 #include <net_device.h> 46 #include <net_hardware.h> 47 #include <adt/generic_char_map.h> 48 #include <adt/int_map.h> 49 #include <adt/measured_strings.h> 51 50 52 51 -
uspace/srv/net/il/arp/arp_module.c
r9f10660f r3aae4e8 44 44 #include <ipc/services.h> 45 45 46 #include "../../err.h" 47 #include "../../modules.h" 48 49 #include "../../include/net_interface.h" 50 51 #include "../../structures/packet/packet.h" 46 #include <net_err.h> 47 #include <net_modules.h> 48 #include <net_interface.h> 49 #include <packet/packet.h> 50 #include <il_standalone.h> 52 51 53 52 #include "arp.h" 54 53 #include "arp_module.h" 55 56 /** ARP module name.57 */58 #define NAME "ARP protocol"59 54 60 55 /** ARP module global data. … … 70 65 * @returns Other error codes as defined for the arp_message() function. 71 66 */ 72 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 73 74 /** Prints the module name. 75 * @see NAME 76 */ 77 void module_print_name(void); 67 int il_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 68 return arp_message(callid, call, answer, answer_count); 69 } 78 70 79 71 /** Starts the ARP module. … … 84 76 * @returns Other error codes as defined for the REGISTER_ME() macro function. 85 77 */ 86 int module_start(async_client_conn_t client_connection); 87 88 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 89 return arp_message(callid, call, answer, answer_count); 90 } 91 92 void module_print_name(void){ 93 printf("%s", NAME); 94 } 95 96 int module_start(async_client_conn_t client_connection){ 78 int il_module_start(async_client_conn_t client_connection){ 97 79 ERROR_DECLARE; 98 80 -
uspace/srv/net/il/ip/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ../..31 30 USPACE_PREFIX = ../../../.. 31 LIBS = $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 32 EXTRA_CFLAGS = -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 32 33 BINARY = ip 33 34 34 35 SOURCES = \ 35 36 ip.c \ 36 ip_client.c \ 37 ip_module.c \ 38 $(NET_BASE)/checksum.c \ 39 $(NET_BASE)/inet.c \ 40 $(NET_BASE)/module.c \ 41 $(NET_BASE)/modules.c \ 42 $(NET_BASE)/il/arp/arp_remote.c \ 43 $(NET_BASE)/nil/nil_remote.c \ 44 $(NET_BASE)/net/net_remote.c \ 45 $(NET_BASE)/tl/icmp/icmp_client.c \ 46 $(NET_BASE)/tl/icmp/icmp_common.c \ 47 $(NET_BASE)/tl/icmp/icmp_remote.c \ 48 $(NET_BASE)/structures/char_map.c \ 49 $(NET_BASE)/structures/measured_strings.c \ 50 $(NET_BASE)/structures/module_map.c \ 51 $(NET_BASE)/structures/packet/packet.c \ 52 $(NET_BASE)/structures/packet/packet_client.c \ 53 $(NET_BASE)/structures/packet/packet_remote.c 37 ip_module.c 54 38 55 39 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/il/ip/ip.c
r9f10660f r3aae4e8 41 41 #include <stdio.h> 42 42 #include <str.h> 43 44 43 #include <ipc/ipc.h> 45 44 #include <ipc/services.h> 46 47 45 #include <sys/types.h> 48 46 49 #include "../../err.h" 50 #include "../../messages.h" 51 #include "../../modules.h" 52 53 #include "../../include/arp_interface.h" 54 #include "../../include/byteorder.h" 55 #include "../../include/checksum.h" 56 #include "../../include/device.h" 57 #include "../../include/icmp_client.h" 58 #include "../../include/icmp_codes.h" 59 #include "../../include/icmp_interface.h" 60 #include "../../include/il_interface.h" 61 #include "../../include/in.h" 62 #include "../../include/in6.h" 63 #include "../../include/inet.h" 64 #include "../../include/ip_client.h" 65 #include "../../include/ip_interface.h" 66 #include "../../include/net_interface.h" 67 #include "../../include/nil_interface.h" 68 #include "../../include/tl_interface.h" 69 #include "../../include/socket_codes.h" 70 #include "../../include/socket_errno.h" 71 #include "../../structures/measured_strings.h" 72 #include "../../structures/module_map.h" 73 #include "../../structures/packet/packet_client.h" 74 75 #include "../../nil/nil_messages.h" 76 77 #include "../il_messages.h" 47 #include <net_err.h> 48 #include <net_messages.h> 49 #include <net_modules.h> 50 #include <arp_interface.h> 51 #include <net_byteorder.h> 52 #include <net_checksum.h> 53 #include <net_device.h> 54 #include <icmp_client.h> 55 #include <icmp_codes.h> 56 #include <icmp_interface.h> 57 #include <il_interface.h> 58 #include <in.h> 59 #include <in6.h> 60 #include <inet.h> 61 #include <ip_client.h> 62 #include <ip_interface.h> 63 #include <net_interface.h> 64 #include <nil_interface.h> 65 #include <tl_interface.h> 66 #include <socket_codes.h> 67 #include <socket_errno.h> 68 #include <adt/measured_strings.h> 69 #include <adt/module_map.h> 70 #include <packet/packet_client.h> 71 #include <nil_messages.h> 72 #include <il_messages.h> 78 73 79 74 #include "ip.h" … … 81 76 #include "ip_messages.h" 82 77 #include "ip_module.h" 78 79 /** IP module name. 80 */ 81 #define NAME "IP protocol" 83 82 84 83 /** IP version 4. … … 1624 1623 } 1625 1624 1625 #ifdef CONFIG_NETWORKING_modular 1626 1627 #include <il_standalone.h> 1628 1629 /** Default thread for new connections. 1630 * 1631 * @param[in] iid The initial message identifier. 1632 * @param[in] icall The initial message call structure. 1633 * 1634 */ 1635 static void il_client_connection(ipc_callid_t iid, ipc_call_t * icall) 1636 { 1637 /* 1638 * Accept the connection 1639 * - Answer the first IPC_M_CONNECT_ME_TO call. 1640 */ 1641 ipc_answer_0(iid, EOK); 1642 1643 while(true) { 1644 ipc_call_t answer; 1645 int answer_count; 1646 1647 /* Clear the answer structure */ 1648 refresh_answer(&answer, &answer_count); 1649 1650 /* Fetch the next message */ 1651 ipc_call_t call; 1652 ipc_callid_t callid = async_get_call(&call); 1653 1654 /* Process the message */ 1655 int res = il_module_message(callid, &call, &answer, &answer_count); 1656 1657 /* End if said to either by the message or the processing result */ 1658 if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP)) 1659 return; 1660 1661 /* Answer the message */ 1662 answer_call(callid, res, &answer, answer_count); 1663 } 1664 } 1665 1666 /** Starts the module. 1667 * 1668 * @param argc The count of the command line arguments. Ignored parameter. 1669 * @param argv The command line parameters. Ignored parameter. 1670 * 1671 * @returns EOK on success. 1672 * @returns Other error codes as defined for each specific module start function. 1673 * 1674 */ 1675 int main(int argc, char *argv[]) 1676 { 1677 ERROR_DECLARE; 1678 1679 /* Print the module label */ 1680 printf("Task %d - %s\n", task_get_id(), NAME); 1681 1682 /* Start the module */ 1683 if (ERROR_OCCURRED(il_module_start(il_client_connection))) { 1684 printf(" - ERROR %i\n", ERROR_CODE); 1685 return ERROR_CODE; 1686 } 1687 1688 return EOK; 1689 } 1690 1691 #endif /* CONFIG_NETWORKING_modular */ 1692 1626 1693 /** @} 1627 1694 */ -
uspace/srv/net/il/ip/ip.h
r9f10660f r3aae4e8 39 39 40 40 #include <fibril_synch.h> 41 42 41 #include <ipc/ipc.h> 43 42 #include <ipc/services.h> 44 43 45 #include "../../include/device.h" 46 #include "../../include/inet.h" 47 #include "../../include/ip_interface.h" 48 49 #include "../../structures/int_map.h" 50 #include "../../structures/generic_field.h" 51 #include "../../structures/module_map.h" 44 #include <net_device.h> 45 #include <inet.h> 46 #include <ip_interface.h> 47 #include <adt/int_map.h> 48 #include <adt/generic_field.h> 49 #include <adt/module_map.h> 52 50 53 51 /** Type definition of the IP global data. -
uspace/srv/net/il/ip/ip_module.c
r9f10660f r3aae4e8 40 40 #include <async.h> 41 41 #include <stdio.h> 42 43 42 #include <ipc/ipc.h> 44 43 #include <ipc/services.h> 45 44 46 #include "../../err.h" 47 #include "../../modules.h" 48 49 #include "../../include/net_interface.h" 50 51 #include "../../structures/packet/packet.h" 45 #include <net_err.h> 46 #include <net_modules.h> 47 #include <net_interface.h> 48 #include <packet/packet.h> 49 #include <il_standalone.h> 52 50 53 51 #include "ip.h" 54 52 #include "ip_module.h" 55 56 /** IP module name.57 */58 #define NAME "IP protocol"59 53 60 54 /** IP module global data. … … 70 64 * @returns Other error codes as defined for the ip_message() function. 71 65 */ 72 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 73 74 /** Prints the module name. 75 * @see NAME 76 */ 77 void module_print_name(void); 66 int il_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 67 return ip_message(callid, call, answer, answer_count); 68 } 78 69 79 70 /** Starts the IP module. … … 84 75 * @returns Other error codes as defined for the REGISTER_ME() macro function. 85 76 */ 86 int module_start(async_client_conn_t client_connection); 87 88 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 89 return ip_message(callid, call, answer, answer_count); 90 } 91 92 void module_print_name(void){ 93 printf("%s", NAME); 94 } 95 96 int module_start(async_client_conn_t client_connection){ 77 int il_module_start(async_client_conn_t client_connection){ 97 78 ERROR_DECLARE; 98 79 -
uspace/srv/net/net/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ..31 30 USPACE_PREFIX = ../../.. 32 31 ROOT_PATH = $(USPACE_PREFIX)/.. 32 LIBS = $(LIBNETIF_PREFIX)/libnetif.a $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 33 EXTRA_CFLAGS = -I$(LIBNETIF_PREFIX)/include -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 33 34 34 35 COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common 35 36 CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config 36 37 37 BINARY = net38 39 38 -include $(COMMON_MAKEFILE) 40 39 -include $(CONFIG_MAKEFILE) 41 40 41 BINARY = net 42 42 43 SOURCES = \ 43 44 net.c \ 44 $(NET_BASE)/module.c \ 45 $(NET_BASE)/modules.c \ 46 $(NET_BASE)/netif/netif_remote.c \ 47 $(NET_BASE)/structures/char_map.c \ 48 $(NET_BASE)/structures/measured_strings.c \ 49 $(NET_BASE)/structures/module_map.c \ 50 $(NET_BASE)/structures/packet/packet.c \ 51 $(NET_BASE)/structures/packet/packet_client.c \ 52 $(NET_BASE)/structures/packet/packet_server.c 53 54 ifeq ($(CONFIG_NETWORKING),module) 55 SOURCES += \ 56 net_bundle.c \ 57 $(NET_BASE)/checksum.c \ 58 $(NET_BASE)/inet.c \ 59 $(NET_BASE)/il/arp/arp.c \ 60 $(NET_BASE)/il/ip/ip.c \ 61 $(NET_BASE)/il/ip/ip_client.c \ 62 $(NET_BASE)/socket/socket_core.c \ 63 $(NET_BASE)/tl/icmp/icmp.c \ 64 $(NET_BASE)/tl/icmp/icmp_client.c \ 65 $(NET_BASE)/tl/tcp/tcp.c \ 66 $(NET_BASE)/tl/tl_common.c \ 67 $(NET_BASE)/tl/udp/udp.c \ 68 $(NET_BASE)/structures/dynamic_fifo.c 69 endif 70 71 ifeq ($(CONFIG_NETWORKING),modular) 72 SOURCES += \ 73 net_standalone.c \ 74 $(NET_BASE)/il/ip/ip_remote.c 75 endif 45 net_standalone.c 76 46 77 47 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/net/net.c
r9f10660f r3aae4e8 46 46 #include <ipc/services.h> 47 47 48 #include "../err.h" 49 #include "../messages.h" 50 #include "../modules.h" 51 52 #include "../structures/char_map.h" 53 #include "../structures/generic_char_map.h" 54 #include "../structures/measured_strings.h" 55 #include "../structures/module_map.h" 56 #include "../structures/packet/packet.h" 57 58 #include "../il/il_messages.h" 59 #include "../include/device.h" 60 #include "../include/netif_interface.h" 61 #include "../include/nil_interface.h" 62 #include "../include/net_interface.h" 63 #include "../include/ip_interface.h" 48 #include <net_err.h> 49 #include <net_messages.h> 50 #include <net_modules.h> 51 #include <adt/char_map.h> 52 #include <adt/generic_char_map.h> 53 #include <adt/measured_strings.h> 54 #include <adt/module_map.h> 55 #include <packet/packet.h> 56 #include <il_messages.h> 57 #include <net_device.h> 58 #include <netif_interface.h> 59 #include <nil_interface.h> 60 #include <net_interface.h> 61 #include <ip_interface.h> 62 #include <net_net_messages.h> 64 63 65 64 #include "net.h" 66 #include "net_messages.h"67 65 68 66 /** File read buffer size. … … 82 80 */ 83 81 device_id_t generate_new_device_id(void); 84 85 /** Prints the module name.86 * @see NAME87 */88 void module_print_name(void);89 90 /** Starts the networking module.91 * 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.92 * @param[in] client_connection The client connection processing function. The module skeleton propagates its own one.93 * @returns EOK on successful module termination.94 * @returns Other error codes as defined for the net_initialize() function.95 * @returns Other error codes as defined for the REGISTER_ME() macro function.96 */97 int module_start(async_client_conn_t client_connection);98 82 99 83 /** Returns the configured values. … … 185 169 } 186 170 187 void module_print_name(void){ 188 printf("%s", NAME); 189 } 190 191 int module_start(async_client_conn_t client_connection){ 171 /** Starts the networking module. 172 * 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. 173 * @param[in] client_connection The client connection processing function. The module skeleton propagates its own one. 174 * @returns EOK on successful module termination. 175 * @returns Other error codes as defined for the net_initialize() function. 176 * @returns Other error codes as defined for the REGISTER_ME() macro function. 177 */ 178 static int net_module_start(async_client_conn_t client_connection){ 192 179 ERROR_DECLARE; 193 180 … … 511 498 ERROR_DECLARE; 512 499 513 #ifdef CONFIG_NETIF_DP8390514 500 const char * conf_files[] = {"lo", "ne2k"}; 515 #else516 const char * conf_files[] = {"lo"};517 #endif518 501 519 502 int count = sizeof(conf_files) / sizeof(char *); … … 580 563 } 581 564 565 /** Default thread for new connections. 566 * 567 * @param[in] iid The initial message identifier. 568 * @param[in] icall The initial message call structure. 569 * 570 */ 571 static void net_client_connection(ipc_callid_t iid, ipc_call_t * icall) 572 { 573 /* 574 * Accept the connection 575 * - Answer the first IPC_M_CONNECT_ME_TO call. 576 */ 577 ipc_answer_0(iid, EOK); 578 579 while(true) { 580 ipc_call_t answer; 581 int answer_count; 582 583 /* Clear the answer structure */ 584 refresh_answer(&answer, &answer_count); 585 586 /* Fetch the next message */ 587 ipc_call_t call; 588 ipc_callid_t callid = async_get_call(&call); 589 590 /* Process the message */ 591 int res = net_module_message(callid, &call, &answer, &answer_count); 592 593 /* End if said to either by the message or the processing result */ 594 if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP)) 595 return; 596 597 /* Answer the message */ 598 answer_call(callid, res, &answer, answer_count); 599 } 600 } 601 602 /** Starts the module. 603 * 604 * @param argc The count of the command line arguments. Ignored parameter. 605 * @param argv The command line parameters. Ignored parameter. 606 * 607 * @returns EOK on success. 608 * @returns Other error codes as defined for each specific module start function. 609 * 610 */ 611 int main(int argc, char *argv[]) 612 { 613 ERROR_DECLARE; 614 615 /* Print the module label */ 616 printf("Task %d - %s\n", task_get_id(), NAME); 617 618 /* Start the module */ 619 if (ERROR_OCCURRED(net_module_start(net_client_connection))) { 620 printf(" - ERROR %i\n", ERROR_CODE); 621 return ERROR_CODE; 622 } 623 624 return EOK; 625 } 626 582 627 /** @} 583 628 */ -
uspace/srv/net/net/net.h
r9f10660f r3aae4e8 40 40 #include <ipc/ipc.h> 41 41 42 #include "../include/device.h" 43 44 #include "../structures/char_map.h" 45 #include "../structures/generic_char_map.h" 46 #include "../structures/measured_strings.h" 47 #include "../structures/module_map.h" 48 #include "../structures/packet/packet.h" 42 #include <net_device.h> 43 #include <adt/char_map.h> 44 #include <adt/generic_char_map.h> 45 #include <adt/measured_strings.h> 46 #include <adt/module_map.h> 47 #include <packet/packet.h> 49 48 50 49 /** @name Modules definitions … … 222 221 * @returns Other error codes as defined for each bundled module message function. 223 222 */ 224 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count);223 int net_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 225 224 226 225 /** Initializes the networking module for the chosen subsystem build type. -
uspace/srv/net/net/net_bundle.c
r9f10660f r3aae4e8 79 79 } 80 80 81 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){81 int net_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 82 82 if((IPC_GET_METHOD(*call) == IPC_M_CONNECT_TO_ME) 83 83 || IS_NET_IL_MESSAGE(call) -
uspace/srv/net/net/net_standalone.c
r9f10660f r3aae4e8 39 39 #include <ipc/ipc.h> 40 40 41 #include "../messages.h" 42 43 #include "../include/ip_interface.h" 44 45 #include "../structures/measured_strings.h" 46 #include "../structures/module_map.h" 47 #include "../structures/packet/packet_server.h" 41 #include <net_messages.h> 42 #include <ip_interface.h> 43 #include <adt/measured_strings.h> 44 #include <adt/module_map.h> 45 #include <packet/packet_server.h> 48 46 49 47 #include "net.h" … … 75 73 } 76 74 77 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){75 int net_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 78 76 if(IS_NET_PACKET_MESSAGE(call)){ 79 77 return packet_server_message(callid, call, answer, answer_count); -
uspace/srv/net/netif/lo/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ../..31 30 USPACE_PREFIX = ../../../.. 32 31 ROOT_PATH = $(USPACE_PREFIX)/.. 32 LIBS = $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 33 EXTRA_CFLAGS = -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 33 34 34 35 COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common 35 36 CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config 36 37 37 BINARY = lo38 39 38 -include $(COMMON_MAKEFILE) 40 39 -include $(CONFIG_MAKEFILE) 41 40 42 SOURCES = \ 43 lo.c \ 44 $(NET_BASE)/module.c \ 45 $(NET_BASE)/modules.c \ 46 $(NET_BASE)/net/net_remote.c \ 47 $(NET_BASE)/netif/netif.c \ 48 $(NET_BASE)/structures/measured_strings.c \ 49 $(NET_BASE)/structures/packet/packet.c \ 50 $(NET_BASE)/structures/packet/packet_client.c \ 51 $(NET_BASE)/structures/packet/packet_remote.c 41 ifeq ($(CONFIG_NETWORKING),modular) 42 BINARY = lo 43 endif 52 44 53 45 ifeq ($(CONFIG_NETWORKING),module) 54 SOURCES += \ 55 $(NET_BASE)/nil/nildummy/nildummy.c \ 56 $(NET_BASE)/netif/netif_nil_bundle.c 46 LIBRARY = liblo 57 47 endif 58 48 59 ifeq ($(CONFIG_NETWORKING),modular) 60 SOURCES += \ 61 $(NET_BASE)/nil/nil_remote.c \ 62 $(NET_BASE)/netif/netif_standalone.c 63 endif 49 SOURCES = \ 50 lo.c 64 51 65 52 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/netif/lo/lo.c
r9f10660f r3aae4e8 43 43 #include <ipc/services.h> 44 44 45 #include "../../err.h" 46 #include "../../messages.h" 47 #include "../../modules.h" 48 49 #include "../../structures/measured_strings.h" 50 #include "../../structures/packet/packet_client.h" 51 52 #include "../../include/device.h" 53 #include "../../include/nil_interface.h" 54 55 #include "../../nil/nil_messages.h" 56 57 #include "../netif.h" 58 #include "../netif_module.h" 45 #include <net_err.h> 46 #include <net_messages.h> 47 #include <net_modules.h> 48 #include <adt/measured_strings.h> 49 #include <packet/packet_client.h> 50 #include <net_device.h> 51 #include <nil_interface.h> 52 #include <nil_messages.h> 53 #include <netif.h> 54 #include <netif_module.h> 59 55 60 56 /** Default hardware address. … … 90 86 */ 91 87 int create(device_id_t device_id, device_ref * device); 92 93 /** Prints the module name.94 * @see NAME95 */96 void module_print_name(void);97 88 98 89 int netif_specific_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ … … 167 158 } 168 159 169 void module_print_name(void){170 printf("%s", NAME);171 }172 173 160 int netif_probe_message(device_id_t device_id, int irq, uintptr_t io){ 174 161 ERROR_DECLARE; … … 220 207 } 221 208 209 #ifdef CONFIG_NETWORKING_modular 210 211 #include <netif_standalone.h> 212 213 /** Default thread for new connections. 214 * 215 * @param[in] iid The initial message identifier. 216 * @param[in] icall The initial message call structure. 217 * 218 */ 219 static void netif_client_connection(ipc_callid_t iid, ipc_call_t * icall) 220 { 221 /* 222 * Accept the connection 223 * - Answer the first IPC_M_CONNECT_ME_TO call. 224 */ 225 ipc_answer_0(iid, EOK); 226 227 while(true) { 228 ipc_call_t answer; 229 int answer_count; 230 231 /* Clear the answer structure */ 232 refresh_answer(&answer, &answer_count); 233 234 /* Fetch the next message */ 235 ipc_call_t call; 236 ipc_callid_t callid = async_get_call(&call); 237 238 /* Process the message */ 239 int res = netif_module_message(callid, &call, &answer, &answer_count); 240 241 /* End if said to either by the message or the processing result */ 242 if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP)) 243 return; 244 245 /* Answer the message */ 246 answer_call(callid, res, &answer, answer_count); 247 } 248 } 249 250 /** Starts the module. 251 * 252 * @param argc The count of the command line arguments. Ignored parameter. 253 * @param argv The command line parameters. Ignored parameter. 254 * 255 * @returns EOK on success. 256 * @returns Other error codes as defined for each specific module start function. 257 * 258 */ 259 int main(int argc, char *argv[]) 260 { 261 ERROR_DECLARE; 262 263 /* Print the module label */ 264 printf("Task %d - %s\n", task_get_id(), NAME); 265 266 /* Start the module */ 267 if (ERROR_OCCURRED(netif_module_start(netif_client_connection))) { 268 printf(" - ERROR %i\n", ERROR_CODE); 269 return ERROR_CODE; 270 } 271 272 return EOK; 273 } 274 275 #endif /* CONFIG_NETWORKING_modular */ 276 222 277 /** @} 223 278 */ -
uspace/srv/net/nil/eth/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ../..31 30 USPACE_PREFIX = ../../../.. 31 LIBS = $(LIBNETIF_PREFIX)/libnetif.a $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 32 EXTRA_CFLAGS = -I$(LIBNETIF_PREFIX)/include -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 32 33 BINARY = eth 33 34 34 35 SOURCES = \ 35 36 eth.c \ 36 eth_module.c \ 37 $(NET_BASE)/checksum.c \ 38 $(NET_BASE)/module.c \ 39 $(NET_BASE)/modules.c \ 40 $(NET_BASE)/net/net_remote.c \ 41 $(NET_BASE)/netif/netif_remote.c \ 42 $(NET_BASE)/structures/measured_strings.c \ 43 $(NET_BASE)/structures/packet/packet.c \ 44 $(NET_BASE)/structures/packet/packet_client.c \ 45 $(NET_BASE)/structures/packet/packet_remote.c 37 eth_module.c 46 38 47 39 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/nil/eth/eth.c
r9f10660f r3aae4e8 45 45 #include <ipc/services.h> 46 46 47 #include "../../err.h" 48 #include "../../messages.h" 49 #include "../../modules.h" 50 51 #include "../../include/byteorder.h" 52 #include "../../include/checksum.h" 53 #include "../../include/ethernet_lsap.h" 54 #include "../../include/ethernet_protocols.h" 55 #include "../../include/protocol_map.h" 56 #include "../../include/device.h" 57 #include "../../include/netif_interface.h" 58 #include "../../include/net_interface.h" 59 #include "../../include/nil_interface.h" 60 #include "../../include/il_interface.h" 61 62 #include "../../structures/measured_strings.h" 63 #include "../../structures/packet/packet_client.h" 64 65 #include "../nil_module.h" 47 #include <net_err.h> 48 #include <net_messages.h> 49 #include <net_modules.h> 50 #include <net_byteorder.h> 51 #include <net_checksum.h> 52 #include <ethernet_lsap.h> 53 #include <ethernet_protocols.h> 54 #include <protocol_map.h> 55 #include <net_device.h> 56 #include <netif_interface.h> 57 #include <net_interface.h> 58 #include <nil_interface.h> 59 #include <il_interface.h> 60 #include <adt/measured_strings.h> 61 #include <packet/packet_client.h> 66 62 67 63 #include "eth.h" 68 64 #include "eth_header.h" 65 66 /** The module name. 67 */ 68 #define NAME "Ethernet protocol" 69 69 70 70 /** Reserved packet prefix length. … … 769 769 } 770 770 771 #ifdef CONFIG_NETWORKING_modular 772 773 #include <nil_standalone.h> 774 775 /** Default thread for new connections. 776 * 777 * @param[in] iid The initial message identifier. 778 * @param[in] icall The initial message call structure. 779 * 780 */ 781 static void nil_client_connection(ipc_callid_t iid, ipc_call_t * icall) 782 { 783 /* 784 * Accept the connection 785 * - Answer the first IPC_M_CONNECT_ME_TO call. 786 */ 787 ipc_answer_0(iid, EOK); 788 789 while(true) { 790 ipc_call_t answer; 791 int answer_count; 792 793 /* Clear the answer structure */ 794 refresh_answer(&answer, &answer_count); 795 796 /* Fetch the next message */ 797 ipc_call_t call; 798 ipc_callid_t callid = async_get_call(&call); 799 800 /* Process the message */ 801 int res = nil_module_message(callid, &call, &answer, &answer_count); 802 803 /* End if said to either by the message or the processing result */ 804 if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP)) 805 return; 806 807 /* Answer the message */ 808 answer_call(callid, res, &answer, answer_count); 809 } 810 } 811 812 /** Starts the module. 813 * 814 * @param argc The count of the command line arguments. Ignored parameter. 815 * @param argv The command line parameters. Ignored parameter. 816 * 817 * @returns EOK on success. 818 * @returns Other error codes as defined for each specific module start function. 819 * 820 */ 821 int main(int argc, char *argv[]) 822 { 823 ERROR_DECLARE; 824 825 /* Print the module label */ 826 printf("Task %d - %s\n", task_get_id(), NAME); 827 828 /* Start the module */ 829 if (ERROR_OCCURRED(nil_module_start(nil_client_connection))) { 830 printf(" - ERROR %i\n", ERROR_CODE); 831 return ERROR_CODE; 832 } 833 834 return EOK; 835 } 836 837 #endif /* CONFIG_NETWORKING_modular */ 838 771 839 /** @} 772 840 */ -
uspace/srv/net/nil/eth/eth.h
r9f10660f r3aae4e8 41 41 #include <ipc/services.h> 42 42 43 #include "../../include/device.h"44 #include "../../structures/measured_strings.h"43 #include <net_device.h> 44 #include <adt/measured_strings.h> 45 45 46 46 /** Type definition of the Ethernet global data. … … 147 147 }; 148 148 149 /** Module initialization. 150 * Is called by the module_start() function. 151 * @param[in] net_phone The networking moduel phone. 152 * @returns EOK on success. 153 * @returns Other error codes as defined for each specific module initialize function. 154 */ 155 extern int nil_initialize(int net_phone); 156 157 /** Message processing function. 158 * @param[in] callid The message identifier. 159 * @param[in] call The message parameters. 160 * @param[out] answer The message answer parameters. 161 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 162 * @returns EOK on success. 163 * @returns ENOTSUP if the message is not known. 164 * @returns Other error codes as defined for each specific module message function. 165 * @see nil_interface.h 166 * @see IS_NET_NIL_MESSAGE() 167 */ 168 extern int nil_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 169 149 170 #endif 150 171 -
uspace/srv/net/nil/eth/eth_module.c
r9f10660f r3aae4e8 42 42 #include <ipc/services.h> 43 43 44 #include "../../err.h" 45 #include "../../modules.h" 46 47 #include "../../include/net_interface.h" 48 49 #include "../../structures/packet/packet.h" 50 51 #include "../nil_module.h" 44 #include <net_err.h> 45 #include <net_modules.h> 46 #include <net_interface.h> 47 #include <packet/packet.h> 48 #include <nil_standalone.h> 52 49 53 50 #include "eth.h" 54 55 /** The module name.56 */57 #define NAME "Ethernet protocol"58 59 /** Prints the module name.60 */61 void module_print_name(void);62 51 63 52 /** Starts the Ethernet module. … … 69 58 * @returns Other error codes as defined for the REGISTER_ME() macro function. 70 59 */ 71 int module_start(async_client_conn_t client_connection); 72 73 /** Passes the parameters to the module specific nil_message() function. 74 * @param[in] callid The message identifier. 75 * @param[in] call The message parameters. 76 * @param[out] answer The message answer parameters. 77 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 78 * @returns EOK on success. 79 * @returns ENOTSUP if the message is not known. 80 * @returns Other error codes as defined for each specific module message function. 81 */ 82 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 83 84 void module_print_name(void){ 85 printf("%s", NAME); 86 } 87 88 int module_start(async_client_conn_t client_connection){ 60 int nil_module_start(async_client_conn_t client_connection){ 89 61 ERROR_DECLARE; 90 62 … … 107 79 } 108 80 109 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 81 /** Passes the parameters to the module specific nil_message() function. 82 * @param[in] callid The message identifier. 83 * @param[in] call The message parameters. 84 * @param[out] answer The message answer parameters. 85 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 86 * @returns EOK on success. 87 * @returns ENOTSUP if the message is not known. 88 * @returns Other error codes as defined for each specific module message function. 89 */ 90 int nil_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 110 91 return nil_message(callid, call, answer, answer_count); 111 92 } -
uspace/srv/net/nil/nildummy/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ../..31 30 USPACE_PREFIX = ../../../.. 31 LIBS = $(LIBNETIF_PREFIX)/libnetif.a $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 32 EXTRA_CFLAGS = -I$(LIBNETIF_PREFIX)/include -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 32 33 BINARY = nildummy 33 34 34 35 SOURCES = \ 35 36 nildummy.c \ 36 nildummy_module.c \ 37 $(NET_BASE)/module.c \ 38 $(NET_BASE)/modules.c \ 39 $(NET_BASE)/net/net_remote.c \ 40 $(NET_BASE)/netif/netif_remote.c \ 41 $(NET_BASE)/structures/measured_strings.c \ 42 $(NET_BASE)/structures/packet/packet.c \ 43 $(NET_BASE)/structures/packet/packet_client.c \ 44 $(NET_BASE)/structures/packet/packet_remote.c 37 nildummy_module.c 45 38 46 39 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/nil/nildummy/nildummy.c
r9f10660f r3aae4e8 45 45 #include <ipc/services.h> 46 46 47 #include "../../err.h" 48 #include "../../messages.h" 49 #include "../../modules.h" 50 51 #include "../../include/device.h" 52 #include "../../include/netif_interface.h" 53 #include "../../include/nil_interface.h" 54 #include "../../include/il_interface.h" 55 56 #include "../../structures/measured_strings.h" 57 #include "../../structures/packet/packet.h" 58 59 #include "../nil_module.h" 47 #include <net_err.h> 48 #include <net_messages.h> 49 #include <net_modules.h> 50 #include <net_device.h> 51 #include <netif_interface.h> 52 #include <nil_interface.h> 53 #include <il_interface.h> 54 #include <adt/measured_strings.h> 55 #include <packet/packet.h> 56 #include <nil_module.h> 60 57 61 58 #include "nildummy.h" 59 60 /** The module name. 61 */ 62 #define NAME "Dummy nil protocol" 62 63 63 64 /** Default maximum transmission unit. … … 373 374 } 374 375 376 #ifdef CONFIG_NETWORKING_modular 377 378 #include <nil_standalone.h> 379 380 /** Default thread for new connections. 381 * 382 * @param[in] iid The initial message identifier. 383 * @param[in] icall The initial message call structure. 384 * 385 */ 386 static void nil_client_connection(ipc_callid_t iid, ipc_call_t * icall) 387 { 388 /* 389 * Accept the connection 390 * - Answer the first IPC_M_CONNECT_ME_TO call. 391 */ 392 ipc_answer_0(iid, EOK); 393 394 while(true) { 395 ipc_call_t answer; 396 int answer_count; 397 398 /* Clear the answer structure */ 399 refresh_answer(&answer, &answer_count); 400 401 /* Fetch the next message */ 402 ipc_call_t call; 403 ipc_callid_t callid = async_get_call(&call); 404 405 /* Process the message */ 406 int res = nil_module_message(callid, &call, &answer, &answer_count); 407 408 /* End if said to either by the message or the processing result */ 409 if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP)) 410 return; 411 412 /* Answer the message */ 413 answer_call(callid, res, &answer, answer_count); 414 } 415 } 416 417 /** Starts the module. 418 * 419 * @param argc The count of the command line arguments. Ignored parameter. 420 * @param argv The command line parameters. Ignored parameter. 421 * 422 * @returns EOK on success. 423 * @returns Other error codes as defined for each specific module start function. 424 * 425 */ 426 int main(int argc, char *argv[]) 427 { 428 ERROR_DECLARE; 429 430 /* Print the module label */ 431 printf("Task %d - %s\n", task_get_id(), NAME); 432 433 /* Start the module */ 434 if (ERROR_OCCURRED(nil_module_start(nil_client_connection))) { 435 printf(" - ERROR %i\n", ERROR_CODE); 436 return ERROR_CODE; 437 } 438 439 return EOK; 440 } 441 442 #endif /* CONFIG_NETWORKING_modular */ 443 375 444 /** @} 376 445 */ -
uspace/srv/net/nil/nildummy/nildummy.h
r9f10660f r3aae4e8 41 41 #include <ipc/services.h> 42 42 43 #include "../../include/device.h"44 #include "../../structures/measured_strings.h"43 #include <net_device.h> 44 #include <adt/measured_strings.h> 45 45 46 46 /** Type definition of the dummy nil global data. -
uspace/srv/net/nil/nildummy/nildummy_module.c
r9f10660f r3aae4e8 42 42 #include <ipc/services.h> 43 43 44 #include "../../err.h" 45 #include "../../modules.h" 46 47 #include "../../include/net_interface.h" 48 49 #include "../../structures/packet/packet.h" 50 51 #include "../nil_module.h" 44 #include <net_err.h> 45 #include <net_modules.h> 46 #include <net_interface.h> 47 #include <packet/packet.h> 48 #include <nil_module.h> 49 #include <nil_standalone.h> 52 50 53 51 #include "nildummy.h" 54 55 /** The module name.56 */57 #define NAME "Dummy nil protocol"58 59 /** Prints the module name.60 */61 void module_print_name(void);62 52 63 53 /** Starts the dummy nil module. … … 69 59 * @returns Other error codes as defined for the REGISTER_ME() macro function. 70 60 */ 71 int module_start(async_client_conn_t client_connection); 72 73 /** Passes the parameters to the module specific nil_message() function. 74 * @param[in] callid The message identifier. 75 * @param[in] call The message parameters. 76 * @param[out] answer The message answer parameters. 77 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 78 * @returns EOK on success. 79 * @returns ENOTSUP if the message is not known. 80 * @returns Other error codes as defined for each specific module message function. 81 */ 82 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 83 84 void module_print_name(void){ 85 printf("%s", NAME); 86 } 87 88 int module_start(async_client_conn_t client_connection){ 61 int nil_module_start(async_client_conn_t client_connection){ 89 62 ERROR_DECLARE; 90 63 … … 107 80 } 108 81 109 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 82 /** Passes the parameters to the module specific nil_message() function. 83 * @param[in] callid The message identifier. 84 * @param[in] call The message parameters. 85 * @param[out] answer The message answer parameters. 86 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 87 * @returns EOK on success. 88 * @returns ENOTSUP if the message is not known. 89 * @returns Other error codes as defined for each specific module message function. 90 */ 91 int nil_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 110 92 return nil_message(callid, call, answer, answer_count); 111 93 } -
uspace/srv/net/tl/icmp/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ../..31 30 USPACE_PREFIX = ../../../.. 31 LIBS = $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 32 EXTRA_CFLAGS = -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 32 33 BINARY = icmp 33 34 34 35 SOURCES = \ 35 36 icmp.c \ 36 icmp_module.c \ 37 icmp_client.c \ 38 $(NET_BASE)/checksum.c \ 39 $(NET_BASE)/module.c \ 40 $(NET_BASE)/modules.c \ 41 $(NET_BASE)/il/ip/ip_client.c \ 42 $(NET_BASE)/il/ip/ip_remote.c \ 43 $(NET_BASE)/net/net_remote.c \ 44 $(NET_BASE)/structures/measured_strings.c \ 45 $(NET_BASE)/structures/packet/packet.c \ 46 $(NET_BASE)/structures/packet/packet_client.c \ 47 $(NET_BASE)/structures/packet/packet_remote.c 37 icmp_module.c 48 38 49 39 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/tl/icmp/icmp.c
r9f10660f r3aae4e8 42 42 #include <stdint.h> 43 43 #include <str.h> 44 45 44 #include <ipc/ipc.h> 46 45 #include <ipc/services.h> 47 48 46 #include <sys/time.h> 49 47 #include <sys/types.h> 50 48 51 #include "../../err.h" 52 #include "../../messages.h" 53 #include "../../modules.h" 54 55 #include "../../structures/packet/packet_client.h" 56 57 #include "../../include/byteorder.h" 58 #include "../../include/checksum.h" 59 #include "../../include/icmp_api.h" 60 #include "../../include/icmp_client.h" 61 #include "../../include/icmp_codes.h" 62 #include "../../include/icmp_common.h" 63 #include "../../include/icmp_interface.h" 64 #include "../../include/il_interface.h" 65 #include "../../include/inet.h" 66 #include "../../include/ip_client.h" 67 #include "../../include/ip_interface.h" 68 #include "../../include/ip_protocols.h" 69 #include "../../include/net_interface.h" 70 #include "../../include/socket_codes.h" 71 #include "../../include/socket_errno.h" 72 73 #include "../../tl/tl_messages.h" 49 #include <net_err.h> 50 #include <net_messages.h> 51 #include <net_modules.h> 52 #include <packet/packet_client.h> 53 #include <net_byteorder.h> 54 #include <net_checksum.h> 55 #include <icmp_api.h> 56 #include <icmp_client.h> 57 #include <icmp_codes.h> 58 #include <icmp_common.h> 59 #include <icmp_interface.h> 60 #include <il_interface.h> 61 #include <inet.h> 62 #include <ip_client.h> 63 #include <ip_interface.h> 64 #include <ip_protocols.h> 65 #include <net_interface.h> 66 #include <socket_codes.h> 67 #include <socket_errno.h> 68 #include <tl_messages.h> 69 #include <icmp_messages.h> 70 #include <icmp_header.h> 74 71 75 72 #include "icmp.h" 76 #include "icmp_header.h"77 #include "icmp_messages.h"78 73 #include "icmp_module.h" 74 75 /** ICMP module name. 76 */ 77 #define NAME "ICMP protocol" 79 78 80 79 /** Default ICMP error reporting. … … 820 819 } 821 820 821 #ifdef CONFIG_NETWORKING_modular 822 823 #include <tl_standalone.h> 824 825 /** Default thread for new connections. 826 * 827 * @param[in] iid The initial message identifier. 828 * @param[in] icall The initial message call structure. 829 * 830 */ 831 static void tl_client_connection(ipc_callid_t iid, ipc_call_t * icall) 832 { 833 /* 834 * Accept the connection 835 * - Answer the first IPC_M_CONNECT_ME_TO call. 836 */ 837 ipc_answer_0(iid, EOK); 838 839 while(true) { 840 ipc_call_t answer; 841 int answer_count; 842 843 /* Clear the answer structure */ 844 refresh_answer(&answer, &answer_count); 845 846 /* Fetch the next message */ 847 ipc_call_t call; 848 ipc_callid_t callid = async_get_call(&call); 849 850 /* Process the message */ 851 int res = tl_module_message(callid, &call, &answer, &answer_count); 852 853 /* End if said to either by the message or the processing result */ 854 if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP)) 855 return; 856 857 /* Answer the message */ 858 answer_call(callid, res, &answer, answer_count); 859 } 860 } 861 862 /** Starts the module. 863 * 864 * @param argc The count of the command line arguments. Ignored parameter. 865 * @param argv The command line parameters. Ignored parameter. 866 * 867 * @returns EOK on success. 868 * @returns Other error codes as defined for each specific module start function. 869 * 870 */ 871 int main(int argc, char *argv[]) 872 { 873 ERROR_DECLARE; 874 875 /* Print the module label */ 876 printf("Task %d - %s\n", task_get_id(), NAME); 877 878 /* Start the module */ 879 if (ERROR_OCCURRED(tl_module_start(tl_client_connection))) { 880 printf(" - ERROR %i\n", ERROR_CODE); 881 return ERROR_CODE; 882 } 883 884 return EOK; 885 } 886 887 #endif /* CONFIG_NETWORKING_modular */ 888 822 889 /** @} 823 890 */ -
uspace/srv/net/tl/icmp/icmp.h
r9f10660f r3aae4e8 40 40 #include <fibril_synch.h> 41 41 42 #include "../../include/icmp_codes.h" 43 44 #include "../../structures/int_map.h" 45 46 #include "icmp_header.h" 42 #include <icmp_codes.h> 43 #include <adt/int_map.h> 44 #include <icmp_header.h> 47 45 48 46 /** Type definition of the ICMP reply data. -
uspace/srv/net/tl/icmp/icmp_module.c
r9f10660f r3aae4e8 40 40 #include <async.h> 41 41 #include <stdio.h> 42 43 42 #include <ipc/ipc.h> 44 43 #include <ipc/services.h> 45 44 46 #include "../../err.h" 47 #include "../../modules.h" 48 49 #include "../../structures/packet/packet.h" 50 51 #include "../../include/net_interface.h" 45 #include <net_err.h> 46 #include <net_modules.h> 47 #include <packet/packet.h> 48 #include <net_interface.h> 49 #include <tl_standalone.h> 52 50 53 51 #include "icmp.h" 54 52 #include "icmp_module.h" 55 53 56 /** ICMP module name.54 /** ICMP module global data. 57 55 */ 58 #define NAME "ICMP protocol" 59 60 /** Prints the module name. 61 * @see NAME 62 */ 63 void module_print_name(void); 56 extern icmp_globals_t icmp_globals; 64 57 65 58 /** Starts the ICMP module. … … 70 63 * @returns Other error codes as defined for the REGISTER_ME() macro function. 71 64 */ 72 int module_start(async_client_conn_t client_connection); 73 74 /** Processes the ICMP message. 75 * @param[in] callid The message identifier. 76 * @param[in] call The message parameters. 77 * @param[out] answer The message answer parameters. 78 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 79 * @returns EOK on success. 80 * @returns Other error codes as defined for the icmp_message() function. 81 */ 82 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 83 84 /** ICMP module global data. 85 */ 86 extern icmp_globals_t icmp_globals; 87 88 void module_print_name(void){ 89 printf("%s", NAME); 90 } 91 92 int module_start(async_client_conn_t client_connection){ 65 int tl_module_start(async_client_conn_t client_connection){ 93 66 ERROR_DECLARE; 94 67 … … 113 86 } 114 87 115 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 88 /** Processes the ICMP message. 89 * @param[in] callid The message identifier. 90 * @param[in] call The message parameters. 91 * @param[out] answer The message answer parameters. 92 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 93 * @returns EOK on success. 94 * @returns Other error codes as defined for the icmp_message() function. 95 */ 96 int tl_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 116 97 return icmp_message(callid, call, answer, answer_count); 117 98 } -
uspace/srv/net/tl/tcp/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ../..31 30 USPACE_PREFIX = ../../../.. 31 LIBS = $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 32 EXTRA_CFLAGS = -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 32 33 BINARY = tcp 33 34 34 35 SOURCES = \ 35 36 tcp.c \ 36 tcp_module.c \ 37 $(NET_BASE)/checksum.c \ 38 $(NET_BASE)/module.c \ 39 $(NET_BASE)/modules.c \ 40 $(NET_BASE)/il/ip/ip_client.c \ 41 $(NET_BASE)/il/ip/ip_remote.c \ 42 $(NET_BASE)/net/net_remote.c \ 43 $(NET_BASE)/socket/socket_core.c \ 44 $(NET_BASE)/tl/icmp/icmp_client.c \ 45 $(NET_BASE)/tl/icmp/icmp_common.c \ 46 $(NET_BASE)/tl/icmp/icmp_remote.c \ 47 $(NET_BASE)/tl/tl_common.c \ 48 $(NET_BASE)/structures/char_map.c \ 49 $(NET_BASE)/structures/dynamic_fifo.c \ 50 $(NET_BASE)/structures/measured_strings.c \ 51 $(NET_BASE)/structures/packet/packet.c \ 52 $(NET_BASE)/structures/packet/packet_client.c \ 53 $(NET_BASE)/structures/packet/packet_remote.c 37 tcp_module.c 54 38 55 39 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/tl/tcp/tcp.c
r9f10660f r3aae4e8 46 46 #include <ipc/services.h> 47 47 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> 74 70 75 71 #include "tcp.h" 76 72 #include "tcp_header.h" 77 73 #include "tcp_module.h" 74 75 /** TCP module name. 76 */ 77 #define NAME "TCP protocol" 78 78 79 79 /** The TCP window default value. … … 1997 1997 } 1998 1998 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 */ 2009 static 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 */ 2049 int 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 1999 2067 /** @} 2000 2068 */ -
uspace/srv/net/tl/tcp/tcp.h
r9f10660f r3aae4e8 40 40 #include <fibril_synch.h> 41 41 42 #include "../../structures/packet/packet.h" 43 44 #include "../../include/device.h" 45 46 #include "../../socket/socket_core.h" 47 48 #include "../tl_common.h" 42 #include <packet/packet.h> 43 #include <net_device.h> 44 #include <socket_core.h> 45 #include <tl_common.h> 49 46 50 47 /** Type definition of the TCP global data. -
uspace/srv/net/tl/tcp/tcp_module.c
r9f10660f r3aae4e8 40 40 #include <async.h> 41 41 #include <stdio.h> 42 43 42 #include <ipc/ipc.h> 44 43 #include <ipc/services.h> 45 44 46 #include "../../err.h" 47 #include "../../modules.h" 48 49 #include "../../structures/packet/packet.h" 50 51 #include "../../include/net_interface.h" 52 #include "../../include/ip_protocols.h" 53 #include "../../include/ip_interface.h" 45 #include <net_err.h> 46 #include <net_modules.h> 47 #include <packet/packet.h> 48 #include <net_interface.h> 49 #include <ip_protocols.h> 50 #include <ip_interface.h> 51 #include <tl_standalone.h> 54 52 55 53 #include "tcp.h" 56 54 #include "tcp_module.h" 57 55 58 /** TCP module name.56 /** TCP module global data. 59 57 */ 60 #define NAME "TCP protocol" 61 62 /** Prints the module name. 63 * @see NAME 64 */ 65 void module_print_name(void); 58 extern tcp_globals_t tcp_globals; 66 59 67 60 /** Starts the TCP module. … … 72 65 * @returns Other error codes as defined for the REGISTER_ME() macro function. 73 66 */ 74 int module_start(async_client_conn_t client_connection); 75 76 /** Processes the TCP message. 77 * @param[in] callid The message identifier. 78 * @param[in] call The message parameters. 79 * @param[out] answer The message answer parameters. 80 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 81 * @returns EOK on success. 82 * @returns Other error codes as defined for the tcp_message() function. 83 */ 84 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 85 86 /** TCP module global data. 87 */ 88 extern tcp_globals_t tcp_globals; 89 90 void module_print_name(void){ 91 printf("%s", NAME); 92 } 93 94 int module_start(async_client_conn_t client_connection){ 67 int tl_module_start(async_client_conn_t client_connection){ 95 68 ERROR_DECLARE; 96 69 … … 112 85 } 113 86 114 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 87 /** Processes the TCP message. 88 * @param[in] callid The message identifier. 89 * @param[in] call The message parameters. 90 * @param[out] answer The message answer parameters. 91 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 92 * @returns EOK on success. 93 * @returns Other error codes as defined for the tcp_message() function. 94 */ 95 int tl_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 115 96 return tcp_message(callid, call, answer, answer_count); 116 97 } -
uspace/srv/net/tl/tcp/tcp_module.h
r9f10660f r3aae4e8 47 47 * @returns ENOMEM if there is not enough memory left. 48 48 */ 49 int tcp_initialize(async_client_conn_t client_connection);49 extern int tcp_initialize(async_client_conn_t client_connection); 50 50 51 51 /** Processes the TCP message. … … 59 59 * @see IS_NET_TCP_MESSAGE() 60 60 */ 61 int tcp_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count);61 extern int tcp_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 62 62 63 63 #endif -
uspace/srv/net/tl/udp/Makefile
r9f10660f r3aae4e8 28 28 # 29 29 30 NET_BASE = ../..31 30 USPACE_PREFIX = ../../../.. 31 LIBS = $(LIBNET_PREFIX)/libnet.a $(LIBSOCKET_PREFIX)/libsocket.a 32 EXTRA_CFLAGS = -I$(LIBNET_PREFIX)/include -I$(LIBSOCKET_PREFIX)/include 32 33 BINARY = udp 33 34 34 35 SOURCES = \ 35 36 udp.c \ 36 udp_module.c \ 37 $(NET_BASE)/checksum.c \ 38 $(NET_BASE)/module.c \ 39 $(NET_BASE)/modules.c \ 40 $(NET_BASE)/il/ip/ip_client.c \ 41 $(NET_BASE)/il/ip/ip_remote.c \ 42 $(NET_BASE)/net/net_remote.c \ 43 $(NET_BASE)/socket/socket_core.c \ 44 $(NET_BASE)/tl/icmp/icmp_client.c \ 45 $(NET_BASE)/tl/icmp/icmp_common.c \ 46 $(NET_BASE)/tl/icmp/icmp_remote.c \ 47 $(NET_BASE)/tl/tl_common.c \ 48 $(NET_BASE)/structures/char_map.c \ 49 $(NET_BASE)/structures/dynamic_fifo.c \ 50 $(NET_BASE)/structures/measured_strings.c \ 51 $(NET_BASE)/structures/packet/packet.c \ 52 $(NET_BASE)/structures/packet/packet_client.c \ 53 $(NET_BASE)/structures/packet/packet_remote.c 37 udp_module.c 54 38 55 39 include $(USPACE_PREFIX)/Makefile.common -
uspace/srv/net/tl/udp/udp.c
r9f10660f r3aae4e8 40 40 #include <malloc.h> 41 41 #include <stdio.h> 42 43 42 #include <ipc/ipc.h> 44 43 #include <ipc/services.h> 45 44 46 #include "../../err.h" 47 #include "../../messages.h" 48 #include "../../modules.h" 49 50 #include "../../structures/dynamic_fifo.h" 51 #include "../../structures/packet/packet_client.h" 52 53 #include "../../include/checksum.h" 54 #include "../../include/in.h" 55 #include "../../include/in6.h" 56 #include "../../include/inet.h" 57 #include "../../include/ip_client.h" 58 #include "../../include/ip_interface.h" 59 #include "../../include/ip_protocols.h" 60 #include "../../include/icmp_client.h" 61 #include "../../include/icmp_interface.h" 62 #include "../../include/net_interface.h" 63 #include "../../include/socket_codes.h" 64 #include "../../include/socket_errno.h" 65 66 #include "../../socket/socket_core.h" 67 #include "../../socket/socket_messages.h" 68 69 #include "../tl_common.h" 70 #include "../tl_messages.h" 45 #include <net_err.h> 46 #include <net_messages.h> 47 #include <net_modules.h> 48 #include <adt/dynamic_fifo.h> 49 #include <packet/packet_client.h> 50 #include <net_checksum.h> 51 #include <in.h> 52 #include <in6.h> 53 #include <inet.h> 54 #include <ip_client.h> 55 #include <ip_interface.h> 56 #include <ip_protocols.h> 57 #include <icmp_client.h> 58 #include <icmp_interface.h> 59 #include <net_interface.h> 60 #include <socket_codes.h> 61 #include <socket_errno.h> 62 #include <socket_core.h> 63 #include <socket_messages.h> 64 #include <tl_common.h> 65 #include <tl_messages.h> 71 66 72 67 #include "udp.h" 73 68 #include "udp_header.h" 74 69 #include "udp_module.h" 70 71 /** UDP module name. 72 */ 73 #define NAME "UDP protocol" 75 74 76 75 /** Default UDP checksum computing. … … 700 699 } 701 700 701 #ifdef CONFIG_NETWORKING_modular 702 703 #include <tl_standalone.h> 704 705 /** Default thread for new connections. 706 * 707 * @param[in] iid The initial message identifier. 708 * @param[in] icall The initial message call structure. 709 * 710 */ 711 static void tl_client_connection(ipc_callid_t iid, ipc_call_t * icall) 712 { 713 /* 714 * Accept the connection 715 * - Answer the first IPC_M_CONNECT_ME_TO call. 716 */ 717 ipc_answer_0(iid, EOK); 718 719 while(true) { 720 ipc_call_t answer; 721 int answer_count; 722 723 /* Clear the answer structure */ 724 refresh_answer(&answer, &answer_count); 725 726 /* Fetch the next message */ 727 ipc_call_t call; 728 ipc_callid_t callid = async_get_call(&call); 729 730 /* Process the message */ 731 int res = tl_module_message(callid, &call, &answer, &answer_count); 732 733 /* End if said to either by the message or the processing result */ 734 if ((IPC_GET_METHOD(call) == IPC_M_PHONE_HUNGUP) || (res == EHANGUP)) 735 return; 736 737 /* Answer the message */ 738 answer_call(callid, res, &answer, answer_count); 739 } 740 } 741 742 /** Starts the module. 743 * 744 * @param argc The count of the command line arguments. Ignored parameter. 745 * @param argv The command line parameters. Ignored parameter. 746 * 747 * @returns EOK on success. 748 * @returns Other error codes as defined for each specific module start function. 749 * 750 */ 751 int main(int argc, char *argv[]) 752 { 753 ERROR_DECLARE; 754 755 /* Print the module label */ 756 printf("Task %d - %s\n", task_get_id(), NAME); 757 758 /* Start the module */ 759 if (ERROR_OCCURRED(tl_module_start(tl_client_connection))) { 760 printf(" - ERROR %i\n", ERROR_CODE); 761 return ERROR_CODE; 762 } 763 764 return EOK; 765 } 766 767 #endif /* CONFIG_NETWORKING_modular */ 768 702 769 /** @} 703 770 */ -
uspace/srv/net/tl/udp/udp.h
r9f10660f r3aae4e8 39 39 40 40 #include <fibril_synch.h> 41 42 #include "../../socket/socket_core.h" 43 44 #include "../tl_common.h" 41 #include <socket_core.h> 42 #include <tl_common.h> 45 43 46 44 /** Type definition of the UDP global data. -
uspace/srv/net/tl/udp/udp_module.c
r9f10660f r3aae4e8 40 40 #include <async.h> 41 41 #include <stdio.h> 42 43 42 #include <ipc/ipc.h> 44 43 #include <ipc/services.h> 45 44 46 #include "../../err.h" 47 #include "../../modules.h" 48 49 #include "../../structures/packet/packet.h" 50 51 #include "../../include/net_interface.h" 45 #include <net_err.h> 46 #include <net_modules.h> 47 #include <packet/packet.h> 48 #include <net_interface.h> 49 #include <tl_standalone.h> 52 50 53 51 #include "udp.h" 54 52 #include "udp_module.h" 55 53 56 /** UDP module name.54 /** UDP module global data. 57 55 */ 58 #define NAME "UDP protocol" 59 60 /** Prints the module name. 61 * @see NAME 62 */ 63 void module_print_name(void); 56 extern udp_globals_t udp_globals; 64 57 65 58 /** Starts the UDP module. … … 70 63 * @returns Other error codes as defined for the REGISTER_ME() macro function. 71 64 */ 72 int module_start(async_client_conn_t client_connection); 73 74 /** Processes the UDP message. 75 * @param[in] callid The message identifier. 76 * @param[in] call The message parameters. 77 * @param[out] answer The message answer parameters. 78 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 79 * @returns EOK on success. 80 * @returns Other error codes as defined for the udp_message() function. 81 */ 82 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 83 84 /** UDP module global data. 85 */ 86 extern udp_globals_t udp_globals; 87 88 void module_print_name(void){ 89 printf("%s", NAME); 90 } 91 92 int module_start(async_client_conn_t client_connection){ 65 int tl_module_start(async_client_conn_t client_connection){ 93 66 ERROR_DECLARE; 94 67 … … 113 86 } 114 87 115 int module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 88 /** Processes the UDP message. 89 * @param[in] callid The message identifier. 90 * @param[in] call The message parameters. 91 * @param[out] answer The message answer parameters. 92 * @param[out] answer_count The last parameter for the actual answer in the answer parameter. 93 * @returns EOK on success. 94 * @returns Other error codes as defined for the udp_message() function. 95 */ 96 int tl_module_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count){ 116 97 return udp_message(callid, call, answer, answer_count); 117 98 } -
uspace/srv/net/tl/udp/udp_module.h
r9f10660f r3aae4e8 47 47 * @returns ENOMEM if there is not enough memory left. 48 48 */ 49 int udp_initialize(async_client_conn_t client_connection);49 extern int udp_initialize(async_client_conn_t client_connection); 50 50 51 51 /** Processes the UDP message. … … 59 59 * @see IS_NET_UDP_MESSAGE() 60 60 */ 61 int udp_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count);61 extern int udp_message(ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count); 62 62 63 63 #endif
Note:
See TracChangeset
for help on using the changeset viewer.