linux(4): Move use_real_names knob to the linux.c
MI linux.[c|h] are the module independent in terms of the Linux emulation layer (ie, intended for both ISA - 32 & 64 bit), analogue of MD linux.h. There must be a code here that cannot be placed into the corresponding by common sense MI source and header files, i.e., code is machine independent, but ISA dependent. For the use_real_names knob, the code must be placed into the linux_socket.[c|h], however linux_socket is ISA dependent. MFC after: 2 weeks
This commit is contained in:
parent
acbbd5c039
commit
32fdc75fe7
sys/compat/linux
@ -59,6 +59,11 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
CTASSERT(LINUX_IFNAMSIZ == IFNAMSIZ);
|
||||
|
||||
static bool use_real_ifnames = false;
|
||||
SYSCTL_BOOL(_compat_linux, OID_AUTO, use_real_ifnames, CTLFLAG_RWTUN,
|
||||
&use_real_ifnames, 0,
|
||||
"Use FreeBSD interface names instead of generating ethN aliases");
|
||||
|
||||
static int bsd_to_linux_sigtbl[LINUX_SIGTBLSZ] = {
|
||||
LINUX_SIGHUP, /* SIGHUP */
|
||||
LINUX_SIGINT, /* SIGINT */
|
||||
@ -723,3 +728,10 @@ bsd_to_linux_poll_events(short bev, short *lev)
|
||||
|
||||
*lev = bits;
|
||||
}
|
||||
|
||||
bool
|
||||
linux_use_real_ifname(const struct ifnet *ifp)
|
||||
{
|
||||
|
||||
return (use_real_ifnames || !IFP_IS_ETH(ifp));
|
||||
}
|
||||
|
@ -284,6 +284,16 @@ struct l_statx {
|
||||
ktrstruct("l_sigset_t", (s), l)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Criteria for interface name translation
|
||||
*/
|
||||
#define IFP_IS_ETH(ifp) ((ifp)->if_type == IFT_ETHER)
|
||||
#define IFP_IS_LOOP(ifp) ((ifp)->if_type == IFT_LOOP)
|
||||
|
||||
struct ifnet;
|
||||
|
||||
bool linux_use_real_ifname(const struct ifnet *);
|
||||
|
||||
void linux_netlink_register(void);
|
||||
void linux_netlink_deregister(void);
|
||||
|
||||
|
@ -50,10 +50,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/systm.h>
|
||||
#include <sys/vnode.h>
|
||||
|
||||
#include <net/if.h>
|
||||
#include <net/if_var.h>
|
||||
#include <net/if_types.h>
|
||||
|
||||
#include <machine/stdarg.h>
|
||||
|
||||
#include <compat/linux/linux_dtrace.h>
|
||||
@ -86,11 +82,6 @@ SYSCTL_STRING(_compat_linux, OID_AUTO, emul_path, CTLFLAG_RWTUN,
|
||||
linux_emul_path, sizeof(linux_emul_path),
|
||||
"Linux runtime environment path");
|
||||
|
||||
static bool use_real_ifnames = false;
|
||||
SYSCTL_BOOL(_compat_linux, OID_AUTO, use_real_ifnames, CTLFLAG_RWTUN,
|
||||
&use_real_ifnames, 0,
|
||||
"Use FreeBSD interface names instead of generating ethN aliases");
|
||||
|
||||
/*
|
||||
* Search an alternate path before passing pathname arguments on to
|
||||
* system calls. Useful for keeping a separate 'emulation tree'.
|
||||
@ -324,9 +315,3 @@ linux_device_unregister_handler(struct linux_device_handler *d)
|
||||
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
bool
|
||||
linux_use_real_ifname(const struct ifnet *ifp)
|
||||
{
|
||||
return (use_real_ifnames || !IFP_IS_ETH(ifp));
|
||||
}
|
||||
|
@ -113,15 +113,6 @@ int linux_vn_get_major_minor(const struct vnode *vn, int *major, int *minor);
|
||||
char *linux_get_char_devices(void);
|
||||
void linux_free_get_char_devices(char *string);
|
||||
|
||||
/*
|
||||
* Criteria for interface name translation
|
||||
*/
|
||||
#define IFP_IS_ETH(ifp) ((ifp)->if_type == IFT_ETHER)
|
||||
#define IFP_IS_LOOP(ifp) ((ifp)->if_type == IFT_LOOP)
|
||||
|
||||
struct ifnet;
|
||||
bool linux_use_real_ifname(const struct ifnet *ifp);
|
||||
|
||||
#if defined(KTR)
|
||||
|
||||
#define KTR_LINUX KTR_SUBSYS
|
||||
|
Loading…
x
Reference in New Issue
Block a user