/*      $NetBSD: oss_ioctl.c,v 1.1 2021/06/08 18:43:54 nia Exp $        */

#include <stdarg.h>
#include "internal.h"

int
_oss_ioctl(int fd, unsigned long com, ...)
{
       va_list ap;
       void *argp;

       va_start(ap, com);
       argp = va_arg(ap, void *);
       va_end(ap);

       if (IOCGROUP(com) == 'P')
               return _oss_dsp_ioctl(fd, com, argp);
       else if (IOCGROUP(com) == 'M')
               return _oss3_mixer_ioctl(fd, com, argp);
       else if (IOCGROUP(com) == 'X')
               return _oss4_mixer_ioctl(fd, com, argp);
       else if (IOCGROUP(com) == 'Y')
               return _oss4_global_ioctl(fd, com, argp);
       else
               return ioctl(fd, com, argp);
}