freebsd-dev/sys/conf/files

1251 lines
46 KiB
Plaintext
Raw Normal View History

1999-09-08 11:14:56 +00:00
# $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.
#
aicasm optional ahc \
2000-10-05 04:07:06 +00:00
dependency "$S/dev/aic7xxx/aicasm/*.[chyl]" \
compile-with "${MAKE} -f $S/dev/aic7xxx/aicasm/Makefile MAKESRCPATH=$S/dev/aic7xxx/aicasm" \
1998-09-15 09:59:15 +00:00
no-obj no-implicit-rule \
clean "aicasm aicasm_gram.c aicasm_scan.c y.tab.h"
aic7xxx_{seq,reg}.h optional ahc \
compile-with "./aicasm ${INCLUDES} -I$S/cam/scsi -I$S/dev/aic7xxx -o aic7xxx_seq.h -r aic7xxx_reg.h $S/dev/aic7xxx/aic7xxx.seq" \
no-obj no-implicit-rule before-depend \
clean "aic7xxx_seq.h aic7xxx_reg.h" \
1998-09-15 09:59:15 +00:00
dependency "$S/dev/aic7xxx/aic7xxx.{reg,seq} $S/cam/scsi/scsi_message.h aicasm"
kern/device_if.m standard
kern/bus_if.m standard
2000-04-24 23:08:23 +00:00
kern/linker_if.m standard
1998-09-15 09:59:15 +00:00
cam/cam.c optional scbus
cam/cam_extend.c optional scbus
cam/cam_periph.c optional scbus
cam/cam_queue.c optional scbus
1998-09-15 09:59:15 +00:00
cam/cam_sim.c optional scbus
cam/cam_xpt.c optional scbus
1998-09-15 09:59:15 +00:00
cam/scsi/scsi_all.c optional scbus
cam/scsi/scsi_cd.c optional cd
cam/scsi/scsi_ch.c optional ch
cam/scsi/scsi_da.c optional da
cam/scsi/scsi_low.c optional ct
cam/scsi/scsi_low.c optional ncv
cam/scsi/scsi_low.c optional nsp
cam/scsi/scsi_low.c optional stg
cam/scsi/scsi_low_pisa.c optional ct
cam/scsi/scsi_low_pisa.c optional ncv
cam/scsi/scsi_low_pisa.c optional nsp
cam/scsi/scsi_low_pisa.c optional stg
1998-09-15 09:59:15 +00:00
cam/scsi/scsi_pass.c optional pass
cam/scsi/scsi_pt.c optional pt
cam/scsi/scsi_sa.c optional sa
cam/scsi/scsi_ses.c optional ses
cam/scsi/scsi_targ_bh.c optional targbh
cam/scsi/scsi_target.c optional targ
coda/coda_fbsd.c count vcoda
coda/coda_namecache.c optional vcoda
coda/coda_psdev.c optional vcoda
coda/coda_subr.c optional vcoda
coda/coda_venus.c optional vcoda
coda/coda_vfsops.c optional vcoda
coda/coda_vnops.c optional vcoda
contrib/dev/acpica/Subsystem/Common/cmalloc.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmclib.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmcopy.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmdebug.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmdelete.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmeval.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmglobal.c optional acpica
contrib/dev/acpica/Subsystem/Common/cminit.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmobject.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmutils.c optional acpica
contrib/dev/acpica/Subsystem/Common/cmxface.c optional acpica
contrib/dev/acpica/Subsystem/Debugger/dbcmds.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbdisasm.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbdisply.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbexec.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbfileio.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbhistry.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbinput.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbstats.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbutils.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Debugger/dbxface.c optional acpica acpi_debug
contrib/dev/acpica/Subsystem/Dispatcher/dsfield.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dsmethod.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dsmthdat.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dsobject.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dsopcode.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dsutils.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dswexec.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dswload.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dswscope.c optional acpica
contrib/dev/acpica/Subsystem/Dispatcher/dswstate.c optional acpica
contrib/dev/acpica/Subsystem/Events/evevent.c optional acpica
contrib/dev/acpica/Subsystem/Events/evmisc.c optional acpica
contrib/dev/acpica/Subsystem/Events/evregion.c optional acpica
contrib/dev/acpica/Subsystem/Events/evrgnini.c optional acpica
contrib/dev/acpica/Subsystem/Events/evsci.c optional acpica
contrib/dev/acpica/Subsystem/Events/evxface.c optional acpica
contrib/dev/acpica/Subsystem/Events/evxfevnt.c optional acpica
contrib/dev/acpica/Subsystem/Events/evxfregn.c optional acpica
contrib/dev/acpica/Subsystem/Hardware/hwacpi.c optional acpica
contrib/dev/acpica/Subsystem/Hardware/hwgpe.c optional acpica
contrib/dev/acpica/Subsystem/Hardware/hwregs.c optional acpica
contrib/dev/acpica/Subsystem/Hardware/hwsleep.c optional acpica
contrib/dev/acpica/Subsystem/Hardware/hwtimer.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amconfig.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amconvrt.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amcreate.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amdump.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amdyadic.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amfield.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amfldio.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/ammisc.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/ammonad.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amnames.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amprep.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amregion.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amresnte.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amresolv.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amresop.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amstore.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amstoren.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amstorob.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amsystem.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amutils.c optional acpica
contrib/dev/acpica/Subsystem/Interpreter/amxface.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsaccess.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsalloc.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsdump.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nseval.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsinit.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsload.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsnames.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsobject.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nssearch.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsutils.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nswalk.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsxfname.c optional acpica
contrib/dev/acpica/Subsystem/Namespace/nsxfobj.c optional acpica
contrib/dev/acpica/Subsystem/Parser/psargs.c optional acpica
contrib/dev/acpica/Subsystem/Parser/psfind.c optional acpica
contrib/dev/acpica/Subsystem/Parser/psopcode.c optional acpica
contrib/dev/acpica/Subsystem/Parser/psparse.c optional acpica
contrib/dev/acpica/Subsystem/Parser/psscope.c optional acpica
contrib/dev/acpica/Subsystem/Parser/pstree.c optional acpica
contrib/dev/acpica/Subsystem/Parser/psutils.c optional acpica
contrib/dev/acpica/Subsystem/Parser/pswalk.c optional acpica
contrib/dev/acpica/Subsystem/Parser/psxface.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rsaddr.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rscalc.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rscreate.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rsdump.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rsio.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rsirq.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rslist.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rsmemory.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rsmisc.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rsutils.c optional acpica
contrib/dev/acpica/Subsystem/Resources/rsxface.c optional acpica
contrib/dev/acpica/Subsystem/Tables/tbconvrt.c optional acpica
contrib/dev/acpica/Subsystem/Tables/tbget.c optional acpica
contrib/dev/acpica/Subsystem/Tables/tbinstal.c optional acpica
contrib/dev/acpica/Subsystem/Tables/tbutils.c optional acpica
contrib/dev/acpica/Subsystem/Tables/tbxface.c optional acpica
contrib/dev/acpica/Subsystem/Tables/tbxfroot.c optional acpica
crypto/blowfish/bf_cbc.c optional ipsec ipsec_esp
crypto/blowfish/bf_cbc_m.c optional ipsec ipsec_esp
crypto/blowfish/bf_enc.c optional ipsec ipsec_esp
crypto/blowfish/bf_skey.c optional ipsec ipsec_esp
crypto/cast128/cast128.c optional ipsec ipsec_esp
crypto/cast128/cast128_cbc.c optional ipsec ipsec_esp
crypto/des/des_3cbc.c optional ipsec ipsec_esp
crypto/des/des_cbc.c optional ipsec ipsec_esp
crypto/des/des_ecb.c optional ipsec ipsec_esp
crypto/des/des_setkey.c optional ipsec ipsec_esp
crypto/rc5/rc5.c optional ipsec ipsec_esp
crypto/rc5/rc5_cbc.c optional ipsec ipsec_esp
crypto/sha1.c optional ipsec
ddb/db_access.c optional ddb
ddb/db_break.c optional ddb
ddb/db_command.c optional ddb
ddb/db_examine.c optional ddb
ddb/db_expr.c optional ddb
ddb/db_input.c optional ddb
ddb/db_kld.c optional ddb
ddb/db_lex.c optional ddb
ddb/db_output.c optional ddb
ddb/db_print.c optional ddb
ddb/db_ps.c optional ddb
ddb/db_run.c optional ddb
ddb/db_sym.c optional ddb
ddb/db_sysctl.c optional ddb
ddb/db_trap.c optional ddb
ddb/db_variables.c optional ddb
ddb/db_watch.c optional ddb
ddb/db_write_cmd.c optional ddb
dev/aac/aac.c optional aac
dev/aac/aac_debug.c optional aac
dev/aac/aac_disk.c optional aac
dev/aac/aac_pci.c optional aac pci
dev/acpica/acpi.c optional acpica
dev/acpica/acpi_acad.c optional acpica
#dev/acpica/acpi_apic.c optional acpica
dev/acpica/acpi_button.c optional acpica
dev/acpica/acpi_cmbat.c optional acpica
dev/acpica/acpi_ec.c optional acpica
dev/acpica/acpi_isa.c optional acpica isa
dev/acpica/acpi_lid.c optional acpica
dev/acpica/acpi_pcib.c optional acpica pci
#dev/acpica/acpi_processor.c optional acpica
dev/acpica/acpi_resource.c optional acpica
dev/acpica/acpi_thermal.c optional acpica
dev/acpica/acpi_timer.c optional acpica
dev/acpica/Osd/OsdDebug.c optional acpica
dev/acpica/Osd/OsdEnvironment.c optional acpica
dev/acpica/Osd/OsdHardware.c optional acpica
dev/acpica/Osd/OsdInterrupt.c optional acpica
dev/acpica/Osd/OsdMemory.c optional acpica
dev/acpica/Osd/OsdSchedule.c optional acpica
dev/acpica/Osd/OsdStream.c optional acpica
dev/acpica/Osd/OsdSynch.c optional acpica
dev/advansys/adv_eisa.c optional adv eisa
dev/advansys/adv_pci.c optional adv pci
dev/advansys/advansys.c optional adv
dev/advansys/advlib.c optional adv
dev/advansys/advmcode.c optional adv
dev/advansys/adw_pci.c optional adw pci
dev/advansys/adwcam.c optional adw
dev/advansys/adwlib.c optional adw
dev/advansys/adwmcode.c optional adw
dev/aha/aha.c optional aha
dev/aha/aha_isa.c optional aha isa
dev/aha/aha_mca.c optional aha mca
dev/ahb/ahb.c optional ahb eisa
1999-10-21 09:00:20 +00:00
dev/aic/aic.c optional aic
2000-01-14 23:44:32 +00:00
dev/aic/aic_pccard.c optional aic card
dev/aic/aic_pccard.c optional aic pccard
dev/aic7xxx/aic7770.c optional ahc eisa
dev/aic7xxx/ahc_eisa.c optional ahc eisa
#dev/aic7xxx/ahc_isa.c optional ahc isa
dev/aic7xxx/ahc_pci.c optional ahc pci
dev/aic7xxx/aic7xxx.c optional ahc
dev/aic7xxx/aic7xxx_93cx6.c optional ahc
2000-09-23 22:21:39 +00:00
dev/aic7xxx/aic7xxx_freebsd.c optional ahc
dev/aic7xxx/aic7xxx_pci.c optional ahc pci
dev/amr/amr.c optional amr
dev/amr/amr_disk.c optional amr
dev/amr/amr_pci.c optional amr
dev/an/if_an.c optional an
dev/an/if_an_isa.c optional an isa
dev/an/if_an_pccard.c optional an card
#dev/an/if_an_pccard.c optional an pccard
dev/an/if_an_pci.c optional an pci
dev/ar/if_ar.c optional ar
dev/ar/if_ar_pci.c optional ar pci
dev/asr/asr.c optional asr pci
dev/ata/ata-all.c optional ata
dev/ata/ata-isa.c optional ata isa
dev/ata/ata-card.c optional ata card
#dev/ata/ata-card.c optional ata pccard
dev/ata/ata-pci.c optional ata pci
dev/ata/ata-dma.c optional ata pci
dev/ata/ata-disk.c optional atadisk
dev/ata/ata-raid.c optional atadisk
dev/ata/atapi-all.c optional atapicd
dev/ata/atapi-all.c optional atapifd
dev/ata/atapi-all.c optional atapist
dev/ata/atapi-cd.c optional atapicd
dev/ata/atapi-fd.c optional atapifd
dev/ata/atapi-tape.c optional atapist
dev/awi/am79c930.c optional awi
dev/awi/awi.c optional awi
dev/awi/awi_wep.c optional awi
dev/awi/awi_wicfg.c optional awi
dev/awi/if_awi_pccard.c optional awi card
dev/awi/if_awi_pccard.c optional awi pccard
dev/bktr/bktr_audio.c optional bktr pci
dev/bktr/bktr_card.c optional bktr pci
dev/bktr/bktr_core.c count bktr pci
dev/bktr/bktr_i2c.c optional bktr pci smbus
dev/bktr/bktr_os.c optional bktr pci
dev/bktr/bktr_tuner.c optional bktr pci
dev/buslogic/bt.c optional bt
dev/buslogic/bt_eisa.c optional bt eisa
dev/buslogic/bt_isa.c optional bt isa
dev/buslogic/bt_mca.c optional bt mca
dev/buslogic/bt_pci.c optional bt pci
dev/cardbus/cardbus.c optional cardbus
dev/cardbus/cardbus_cis.c optional cardbus
dev/ccd/ccd.c count ccd
2001-03-16 07:27:49 +00:00
dev/cnw/if_cnw.c optional cnw card
#dev/cnw/if_cnw.c optional cnw pccard
dev/cs/if_cs.c optional cs
dev/cs/if_cs_isa.c optional cs isa
dev/cs/if_cs_pccard.c optional cs card
dev/cs/if_cs_pccard.c optional cs pccard
dev/dgb/dgb.c count dgb
dev/dgb/dgm.c optional dgm \
warning "Please use digi instead of dgm"
dev/digi/digi.c optional digi
dev/digi/digi_isa.c optional digi
dev/digi/digi_pci.c optional digi
dev/digi/CX.c optional digi_CX
dev/digi/CX_PCI.c optional digi_CX_PCI
dev/digi/EPCX.c optional digi_EPCX
dev/digi/EPCX_PCI.c optional digi_EPCX_PCI
dev/digi/Xe.c optional digi_Xe
dev/digi/Xem.c optional digi_Xem
dev/digi/Xr.c optional digi_Xr
#dev/dpt/dpt_control.c optional dpt
dev/dpt/dpt_eisa.c optional dpt eisa
dev/dpt/dpt_pci.c optional dpt pci
dev/dpt/dpt_scsi.c optional dpt
dev/ed/if_ed.c optional ed
dev/ed/if_ed_pccard.c optional ed card
dev/ed/if_ed_pccard.c optional ed pccard
dev/ed/if_ed_pci.c optional ed pci
dev/en/midway.c optional en
dev/ep/if_ep.c optional ep
dev/ep/if_ep_eisa.c optional ep eisa
dev/ep/if_ep_isa.c optional ep isa
dev/ep/if_ep_mca.c optional ep mca
dev/ep/if_ep_pccard.c optional ep card
dev/ep/if_ep_pccard.c optional ep pccard
dev/ex/if_ex.c optional ex
dev/ex/if_ex_isa.c optional ex isa
dev/ex/if_ex_pccard.c optional ex card
#dev/ex/if_ex_pccard.c optional ex pccard
dev/fe/if_fe.c optional fe
dev/fe/if_fe_pccard.c optional fe card
#dev/fe/if_fe_pccard.c optional fe pccard
dev/fxp/if_fxp.c optional fxp
dev/hea/eni.c optional hea
dev/hea/eni_buffer.c optional hea
dev/hea/eni_globals.c optional hea
dev/hea/eni_if.c optional hea
dev/hea/eni_init.c optional hea
dev/hea/eni_intr.c optional hea
dev/hea/eni_receive.c optional hea
dev/hea/eni_transmit.c optional hea
dev/hea/eni_vcm.c optional hea
dev/hfa/fore_buffer.c optional hfa
dev/hfa/fore_command.c optional hfa
dev/hfa/fore_globals.c optional hfa
dev/hfa/fore_if.c optional hfa
dev/hfa/fore_init.c optional hfa
dev/hfa/fore_intr.c optional hfa
dev/hfa/fore_load.c optional hfa
dev/hfa/fore_output.c optional hfa
dev/hfa/fore_receive.c optional hfa
dev/hfa/fore_stats.c optional hfa
dev/hfa/fore_timer.c optional hfa
dev/hfa/fore_transmit.c optional hfa
dev/hfa/fore_vcm.c optional hfa
dev/ichsmb/ichsmb.c optional ichsmb
dev/ichsmb/ichsmb_pci.c optional ichsmb pci
dev/ida/ida.c optional ida
2000-03-08 16:17:06 +00:00
dev/ida/ida_disk.c optional ida
dev/ida/ida_eisa.c optional ida eisa
dev/ida/ida_pci.c optional ida pci
dev/ie/if_ie.c count ie isa
dev/iicbus/iicbb_if.m optional iicbb
dev/iicbus/iicbus_if.m optional iicbus
dev/iicbus/if_ic.c optional ic
dev/iicbus/iic.c optional iic
dev/iicbus/iicbb.c optional iicbb
dev/iicbus/iicbus.c optional iicbus
dev/iicbus/iiconf.c optional iicbus
dev/iicbus/iicsmb.c optional iicsmb \
dependency "iicbus_if.h"
dev/isp/isp.c optional isp
dev/isp/isp_freebsd.c optional isp
dev/isp/isp_target.c optional isp
2001-01-09 19:15:12 +00:00
dev/isp/isp_pci.c optional isp
dev/ispfw/ispfw.c optional ispfw
dev/lmc/if_lmc.c optional lmc
dev/lnc/if_lnc.c optional lnc
dev/lnc/if_lnc_isa.c optional lnc isa
dev/lnc/if_lnc_pc98.c optional lnc isa
2000-05-14 19:10:46 +00:00
dev/lnc/if_lnc_pci.c optional lnc pci
dev/ncv/ncr53c500.c optional ncv
dev/ncv/ncr53c500_pccard.c optional ncv card
#dev/ncv/ncr53c500_pccard.c optional ncv pccard
dev/nsp/nsp.c optional nsp
dev/nsp/nsp_pccard.c optional nsp card
#dev/nsp/nsp_pccard.c optional nsp pccard
dev/mca/mca_bus.c optional mca
dev/md/md.c optional md
dev/mii/amphy.c optional miibus
dev/mii/brgphy.c optional miibus
dev/mii/dcphy.c optional miibus pci
dev/mii/e1000phy.c optional miibus
This commit adds support for the NetBSD MII abstraction layer and MII-compliant PHY drivers. Many 10/100 ethernet NICs available today either use an MII transceiver or have built-in transceivers that can be programmed using an MII interface. It makes sense then to separate this support out into common code instead of duplicating it in all of the NIC drivers. The mii code also handles all of the media detection, selection and reporting via the ifmedia interface. This is basically the same code from NetBSD's /sys/dev/mii, except it's been adapted to FreeBSD's bus architecture. The advantage to this is that it automatically allows everything to be turned into a loadable module. There are some common functions for use in drivers once an miibus has been attached (mii_mediachg(), mii_pollstat(), mii_tick()) as well as individual PHY drivers. There is also a generic driver for all PHYs that aren't handled by a specific driver. It's possible to do this because all 10/100 PHYs implement the same general register set in addition to their vendor-specific register sets, so for the most part you can use one driver for pretty much any PHY. There are a couple of oddball exceptions though, hence the need to have specific drivers. There are two layers: the generic "miibus" layer and the PHY driver layer. The drivers are child devices of "miibus" and the "miibus" is a child of a given NIC driver. The "miibus" code and the PHY drivers can actually be compiled and kldoaded as completely separate modules or compiled together into one module. For the moment I'm using the latter approach since the code is relatively small. Currently there are only three PHY drivers here: the generic driver, the built-in 3Com XL driver and the NS DP83840 driver. I'll be adding others later as I convert various NIC drivers to use this code. I realize that I'm cvs adding this stuff instead of importing it onto a separate vendor branch, but in my opinion the import approach doesn't really offer any significant advantage: I'm going to be maintaining this stuff and writing my own PHY drivers one way or the other.
1999-08-21 17:40:53 +00:00
dev/mii/exphy.c optional miibus
2001-03-12 02:43:03 +00:00
dev/mii/inphy.c optional miibus
dev/mii/mii.c optional miibus
dev/mii/mii_physubr.c optional miibus
dev/mii/mlphy.c optional miibus
This commit adds support for the NetBSD MII abstraction layer and MII-compliant PHY drivers. Many 10/100 ethernet NICs available today either use an MII transceiver or have built-in transceivers that can be programmed using an MII interface. It makes sense then to separate this support out into common code instead of duplicating it in all of the NIC drivers. The mii code also handles all of the media detection, selection and reporting via the ifmedia interface. This is basically the same code from NetBSD's /sys/dev/mii, except it's been adapted to FreeBSD's bus architecture. The advantage to this is that it automatically allows everything to be turned into a loadable module. There are some common functions for use in drivers once an miibus has been attached (mii_mediachg(), mii_pollstat(), mii_tick()) as well as individual PHY drivers. There is also a generic driver for all PHYs that aren't handled by a specific driver. It's possible to do this because all 10/100 PHYs implement the same general register set in addition to their vendor-specific register sets, so for the most part you can use one driver for pretty much any PHY. There are a couple of oddball exceptions though, hence the need to have specific drivers. There are two layers: the generic "miibus" layer and the PHY driver layer. The drivers are child devices of "miibus" and the "miibus" is a child of a given NIC driver. The "miibus" code and the PHY drivers can actually be compiled and kldoaded as completely separate modules or compiled together into one module. For the moment I'm using the latter approach since the code is relatively small. Currently there are only three PHY drivers here: the generic driver, the built-in 3Com XL driver and the NS DP83840 driver. I'll be adding others later as I convert various NIC drivers to use this code. I realize that I'm cvs adding this stuff instead of importing it onto a separate vendor branch, but in my opinion the import approach doesn't really offer any significant advantage: I'm going to be maintaining this stuff and writing my own PHY drivers one way or the other.
1999-08-21 17:40:53 +00:00
dev/mii/nsphy.c optional miibus
dev/mii/nsgphy.c optional miibus
dev/mii/pnphy.c optional miibus
dev/mii/pnaphy.c optional miibus
dev/mii/rlphy.c optional miibus
dev/mii/tdkphy.c optional miibus
dev/mii/tlphy.c optional miibus
dev/mii/ukphy.c optional miibus
dev/mii/ukphy_subr.c optional miibus
dev/mii/xmphy.c optional miibus
dev/mii/lxtphy.c optional miibus
dev/mii/qsphy.c optional miibus
dev/mii/acphy.c optional miibus
dev/mii/miibus_if.m optional miibus
dev/mlx/mlx.c optional mlx
dev/mlx/mlx_disk.c optional mlx
dev/mlx/mlx_pci.c optional mlx
dev/mly/mly.c optional mly
dev/mly/mly_cam.c optional mly
dev/mly/mly_pci.c optional mly
dev/musycc/musycc.c optional musycc
dev/nge/if_nge.c optional nge
dev/null/null.c standard
dev/nmdm/nmdm.c optional nmdm
2000-04-20 07:55:56 +00:00
dev/pccard/card_if.m optional card
dev/pccard/card_if.m optional cardbus
dev/pccard/card_if.m optional pccard
dev/pccard/pccard.c optional pccard
dev/pccard/pccard_cis.c optional pccard
dev/pccard/pccard_cis_quirks.c optional pccard
dev/pccard/power_if.m optional pccbb
dev/pccard/power_if.m optional pccard
dev/pci/eisa_pci.c optional pci
dev/pci/fixup_pci.c optional pci
dev/pci/ignore_pci.c optional pci
dev/pci/isa_pci.c optional pci
dev/pci/pci.c count pci
dev/pci/pci_if.m optional pci
dev/pci/pci_pci.c optional pci
dev/pci/pci_user.c optional pci
dev/pci/pcib_if.m optional pci
dev/pcic/i82365.c optional pcic pccard
dev/pcic/i82365_isa.c optional pcic pccard
dev/pdq/if_fea.c optional fea eisa
dev/pdq/if_fpa.c optional fpa pci
dev/pdq/pdq.c optional fea eisa
dev/pdq/pdq.c optional fpa pci
dev/pdq/pdq_ifsubr.c optional fea eisa
dev/pdq/pdq_ifsubr.c optional fpa pci
dev/ppbus/ppbus_if.m optional ppbus
dev/ppbus/if_plip.c optional plip
dev/ppbus/immio.c optional vpo
dev/ppbus/lpbb.c optional lpbb
dev/ppbus/lpt.c optional lpt
dev/ppbus/pcfclock.c optional pcfclock
dev/ppbus/ppb_1284.c optional ppbus
dev/ppbus/ppb_base.c optional ppbus
dev/ppbus/ppb_msq.c optional ppbus
dev/ppbus/ppbconf.c optional ppbus
dev/ppbus/ppi.c optional ppi
dev/ppbus/pps.c optional pps
dev/ppbus/vpo.c optional vpo
dev/ppbus/vpoio.c optional vpo
dev/random/harvest.c standard
dev/random/randomdev.c optional random
dev/random/yarrow.c optional random
dev/random/hash.c optional random
crypto/rijndael/rijndael-alg-fst.c optional random
crypto/rijndael/rijndael-api-fst.c optional random
dev/ray/if_ray.c optional ray card
dev/ray/if_ray.c optional ray pccard
dev/rp/rp.c optional rp
dev/rp/rp_isa.c optional rp isa
dev/rp/rp_pci.c optional rp pci
dev/si/si.c optional si
dev/si/si2_z280.c optional si
dev/si/si3_t225.c optional si
dev/si/si_eisa.c optional si eisa
dev/si/si_isa.c optional si isa
dev/si/si_pci.c optional si pci
dev/smbus/smbus_if.m optional smbus
dev/smbus/smb.c optional smb
dev/smbus/smbconf.c optional smbus
dev/smbus/smbus.c count smbus
dev/sn/if_sn.c optional sn
1999-12-22 09:30:51 +00:00
dev/sn/if_sn_isa.c optional sn isa
dev/sn/if_sn_pccard.c optional sn card
dev/sn/if_sn_pccard.c optional sn pccard
dev/sound/isa/ad1816.c optional pcm isa
dev/sound/isa/emu8000.c optional midi isa
dev/sound/isa/es1888.c optional pcm isa
dev/sound/isa/ess.c optional pcm isa
dev/sound/isa/gusc.c optional gusc isa
dev/sound/isa/gusc.c optional pcm isa
dev/sound/isa/gusmidi.c optional midi isa
dev/sound/isa/mpu.c optional midi isa
dev/sound/isa/mss.c optional pcm isa
dev/sound/isa/opl.c optional midi isa
2000-11-01 00:53:16 +00:00
dev/sound/isa/sb16.c optional pcm isa
dev/sound/isa/sb8.c optional pcm isa
dev/sound/isa/sbc.c optional pcm isa
dev/sound/isa/sbc.c optional sbc isa
dev/sound/isa/uartsio.c optional midi isa
dev/sound/midi/midi.c optional midi
dev/sound/midi/midibuf.c optional midi
dev/sound/midi/midisynth.c optional midi
dev/sound/midi/sequencer.c optional seq midi
dev/sound/pci/als4000.c optional pcm pci
#dev/sound/pci/aureal.c optional pcm pci
dev/sound/pci/cmi.c optional pcm pci
dev/sound/pci/cs4281.c optional pcm pci
dev/sound/pci/csa.c optional csa pci
dev/sound/pci/csa.c optional pcm pci
dev/sound/pci/csamidi.c optional midi csa
dev/sound/pci/csapcm.c optional pcm pci
2000-06-06 23:34:19 +00:00
dev/sound/pci/ds1.c optional pcm pci
dev/sound/pci/emu10k1.c optional pcm pci
dev/sound/pci/es137x.c optional pcm pci
2000-08-29 16:14:28 +00:00
dev/sound/pci/fm801.c optional pcm pci
dev/sound/pci/maestro.c optional pcm pci
dev/sound/pci/neomagic.c optional pcm pci
dev/sound/pci/solo.c optional pcm pci
dev/sound/pci/t4dwave.c optional pcm pci
2000-08-09 01:08:59 +00:00
dev/sound/pci/via82c686.c optional pcm pci
dev/sound/pci/vibes.c optional pcm pci
dev/sound/pcm/ac97.c optional pcm
dev/sound/pcm/ac97_if.m optional pcm
dev/sound/pcm/buffer.c optional pcm
dev/sound/pcm/channel.c optional pcm
dev/sound/pcm/channel_if.m optional pcm
dev/sound/pcm/dsp.c optional pcm
dev/sound/pcm/fake.c optional pcm
dev/sound/pcm/feeder.c optional pcm
dev/sound/pcm/feeder_if.m optional pcm
2000-09-23 22:21:39 +00:00
dev/sound/pcm/feeder_fmt.c optional pcm
dev/sound/pcm/feeder_rate.c optional pcm
dev/sound/pcm/mixer.c optional pcm
dev/sound/pcm/mixer_if.m optional pcm
dev/sound/pcm/sound.c optional pcm
2000-08-09 01:08:59 +00:00
#dev/sound/usb/upcm.c optional pcm usb
dev/sr/if_sr.c optional sr
dev/sr/if_sr_pci.c optional sr pci
dev/streams/streams.c optional streams
dev/stg/tmc18c30.c optional stg
dev/stg/tmc18c30_pccard.c optional stg card
#dev/stg/tmc18c30_pccard.c optional stg pccard
dev/stg/tmc18c30_isa.c optional stg isa
dev/sym/sym_hipd.c optional sym \
dependency "$S/dev/sym/sym_{conf,defs}.h"
dev/tdfx/tdfx_pci.c optional tdfx pci
dev/twe/twe.c optional twe
dev/twe/twe_freebsd.c optional twe
#
# USB support
dev/usb/usb_if.m optional usb
dev/usb/hid.c optional usb
dev/usb/if_aue.c optional aue
dev/usb/if_cue.c optional cue
dev/usb/if_kue.c optional kue
dev/usb/ohci.c optional ohci
dev/usb/udbp.c optional udbp
dev/usb/ugen.c optional ugen
dev/usb/uhci.c optional uhci
dev/usb/uhid.c optional uhid
dev/usb/uhub.c optional usb
dev/usb/ukbd.c optional ukbd
dev/usb/ulpt.c optional ulpt
dev/usb/umass.c optional umass
2000-07-18 10:49:45 +00:00
dev/usb/umodem.c optional umodem
dev/usb/ums.c optional ums
dev/usb/urio.c optional urio
dev/usb/uscanner.c optional uscanner
dev/usb/usb.c optional usb
dev/usb/usb_ethersubr.c optional usb
#dev/usb/usb_mem.c optional usb
dev/usb/usb_quirks.c optional usb
dev/usb/usb_subr.c optional usb
dev/usb/usbdi.c optional usb
dev/usb/usbdi_util.c optional usb
dev/vinum/vinum.c optional vinum
dev/vinum/vinumconfig.c optional vinum
dev/vinum/vinumdaemon.c optional vinum
dev/vinum/vinuminterrupt.c optional vinum
dev/vinum/vinumio.c optional vinum
dev/vinum/vinumioctl.c optional vinum
dev/vinum/vinumlock.c optional vinum
dev/vinum/vinummemory.c optional vinum
dev/vinum/vinumparser.c optional vinum
dev/vinum/vinumraid5.c optional vinum
dev/vinum/vinumrequest.c optional vinum
dev/vinum/vinumrevive.c optional vinum
dev/vinum/vinumstate.c optional vinum
dev/vinum/vinumutil.c optional vinum
dev/vx/if_vx.c optional vx
dev/vx/if_vx_eisa.c optional vx eisa
dev/vx/if_vx_pci.c optional vx pci
#dev/wlp/if_wlp.c optional wlp card
dev/wds/wd7000.c optional wds isa
dev/wi/if_wi.c optional wi card
dev/wi/if_wi.c optional wi pccard
dev/xe/if_xe.c optional xe card
fs/deadfs/dead_vnops.c standard
fs/devfs/devfs_devs.c standard
fs/devfs/devfs_vfsops.c standard
fs/devfs/devfs_vnops.c standard
fs/fdescfs/fdesc_vfsops.c optional fdescfs
fs/fdescfs/fdesc_vnops.c optional fdescfs
fs/fifofs/fifo_vnops.c standard
fs/hpfs/hpfs_alsubr.c optional hpfs
fs/hpfs/hpfs_hash.c optional hpfs
fs/hpfs/hpfs_lookup.c optional hpfs
fs/hpfs/hpfs_subr.c optional hpfs
fs/hpfs/hpfs_vfsops.c optional hpfs
fs/hpfs/hpfs_vnops.c optional hpfs
fs/msdosfs/msdosfs_conv.c optional msdosfs
fs/msdosfs/msdosfs_denode.c optional msdosfs
fs/msdosfs/msdosfs_fat.c optional msdosfs
fs/msdosfs/msdosfs_lookup.c optional msdosfs
fs/msdosfs/msdosfs_vfsops.c optional msdosfs
fs/msdosfs/msdosfs_vnops.c optional msdosfs
fs/ntfs/ntfs_compr.c optional ntfs
fs/ntfs/ntfs_ihash.c optional ntfs
fs/ntfs/ntfs_subr.c optional ntfs
fs/ntfs/ntfs_vfsops.c optional ntfs
fs/ntfs/ntfs_vnops.c optional ntfs
fs/nullfs/null_subr.c optional nullfs
fs/nullfs/null_vfsops.c optional nullfs
fs/nullfs/null_vnops.c optional nullfs
fs/nwfs/nwfs_io.c optional nwfs
fs/nwfs/nwfs_ioctl.c optional nwfs
fs/nwfs/nwfs_node.c optional nwfs
fs/nwfs/nwfs_subr.c optional nwfs
fs/nwfs/nwfs_vfsops.c optional nwfs
fs/nwfs/nwfs_vnops.c optional nwfs
fs/portalfs/portal_vfsops.c optional portalfs
fs/portalfs/portal_vnops.c optional portalfs
fs/procfs/procfs_ctl.c optional procfs
fs/procfs/procfs_dbregs.c standard
fs/procfs/procfs_fpregs.c standard
fs/procfs/procfs_map.c optional procfs
fs/procfs/procfs_mem.c standard
fs/procfs/procfs_note.c optional procfs
fs/procfs/procfs_regs.c standard
fs/procfs/procfs_rlimit.c optional procfs
fs/procfs/procfs_status.c optional procfs
fs/procfs/procfs_subr.c optional procfs
fs/procfs/procfs_type.c optional procfs
fs/procfs/procfs_vfsops.c optional procfs
fs/procfs/procfs_vnops.c optional procfs
fs/specfs/spec_vnops.c standard
fs/umapfs/umap_subr.c optional umapfs
fs/umapfs/umap_vfsops.c optional umapfs
fs/umapfs/umap_vnops.c optional umapfs
fs/unionfs/union_subr.c optional unionfs
fs/unionfs/union_vfsops.c optional unionfs
fs/unionfs/union_vnops.c optional unionfs
gnu/ext2fs/ext2_alloc.c optional ext2fs \
warning "kernel contains GPL contaminated ext2fs file system"
gnu/ext2fs/ext2_balloc.c optional ext2fs
gnu/ext2fs/ext2_inode.c optional ext2fs
gnu/ext2fs/ext2_inode_cnv.c optional ext2fs
gnu/ext2fs/ext2_linux_balloc.c optional ext2fs
gnu/ext2fs/ext2_linux_ialloc.c optional ext2fs
gnu/ext2fs/ext2_lookup.c optional ext2fs
gnu/ext2fs/ext2_subr.c optional ext2fs
gnu/ext2fs/ext2_vfsops.c optional ext2fs
gnu/ext2fs/ext2_vnops.c optional ext2fs
2000-10-09 13:41:07 +00:00
#
# isdn4bsd device drivers
#
i4b/driver/i4b_trace.c count i4btrc
i4b/driver/i4b_rbch.c count i4brbch
i4b/driver/i4b_tel.c count i4btel
i4b/driver/i4b_ipr.c count i4bipr
net/slcompress.c optional i4bipr
i4b/driver/i4b_ctl.c count i4bctl
i4b/driver/i4b_ing.c count i4bing
i4b/driver/i4b_isppp.c count i4bisppp
i4b/driver/i4b_ispppsubr.c optional i4bisppp
net/slcompress.c optional i4bisppp
#
# isdn4bsd CAPI driver
#
i4b/capi/capi_l4if.c count i4bcapi
i4b/capi/capi_llif.c optional i4bcapi
i4b/capi/capi_msgs.c optional i4bcapi
#
# isdn4bsd AVM B1/T1 CAPI driver
#
i4b/capi/iavc/iavc_pci.c count iavc
i4b/capi/iavc/iavc_isa.c optional iavc
i4b/capi/iavc/iavc_lli.c optional iavc
i4b/capi/iavc/iavc_card.c optional iavc
#
2000-10-09 13:41:07 +00:00
# isdn4bsd support
#
i4b/layer2/i4b_mbuf.c optional i4btrc
#
# isdn4bsd Q.921 handler
#
i4b/layer2/i4b_l2.c count i4bq921
i4b/layer2/i4b_l2fsm.c optional i4bq921
i4b/layer2/i4b_uframe.c optional i4bq921
i4b/layer2/i4b_tei.c optional i4bq921
i4b/layer2/i4b_sframe.c optional i4bq921
i4b/layer2/i4b_iframe.c optional i4bq921
i4b/layer2/i4b_l2timer.c optional i4bq921
i4b/layer2/i4b_util.c optional i4bq921
i4b/layer2/i4b_lme.c optional i4bq921
#
# isdn4bsd Q.931 handler
#
i4b/layer3/i4b_q931.c count i4bq931
i4b/layer3/i4b_l3fsm.c optional i4bq931
i4b/layer3/i4b_l3timer.c optional i4bq931
i4b/layer3/i4b_l2if.c optional i4bq931
i4b/layer3/i4b_l4if.c optional i4bq931
i4b/layer3/i4b_q932fac.c optional i4bq931
#
# isdn4bsd control device driver, interface to isdnd
#
i4b/layer4/i4b_i4bdrv.c count i4b
i4b/layer4/i4b_l4.c optional i4b
i4b/layer4/i4b_l4mgmt.c optional i4b
i4b/layer4/i4b_l4timer.c optional i4b
#
isa/isa_if.m optional isa
isa/isa_common.c optional isa
isa/isahint.c optional isa
isa/joy.c optional joy
isa/pnp.c optional isa
isa/pnpparse.c optional isa
1994-05-24 10:09:53 +00:00
isofs/cd9660/cd9660_bmap.c optional cd9660
isofs/cd9660/cd9660_lookup.c optional cd9660
isofs/cd9660/cd9660_node.c optional cd9660
isofs/cd9660/cd9660_rrip.c optional cd9660
isofs/cd9660/cd9660_util.c optional cd9660
isofs/cd9660/cd9660_vfsops.c optional cd9660
isofs/cd9660/cd9660_vnops.c optional cd9660
kern/imgact_elf.c standard
kern/imgact_shell.c standard
kern/inflate.c optional gzip
1994-05-24 10:09:53 +00:00
kern/init_main.c standard
kern/init_sysent.c standard
kern/kern_acct.c standard
kern/kern_acl.c standard
kern/kern_cap.c standard
1994-05-24 10:09:53 +00:00
kern/kern_clock.c standard
2001-01-16 01:00:43 +00:00
kern/kern_condvar.c standard
kern/kern_conf.c standard
1994-05-24 10:09:53 +00:00
kern/kern_descrip.c standard
kern/kern_environment.c standard
2000-04-17 03:06:27 +00:00
kern/kern_event.c standard
1994-05-24 10:09:53 +00:00
kern/kern_exec.c standard
kern/kern_exit.c standard
kern/kern_fork.c standard
kern/kern_idle.c standard
kern/kern_intr.c standard
This Implements the mumbled about "Jail" feature. This is a seriously beefed up chroot kind of thing. The process is jailed along the same lines as a chroot does it, but with additional tough restrictions imposed on what the superuser can do. For all I know, it is safe to hand over the root bit inside a prison to the customer living in that prison, this is what it was developed for in fact: "real virtual servers". Each prison has an ip number associated with it, which all IP communications will be coerced to use and each prison has its own hostname. Needless to say, you need more RAM this way, but the advantage is that each customer can run their own particular version of apache and not stomp on the toes of their neighbors. It generally does what one would expect, but setting up a jail still takes a little knowledge. A few notes: I have no scripts for setting up a jail, don't ask me for them. The IP number should be an alias on one of the interfaces. mount a /proc in each jail, it will make ps more useable. /proc/<pid>/status tells the hostname of the prison for jailed processes. Quotas are only sensible if you have a mountpoint per prison. There are no privisions for stopping resource-hogging. Some "#ifdef INET" and similar may be missing (send patches!) If somebody wants to take it from here and develop it into more of a "virtual machine" they should be most welcome! Tools, comments, patches & documentation most welcome. Have fun... Sponsored by: http://www.rndassociates.com/ Run for almost a year by: http://www.servetheweb.com/
1999-04-28 11:38:52 +00:00
kern/kern_jail.c standard
kern/kern_kthread.c standard
kern/kern_ktr.c optional ktr
1994-05-24 10:09:53 +00:00
kern/kern_ktrace.c standard
kern/kern_linker.c standard
kern/kern_lock.c standard
1994-09-20 15:55:09 +00:00
kern/kern_lockf.c standard
1994-05-24 10:09:53 +00:00
kern/kern_malloc.c standard
kern/kern_mib.c standard
kern/kern_module.c standard
kern/kern_mutex.c standard
kern/kern_ntptime.c standard
1994-05-24 10:09:53 +00:00
kern/kern_physio.c standard
kern/kern_proc.c standard
kern/kern_prot.c standard
kern/kern_resource.c standard
kern/kern_shutdown.c standard
1994-05-24 10:09:53 +00:00
kern/kern_sig.c standard
kern/kern_subr.c standard
kern/kern_switch.c standard
kern/kern_sx.c standard
1994-05-24 10:09:53 +00:00
kern/kern_synch.c standard
kern/kern_syscalls.c standard
1994-05-24 10:09:53 +00:00
kern/kern_sysctl.c standard
kern/kern_tc.c standard
1994-05-24 10:09:53 +00:00
kern/kern_time.c standard
kern/kern_timeout.c standard
1994-05-24 10:09:53 +00:00
kern/kern_xxx.c standard
kern/link_elf.c standard
kern/md5c.c standard
kern/subr_autoconf.c standard
kern/subr_blist.c standard
kern/subr_bus.c standard
1998-09-15 09:59:15 +00:00
kern/subr_devstat.c standard
kern/subr_disk.c standard
kern/subr_disklabel.c standard
1998-09-15 09:59:15 +00:00
kern/subr_diskslice.c standard
kern/subr_eventhandler.c standard
kern/subr_kobj.c standard
1994-05-24 10:09:53 +00:00
kern/subr_log.c standard
kern/subr_mchain.c optional libmchain
kern/subr_module.c standard
kern/subr_pcpu.c standard
1994-05-24 10:09:53 +00:00
kern/subr_prf.c standard
kern/subr_prof.c standard
kern/subr_rman.c standard
2000-12-13 19:52:12 +00:00
kern/subr_sbuf.c standard
kern/subr_scanf.c standard
Overhaul of the SMP code. Several portions of the SMP kernel support have been made machine independent and various other adjustments have been made to support Alpha SMP. - It splits the per-process portions of hardclock() and statclock() off into hardclock_process() and statclock_process() respectively. hardclock() and statclock() call the *_process() functions for the current process so that UP systems will run as before. For SMP systems, it is simply necessary to ensure that all other processors execute the *_process() functions when the main clock functions are triggered on one CPU by an interrupt. For the alpha 4100, clock interrupts are delievered in a staggered broadcast fashion, so we simply call hardclock/statclock on the boot CPU and call the *_process() functions on the secondaries. For x86, we call statclock and hardclock as usual and then call forward_hardclock/statclock in the MD code to send an IPI to cause the AP's to execute forwared_hardclock/statclock which then call the *_process() functions. - forward_signal() and forward_roundrobin() have been reworked to be MI and to involve less hackery. Now the cpu doing the forward sets any flags, etc. and sends a very simple IPI_AST to the other cpu(s). AST IPIs now just basically return so that they can execute ast() and don't bother with setting the astpending or needresched flags themselves. This also removes the loop in forward_signal() as sched_lock closes the race condition that the loop worked around. - need_resched(), resched_wanted() and clear_resched() have been changed to take a process to act on rather than assuming curproc so that they can be used to implement forward_roundrobin() as described above. - Various other SMP variables have been moved to a MI subr_smp.c and a new header sys/smp.h declares MI SMP variables and API's. The IPI API's from machine/ipl.h have moved to machine/smp.h which is included by sys/smp.h. - The globaldata_register() and globaldata_find() functions as well as the SLIST of globaldata structures has become MI and moved into subr_smp.c. Also, the globaldata list is only available if SMP support is compiled in. Reviewed by: jake, peter Looked over by: eivind
2001-04-27 19:28:25 +00:00
kern/subr_smp.c optional smp
kern/subr_taskqueue.c standard
Rework the witness code to work with sx locks as well as mutexes. - Introduce lock classes and lock objects. Each lock class specifies a name and set of flags (or properties) shared by all locks of a given type. Currently there are three lock classes: spin mutexes, sleep mutexes, and sx locks. A lock object specifies properties of an additional lock along with a lock name and all of the extra stuff needed to make witness work with a given lock. This abstract lock stuff is defined in sys/lock.h. The lockmgr constants, types, and prototypes have been moved to sys/lockmgr.h. For temporary backwards compatability, sys/lock.h includes sys/lockmgr.h. - Replace proc->p_spinlocks with a per-CPU list, PCPU(spinlocks), of spin locks held. By making this per-cpu, we do not have to jump through magic hoops to deal with sched_lock changing ownership during context switches. - Replace proc->p_heldmtx, formerly a list of held sleep mutexes, with proc->p_sleeplocks, which is a list of held sleep locks including sleep mutexes and sx locks. - Add helper macros for logging lock events via the KTR_LOCK KTR logging level so that the log messages are consistent. - Add some new flags that can be passed to mtx_init(): - MTX_NOWITNESS - specifies that this lock should be ignored by witness. This is used for the mutex that blocks a sx lock for example. - MTX_QUIET - this is not new, but you can pass this to mtx_init() now and no events will be logged for this lock, so that one doesn't have to change all the individual mtx_lock/unlock() operations. - All lock objects maintain an initialized flag. Use this flag to export a mtx_initialized() macro that can be safely called from drivers. Also, we on longer walk the all_mtx list if MUTEX_DEBUG is defined as witness performs the corresponding checks using the initialized flag. - The lock order reversal messages have been improved to output slightly more accurate file and line numbers.
2001-03-28 09:03:24 +00:00
kern/subr_witness.c optional witness
1994-05-24 10:09:53 +00:00
kern/subr_xxx.c standard
kern/sys_generic.c standard
kern/sys_pipe.c standard
1994-05-24 10:09:53 +00:00
kern/sys_process.c standard
kern/sys_socket.c standard
kern/syscalls.c optional witness
kern/sysv_ipc.c standard
kern/sysv_msg.c optional sysvmsg
kern/sysv_sem.c optional sysvsem
1994-05-24 10:09:53 +00:00
kern/sysv_shm.c optional sysvshm
kern/tty.c standard
kern/tty_compat.c standard
kern/tty_conf.c standard
kern/tty_cons.c standard
1994-05-24 10:09:53 +00:00
kern/tty_pty.c optional pty
2001-01-29 09:43:36 +00:00
kern/tty_snoop.c optional snp
1994-05-24 10:09:53 +00:00
kern/tty_subr.c standard
kern/tty_tty.c standard
kern/uipc_accf.c optional inet
1994-05-24 10:09:53 +00:00
kern/uipc_domain.c standard
kern/uipc_mbuf.c standard
kern/uipc_mbuf2.c standard
1994-05-24 10:09:53 +00:00
kern/uipc_proto.c standard
kern/uipc_socket.c standard
kern/uipc_socket2.c standard
kern/uipc_syscalls.c standard
kern/uipc_usrreq.c standard
kern/vfs_aio.c standard
1994-05-24 10:09:53 +00:00
kern/vfs_bio.c standard
kern/vfs_cache.c standard
kern/vfs_cluster.c standard
kern/vfs_conf.c standard
kern/vfs_default.c standard
kern/vfs_export.c standard
1994-05-24 10:09:53 +00:00
kern/vfs_init.c standard
kern/vfs_lookup.c standard
kern/vfs_subr.c standard
kern/vfs_syscalls.c standard
kern/vfs_vnops.c standard
#
# These files in libkern/ are those needed by all architectures. Some
# of the files in libkern/ are only needed on some architectures, e.g.,
# libkern/divdi3.c is needed by i386 but not alpha. Also, some of these
# routines may be optimized for a particular platform. In either case,
# the file should be moved to <arch>/conf/files.<arch> from here.
#
libkern/arc4random.c standard
libkern/bcd.c standard
Rewrite of the CAM error recovery code. Some of the major changes include: - The SCSI error handling portion of cam_periph_error() has been broken out into a number of subfunctions to better modularize the code that handles the hierarchy of SCSI errors. As a result, the code is now much easier to read. - String handling and error printing has been significantly revamped. We now use sbufs to do string formatting instead of using printfs (for the kernel) and snprintf/strncat (for userland) as before. There is a new catchall error printing routine, cam_error_print() and its string-based counterpart, cam_error_string() that allow the kernel and userland applications to pass in a CCB and have errors printed out properly, whether or not they're SCSI errors. Among other things, this helped eliminate a fair amount of duplicate code in camcontrol. We now print out more information than before, including the CAM status and SCSI status and the error recovery action taken to remedy the problem. - sbufs are now available in userland, via libsbuf. This change was necessary since most of the error printing code is shared between libcam and the kernel. - A new transfer settings interface is included in this checkin. This code is #ifdef'ed out, and is primarily intended to aid discussion with HBA driver authors on the final form the interface should take. There is example code in the ahc(4) driver that implements the HBA driver side of the new interface. The new transfer settings code won't be enabled until we're ready to switch all HBA drivers over to the new interface. src/Makefile.inc1, lib/Makefile: Add libsbuf. It must be built before libcam, since libcam uses sbuf routines. libcam/Makefile: libcam now depends on libsbuf. libsbuf/Makefile: Add a makefile for libsbuf. This pulls in the sbuf sources from sys/kern. bsd.libnames.mk: Add LIBSBUF. camcontrol/Makefile: Add -lsbuf. Since camcontrol is statically linked, we can't depend on the dynamic linker to pull in libsbuf. camcontrol.c: Use cam_error_print() instead of checking for CAM_SCSI_STATUS_ERROR on every failed CCB. sbuf.9: Change the prototypes for sbuf_cat() and sbuf_cpy() so that the source string is now a const char *. This is more in line wth the standard system string functions, and helps eliminate warnings when dealing with a const source buffer. Fix a typo. cam.c: Add description strings for the various CAM error status values, as well as routines to look up those strings. Add new cam_error_string() and cam_error_print() routines for userland and the kernel. cam.h: Add a new CAM flag, CAM_RETRY_SELTO. Add enumerated types for the various options available with cam_error_print() and cam_error_string(). cam_ccb.h: Add new transfer negotiation structures/types. Change inq_len in the ccb_getdev structure to be "reserved". This field has never been filled in, and will be removed when we next bump the CAM version. cam_debug.h: Fix typo. cam_periph.c: Modularize cam_periph_error(). The SCSI error handling part of cam_periph_error() is now in camperiphscsistatuserror() and camperiphscsisenseerror(). In cam_periph_lock(), increase the reference count on the periph while we wait for our lock attempt to succeed so that the periph won't go away while we're sleeping. cam_xpt.c: Add new transfer negotiation code. (ifdefed out) Add a new function, xpt_path_string(). This is a string/sbuf analog to xpt_print_path(). scsi_all.c: Revamp string handing and error printing code. We now use sbufs for much of the string formatting code. More of that code is shared between userland the kernel. scsi_all.h: Get rid of SS_TURSTART, it wasn't terribly useful in the first place. Add a new error action, SS_REQSENSE. (Send a request sense and then retry the command.) This is useful when the controller hasn't performed autosense for some reason. Change the default actions around a bit. scsi_cd.c, scsi_da.c, scsi_pt.c, scsi_ses.c: SF_RETRY_SELTO -> CAM_RETRY_SELTO. Selection timeouts shouldn't be covered by a sense flag. scsi_pass.[ch]: SF_RETRY_SELTO -> CAM_RETRY_SELTO. Get rid of the last vestiges of a read/write interface. libkern/bsearch.c, sys/libkern.h, conf/files: Add bsearch.c, which is needed for some of the new table lookup routines. aic7xxx_freebsd.c: Define AHC_NEW_TRAN_SETTINGS if CAM_NEW_TRAN_CODE is defined. sbuf.h, subr_sbuf.c: Add the appropriate #ifdefs so sbufs can compile and run in userland. Change sbuf_printf() to use vsnprintf() instead of kvprintf(), which is only available in the kernel. Change the source string for sbuf_cpy() and sbuf_cat() to be a const char *. Add __BEGIN_DECLS and __END_DECLS around function prototypes since they're now exported to userland. kdump/mkioctls: Include stdio.h before cam.h since cam.h now includes a function with a FILE * argument. Submitted by: gibbs (mostly) Reviewed by: jdp, marcel (libsbuf makefile changes) Reviewed by: des (sbuf changes) Reviewed by: ken
2001-03-27 05:45:52 +00:00
libkern/bsearch.c standard
libkern/iconv.c optional libiconv
libkern/iconv_converter_if.m optional libiconv
libkern/iconv_xlat.c optional libiconv
libkern/index.c standard
libkern/inet_ntoa.c standard
libkern/mcount.c optional profiling-routine
libkern/qsort.c standard
libkern/random.c standard
libkern/rindex.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/strtol.c standard
libkern/strtoq.c standard
libkern/strtoul.c standard
libkern/strtouq.c standard
net/bpf.c standard
net/bpf_filter.c optional bpf
bpf.h standard \
compile-with "echo '#define NBPF 1' > bpf.h" \
no-obj no-implicit-rule before-depend
net/bridge.c optional bridge
net/bsd_comp.c optional ppp_bsdcomp
#net/hostcache.c standard
1994-05-24 10:09:53 +00:00
net/if.c standard
1997-05-09 12:19:06 +00:00
net/if_atmsubr.c optional atm
net/if_disc.c optional disc
net/if_ef.c optional ef
1994-05-24 10:09:53 +00:00
net/if_ethersubr.c optional ether
net/if_faith.c count faith
net/if_fddisubr.c optional fddi
net/if_gif.c count gif
net/if_iso88025subr.c optional token
net/if_loop.c optional loop
1997-05-03 21:06:00 +00:00
net/if_media.c standard
net/if_mib.c standard
net/if_ppp.c count ppp
1994-05-24 10:09:53 +00:00
net/if_sl.c optional sl
net/if_spppsubr.c optional sppp
net/if_stf.c count stf
net/if_tun.c optional tun
net/if_tap.c optional tap
net/if_vlan.c count vlan
net/intrq.c standard
net/net_osdep.c standard
net/ppp_deflate.c optional ppp_deflate
net/ppp_tty.c optional ppp
net/pfil.c optional pfil_hooks
net/pfil.c optional ipfilter
1994-05-24 10:09:53 +00:00
net/radix.c standard
net/raw_cb.c standard
net/raw_usrreq.c standard
net/route.c standard
net/rtsock.c standard
net/slcompress.c optional ppp
1994-05-24 10:09:53 +00:00
net/slcompress.c optional sl
net/zlib.c optional ppp_deflate
net/zlib.c optional ipsec
netatalk/aarp.c optional netatalk
netatalk/at_control.c optional netatalk
netatalk/at_proto.c optional netatalk
netatalk/at_rmx.c optional netatalkdebug
netatalk/ddp_input.c optional netatalk
netatalk/ddp_output.c optional netatalk
netatalk/ddp_usrreq.c optional netatalk
(this is an extract from src/share/examples/atm/README) =================================== HARP | Host ATM Research Platform =================================== HARP 3 What is this stuff? ------------------- The Advanced Networking Group (ANG) at the Minnesota Supercomputer Center, Inc. (MSCI), as part of its work on the MAGIC Gigabit Testbed, developed the Host ATM Research Platform (HARP) software, which allows IP hosts to communicate over ATM networks using standard protocols. It is intended to be a high-quality platform for IP/ATM research. HARP provides a way for IP hosts to connect to ATM networks. It supports standard methods of communication using IP over ATM. A host's standard IP software sends and receives datagrams via a HARP ATM interface. HARP provides functionality similar to (and typically replaces) vendor-provided ATM device driver software. HARP includes full source code, making it possible for researchers to experiment with different approaches to running IP over ATM. HARP is self-contained; it requires no other licenses or commercial software packages. HARP implements support for the IETF Classical IP model for using IP over ATM networks, including: o IETF ATMARP address resolution client o IETF ATMARP address resolution server o IETF SCSP/ATMARP server o UNI 3.1 and 3.0 signalling protocols o Fore Systems's SPANS signalling protocol What's supported ---------------- The following are supported by HARP 3: o ATM Host Interfaces - FORE Systems, Inc. SBA-200 and SBA-200E ATM SBus Adapters - FORE Systems, Inc. PCA-200E ATM PCI Adapters - Efficient Networks, Inc. ENI-155p ATM PCI Adapters o ATM Signalling Protocols - The ATM Forum UNI 3.1 signalling protocol - The ATM Forum UNI 3.0 signalling protocol - The ATM Forum ILMI address registration - FORE Systems's proprietary SPANS signalling protocol - Permanent Virtual Channels (PVCs) o IETF "Classical IP and ARP over ATM" model - RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5" - RFC 1577, "Classical IP and ARP over ATM" - RFC 1626, "Default IP MTU for use over ATM AAL5" - RFC 1755, "ATM Signaling Support for IP over ATM" - RFC 2225, "Classical IP and ARP over ATM" - RFC 2334, "Server Cache Synchronization Protocol (SCSP)" - Internet Draft draft-ietf-ion-scsp-atmarp-00.txt, "A Distributed ATMARP Service Using SCSP" o ATM Sockets interface - The file atm-sockets.txt contains further information What's not supported -------------------- The following major features of the above list are not currently supported: o UNI point-to-multipoint support o Driver support for Traffic Control/Quality of Service o SPANS multicast and MPP support o SPANS signalling using Efficient adapters This software was developed under the sponsorship of the Defense Advanced Research Projects Agency (DARPA). Reviewed (lightly) by: phk Submitted by: Network Computing Services, Inc.
1998-09-15 11:44:44 +00:00
netatm/atm_aal5.c optional atm_core
netatm/atm_cm.c optional atm_core
netatm/atm_device.c optional atm_core
netatm/atm_if.c optional atm_core
netatm/atm_proto.c optional atm_core
netatm/atm_signal.c optional atm_core
netatm/atm_socket.c optional atm_core
netatm/atm_subr.c optional atm_core
netatm/atm_usrreq.c optional atm_core
netatm/ipatm/ipatm_event.c optional atm_ip atm_core
netatm/ipatm/ipatm_if.c optional atm_ip atm_core
netatm/ipatm/ipatm_input.c optional atm_ip atm_core
netatm/ipatm/ipatm_load.c optional atm_ip atm_core
netatm/ipatm/ipatm_output.c optional atm_ip atm_core
netatm/ipatm/ipatm_usrreq.c optional atm_ip atm_core
netatm/ipatm/ipatm_vcm.c optional atm_ip atm_core
netatm/sigpvc/sigpvc_if.c optional atm_sigpvc atm_core
netatm/sigpvc/sigpvc_subr.c optional atm_sigpvc atm_core
netatm/spans/spans_arp.c optional atm_spans atm_core \
dependency "spans_xdr.h"
(this is an extract from src/share/examples/atm/README) =================================== HARP | Host ATM Research Platform =================================== HARP 3 What is this stuff? ------------------- The Advanced Networking Group (ANG) at the Minnesota Supercomputer Center, Inc. (MSCI), as part of its work on the MAGIC Gigabit Testbed, developed the Host ATM Research Platform (HARP) software, which allows IP hosts to communicate over ATM networks using standard protocols. It is intended to be a high-quality platform for IP/ATM research. HARP provides a way for IP hosts to connect to ATM networks. It supports standard methods of communication using IP over ATM. A host's standard IP software sends and receives datagrams via a HARP ATM interface. HARP provides functionality similar to (and typically replaces) vendor-provided ATM device driver software. HARP includes full source code, making it possible for researchers to experiment with different approaches to running IP over ATM. HARP is self-contained; it requires no other licenses or commercial software packages. HARP implements support for the IETF Classical IP model for using IP over ATM networks, including: o IETF ATMARP address resolution client o IETF ATMARP address resolution server o IETF SCSP/ATMARP server o UNI 3.1 and 3.0 signalling protocols o Fore Systems's SPANS signalling protocol What's supported ---------------- The following are supported by HARP 3: o ATM Host Interfaces - FORE Systems, Inc. SBA-200 and SBA-200E ATM SBus Adapters - FORE Systems, Inc. PCA-200E ATM PCI Adapters - Efficient Networks, Inc. ENI-155p ATM PCI Adapters o ATM Signalling Protocols - The ATM Forum UNI 3.1 signalling protocol - The ATM Forum UNI 3.0 signalling protocol - The ATM Forum ILMI address registration - FORE Systems's proprietary SPANS signalling protocol - Permanent Virtual Channels (PVCs) o IETF "Classical IP and ARP over ATM" model - RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5" - RFC 1577, "Classical IP and ARP over ATM" - RFC 1626, "Default IP MTU for use over ATM AAL5" - RFC 1755, "ATM Signaling Support for IP over ATM" - RFC 2225, "Classical IP and ARP over ATM" - RFC 2334, "Server Cache Synchronization Protocol (SCSP)" - Internet Draft draft-ietf-ion-scsp-atmarp-00.txt, "A Distributed ATMARP Service Using SCSP" o ATM Sockets interface - The file atm-sockets.txt contains further information What's not supported -------------------- The following major features of the above list are not currently supported: o UNI point-to-multipoint support o Driver support for Traffic Control/Quality of Service o SPANS multicast and MPP support o SPANS signalling using Efficient adapters This software was developed under the sponsorship of the Defense Advanced Research Projects Agency (DARPA). Reviewed (lightly) by: phk Submitted by: Network Computing Services, Inc.
1998-09-15 11:44:44 +00:00
netatm/spans/spans_cls.c optional atm_spans atm_core
netatm/spans/spans_if.c optional atm_spans atm_core
netatm/spans/spans_kxdr.c optional atm_spans atm_core
netatm/spans/spans_msg.c optional atm_spans atm_core
netatm/spans/spans_print.c optional atm_spans atm_core
netatm/spans/spans_proto.c optional atm_spans atm_core
netatm/spans/spans_subr.c optional atm_spans atm_core
netatm/spans/spans_util.c optional atm_spans atm_core
spans_xdr.h optional atm_spans atm_core \
before-depend \
dependency "$S/netatm/spans/spans_xdr.x" \
compile-with "rpcgen -h -C $S/netatm/spans/spans_xdr.x > spans_xdr.h" \
clean "spans_xdr.h" \
no-obj no-implicit-rule
(this is an extract from src/share/examples/atm/README) =================================== HARP | Host ATM Research Platform =================================== HARP 3 What is this stuff? ------------------- The Advanced Networking Group (ANG) at the Minnesota Supercomputer Center, Inc. (MSCI), as part of its work on the MAGIC Gigabit Testbed, developed the Host ATM Research Platform (HARP) software, which allows IP hosts to communicate over ATM networks using standard protocols. It is intended to be a high-quality platform for IP/ATM research. HARP provides a way for IP hosts to connect to ATM networks. It supports standard methods of communication using IP over ATM. A host's standard IP software sends and receives datagrams via a HARP ATM interface. HARP provides functionality similar to (and typically replaces) vendor-provided ATM device driver software. HARP includes full source code, making it possible for researchers to experiment with different approaches to running IP over ATM. HARP is self-contained; it requires no other licenses or commercial software packages. HARP implements support for the IETF Classical IP model for using IP over ATM networks, including: o IETF ATMARP address resolution client o IETF ATMARP address resolution server o IETF SCSP/ATMARP server o UNI 3.1 and 3.0 signalling protocols o Fore Systems's SPANS signalling protocol What's supported ---------------- The following are supported by HARP 3: o ATM Host Interfaces - FORE Systems, Inc. SBA-200 and SBA-200E ATM SBus Adapters - FORE Systems, Inc. PCA-200E ATM PCI Adapters - Efficient Networks, Inc. ENI-155p ATM PCI Adapters o ATM Signalling Protocols - The ATM Forum UNI 3.1 signalling protocol - The ATM Forum UNI 3.0 signalling protocol - The ATM Forum ILMI address registration - FORE Systems's proprietary SPANS signalling protocol - Permanent Virtual Channels (PVCs) o IETF "Classical IP and ARP over ATM" model - RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5" - RFC 1577, "Classical IP and ARP over ATM" - RFC 1626, "Default IP MTU for use over ATM AAL5" - RFC 1755, "ATM Signaling Support for IP over ATM" - RFC 2225, "Classical IP and ARP over ATM" - RFC 2334, "Server Cache Synchronization Protocol (SCSP)" - Internet Draft draft-ietf-ion-scsp-atmarp-00.txt, "A Distributed ATMARP Service Using SCSP" o ATM Sockets interface - The file atm-sockets.txt contains further information What's not supported -------------------- The following major features of the above list are not currently supported: o UNI point-to-multipoint support o Driver support for Traffic Control/Quality of Service o SPANS multicast and MPP support o SPANS signalling using Efficient adapters This software was developed under the sponsorship of the Defense Advanced Research Projects Agency (DARPA). Reviewed (lightly) by: phk Submitted by: Network Computing Services, Inc.
1998-09-15 11:44:44 +00:00
spans_xdr.c optional atm_spans atm_core \
before-depend \
dependency "$S/netatm/spans/spans_xdr.x" \
compile-with "rpcgen -c -C $S/netatm/spans/spans_xdr.x > spans_xdr.c" \
clean "spans_xdr.c" \
no-obj no-implicit-rule local
spans_xdr.o optional atm_spans atm_core \
dependency "$S/netatm/spans/spans_xdr.x" \
compile-with "${NORMAL_C}" \
no-implicit-rule local
netatm/uni/q2110_sigaa.c optional atm_uni atm_core
netatm/uni/q2110_sigcpcs.c optional atm_uni atm_core
netatm/uni/q2110_subr.c optional atm_uni atm_core
netatm/uni/qsaal1_sigaa.c optional atm_uni atm_core
netatm/uni/qsaal1_sigcpcs.c optional atm_uni atm_core
netatm/uni/qsaal1_subr.c optional atm_uni atm_core
netatm/uni/sscf_uni.c optional atm_uni atm_core
netatm/uni/sscf_uni_lower.c optional atm_uni atm_core
netatm/uni/sscf_uni_upper.c optional atm_uni atm_core
netatm/uni/sscop.c optional atm_uni atm_core
netatm/uni/sscop_lower.c optional atm_uni atm_core
netatm/uni/sscop_pdu.c optional atm_uni atm_core
netatm/uni/sscop_sigaa.c optional atm_uni atm_core
netatm/uni/sscop_sigcpcs.c optional atm_uni atm_core
netatm/uni/sscop_subr.c optional atm_uni atm_core
netatm/uni/sscop_timer.c optional atm_uni atm_core
netatm/uni/sscop_upper.c optional atm_uni atm_core
netatm/uni/uni_load.c optional atm_uni atm_core
netatm/uni/uniarp.c optional atm_uni atm_core
netatm/uni/uniarp_cache.c optional atm_uni atm_core
netatm/uni/uniarp_input.c optional atm_uni atm_core
netatm/uni/uniarp_output.c optional atm_uni atm_core
netatm/uni/uniarp_timer.c optional atm_uni atm_core
netatm/uni/uniarp_vcm.c optional atm_uni atm_core
netatm/uni/uniip.c optional atm_uni atm_core
netatm/uni/unisig_decode.c optional atm_uni atm_core
netatm/uni/unisig_encode.c optional atm_uni atm_core
netatm/uni/unisig_if.c optional atm_uni atm_core
netatm/uni/unisig_mbuf.c optional atm_uni atm_core
netatm/uni/unisig_msg.c optional atm_uni atm_core
netatm/uni/unisig_print.c optional atm_uni atm_core
netatm/uni/unisig_proto.c optional atm_uni atm_core
netatm/uni/unisig_sigmgr_state.c optional atm_uni atm_core
netatm/uni/unisig_subr.c optional atm_uni atm_core
netatm/uni/unisig_util.c optional atm_uni atm_core
netatm/uni/unisig_vc_state.c optional atm_uni atm_core
netgraph/ng_UI.c optional netgraph_UI
netgraph/ng_async.c optional netgraph_async
netgraph/ng_base.c optional netgraph
netgraph/ng_bpf.c optional netgraph_bpf
net/bpf_filter.c optional netgraph_bpf
netgraph/ng_bridge.c optional netgraph_bridge
netgraph/ng_cisco.c optional netgraph_cisco
netgraph/ng_echo.c optional netgraph_echo
netgraph/ng_ether.c optional netgraph_ether
netgraph/ng_frame_relay.c optional netgraph_frame_relay
netgraph/ng_hole.c optional netgraph_hole
netgraph/ng_iface.c optional netgraph_iface
1999-11-16 23:30:05 +00:00
netgraph/ng_ksocket.c optional netgraph_ksocket
netgraph/ng_lmi.c optional netgraph_lmi
netgraph/ng_mppc.c optional netgraph_mppc_compression
# The next two files (plus the header file net/mppc.h) are proprietary and
# must be obtained elsewhere in order to enable NETGRAPH_MPPC_COMPRESSION
net/mppcc.c optional netgraph_mppc_compression
net/mppcd.c optional netgraph_mppc_compression
netgraph/ng_mppc.c optional netgraph_mppc_encryption
crypto/rc4/rc4.c optional awi
crypto/rc4/rc4.c optional netgraph_mppc_encryption
crypto/sha1.c optional netgraph_mppc_encryption
2000-11-16 16:59:26 +00:00
netgraph/ng_one2many.c optional netgraph_one2many
netgraph/ng_parse.c optional netgraph
netgraph/ng_ppp.c optional netgraph_ppp
netgraph/ng_pppoe.c optional netgraph_pppoe
netgraph/ng_pptpgre.c optional netgraph_pptpgre
netgraph/ng_rfc1490.c optional netgraph_rfc1490
netgraph/ng_socket.c optional netgraph_socket
netgraph/ng_tee.c optional netgraph_tee
netgraph/ng_tty.c optional netgraph_tty
netgraph/ng_vjc.c optional netgraph_vjc
net/slcompress.c optional netgraph_vjc
netinet/accf_data.c optional accept_filter_data
netinet/accf_http.c optional accept_filter_http
netinet/fil.c optional ipfilter inet
1997-05-09 12:19:06 +00:00
netinet/if_atm.c optional atm
1994-05-24 10:09:53 +00:00
netinet/if_ether.c optional ether
netinet/igmp.c optional inet
netinet/in.c optional inet
netinet/in_gif.c optional gif inet
#netinet/in_hostcache.c optional inet
1994-05-24 10:09:53 +00:00
netinet/in_pcb.c optional inet
netinet/in_proto.c optional inet
netinet/in_rmx.c optional inet
netinet/ip_auth.c optional ipfilter inet
netinet/ip_divert.c optional ipdivert
netinet/ip_dummynet.c optional dummynet
netinet/ip_ecn.c optional inet
netinet/ip_ecn.c optional inet6
netinet/ip_encap.c optional inet
netinet/ip_encap.c optional inet6
netinet/ip_fil.c optional ipfilter inet
netinet/ip_flow.c optional inet
netinet/ip_frag.c optional ipfilter inet
netinet/ip_fw.c optional ipfirewall
1994-05-24 10:09:53 +00:00
netinet/ip_icmp.c optional inet
netinet/ip_input.c optional inet
netinet/ip_log.c optional ipfilter inet
netinet/ip_mroute.c optional inet
netinet/ip_nat.c optional ipfilter inet
1994-05-24 10:09:53 +00:00
netinet/ip_output.c optional inet
netinet/ip_proxy.c optional ipfilter inet
netinet/ip_state.c optional ipfilter inet
netinet/mlfk_ipl.c optional ipfilter inet
1994-05-24 10:09:53 +00:00
netinet/raw_ip.c optional inet
netinet/tcp_debug.c optional tcpdebug
1994-05-24 10:09:53 +00:00
netinet/tcp_input.c optional inet
netinet/tcp_output.c optional inet
netinet/tcp_subr.c optional inet
netinet/tcp_timer.c optional inet
netinet/tcp_usrreq.c optional inet
netinet/udp_usrreq.c optional inet
netinet6/ah_core.c optional ipsec
netinet6/ah_input.c optional ipsec
netinet6/ah_output.c optional ipsec
netinet6/dest6.c optional inet6
netinet6/esp_core.c optional ipsec ipsec_esp
netinet6/esp_input.c optional ipsec ipsec_esp
netinet6/esp_output.c optional ipsec ipsec_esp
netinet6/frag6.c optional inet6
netinet6/icmp6.c optional inet6
netinet6/in6.c optional inet6
netinet6/in6_cksum.c optional inet6
netinet6/in6_gif.c optional gif inet6
netinet6/in6_ifattach.c optional inet6
netinet6/in6_pcb.c optional inet6
netinet6/in6_prefix.c optional inet6
netinet6/in6_proto.c optional inet6
netinet6/in6_rmx.c optional inet6
netinet6/in6_src.c optional inet6
netinet6/ip6_forward.c optional inet6
netinet6/ip6_fw.c optional inet6 ipv6firewall
netinet6/ip6_input.c optional inet6
netinet6/ip6_mroute.c optional inet6
netinet6/ip6_output.c optional inet6
netinet6/ipcomp_core.c optional ipsec
netinet6/ipcomp_input.c optional ipsec
netinet6/ipcomp_output.c optional ipsec
netinet6/ipsec.c optional ipsec
netinet6/mld6.c optional inet6
netinet6/nd6.c optional inet6
netinet6/nd6_nbr.c optional inet6
netinet6/nd6_rtr.c optional inet6
netinet6/raw_ip6.c optional inet6
netinet6/route6.c optional inet6
netinet6/scope6.c optional inet6
netinet6/udp6_output.c optional inet6
netinet6/udp6_usrreq.c optional inet6
netipx/ipx.c optional ipx
netipx/ipx_cksum.c optional ipx
netipx/ipx_input.c optional ipx
netipx/ipx_ip.c optional ipx
netipx/ipx_outputfl.c optional ipx
netipx/ipx_pcb.c optional ipx
netipx/ipx_proto.c optional ipx
netipx/ipx_tun.c optional ipx
netipx/ipx_usrreq.c optional ipx
netipx/spx_debug.c optional ipx
netipx/spx_usrreq.c optional ipx
netkey/key.c optional ipsec
netkey/keydb.c optional ipsec
netkey/key_debug.c optional ipsec
netkey/keysock.c optional ipsec
1997-05-09 12:19:06 +00:00
netnatm/natm.c optional natm
netnatm/natm_pcb.c optional natm
netnatm/natm_proto.c optional natm
netncp/ncp_conn.c optional ncp
netncp/ncp_crypt.c optional ncp
netncp/ncp_login.c optional ncp
netncp/ncp_mod.c optional ncp
netncp/ncp_ncp.c optional ncp
netncp/ncp_nls.c optional ncp
netncp/ncp_rq.c optional ncp
netncp/ncp_sock.c optional ncp
netncp/ncp_subr.c optional ncp
netns/idp_usrreq.c optional ns
netns/ns.c optional ns
netns/ns_error.c optional ns
netns/ns_input.c optional ns
netns/ns_ip.c optional ns
netns/ns_output.c optional ns
netns/ns_pcb.c optional ns
netns/ns_proto.c optional ns
netns/spp_debug.c optional ns
netns/spp_usrreq.c optional ns
nfs/bootp_subr.c optional bootp
nfs/krpc_subr.c optional bootp
1994-05-24 10:09:53 +00:00
nfs/nfs_bio.c optional nfs
nfs/nfs_node.c optional nfs
nfs/nfs_lock.c optional nfs
1994-05-24 10:09:53 +00:00
nfs/nfs_nqlease.c optional nfs
nfs/nfs_serv.c optional nfs
nfs/nfs_socket.c optional nfs
nfs/nfs_srvcache.c optional nfs
nfs/nfs_subs.c optional nfs
nfs/nfs_syscalls.c optional nfs
nfs/nfs_vfsops.c optional nfs
nfs/nfs_vnops.c optional nfs
pccard/pccard.c count card
pccard/pccard_beep.c optional card
1999-09-06 11:36:25 +00:00
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
2000-06-09 16:05:39 +00:00
pci/agp.c optional agp
pci/agp_if.m optional agp
pci/agp_intel.c optional agp
pci/agp_via.c optional agp
pci/agp_sis.c optional agp
pci/agp_ali.c optional agp
pci/agp_amd.c optional agp
pci/agp_i810.c optional agp
2001-01-03 07:39:07 +00:00
pci/alpm.c optional alpm
pci/amd.c optional amd
pci/cy_pci.c optional cy pci
pci/if_dc.c optional dc
pci/if_de.c optional de
pci/if_en_pci.c optional en pci
#pci/if_fxp.c optional fxp
pci/if_mn.c optional mn
pci/if_pcn.c optional pcn
pci/if_rl.c optional rl
pci/if_sf.c optional sf
pci/if_sis.c optional sis
This commit adds driver support for the SysKonnect SK-984x series gigabit ethernet adapters. This includes two single port cards (single mode and multimode fiber) and two dual port cards (also single mode and multimode fiber). SysKonnect is currently the only vendor with a dual port gigabit ethernet NIC. The ports on dual port adapters are treated as separate network interfaces. Thus, if you have an SK-9844 dual port SX card, you should have both sk0 and sk1 interfaces attached. Dual port cards are implemented using two XMAC II chips connected to a single SysKonnect GEnesis controller. Hence, dual port cards are really one PCI device, as opposed to two separate PCI devices connected through a PCI to PCI bridge. Note that SysKonnect's drivers use the two ports for failover purposes rather that as two separate interfaces, plus they don't support jumbo frames. This applies to their Linux driver too. :) Support is provided for hardware multicast filtering, BPF and jumbo frames. The SysKonnect cards support TCP checksum offload however this feature is not currently enabled (hopefully it will be once we get checksum offload support). There are still a few things that need to be implemeted, like the ability to communicate with the on-board LM80 voltage/temperature monitor, but I wanted to get the driver under CVS control and into -current so people could bang on it. A big thanks for SysKonnect for making all their programming info for these cards (and for their FDDI and token ring cards) available without NDA (see www.syskonnect.com).
1999-07-09 04:30:09 +00:00
pci/if_sk.c optional sk
pci/if_ste.c optional ste
pci/if_ti.c optional ti
pci/if_tl.c optional tl
pci/if_tx.c optional tx
pci/if_vr.c optional vr
pci/if_wb.c optional wb
pci/if_wx.c optional wx
pci/if_xl.c optional xl
pci/intpm.c optional intpm
pci/meteor.c count meteor pci
pci/ncr.c optional ncr
pci/ohci_pci.c optional ohci
dev/pccbb/pccbb.c optional pccbb
pci/simos.c optional simos
pci/uhci_pci.c optional uhci
pci/xrpu.c optional xrpu
posix4/ksched.c optional _kposix_priority_scheduling
posix4/p1003_1b.c standard
posix4/posix4_mib.c standard
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_alloc.c optional ffs
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ffs/ffs_alloc.c optional ifs
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_balloc.c optional ffs
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ffs/ffs_balloc.c optional ifs
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_inode.c optional ffs
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ffs/ffs_inode.c optional ifs
ufs/ffs/ffs_snapshot.c optional ffs
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ffs/ffs_snapshot.c optional ifs
ufs/ffs/ffs_softdep.c optional softupdates
ufs/ffs/ffs_softdep_stub.c standard
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_subr.c optional ffs
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ffs/ffs_subr.c optional ifs
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_tables.c optional ffs
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ffs/ffs_tables.c optional ifs
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_vfsops.c optional ffs
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ffs/ffs_vfsops.c optional ifs
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_vnops.c optional ffs
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ffs/ffs_vnops.c optional ifs
Introduce support for POSIX.1e ACLs on UFS-based file systems. This implementation is still experimental, and while fairly broadly tested, is not yet intended for production use. Support for POSIX.1e ACLs on UFS will not be MFC'd to RELENG_4. This implementation works by providing implementations of VOP_[GS]ETACL() for FFS, as well as modifying the appropriate access control and file creation routines. In this implementation, ACLs are backed into extended attributes; the base ACL (owner, group, other) permissions remain in the inode for performance and compatibility reasons, so only the extended and default ACLs are placed in extended attributes. The logic for ACL evaluation is provided by the fs-independent kern/kern_acl.c. o Introduce UFS_ACL, a compile-time configuration option that enables support for ACLs on FFS (and potentially other UFS-based file systems). o Introduce ufs_getacl(), ufs_setacl(), ufs_aclcheck(), which respectively get, set, and check the ACLs on the passed vnode. o Introduce ufs_sync_acl_from_inode(), ufs_sync_inode_from_acl() to maintain access control information between inode permissions and extended attribute data. o Modify ufs_access() to load a file access ACL and invoke vaccess_acl_posix1e() if ACLs are available on the file system o Modify ufs_mkdir() and ufs_makeinode() to associate ACLs with newly created directories and files, inheriting from the parent directory's default ACL. o Enable these new vnode operations and conditionally compiled code paths if UFS_ACL is defined. A few notes: o This implementation is fairly widely tested, but still should be considered experimental. o Currently, ACLs are not exported via NFS, instead, the summarizing file mode/etc from the inode is. This results in conservative protection behavior, similar to the behavior of ACL-nonaware programs acting locally. o It is possible that underlying binary data formats associated with this implementation may change. Consumers of the implementation should expect to find their local configuration obsoleted in the next few months, resulting in possible loss of ACL data during an upgrade. o The extended attributes interface and implementation is still undergoing modification to address portable interface concerns, as well as performance. o Many applications do not yet correctly handle ACLs. In general, due to the POSIX.1e ACL model, behavior of ACL-unaware applications will be conservative with respects to file protection; some caution is recommended. o Instructions for configuring and maintaining ACLs on UFS will be committed in the near future; in the mean time it is possible to reference the README included in the last UFS ACL distribution placed in the TrustedBSD web site: http://www.TrustedBSD.org/downloads/ Substantial debugging, hardware, travel, or connectivity support for this project was provided by: BSDi, Safeport Network Services, and NAI Labs. Significant coding contributions were made by Chris Faulhaber. Additional support was provided by Brian Feldman, Thomas Moestl, and Ilmar Habibulin. Reviewed by: jedgar, keichii, mckusick, trustedbsd-discuss, freebsd-fs Obtained from: TrustedBSD Project
2001-03-26 17:53:19 +00:00
ufs/ufs/ufs_acl.c standard
1994-05-24 10:09:53 +00:00
ufs/ufs/ufs_bmap.c standard
ufs/ufs/ufs_extattr.c standard
1994-05-24 10:09:53 +00:00
ufs/ufs/ufs_ihash.c standard
ufs/ufs/ufs_inode.c standard
ufs/ufs/ufs_lookup.c standard
Initial commit of IFS - a inode-namespaced FFS. Here is a short description: How it works: -- Basically ifs is a copy of ffs, overriding some vfs/vnops. (Yes, hack.) I didn't see the need in duplicating all of sys/ufs/ffs to get this off the ground. File creation is done through a special file - 'newfile' . When newfile is called, the system allocates and returns an inode. Note that newfile is done in a cloning fashion: fd = open("newfile", O_CREAT|O_RDWR, 0644); fstat(fd, &st); printf("new file is %d\n", (int)st.st_ino); Once you have created a file, you can open() and unlink() it by its returned inode number retrieved from the stat call, ie: fd = open("5", O_RDWR); The creation permissions depend entirely if you have write access to the root directory of the filesystem. To get the list of currently allocated inodes, VOP_READDIR has been added which returns a directory listing of those currently allocated. -- What this entails: * patching conf/files and conf/options to include IFS as a new compile option (and since ifs depends upon FFS, include the FFS routines) * An entry in i386/conf/NOTES indicating IFS exists and where to go for an explanation * Unstaticize a couple of routines in src/sys/ufs/ffs/ which the IFS routines require (ffs_mount() and ffs_reload()) * a new bunch of routines in src/sys/ufs/ifs/ which implement the IFS routines. IFS replaces some of the vfsops, and a handful of vnops - most notably are VFS_VGET(), VOP_LOOKUP(), VOP_UNLINK() and VOP_READDIR(). Any other directory operation is marked as invalid. What this results in: * an IFS partition's create permissions are controlled by the perm/ownership of the root mount point, just like a normal directory * Each inode has perm and ownership too * IFS does *NOT* mean an FFS partition can be opened per inode. This is a completely seperate filesystem here * Softupdates doesn't work with IFS, and really I don't think it needs it. Besides, fsck's are FAST. (Try it :-) * Inodes 0 and 1 aren't allocatable because they are special (dump/swap IIRC). Inode 2 isn't allocatable since UFS/FFS locks all inodes in the system against this particular inode, and unravelling THAT code isn't trivial. Therefore, useful inodes start at 3. Enjoy, and feedback is definitely appreciated!
2000-10-14 03:02:30 +00:00
ufs/ifs/ifs_lookup.c optional ifs
ufs/ifs/ifs_vfsops.c optional ifs
ufs/ifs/ifs_vnops.c optional ifs
ufs/ifs/ifs_subr.c optional ifs
1994-05-24 10:09:53 +00:00
ufs/ufs/ufs_quota.c standard
ufs/ufs/ufs_vfsops.c standard
ufs/ufs/ufs_vnops.c standard
NOTE: libkvm, w, ps, 'top', and any other utility which depends on struct proc or any VM system structure will have to be rebuilt!!! Much needed overhaul of the VM system. Included in this first round of changes: 1) Improved pager interfaces: init, alloc, dealloc, getpages, putpages, haspage, and sync operations are supported. The haspage interface now provides information about clusterability. All pager routines now take struct vm_object's instead of "pagers". 2) Improved data structures. In the previous paradigm, there is constant confusion caused by pagers being both a data structure ("allocate a pager") and a collection of routines. The idea of a pager structure has escentially been eliminated. Objects now have types, and this type is used to index the appropriate pager. In most cases, items in the pager structure were duplicated in the object data structure and thus were unnecessary. In the few cases that remained, a un_pager structure union was created in the object to contain these items. 3) Because of the cleanup of #1 & #2, a lot of unnecessary layering can now be removed. For instance, vm_object_enter(), vm_object_lookup(), vm_object_remove(), and the associated object hash list were some of the things that were removed. 4) simple_lock's removed. Discussion with several people reveals that the SMP locking primitives used in the VM system aren't likely the mechanism that we'll be adopting. Even if it were, the locking that was in the code was very inadequate and would have to be mostly re-done anyway. The locking in a uni-processor kernel was a no-op but went a long way toward making the code difficult to read and debug. 5) Places that attempted to kludge-up the fact that we don't have kernel thread support have been fixed to reflect the reality that we are really dealing with processes, not threads. The VM system didn't have complete thread support, so the comments and mis-named routines were just wrong. We now use tsleep and wakeup directly in the lock routines, for instance. 6) Where appropriate, the pagers have been improved, especially in the pager_alloc routines. Most of the pager_allocs have been rewritten and are now faster and easier to maintain. 7) The pagedaemon pageout clustering algorithm has been rewritten and now tries harder to output an even number of pages before and after the requested page. This is sort of the reverse of the ideal pagein algorithm and should provide better overall performance. 8) Unnecessary (incorrect) casts to caddr_t in calls to tsleep & wakeup have been removed. Some other unnecessary casts have also been removed. 9) Some almost useless debugging code removed. 10) Terminology of shadow objects vs. backing objects straightened out. The fact that the vm_object data structure escentially had this backwards really confused things. The use of "shadow" and "backing object" throughout the code is now internally consistent and correct in the Mach terminology. 11) Several minor bug fixes, including one in the vm daemon that caused 0 RSS objects to not get purged as intended. 12) A "default pager" has now been created which cleans up the transition of objects to the "swap" type. The previous checks throughout the code for swp->pg_data != NULL were really ugly. This change also provides the rudiments for future backing of "anonymous" memory by something other than the swap pager (via the vnode pager, for example), and it allows the decision about which of these pagers to use to be made dynamically (although will need some additional decision code to do this, of course). 13) (dyson) MAP_COPY has been deprecated and the corresponding "copy object" code has been removed. MAP_COPY was undocumented and non- standard. It was furthermore broken in several ways which caused its behavior to degrade to MAP_PRIVATE. Binaries that use MAP_COPY will continue to work correctly, but via the slightly different semantics of MAP_PRIVATE. 14) (dyson) Sharing maps have been removed. It's marginal usefulness in a threads design can be worked around in other ways. Both #12 and #13 were done to simplify the code and improve readability and maintain- ability. (As were most all of these changes) TODO: 1) Rewrite most of the vnode pager to use VOP_GETPAGES/PUTPAGES. Doing this will reduce the vnode pager to a mere fraction of its current size. 2) Rewrite vm_fault and the swap/vnode pagers to use the clustering information provided by the new haspage pager interface. This will substantially reduce the overhead by eliminating a large number of VOP_BMAP() calls. The VOP_BMAP() filesystem interface should be improved to provide both a "behind" and "ahead" indication of contiguousness. 3) Implement the extended features of pager_haspage in swap_pager_haspage(). It currently just says 0 pages ahead/behind. 4) Re-implement the swap device (swstrategy) in a more elegant way, perhaps via a much more general mechanism that could also be used for disk striping of regular filesystems. 5) Do something to improve the architecture of vm_object_collapse(). The fact that it makes calls into the swap pager and knows too much about how the swap pager operates really bothers me. It also doesn't allow for collapsing of non-swap pager objects ("unnamed" objects backed by other pagers).
1995-07-13 08:48:48 +00:00
vm/default_pager.c standard
vm/device_pager.c standard
vm/phys_pager.c standard
vm/swap_pager.c standard
1994-05-24 10:09:53 +00:00
vm/vm_fault.c standard
vm/vm_glue.c standard
vm/vm_init.c standard
vm/vm_kern.c standard
vm/vm_map.c standard
vm/vm_meter.c standard
vm/vm_mmap.c standard
vm/vm_object.c standard
vm/vm_page.c standard
vm/vm_pageout.c standard
vm/vm_pager.c standard
vm/vm_swap.c standard
vm/vm_unix.c standard
vm/vm_zone.c standard
vm/vnode_pager.c standard