1 Sound Driver Configuration Notes
2 Michael Chastain, <mailto:mec@shout.net>
5 The Linux sound driver is derived from OSS/Free, a multi-platform
6 Unix sound driver by Hannu Savolainen. You can find out
7 more about OSS/Free and the commercial version, OSS/Linux, at
8 <http://www.opensound.com/ossfree>.
10 OSS/Free comes with the configuration program 'configure.c'. We have
11 discarded that program in favor of a standard Linux configuration file
14 Config.in defines a set of symbols with the form CONFIG_SOUND_*.
15 These are the -native symbols-. Here is a description:
19 This is the master symbol. It controls whether the basic
20 sound-driver code is resident, modular, or not present at all.
22 If the basic driver is resident, each primary and secondary
23 driver can be resident, modular, or not present.
25 If the basic driver is modular, each primary and secondary driver
26 can be modular or not present.
28 And if the basic driver is not present, all other drivers are
33 These are symbols such as CONFIG_SOUND_SB, CONFIG_SOUND_SB_MODULE,
34 CONFIG_SOUND_TRIX, or CONFIG_SOUND_TRIX_MODULE. Each driver
35 that the user can directly select is a primary driver and has
36 the usual pair of symbols: one resident and one modular.
38 Each primary driver can be either resident or modular.
42 Primary drivers require the support of secondary drivers, such
43 as ad1848.o and uart401.o.
45 In Makefile, each primary driver has a list of required secondary
46 drivers. The secondary driver requirements are merged and a
47 single definition is emitted at the end.
49 For each secondary driver: if any resident primary driver
50 requires it, that secondary driver will be resident. If no
51 resident primary driver requires it but some modular primary
52 driver requires it, then that secondary driver will be modular.
53 Otherwise that secondary driver will be not present.
55 OSS/Free also contains tests for secondary drivers. The Makefile
56 defines symbols for these drivers in EXTRA_CFLAGS.
58 CONFIG_AUDIO, CONFIG_MIDI, CONFIG_SEQUENCER
60 These three drivers are like secondary drivers, but not quite.
61 They can not yet be separated into modules. They are always
62 linked into the basic sound driver, whether they are needed
63 or not. (This is in case a primary driver is added to the
64 system later, as a module, and needs these facilities. If it
65 were possible to modularise them, then they would get built as
66 additional modules at that time).
68 The OSS/Free code does not use the native symbols directly, primarily
69 because it does not know about modules. I could edit the code, but that
70 would make it harder to upgrade to new versions of OSS/Free. Instead,
71 the OSS/Free code continues to use -legacy symbols-.
73 legacy.h defines all the legacy symbols to 1. This is because, whenever
74 OSS/Free tests a symbol, the Makefile has already arranged for that
75 driver to be included.