haiku/headers/private/net/net_module.h

58 lines
1.0 KiB
C
Raw Normal View History

/* net_module.h
* fundtions and staructures for all modules using the
* net_server
*/
#ifndef OBOS_NET_MODULE_H
#define OBOS_NET_MODULE_H
#include <kernel/OS.h>
#include <image.h>
#include "mbuf.h"
#include "net_misc.h"
#include "sys/socketvar.h"
#include "net/if.h"
#include "net/route.h"
#ifdef _KERNEL_MODE
#include <module.h>
#else
typedef struct module_info {
const char *name;
uint32 flags;
status_t (*std_ops)(int32, ...);
} module_info;
#define B_MODULE_INIT 1
#define B_MODULE_UNINIT 2
#define B_KEEP_LOADED 0x00000001
#endif
struct kernel_net_module_info {
module_info info;
int (*start)(void *);
int (*stop)(void);
};
struct net_module {
struct net_module *next;
char *name;
struct kernel_net_module_info *ptr;
#ifndef _KERNEL_MODE
image_id iid;
#endif
int status;
};
//XXX already in posix/sys/protosw.h
//enum {
// NET_LAYER1 = 1, /* link layer */
// NET_LAYER2, /* network layer */
// NET_LAYER3, /* transport layer */
// NET_LAYER4 /* socket layer */
//};
#endif /* OBOS_NET_MODULE_H */