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