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