From 800e122ddcf7a629665a3ea787c01bb07056875e Mon Sep 17 00:00:00 2001 From: Philippe Houdoin Date: Wed, 2 Jul 2003 12:57:02 +0000 Subject: [PATCH] Merge net_protocol and net_interface modules API into a single net_layer one... git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3807 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/kits/net/new_stack/net_layer.h | 43 ++++++++++++++++++ src/tests/kits/net/new_stack/net_server.cpp | 1 - .../kits/net/new_stack/net_server_x86.proj | Bin 11872 -> 11868 bytes src/tests/kits/net/new_stack/net_stack.h | 14 +++--- 4 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 src/tests/kits/net/new_stack/net_layer.h diff --git a/src/tests/kits/net/new_stack/net_layer.h b/src/tests/kits/net/new_stack/net_layer.h new file mode 100644 index 0000000000..6ed0b24da5 --- /dev/null +++ b/src/tests/kits/net/new_stack/net_layer.h @@ -0,0 +1,43 @@ +/* net_layer.h + * definitions of networking layer(s) API + */ + +#ifndef OBOS_NET_LAYER_H +#define OBOS_NET_LAYER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct net_buffer; + +typedef struct net_layer { + struct net_layer *next; + char *name; + int level; + uint32 kind; // Filter, consumer, producer, etc... + int chaining_constraint; + struct net_layer_module_info *module; + struct net_layer **layers_above; + struct net_layer **layers_below; +} net_layer; + +struct net_layer_module_info { + module_info info; + + status_t (*init)(void * params); + status_t (*uninit)(net_layer *me); + status_t (*enable)(net_layer *me, bool enable); + status_t (*input_buffer)(net_layer *me, struct net_buffer *buffer); + status_t (*output_buffer)(net_layer *me, struct net_buffer *buffer); +}; + +#define NET_LAYER_MODULE_ROOT "network/layers/" + +#ifdef __cplusplus +} +#endif + +#endif /* OBOS_NET_LAYER_H */ diff --git a/src/tests/kits/net/new_stack/net_server.cpp b/src/tests/kits/net/new_stack/net_server.cpp index 9c3b6d543a..4b9e250997 100644 --- a/src/tests/kits/net/new_stack/net_server.cpp +++ b/src/tests/kits/net/new_stack/net_server.cpp @@ -74,7 +74,6 @@ int test_buffer() printf("data = [%s]\n", data); g_stack->delete_buffer(buffer, false); - return 0; } diff --git a/src/tests/kits/net/new_stack/net_server_x86.proj b/src/tests/kits/net/new_stack/net_server_x86.proj index 3c43e0dbfce2448dba7f763c7a0187f568dc1c27..f065f81a534b2b9206a889de86fe672eb7284b24 100644 GIT binary patch delta 140 zcmaD5b0>zw*VDz7fk7{1BgYOl76CiuhRF+f9XGSG-&4_xHvH=nP?WY$n*j_`q746D z&gE?=0E%C6RBvdxEe>XbB)>!%P8QVp$9QM5fUYR>=hTCf1@zP=`{{;GKCdgunv+6>3X|kZsKgI`>1$0H37bnC`=FwA|?57*5qypB<$iU#2 wn41b@ivY1eUTR5vW?o5ZQCebh>g0pEW}?18VFR#IAkhHCc5@~DfQAGB0Ph?wfB*mh diff --git a/src/tests/kits/net/new_stack/net_stack.h b/src/tests/kits/net/new_stack/net_stack.h index 54b3ab76dd..b4cf09c15a 100644 --- a/src/tests/kits/net/new_stack/net_stack.h +++ b/src/tests/kits/net/new_stack/net_stack.h @@ -23,15 +23,14 @@ typedef struct net_timer net_timer; typedef void (*net_timer_func)(net_timer *timer, void *cookie); // timer callback prototype // Generic lockers support - typedef int benaphore; #define create_benaphore(a, b) #define delete_benaphore(a) #define lock_benaphore(a) #define unlock_benaphore(a) -#include "net_interface.h" - +// Networking layer(s) definition +#include "net_layer.h" // Network stack main module definition @@ -46,11 +45,14 @@ struct net_stack_module_info { */ /* - * Data-Link layer + * Net layers handling */ - status_t (*register_interface)(ifnet_t *ifnet); - status_t (*unregister_interface)(ifnet_t *ifnet); + status_t (*register_layer)(net_layer *layer); + status_t (*unregister_layer)(net_layer *layer); + + status_t (*push_buffer_up)(net_layer *me, net_buffer *buffer); + status_t (*push_buffer_down)(net_layer *me, net_buffer *buffer); /* * Buffer(s) support