xref: /netbsd-src/lib/libossaudio/oss_ioctl.c (revision 8170080d8e472ec3eaf475abefc490c1db8644ab)
1 /*	$NetBSD: oss_ioctl.c,v 1.1 2021/06/08 18:43:54 nia Exp $	*/
2 
3 #include <stdarg.h>
4 #include "internal.h"
5 
6 int
_oss_ioctl(int fd,unsigned long com,...)7 _oss_ioctl(int fd, unsigned long com, ...)
8 {
9 	va_list ap;
10 	void *argp;
11 
12 	va_start(ap, com);
13 	argp = va_arg(ap, void *);
14 	va_end(ap);
15 
16 	if (IOCGROUP(com) == 'P')
17 		return _oss_dsp_ioctl(fd, com, argp);
18 	else if (IOCGROUP(com) == 'M')
19 		return _oss3_mixer_ioctl(fd, com, argp);
20 	else if (IOCGROUP(com) == 'X')
21 		return _oss4_mixer_ioctl(fd, com, argp);
22 	else if (IOCGROUP(com) == 'Y')
23 		return _oss4_global_ioctl(fd, com, argp);
24 	else
25 		return ioctl(fd, com, argp);
26 }
27