Diff for /src/sys/dev/sound/pcm/dsp.c between versions 1.5 and 1.6

version 1.5, 2004/05/13 23:49:21 version 1.6, 2004/05/19 22:52:50
Line 453  dsp_ioctl(dev_t i_dev, u_long cmd, caddr Line 453  dsp_ioctl(dev_t i_dev, u_long cmd, caddr
         if (IOCGROUP(cmd) == 'M') {          if (IOCGROUP(cmd) == 'M') {
                 dev_t pdev;                  dev_t pdev;
   
                pdev = makedev(SND_CDEV_MAJOR, PCMMKMINOR(PCMUNIT(i_dev), SND_DEV_CTL, 0));                pdev = make_adhoc_dev(&dsp_cdevsw, 
                                 PCMMKMINOR(PCMUNIT(i_dev), SND_DEV_CTL, 0));
                 return mixer_ioctl(pdev, cmd, arg, mode, td);                  return mixer_ioctl(pdev, cmd, arg, mode, td);
         }          }
   
Line 575  dsp_ioctl(dev_t i_dev, u_long cmd, caddr Line 576  dsp_ioctl(dev_t i_dev, u_long cmd, caddr
                                      (wrch? chn_getformats(wrch) : 0xffffffff);                                       (wrch? chn_getformats(wrch) : 0xffffffff);
                         if (rdch && wrch)                          if (rdch && wrch)
                                 p->formats |= (dsp_get_flags(i_dev) & SD_F_SIMPLEX)? 0 : AFMT_FULLDUPLEX;                                  p->formats |= (dsp_get_flags(i_dev) & SD_F_SIMPLEX)? 0 : AFMT_FULLDUPLEX;
                        pdev = makedev(SND_CDEV_MAJOR, PCMMKMINOR(PCMUNIT(i_dev), SND_DEV_CTL, 0));                        pdev = make_adhoc_dev(&dsp_cdevsw, PCMMKMINOR(PCMUNIT(i_dev), SND_DEV_CTL, 0));
                         p->mixers = 1; /* default: one mixer */                          p->mixers = 1; /* default: one mixer */
                         p->inputs = pdev->si_drv1? mix_getdevs(pdev->si_drv1) : 0;                          p->inputs = pdev->si_drv1? mix_getdevs(pdev->si_drv1) : 0;
                         p->left = p->right = 100;                          p->left = p->right = 100;
Line 1049  dsp_mmap(dev_t i_dev, vm_offset_t offset Line 1050  dsp_mmap(dev_t i_dev, vm_offset_t offset
 int  int
 dsp_register(int unit, int channel)  dsp_register(int unit, int channel)
 {  {
           cdevsw_add(&dsp_cdevsw, PCMMKMINOR(-1, 0, 0), PCMMKMINOR(unit, 0, 0));
         make_dev(&dsp_cdevsw, PCMMKMINOR(unit, SND_DEV_DSP, channel),          make_dev(&dsp_cdevsw, PCMMKMINOR(unit, SND_DEV_DSP, channel),
                  UID_ROOT, GID_WHEEL, 0666, "dsp%d.%d", unit, channel);                   UID_ROOT, GID_WHEEL, 0666, "dsp%d.%d", unit, channel);
         make_dev(&dsp_cdevsw, PCMMKMINOR(unit, SND_DEV_DSP16, channel),          make_dev(&dsp_cdevsw, PCMMKMINOR(unit, SND_DEV_DSP16, channel),
Line 1071  dsp_registerrec(int unit, int channel) Line 1073  dsp_registerrec(int unit, int channel)
 int  int
 dsp_unregister(int unit, int channel)  dsp_unregister(int unit, int channel)
 {  {
        dev_t pdev;        cdevsw_remove(&dsp_cdevsw,
                        PCMMKMINOR(-1, 0, 0), PCMMKMINOR(unit, 0, 0));
        pdev = makedev(SND_CDEV_MAJOR, PCMMKMINOR(unit, SND_DEV_DSP, channel)); 
        destroy_dev(pdev); 
        pdev = makedev(SND_CDEV_MAJOR, PCMMKMINOR(unit, SND_DEV_DSP16, channel)); 
        destroy_dev(pdev); 
        pdev = makedev(SND_CDEV_MAJOR, PCMMKMINOR(unit, SND_DEV_AUDIO, channel)); 
        destroy_dev(pdev); 
 
         return 0;          return 0;
 }  }
   
 int  int
 dsp_unregisterrec(int unit, int channel)  dsp_unregisterrec(int unit, int channel)
 {  {
         dev_t pdev;  
   
         pdev = makedev(SND_CDEV_MAJOR, PCMMKMINOR(unit, SND_DEV_DSPREC, channel));  
         destroy_dev(pdev);  
   
         return 0;          return 0;
 }  }
   
Line 1124  dsp_clone(void *arg, char *name, int nam Line 1114  dsp_clone(void *arg, char *name, int nam
   
         cont = 1;          cont = 1;
         for (i = 0; cont; i++) {          for (i = 0; cont; i++) {
                pdev = makedev(SND_CDEV_MAJOR, PCMMKMINOR(unit, devtype, i));                pdev = make_adhoc_dev(&dsp_cdevsw, PCMMKMINOR(unit, devtype, i));
                 if (pdev->si_flags & SI_NAMED) {                  if (pdev->si_flags & SI_NAMED) {
                         if ((pdev->si_drv1 == NULL) && (pdev->si_drv2 == NULL)) {                          if ((pdev->si_drv1 == NULL) && (pdev->si_drv2 == NULL)) {
                                 *dev = pdev;                                  *dev = pdev;

Removed from v.1.5  
changed lines
  Added in v.1.6