freebsd-dev/sys/i386/conf/files.i386
John Dyson 95e5e988e0 Make our v_usecount vnode reference count work identically to the
original BSD code.  The association between the vnode and the vm_object
no longer includes reference counts.  The major difference is that
vm_object's are no longer freed gratuitiously from the vnode, and so
once an object is created for the vnode, it will last as long as the
vnode does.

When a vnode object reference count is incremented, then the underlying
vnode reference count is incremented also.  The two "objects" are now
more intimately related, and so the interactions are now much less
complex.

When vnodes are now normally placed onto the free queue with an object still
attached.  The rundown of the object happens at vnode rundown time, and
happens with exactly the same filesystem semantics of the original VFS
code.  There is absolutely no need for vnode_pager_uncache and other
travesties like that anymore.

A side-effect of these changes is that SMP locking should be much simpler,
the I/O copyin/copyout optimizations work, NFS should be more ponderable,
and further work on layered filesystems should be less frustrating, because
of the totally coherent management of the vnode objects and vnodes.

Please be careful with your system while running this code, but I would
greatly appreciate feedback as soon a reasonably possible.
1998-01-06 05:26:17 +00:00

314 lines
14 KiB
Plaintext

# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
# $Id: files.i386,v 1.182 1997/12/12 14:08:45 peter Exp $
#
# 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 optional compat_linux \
dependency "$S/i386/linux/linux_genassym.c $S/i386/linux/linux.h" \
compile-with "${CC} ${CFLAGS} ${PARAM} -UKERNEL -o $@ $<" \
no-obj no-implicit-rule \
clean "linux_genassym"
#
linux_assym.h optional compat_linux \
dependency "linux_genassym" \
compile-with "./linux_genassym > $@" \
no-obj no-implicit-rule before-depend \
clean "linux_assym.h"
#
font8x16.o optional std8x16font \
compile-with "uudecode < /usr/share/syscons/fonts/${STD8X16FONT}-8x16.fnt && file2c 'unsigned char font_16[16*256] = {' '};' < ${STD8X16FONT}-8x16 > font8x16.c && ${CC} -c ${CFLAGS} font8x16.c" \
no-implicit-rule before-depend \
clean "${STD8X16FONT}-8x16 font8x16.c"
#
i386/apm/apm.c optional apm device-driver
i386/apm/apm_setup.s optional apm
i386/eisa/3c5x9.c optional ep device-driver
i386/eisa/aic7770.c optional ahc device-driver \
dependency "aic7xxx_reg.h $S/i386/eisa/aic7770.c"
i386/eisa/aha1742.c optional ahb device-driver
i386/eisa/bt74x.c optional bt device-driver
i386/eisa/eisaconf.c optional eisa
i386/eisa/if_vx_eisa.c optional vx device-driver
i386/eisa/if_fea.c optional fea device-driver
i386/i386/autoconf.c standard device-driver
i386/i386/bios.c standard
i386/i386/bioscall.s standard
i386/i386/cons.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/i386-gdbstub.c optional ddb
i386/i386/exception.s standard
i386/i386/identcpu.c standard
i386/i386/in_cksum.c optional inet
i386/i386/initcpu.c standard
# locore.s needs to be handled in Makefile to put it first. Otherwise it's
# now normal.
# i386/i386/locore.s standard
i386/i386/machdep.c standard
i386/i386/math_emulate.c optional math_emulate
i386/i386/mem.c standard
i386/i386/microtime.s standard
i386/i386/mp_machdep.c optional smp
i386/i386/mpapic.c optional smp
i386/i386/mpboot.s optional smp
i386/i386/mplock.s optional smp
i386/i386/perfmon.c optional perfmon profiling-routine
i386/i386/perfmon.c optional perfmon
i386/i386/pmap.c standard
i386/i386/procfs_machdep.c standard
i386/i386/simplelock.s optional smp
i386/i386/support.s standard
i386/i386/swtch.s standard
i386/i386/sys_machdep.c standard
i386/i386/trap.c standard
i386/i386/userconfig.c optional userconfig
i386/i386/vm_machdep.c standard
i386/i386/vm86.c optional vm86
i386/ibcs2/ibcs2_fcntl.c optional ibcs2
i386/ibcs2/ibcs2_stat.c optional ibcs2
i386/ibcs2/ibcs2_ipc.c optional ibcs2
i386/ibcs2/ibcs2_msg.c optional ibcs2
i386/ibcs2/ibcs2_misc.c optional ibcs2
i386/ibcs2/ibcs2_other.c optional ibcs2
i386/ibcs2/ibcs2_signal.c optional ibcs2
i386/ibcs2/ibcs2_ioctl.c optional ibcs2
i386/ibcs2/ibcs2_socksys.c optional ibcs2
i386/ibcs2/ibcs2_sysi86.c optional ibcs2
i386/ibcs2/ibcs2_util.c optional ibcs2
i386/ibcs2/ibcs2_isc.c optional ibcs2
i386/ibcs2/ibcs2_isc_sysent.c optional ibcs2
i386/ibcs2/ibcs2_xenix.c optional ibcs2
i386/ibcs2/ibcs2_xenix_sysent.c optional ibcs2
i386/ibcs2/ibcs2_errno.c optional ibcs2
i386/ibcs2/ibcs2_sysent.c optional ibcs2
i386/ibcs2/ibcs2_sysvec.c optional ibcs2
i386/ibcs2/imgact_coff.c optional ibcs2
i386/isa/aha1542.c optional aha device-driver
i386/isa/aic6360.c optional aic device-driver
i386/isa/alog.c optional alog device-driver
i386/isa/b004.c optional bqu device-driver
i386/isa/bt5xx-445.c optional bt device-driver
i386/isa/clock.c standard
i386/isa/cronyx.c optional cx device-driver
i386/isa/ctx.c optional ctx device-driver
i386/isa/cx.c optional cx device-driver
i386/isa/cy.c optional cy device-driver
i386/isa/diskslice_machdep.c standard
i386/isa/elink.c optional ep device-driver
i386/isa/elink.c optional ie device-driver
i386/isa/fd.c optional fd device-driver
i386/isa/ft.c optional ft device-driver
i386/isa/gpib.c optional gp device-driver
i386/isa/asc.c optional asc device-driver
i386/isa/gsc.c optional gsc device-driver
i386/isa/if_ar.c optional ar device-driver
i386/isa/if_cx.c optional cx device-driver
i386/isa/if_ed.c optional ed device-driver
i386/isa/if_eg.c optional eg device-driver
i386/isa/if_el.c optional el device-driver
i386/isa/if_ep.c optional ep device-driver
i386/isa/if_ex.c optional ex device-driver
i386/isa/if_fe.c optional fe device-driver
i386/isa/if_ie.c optional ie device-driver
i386/isa/if_le.c optional le device-driver
i386/isa/if_lnc.c optional lnc device-driver
i386/isa/if_sr.c optional sr device-driver
i386/isa/if_wl.c optional wl device-driver
i386/isa/if_ze.c optional ze device-driver
i386/isa/if_zp.c optional zp device-driver
i386/isa/ipl_funcs.c standard \
compile-with "${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} $<"
i386/isa/intr_machdep.c standard
i386/isa/isa.c optional isa device-driver
i386/isa/istallion.c optional stli device-driver
i386/isa/joy.c optional joy device-driver
i386/isa/kbdio.c optional psm device-driver
i386/isa/kbdio.c optional sc device-driver
i386/isa/kbdio.c optional vt device-driver
i386/isa/lpt.c optional lpt device-driver
i386/isa/labpc.c optional labpc device-driver
i386/isa/mcd.c optional mcd device-driver
i386/isa/mse.c optional mse device-driver
i386/isa/ncr5380.c optional nca device-driver
i386/isa/npx.c mandatory npx device-driver
i386/isa/pcaudio.c optional pca device-driver
i386/isa/matcd/matcd.c optional matcd device-driver
i386/isa/pcibus.c optional pci device-driver
i386/isa/pcicx.c optional ze device-driver
i386/isa/pcicx.c optional zp device-driver
i386/isa/pcvt/pcvt_drv.c optional vt device-driver
i386/isa/pcvt/pcvt_ext.c optional vt device-driver
i386/isa/pcvt/pcvt_kbd.c optional vt device-driver
i386/isa/pcvt/pcvt_out.c optional vt device-driver
i386/isa/pcvt/pcvt_sup.c optional vt device-driver
i386/isa/pcvt/pcvt_vtf.c optional vt device-driver
i386/isa/pnp.c optional pnp device-driver
i386/isa/prof_machdep.c optional profiling-routine
i386/isa/ppc.c optional ppc device-driver
i386/isa/psm.c optional psm device-driver
i386/isa/qcam.c optional qcam device-driver
i386/isa/qcamio.c optional qcam device-driver
i386/isa/random_machdep.c standard
i386/isa/rc.c optional rc device-driver
i386/isa/rp.c optional rp device-driver
i386/isa/scd.c optional scd device-driver
i386/isa/seagate.c optional sea device-driver
i386/isa/si.c optional si device-driver
i386/isa/si_code.c optional si device-driver
i386/isa/sio.c optional sio device-driver
i386/isa/snd/sound.c optional pcm device-driver
i386/isa/snd/dmabuf.c optional pcm device-driver
i386/isa/snd/ad1848.c optional pcm device-driver
i386/isa/snd/sb_dsp.c optional pcm device-driver
i386/isa/snd/clones.c optional pcm device-driver
i386/isa/sound/dev_table.c optional snd device-driver
i386/isa/sound/soundcard.c optional snd device-driver
i386/isa/sound/sound_switch.c optional snd device-driver
i386/isa/sound/audio.c optional snd device-driver
i386/isa/sound/dmabuf.c optional snd device-driver
i386/isa/sound/sys_timer.c optional snd device-driver
i386/isa/sound/sequencer.c optional snd device-driver
i386/isa/sound/patmgr.c optional snd device-driver
i386/isa/sound/adlib_card.c optional opl device-driver
i386/isa/sound/opl3.c optional opl device-driver
i386/isa/sound/gus_card.c optional gus device-driver
i386/isa/sound/gus_midi.c optional gus device-driver
i386/isa/sound/gus_vol.c optional gus device-driver
i386/isa/sound/gus_wave.c optional gus device-driver
i386/isa/sound/ics2101.c optional gus device-driver
i386/isa/sound/sound_timer.c optional gus device-driver
i386/isa/sound/sound_timer.c optional css device-driver
i386/isa/sound/sound_timer.c optional mss device-driver
i386/isa/sound/midi_synth.c optional gus device-driver
i386/isa/sound/midibuf.c optional gus device-driver
i386/isa/sound/ad1848.c optional gusxvi device-driver
i386/isa/sound/ad1848.c optional gus device-driver
i386/isa/sound/ad1848.c optional mss device-driver
i386/isa/sound/ad1848.c optional css device-driver
i386/isa/sound/sound_timer.c optional mss device-driver
i386/isa/sound/midi_synth.c optional mss device-driver
i386/isa/sound/midibuf.c optional mss device-driver
i386/isa/sound/mpu401.c optional mpu device-driver
i386/isa/sound/midi_synth.c optional mpu device-driver
i386/isa/sound/midibuf.c optional mpu device-driver
i386/isa/sound/pas2_card.c optional pas device-driver
i386/isa/sound/pas2_midi.c optional pas device-driver
i386/isa/sound/pas2_mixer.c optional pas device-driver
i386/isa/sound/pas2_pcm.c optional pas device-driver
i386/isa/sound/midi_synth.c optional pas device-driver
i386/isa/sound/midibuf.c optional pas device-driver
i386/isa/sound/sb_card.c optional sb device-driver
i386/isa/sound/sb_dsp.c optional sb device-driver
i386/isa/sound/sb_midi.c optional sb device-driver
i386/isa/sound/sb_mixer.c optional sb device-driver
i386/isa/sound/midi_synth.c optional sb device-driver
i386/isa/sound/midibuf.c optional sb device-driver
i386/isa/sound/sb16_dsp.c optional sbxvi device-driver
i386/isa/sound/sb16_midi.c optional sbmidi device-driver
i386/isa/sound/uart6850.c optional uart device-driver
i386/isa/sound/midi_synth.c optional uart device-driver
i386/isa/sound/midi_synth.c optional css device-driver
i386/isa/sound/midibuf.c optional uart device-driver
i386/isa/sound/midibuf.c optional css device-driver
i386/isa/sound/trix.c optional trix device-driver
i386/isa/sound/adlib_card.c optional trix device-driver
i386/isa/sound/opl3.c optional trix device-driver
i386/isa/sound/ad1848.c optional trix device-driver
i386/isa/sound/sound_timer.c optional trix device-driver
i386/isa/sound/sscape.c optional sscape device-driver
i386/isa/sound/ad1848.c optional sscape device-driver
i386/isa/sound/sound_timer.c optional sscape device-driver
i386/isa/sound/mpu401.c optional sscape device-driver
i386/isa/sound/midi_synth.c optional sscape device-driver
i386/isa/sound/midibuf.c optional sscape device-driver
i386/isa/sound/awe_wave.c optional awe device-driver
i386/isa/sound/cs4232.c optional css device-driver
i386/isa/spigot.c optional spigot device-driver
i386/isa/spkr.c optional speaker device-driver
i386/isa/stallion.c optional stl device-driver
i386/isa/syscons.c optional sc device-driver
i386/isa/tw.c optional tw device-driver
i386/isa/ultra14f.c optional uha device-driver
i386/isa/wd.c optional wdc device-driver
i386/isa/wd.c optional wd device-driver
i386/isa/atapi.c optional atapi device-driver
i386/isa/wcd.c optional wcd device-driver
i386/isa/wd7000.c optional wds device-driver
i386/isa/wt.c optional wt device-driver
i386/linux/imgact_linux.c optional compat_linux
i386/linux/linux_dummy.c optional compat_linux
i386/linux/linux_file.c optional compat_linux
i386/linux/linux_ioctl.c optional compat_linux
i386/linux/linux_ipc.c optional compat_linux
i386/linux/linux_locore.s optional compat_linux \
dependency "linux_assym.h"
i386/linux/linux_misc.c optional compat_linux
i386/linux/linux_signal.c optional compat_linux
i386/linux/linux_socket.c optional compat_linux
i386/linux/linux_stats.c optional compat_linux
i386/linux/linux_sysent.c optional compat_linux
i386/linux/linux_sysvec.c optional compat_linux
i386/linux/linux_util.c optional compat_linux
i386/scsi/93cx6.c optional ahc device-driver
i386/scsi/aic7xxx.c optional ahc device-driver \
dependency "aic7xxx_{reg,seq}.h"
i386/scsi/bt.c optional bt device-driver
libkern/bcd.c standard
libkern/divdi3.c standard
libkern/inet_ntoa.c standard
libkern/index.c standard
libkern/mcount.c optional profiling-routine
libkern/moddi3.c standard
libkern/qdivrem.c standard
libkern/qsort.c standard
libkern/random.c standard
libkern/scanc.c standard
libkern/skpc.c standard
libkern/strcat.c standard
libkern/strcmp.c standard
libkern/strcpy.c standard
libkern/strlen.c standard
libkern/strncmp.c standard
libkern/strncpy.c standard
libkern/udivdi3.c standard
libkern/umoddi3.c standard
libkern/cmpdi2.c standard
gnu/i386/fpemul/div_small.s optional gpl_math_emulate
gnu/i386/fpemul/errors.c optional gpl_math_emulate
gnu/i386/fpemul/fpu_arith.c optional gpl_math_emulate
gnu/i386/fpemul/fpu_aux.c optional gpl_math_emulate
gnu/i386/fpemul/fpu_entry.c optional gpl_math_emulate
gnu/i386/fpemul/fpu_etc.c optional gpl_math_emulate
gnu/i386/fpemul/fpu_trig.c optional gpl_math_emulate
gnu/i386/fpemul/get_address.c optional gpl_math_emulate
gnu/i386/fpemul/load_store.c optional gpl_math_emulate
gnu/i386/fpemul/poly_2xm1.c optional gpl_math_emulate
gnu/i386/fpemul/poly_atan.c optional gpl_math_emulate
gnu/i386/fpemul/poly_div.s optional gpl_math_emulate
gnu/i386/fpemul/poly_l2.c optional gpl_math_emulate
gnu/i386/fpemul/poly_mul64.s optional gpl_math_emulate
gnu/i386/fpemul/poly_sin.c optional gpl_math_emulate
gnu/i386/fpemul/poly_tan.c optional gpl_math_emulate
gnu/i386/fpemul/polynomial.s optional gpl_math_emulate
gnu/i386/fpemul/reg_add_sub.c optional gpl_math_emulate
gnu/i386/fpemul/reg_compare.c optional gpl_math_emulate
gnu/i386/fpemul/reg_constant.c optional gpl_math_emulate
gnu/i386/fpemul/reg_div.s optional gpl_math_emulate
gnu/i386/fpemul/reg_ld_str.c optional gpl_math_emulate
gnu/i386/fpemul/reg_mul.c optional gpl_math_emulate
gnu/i386/fpemul/reg_norm.s optional gpl_math_emulate
gnu/i386/fpemul/reg_round.s optional gpl_math_emulate
gnu/i386/fpemul/reg_u_add.s optional gpl_math_emulate
gnu/i386/fpemul/reg_u_div.s optional gpl_math_emulate
gnu/i386/fpemul/reg_u_mul.s optional gpl_math_emulate
gnu/i386/fpemul/reg_u_sub.s optional gpl_math_emulate
gnu/i386/fpemul/wm_shrx.s optional gpl_math_emulate
gnu/i386/fpemul/wm_sqrt.s optional gpl_math_emulate
gnu/i386/isa/dgb.c optional dgb device-driver
pci/ide_pci.c optional wd device-driver