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:
@@ -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);
|
printf("data = [%s]\n", data);
|
||||||
|
|
||||||
g_stack->delete_buffer(buffer, false);
|
g_stack->delete_buffer(buffer, false);
|
||||||
|
|
||||||
return 0;
|
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
|
typedef void (*net_timer_func)(net_timer *timer, void *cookie); // timer callback prototype
|
||||||
|
|
||||||
// Generic lockers support
|
// Generic lockers support
|
||||||
|
|
||||||
typedef int benaphore;
|
typedef int benaphore;
|
||||||
#define create_benaphore(a, b)
|
#define create_benaphore(a, b)
|
||||||
#define delete_benaphore(a)
|
#define delete_benaphore(a)
|
||||||
#define lock_benaphore(a)
|
#define lock_benaphore(a)
|
||||||
#define unlock_benaphore(a)
|
#define unlock_benaphore(a)
|
||||||
|
|
||||||
#include "net_interface.h"
|
// Networking layer(s) definition
|
||||||
|
#include "net_layer.h"
|
||||||
|
|
||||||
// Network stack main module definition
|
// 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 (*register_layer)(net_layer *layer);
|
||||||
status_t (*unregister_interface)(ifnet_t *ifnet);
|
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
|
* Buffer(s) support
|
||||||
|
|||||||
Reference in New Issue
Block a user