- use (uC)libc functions. Saves a dozen bytes.
This commit is contained in:
		@@ -4184,8 +4184,14 @@ int insmod_main(int argc, char **argv)
 | 
				
			|||||||
#if ENABLE_FEATURE_2_6_MODULES
 | 
					#if ENABLE_FEATURE_2_6_MODULES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <sys/mman.h>
 | 
					#include <sys/mman.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __UCLIBC__
 | 
				
			||||||
 | 
					extern int init_module(void *module, unsigned long len, const char *options);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
#include <asm/unistd.h>
 | 
					#include <asm/unistd.h>
 | 
				
			||||||
#include <sys/syscall.h>
 | 
					#include <sys/syscall.h>
 | 
				
			||||||
 | 
					#define init_module(mod, len, opts) syscall(__NR_init_module, mod, len, opts)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* We use error numbers in a loose translation... */
 | 
					/* We use error numbers in a loose translation... */
 | 
				
			||||||
static const char *moderror(int err)
 | 
					static const char *moderror(int err)
 | 
				
			||||||
@@ -4257,10 +4263,9 @@ static int insmod_ng_main(int argc ATTRIBUTE_UNUSED, char **argv)
 | 
				
			|||||||
	map = xmalloc_open_read_close(filename, &len);
 | 
						map = xmalloc_open_read_close(filename, &len);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (syscall(__NR_init_module, map, len, options) != 0)
 | 
						if (init_module(map, len, options) != 0)
 | 
				
			||||||
		bb_error_msg_and_die("cannot insert '%s': %s",
 | 
							bb_error_msg_and_die("cannot insert '%s': %s",
 | 
				
			||||||
				filename, moderror(errno));
 | 
									filename, moderror(errno));
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,13 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "libbb.h"
 | 
					#include "libbb.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __UCLIBC__
 | 
				
			||||||
 | 
					extern int delete_module(const char *module, unsigned int flags);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
# include <sys/syscall.h>
 | 
					# include <sys/syscall.h>
 | 
				
			||||||
 | 
					# define delete_module(mod, flags) syscall(__NR_delete_module, mod, flags)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if ENABLE_FEATURE_2_6_MODULES
 | 
					#if ENABLE_FEATURE_2_6_MODULES
 | 
				
			||||||
static inline void filename2modname(char *modname, const char *afterslash)
 | 
					static inline void filename2modname(char *modname, const char *afterslash)
 | 
				
			||||||
@@ -59,7 +65,7 @@ int rmmod_main(int argc, char **argv)
 | 
				
			|||||||
		size_t pnmod = -1; /* previous number of modules */
 | 
							size_t pnmod = -1; /* previous number of modules */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		while (nmod != pnmod) {
 | 
							while (nmod != pnmod) {
 | 
				
			||||||
			if (syscall(__NR_delete_module, NULL, flags) != 0) {
 | 
								if (delete_module(NULL, flags) != 0) {
 | 
				
			||||||
				if (errno == EFAULT)
 | 
									if (errno == EFAULT)
 | 
				
			||||||
					return ret;
 | 
										return ret;
 | 
				
			||||||
				bb_perror_msg_and_die("rmmod");
 | 
									bb_perror_msg_and_die("rmmod");
 | 
				
			||||||
@@ -84,7 +90,7 @@ int rmmod_main(int argc, char **argv)
 | 
				
			|||||||
			filename2modname(misc_buf, bb_basename(argv[n]));
 | 
								filename2modname(misc_buf, bb_basename(argv[n]));
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (syscall(__NR_delete_module, ENABLE_FEATURE_2_6_MODULES ? misc_buf : argv[n], flags)) {
 | 
							if (delete_module(ENABLE_FEATURE_2_6_MODULES ? misc_buf : argv[n], flags)) {
 | 
				
			||||||
			bb_simple_perror_msg(argv[n]);
 | 
								bb_simple_perror_msg(argv[n]);
 | 
				
			||||||
			ret = EXIT_FAILURE;
 | 
								ret = EXIT_FAILURE;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user