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
This commit is contained in:
parent
3945152869
commit
800e122ddc
43
src/tests/kits/net/new_stack/net_layer.h
Normal file
43
src/tests/kits/net/new_stack/net_layer.h
Normal file
@ -0,0 +1,43 @@
|
||||
/* net_layer.h
|
||||
* definitions of networking layer(s) API
|
||||
*/
|
||||
|
||||
#ifndef OBOS_NET_LAYER_H
|
||||
#define OBOS_NET_LAYER_H
|
||||
|
||||
#include <drivers/module.h>
|
||||
|
||||
#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 */
|
@ -74,7 +74,6 @@ int test_buffer()
|
||||
printf("data = [%s]\n", data);
|
||||
|
||||
g_stack->delete_buffer(buffer, false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Binary file not shown.
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user