summaryrefslogtreecommitdiff
path: root/sys/compat/linux/common/linux_socketcall.c
diff options
context:
space:
mode:
authormycroft <mycroft@NetBSD.org>1996-03-08 04:55:59 +0000
committermycroft <mycroft@NetBSD.org>1996-03-08 04:55:59 +0000
commit6bc0baa1cefddd8bc60d118edbb03a9a33279345 (patch)
treef63a1560755c33caec9550b54659cb6ef1fad352 /sys/compat/linux/common/linux_socketcall.c
parent095bb565ba62eb747c11cfbee08030335fd22013 (diff)
Separate ioctl emulation by group. Add (minimal) audio emulation.
Diffstat (limited to 'sys/compat/linux/common/linux_socketcall.c')
-rw-r--r--sys/compat/linux/common/linux_socketcall.c52
1 files changed, 51 insertions, 1 deletions
diff --git a/sys/compat/linux/common/linux_socketcall.c b/sys/compat/linux/common/linux_socketcall.c
index 2ea5da6c036..750ea1183cf 100644
--- a/sys/compat/linux/common/linux_socketcall.c
+++ b/sys/compat/linux/common/linux_socketcall.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_socketcall.c,v 1.12 1995/10/07 06:27:13 mycroft Exp $ */
+/* $NetBSD: linux_socketcall.c,v 1.13 1996/03/08 04:56:05 mycroft Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@@ -702,3 +702,53 @@ linux_sys_socketcall(p, v, retval)
return ENOSYS;
}
}
+
+int
+linux_ioctl_socket(p, uap, retval)
+ register struct proc *p;
+ register struct linux_sys_ioctl_args /* {
+ syscallarg(int) fd;
+ syscallarg(u_long) com;
+ syscallarg(caddr_t) data;
+ } */ *uap;
+ register_t *retval;
+{
+ u_long com;
+ struct sys_ioctl_args ia;
+
+ com = SCARG(uap, com);
+ retval[0] = 0;
+
+ switch (com) {
+ case LINUX_SIOCGIFCONF:
+ SCARG(&ia, com) = OSIOCGIFCONF;
+ break;
+ case LINUX_SIOCGIFFLAGS:
+ SCARG(&ia, com) = SIOCGIFFLAGS;
+ break;
+ case LINUX_SIOCGIFADDR:
+ SCARG(&ia, com) = OSIOCGIFADDR;
+ break;
+ case LINUX_SIOCGIFDSTADDR:
+ SCARG(&ia, com) = OSIOCGIFDSTADDR;
+ break;
+ case LINUX_SIOCGIFBRDADDR:
+ SCARG(&ia, com) = OSIOCGIFBRDADDR;
+ break;
+ case LINUX_SIOCGIFNETMASK:
+ SCARG(&ia, com) = OSIOCGIFNETMASK;
+ break;
+ case LINUX_SIOCADDMULTI:
+ SCARG(&ia, com) = SIOCADDMULTI;
+ break;
+ case LINUX_SIOCDELMULTI:
+ SCARG(&ia, com) = SIOCDELMULTI;
+ break;
+ default:
+ return EINVAL;
+ }
+
+ SCARG(&ia, fd) = SCARG(uap, fd);
+ SCARG(&ia, data) = SCARG(uap, data);
+ return sys_ioctl(p, &ia, retval);
+}