f41325db5f
Replace the a.out emulation of 'struct linker_set' with something a little more flexible. <sys/linker_set.h> now provides macros for accessing elements and completely hides the implementation. The linker_set.h macros have been on the back burner in various forms since 1998 and has ideas and code from Mike Smith (SET_FOREACH()), John Polstra (ELF clue) and myself (cleaned up API and the conversion of the rest of the kernel to use it). The macros declare a strongly typed set. They return elements with the type that you declare the set with, rather than a generic void *. For ELF, we use the magic ld symbols (__start_<setname> and __stop_<setname>). Thanks to Richard Henderson <rth@redhat.com> for the trick about how to force ld to provide them for kld's. For a.out, we use the old linker_set struct. NOTE: the item lists are no longer null terminated. This is why the code impact is high in certain areas. The runtime linker has a new method to find the linker set boundaries depending on which backend format is in use. linker sets are still module/kld unfriendly and should never be used for anything that may be modular one day. Reviewed by: eivind |
||
---|---|---|
.. | ||
aac | ||
acpica | ||
advansys | ||
agp | ||
aha | ||
ahb | ||
aic | ||
aic7xxx | ||
amd | ||
amr | ||
an | ||
ar | ||
asr | ||
ata | ||
atkbdc | ||
awi | ||
bktr | ||
buslogic | ||
cardbus | ||
ccd | ||
cnw | ||
cs | ||
ct | ||
cy | ||
dc | ||
de | ||
dec | ||
dgb | ||
digi | ||
dpt | ||
ed | ||
eisa | ||
en | ||
ep | ||
ex | ||
fb | ||
fdc | ||
fe | ||
fxp | ||
hea | ||
hfa | ||
ic | ||
ichsmb | ||
ida | ||
ie | ||
iicbus | ||
isp | ||
ispfw | ||
joy | ||
kbd | ||
lge | ||
lmc | ||
lnc | ||
mc146818 | ||
mca | ||
mcd | ||
md | ||
mii | ||
mlx | ||
mly | ||
mse | ||
musycc | ||
ncv | ||
nge | ||
nmdm | ||
nsp | ||
null | ||
ofw | ||
pccard | ||
pccbb | ||
pcf | ||
pci | ||
pcic | ||
pdq | ||
ppbus | ||
ppc | ||
random | ||
ray | ||
rc | ||
rp | ||
scd | ||
sf | ||
si | ||
sio | ||
sk | ||
smbus | ||
sn | ||
snc | ||
snp | ||
sound | ||
speaker | ||
sr | ||
stg | ||
streams | ||
sym | ||
syscons | ||
tdfx | ||
ti | ||
twe | ||
tx | ||
usb | ||
vinum | ||
vr | ||
vx | ||
wds | ||
wi | ||
wl | ||
xe |