|
|
| 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; |