1 #ifndef __NET_NET_NAMESPACE_WRAPPER_H
2 #define __NET_NET_NAMESPACE_WRAPPER_H 1
4 #include_next <net/net_namespace.h>
6 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
8 struct rpl_pernet_operations {
9 int (*init)(struct net *net);
10 void (*exit)(struct net *net);
13 struct pernet_operations ops;
15 #define pernet_operations rpl_pernet_operations
17 #define register_pernet_device rpl_register_pernet_gen_device
18 #define unregister_pernet_device rpl_unregister_pernet_gen_device
20 int compat_init_net(struct net *net, struct rpl_pernet_operations *pnet);
21 void compat_exit_net(struct net *net, struct rpl_pernet_operations *pnet);
23 #define DEFINE_COMPAT_PNET_REG_FUNC(TYPE) \
25 static struct rpl_pernet_operations *pnet_gen_##TYPE; \
26 static int compat_init_net_gen_##TYPE(struct net *net) \
28 return compat_init_net(net, pnet_gen_##TYPE); \
31 static void compat_exit_net_gen_##TYPE(struct net *net) \
33 compat_exit_net(net, pnet_gen_##TYPE); \
36 static int rpl_register_pernet_gen_##TYPE(struct rpl_pernet_operations *rpl_pnet) \
38 pnet_gen_##TYPE = rpl_pnet; \
39 rpl_pnet->ops.init = compat_init_net_gen_##TYPE; \
40 rpl_pnet->ops.exit = compat_exit_net_gen_##TYPE; \
41 return register_pernet_gen_##TYPE(pnet_gen_##TYPE->id, &rpl_pnet->ops); \
44 static void rpl_unregister_pernet_gen_##TYPE(struct rpl_pernet_operations *rpl_pnet) \
46 unregister_pernet_gen_##TYPE(*pnet_gen_##TYPE->id, &rpl_pnet->ops); \
49 #define DEFINE_COMPAT_PNET_REG_FUNC(TYPE)
52 #endif /* net/net_namespace.h wrapper */