freebsd-skq/sys/conf/files

1219 lines
45 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
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 count dgm
#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/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
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
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/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/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/blowfish/bf_cbc.c optional random
crypto/blowfish/bf_enc.c optional random
crypto/blowfish/bf_skey.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/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/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/vn/vn.c optional vn \
warning "The vn(4) driver has been deprecated, use md(4) instead"
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/devfs/devfs_vnops.c optional devfs
fs/devfs/devfs_vfsops.c optional devfs
fs/devfs/devfs_devs.c optional devfs
fs/hpfs/hpfs_vfsops.c optional hpfs
fs/hpfs/hpfs_vnops.c optional hpfs
fs/hpfs/hpfs_hash.c optional hpfs
fs/hpfs/hpfs_subr.c optional hpfs
fs/hpfs/hpfs_lookup.c optional hpfs
fs/hpfs/hpfs_alsubr.c optional hpfs
gnu/ext2fs/ext2_alloc.c optional ext2fs
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 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
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
kern/subr_taskqueue.c standard
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
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
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
1994-05-24 10:09:53 +00:00
miscfs/deadfs/dead_vnops.c standard
miscfs/fdesc/fdesc_vfsops.c optional fdesc
miscfs/fdesc/fdesc_vnops.c optional fdesc
miscfs/fifofs/fifo_vnops.c standard
1994-05-24 10:09:53 +00:00
miscfs/nullfs/null_subr.c optional nullfs
miscfs/nullfs/null_vfsops.c optional nullfs
miscfs/nullfs/null_vnops.c optional nullfs
miscfs/portal/portal_vfsops.c optional portal
miscfs/portal/portal_vnops.c optional portal
miscfs/procfs/procfs_ctl.c optional procfs
miscfs/procfs/procfs_dbregs.c standard
miscfs/procfs/procfs_fpregs.c standard
miscfs/procfs/procfs_map.c optional procfs
miscfs/procfs/procfs_mem.c standard
1994-09-20 15:55:09 +00:00
miscfs/procfs/procfs_note.c optional procfs
miscfs/procfs/procfs_regs.c standard
miscfs/procfs/procfs_rlimit.c optional procfs
1994-09-20 15:55:09 +00:00
miscfs/procfs/procfs_status.c optional procfs
miscfs/procfs/procfs_subr.c optional procfs
miscfs/procfs/procfs_type.c optional procfs
1994-09-20 15:55:09 +00:00
miscfs/procfs/procfs_vfsops.c optional procfs
miscfs/procfs/procfs_vnops.c optional procfs
1994-05-24 10:09:53 +00:00
miscfs/specfs/spec_vnops.c standard
miscfs/umapfs/umap_subr.c optional umapfs
miscfs/umapfs/umap_vfsops.c optional umapfs
miscfs/umapfs/umap_vnops.c optional umapfs
miscfs/union/union_subr.c optional union
miscfs/union/union_vfsops.c optional union
miscfs/union/union_vnops.c optional union
1994-09-20 15:55:09 +00:00
msdosfs/msdosfs_conv.c optional msdosfs
msdosfs/msdosfs_denode.c optional msdosfs
msdosfs/msdosfs_fat.c optional msdosfs
msdosfs/msdosfs_lookup.c optional msdosfs
msdosfs/msdosfs_vfsops.c optional msdosfs
msdosfs/msdosfs_vnops.c optional msdosfs
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_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
ntfs/ntfs_compr.c optional ntfs
ntfs/ntfs_ihash.c optional ntfs
ntfs/ntfs_subr.c optional ntfs
ntfs/ntfs_vfsops.c optional ntfs
ntfs/ntfs_vnops.c optional ntfs
nwfs/nwfs_io.c optional nwfs
nwfs/nwfs_ioctl.c optional nwfs
nwfs/nwfs_node.c optional nwfs
nwfs/nwfs_subr.c optional nwfs
nwfs/nwfs_vfsops.c optional nwfs
nwfs/nwfs_vnops.c optional nwfs
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
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/pcic_p.c optional pcic pci card
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_alloc.c optional mfs
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_balloc.c optional mfs
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
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_inode.c optional mfs
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_snapshot.c optional mfs
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_subr.c optional mfs
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_tables.c optional mfs
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_vfsops.c optional mfs
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
1994-05-24 10:09:53 +00:00
ufs/ffs/ffs_vnops.c optional mfs
ufs/mfs/mfs_vfsops.c optional mfs
ufs/mfs/mfs_vnops.c optional mfs
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