summaryrefslogtreecommitdiff
path: root/sys/i386/linux
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/linux')
-rw-r--r--sys/i386/linux/linux.h3
-rw-r--r--sys/i386/linux/linux_sysvec.c11
2 files changed, 6 insertions, 8 deletions
diff --git a/sys/i386/linux/linux.h b/sys/i386/linux/linux.h
index fab3e298c02c..b4eec0985717 100644
--- a/sys/i386/linux/linux.h
+++ b/sys/i386/linux/linux.h
@@ -366,7 +366,6 @@ extern struct sysentvec elf_linux_sysvec;
/*
* Pluggable ioctl handlers
*/
-struct linker_set;
struct linux_ioctl_args;
struct proc;
@@ -378,9 +377,7 @@ struct linux_ioctl_handler {
};
int linux_ioctl_register_handler(struct linux_ioctl_handler *h);
-int linux_ioctl_register_handlers(struct linker_set *s);
int linux_ioctl_unregister_handler(struct linux_ioctl_handler *h);
-int linux_ioctl_unregister_handlers(struct linker_set *s);
/*
* open/fcntl flags
diff --git a/sys/i386/linux/linux_sysvec.c b/sys/i386/linux/linux_sysvec.c
index de82774f7edc..4dd664bc6e78 100644
--- a/sys/i386/linux/linux_sysvec.c
+++ b/sys/i386/linux/linux_sysvec.c
@@ -81,7 +81,7 @@ extern int linux_szsigcode;
extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL];
-extern struct linker_set linux_ioctl_handler_set;
+SET_DECLARE(linux_ioctl_handler_set, struct linux_ioctl_handler);
static int linux_fixup __P((register_t **stack_base,
struct image_params *iparams));
@@ -809,6 +809,7 @@ linux_elf_modevent(module_t mod, int type, void *data)
{
Elf32_Brandinfo **brandinfo;
int error;
+ struct linux_ioctl_handler **lihp;
error = 0;
@@ -819,8 +820,8 @@ linux_elf_modevent(module_t mod, int type, void *data)
if (elf_insert_brand_entry(*brandinfo) < 0)
error = EINVAL;
if (error == 0) {
- linux_ioctl_register_handlers(
- &linux_ioctl_handler_set);
+ SET_FOREACH(lihp, linux_ioctl_handler_set)
+ linux_ioctl_register_handler(*lihp);
if (bootverbose)
printf("Linux ELF exec handler installed\n");
} else
@@ -838,8 +839,8 @@ linux_elf_modevent(module_t mod, int type, void *data)
error = EINVAL;
}
if (error == 0) {
- linux_ioctl_unregister_handlers(
- &linux_ioctl_handler_set);
+ SET_FOREACH(lihp, linux_ioctl_handler_set)
+ linux_ioctl_unregister_handler(*lihp);
if (bootverbose)
printf("Linux ELF exec handler removed\n");
} else