Home | History | Annotate | Download | only in sound
      1 #ifndef __SOUND_MINORS_H
      2 #define __SOUND_MINORS_H
      3 
      4 /*
      5  *  MINOR numbers
      6  *
      7  *
      8  *   This program is free software; you can redistribute it and/or modify
      9  *   it under the terms of the GNU General Public License as published by
     10  *   the Free Software Foundation; either version 2 of the License, or
     11  *   (at your option) any later version.
     12  *
     13  *   This program is distributed in the hope that it will be useful,
     14  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
     15  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16  *   GNU General Public License for more details.
     17  *
     18  *   You should have received a copy of the GNU General Public License
     19  *   along with this program; if not, write to the Free Software
     20  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
     21  *
     22  */
     23 
     24 #define SNDRV_MINOR_DEVICES		32
     25 #define SNDRV_MINOR_CARD(minor)		((minor) >> 5)
     26 #define SNDRV_MINOR_DEVICE(minor)	((minor) & 0x001f)
     27 #define SNDRV_MINOR(card, dev)		(((card) << 5) | (dev))
     28 
     29 /* these minors can still be used for autoloading devices (/dev/aload*) */
     30 #define SNDRV_MINOR_CONTROL		0	/* 0 */
     31 #define SNDRV_MINOR_GLOBAL		1	/* 1 */
     32 #define SNDRV_MINOR_SEQUENCER		(SNDRV_MINOR_GLOBAL + 0 * 32)
     33 #define SNDRV_MINOR_TIMER		(SNDRV_MINOR_GLOBAL + 1 * 32)
     34 
     35 #ifndef CONFIG_SND_DYNAMIC_MINORS
     36 						/* 2 - 3 (reserved) */
     37 #define SNDRV_MINOR_HWDEP		4	/* 4 - 7 */
     38 #define SNDRV_MINOR_RAWMIDI		8	/* 8 - 15 */
     39 #define SNDRV_MINOR_PCM_PLAYBACK	16	/* 16 - 23 */
     40 #define SNDRV_MINOR_PCM_CAPTURE		24	/* 24 - 31 */
     41 
     42 /* same as first respective minor number to make minor allocation easier */
     43 #define SNDRV_DEVICE_TYPE_CONTROL	SNDRV_MINOR_CONTROL
     44 #define SNDRV_DEVICE_TYPE_HWDEP		SNDRV_MINOR_HWDEP
     45 #define SNDRV_DEVICE_TYPE_RAWMIDI	SNDRV_MINOR_RAWMIDI
     46 #define SNDRV_DEVICE_TYPE_PCM_PLAYBACK	SNDRV_MINOR_PCM_PLAYBACK
     47 #define SNDRV_DEVICE_TYPE_PCM_CAPTURE	SNDRV_MINOR_PCM_CAPTURE
     48 #define SNDRV_DEVICE_TYPE_SEQUENCER	SNDRV_MINOR_SEQUENCER
     49 #define SNDRV_DEVICE_TYPE_TIMER		SNDRV_MINOR_TIMER
     50 
     51 #else /* CONFIG_SND_DYNAMIC_MINORS */
     52 
     53 enum {
     54 	SNDRV_DEVICE_TYPE_CONTROL,
     55 	SNDRV_DEVICE_TYPE_SEQUENCER,
     56 	SNDRV_DEVICE_TYPE_TIMER,
     57 	SNDRV_DEVICE_TYPE_HWDEP,
     58 	SNDRV_DEVICE_TYPE_RAWMIDI,
     59 	SNDRV_DEVICE_TYPE_PCM_PLAYBACK,
     60 	SNDRV_DEVICE_TYPE_PCM_CAPTURE,
     61 };
     62 
     63 #endif /* CONFIG_SND_DYNAMIC_MINORS */
     64 
     65 #define SNDRV_MINOR_HWDEPS		4
     66 #define SNDRV_MINOR_RAWMIDIS		8
     67 #define SNDRV_MINOR_PCMS		8
     68 
     69 
     70 #ifdef CONFIG_SND_OSSEMUL
     71 
     72 #define SNDRV_MINOR_OSS_DEVICES		16
     73 #define SNDRV_MINOR_OSS_CARD(minor)	((minor) >> 4)
     74 #define SNDRV_MINOR_OSS_DEVICE(minor)	((minor) & 0x000f)
     75 #define SNDRV_MINOR_OSS(card, dev)	(((card) << 4) | (dev))
     76 
     77 #define SNDRV_MINOR_OSS_MIXER		0	/* /dev/mixer - OSS 3.XX compatible */
     78 #define SNDRV_MINOR_OSS_SEQUENCER	1	/* /dev/sequencer - OSS 3.XX compatible */
     79 #define	SNDRV_MINOR_OSS_MIDI		2	/* /dev/midi - native midi interface - OSS 3.XX compatible - UART */
     80 #define SNDRV_MINOR_OSS_PCM		3	/* alias */
     81 #define SNDRV_MINOR_OSS_PCM_8		3	/* /dev/dsp - 8bit PCM - OSS 3.XX compatible */
     82 #define SNDRV_MINOR_OSS_AUDIO		4	/* /dev/audio - SunSparc compatible */
     83 #define SNDRV_MINOR_OSS_PCM_16		5	/* /dev/dsp16 - 16bit PCM - OSS 3.XX compatible */
     84 #define SNDRV_MINOR_OSS_SNDSTAT		6	/* /dev/sndstat - for compatibility with OSS */
     85 #define SNDRV_MINOR_OSS_RESERVED7	7	/* reserved for future use */
     86 #define SNDRV_MINOR_OSS_MUSIC		8	/* /dev/music - OSS 3.XX compatible */
     87 #define SNDRV_MINOR_OSS_DMMIDI		9	/* /dev/dmmidi0 - this device can have another minor # with OSS */
     88 #define SNDRV_MINOR_OSS_DMFM		10	/* /dev/dmfm0 - this device can have another minor # with OSS */
     89 #define SNDRV_MINOR_OSS_MIXER1		11	/* alternate mixer */
     90 #define SNDRV_MINOR_OSS_PCM1		12	/* alternate PCM (GF-A-1) */
     91 #define SNDRV_MINOR_OSS_MIDI1		13	/* alternate midi - SYNTH */
     92 #define SNDRV_MINOR_OSS_DMMIDI1		14	/* alternate dmmidi - SYNTH */
     93 #define SNDRV_MINOR_OSS_RESERVED15	15	/* reserved for future use */
     94 
     95 #define SNDRV_OSS_DEVICE_TYPE_MIXER	0
     96 #define SNDRV_OSS_DEVICE_TYPE_SEQUENCER	1
     97 #define SNDRV_OSS_DEVICE_TYPE_PCM	2
     98 #define SNDRV_OSS_DEVICE_TYPE_MIDI	3
     99 #define SNDRV_OSS_DEVICE_TYPE_DMFM	4
    100 #define SNDRV_OSS_DEVICE_TYPE_SNDSTAT	5
    101 #define SNDRV_OSS_DEVICE_TYPE_MUSIC	6
    102 
    103 #define MODULE_ALIAS_SNDRV_MINOR(type) \
    104 	MODULE_ALIAS("sound-service-?-" __stringify(type))
    105 
    106 #endif
    107 
    108 #endif /* __SOUND_MINORS_H */
    109