From 6ae4ca3af181a778b55e19ca4cdd55818b5779c1 Mon Sep 17 00:00:00 2001 From: Philippe Houdoin Date: Thu, 25 Sep 2003 13:54:07 +0000 Subject: [PATCH] Add a find_layer() function to stack API, and start control() support to control any stack module. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4813 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/kits/net/new_stack/net_stack.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/tests/kits/net/new_stack/net_stack.h b/src/tests/kits/net/new_stack/net_stack.h index 4abd6a2ec1..0aaa2686b4 100644 --- a/src/tests/kits/net/new_stack/net_stack.h +++ b/src/tests/kits/net/new_stack/net_stack.h @@ -39,6 +39,7 @@ typedef struct net_layer_module_info { status_t (*init)(net_layer *me); status_t (*uninit)(net_layer *me); status_t (*enable)(net_layer *me, bool enable); + status_t (*control)(net_layer *me, int opcode, ...); status_t (*input_buffer)(net_layer *me, struct net_buffer *buffer); status_t (*output_buffer)(net_layer *me, struct net_buffer *buffer); } net_layer_module_info; @@ -80,21 +81,23 @@ struct net_stack_module_info { * Net layers handling */ - status_t (*register_layer)(const char *name, net_layer_module_info *module, void *cookie, net_layer **me); - status_t (*unregister_layer)(net_layer *layer); + status_t (*register_layer)(const char *name, net_layer_module_info *module, void *cookie, net_layer **me); + status_t (*unregister_layer)(net_layer *layer); + net_layer * (*find_layer)(const char *name); - status_t (*add_layer_attribut)(net_layer *layer, const char *name, int type, ...); - status_t (*remove_layer_attribut)(net_layer *layer, const char *name); - status_t (*find_layer_attribut)(net_layer *layer, const char *name, + status_t (*add_layer_attribut)(net_layer *layer, const char *name, int type, ...); + status_t (*remove_layer_attribut)(net_layer *layer, const char *name); + status_t (*find_layer_attribut)(net_layer *layer, const char *name, int *type, void **attribut, size_t *size); - status_t (*push_buffer_up)(net_layer *me, net_buffer *buffer); - status_t (*push_buffer_down)(net_layer *me, net_buffer *buffer); + 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 */ + net_buffer * (*new_buffer)(void); status_t (*delete_buffer)(net_buffer *buffer, bool interrupt_safe);