Pull the rug from under the 'LKM Compatability' macro - PSEUDO_SET().

There are two 3rd party code chunks using this still - the IPv6 stuff and
i4b.  Give them a private copy as an alternative to changing them too much.

XXX sys/kernel.h still has a #include <sys/module.h> in it.  I will be
taking this out shortly - this affects a number of drivers.
This commit is contained in:
peter 2001-02-04 11:46:17 +00:00
parent 7a682ee864
commit e2c0e675c7
4 changed files with 59 additions and 27 deletions

View File

@ -59,6 +59,34 @@
#endif
#if defined(__FreeBSD__) && __FreeBSD__ >= 5
/*
* Deprecated LKM interface.
*/
#include <sys/module.h>
#define PSEUDO_SET(sym, name) \
static int name ## _modevent(module_t mod, int type, void *data) \
{ \
void (*initfunc)(void *) = (void (*)(void *))data; \
switch (type) { \
case MOD_LOAD: \
/* printf(#name " module load\n"); */ \
initfunc(NULL); \
break; \
case MOD_UNLOAD: \
printf(#name " module unload - not possible for this module type\n"); \
return EINVAL; \
} \
return 0; \
} \
static moduledata_t name ## _mod = { \
#name, \
name ## _modevent, \
(void *)sym \
}; \
DECLARE_MODULE(name, name ## _mod, SI_SUB_PSEUDO, SI_ORDER_ANY)
#endif
/*---------------*/
/* time handling */
/*---------------*/

View File

@ -57,6 +57,8 @@
#include <net/route.h>
#include <net/bpf.h>
#include <net/net_osdep.h>
extern int loioctl __P((struct ifnet *, u_long, caddr_t));
extern int looutput __P((struct ifnet *ifp,
struct mbuf *m, struct sockaddr *dst, struct rtentry *rt));

View File

@ -165,5 +165,31 @@ extern const char *if_name __P((struct ifnet *));
#define HAVE_OLD_BPF
/*
* Deprecated.
*/
#include <sys/module.h>
#define PSEUDO_SET(sym, name) \
static int name ## _modevent(module_t mod, int type, void *data) \
{ \
void (*initfunc)(void *) = (void (*)(void *))data; \
switch (type) { \
case MOD_LOAD: \
/* printf(#name " module load\n"); */ \
initfunc(NULL); \
break; \
case MOD_UNLOAD: \
printf(#name " module unload - not possible for this module type\n"); \
return EINVAL; \
} \
return 0; \
} \
static moduledata_t name ## _mod = { \
#name, \
name ## _modevent, \
(void *)sym \
}; \
DECLARE_MODULE(name, name ## _mod, SI_SUB_PSEUDO, SI_ORDER_ANY)
#endif /*_KERNEL*/
#endif /*__NET_NET_OSDEP_H_DEFINED_ */

View File

@ -52,6 +52,9 @@
/* for intrhook below */
#include <sys/queue.h>
/* THIS MUST DIE! */
#include <sys/module.h>
/* Global variables for the kernel. */
/* 1.1 */
@ -280,33 +283,6 @@ SYSINIT(__Tunable_init_ ## var, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, __Tunable_ ##
strncpy((var), tmp, (size)); \
(var)[(size) - 1] = 0;
/*
* Compatibility. To be deprecated after LKM is removed.
*/
#include <sys/module.h>
#define PSEUDO_SET(sym, name) \
static int name ## _modevent(module_t mod, int type, void *data) \
{ \
void (*initfunc)(void *) = (void (*)(void *))data; \
switch (type) { \
case MOD_LOAD: \
/* printf(#name " module load\n"); */ \
initfunc(NULL); \
break; \
case MOD_UNLOAD: \
printf(#name " module unload - not possible for this module type\n"); \
return EINVAL; \
} \
return 0; \
} \
static moduledata_t name ## _mod = { \
#name, \
name ## _modevent, \
(void *)sym \
}; \
DECLARE_MODULE(name, name ## _mod, SI_SUB_PSEUDO, SI_ORDER_ANY)
struct intr_config_hook {
TAILQ_ENTRY(intr_config_hook) ich_links;
void (*ich_func) __P((void *arg));