Index: stable/4/sys/conf/files =================================================================== --- stable/4/sys/conf/files (revision 71937) +++ stable/4/sys/conf/files (revision 71938) @@ -1,1155 +1,1156 @@ # $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 \ dependency "$S/dev/aic7xxx/aicasm/*.[chyl]" \ compile-with "${MAKE} -f $S/dev/aic7xxx/aicasm/Makefile MAKESRCPATH=$S/dev/aic7xxx/aicasm" \ 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" \ dependency "$S/dev/aic7xxx/aic7xxx.{reg,seq} $S/cam/scsi/scsi_message.h aicasm" device_if.o standard \ compile-with "${NORMAL_C}" \ no-implicit-rule local device_if.c standard \ - dependency "$S/kern/makedevops.pl $S/kern/device_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/kern/device_if.m" \ + dependency "$S/kern/makeops.pl $S/kern/device_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/kern/device_if.m" \ no-obj no-implicit-rule before-depend local \ clean "device_if.c" device_if.h standard \ - dependency "$S/kern/makedevops.pl $S/kern/device_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/kern/device_if.m" \ + dependency "$S/kern/makeops.pl $S/kern/device_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/kern/device_if.m" \ no-obj no-implicit-rule before-depend \ clean "device_if.h" bus_if.o standard \ compile-with "${NORMAL_C}" \ no-implicit-rule local bus_if.c standard \ - dependency "$S/kern/makedevops.pl $S/kern/bus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/kern/bus_if.m" \ + dependency "$S/kern/makeops.pl $S/kern/bus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/kern/bus_if.m" \ no-obj no-implicit-rule before-depend local \ clean "bus_if.c" bus_if.h standard \ - dependency "$S/kern/makedevops.pl $S/kern/bus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/kern/bus_if.m" \ + dependency "$S/kern/makeops.pl $S/kern/bus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/kern/bus_if.m" \ no-obj no-implicit-rule before-depend \ clean "bus_if.h" coda/coda_namecache.c optional vcoda coda/coda_fbsd.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 cam/cam.c optional scbus cam/cam_xpt.c optional scbus cam/cam_extend.c optional scbus cam/cam_queue.c optional scbus cam/cam_periph.c optional scbus cam/cam_sim.c optional scbus cam/scsi/scsi_all.c optional scbus cam/scsi/scsi_da.c optional da cam/scsi/scsi_pt.c optional pt cam/scsi/scsi_sa.c optional sa cam/scsi/scsi_cd.c optional cd cam/scsi/scsi_ch.c optional ch 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 ncv cam/scsi/scsi_low_pisa.c optional nsp cam/scsi/scsi_low_pisa.c optional stg cam/scsi/scsi_pass.c optional pass cam/scsi/scsi_ses.c optional ses cam/scsi/scsi_target.c optional targ cam/scsi/scsi_targ_bh.c optional targbh crypto/sha1.c optional ipsec 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/des/des_3cbc.c optional ipsec ipsec_esp 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/rc5/rc5.c optional ipsec ipsec_esp crypto/rc5/rc5_cbc.c optional ipsec ipsec_esp ddb/db_access.c optional ddb ddb/db_kld.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_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/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/an/if_an.c optional an dev/an/if_an_isa.c optional an isa dev/an/if_an_pci.c optional an pci dev/an/if_an_pccard.c optional an card dev/asr/asr.c optional asr pci #dev/amr/amr_cam.c optional amr dev/amr/amr_disk.c optional amr dev/amr/amr_pci.c optional amr dev/amr/amr.c optional amr 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 dev/aic/aic.c optional aic dev/aic/aic_pccard.c optional aic card 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 dev/aic7xxx/aic7xxx_freebsd.c optional ahc dev/aic7xxx/aic7xxx_pci.c optional ahc pci dev/buslogic/bt.c optional bt dev/buslogic/bt_isa.c optional bt isa dev/buslogic/bt_mca.c optional bt mca dev/buslogic/bt_eisa.c optional bt eisa dev/buslogic/bt_pci.c optional bt pci dev/cardbus/cardbus.c optional cardbus dev/ccd/ccd.c optional 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/dpt/dpt_control.c optional dpt dev/dpt/dpt_scsi.c optional dpt dev/dpt/dpt_eisa.c optional dpt eisa dev/dpt/dpt_pci.c optional dpt pci dev/ed/if_ed_pci.c optional ed pci dev/ep/if_ep.c optional ep dev/ep/if_ep_isa.c optional ep isa dev/ep/if_ep_eisa.c optional ep eisa dev/ep/if_ep_mca.c optional ep mca dev/ep/if_ep_pccard.c optional ep card dev/en/midway.c optional en dev/ex/if_ex.c optional ex isa dev/fe/if_fe.c optional fe dev/fe/if_fe_pccard.c optional fe card 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/ie/if_ie.c optional ie isa dev/ichsmb/ichsmb.c optional ichsmb dev/ichsmb/ichsmb_pci.c optional ichsmb pci dev/ida/ida.c optional ida dev/ida/ida_disk.c optional ida dev/ida/ida_eisa.c optional ida eisa dev/ida/ida_pci.c optional ida pci dev/isp/isp_freebsd.c optional isp dev/isp/isp.c optional isp dev/isp/isp_target.c optional isp dev/ispfw/ispfw.c optional ispfw dev/mca/mca_bus.c optional mca dev/md/md.c optional md dev/mii/mii.c optional miibus dev/mii/mii_physubr.c optional miibus dev/mii/ukphy.c optional miibus dev/mii/ukphy_subr.c optional miibus dev/mii/amphy.c optional miibus dev/mii/brgphy.c optional miibus dev/mii/dcphy.c optional miibus dev/mii/exphy.c optional miibus dev/mii/mlphy.c optional miibus dev/mii/nsphy.c optional miibus dev/mii/pnphy.c optional miibus dev/mii/pnaphy.c optional miibus dev/mii/tlphy.c optional miibus dev/mii/rlphy.c optional miibus dev/mii/xmphy.c optional miibus miibus_if.o optional miibus \ dependency "miibus_if.c miibus_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local miibus_if.c optional miibus \ - dependency "$S/kern/makedevops.pl $S/dev/mii/miibus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/mii/miibus_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/mii/miibus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/mii/miibus_if.m" \ no-obj no-implicit-rule before-depend local \ clean "miibus_if.c" miibus_if.h optional miibus \ - dependency "$S/kern/makedevops.pl $S/dev/mii/miibus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/mii/miibus_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/mii/miibus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/mii/miibus_if.m" \ no-obj no-implicit-rule before-depend \ clean "miibus_if.h" dev/mlx/mlx_disk.c optional mlx dev/mlx/mlx_pci.c optional mlx dev/mlx/mlx.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/ncv/ncr53c500.c optional ncv dev/ncv/ncr53c500_pccard.c optional ncv card dev/nsp/nsp.c optional nsp dev/nsp/nsp_pccard.c optional nsp card dev/pccard/pccard.c optional pccard dev/pccard/pccard_cis.c optional pccard dev/pccard/pccard_cis_quirks.c optional pccard power_if.o optional pccard \ dependency "power_if.c power_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local power_if.c optional pccard \ - dependency "$S/kern/makedevops.pl $S/dev/pccard/power_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/pccard/power_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/pccard/power_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/pccard/power_if.m" \ no-obj no-implicit-rule before-depend local \ clean "power_if.c" power_if.h optional pccard \ - dependency "$S/kern/makedevops.pl $S/dev/pccard/power_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/pccard/power_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/pccard/power_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/pccard/power_if.m" \ no-obj no-implicit-rule before-depend \ clean "power_if.h" power_if.o optional card \ dependency "power_if.c power_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local power_if.c optional card \ - dependency "$S/kern/makedevops.pl $S/dev/pccard/power_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/pccard/power_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/pccard/power_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/pccard/power_if.m" \ no-obj no-implicit-rule before-depend local \ clean "power_if.c" power_if.h optional card \ - dependency "$S/kern/makedevops.pl $S/dev/pccard/power_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/pccard/power_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/pccard/power_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/pccard/power_if.m" \ no-obj no-implicit-rule before-depend \ clean "power_if.h" card_if.o optional pccard \ dependency "card_if.c card_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local card_if.c optional pccard \ - dependency "$S/kern/makedevops.pl $S/dev/pccard/card_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/pccard/card_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/pccard/card_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/pccard/card_if.m" \ no-obj no-implicit-rule before-depend local \ clean "card_if.c" card_if.h optional pccard \ - dependency "$S/kern/makedevops.pl $S/dev/pccard/card_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/pccard/card_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/pccard/card_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/pccard/card_if.m" \ no-obj no-implicit-rule before-depend \ clean "card_if.h" card_if.o optional card \ dependency "card_if.c card_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local card_if.c optional card \ - dependency "$S/kern/makedevops.pl $S/dev/pccard/card_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/pccard/card_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/pccard/card_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/pccard/card_if.m" \ no-obj no-implicit-rule before-depend local \ clean "card_if.c" card_if.h optional card \ - dependency "$S/kern/makedevops.pl $S/dev/pccard/card_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/pccard/card_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/pccard/card_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/pccard/card_if.m" \ no-obj no-implicit-rule before-depend \ clean "card_if.h" 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_ifsubr.c optional fea eisa dev/pdq/pdq.c optional fpa pci dev/pdq/pdq_ifsubr.c optional fpa pci ppbus_if.o optional ppbus \ dependency "ppbus_if.c ppbus_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local ppbus_if.c optional ppbus \ - dependency "$S/kern/makedevops.pl $S/dev/ppbus/ppbus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/ppbus/ppbus_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/ppbus/ppbus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/ppbus/ppbus_if.m" \ no-obj no-implicit-rule before-depend local \ clean "ppbus_if.c" ppbus_if.h optional ppbus \ - dependency "$S/kern/makedevops.pl $S/dev/ppbus/ppbus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/ppbus/ppbus_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/ppbus/ppbus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/ppbus/ppbus_if.m" \ no-obj no-implicit-rule before-depend \ clean "ppbus_if.h" dev/ppbus/immio.c optional vpo dev/ppbus/if_plip.c optional plip dev/ppbus/lpbb.c optional lpbb dev/ppbus/lpt.c optional lpt dev/ppbus/pcfclock.c optional pcfclock dev/ppbus/ppb_base.c optional ppbus dev/ppbus/ppb_1284.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/ray/if_ray.c optional ray card dev/ray/if_ray.c optional ray pccard smbus_if.o optional smbus \ dependency "smbus_if.c smbus_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local smbus_if.c optional smbus \ - dependency "$S/kern/makedevops.pl $S/dev/smbus/smbus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/smbus/smbus_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/smbus/smbus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/smbus/smbus_if.m" \ no-obj no-implicit-rule before-depend local \ clean "smbus_if.c" smbus_if.h optional smbus \ - dependency "$S/kern/makedevops.pl $S/dev/smbus/smbus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/smbus/smbus_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/smbus/smbus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/smbus/smbus_if.m" \ no-obj no-implicit-rule before-depend \ clean "smbus_if.h" dev/smbus/smbconf.c optional smbus dev/smbus/smbus.c optional smbus dev/smbus/smb.c optional smb 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/sn/if_sn.c optional sn dev/sn/if_sn_isa.c optional sn isa dev/sn/if_sn_pccard.c optional sn card dev/stg/tmc18c30.c optional stg dev/stg/tmc18c30_isa.c optional stg isa dev/stg/tmc18c30_pccard.c optional stg card dev/iicbus/iicbb.c optional iicbb iicbb_if.o optional iicbb \ dependency "iicbb_if.c" \ compile-with "${NORMAL_C}" \ no-implicit-rule local iicbb_if.c optional iicbb \ - dependency "$S/kern/makedevops.pl $S/dev/iicbus/iicbb_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/iicbus/iicbb_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/iicbus/iicbb_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/iicbus/iicbb_if.m" \ no-obj no-implicit-rule before-depend local \ clean "iicbb_if.c" iicbb_if.h optional iicbb \ - dependency "$S/kern/makedevops.pl $S/dev/iicbus/iicbb_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/iicbus/iicbb_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/iicbus/iicbb_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/iicbus/iicbb_if.m" \ no-obj no-implicit-rule before-depend \ clean "iicbb_if.h" dev/iicbus/iicsmb.c optional iicsmb \ dependency "iicbus_if.h" iicbus_if.o optional iicbus \ dependency "iicbus_if.c iicbus_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local iicbus_if.c optional iicbus \ - dependency "$S/kern/makedevops.pl $S/dev/iicbus/iicbus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/iicbus/iicbus_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/iicbus/iicbus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/iicbus/iicbus_if.m" \ no-obj no-implicit-rule before-depend local \ clean "iicbus_if.c" iicbus_if.h optional iicbus \ - dependency "$S/kern/makedevops.pl $S/dev/iicbus/iicbus_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/iicbus/iicbus_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/iicbus/iicbus_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/iicbus/iicbus_if.m" \ no-obj no-implicit-rule before-depend \ clean "iicbus_if.h" dev/iicbus/iiconf.c optional iicbus dev/iicbus/iicbus.c optional iicbus dev/iicbus/if_ic.c optional ic dev/iicbus/iic.c optional iic dev/twe/twe.c optional twe dev/twe/twe_freebsd.c optional twe 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 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/xe/if_xe.c optional xe 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 # device drivers i4b/driver/i4b_trace.c optional i4btrc i4b/driver/i4b_rbch.c optional i4brbch i4b/driver/i4b_tel.c optional i4btel i4b/driver/i4b_ipr.c optional i4bipr i4b/driver/i4b_ctl.c optional i4bctl i4b/driver/i4b_isppp.c optional i4bisppp net/if_spppsubr.c optional sppp # needed by i4bipr net/slcompress.c optional i4bipr # tina-dd control driver i4b/tina-dd/i4b_tina_dd.c optional tina # support i4b/layer2/i4b_mbuf.c optional i4btrc # Q.921 handler i4b/layer2/i4b_l2.c optional 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 # Q.931 handler i4b/layer3/i4b_q931.c optional 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 # isdn device driver, interface to i4bd i4b/layer4/i4b_i4bdrv.c optional i4b i4b/layer4/i4b_l4.c optional i4b i4b/layer4/i4b_l4mgmt.c optional i4b i4b/layer4/i4b_l4timer.c optional i4b 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_aout.c standard kern/imgact_elf.c standard kern/imgact_gzip.c optional gzip kern/imgact_shell.c standard kern/inflate.c optional gzip kern/init_main.c standard kern/init_sysent.c standard kern/kern_intr.c standard kern/kern_module.c standard kern/kern_linker.c standard kern/link_aout.c standard kern/link_elf.c standard kern/kern_acct.c standard kern/kern_acl.c standard kern/kern_clock.c standard kern/kern_conf.c standard kern/kern_descrip.c standard kern/kern_environment.c standard kern/kern_event.c standard kern/kern_exec.c standard kern/kern_exit.c standard kern/kern_fork.c standard kern/kern_jail.c standard kern/kern_kthread.c standard kern/kern_ktrace.c standard kern/kern_lock.c standard kern/kern_lockf.c standard kern/kern_malloc.c standard kern/kern_mib.c standard kern/kern_ntptime.c standard kern/kern_physio.c standard kern/kern_proc.c standard kern/kern_prot.c standard kern/kern_random.c standard kern/kern_resource.c standard kern/kern_shutdown.c standard kern/kern_sig.c standard kern/kern_subr.c standard kern/kern_switch.c standard kern/kern_synch.c standard kern/kern_syscalls.c standard kern/kern_sysctl.c standard kern/kern_time.c standard kern/kern_timeout.c standard kern/kern_xxx.c standard kern/md5c.c standard kern/subr_autoconf.c standard kern/subr_bus.c standard kern/subr_devstat.c standard kern/subr_disk.c standard kern/subr_diskslice.c standard kern/subr_eventhandler.c standard +kern/subr_kobj.c standard kern/subr_log.c standard kern/subr_module.c standard kern/subr_prf.c standard kern/subr_prof.c standard kern/subr_blist.c standard kern/subr_scanf.c standard kern/subr_taskqueue.c standard kern/subr_xxx.c standard kern/sys_generic.c standard kern/sys_pipe.c standard kern/sys_process.c standard kern/subr_rman.c standard kern/sys_socket.c standard kern/sysv_ipc.c standard kern/sysv_msg.c optional sysvmsg kern/sysv_sem.c optional sysvsem 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 kern/tty_pty.c optional pty kern/tty_snoop.c optional snp kern/tty_subr.c standard kern/tty_tty.c standard kern/uipc_accf.c optional inet kern/uipc_domain.c standard kern/uipc_mbuf.c standard kern/uipc_mbuf2.c standard 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_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_init.c standard kern/vfs_lookup.c standard kern/vfs_subr.c standard kern/vfs_syscalls.c standard kern/vfs_vnops.c standard kern/kern_threads.c standard kern/vfs_aio.c standard miscfs/deadfs/dead_vnops.c standard miscfs/devfs/devfs_tree.c optional devfs miscfs/devfs/devfs_vfsops.c optional devfs miscfs/devfs/devfs_vnops.c optional devfs miscfs/fdesc/fdesc_vfsops.c optional fdesc miscfs/fdesc/fdesc_vnops.c optional fdesc miscfs/fifofs/fifo_vnops.c standard miscfs/kernfs/kernfs_vfsops.c optional kernfs miscfs/kernfs/kernfs_vnops.c optional kernfs 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 miscfs/procfs/procfs_note.c optional procfs miscfs/procfs/procfs_regs.c standard miscfs/procfs/procfs_status.c optional procfs miscfs/procfs/procfs_subr.c optional procfs miscfs/procfs/procfs_type.c optional procfs miscfs/procfs/procfs_vfsops.c optional procfs miscfs/procfs/procfs_vnops.c optional procfs miscfs/procfs/procfs_rlimit.c optional procfs 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 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 ntfs/ntfs_vfsops.c optional ntfs ntfs/ntfs_vnops.c optional ntfs ntfs/ntfs_subr.c optional ntfs ntfs/ntfs_compr.c optional ntfs ntfs/ntfs_ihash.c optional ntfs net/bpf.c standard net/bpf_filter.c optional bpf net/bridge.c optional bridge net/bsd_comp.c optional ppp_bsdcomp #net/hostcache.c standard net/if.c standard net/if_atmsubr.c optional atm net/if_disc.c optional disc net/if_ef.c optional ef net/if_ethersubr.c optional ether net/if_iso88025subr.c optional token net/if_faith.c optional faith net/if_fddisubr.c optional fddi net/if_gif.c optional gif net/if_loop.c optional loop net/if_media.c standard net/if_mib.c standard net/if_ppp.c optional ppp net/if_sl.c optional sl net/if_spppsubr.c optional sppp net/if_stf.c optional stf net/if_tun.c optional tun net/if_tap.c optional tap net/if_vlan.c optional vlan net/net_osdep.c standard net/ppp_deflate.c optional ppp_deflate net/ppp_tty.c optional ppp net/intrq.c standard 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 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 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" 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 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_base.c optional netgraph netgraph/ng_parse.c optional netgraph netgraph/ng_async.c optional netgraph_async netgraph/ng_bpf.c optional netgraph_bpf net/bpf_filter.c optional netgraph_bpf 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 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 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_UI.c optional netgraph_UI 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/if_atm.c optional atm netinet/if_ether.c optional ether netinet/in_gif.c optional gif inet netinet/igmp.c optional inet netinet/in.c optional inet #netinet/in_hostcache.c optional inet netinet/in_pcb.c optional inet netinet/in_proto.c optional inet netinet/in_rmx.c optional inet 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_divert.c optional ipdivert netinet/ip_dummynet.c optional dummynet netinet/ip_flow.c optional inet netinet/ip_fw.c optional ipfirewall netinet/ip_icmp.c optional inet netinet/ip_input.c optional inet netinet/ip_mroute.c optional inet netinet/ip_output.c optional inet netinet/raw_ip.c optional inet netinet/tcp_debug.c optional tcpdebug 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 netinet/ip_fil.c optional ipfilter inet netinet/fil.c optional ipfilter inet netinet/ip_nat.c optional ipfilter inet netinet/ip_frag.c optional ipfilter inet netinet/ip_state.c optional ipfilter inet netinet/ip_auth.c optional ipfilter inet netinet/ip_proxy.c optional ipfilter inet netinet/ip_log.c optional ipfilter inet netinet/mlfk_ipl.c optional ipfilter inet netinet6/ah_core.c optional ipsec netinet6/ah_input.c optional ipsec netinet6/ah_output.c optional ipsec 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/ipsec.c optional ipsec netinet6/dest6.c optional inet6 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/ip6_forward.c optional inet6 netinet6/ip6_fw.c optional inet6 ipv6firewall netinet6/in6_ifattach.c optional inet6 netinet6/ip6_input.c optional inet6 netinet6/ip6_mroute.c optional inet6 netinet6/ip6_output.c optional inet6 netinet6/in6_src.c optional inet6 netinet6/ipcomp_core.c optional ipsec netinet6/ipcomp_input.c optional ipsec netinet6/ipcomp_output.c optional ipsec 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/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 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/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 nfs/bootp_subr.c optional bootp nfs/krpc_subr.c optional bootp 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 optional card pccard/pccard_beep.c optional card pccard/pccard_nbk.c optional card pccard/pcic.c optional pcic card pci/agp.c 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 agp_if.o optional agp \ dependency "agp_if.c agp_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local agp_if.c optional agp \ - dependency "$S/kern/makedevops.pl $S/pci/agp_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/pci/agp_if.m" \ + dependency "$S/kern/makeops.pl $S/pci/agp_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/pci/agp_if.m" \ no-obj no-implicit-rule before-depend local \ clean "agp_if.c" agp_if.h optional agp \ - dependency "$S/kern/makedevops.pl $S/pci/agp_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/pci/agp_if.m" \ + dependency "$S/kern/makeops.pl $S/pci/agp_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/pci/agp_if.m" \ no-obj no-implicit-rule before-depend \ clean "agp_if.h" pci/amd.c optional amd pci/pcic_p.c optional pcic pci 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/bktr/bktr_core.c optional bktr pci dev/bktr/bktr_i2c.c optional bktr pci smbus dev/bktr/bktr_card.c optional bktr pci dev/bktr/bktr_tuner.c optional bktr pci dev/bktr/bktr_audio.c optional bktr pci dev/bktr/bktr_os.c optional bktr pci pci/pccbb.c optional pccbb cardbus pci/cy_pci.c optional cy pci pci/if_ar_p.c optional ar 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_lnc_p.c optional lnc pci pci/if_pcn.c optional pcn pci/if_mn.c optional mn pci/if_rl.c optional rl pci/if_sf.c optional sf pci/if_sis.c optional sis pci/if_sk.c optional sk pci/if_ste.c optional ste pci/if_sr_p.c optional sr pci 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/isp_pci.c optional isp pci/intpm.c optional intpm pci/meteor.c optional meteor pci pci/ncr.c optional ncr dev/sym/sym_hipd.c optional sym \ dependency "$S/dev/sym/sym_{conf,defs}.h" pci/pci.c optional pci pci/pci_compat.c optional pci pci/pcisupport.c optional pci pci_if.o optional pci \ dependency "pci_if.c pci_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local pci_if.c optional pci \ - dependency "$S/kern/makedevops.pl $S/pci/pci_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/pci/pci_if.m" \ + dependency "$S/kern/makeops.pl $S/pci/pci_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/pci/pci_if.m" \ no-obj no-implicit-rule before-depend local \ clean "pci_if.c" pci_if.h optional pci \ - dependency "$S/kern/makedevops.pl $S/pci/pci_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/pci/pci_if.m" \ + dependency "$S/kern/makeops.pl $S/pci/pci_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/pci/pci_if.m" \ no-obj no-implicit-rule before-depend \ clean "pci_if.h" pci/simos.c optional simos pci/alpm.c optional alpm pci/xrpu.c optional xrpu posix4/posix4_mib.c standard posix4/p1003_1b.c standard posix4/ksched.c optional _kposix_priority_scheduling ufs/ffs/ffs_alloc.c optional ffs ufs/ffs/ffs_alloc.c optional mfs ufs/ffs/ffs_balloc.c optional ffs ufs/ffs/ffs_balloc.c optional mfs ufs/ffs/ffs_inode.c optional ffs ufs/ffs/ffs_inode.c optional mfs ufs/ffs/ffs_softdep_stub.c standard ufs/ffs/ffs_softdep.c optional softupdates ufs/ffs/ffs_subr.c optional ffs ufs/ffs/ffs_subr.c optional mfs ufs/ffs/ffs_tables.c optional ffs ufs/ffs/ffs_tables.c optional mfs ufs/ffs/ffs_vfsops.c optional ffs ufs/ffs/ffs_vfsops.c optional mfs ufs/ffs/ffs_vnops.c optional ffs 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_disksubr.c standard ufs/ufs/ufs_ihash.c standard ufs/ufs/ufs_inode.c standard ufs/ufs/ufs_lookup.c standard ufs/ufs/ufs_quota.c standard ufs/ufs/ufs_vfsops.c standard ufs/ufs/ufs_vnops.c standard vm/default_pager.c standard vm/device_pager.c standard vm/phys_pager.c standard vm/swap_pager.c standard 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/vnode_pager.c standard vm/vm_zone.c standard dev/streams/streams.c optional streams # # USB support pci/uhci_pci.c optional uhci pci/ohci_pci.c optional ohci usb_if.o optional usb \ dependency "usb_if.c" \ compile-with "${NORMAL_C}" \ no-implicit-rule local usb_if.c optional usb \ - dependency "$S/kern/makedevops.pl $S/dev/usb/usb_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/dev/usb/usb_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/usb/usb_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/dev/usb/usb_if.m" \ no-obj no-implicit-rule before-depend local \ clean "usb_if.c" usb_if.h optional usb \ - dependency "$S/kern/makedevops.pl $S/dev/usb/usb_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/dev/usb/usb_if.m" \ + dependency "$S/kern/makeops.pl $S/dev/usb/usb_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/dev/usb/usb_if.m" \ no-obj no-implicit-rule before-depend \ clean "usb_if.h" dev/usb/uhci.c optional uhci dev/usb/ohci.c optional ohci dev/usb/usb.c optional usb dev/usb/usbdi.c optional usb dev/usb/usbdi_util.c optional usb #dev/usb/usb_mem.c optional usb dev/usb/usb_ethersubr.c optional usb dev/usb/usb_subr.c optional usb dev/usb/usb_quirks.c optional usb dev/usb/hid.c optional usb dev/usb/ugen.c optional ugen dev/usb/uhid.c optional uhid dev/usb/ums.c optional ums dev/usb/ulpt.c optional ulpt dev/usb/ukbd.c optional ukbd dev/usb/umass.c optional umass -dev/usb/umodem.c optional umodem +dev/usb/umodem.c optional umodem dev/usb/uhub.c optional usb dev/usb/uscanner.c optional uscanner dev/usb/if_aue.c optional aue dev/usb/if_cue.c optional cue dev/usb/if_kue.c optional kue isa_if.o optional isa \ dependency "isa_if.c isa_if.h" \ compile-with "${NORMAL_C}" \ no-implicit-rule local isa_if.c optional isa \ - dependency "$S/kern/makedevops.pl $S/isa/isa_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -c $S/isa/isa_if.m" \ + dependency "$S/kern/makeops.pl $S/isa/isa_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -c $S/isa/isa_if.m" \ no-obj no-implicit-rule before-depend local \ clean "isa_if.c" isa_if.h optional isa \ - dependency "$S/kern/makedevops.pl $S/isa/isa_if.m" \ - compile-with "perl5 $S/kern/makedevops.pl -h $S/isa/isa_if.m" \ + dependency "$S/kern/makeops.pl $S/isa/isa_if.m" \ + compile-with "perl5 $S/kern/makeops.pl -h $S/isa/isa_if.m" \ no-obj no-implicit-rule before-depend \ clean "isa_if.h" 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 dev/sound/isa/ad1816.c optional pcm 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/mss.c optional pcm isa dev/sound/isa/sb.c optional pcm isa dev/sound/isa/sbc.c optional pcm isa dev/sound/isa/sbc.c optional sbc isa #dev/sound/pci/aureal.c optional pcm pci dev/sound/pci/csa.c optional csa pci dev/sound/pci/csa.c optional pcm pci dev/sound/pci/csapcm.c optional pcm pci dev/sound/pci/ds1.c optional pcm pci dev/sound/pci/emu10k1.c optional pcm pci dev/sound/pci/es137x.c optional pcm pci 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 dev/sound/pci/via82c686.c optional pcm pci dev/sound/pcm/ac97.c optional pcm dev/sound/pcm/channel.c 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_fmt.c optional pcm dev/sound/pcm/mixer.c optional pcm dev/sound/pcm/sound.c optional pcm # # 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 /conf/files. 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 Index: stable/4/sys/conf/kmod.mk =================================================================== --- stable/4/sys/conf/kmod.mk (revision 71937) +++ stable/4/sys/conf/kmod.mk (revision 71938) @@ -1,313 +1,313 @@ # From: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 # $FreeBSD$ # # The include file handles installing Kernel Loadable Device # drivers (KLD's). # # # +++ variables +++ # # CLEANFILES Additional files to remove for the clean and cleandir targets. # # DISTRIBUTION Name of distribution. [bin] # # KMOD The name of the kernel module to build. # # KMODDIR Base path for kernel modules (see kld(4)). [/modules] # # KMODOWN KLD owner. [${BINOWN}] # # KMODGRP KLD group. [${BINGRP}] # # KMODMODE KLD mode. [${BINMODE}] # # LINKS The list of KLD links; should be full pathnames, the # linked-to file coming first, followed by the linked # file. The files are hard-linked. For example, to link # /modules/master and /modules/meister, use: # # LINKS= /modules/master /modules/meister # # KMODLOAD Command to load a kernel module [/sbin/kldload] # # KMODUNLOAD Command to unload a kernel module [/sbin/kldunload] # # NOMAN KLD does not have a manual page if set. # -# PROG The name of the kernel module to build. +# PROG The name of the kernel module to build. # If not supplied, ${KMOD}.o is used. # -# SRCS List of source files +# SRCS List of source files # # KMODDEPS List of modules which this one is dependant on # # SUBDIR A list of subdirectories that should be built as well. # Each of the targets will execute the same target in the # subdirectories. # # SYMLINKS Same as LINKS, except it creates symlinks and the # linked-to pathname may be relative. # # DESTDIR, DISTDIR are set by other Makefiles (e.g. bsd.own.mk) # # MFILES Optionally a list of interfaces used by the module. # This file contains a default list of interfaces. # # +++ targets +++ # # distribute: # This is a variant of install, which will # put the stuff into the right "distribution". # # install: # install the program and its manual pages; if the Makefile # does not itself define the target install, the targets # beforeinstall and afterinstall may also be used to cause # actions immediately before and after the install target # is executed. # -# load: +# load: # Load KLD. # # unload: # Unload KLD. # # bsd.obj.mk: clean, cleandir and obj # bsd.dep.mk: cleandepend, depend and tags # bsd.man.mk: maninstall # KMODLOAD?= /sbin/kldload KMODUNLOAD?= /sbin/kldunload .if !target(__initialized__) __initialized__: .if exists(${.CURDIR}/../Makefile.inc) .include "${.CURDIR}/../Makefile.inc" .endif .endif .SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S CFLAGS+= ${COPTS} -D_KERNEL ${CWARNFLAGS} CFLAGS+= -DKLD_MODULE # Don't use any standard or source-relative include directories. # Since -nostdinc will annull any previous -I paths, we repeat all # such paths after -nostdinc. It doesn't seem to be possible to # add to the front of `make' variable. _ICFLAGS:= ${CFLAGS:M-I*} CFLAGS+= -nostdinc -I- ${_ICFLAGS} # Add -I paths for system headers. Individual KLD makefiles don't # need any -I paths for this. Similar defaults for .PATH can't be # set because there are no standard paths for non-headers. CFLAGS+= -I. -I@ # Add a -I path to standard headers like . Use a relative # path to src/include if possible. If the @ symlink hasn't been built # yet, then we can't tell if the relative path exists. Add both the # potential relative path and an absolute path in that case. .if exists(@) .if exists(@/../include) CFLAGS+= -I@/../include .else CFLAGS+= -I${DESTDIR}/usr/include .endif .else # !@ CFLAGS+= -I@/../include -I${DESTDIR}/usr/include .endif # @ CFLAGS+= ${DEBUG_FLAGS} .if ${OBJFORMAT} == elf CLEANFILES+= setdef0.c setdef1.c setdefs.h CLEANFILES+= setdef0.o setdef1.o .endif OBJS+= ${SRCS:N*.h:R:S/$/.o/g} .if !defined(PROG) PROG= ${KMOD}.ko .endif ${PROG}: ${KMOD}.kld ${KMODDEPS} .if ${OBJFORMAT} == elf gensetdefs ${KMOD}.kld ${CC} ${CFLAGS} -c setdef0.c ${CC} ${CFLAGS} -c setdef1.c ${LD} -Bshareable ${LDFLAGS} -o ${.TARGET} setdef0.o ${KMOD}.kld setdef1.o ${KMODDEPS} .else ${LD} -Bshareable ${LDFLAGS} -o ${.TARGET} ${KMOD}.kld ${KMODDEPS} .endif .if defined(KMODDEPS) .for dep in ${KMODDEPS} CLEANFILES+= ${dep} __${dep}_hack_dep.c ${dep}: touch __${dep}_hack_dep.c ${CC} -shared ${CFLAGS} -o ${dep} __${dep}_hack_dep.c .endfor .endif ${KMOD}.kld: ${OBJS} ${LD} ${LDFLAGS} -r -o ${.TARGET} ${OBJS} .if !defined(NOMAN) .include .if !defined(_MANPAGES) || empty(_MANPAGES) MAN1= ${KMOD}.4 .endif .elif !target(maninstall) maninstall: _SUBDIR all-man: .endif _ILINKS=@ machine .MAIN: all all: objwarn ${PROG} all-man _SUBDIR beforedepend ${OBJS}: ${_ILINKS} # Search for kernel source tree in standard places. .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. /sys /usr/src/sys .if !defined(SYSDIR) && exists(${_dir}/kern/) SYSDIR= ${_dir} .endif .endfor .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) .error "can't find kernel source tree" .endif ${_ILINKS}: @case ${.TARGET} in \ machine) \ path=${SYSDIR}/${MACHINE_ARCH}/include ;; \ @) \ path=${SYSDIR} ;; \ esac ; \ path=`(cd $$path && /bin/pwd)` ; \ ${ECHO} ${.TARGET} "->" $$path ; \ ln -s $$path ${.TARGET} CLEANFILES+= ${PROG} ${KMOD}.kld ${OBJS} ${_ILINKS} symb.tmp tmp.o .if !target(install) .if !target(beforeinstall) beforeinstall: .endif .if !target(afterinstall) afterinstall: .endif _INSTALLFLAGS:= ${INSTALLFLAGS} .for ie in ${INSTALLFLAGS_EDIT} _INSTALLFLAGS:= ${_INSTALLFLAGS${ie}} .endfor realinstall: _SUBDIR ${INSTALL} ${COPY} -o ${KMODOWN} -g ${KMODGRP} -m ${KMODMODE} \ ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${KMODDIR} .if defined(LINKS) && !empty(LINKS) @set ${LINKS}; \ while test $$# -ge 2; do \ l=${DESTDIR}$$1; \ shift; \ t=${DESTDIR}$$1; \ shift; \ ${ECHO} $$t -\> $$l; \ ln -f $$l $$t; \ done; true .endif .if defined(SYMLINKS) && !empty(SYMLINKS) @set ${SYMLINKS}; \ while test $$# -ge 2; do \ l=$$1; \ shift; \ t=${DESTDIR}$$1; \ shift; \ ${ECHO} $$t -\> $$l; \ ln -fs $$l $$t; \ done; true .endif install: afterinstall _SUBDIR .if !defined(NOMAN) afterinstall: realinstall maninstall .else afterinstall: realinstall .endif realinstall: beforeinstall .endif DISTRIBUTION?= bin .if !target(distribute) distribute: _SUBDIR .for dist in ${DISTRIBUTION} cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies .endfor .endif .if !target(load) load: ${PROG} ${KMODLOAD} -v ./${KMOD}.ko .endif .if !target(unload) unload: ${KMODUNLOAD} -v ${KMOD} .endif .for _src in ${SRCS:Mopt_*.h} CLEANFILES+= ${_src} .if !target(${_src}) ${_src}: touch ${.TARGET} .endif .endfor MFILES?= kern/bus_if.m kern/device_if.m dev/iicbus/iicbb_if.m \ dev/iicbus/iicbus_if.m isa/isa_if.m dev/mii/miibus_if.m \ dev/pccard/card_if.m dev/pccard/power_if.m pci/pci_if.m \ dev/ppbus/ppbus_if.m dev/smbus/smbus_if.m dev/usb/usb_if.m .for _srcsrc in ${MFILES} .for _ext in c h .for _src in ${SRCS:M${_srcsrc:T:R}.${_ext}} CLEANFILES+= ${_src} .if !target(${_src}) ${_src}: @ .if exists(@) -${_src}: @/kern/makedevops.pl @/${_srcsrc} +${_src}: @/kern/makeops.pl @/${_srcsrc} .endif - perl @/kern/makedevops.pl -${_ext} @/${_srcsrc} + perl @/kern/makeops.pl -${_ext} @/${_srcsrc} .endif .endfor # _src .endfor # _ext .endfor # _srcsrc .for _ext in c h .if ${SRCS:Mvnode_if.${_ext}} != "" CLEANFILES+= vnode_if.${_ext} vnode_if.${_ext}: @ .if exists(@) vnode_if.${_ext}: @/kern/vnode_if.pl @/kern/vnode_if.src .endif perl @/kern/vnode_if.pl -${_ext} @/kern/vnode_if.src .endif .endfor regress: .include .if !exists(${DEPENDFILE}) ${OBJS}: ${SRCS:M*.h} .endif .include .include Index: stable/4/sys/kern/makeobjops.pl =================================================================== --- stable/4/sys/kern/makeobjops.pl (revision 71937) +++ stable/4/sys/kern/makeobjops.pl (revision 71938) @@ -1,474 +1,481 @@ #!/usr/bin/perl # # Copyright (c) 1992, 1993 # The Regents of the University of California. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the University of # California, Berkeley and its contributors. # 4. Neither the name of the University nor the names of its contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # From @(#)vnode_if.sh 8.1 (Berkeley) 6/10/93 # From @(#)makedevops.sh 1.1 1998/06/14 13:53:12 dfr Exp $ # From @(#)makedevops.sh ?.? 1998/10/05 # From src/sys/kern/makedevops.pl,v 1.12 1999/11/22 14:40:04 n_hibma Exp # # $FreeBSD$ # # Script to produce kobj front-end sugar. # $debug = 0; $cfile = 0; # by default do not produce any file type $hfile = 0; $keepcurrentdir = 1; $line_width = 80; # Process the command line # -while ($arg = shift @ARGV) { - if ($arg eq '-c') { +while ( $arg = shift @ARGV ) { + if ( $arg eq '-c' ) { warn "Producing .c output files" if $debug; $cfile = 1; - } elsif ($arg eq '-h') { + } elsif ( $arg eq '-h' ) { warn "Producing .h output files" if $debug; $hfile = 1; - } elsif ($arg eq '-ch' || $arg eq '-hc') { + } elsif ( $arg eq '-ch' || $arg eq '-hc' ) { warn "Producing .c and .h output files" if $debug; $cfile = 1; $hfile = 1; - } elsif ($arg eq '-d') { + } elsif ( $arg eq '-d' ) { $debug = 1; - } elsif ($arg eq '-p') { + } elsif ( $arg eq '-p' ) { warn "Will produce files in original not in current directory" if $debug; $keepcurrentdir = 0; - } elsif ($arg eq '-l') { - if ($line_width = shift @ARGV and $line_width > 0) { + } elsif ( $arg eq '-l' ) { + if ( $line_width = shift @ARGV and $line_width > 0 ) { warn "Line width set to $line_width" if $debug; } else { die "Please specify a valid line width after -l"; } - } elsif ($arg =~ m/\.m$/) { + } elsif ( $arg =~ m/\.m$/ ) { warn "Filename: $arg" if $debug; push @filenames, $arg; } else { warn "$arg ignored" if $debug; } } # Validate the command line parameters # die "usage: $0 [-d] [-p] [-l ] [-c|-h] srcfile where -c produce only .c files -h produce only .h files -p use the path component in the source file for destination dir -l set line width for output files [80] -d switch on debugging " - unless ($cfile or $hfile) + unless ($cfile or $hfile) and $#filenames != -1; # FIXME should be able to do this more easily # $tmpdir = $ENV{'TMPDIR'}; # environment variables $tmpdir = $ENV{'TMP'} - if !$tmpdir; + if !$tmpdir; $tmpdir = $ENV{'TEMP'} - if !$tmpdir; + if !$tmpdir; $tmpdir = '/tmp' # look for a physical directory - if !$tmpdir and -d '/tmp'; + if !$tmpdir and -d '/tmp'; $tmpdir = '/usr/tmp' - if !$tmpdir and -d '/usr/tmp'; + if !$tmpdir and -d '/usr/tmp'; $tmpdir = '/var/tmp' - if !$tmpdir and -d '/var/tmp'; + if !$tmpdir and -d '/var/tmp'; $tmpdir = '.' # give up and use current dir - if !$tmpdir; + if !$tmpdir; -foreach $src (@filenames) { - # Names of the created files - $ctmpname = "$tmpdir/ctmp.$$"; - $htmpname = "$tmpdir/htmp.$$"; +foreach $src ( @filenames ) { + # Names of the created files + $ctmpname = "$tmpdir/ctmp.$$"; + $htmpname = "$tmpdir/htmp.$$"; - ($name, $path, $suffix) = &fileparse($src, '.m'); - $path = '.' - if $keepcurrentdir; - $cfilename="$path/$name.c"; - $hfilename="$path/$name.h"; + ($name, $path, $suffix) = &fileparse($src, '.m'); + $path = '.' + if $keepcurrentdir; + $cfilename="$path/$name.c"; + $hfilename="$path/$name.h"; - warn "Processing from $src to $cfilename / $hfilename via $ctmpname / $htmpname" - if $debug; + warn "Processing from $src to $cfilename / $hfilename via $ctmpname / $htmpname" + if $debug; - die "Could not open $src, $!" - if !open SRC, "$src"; - die "Could not open $ctmpname, $!" - if $cfile and !open CFILE, ">$ctmpname"; - die "Could not open $htmpname, $!" - if $hfile and !open HFILE, ">$htmpname"; + die "Could not open $src, $!" + if !open SRC, "$src"; + die "Could not open $ctmpname, $!" + if $cfile and !open CFILE, ">$ctmpname"; + die "Could not open $htmpname, $!" + if $hfile and !open HFILE, ">$htmpname"; - if ($cfile) { - # Produce the header of the C file - # - print CFILE "/*\n"; - print CFILE " * This file is produced automatically.\n"; - print CFILE " * Do not modify anything in here by hand.\n"; - print CFILE " *\n"; - print CFILE " * Created from source file\n"; - print CFILE " * $src\n"; - print CFILE " * with\n"; - print CFILE " * $0\n"; - print CFILE " *\n"; - print CFILE " * See the source file for legal information\n"; - print CFILE " */\n"; - print CFILE "\n"; - print CFILE "#include \n"; - print CFILE "#include \n"; - print CFILE "#include \n"; - print CFILE "#include \n"; - } + if ($cfile) { + # Produce the header of the C file + # + print CFILE "/*\n"; + print CFILE " * This file is produced automatically.\n"; + print CFILE " * Do not modify anything in here by hand.\n"; + print CFILE " *\n"; + print CFILE " * Created from source file\n"; + print CFILE " * $src\n"; + print CFILE " * with\n"; + print CFILE " * $0\n"; + print CFILE " *\n"; + print CFILE " * See the source file for legal information\n"; + print CFILE " */\n"; + print CFILE "\n"; + print CFILE "#include \n"; + print CFILE "#include \n"; + print CFILE "#include \n"; + print CFILE "#include \n"; + } - if ($hfile) { - # Produce the header of the H file - # - print HFILE "/*\n"; - print HFILE " * This file is produced automatically.\n"; - print HFILE " * Do not modify anything in here by hand.\n"; - print HFILE " *\n"; - print HFILE " * Created from source file\n"; - print HFILE " * $src\n"; - print HFILE " * with\n"; - print HFILE " * $0\n"; - print HFILE " *\n"; - print HFILE " * See the source file for legal information\n"; - print HFILE " */\n"; - print HFILE "\n"; - } + if ($hfile) { + # Produce the header of the H file + # + print HFILE "/*\n"; + print HFILE " * This file is produced automatically.\n"; + print HFILE " * Do not modify anything in here by hand.\n"; + print HFILE " *\n"; + print HFILE " * Created from source file\n"; + print HFILE " * $src\n"; + print HFILE " * with\n"; + print HFILE " * $0\n"; + print HFILE " *\n"; + print HFILE " * See the source file for legal information\n"; + print HFILE " */\n"; + print HFILE "\n"; + } - %methods = (); # clear list of methods - @mnames = (); - @defaultmethods = (); - $lineno = 0; - $error = 0; # to signal clean up and gerror setting + %methods = (); # clear list of methods + @mnames = (); + @defaultmethods = (); + $lineno = 0; + $error = 0; # to signal clean up and gerror setting - LINE: while ($line = ) { - $lineno++; + LINE: + while ( $line = ) { + $lineno++; - # take special notice of include directives. - # - if ($line =~ m/^#\s*include\s+(["<])([^">]+)([">]).*/i) { + # take special notice of include directives. + # + if ( $line =~ m/^#\s*include\s+(["<])([^">]+)([">]).*/i ) { warn "Included file: $1$2" . ($1 eq '<'? '>':'"') - if $debug; + if $debug; print CFILE "#include $1$2" . ($1 eq '<'? '>':'"') . "\n" - if $cfile; - } + if $cfile; + } - $line =~ s/#.*//; # remove comments - $line =~ s/^\s+//; # remove leading ... - $line =~ s/\s+$//; # remove trailing whitespace - - if ($line =~ m/^$/) { # skip empty lines - # nop - } elsif ($line =~ m/^INTERFACE\s*([^\s;]*)(\s*;?)/i) { - $intname = $1; - $semicolon = $2; - unless ($intname =~ m/^[a-z_][a-z0-9_]*$/) { - warn $line - if $debug; - warn "$src:$lineno: Invalid interface name '$intname', use [a-z_][a-z0-9_]*"; - $error = 1; - last LINE; - } - - warn "$src:$lineno: semicolon missing at end of line, no problem" - if $semicolon !~ s/;$//; - - warn "Interface $intname" - if $debug; - - print HFILE '#ifndef _'.$intname."_if_h_\n" - if $hfile; - print HFILE '#define _'.$intname."_if_h_\n\n" - if $hfile; - print CFILE '#include "'.$intname.'_if.h"'."\n\n" - if $cfile; - } elsif ($line =~ m/^CODE\s*{$/i) { - $code = ""; - $line = ; - $line =~ m/^(\s*)/; - $indent = $1; # find the indent used - while ($line !~ m/^}/) { - $line =~ s/^$indent//g; # remove the indent - $code .= $line; + $line =~ s/#.*//; # remove comments + $line =~ s/^\s+//; # remove leading ... + $line =~ s/\s+$//; # remove trailing whitespace + + if ( $line =~ m/^$/ ) { # skip empty lines + # nop + + } elsif ( $line =~ m/^INTERFACE\s*([^\s;]*)(\s*;?)/i ) { + $intname = $1; + $semicolon = $2; + unless ( $intname =~ m/^[a-z_][a-z0-9_]*$/ ) { + warn $line + if $debug; + warn "$src:$lineno: Invalid interface name '$intname', use [a-z_][a-z0-9_]*"; + $error = 1; + last LINE; + } + + warn "$src:$lineno: semicolon missing at end of line, no problem" + if $semicolon !~ s/;$//; + + warn "Interface $intname" + if $debug; + + print HFILE '#ifndef _'.$intname."_if_h_\n" + if $hfile; + print HFILE '#define _'.$intname."_if_h_\n\n" + if $hfile; + print CFILE '#include "'.$intname.'_if.h"'."\n\n" + if $cfile; + } elsif ( $line =~ m/^CODE\s*{$/i ) { + $code = ""; + $line = ; + $line =~ m/^(\s*)/; + $indent = $1; # find the indent used + while ( $line !~ m/^}/ ) { + $line =~ s/^$indent//g; # remove the indent + $code .= $line; + $line = ; + $lineno++ + } + if ($cfile) { + print CFILE "\n".$code."\n"; + } + } elsif ( $line =~ m/^HEADER\s*{$/i ) { + $header = ""; $line = ; - $lineno++ - } - print CFILE "\n".$code."\n" - if $cfile; - } elsif ($line =~ m/^HEADER\s*{$/i) { - $header = ""; - $line = ; - $line =~ m/^(\s*)/; - $indent = $1; # find the indent used - while ($line !~ m/^}/) { + $line =~ m/^(\s*)/; + $indent = $1; # find the indent used + while ( $line !~ m/^}/ ) { $line =~ s/^$indent//g; # remove the indent $header .= $line; $line = ; $lineno++ } - print HFILE $header - if $hfile; - } elsif ($line =~ m/^(STATIC|)METHOD/i) { - # Get the return type function name and delete that from - # the line. What is left is the possibly first function argument - # if it is on the same line. - # - if (!$intname) { - warn "$src:$lineno: No interface name defined"; - $error = 1; - last LINE; - } - $line =~ s/^(STATIC|)METHOD\s+([^\{]+?)\s*\{\s*//i; - $static = $1; - @ret = split m/\s+/, $2; - $name = pop @ret; # last element is name of method - $ret = join(" ", @ret); # return type + if ($hfile) { + print HFILE $header; + } + } elsif ( $line =~ m/^(STATIC|)METHOD/i ) { + # Get the return type function name and delete that from + # the line. What is left is the possibly first function argument + # if it is on the same line. + # + if ( !$intname ) { + warn "$src:$lineno: No interface name defined"; + $error = 1; + last LINE; + } + $line =~ s/^(STATIC|)METHOD\s+([^\{]+?)\s*\{\s*//i; + $static = $1; + @ret = split m/\s+/, $2; + $name = pop @ret; # last element is name of method + $ret = join(" ", @ret); # return type + + warn "Method: name=$name return type=$ret" + if $debug; + + if ( !$name or !$ret ) { + warn $line + if $debug; + warn "$src:$lineno: Invalid method specification"; + $error = 1; + last LINE; + } + + unless ( $name =~ m/^[a-z_][a-z_0-9]*$/ ) { + warn $line + if $debug; + warn "$src:$lineno: Invalid method name '$name', use [a-z_][a-z0-9_]*"; + $error = 1; + last LINE; + } + + if ( defined($methods{$name}) ) { + warn "$src:$lineno: Duplicate method name"; + $error = 1; + last LINE; + } + + $methods{$name} = $name; + push @mnames, $name; + + while ( $line !~ m/}/ and $line .= ) { + $lineno++ + } + + $default = ""; + if ( $line !~ s/};?(.*)// ) { # remove first '}' and trailing garbage + # The '}' was not there (the rest is optional), so complain + warn "$src:$lineno: Premature end of file"; + $error = 1; + last LINE; + } + $extra = $1; + if ( $extra =~ /\s*DEFAULT\s*([a-zA-Z_][a-zA-Z_0-9]*)\s*;/ ) { + $default = $1; + } else { + warn "$src:$lineno: Ignored '$1'" # warn about garbage at end of line + if $debug and $1; + } + + # Create a list of variables without the types prepended + # + $line =~ s/^\s+//; # remove leading ... + $line =~ s/\s+$//; # ... and trailing whitespace + $line =~ s/\s+/ /g; # remove double spaces + + @arguments = split m/\s*;\s*/, $line; + @varnames = (); # list of varnames + foreach $argument (@arguments) { + next # skip argument if argument is empty + if !$argument; - warn "Method: name=$name return type=$ret" - if $debug; + @ar = split m/[*\s]+/, $argument; + if ( $#ar == 0 ) { # only 1 word in argument? + warn "$src:$lineno: no type for '$argument'"; + $error = 1; + last LINE; + } + + push @varnames, $ar[-1]; # last element is name of variable + }; + + warn 'Arguments: ' . join(', ', @arguments) . "\n" + . 'Varnames: ' . join(', ', @varnames) + if $debug; + + $mname = $intname.'_'.$name; # method name + $umname = uc($mname); # uppercase method name + + $arguments = join(", ", @arguments); + $firstvar = $varnames[0]; + $varnames = join(", ", @varnames); + + $default = "0" if $default eq ""; + push @defaultmethods, $default; + + if ($hfile) { + # the method description + print HFILE "extern struct kobjop_desc $mname\_desc;\n"; + # the method typedef + print HFILE &format_line("typedef $ret $mname\_t($arguments);", + $line_width, ', ', + ',',' ' x length("typedef $ret $mname\_t(")) + . "\n"; + } + + if ($cfile) { + # Print out the method desc + print CFILE "struct kobjop_desc $mname\_desc = {\n"; + print CFILE "\t0, (kobjop_t) $default\n"; + print CFILE "};\n\n"; + } + + if ($hfile) { + # Print out the method itself + if (0) { # haven't chosen the format yet + print HFILE "static __inline $ret $umname($varnames)\n"; + print HFILE "\t".join(";\n\t", @arguments).";\n"; + } else { + print HFILE &format_line("static __inline $ret $umname($arguments)", + $line_width, ', ', + ',', ' ' x length("$ret $umname(")) . "\n"; + } + print HFILE "{\n"; + print HFILE "\tkobjop_t _m;\n"; + if ( $static ) { + print HFILE "\tKOBJOPLOOKUP($firstvar->ops,$mname);\n"; + } else { + print HFILE "\tKOBJOPLOOKUP(((kobj_t)$firstvar)->ops,$mname);\n"; + } + print HFILE "\t"; + if ($ret ne 'void') { + print HFILE "return "; + } + print HFILE "(($mname\_t *) _m)($varnames);\n"; + print HFILE "}\n\n"; + } +} else { + warn $line + if $debug; + warn "$src:$lineno: Invalid line encountered"; + $error = 1; + last LINE; +} +} # end LINE - if (!$name or !$ret) { - warn $line - if $debug; - warn "$src:$lineno: Invalid method specification"; - $error = 1; - last LINE; - } +# print the final '#endif' in the header file +# +print HFILE "#endif /* _".$intname."_if_h_ */\n" + if $hfile; - unless ($name =~ m/^[a-z_][a-z_0-9]*$/) { - warn $line - if $debug; - warn "$src:$lineno: Invalid method name '$name', use [a-z_][a-z0-9_]*"; - $error = 1; - last LINE; - } +close SRC; +close CFILE + if $cfile; +close HFILE + if $hfile; - if (defined($methods{$name})) { - warn "$src:$lineno: Duplicate method name"; - $error = 1; - last LINE; - } - - $methods{$name} = $name; - push @mnames, $name; - - while ($line !~ m/}/ and $line .= ) { - $lineno++ - } - - $default = ""; - if ($line !~ s/};?(.*)//) { # remove first '}' and trailing garbage - # The '}' was not there (the rest is optional), so complain - warn "$src:$lineno: Premature end of file"; - $error = 1; - last LINE; - } - $extra = $1; - if ($extra =~ /\s*DEFAULT\s*([a-zA-Z_][a-zA-Z_0-9]*)\s*;/) { - $default = $1; - } else { - warn "$src:$lineno: Ignored '$1'" # warn about garbage at end of line - if $debug and $1; - } - - # Create a list of variables without the types prepended - # - $line =~ s/^\s+//; # remove leading ... - $line =~ s/\s+$//; # ... and trailing whitespace - $line =~ s/\s+/ /g; # remove double spaces - - @arguments = split m/\s*;\s*/, $line; - @varnames = (); # list of varnames - foreach $argument (@arguments) { - next # skip argument if argument is empty - if !$argument; - - @ar = split m/[*\s]+/, $argument; - if ($#ar == 0) { # only 1 word in argument? - warn "$src:$lineno: no type for '$argument'"; - $error = 1; - last LINE; - } - - push @varnames, $ar[-1]; # last element is name of variable - }; - - warn 'Arguments: ' . join(', ', @arguments) . "\n" - . 'Varnames: ' . join(', ', @varnames) - if $debug; - - $mname = $intname.'_'.$name; # method name - $umname = uc($mname); # uppercase method name - - $arguments = join(", ", @arguments); - $firstvar = $varnames[0]; - $varnames = join(", ", @varnames); - - $default = "0" if $default eq ""; - push @defaultmethods, $default; - - if ($hfile) { - # the method description - print HFILE "extern struct kobjop_desc $mname\_desc;\n"; - # the method typedef - my $prototype = "typedef $ret $mname\_t("; - print HFILE &format_line("$prototype$arguments);", - $line_width, ', ', - ',',' ' x length($prototype)) - . "\n"; - } - - if ($cfile) { - # Print out the method desc - print CFILE "struct kobjop_desc $mname\_desc = {\n"; - print CFILE "\t0, (kobjop_t) $default\n"; - print CFILE "};\n\n"; - } - - if ($hfile) { - # Print out the method itself - if (0) { # haven't chosen the format yet - print HFILE "static __inline $ret $umname($varnames)\n"; - print HFILE "\t".join(";\n\t", @arguments).";\n"; - } else { - my $prototype = "static __inline $ret $umname("; - print HFILE &format_line("$prototype$arguments)", - $line_width, ', ', - ',', ' ' x length($prototype)) . "\n"; - } - print HFILE "{\n"; - print HFILE "\tkobjop_t _m;\n"; - if ($static) { - print HFILE "\tKOBJOPLOOKUP($firstvar->ops,$mname);\n"; - } else { - print HFILE "\tKOBJOPLOOKUP(((kobj_t)$firstvar)->ops,$mname);\n"; - } - print HFILE "\t"; - if ($ret ne 'void') { - print HFILE "return "; - } - print HFILE "(($mname\_t *) _m)($varnames);\n"; - print HFILE "}\n\n"; - } - } else { - warn $line - if $debug; - warn "$src:$lineno: Invalid line encountered"; - $error = 1; - last LINE; - } - } # end LINE - - # print the final '#endif' in the header file - # - print HFILE "#endif /* _".$intname."_if_h_ */\n" - if $hfile; - - close SRC; - close CFILE - if $cfile; - close HFILE - if $hfile; - - if (!$error) { - if ($cfile) { - ($rc = system("mv $ctmpname $cfilename")) - and warn "mv $ctmpname $cfilename failed, $rc"; - } - - if ($hfile) { - ($rc = system("mv $htmpname $hfilename")) - and warn "mv $htmpname $hfilename failed, $rc"; - } - } else { - warn 'Output skipped'; - ($rc = system("rm -f $htmpname $ctmpname")) - and warn "rm -f $htmpname $ctmpname failed, $rc"; - $gerror = 1; +if ( !$error ) { + if ($cfile) { + ($rc = system("mv $ctmpname $cfilename")) + and warn "mv $ctmpname $cfilename failed, $rc"; } + + if ($hfile) { + ($rc = system("mv $htmpname $hfilename")) + and warn "mv $htmpname $hfilename failed, $rc"; + } +} else { + warn 'Output skipped'; + ($rc = system("rm -f $htmpname $ctmpname")) + and warn "rm -f $htmpname $ctmpname failed, $rc"; + $gerror = 1; } +} exit $gerror; sub format_line { my ($line, $maxlength, $break, $new_end, $new_start) = @_; my $rline = ""; - - while (length($line) > $maxlength - and ($i = rindex $line, $break, $maxlength-length($new_end)) != -1) { + + while ( length($line) > $maxlength + and ($i = rindex $line, $break, $maxlength-length($new_end)) != -1 ) { $rline .= substr($line, 0, $i) . $new_end . "\n"; $line = $new_start . substr($line, $i+length($break)); } - + return $rline . $line; } # This routine is a crude replacement for one in File::Basename. We # cannot use any library code because it fouls up the Perl bootstrap # when we update a perl version. MarkM sub fileparse { my ($filename, @suffix) = @_; my ($dir, $name, $type, $i); - + $type = ''; foreach $i (@suffix) { if ($filename =~ m|$i$|) { $filename =~ s|$i$||; $type = $i; } } if ($filename =~ m|/|) { $filename =~ m|([^/]*)$|; $name = $1; $dir = $filename; $dir =~ s|$name$||; - } else { + } + else { $dir = ''; $name = $filename; } ($name, $dir, $type); +} + +sub write_interface { + $mcount = $#mnames + 1; } Index: stable/4/sys/kern/makeops.pl =================================================================== --- stable/4/sys/kern/makeops.pl (nonexistent) +++ stable/4/sys/kern/makeops.pl (revision 71938) @@ -0,0 +1,85 @@ +#!/usr/bin/perl +# +# Copyright (c) 1992, 1993 +# The Regents of the University of California. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by the University of +# California, Berkeley and its contributors. +# 4. Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ + +# Process the command line +# +while ( $arg = shift @ARGV ) { + if ( $arg =~ m/-.*/ ) { + push @args, $arg; + } elsif ( $arg =~ m/\.m$/ ) { + push @filenames, $arg; + } +} + +foreach $src ( @filenames ) { + open(SRC, $src); + $test = ; + if ( $test =~ m/.*KOBJ.*/ ) { + push @obj, $src; + } else { + push @dev, $src; + } +} + +$path = $0; +@z = split(/\//, $path); +$#z -= 1; +$path = join('/', @z); + +if ( $#dev != -1 ) { + push @x, "perl5"; + push @x, $path . "/makedevops.pl"; + foreach $i ( @args ) { + push @x, $i; + } + foreach $i ( @dev ) { + push @x, $i; + } + system(@x); +} + +if ( $#obj != -1 ) { + push @y, "perl5"; + push @y, $path . "/makeobjops.pl"; + foreach $i ( @args ) { + push @y, $i; + } + foreach $i ( @obj ) { + push @y, $i; + } + system(@y); +} + + Property changes on: stable/4/sys/kern/makeops.pl ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: stable/4/sys/kern/subr_kobj.c =================================================================== --- stable/4/sys/kern/subr_kobj.c (revision 71937) +++ stable/4/sys/kern/subr_kobj.c (revision 71938) @@ -1,216 +1,216 @@ /*- * Copyright (c) 2000 Doug Rabson * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD$ */ #include #include #include #include #include #include #ifndef TEST #include #endif #include #ifdef TEST #include "usertest.h" #endif static MALLOC_DEFINE(M_KOBJ, "kobj", "Kernel object structures"); #ifdef KOBJ_STATS #include int kobj_lookup_hits; int kobj_lookup_misses; SYSCTL_INT(_kern, OID_AUTO, kobj_hits, CTLFLAG_RD, &kobj_lookup_hits, 0, "") SYSCTL_INT(_kern, OID_AUTO, kobj_misses, CTLFLAG_RD, &kobj_lookup_misses, 0, "") #endif static int kobj_next_id = 1; static int kobj_error_method(void) { return ENXIO; } static void kobj_register_method(struct kobjop_desc *desc) { if (desc->id == 0) desc->id = kobj_next_id++; } static void kobj_unregister_method(struct kobjop_desc *desc) { } static void kobj_class_compile_common(kobj_class_t cls, kobj_ops_t ops) { kobj_method_t *m; int i; /* * Don't do anything if we are already compiled. */ if (cls->ops) return; /* * First register any methods which need it. */ for (i = 0, m = cls->methods; m->desc; i++, m++) kobj_register_method(m->desc); /* * Then initialise the ops table. */ bzero(ops, sizeof(struct kobj_ops)); ops->cls = cls; cls->ops = ops; } void kobj_class_compile(kobj_class_t cls) { kobj_ops_t ops; /* * Allocate space for the compiled ops table. */ ops = malloc(sizeof(struct kobj_ops), M_KOBJ, M_NOWAIT); if (!ops) panic("kobj_compile_methods: out of memory"); kobj_class_compile_common(cls, ops); } void kobj_class_compile_static(kobj_class_t cls, kobj_ops_t ops) { /* * Increment refs to make sure that the ops table is not freed. */ cls->refs++; kobj_class_compile_common(cls, ops); } void kobj_lookup_method(kobj_method_t *methods, kobj_method_t *ce, kobjop_desc_t desc) { ce->desc = desc; for (; methods && methods->desc; methods++) { if (methods->desc == desc) { ce->func = methods->func; return; } } if (desc->deflt) ce->func = desc->deflt; else ce->func = kobj_error_method; return; } void kobj_class_free(kobj_class_t cls) { int i; kobj_method_t *m; /* * Unregister any methods which are no longer used. */ for (i = 0, m = cls->methods; m->desc; i++, m++) kobj_unregister_method(m->desc); /* * Free memory and clean up. */ free(cls->ops, M_KOBJ); cls->ops = 0; } kobj_t kobj_create(kobj_class_t cls, struct malloc_type *mtype, int mflags) { kobj_t obj; /* * Allocate and initialise the new object. */ obj = malloc(cls->size, mtype, mflags | M_ZERO); if (!obj) return 0; kobj_init(obj, cls); return obj; } void kobj_init(kobj_t obj, kobj_class_t cls) { /* * Consider compiling the class' method table. */ if (!cls->ops) kobj_class_compile(cls); obj->ops = cls->ops; cls->refs++; } void kobj_delete(kobj_t obj, struct malloc_type *mtype) { kobj_class_t cls = obj->ops->cls; /* * Consider freeing the compiled method table for the class * after its last instance is deleted. As an optimisation, we * should defer this for a short while to avoid thrashing. */ cls->refs--; if (!cls->refs) kobj_class_free(cls); obj->ops = 0; if (mtype) free(obj, mtype); } Index: stable/4/sys/sys/kobj.h =================================================================== --- stable/4/sys/sys/kobj.h (revision 71937) +++ stable/4/sys/sys/kobj.h (revision 71938) @@ -1,169 +1,169 @@ /*- * Copyright (c) 2000 Doug Rabson * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD$ + * $FreeBSD$ */ #ifndef _SYS_KOBJ_H_ #define _SYS_KOBJ_H_ /* * Forward declarations */ typedef struct kobj *kobj_t; typedef struct kobj_class *kobj_class_t; typedef struct kobj_method kobj_method_t; typedef int (*kobjop_t)(void); typedef struct kobj_ops *kobj_ops_t; typedef struct kobjop_desc *kobjop_desc_t; struct malloc_type; struct kobj_method { kobjop_desc_t desc; kobjop_t func; }; /* * A class is simply a method table and a sizeof value. When the first - * instance of the class is created, the method table will be compiled - * into a form more suited to efficient method dispatch. This compiled + * instance of the class is created, the method table will be compiled + * into a form more suited to efficient method dispatch. This compiled * method table is always the first field of the object. */ #define KOBJ_CLASS_FIELDS \ const char *name; /* class name */ \ kobj_method_t *methods; /* method table */ \ size_t size; /* object size */ \ u_int refs; /* reference count */ \ kobj_ops_t ops /* compiled method table */ struct kobj_class { KOBJ_CLASS_FIELDS; }; /* * Implementation of kobj. */ #define KOBJ_FIELDS \ kobj_ops_t ops struct kobj { KOBJ_FIELDS; }; /* * The ops table is used as a cache of results from kobj_lookup_method(). */ #define KOBJ_CACHE_SIZE 256 struct kobj_ops { kobj_method_t cache[KOBJ_CACHE_SIZE]; kobj_class_t cls; }; struct kobjop_desc { unsigned int id; /* unique ID */ kobjop_t deflt; /* default implementation */ }; /* * Shorthand for constructing method tables. */ #define KOBJMETHOD(NAME, FUNC) { &NAME##_desc, (kobjop_t) FUNC } #define DEFINE_CLASS(name, methods, size) \ \ struct kobj_class name ## _class = { \ #name, methods, size \ } /* * Compile the method table in a class. */ void kobj_class_compile(kobj_class_t cls); /* * Compile the method table, with the caller providing the space for * the ops table.(for use before malloc is initialised). */ void kobj_class_compile_static(kobj_class_t cls, kobj_ops_t ops); /* * Free the compiled method table in a class. */ void kobj_class_free(kobj_class_t cls); /* * Allocate memory for and initalise a new object. */ kobj_t kobj_create(kobj_class_t cls, struct malloc_type *mtype, int mflags); /* * Initialise a pre-allocated object. */ void kobj_init(kobj_t obj, kobj_class_t cls); /* * Delete an object. If mtype is non-zero, free the memory. */ void kobj_delete(kobj_t obj, struct malloc_type *mtype); /* * Maintain stats on hits/misses in lookup caches. */ #ifdef KOBJ_STATS extern int kobj_lookup_hits; extern int kobj_lookup_misses; #define KOBJOPHIT do { kobj_lookup_hits++; } while (0) #define KOBJOPMISS do { kobj_lookup_misses++; } while (0) #else #define KOBJOPHIT do { } while (0) #define KOBJOPMISS do { } while (0) #endif /* * Lookup the method in the cache and if it isn't there look it up the * slow way. */ #define KOBJOPLOOKUP(OPS,OP) do { \ kobjop_desc_t _desc = &OP##_##desc; \ kobj_method_t *_ce = \ &OPS->cache[_desc->id & (KOBJ_CACHE_SIZE-1)]; \ if (_ce->desc != _desc) { \ KOBJOPMISS; \ kobj_lookup_method(OPS->cls->methods, _ce, _desc); \ } else { \ KOBJOPHIT; \ } \ _m = _ce->func; \ } while(0) void kobj_lookup_method(kobj_method_t *methods, kobj_method_t *ce, kobjop_desc_t desc); #endif /* !_SYS_KOBJ_H_ */