more bugs fixed -- found doing regression testing
-Erik
This commit is contained in:
parent
26439a2991
commit
f5d5e77321
26
Config.h
26
Config.h
@ -258,17 +258,11 @@
|
|||||||
//Turn on fbset readmode support
|
//Turn on fbset readmode support
|
||||||
//#define BB_FEATURE_FBSET_READMODE
|
//#define BB_FEATURE_FBSET_READMODE
|
||||||
//
|
//
|
||||||
// You must enable one or both of these features
|
// Support insmod/lsmod/rmmod for post 2.1 kernels
|
||||||
// Support installing modules from pre 2.1 kernels
|
//#define BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
//#define BB_FEATURE_INSMOD_OLD_KERNEL
|
|
||||||
// Support installing modules from kernel versions after 2.1.18
|
|
||||||
#define BB_FEATURE_INSMOD_NEW_KERNEL
|
|
||||||
//
|
//
|
||||||
// You must enable one or both of these features
|
// Support insmod/lsmod/rmmod for pre 2.1 kernels
|
||||||
// Support modules status from pre 2.1 kernels
|
//#define BB_FEATURE_OLD_MODULE_INTERFACE
|
||||||
//#define BB_FEATURE_LSMOD_OLD_KERNEL
|
|
||||||
// Support modules status from kernel versions after 2.1.18
|
|
||||||
#define BB_FEATURE_LSMOD_NEW_KERNEL
|
|
||||||
//
|
//
|
||||||
// Support module version checking
|
// Support module version checking
|
||||||
//#define BB_FEATURE_INSMOD_VERSION_CHECKING
|
//#define BB_FEATURE_INSMOD_VERSION_CHECKING
|
||||||
@ -308,6 +302,8 @@
|
|||||||
#ifdef BB_FEATURE_MOUNT_MTAB_SUPPORT
|
#ifdef BB_FEATURE_MOUNT_MTAB_SUPPORT
|
||||||
#define BB_MTAB
|
#define BB_MTAB
|
||||||
#endif
|
#endif
|
||||||
|
#else
|
||||||
|
#undef BB_MTAB
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
#if defined BB_FEATURE_SH_COMMAND_EDITING && defined BB_SH
|
#if defined BB_FEATURE_SH_COMMAND_EDITING && defined BB_SH
|
||||||
@ -320,12 +316,14 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
#ifdef BB_FEATURE_LINUXRC
|
#if defined BB_FEATURE_LINUXRC || defined BB_LINUXRC
|
||||||
#ifndef BB_INIT
|
#ifndef BB_INIT
|
||||||
#define BB_INIT
|
#define BB_INIT
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef BB_LINUXRC
|
||||||
#define BB_LINUXRC
|
#define BB_LINUXRC
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
//
|
//
|
||||||
#ifdef BB_GZIP
|
#ifdef BB_GZIP
|
||||||
#ifndef BB_GUNZIP
|
#ifndef BB_GUNZIP
|
||||||
@ -369,8 +367,8 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
#if defined BB_INSMOD
|
#if defined BB_INSMOD || defined BB_LSMOD
|
||||||
#ifndef BB_FEATURE_INSMOD_OLD_KERNEL
|
#ifndef BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
#define BB_FEATURE_INSMOD_NEW_KERNEL
|
#define BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -89,7 +89,37 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
struct BB_applet search_applet, *applet;
|
struct BB_applet search_applet, *applet;
|
||||||
const char *s;
|
const char *s;
|
||||||
applet_name = "busybox";
|
|
||||||
|
for (s = applet_name = argv[0]; *s != '\0';) {
|
||||||
|
if (*s++ == '/')
|
||||||
|
applet_name = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef BB_SH
|
||||||
|
/* Add in a special case hack -- whenever **argv == '-'
|
||||||
|
* (i.e. '-su' or '-sh') always invoke the shell */
|
||||||
|
if (**argv == '-' && *(*argv+1)!= '-') {
|
||||||
|
exit(((*(shell_main)) (argc, argv)));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Do a binary search to find the applet entry given the name. */
|
||||||
|
search_applet.name = applet_name;
|
||||||
|
applet = bsearch(&search_applet, applets, NUM_APPLETS,
|
||||||
|
sizeof(struct BB_applet), applet_name_compare);
|
||||||
|
if (applet != NULL) {
|
||||||
|
if (applet->usage && argv[1] && strcmp(argv[1], "--help") == 0)
|
||||||
|
usage(applet->usage);
|
||||||
|
exit((*(applet->main)) (argc, argv));
|
||||||
|
}
|
||||||
|
|
||||||
|
error_msg_and_die("applet not found\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int busybox_main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int col = 0, len, i;
|
||||||
|
|
||||||
#ifdef BB_FEATURE_INSTALLER
|
#ifdef BB_FEATURE_INSTALLER
|
||||||
/*
|
/*
|
||||||
@ -121,37 +151,6 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
#endif /* BB_FEATURE_INSTALLER */
|
#endif /* BB_FEATURE_INSTALLER */
|
||||||
|
|
||||||
for (s = applet_name = argv[0]; *s != '\0';) {
|
|
||||||
if (*s++ == '/')
|
|
||||||
applet_name = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef BB_SH
|
|
||||||
/* Add in a special case hack -- whenever **argv == '-'
|
|
||||||
* (i.e. '-su' or '-sh') always invoke the shell */
|
|
||||||
if (**argv == '-' && *(*argv+1)!= '-') {
|
|
||||||
exit(((*(shell_main)) (argc, argv)));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Do a binary search to find the applet entry given the name. */
|
|
||||||
search_applet.name = applet_name;
|
|
||||||
applet = bsearch(&search_applet, applets, NUM_APPLETS,
|
|
||||||
sizeof(struct BB_applet), applet_name_compare);
|
|
||||||
if (applet != NULL) {
|
|
||||||
if (applet->usage && argv[1] && strcmp(argv[1], "--help") == 0)
|
|
||||||
usage(applet->usage);
|
|
||||||
exit((*(applet->main)) (argc, argv));
|
|
||||||
}
|
|
||||||
|
|
||||||
return(busybox_main(argc, argv));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int busybox_main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int col = 0, len, i;
|
|
||||||
|
|
||||||
argc--;
|
argc--;
|
||||||
|
|
||||||
/* If we've already been here once, exit now */
|
/* If we've already been here once, exit now */
|
||||||
|
63
busybox.c
63
busybox.c
@ -89,7 +89,37 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
struct BB_applet search_applet, *applet;
|
struct BB_applet search_applet, *applet;
|
||||||
const char *s;
|
const char *s;
|
||||||
applet_name = "busybox";
|
|
||||||
|
for (s = applet_name = argv[0]; *s != '\0';) {
|
||||||
|
if (*s++ == '/')
|
||||||
|
applet_name = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef BB_SH
|
||||||
|
/* Add in a special case hack -- whenever **argv == '-'
|
||||||
|
* (i.e. '-su' or '-sh') always invoke the shell */
|
||||||
|
if (**argv == '-' && *(*argv+1)!= '-') {
|
||||||
|
exit(((*(shell_main)) (argc, argv)));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Do a binary search to find the applet entry given the name. */
|
||||||
|
search_applet.name = applet_name;
|
||||||
|
applet = bsearch(&search_applet, applets, NUM_APPLETS,
|
||||||
|
sizeof(struct BB_applet), applet_name_compare);
|
||||||
|
if (applet != NULL) {
|
||||||
|
if (applet->usage && argv[1] && strcmp(argv[1], "--help") == 0)
|
||||||
|
usage(applet->usage);
|
||||||
|
exit((*(applet->main)) (argc, argv));
|
||||||
|
}
|
||||||
|
|
||||||
|
error_msg_and_die("applet not found\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int busybox_main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int col = 0, len, i;
|
||||||
|
|
||||||
#ifdef BB_FEATURE_INSTALLER
|
#ifdef BB_FEATURE_INSTALLER
|
||||||
/*
|
/*
|
||||||
@ -121,37 +151,6 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
#endif /* BB_FEATURE_INSTALLER */
|
#endif /* BB_FEATURE_INSTALLER */
|
||||||
|
|
||||||
for (s = applet_name = argv[0]; *s != '\0';) {
|
|
||||||
if (*s++ == '/')
|
|
||||||
applet_name = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef BB_SH
|
|
||||||
/* Add in a special case hack -- whenever **argv == '-'
|
|
||||||
* (i.e. '-su' or '-sh') always invoke the shell */
|
|
||||||
if (**argv == '-' && *(*argv+1)!= '-') {
|
|
||||||
exit(((*(shell_main)) (argc, argv)));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Do a binary search to find the applet entry given the name. */
|
|
||||||
search_applet.name = applet_name;
|
|
||||||
applet = bsearch(&search_applet, applets, NUM_APPLETS,
|
|
||||||
sizeof(struct BB_applet), applet_name_compare);
|
|
||||||
if (applet != NULL) {
|
|
||||||
if (applet->usage && argv[1] && strcmp(argv[1], "--help") == 0)
|
|
||||||
usage(applet->usage);
|
|
||||||
exit((*(applet->main)) (argc, argv));
|
|
||||||
}
|
|
||||||
|
|
||||||
return(busybox_main(argc, argv));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int busybox_main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int col = 0, len, i;
|
|
||||||
|
|
||||||
argc--;
|
argc--;
|
||||||
|
|
||||||
/* If we've already been here once, exit now */
|
/* If we've already been here once, exit now */
|
||||||
|
@ -171,6 +171,8 @@ static unsigned short column = 0;
|
|||||||
static unsigned short terminal_width;
|
static unsigned short terminal_width;
|
||||||
static unsigned short column_width;
|
static unsigned short column_width;
|
||||||
static unsigned short tabstops;
|
static unsigned short tabstops;
|
||||||
|
#else
|
||||||
|
# define column_width COLUMN_WIDTH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int status = EXIT_SUCCESS;
|
static int status = EXIT_SUCCESS;
|
||||||
@ -429,8 +431,10 @@ void showfiles(struct dnode **dn, int nfiles)
|
|||||||
;
|
;
|
||||||
if (column_width < len) column_width= len;
|
if (column_width < len) column_width= len;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
ncols= (int)(terminal_width / (column_width + COLUMN_GAP));
|
ncols= (int)(terminal_width / (column_width + COLUMN_GAP));
|
||||||
|
#else
|
||||||
|
ncols= TERMINAL_WIDTH;
|
||||||
|
#endif
|
||||||
switch (style_fmt) {
|
switch (style_fmt) {
|
||||||
case STYLE_LONG: /* one record per line, extended info */
|
case STYLE_LONG: /* one record per line, extended info */
|
||||||
case STYLE_SINGLE: /* one record per line */
|
case STYLE_SINGLE: /* one record per line */
|
||||||
|
22
insmod.c
22
insmod.c
@ -78,7 +78,7 @@
|
|||||||
#ifndef MODUTILS_MODULE_H
|
#ifndef MODUTILS_MODULE_H
|
||||||
static const int MODUTILS_MODULE_H = 1;
|
static const int MODUTILS_MODULE_H = 1;
|
||||||
|
|
||||||
#ident "$Id: insmod.c,v 1.37 2001/01/24 19:07:09 andersen Exp $"
|
#ident "$Id: insmod.c,v 1.38 2001/01/24 23:34:48 andersen Exp $"
|
||||||
|
|
||||||
/* This file contains the structures used by the 2.0 and 2.1 kernels.
|
/* This file contains the structures used by the 2.0 and 2.1 kernels.
|
||||||
We do not use the kernel headers directly because we do not wish
|
We do not use the kernel headers directly because we do not wish
|
||||||
@ -284,7 +284,7 @@ int delete_module(const char *);
|
|||||||
#ifndef MODUTILS_OBJ_H
|
#ifndef MODUTILS_OBJ_H
|
||||||
static const int MODUTILS_OBJ_H = 1;
|
static const int MODUTILS_OBJ_H = 1;
|
||||||
|
|
||||||
#ident "$Id: insmod.c,v 1.37 2001/01/24 19:07:09 andersen Exp $"
|
#ident "$Id: insmod.c,v 1.38 2001/01/24 23:34:48 andersen Exp $"
|
||||||
|
|
||||||
/* The relocatable object is manipulated using elfin types. */
|
/* The relocatable object is manipulated using elfin types. */
|
||||||
|
|
||||||
@ -519,10 +519,6 @@ int arch_init_module (struct obj_file *f, struct new_module *);
|
|||||||
#define _PATH_MODULES "/lib/modules"
|
#define _PATH_MODULES "/lib/modules"
|
||||||
static const int STRVERSIONLEN = 32;
|
static const int STRVERSIONLEN = 32;
|
||||||
|
|
||||||
#if !defined(BB_FEATURE_INSMOD_NEW_KERNEL) && !defined(BB_FEATURE_INSMOD_OLD_KERNEL)
|
|
||||||
#error "Must have ether BB_FEATURE_INSMOD_NEW_KERNEL or BB_FEATURE_INSMOD_OLD_KERNEL defined"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*======================================================================*/
|
/*======================================================================*/
|
||||||
|
|
||||||
int flag_force_load = 0;
|
int flag_force_load = 0;
|
||||||
@ -615,7 +611,7 @@ extern int delete_module(const char *);
|
|||||||
|
|
||||||
-- Bryan Rittmeyer <bryan@ixiacom.com> */
|
-- Bryan Rittmeyer <bryan@ixiacom.com> */
|
||||||
|
|
||||||
#ifdef BB_FEATURE_INSMOD_OLD_KERNEL
|
#ifdef BB_FEATURE_OLD_MODULE_INTERFACE
|
||||||
_syscall1(int, get_kernel_syms, struct old_kernel_sym *, ks)
|
_syscall1(int, get_kernel_syms, struct old_kernel_sym *, ks)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1549,7 +1545,7 @@ old_get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
|
|||||||
|
|
||||||
#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
|
#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
|
||||||
|
|
||||||
#ifdef BB_FEATURE_INSMOD_OLD_KERNEL
|
#ifdef BB_FEATURE_OLD_MODULE_INTERFACE
|
||||||
|
|
||||||
/* Fetch all the symbols and divvy them up as appropriate for the modules. */
|
/* Fetch all the symbols and divvy them up as appropriate for the modules. */
|
||||||
|
|
||||||
@ -1757,7 +1753,7 @@ old_init_module(const char *m_name, struct obj_file *f,
|
|||||||
#define old_create_mod_use_count(x) TRUE
|
#define old_create_mod_use_count(x) TRUE
|
||||||
#define old_init_module(x, y, z) TRUE
|
#define old_init_module(x, y, z) TRUE
|
||||||
|
|
||||||
#endif /* BB_FEATURE_INSMOD_OLD_KERNEL */
|
#endif /* BB_FEATURE_OLD_MODULE_INTERFACE */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2036,7 +2032,7 @@ new_get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
|
|||||||
#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
|
#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
|
||||||
|
|
||||||
|
|
||||||
#ifdef BB_FEATURE_INSMOD_NEW_KERNEL
|
#ifdef BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
|
|
||||||
/* Fetch the loaded modules, and all currently exported symbols. */
|
/* Fetch the loaded modules, and all currently exported symbols. */
|
||||||
|
|
||||||
@ -2310,7 +2306,7 @@ new_init_module(const char *m_name, struct obj_file *f,
|
|||||||
#define new_create_module_ksymtab(x)
|
#define new_create_module_ksymtab(x)
|
||||||
#define query_module(v, w, x, y, z) -1
|
#define query_module(v, w, x, y, z) -1
|
||||||
|
|
||||||
#endif /* BB_FEATURE_INSMOD_NEW_KERNEL */
|
#endif /* BB_FEATURE_NEW_MODULE_INTERFACE */
|
||||||
|
|
||||||
|
|
||||||
/*======================================================================*/
|
/*======================================================================*/
|
||||||
@ -2997,7 +2993,7 @@ extern int insmod_main( int argc, char **argv)
|
|||||||
k_new_syscalls = !query_module(NULL, 0, NULL, 0, NULL);
|
k_new_syscalls = !query_module(NULL, 0, NULL, 0, NULL);
|
||||||
|
|
||||||
if (k_new_syscalls) {
|
if (k_new_syscalls) {
|
||||||
#ifdef BB_FEATURE_INSMOD_NEW_KERNEL
|
#ifdef BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
if (!new_get_kernel_symbols())
|
if (!new_get_kernel_symbols())
|
||||||
goto out;
|
goto out;
|
||||||
k_crcs = new_is_kernel_checksummed();
|
k_crcs = new_is_kernel_checksummed();
|
||||||
@ -3006,7 +3002,7 @@ extern int insmod_main( int argc, char **argv)
|
|||||||
goto out;
|
goto out;
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
#ifdef BB_FEATURE_INSMOD_OLD_KERNEL
|
#ifdef BB_FEATURE_OLD_MODULE_INTERFACE
|
||||||
if (!old_get_kernel_symbols(m_name))
|
if (!old_get_kernel_symbols(m_name))
|
||||||
goto out;
|
goto out;
|
||||||
k_crcs = old_is_kernel_checksummed();
|
k_crcs = old_is_kernel_checksummed();
|
||||||
|
6
ls.c
6
ls.c
@ -171,6 +171,8 @@ static unsigned short column = 0;
|
|||||||
static unsigned short terminal_width;
|
static unsigned short terminal_width;
|
||||||
static unsigned short column_width;
|
static unsigned short column_width;
|
||||||
static unsigned short tabstops;
|
static unsigned short tabstops;
|
||||||
|
#else
|
||||||
|
# define column_width COLUMN_WIDTH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int status = EXIT_SUCCESS;
|
static int status = EXIT_SUCCESS;
|
||||||
@ -429,8 +431,10 @@ void showfiles(struct dnode **dn, int nfiles)
|
|||||||
;
|
;
|
||||||
if (column_width < len) column_width= len;
|
if (column_width < len) column_width= len;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
ncols= (int)(terminal_width / (column_width + COLUMN_GAP));
|
ncols= (int)(terminal_width / (column_width + COLUMN_GAP));
|
||||||
|
#else
|
||||||
|
ncols= TERMINAL_WIDTH;
|
||||||
|
#endif
|
||||||
switch (style_fmt) {
|
switch (style_fmt) {
|
||||||
case STYLE_LONG: /* one record per line, extended info */
|
case STYLE_LONG: /* one record per line, extended info */
|
||||||
case STYLE_SINGLE: /* one record per line */
|
case STYLE_SINGLE: /* one record per line */
|
||||||
|
10
lsmod.c
10
lsmod.c
@ -40,11 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(BB_FEATURE_LSMOD_NEW_KERNEL) && !defined(BB_FEATURE_LSMOD_OLD_KERNEL)
|
#ifdef BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
#error "Must have ether BB_FEATURE_LSMOD_NEW_KERNEL or BB_FEATURE_LSMOD_OLD_KERNEL defined"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BB_FEATURE_LSMOD_NEW_KERNEL
|
|
||||||
|
|
||||||
struct module_info
|
struct module_info
|
||||||
{
|
{
|
||||||
@ -132,7 +128,7 @@ extern int lsmod_main(int argc, char **argv)
|
|||||||
return( 0);
|
return( 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /*BB_FEATURE_LSMOD_OLD_KERNEL*/
|
#else /*BB_FEATURE_OLD_MODULE_INTERFACE*/
|
||||||
|
|
||||||
#if ! defined BB_FEATURE_USE_PROCFS
|
#if ! defined BB_FEATURE_USE_PROCFS
|
||||||
#error Sorry, I depend on the /proc filesystem right now.
|
#error Sorry, I depend on the /proc filesystem right now.
|
||||||
@ -157,4 +153,4 @@ extern int lsmod_main(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /*BB_FEATURE_LSMOD_OLD_KERNEL*/
|
#endif /*BB_FEATURE_OLD_MODULE_INTERFACE*/
|
||||||
|
@ -78,7 +78,7 @@
|
|||||||
#ifndef MODUTILS_MODULE_H
|
#ifndef MODUTILS_MODULE_H
|
||||||
static const int MODUTILS_MODULE_H = 1;
|
static const int MODUTILS_MODULE_H = 1;
|
||||||
|
|
||||||
#ident "$Id: insmod.c,v 1.37 2001/01/24 19:07:09 andersen Exp $"
|
#ident "$Id: insmod.c,v 1.38 2001/01/24 23:34:48 andersen Exp $"
|
||||||
|
|
||||||
/* This file contains the structures used by the 2.0 and 2.1 kernels.
|
/* This file contains the structures used by the 2.0 and 2.1 kernels.
|
||||||
We do not use the kernel headers directly because we do not wish
|
We do not use the kernel headers directly because we do not wish
|
||||||
@ -284,7 +284,7 @@ int delete_module(const char *);
|
|||||||
#ifndef MODUTILS_OBJ_H
|
#ifndef MODUTILS_OBJ_H
|
||||||
static const int MODUTILS_OBJ_H = 1;
|
static const int MODUTILS_OBJ_H = 1;
|
||||||
|
|
||||||
#ident "$Id: insmod.c,v 1.37 2001/01/24 19:07:09 andersen Exp $"
|
#ident "$Id: insmod.c,v 1.38 2001/01/24 23:34:48 andersen Exp $"
|
||||||
|
|
||||||
/* The relocatable object is manipulated using elfin types. */
|
/* The relocatable object is manipulated using elfin types. */
|
||||||
|
|
||||||
@ -519,10 +519,6 @@ int arch_init_module (struct obj_file *f, struct new_module *);
|
|||||||
#define _PATH_MODULES "/lib/modules"
|
#define _PATH_MODULES "/lib/modules"
|
||||||
static const int STRVERSIONLEN = 32;
|
static const int STRVERSIONLEN = 32;
|
||||||
|
|
||||||
#if !defined(BB_FEATURE_INSMOD_NEW_KERNEL) && !defined(BB_FEATURE_INSMOD_OLD_KERNEL)
|
|
||||||
#error "Must have ether BB_FEATURE_INSMOD_NEW_KERNEL or BB_FEATURE_INSMOD_OLD_KERNEL defined"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*======================================================================*/
|
/*======================================================================*/
|
||||||
|
|
||||||
int flag_force_load = 0;
|
int flag_force_load = 0;
|
||||||
@ -615,7 +611,7 @@ extern int delete_module(const char *);
|
|||||||
|
|
||||||
-- Bryan Rittmeyer <bryan@ixiacom.com> */
|
-- Bryan Rittmeyer <bryan@ixiacom.com> */
|
||||||
|
|
||||||
#ifdef BB_FEATURE_INSMOD_OLD_KERNEL
|
#ifdef BB_FEATURE_OLD_MODULE_INTERFACE
|
||||||
_syscall1(int, get_kernel_syms, struct old_kernel_sym *, ks)
|
_syscall1(int, get_kernel_syms, struct old_kernel_sym *, ks)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1549,7 +1545,7 @@ old_get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
|
|||||||
|
|
||||||
#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
|
#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
|
||||||
|
|
||||||
#ifdef BB_FEATURE_INSMOD_OLD_KERNEL
|
#ifdef BB_FEATURE_OLD_MODULE_INTERFACE
|
||||||
|
|
||||||
/* Fetch all the symbols and divvy them up as appropriate for the modules. */
|
/* Fetch all the symbols and divvy them up as appropriate for the modules. */
|
||||||
|
|
||||||
@ -1757,7 +1753,7 @@ old_init_module(const char *m_name, struct obj_file *f,
|
|||||||
#define old_create_mod_use_count(x) TRUE
|
#define old_create_mod_use_count(x) TRUE
|
||||||
#define old_init_module(x, y, z) TRUE
|
#define old_init_module(x, y, z) TRUE
|
||||||
|
|
||||||
#endif /* BB_FEATURE_INSMOD_OLD_KERNEL */
|
#endif /* BB_FEATURE_OLD_MODULE_INTERFACE */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2036,7 +2032,7 @@ new_get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
|
|||||||
#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
|
#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
|
||||||
|
|
||||||
|
|
||||||
#ifdef BB_FEATURE_INSMOD_NEW_KERNEL
|
#ifdef BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
|
|
||||||
/* Fetch the loaded modules, and all currently exported symbols. */
|
/* Fetch the loaded modules, and all currently exported symbols. */
|
||||||
|
|
||||||
@ -2310,7 +2306,7 @@ new_init_module(const char *m_name, struct obj_file *f,
|
|||||||
#define new_create_module_ksymtab(x)
|
#define new_create_module_ksymtab(x)
|
||||||
#define query_module(v, w, x, y, z) -1
|
#define query_module(v, w, x, y, z) -1
|
||||||
|
|
||||||
#endif /* BB_FEATURE_INSMOD_NEW_KERNEL */
|
#endif /* BB_FEATURE_NEW_MODULE_INTERFACE */
|
||||||
|
|
||||||
|
|
||||||
/*======================================================================*/
|
/*======================================================================*/
|
||||||
@ -2997,7 +2993,7 @@ extern int insmod_main( int argc, char **argv)
|
|||||||
k_new_syscalls = !query_module(NULL, 0, NULL, 0, NULL);
|
k_new_syscalls = !query_module(NULL, 0, NULL, 0, NULL);
|
||||||
|
|
||||||
if (k_new_syscalls) {
|
if (k_new_syscalls) {
|
||||||
#ifdef BB_FEATURE_INSMOD_NEW_KERNEL
|
#ifdef BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
if (!new_get_kernel_symbols())
|
if (!new_get_kernel_symbols())
|
||||||
goto out;
|
goto out;
|
||||||
k_crcs = new_is_kernel_checksummed();
|
k_crcs = new_is_kernel_checksummed();
|
||||||
@ -3006,7 +3002,7 @@ extern int insmod_main( int argc, char **argv)
|
|||||||
goto out;
|
goto out;
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
#ifdef BB_FEATURE_INSMOD_OLD_KERNEL
|
#ifdef BB_FEATURE_OLD_MODULE_INTERFACE
|
||||||
if (!old_get_kernel_symbols(m_name))
|
if (!old_get_kernel_symbols(m_name))
|
||||||
goto out;
|
goto out;
|
||||||
k_crcs = old_is_kernel_checksummed();
|
k_crcs = old_is_kernel_checksummed();
|
||||||
|
@ -40,11 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(BB_FEATURE_LSMOD_NEW_KERNEL) && !defined(BB_FEATURE_LSMOD_OLD_KERNEL)
|
#ifdef BB_FEATURE_NEW_MODULE_INTERFACE
|
||||||
#error "Must have ether BB_FEATURE_LSMOD_NEW_KERNEL or BB_FEATURE_LSMOD_OLD_KERNEL defined"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BB_FEATURE_LSMOD_NEW_KERNEL
|
|
||||||
|
|
||||||
struct module_info
|
struct module_info
|
||||||
{
|
{
|
||||||
@ -132,7 +128,7 @@ extern int lsmod_main(int argc, char **argv)
|
|||||||
return( 0);
|
return( 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /*BB_FEATURE_LSMOD_OLD_KERNEL*/
|
#else /*BB_FEATURE_OLD_MODULE_INTERFACE*/
|
||||||
|
|
||||||
#if ! defined BB_FEATURE_USE_PROCFS
|
#if ! defined BB_FEATURE_USE_PROCFS
|
||||||
#error Sorry, I depend on the /proc filesystem right now.
|
#error Sorry, I depend on the /proc filesystem right now.
|
||||||
@ -157,4 +153,4 @@ extern int lsmod_main(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /*BB_FEATURE_LSMOD_OLD_KERNEL*/
|
#endif /*BB_FEATURE_OLD_MODULE_INTERFACE*/
|
||||||
|
Binary file not shown.
@ -137,7 +137,7 @@ extern void perror_msg_and_die(const char *s, ...)
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined BB_INIT || defined BB_MKSWAP || defined BB_MOUNT
|
#if defined BB_INIT || defined BB_MKSWAP || defined BB_MOUNT || defined BB_NFSMOUNT
|
||||||
/* Returns kernel version encoded as major*65536 + minor*256 + patch,
|
/* Returns kernel version encoded as major*65536 + minor*256 + patch,
|
||||||
* so, for example, to check if the kernel is greater than 2.2.11:
|
* so, for example, to check if the kernel is greater than 2.2.11:
|
||||||
* if (get_kernel_revision() <= 2*65536+2*256+11) { <stuff> }
|
* if (get_kernel_revision() <= 2*65536+2*256+11) { <stuff> }
|
||||||
@ -1386,7 +1386,7 @@ extern void *xcalloc(size_t nmemb, size_t size)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined BB_FEATURE_NFSMOUNT || defined BB_LS || defined BB_SH || defined BB_WGET
|
#if defined BB_NFSMOUNT || defined BB_LS || defined BB_SH || defined BB_WGET
|
||||||
# ifndef DMALLOC
|
# ifndef DMALLOC
|
||||||
extern char * xstrdup (const char *s) {
|
extern char * xstrdup (const char *s) {
|
||||||
char *t;
|
char *t;
|
||||||
@ -1404,7 +1404,7 @@ extern char * xstrdup (const char *s) {
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined BB_FEATURE_NFSMOUNT
|
#if defined BB_NFSMOUNT
|
||||||
extern char * xstrndup (const char *s, int n) {
|
extern char * xstrndup (const char *s, int n) {
|
||||||
char *t;
|
char *t;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user