freebsd-skq/sys/conf/files.pc98
John Baldwin c6a37e8413 Divorce critical sections from spinlocks. Critical sections as denoted by
critical_enter() and critical_exit() are now solely a mechanism for
deferring kernel preemptions.  They no longer have any affect on
interrupts.  This means that standalone critical sections are now very
cheap as they are simply unlocked integer increments and decrements for the
common case.

Spin mutexes now use a separate KPI implemented in MD code: spinlock_enter()
and spinlock_exit().  This KPI is responsible for providing whatever MD
guarantees are needed to ensure that a thread holding a spin lock won't
be preempted by any other code that will try to lock the same lock.  For
now all archs continue to block interrupts in a "spinlock section" as they
did formerly in all critical sections.  Note that I've also taken this
opportunity to push a few things into MD code rather than MI.  For example,
critical_fork_exit() no longer exists.  Instead, MD code ensures that new
threads have the correct state when they are created.  Also, we no longer
try to fixup the idlethreads for APs in MI code.  Instead, each arch sets
the initial curthread and adjusts the state of the idle thread it borrows
in order to perform the initial context switch.

This change is largely a big NOP, but the cleaner separation it provides
will allow for more efficient alternative locking schemes in other parts
of the kernel (bare critical sections rather than per-CPU spin mutexes
for per-CPU data for example).

Reviewed by:	grehan, cognet, arch@, others
Tested on:	i386, alpha, sparc64, powerpc, arm, possibly more
2005-04-04 21:53:56 +00:00

382 lines
14 KiB
Plaintext

# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
# modified for PC-9801/PC-9821
#
# $FreeBSD$
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
# dependency lines other than the first are silently ignored.
#
linux_genassym.o optional compat_linux \
dependency "$S/i386/linux/linux_genassym.c" \
compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \
no-obj no-implicit-rule \
clean "linux_genassym.o"
#
linux_assym.h optional compat_linux \
dependency "$S/kern/genassym.sh linux_genassym.o" \
compile-with "sh $S/kern/genassym.sh linux_genassym.o > ${.TARGET}" \
no-obj no-implicit-rule before-depend \
clean "linux_assym.h"
#
svr4_genassym.o optional compat_svr4 \
dependency "$S/i386/svr4/svr4_genassym.c" \
compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \
no-obj no-implicit-rule \
clean "svr4_genassym.o"
#
svr4_assym.h optional compat_svr4 \
dependency "$S/kern/genassym.sh svr4_genassym.o" \
compile-with "sh $S/kern/genassym.sh svr4_genassym.o > ${.TARGET}" \
no-obj no-implicit-rule before-depend \
clean "svr4_assym.h"
#
ukbdmap.h optional ukbd_dflt_keymap \
compile-with "/usr/sbin/kbdcontrol -L ${UKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > ukbdmap.h" \
no-obj no-implicit-rule before-depend \
clean "ukbdmap.h"
#
trlld.o optional oltr \
dependency "$S/contrib/dev/oltr/i386-elf.trlld.o.uu" \
compile-with "uudecode < $S/contrib/dev/oltr/i386-elf.trlld.o.uu" \
no-implicit-rule
#
compat/linux/linux_file.c optional compat_linux
compat/linux/linux_getcwd.c optional compat_linux
compat/linux/linux_ioctl.c optional compat_linux
compat/linux/linux_ipc.c optional compat_linux
compat/linux/linux_mib.c optional compat_linux
compat/linux/linux_misc.c optional compat_linux
compat/linux/linux_signal.c optional compat_linux
compat/linux/linux_socket.c optional compat_linux
compat/linux/linux_stats.c optional compat_linux
compat/linux/linux_sysctl.c optional compat_linux
compat/linux/linux_uid16.c optional compat_linux
compat/linux/linux_util.c optional compat_linux
compat/pecoff/imgact_pecoff.c optional pecoff_support
compat/svr4/imgact_svr4.c optional compat_svr4
compat/svr4/svr4_fcntl.c optional compat_svr4
compat/svr4/svr4_filio.c optional compat_svr4
compat/svr4/svr4_ioctl.c optional compat_svr4
compat/svr4/svr4_ipc.c optional compat_svr4
compat/svr4/svr4_misc.c optional compat_svr4
compat/svr4/svr4_resource.c optional compat_svr4
compat/svr4/svr4_signal.c optional compat_svr4
compat/svr4/svr4_socket.c optional compat_svr4
compat/svr4/svr4_sockio.c optional compat_svr4
compat/svr4/svr4_stat.c optional compat_svr4
compat/svr4/svr4_stream.c optional compat_svr4
compat/svr4/svr4_syscallnames.c optional compat_svr4
compat/svr4/svr4_sysent.c optional compat_svr4
compat/svr4/svr4_sysvec.c optional compat_svr4
compat/svr4/svr4_termios.c optional compat_svr4
compat/svr4/svr4_ttold.c optional compat_svr4
contrib/dev/oltr/if_oltr.c optional oltr
contrib/dev/oltr/if_oltr_pci.c optional oltr pci
contrib/dev/oltr/trlldbm.c optional oltr
contrib/dev/oltr/trlldhm.c optional oltr
contrib/dev/oltr/trlldmac.c optional oltr
bf_enc.o optional ipsec ipsec_esp \
dependency "$S/crypto/blowfish/arch/i386/bf_enc.S $S/crypto/blowfish/arch/i386/bf_enc_586.S $S/crypto/blowfish/arch/i386/bf_enc_686.S" \
compile-with "${CC} -c -I$S/crypto/blowfish/arch/i386 ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}" \
no-implicit-rule
crypto/des/arch/i386/des_enc.S optional ipsec ipsec_esp
crypto/des/des_ecb.c optional netsmbcrypto
crypto/des/arch/i386/des_enc.S optional netsmbcrypto
crypto/des/des_setkey.c optional netsmbcrypto
bf_enc.o optional crypto \
dependency "$S/crypto/blowfish/arch/i386/bf_enc.S $S/crypto/blowfish/arch/i386/bf_enc_586.S $S/crypto/blowfish/arch/i386/bf_enc_686.S" \
compile-with "${CC} -c -I$S/crypto/blowfish/arch/i386 ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}" \
no-implicit-rule
crypto/des/arch/i386/des_enc.S optional crypto
crypto/des/des_ecb.c optional crypto
crypto/des/des_setkey.c optional crypto
dev/aic/aic_cbus.c optional aic isa
dev/aic/aic_pccard.c optional aic card
dev/an/if_an_pccard.c optional an card
dev/ar/if_ar.c optional ar
dev/ar/if_ar_pci.c optional ar pci
dev/ata/ata-card.c optional ata card
dev/awi/if_awi_pccard.c optional awi card
dev/cnw/if_cnw.c optional cnw card
dev/cp/cpddk.c optional cp
dev/cp/if_cp.c optional cp
dev/cs/if_cs_pccard.c optional cs card
dev/ct/bshw_machdep.c optional ct
dev/ct/ct.c optional ct
dev/ct/ct_isa.c optional ct isa
dev/ed/if_ed_cbus.c optional ed isa
dev/ed/if_ed_pccard.c optional ed card
dev/ed/if_ed_wd80x3.c optional ed isa
dev/ep/if_ep_pccard.c optional ep card
dev/ex/if_ex_pccard.c optional ex card
dev/fb/fb.c optional fb
dev/fb/fb.c optional gdc
dev/fb/splash.c optional splash
dev/fe/if_fe_cbus.c optional fe isa
dev/fe/if_fe_pccard.c optional fe card
dev/io/iodev.c optional io
dev/kbd/kbd.c optional pckbd
dev/kbd/kbd.c optional sc
dev/kbd/kbd.c optional ukbd
dev/lnc/if_lnc_cbus.c optional lnc isa
dev/mem/memutil.c optional mem
dev/mse/mse.c optional mse
dev/mse/mse_cbus.c optional mse isa
dev/ncv/ncr53c500_pccard.c optional ncv card
dev/nsp/nsp_pccard.c optional nsp card
dev/ppc/ppc_puc.c optional ppc puc pci
dev/ray/if_ray.c optional ray card
dev/sbni/if_sbni.c optional sbni
dev/sbni/if_sbni_pci.c optional sbni pci
dev/sio/sio_pccard.c optional sio card
dev/sn/if_sn_pccard.c optional sn card
dev/snc/dp83932.c optional snc
dev/snc/dp83932subr.c optional snc
dev/snc/if_snc.c optional snc
dev/snc/if_snc_cbus.c optional snc isa
dev/snc/if_snc_pccard.c optional snc card
dev/stg/tmc18c30_pccard.c optional stg card
dev/syscons/apm/apm_saver.c optional apm_saver apm
dev/syscons/schistory.c optional sc
dev/syscons/scmouse.c optional sc
dev/syscons/scterm.c optional sc
dev/syscons/scterm-dumb.c optional sc
dev/syscons/scvidctl.c optional sc
dev/syscons/syscons.c optional sc
dev/syscons/sysmouse.c optional sc
dev/uart/uart_cpu_pc98.c optional uart
dev/wi/if_wi_pccard.c optional wi card
dev/xe/if_xe_pccard.c optional xe card
geom/geom_bsd.c standard
geom/geom_bsd_enc.c standard
geom/geom_pc98.c standard
geom/geom_pc98_enc.c standard
i386/bios/apm.c optional apm
#i386/i386/apic_vector.s optional apic
i386/i386/atomic.c standard \
compile-with "${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}"
i386/i386/autoconf.c standard
i386/i386/bios.c standard
i386/i386/bioscall.s standard
i386/i386/busdma_machdep.c standard
i386/i386/db_disasm.c optional ddb
i386/i386/db_interface.c optional ddb
i386/i386/db_trace.c optional ddb
i386/i386/dump_machdep.c standard
i386/i386/elf_machdep.c standard
i386/i386/exception.s standard
i386/i386/gdb_machdep.c optional gdb
i386/i386/i686_mem.c optional mem
i386/i386/identcpu.c standard
i386/i386/in_cksum.c optional inet
i386/i386/initcpu.c standard
i386/i386/intr_machdep.c standard
i386/i386/io.c optional io
i386/i386/io_apic.c optional apic
i386/i386/k6_mem.c optional mem
i386/i386/legacy.c standard
i386/i386/local_apic.c optional apic
i386/i386/locore.s standard no-obj
i386/i386/mem.c optional mem
i386/i386/mp_clock.c optional smp
i386/i386/mp_machdep.c optional smp
i386/i386/mp_watchdog.c optional mp_watchdog smp
i386/i386/mpboot.s optional smp
i386/i386/mptable.c optional apic
i386/i386/mptable_pci.c optional apic pci
i386/i386/nexus.c standard
i386/i386/perfmon.c optional perfmon
i386/i386/perfmon.c optional perfmon profiling-routine
i386/i386/pmap.c standard
i386/i386/support.s standard
i386/i386/swtch.s standard
i386/i386/sys_machdep.c standard
i386/i386/trap.c standard
i386/i386/tsc.c standard
i386/i386/uio_machdep.c standard
i386/i386/vm86.c standard
i386/i386/vm_machdep.c standard
i386/ibcs2/ibcs2_errno.c optional ibcs2
i386/ibcs2/ibcs2_fcntl.c optional ibcs2
i386/ibcs2/ibcs2_ioctl.c optional ibcs2
i386/ibcs2/ibcs2_ipc.c optional ibcs2
i386/ibcs2/ibcs2_isc.c optional ibcs2
i386/ibcs2/ibcs2_isc_sysent.c optional ibcs2
i386/ibcs2/ibcs2_misc.c optional ibcs2
i386/ibcs2/ibcs2_msg.c optional ibcs2
i386/ibcs2/ibcs2_other.c optional ibcs2
i386/ibcs2/ibcs2_signal.c optional ibcs2
i386/ibcs2/ibcs2_socksys.c optional ibcs2
i386/ibcs2/ibcs2_stat.c optional ibcs2
i386/ibcs2/ibcs2_sysent.c optional ibcs2
i386/ibcs2/ibcs2_sysi86.c optional ibcs2
i386/ibcs2/ibcs2_sysvec.c optional ibcs2
i386/ibcs2/ibcs2_util.c optional ibcs2
i386/ibcs2/ibcs2_xenix.c optional ibcs2
i386/ibcs2/ibcs2_xenix_sysent.c optional ibcs2
i386/ibcs2/imgact_coff.c optional ibcs2
i386/isa/atpic.c standard
#i386/isa/atpic_vector.s standard
i386/isa/elink.c optional ep
i386/isa/elink.c optional ie
i386/isa/isa.c optional isa
i386/isa/npx.c optional npx
i386/isa/pmtimer.c optional pmtimer
i386/isa/prof_machdep.c optional profiling-routine
i386/isa/spkr.c optional speaker
i386/linux/imgact_linux.c optional compat_linux
i386/linux/linux_dummy.c optional compat_linux
i386/linux/linux_locore.s optional compat_linux \
dependency "linux_assym.h"
i386/linux/linux_machdep.c optional compat_linux
i386/linux/linux_ptrace.c optional compat_linux
i386/linux/linux_sysent.c optional compat_linux
i386/linux/linux_sysvec.c optional compat_linux
i386/pci/pci_bus.c optional pci
i386/pci/pci_cfgreg.c optional pci
i386/pci/pci_pir.c optional pci
i386/svr4/svr4_locore.s optional compat_svr4 \
dependency "svr4_assym.h" \
warning "COMPAT_SVR4 is broken and should be avoided"
i386/svr4/svr4_machdep.c optional compat_svr4
#
# isdn4bsd, needed for isic | iwic | ifpi | ifpi2 | ihfc | ifpnp | itjc
#
i4b/layer1/i4b_hdlc.c optional itjc
i4b/layer1/i4b_hdlc.c optional ihfc
i4b/layer1/i4b_l1dmux.c optional isic
i4b/layer1/i4b_l1lib.c optional isic
i4b/layer1/i4b_l1dmux.c optional iwic
i4b/layer1/i4b_l1lib.c optional iwic
i4b/layer1/i4b_l1dmux.c optional ifpi
i4b/layer1/i4b_l1lib.c optional ifpi
i4b/layer1/i4b_l1dmux.c optional ifpi2
i4b/layer1/i4b_l1lib.c optional ifpi2
i4b/layer1/i4b_l1dmux.c optional ihfc
i4b/layer1/i4b_l1lib.c optional ihfc
i4b/layer1/i4b_l1dmux.c optional ifpnp
i4b/layer1/i4b_l1lib.c optional ifpnp
i4b/layer1/i4b_l1dmux.c optional itjc
i4b/layer1/i4b_l1lib.c optional itjc
#
# isdn4bsd, isic
#
i4b/layer1/isic/i4b_asuscom_ipac.c optional isic
i4b/layer1/isic/i4b_avm_a1.c optional isic
i4b/layer1/isic/i4b_bchan.c optional isic
i4b/layer1/isic/i4b_ctx_s0P.c optional isic
i4b/layer1/isic/i4b_drn_ngo.c optional isic
i4b/layer1/isic/i4b_dynalink.c optional isic
i4b/layer1/isic/i4b_elsa_qs1i.c optional isic
i4b/layer1/isic/i4b_elsa_qs1p.c optional isic pci
i4b/layer1/isic/i4b_elsa_pcc16.c optional isic
i4b/layer1/isic/i4b_hscx.c optional isic
i4b/layer1/isic/i4b_isac.c optional isic
i4b/layer1/isic/i4b_isic.c optional isic
i4b/layer1/isic/i4b_isic_isa.c optional isic
i4b/layer1/isic/i4b_isic_pnp.c optional isic
i4b/layer1/isic/i4b_itk_ix1.c optional isic
i4b/layer1/isic/i4b_l1.c optional isic
i4b/layer1/isic/i4b_l1fsm.c optional isic
i4b/layer1/isic/i4b_siemens_isurf.c optional isic
i4b/layer1/isic/i4b_sws.c optional isic
i4b/layer1/isic/i4b_tel_s016.c optional isic
i4b/layer1/isic/i4b_tel_s0163.c optional isic
i4b/layer1/isic/i4b_tel_s08.c optional isic
i4b/layer1/isic/i4b_usr_sti.c optional isic
i4b/layer1/isic/i4b_diva.c optional isic
#
# isdn4bsd, iwic
#
i4b/layer1/iwic/i4b_iwic_pci.c optional iwic pci
i4b/layer1/iwic/i4b_iwic_dchan.c optional iwic pci
i4b/layer1/iwic/i4b_iwic_bchan.c optional iwic pci
i4b/layer1/iwic/i4b_iwic_fsm.c optional iwic pci
i4b/layer1/iwic/i4b_iwic_l1if.c optional iwic pci
#
# isdn4bsd, ifpi
#
i4b/layer1/ifpi/i4b_ifpi_pci.c optional ifpi pci
i4b/layer1/ifpi/i4b_ifpi_isac.c optional ifpi pci
i4b/layer1/ifpi/i4b_ifpi_l1.c optional ifpi pci
i4b/layer1/ifpi/i4b_ifpi_l1fsm.c optional ifpi pci
#
# isdn4bsd, ifpi2
#
i4b/layer1/ifpi2/i4b_ifpi2_pci.c optional ifpi2 pci
i4b/layer1/ifpi2/i4b_ifpi2_isacsx.c optional ifpi2 pci
i4b/layer1/ifpi2/i4b_ifpi2_l1.c optional ifpi2 pci
i4b/layer1/ifpi2/i4b_ifpi2_l1fsm.c optional ifpi2 pci
#
# isdn4bsd, ifpnp
#
i4b/layer1/ifpnp/i4b_ifpnp_avm.c optional ifpnp
i4b/layer1/ifpnp/i4b_ifpnp_isac.c optional ifpnp
i4b/layer1/ifpnp/i4b_ifpnp_l1.c optional ifpnp
i4b/layer1/ifpnp/i4b_ifpnp_l1fsm.c optional ifpnp
#
# isdn4bsd, ihfc
#
i4b/layer1/ihfc/i4b_ihfc_l1if.c optional ihfc
i4b/layer1/ihfc/i4b_ihfc_pnp.c optional ihfc
i4b/layer1/ihfc/i4b_ihfc_drv.c optional ihfc
#
# isdn4bsd, itjc
#
i4b/layer1/itjc/i4b_itjc_pci.c optional itjc
i4b/layer1/itjc/i4b_itjc_isac.c optional itjc
i4b/layer1/itjc/i4b_itjc_l1.c optional itjc
i4b/layer1/itjc/i4b_itjc_l1fsm.c optional itjc
#
kern/imgact_aout.c optional compat_aout
kern/imgact_gzip.c optional gzip
libkern/divdi3.c standard
libkern/ffsl.c standard
libkern/flsl.c standard
libkern/moddi3.c standard
libkern/qdivrem.c standard
libkern/ucmpdi2.c standard
libkern/udivdi3.c standard
libkern/umoddi3.c standard
pc98/apm/apm_bioscall.s optional apm
pc98/i386/busio.s standard
pc98/i386/busiosubr.c standard
pc98/i386/machdep.c standard
pc98/pc98/canbepm.c optional canbepm
pc98/pc98/canbus.c optional canbus
pc98/pc98/canbus_if.m optional canbus
pc98/pc98/clock.c standard
pc98/pc98/fd.c optional fdc
pc98/pc98/fdc_cbus.c optional fdc isa
pc98/pc98/isa_dma.c optional isa
pc98/pc98/nmi.c standard
pc98/pc98/olpt.c optional olpt
pc98/pc98/pc98_machdep.c standard
pc98/pc98/pc98gdc.c optional gdc
pc98/pc98/pc98kbd.c optional pckbd
pc98/pc98/pmc.c optional pmc
pc98/pc98/ppc.c optional ppc
pc98/pc98/scgdcrndr.c optional sc gdc
pc98/pc98/scterm-sck.c optional sc
pc98/pc98/scvtbpc98.c optional sc
pc98/pc98/sio.c optional sio
pc98/pc98/sio_cbus.c optional sio isa
pc98/pc98/syscons_pc98.c optional sc
pccard/pccard.c optional card
pccard/pccard_beep.c optional card
pccard/pccard_nbk.c optional card
pccard/pcic.c optional pcic card
pccard/pcic_isa.c optional pcic card isa
pccard/pcic_pci.c optional pcic card pci
pccard/mecia.c optional mecia card
pci/agp_ali.c optional agp
pci/agp_amd.c optional agp
pci/agp_i810.c optional agp
pci/agp_intel.c optional agp
pci/agp_nvidia.c optional agp
pci/agp_sis.c optional agp
pci/agp_via.c optional agp