svn commit: r274219 - in user/dchagin/lemul/sys: amd64/linux amd64/linux32 compat/linux
Dmitry Chagin
dchagin at FreeBSD.org
Fri Nov 7 06:08:33 UTC 2014
Author: dchagin
Date: Fri Nov 7 06:08:32 2014
New Revision: 274219
URL: https://svnweb.freebsd.org/changeset/base/274219
Log:
Move device handler to common module (after r268138).
Modified:
user/dchagin/lemul/sys/amd64/linux/linux_sysvec.c
user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c
user/dchagin/lemul/sys/compat/linux/linux_common.c
Modified: user/dchagin/lemul/sys/amd64/linux/linux_sysvec.c
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux/linux_sysvec.c Fri Nov 7 04:47:46 2014 (r274218)
+++ user/dchagin/lemul/sys/amd64/linux/linux_sysvec.c Fri Nov 7 06:08:32 2014 (r274219)
@@ -117,7 +117,6 @@ extern char _binary_linux_locore_o_end;
extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL];
SET_DECLARE(linux_ioctl_handler_set, struct linux_ioctl_handler);
-SET_DECLARE(linux_device_handler_set, struct linux_device_handler);
static register_t * linux_copyout_strings(struct image_params *imgp);
static int elf_linux_fixup(register_t **stack_base,
@@ -944,7 +943,6 @@ linux64_elf_modevent(module_t mod, int t
Elf64_Brandinfo **brandinfo;
int error;
struct linux_ioctl_handler **lihp;
- struct linux_device_handler **ldhp;
error = 0;
@@ -957,8 +955,6 @@ linux64_elf_modevent(module_t mod, int t
if (error == 0) {
SET_FOREACH(lihp, linux_ioctl_handler_set)
linux_ioctl_register_handler(*lihp);
- SET_FOREACH(ldhp, linux_device_handler_set)
- linux_device_register_handler(*ldhp);
LIST_INIT(&futex_list);
mtx_init(&futex_mtx, "ftllk64", NULL, MTX_DEF);
stclohz = (stathz ? stathz : hz);
@@ -981,8 +977,6 @@ linux64_elf_modevent(module_t mod, int t
if (error == 0) {
SET_FOREACH(lihp, linux_ioctl_handler_set)
linux_ioctl_unregister_handler(*lihp);
- SET_FOREACH(ldhp, linux_device_handler_set)
- linux_device_unregister_handler(*ldhp);
mtx_destroy(&futex_mtx);
if (bootverbose)
printf("Linux ELF exec handler removed\n");
Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c Fri Nov 7 04:47:46 2014 (r274218)
+++ user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c Fri Nov 7 06:08:32 2014 (r274219)
@@ -118,7 +118,6 @@ extern char _binary_linux32_locore_o_end
extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL];
SET_DECLARE(linux_ioctl_handler_set, struct linux_ioctl_handler);
-SET_DECLARE(linux_device_handler_set, struct linux_device_handler);
static int elf_linux_fixup(register_t **stack_base,
struct image_params *iparams);
@@ -1154,7 +1153,6 @@ linux_elf_modevent(module_t mod, int typ
Elf32_Brandinfo **brandinfo;
int error;
struct linux_ioctl_handler **lihp;
- struct linux_device_handler **ldhp;
error = 0;
@@ -1167,8 +1165,6 @@ linux_elf_modevent(module_t mod, int typ
if (error == 0) {
SET_FOREACH(lihp, linux_ioctl_handler_set)
linux_ioctl_register_handler(*lihp);
- SET_FOREACH(ldhp, linux_device_handler_set)
- linux_device_register_handler(*ldhp);
LIST_INIT(&futex_list);
mtx_init(&futex_mtx, "ftllk", NULL, MTX_DEF);
stclohz = (stathz ? stathz : hz);
@@ -1191,8 +1187,6 @@ linux_elf_modevent(module_t mod, int typ
if (error == 0) {
SET_FOREACH(lihp, linux_ioctl_handler_set)
linux_ioctl_unregister_handler(*lihp);
- SET_FOREACH(ldhp, linux_device_handler_set)
- linux_device_unregister_handler(*ldhp);
mtx_destroy(&futex_mtx);
if (bootverbose)
printf("Linux ELF exec handler removed\n");
Modified: user/dchagin/lemul/sys/compat/linux/linux_common.c
==============================================================================
--- user/dchagin/lemul/sys/compat/linux/linux_common.c Fri Nov 7 04:47:46 2014 (r274218)
+++ user/dchagin/lemul/sys/compat/linux/linux_common.c Fri Nov 7 06:08:32 2014 (r274219)
@@ -38,9 +38,11 @@ __FBSDID("$FreeBSD$");
#include <compat/linux/linux_emul.h>
#include <compat/linux/linux_mib.h>
+#include <compat/linux/linux_util.h>
MODULE_VERSION(linux_common, 1);
+SET_DECLARE(linux_device_handler_set, struct linux_device_handler);
static eventhandler_tag linux_exec_tag;
static eventhandler_tag linux_thread_dtor_tag;
@@ -50,6 +52,7 @@ static eventhandler_tag linux_exit_tag;
static int
linux_common_modevent(module_t mod, int type, void *data)
{
+ struct linux_device_handler **ldhp;
switch(type) {
case MOD_LOAD:
@@ -60,9 +63,13 @@ linux_common_modevent(module_t mod, int
linux_proc_exec, NULL, 1000);
linux_thread_dtor_tag = EVENTHANDLER_REGISTER(thread_dtor,
linux_thread_dtor, NULL, EVENTHANDLER_PRI_ANY);
+ SET_FOREACH(ldhp, linux_device_handler_set)
+ linux_device_register_handler(*ldhp);
break;
case MOD_UNLOAD:
linux_osd_jail_deregister();
+ SET_FOREACH(ldhp, linux_device_handler_set)
+ linux_device_unregister_handler(*ldhp);
EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag);
EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag);
EVENTHANDLER_DEREGISTER(thread_dtor, linux_thread_dtor_tag);
More information about the svn-src-user
mailing list