head	1.22;
access;
symbols
	netbsd-11-0-RC4:1.22
	netbsd-11-0-RC3:1.22
	netbsd-11-0-RC2:1.22
	netbsd-11-0-RC1:1.22
	perseant-exfatfs-base-20250801:1.22
	netbsd-11:1.22.0.24
	netbsd-11-base:1.22
	netbsd-10-1-RELEASE:1.22
	perseant-exfatfs-base-20240630:1.22
	perseant-exfatfs:1.22.0.22
	perseant-exfatfs-base:1.22
	netbsd-8-3-RELEASE:1.16
	netbsd-9-4-RELEASE:1.19
	netbsd-10-0-RELEASE:1.22
	netbsd-10-0-RC6:1.22
	netbsd-10-0-RC5:1.22
	netbsd-10-0-RC4:1.22
	netbsd-10-0-RC3:1.22
	netbsd-10-0-RC2:1.22
	thorpej-ifq:1.22.0.20
	thorpej-ifq-base:1.22
	thorpej-altq-separation:1.22.0.18
	thorpej-altq-separation-base:1.22
	netbsd-10-0-RC1:1.22
	netbsd-10:1.22.0.16
	netbsd-10-base:1.22
	bouyer-sunxi-drm:1.22.0.14
	bouyer-sunxi-drm-base:1.22
	netbsd-9-3-RELEASE:1.19
	thorpej-i2c-spi-conf2:1.22.0.12
	thorpej-i2c-spi-conf2-base:1.22
	thorpej-futex2:1.22.0.10
	thorpej-futex2-base:1.22
	thorpej-cfargs2:1.22.0.8
	thorpej-cfargs2-base:1.22
	cjep_sun2x-base1:1.22
	cjep_sun2x:1.22.0.6
	cjep_sun2x-base:1.22
	cjep_staticlib_x-base1:1.22
	netbsd-9-2-RELEASE:1.19
	cjep_staticlib_x:1.22.0.4
	cjep_staticlib_x-base:1.22
	thorpej-i2c-spi-conf:1.22.0.2
	thorpej-i2c-spi-conf-base:1.22
	thorpej-cfargs:1.21.0.4
	thorpej-cfargs-base:1.21
	thorpej-futex:1.21.0.2
	thorpej-futex-base:1.21
	netbsd-9-1-RELEASE:1.19
	bouyer-xenpvh-base2:1.19
	phil-wifi-20200421:1.19
	bouyer-xenpvh-base1:1.19
	phil-wifi-20200411:1.19
	bouyer-xenpvh:1.19.0.8
	bouyer-xenpvh-base:1.19
	is-mlppp:1.19.0.6
	is-mlppp-base:1.19
	phil-wifi-20200406:1.19
	netbsd-8-2-RELEASE:1.16
	ad-namecache-base3:1.19
	netbsd-9-0-RELEASE:1.19
	netbsd-9-0-RC2:1.19
	ad-namecache-base2:1.19
	ad-namecache-base1:1.19
	ad-namecache:1.19.0.4
	ad-namecache-base:1.19
	netbsd-9-0-RC1:1.19
	phil-wifi-20191119:1.19
	netbsd-9:1.19.0.2
	netbsd-9-base:1.19
	phil-wifi-20190609:1.19
	netbsd-8-1-RELEASE:1.16
	netbsd-8-1-RC1:1.16
	isaki-audio2:1.18.0.2
	isaki-audio2-base:1.18
	pgoyette-compat-merge-20190127:1.16.46.2
	pgoyette-compat-20190127:1.18
	pgoyette-compat-20190118:1.18
	pgoyette-compat-1226:1.18
	pgoyette-compat-1126:1.18
	pgoyette-compat-1020:1.18
	pgoyette-compat-0930:1.18
	pgoyette-compat-0906:1.18
	netbsd-7-2-RELEASE:1.16
	pgoyette-compat-0728:1.17
	netbsd-8-0-RELEASE:1.16
	phil-wifi:1.17.0.2
	phil-wifi-base:1.17
	pgoyette-compat-0625:1.17
	netbsd-8-0-RC2:1.16
	pgoyette-compat-0521:1.16
	pgoyette-compat-0502:1.16
	pgoyette-compat-0422:1.16
	netbsd-8-0-RC1:1.16
	pgoyette-compat-0415:1.16
	pgoyette-compat-0407:1.16
	pgoyette-compat-0330:1.16
	pgoyette-compat-0322:1.16
	pgoyette-compat-0315:1.16
	netbsd-7-1-2-RELEASE:1.16
	pgoyette-compat:1.16.0.46
	pgoyette-compat-base:1.16
	netbsd-7-1-1-RELEASE:1.16
	tls-maxphys-base-20171202:1.16
	matt-nb8-mediatek:1.16.0.44
	matt-nb8-mediatek-base:1.16
	nick-nhusb-base-20170825:1.16
	perseant-stdc-iso10646:1.16.0.42
	perseant-stdc-iso10646-base:1.16
	netbsd-8:1.16.0.40
	netbsd-8-base:1.16
	prg-localcount2-base3:1.16
	prg-localcount2-base2:1.16
	prg-localcount2-base1:1.16
	prg-localcount2:1.16.0.38
	prg-localcount2-base:1.16
	pgoyette-localcount-20170426:1.16
	bouyer-socketcan-base1:1.16
	jdolecek-ncq:1.16.0.36
	jdolecek-ncq-base:1.16
	pgoyette-localcount-20170320:1.16
	netbsd-7-1:1.16.0.34
	netbsd-7-1-RELEASE:1.16
	netbsd-7-1-RC2:1.16
	nick-nhusb-base-20170204:1.16
	netbsd-7-nhusb-base-20170116:1.16
	bouyer-socketcan:1.16.0.32
	bouyer-socketcan-base:1.16
	pgoyette-localcount-20170107:1.16
	netbsd-7-1-RC1:1.16
	nick-nhusb-base-20161204:1.16
	pgoyette-localcount-20161104:1.16
	netbsd-7-0-2-RELEASE:1.16
	nick-nhusb-base-20161004:1.16
	localcount-20160914:1.16
	netbsd-7-nhusb:1.16.0.30
	netbsd-7-nhusb-base:1.16
	pgoyette-localcount-20160806:1.16
	pgoyette-localcount-20160726:1.16
	pgoyette-localcount:1.16.0.28
	pgoyette-localcount-base:1.16
	nick-nhusb-base-20160907:1.16
	nick-nhusb-base-20160529:1.16
	netbsd-7-0-1-RELEASE:1.16
	nick-nhusb-base-20160422:1.16
	nick-nhusb-base-20160319:1.16
	nick-nhusb-base-20151226:1.16
	netbsd-7-0:1.16.0.26
	netbsd-7-0-RELEASE:1.16
	nick-nhusb-base-20150921:1.16
	netbsd-7-0-RC3:1.16
	netbsd-7-0-RC2:1.16
	netbsd-7-0-RC1:1.16
	nick-nhusb-base-20150606:1.16
	nick-nhusb-base-20150406:1.16
	nick-nhusb:1.16.0.24
	nick-nhusb-base:1.16
	netbsd-5-2-3-RELEASE:1.2
	netbsd-5-1-5-RELEASE:1.2
	netbsd-6-0-6-RELEASE:1.16
	netbsd-6-1-5-RELEASE:1.16
	netbsd-7:1.16.0.22
	netbsd-7-base:1.16
	yamt-pagecache-base9:1.16
	yamt-pagecache-tag8:1.11.2.1
	netbsd-6-1-4-RELEASE:1.16
	netbsd-6-0-5-RELEASE:1.16
	tls-earlyentropy:1.16.0.20
	tls-earlyentropy-base:1.16
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.16
	riastradh-drm2-base3:1.16
	netbsd-6-1-3-RELEASE:1.16
	netbsd-6-0-4-RELEASE:1.16
	netbsd-5-2-2-RELEASE:1.2
	netbsd-5-1-4-RELEASE:1.2
	netbsd-6-1-2-RELEASE:1.16
	netbsd-6-0-3-RELEASE:1.16
	netbsd-5-2-1-RELEASE:1.2
	netbsd-5-1-3-RELEASE:1.2
	rmind-smpnet-nbase:1.16
	netbsd-6-1-1-RELEASE:1.16
	riastradh-drm2-base2:1.16
	riastradh-drm2-base1:1.16
	riastradh-drm2:1.16.0.18
	riastradh-drm2-base:1.16
	rmind-smpnet:1.16.0.10
	rmind-smpnet-base:1.16
	netbsd-6-1:1.16.0.16
	netbsd-6-0-2-RELEASE:1.16
	netbsd-6-1-RELEASE:1.16
	khorben-n900:1.16.0.14
	netbsd-6-1-RC4:1.16
	netbsd-6-1-RC3:1.16
	agc-symver:1.16.0.12
	agc-symver-base:1.16
	netbsd-6-1-RC2:1.16
	netbsd-6-1-RC1:1.16
	yamt-pagecache-base8:1.16
	netbsd-5-2:1.2.0.46
	netbsd-6-0-1-RELEASE:1.16
	yamt-pagecache-base7:1.16
	netbsd-5-2-RELEASE:1.2
	netbsd-5-2-RC1:1.2
	matt-nb6-plus-nbase:1.16
	yamt-pagecache-base6:1.16
	netbsd-6-0:1.16.0.8
	netbsd-6-0-RELEASE:1.16
	netbsd-6-0-RC2:1.16
	tls-maxphys:1.16.0.6
	tls-maxphys-base:1.16
	matt-nb6-plus:1.16.0.4
	matt-nb6-plus-base:1.16
	netbsd-6-0-RC1:1.16
	jmcneill-usbmp-base10:1.16
	yamt-pagecache-base5:1.16
	jmcneill-usbmp-base9:1.16
	yamt-pagecache-base4:1.16
	jmcneill-usbmp-base8:1.16
	jmcneill-usbmp-base7:1.16
	jmcneill-usbmp-base6:1.16
	jmcneill-usbmp-base5:1.16
	jmcneill-usbmp-base4:1.16
	jmcneill-usbmp-base3:1.16
	jmcneill-usbmp-pre-base2:1.11
	jmcneill-usbmp-base2:1.16
	netbsd-6:1.16.0.2
	netbsd-6-base:1.16
	netbsd-5-1-2-RELEASE:1.2
	netbsd-5-1-1-RELEASE:1.2
	jmcneill-usbmp:1.11.0.6
	jmcneill-usbmp-base:1.11
	jmcneill-audiomp3:1.11.0.4
	jmcneill-audiomp3-base:1.11
	yamt-pagecache-base3:1.11
	yamt-pagecache-base2:1.11
	yamt-pagecache:1.11.0.2
	yamt-pagecache-base:1.11
	rmind-uvmplock-nbase:1.2
	cherry-xenmp:1.2.0.44
	cherry-xenmp-base:1.2
	uebayasi-xip-base7:1.2
	bouyer-quota2-nbase:1.2
	bouyer-quota2:1.2.0.42
	bouyer-quota2-base:1.2
	jruoho-x86intr:1.2.0.40
	jruoho-x86intr-base:1.2
	matt-mips64-premerge-20101231:1.2
	matt-nb5-mips64-premerge-20101231:1.2
	matt-nb5-pq3:1.2.0.38
	matt-nb5-pq3-base:1.2
	netbsd-5-1:1.2.0.36
	uebayasi-xip-base6:1.2
	uebayasi-xip-base5:1.2
	netbsd-5-1-RELEASE:1.2
	uebayasi-xip-base4:1.2
	uebayasi-xip-base3:1.2
	yamt-nfs-mp-base11:1.2
	netbsd-5-1-RC4:1.2
	matt-nb5-mips64-k15:1.2
	uebayasi-xip-base2:1.2
	yamt-nfs-mp-base10:1.2
	netbsd-5-1-RC3:1.2
	netbsd-5-1-RC2:1.2
	uebayasi-xip-base1:1.2
	netbsd-5-1-RC1:1.2
	rmind-uvmplock:1.2.0.34
	rmind-uvmplock-base:1.2
	yamt-nfs-mp-base9:1.2
	uebayasi-xip:1.2.0.32
	uebayasi-xip-base:1.2
	netbsd-5-0-2-RELEASE:1.2
	matt-nb5-mips64-premerge-20091211:1.2
	matt-premerge-20091211:1.2
	yamt-nfs-mp-base8:1.2
	matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.2
	matt-nb4-mips64-k7-u2a-k9b:1.2
	matt-nb5-mips64-u1-k1-k5:1.2
	yamt-nfs-mp-base7:1.2
	matt-nb5-mips64:1.2.0.30
	netbsd-5-0-1-RELEASE:1.2
	jymxensuspend-base:1.2
	yamt-nfs-mp-base6:1.2
	yamt-nfs-mp-base5:1.2
	yamt-nfs-mp-base4:1.2
	jym-xensuspend-nbase:1.2
	yamt-nfs-mp-base3:1.2
	nick-hppapmap-base4:1.2
	nick-hppapmap-base3:1.2
	netbsd-5-0:1.2.0.28
	netbsd-5-0-RELEASE:1.2
	netbsd-5-0-RC4:1.2
	netbsd-5-0-RC3:1.2
	nick-hppapmap-base2:1.2
	netbsd-5-0-RC2:1.2
	jym-xensuspend:1.2.0.26
	jym-xensuspend-base:1.2
	netbsd-5-0-RC1:1.2
	haad-dm-base2:1.2
	haad-nbase2:1.2
	ad-audiomp2:1.2.0.24
	ad-audiomp2-base:1.2
	netbsd-5:1.2.0.22
	netbsd-5-base:1.2
	nick-hppapmap:1.2.0.20
	nick-hppapmap-base:1.2
	matt-mips64-base2:1.2
	haad-dm-base1:1.2
	wrstuden-revivesa-base-4:1.2
	wrstuden-revivesa-base-3:1.2
	wrstuden-revivesa-base-2:1.2
	haad-dm:1.2.0.18
	haad-dm-base:1.2
	wrstuden-revivesa-base-1:1.2
	simonb-wapbl-nbase:1.2
	yamt-pf42-base4:1.2
	simonb-wapbl:1.2.0.16
	simonb-wapbl-base:1.2
	yamt-pf42-base3:1.2
	hpcarm-cleanup-nbase:1.2
	hpcarm-cleanup-base:1.2
	yamt-pf42-baseX:1.2
	yamt-pf42-base2:1.2
	yamt-nfs-mp-base2:1.2
	wrstuden-revivesa:1.2.0.14
	wrstuden-revivesa-base:1.2
	yamt-nfs-mp:1.2.0.12
	yamt-nfs-mp-base:1.2
	yamt-pf42:1.2.0.10
	yamt-pf42-base:1.2
	ad-socklock-base1:1.2
	yamt-lazymbuf-base15:1.2
	yamt-lazymbuf-base14:1.2
	keiichi-mipv6-nbase:1.2
	mjf-devfs2:1.2.0.8
	mjf-devfs2-base:1.2
	nick-net80211-sync:1.2.0.6
	nick-net80211-sync-base:1.2
	keiichi-mipv6:1.2.0.4
	keiichi-mipv6-base:1.2
	mjf-devfs:1.2.0.2
	mjf-devfs-base:1.2
	yamt-lazymbuf:1.1.0.6
	bouyer-xeni386-merge1:1.1.2.2
	matt-armv6-base:1.1
	matt-armv6:1.1.0.4
	bouyer-xeni386-base:1.1
	matt-armv6-nbase:1.2
	bouyer-xeni386:1.1.0.2
	bouyer-xeni386-nbase:1.1;
locks; strict;
comment	@# @;


1.22
date	2021.04.24.23.36.50;	author thorpej;	state Exp;
branches;
next	1.21;
commitid	eHxL4uTobGwLqBQC;

1.21
date	2020.10.21.13.31.52;	author christos;	state Exp;
branches
	1.21.4.1;
next	1.20;
commitid	uCWpPzSMVWlI1MsC;

1.20
date	2020.10.20.20.36.08;	author christos;	state Exp;
branches;
next	1.19;
commitid	ZujNtBOaZdCIpGsC;

1.19
date	2019.05.08.13.40.16;	author isaki;	state Exp;
branches;
next	1.18;
commitid	LEGDdtzAItkeapmB;

1.18
date	2018.08.01.09.50.57;	author reinoud;	state Exp;
branches
	1.18.2.1;
next	1.17;
commitid	XkcRCkpsrPKpUoMA;

1.17
date	2018.06.05.20.02.42;	author reinoud;	state Exp;
branches
	1.17.2.1;
next	1.16;
commitid	v5Au6iYnIZwb78FA;

1.16
date	2011.12.30.20.08.36;	author jmcneill;	state Exp;
branches
	1.16.46.1;
next	1.15;

1.15
date	2011.12.29.21.22.49;	author jmcneill;	state Exp;
branches;
next	1.14;

1.14
date	2011.12.26.21.06.42;	author jmcneill;	state Exp;
branches;
next	1.13;

1.13
date	2011.12.26.12.39.19;	author jmcneill;	state Exp;
branches;
next	1.12;

1.12
date	2011.12.20.21.01.39;	author jmcneill;	state Exp;
branches;
next	1.11;

1.11
date	2011.09.16.11.28.36;	author jmcneill;	state Exp;
branches
	1.11.2.1
	1.11.6.1;
next	1.10;

1.10
date	2011.09.04.21.08.18;	author jmcneill;	state Exp;
branches;
next	1.9;

1.9
date	2011.09.03.18.42.13;	author jmcneill;	state Exp;
branches;
next	1.8;

1.8
date	2011.09.03.12.28.45;	author jmcneill;	state Exp;
branches;
next	1.7;

1.7
date	2011.08.27.21.43.06;	author jmcneill;	state Exp;
branches;
next	1.6;

1.6
date	2011.08.25.11.06.29;	author jmcneill;	state Exp;
branches;
next	1.5;

1.5
date	2011.08.24.10.59.10;	author jmcneill;	state Exp;
branches;
next	1.4;

1.4
date	2011.08.12.12.59.13;	author jmcneill;	state Exp;
branches;
next	1.3;

1.3
date	2011.06.12.03.35.48;	author rmind;	state Exp;
branches;
next	1.2;

1.2
date	2008.01.25.21.12.13;	author joerg;	state Exp;
branches
	1.2.2.1
	1.2.34.1
	1.2.44.1;
next	1.1;

1.1
date	2007.12.29.14.38.30;	author jmcneill;	state Exp;
branches
	1.1.2.1
	1.1.4.1
	1.1.6.1;
next	;

1.21.4.1
date	2021.03.23.01.17.35;	author thorpej;	state Exp;
branches;
next	;
commitid	aIyOrDSumP1o3nMC;

1.18.2.1
date	2019.05.05.02.31.41;	author isaki;	state Exp;
branches;
next	;
commitid	P6qg5pdPOH2RzXlB;

1.17.2.1
date	2019.06.10.22.06.50;	author christos;	state Exp;
branches;
next	;
commitid	jtc8rnCzWiEEHGqB;

1.16.46.1
date	2018.06.25.07.25.46;	author pgoyette;	state Exp;
branches;
next	1.16.46.2;
commitid	8PtAu9af7VvhiDHA;

1.16.46.2
date	2018.09.06.06.55.43;	author pgoyette;	state Exp;
branches;
next	;
commitid	HCi1bXD317XIK0RA;

1.11.2.1
date	2012.04.17.00.06.59;	author yamt;	state Exp;
branches;
next	;

1.11.6.1
date	2012.02.18.07.33.22;	author mrg;	state Exp;
branches;
next	;

1.2.2.1
date	2008.01.25.21.12.13;	author mjf;	state dead;
branches;
next	1.2.2.2;

1.2.2.2
date	2008.02.18.21.05.11;	author mjf;	state Exp;
branches;
next	;

1.2.34.1
date	2010.03.18.04.36.53;	author rmind;	state Exp;
branches;
next	;

1.2.44.1
date	2011.06.23.14.19.45;	author cherry;	state Exp;
branches;
next	;

1.1.2.1
date	2007.12.29.14.38.30;	author bouyer;	state dead;
branches;
next	1.1.2.2;

1.1.2.2
date	2008.01.02.21.50.41;	author bouyer;	state Exp;
branches;
next	;

1.1.4.1
date	2007.12.29.14.38.30;	author matt;	state dead;
branches;
next	1.1.4.2;

1.1.4.2
date	2008.01.09.01.49.19;	author matt;	state Exp;
branches;
next	1.1.4.3;

1.1.4.3
date	2008.03.23.02.04.25;	author matt;	state Exp;
branches;
next	;

1.1.6.1
date	2007.12.29.14.38.30;	author yamt;	state dead;
branches;
next	1.1.6.2;

1.1.6.2
date	2008.01.21.09.39.43;	author yamt;	state Exp;
branches;
next	1.1.6.3;

1.1.6.3
date	2008.02.04.09.22.38;	author yamt;	state Exp;
branches;
next	;


desc
@@


1.22
log
@Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
  actually needed.
- Don't be explicit about what interface attribute is attaching if
  the device only has one.  (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
  situations, making is visibly easier to see when indirect config is
  in play, and allowing for future change in semantics.  (As of now,
  this is just a wrapper around config_match(), but that is an
  implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance.  This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
@
text
@# $NetBSD: files.usermode,v 1.21.4.1 2021/03/23 01:17:35 thorpej Exp $

maxpartitions 8
maxusers 8 16 64

defparam opt_memsize.h				MEMSIZE
defflag opt_cpu.h				CPU_DEBUG
defparam opt_cpu.h				CPU_HOST
defparam opt_misc.h				TEXTADDR

define	thunkbus { }

device	mainbus: thunkbus
attach	mainbus at root
file	arch/usermode/dev/mainbus.c		mainbus

device	cpu { }
attach	cpu at thunkbus
file	arch/usermode/dev/cpu.c			cpu

device	clock { }
attach	clock at thunkbus
file	arch/usermode/dev/clock.c		clock

device	ttycons { } : tty
attach	ttycons at thunkbus
file	arch/usermode/dev/ttycons.c		ttycons

device	veth { } : arp, ether, ifnet
attach	veth at thunkbus
file	arch/usermode/dev/if_veth.c		veth

device	vaudio { } : audiobus
attach	vaudio at thunkbus
file	arch/usermode/dev/vaudio.c		vaudio

attach	ld at thunkbus with ld_thunkbus
file	arch/usermode/dev/ld_thunkbus.c		ld_thunkbus

device	vncfb { } : wsemuldisplaydev, rasops32, vcons, wskbddev, wsmousedev
attach	vncfb at thunkbus
file	arch/usermode/dev/vncfb.c		vncfb
file	arch/usermode/dev/vnckbdmap.c		vncfb

include "dev/scsipi/files.scsipi"
#device	vscsi: scsi
#file	arch/usermode/dev/vscsi.c		vscsi needs-flag
#attach	vscsi at thunkbus with vscsi_thunkbus
#file	atch/usermode/dev/vscsi_thunkbus.c	vscsi_thunkbus

device	vatapi: atapi
attach	vatapi at thunkbus with vatapi_thunkbus
file	arch/usermode/dev/vatapi.c		vatapi_thunkbus

file	arch/usermode/usermode/copy.c
file	arch/usermode/usermode/intr.c
file	arch/usermode/usermode/machdep.c
file	arch/usermode/usermode/pmap.c
file	arch/usermode/usermode/process_machdep.c
file	arch/usermode/usermode/procfs_machdep.c	procfs
file	arch/usermode/usermode/sys_machdep.c
file	arch/usermode/usermode/syscall.c
file	arch/usermode/usermode/trap.c
file	arch/usermode/usermode/vm_machdep.c
file	arch/usermode/usermode/db_memrw.c	ddb | kgdb
file	arch/usermode/usermode/kgdb_machdep.c	ddb | kgdb
file	arch/usermode/usermode/cpufunc.S	ddb | kgdb
file	dev/cons.c
file	dev/md_root.c				memory_disk_hooks
file	kern/subr_disk_mbr.c			disk

include "arch/usermode/conf/majors.usermode"
@


1.21
log
@make process_machdep.c included always since it provides register i/o used by
sys_process_getlwpstatus.c which is always included.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.20 2020/10/20 20:36:08 christos Exp $
d51 1
a51 1
device	vatapi { } : atapi, atapibus
@


1.21.4.1
log
@Remove unneeded interface attributes from vatapi.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.21 2020/10/21 13:31:52 christos Exp $
d51 1
a51 1
device	vatapi: atapi
@


1.20
log
@harmonize process_machdep.c inclusion.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.19 2019/05/08 13:40:16 isaki Exp $
d59 1
a59 1
file	arch/usermode/usermode/process_machdep.c	ptrace | coredump | procfs
@


1.19
log
@Merge isaki-audio2 branch, the overhaul of audio subsystem.
- Interrupt-oriented system rather than thread-oriented.
- Improve stability, quality and performance.
- Split playback and record cleanly.  Improve halfduplex support.
- Many bugs are fixed including deadlocks, resource leaks, abuses, etc.
- Simplify audio filter mechanism.  The encoding/channels/frequency
  conversions are completely handled in the upper layer.  So the hard-
  ware driver only converts its hardware encoding (if necessary).
- audio_hw_if changes:
  - Obsoletes query_encoding and add query_format instead.
  - Obsoletes set_params and add set_format instead.
  - Remove drain, setfd, mappage.
  - The call sequences are changed.
- ioctl AUDIO_GETFD/SETFD, AUDIO_GETCHAN/SETCHAN are obsoleted.
- ioctl AUDIO_{QUERY,GET,SET}FORMAT are introduced.
- cleanup config attributes: au*conv and mulaw.
- All hardware drivers should follow it (I've done as much as possible).

Some file paths are changed:
- dev/audio.c         -> dev/audio/audio.c (rewritten)
- dev/audiovar.h      -> dev/audio/audiovar.h
- dev/audio_dai.h     -> dev/audio/audio_dai.h
- dev/audio_if.h      -> dev/audio/audio_if.h
- dev/audiobell.c     -> dev/audio/audiobell.c
- dev/audiobellvar.h  -> dev/audio/audiobellvar.h
- dev/mulaw.[ch]      -> dev/audio/mulaw.[ch] + dev/audio/alaw.c
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.18 2018/08/01 09:50:57 reinoud Exp $
d59 1
a59 1
file	arch/usermode/usermode/process_machdep.c
@


1.18
log
@Add preliminary KGDB support for NetBSD/usermode, currently only under amd64
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.17 2018/06/05 20:02:42 reinoud Exp $
d33 1
a33 1
device	vaudio { } : audiobus, auconv, aurateconv, mulaw
@


1.18.2.1
log
@Remove obsoleted au{,rate,vol}conv and mulaw attributes.
audio provides the equivalent of them inseparably.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.18 2018/08/01 09:50:57 reinoud Exp $
d33 1
a33 1
device	vaudio { } : audiobus
@


1.17
log
@Add ATAPI passtrough support giving the NetBSD/usermode kernel full control of
an ATAPI device. All ATAPI/SCSI commands are passed trough.

Note that ATAPI/SCSI calls are made in the foreground still. Lengthy calls
will still hug the CPU until completion. Making it asynchronous is in the
pipeline
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.16 2011/12/30 20:08:36 jmcneill Exp $
d65 3
@


1.17.2.1
log
@Sync with HEAD
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.19 2019/05/08 13:40:16 isaki Exp $
d33 1
a33 1
device	vaudio { } : audiobus
a64 3
file	arch/usermode/usermode/db_memrw.c	ddb | kgdb
file	arch/usermode/usermode/kgdb_machdep.c	ddb | kgdb
file	arch/usermode/usermode/cpufunc.S	ddb | kgdb
@


1.16
log
@add wsmouse support
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.15 2011/12/29 21:22:49 jmcneill Exp $
d45 10
@


1.16.46.1
log
@Sync with HEAD
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.17 2018/06/05 20:02:42 reinoud Exp $
a44 10
include "dev/scsipi/files.scsipi"
#device	vscsi: scsi
#file	arch/usermode/dev/vscsi.c		vscsi needs-flag
#attach	vscsi at thunkbus with vscsi_thunkbus
#file	atch/usermode/dev/vscsi_thunkbus.c	vscsi_thunkbus

device	vatapi { } : atapi, atapibus
attach	vatapi at thunkbus with vatapi_thunkbus
file	arch/usermode/dev/vatapi.c		vatapi_thunkbus

@


1.16.46.2
log
@Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.18 2018/08/01 09:50:57 reinoud Exp $
a64 3
file	arch/usermode/usermode/db_memrw.c	ddb | kgdb
file	arch/usermode/usermode/kgdb_machdep.c	ddb | kgdb
file	arch/usermode/usermode/cpufunc.S	ddb | kgdb
@


1.15
log
@Replace the SDL based genfb driver with a wsdisplay and wskbd driver that
implements the VNC (RFB) protocol.

To enable the VNC server, add 'vnc=640x480,5900' to the kernel command line
(where 640x480 is the desired fb resolution and 5900 is the TCP port).

Screenshot of it here: http://www.netbsd.org/~jmcneill/usermode.tiff
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.14 2011/12/26 21:06:42 jmcneill Exp $
d40 1
a40 1
device	vncfb { } : wsemuldisplaydev, rasops32, vcons, wskbddev
@


1.14
log
@add vaudio(4) audio device driver
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.13 2011/12/26 12:39:19 jmcneill Exp $
a6 1
defflag opt_sdl.h				SDL
d40 4
a43 2
attach	genfb at thunkbus with genfb_thunkbus
file	arch/usermode/dev/genfb_thunkbus.c	genfb_thunkbus
@


1.13
log
@first cut at networking support for usermode, doesn't fully work yet but
enough to get an address with dhcp and answer arps
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.12 2011/12/20 21:01:39 jmcneill Exp $
d34 4
@


1.12
log
@get rid of urkelvisor, and use same MD majors as the host
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.11 2011/09/16 11:28:36 jmcneill Exp $
d30 4
@


1.11
log
@push TEXTADDR option into kernel makefile
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.10 2011/09/04 21:08:18 jmcneill Exp $
a10 1
defflag opt_urkelvisor.h			URKELVISOR
@


1.11.2.1
log
@sync with head
@
text
@d1 1
a1 1
# $NetBSD$
d7 1
d11 1
a30 8
device	veth { } : arp, ether, ifnet
attach	veth at thunkbus
file	arch/usermode/dev/if_veth.c		veth

device	vaudio { } : audiobus, auconv, aurateconv, mulaw
attach	vaudio at thunkbus
file	arch/usermode/dev/vaudio.c		vaudio

d34 2
a35 4
device	vncfb { } : wsemuldisplaydev, rasops32, vcons, wskbddev, wsmousedev
attach	vncfb at thunkbus
file	arch/usermode/dev/vncfb.c		vncfb
file	arch/usermode/dev/vnckbdmap.c		vncfb
@


1.11.6.1
log
@merge to -current.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.16 2011/12/30 20:08:36 jmcneill Exp $
d7 1
d11 1
a30 8
device	veth { } : arp, ether, ifnet
attach	veth at thunkbus
file	arch/usermode/dev/if_veth.c		veth

device	vaudio { } : audiobus, auconv, aurateconv, mulaw
attach	vaudio at thunkbus
file	arch/usermode/dev/vaudio.c		vaudio

d34 2
a35 4
device	vncfb { } : wsemuldisplaydev, rasops32, vcons, wskbddev, wsmousedev
attach	vncfb at thunkbus
file	arch/usermode/dev/vncfb.c		vncfb
file	arch/usermode/dev/vnckbdmap.c		vncfb
@


1.10
log
@implement splraise/spllower
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.9 2011/09/03 18:42:13 jmcneill Exp $
d10 1
@


1.9
log
@Let NetBSD/usermode build & link on a Linux host:
 - Need to add options CPU_HOST=i386 or CPU_HOST=amd64 for membar & atomic_ops
 - Don't use MAP_* and PROT_* with thunk API since the kernel and host
   might not be the same; add THUNK_MAP_* and THUNK_PROT_* and translate them
 - Add thunk_posix_memalign
 - allocate mem_uvm with thunk_posix_memalign instead of thunk_malloc
 - Fix thunk_mmap callers to always pass either THUNK_MAP_PRIVATE or
   THUNK_MAP_SHARED
 - mkstemp on Linux requires exactly 6 "X" characters at the end of the
   template string, so add an X
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.8 2011/09/03 12:28:45 jmcneill Exp $
d37 1
@


1.8
log
@Add usermode kernel supervisor, can be disabled with 'no options URKELVISOR'
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.7 2011/08/27 21:43:06 jmcneill Exp $
d9 1
@


1.7
log
@defflag CPU_DEBUG
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.6 2011/08/25 11:06:29 jmcneill Exp $
d9 1
@


1.6
log
@- build thunk code with warnings
- add option SDL which pulls in thunk_sdl code and links the kernel to libSDL
- add an experimental framebuffer driver based on thunk_sdl, enable with:
    options SDL
    genfb* at mainbus?
    wsdisplay* at genfb?
    options WS_KERNEL_FG=WSCOL_GREEN
    options WSEMUL_VT100
- reserve a major # for wsdisplay
- add thunk_getenv()
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.5 2011/08/24 10:59:10 jmcneill Exp $
d8 1
@


1.5
log
@add procfs support
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.4 2011/08/12 12:59:13 jmcneill Exp $
d7 1
d30 3
@


1.4
log
@add a simple disk driver, pass the path to the disk image on the kernel command line:

soundwave$ ./netbsd /tmp/test.fs
NetBSD/usermode startup
[...]
ld0 at mainbus0: /tmp/test.fs (33554432)
ld0: 32768 KB, 8322 cyl, 64 head, 63 sec, 1 bytes/sect x 33554432 sectors
boot device: ld0
root on ld0a dumps on ld0b
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.3 2011/06/12 03:35:48 rmind Exp $
d33 1
@


1.3
log
@Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.
@
text
@d1 1
a1 1
# $NetBSD$
d26 3
d39 1
@


1.2
log
@Refactor in_cksum/in4_cksum/in6_cksum implementations:
- All three functions are included in the kernel by default.
  They call a backend function cpu_in_cksum after possibly
  computing the checksum of the pseudo header.
- cpu_in_cksum is the core to implement the one-complement sum.
  The default implementation is moderate fast on most platforms
  and provides a 32bit accumulator with 16bit addends for L32 platforms
  and a 64bit accumulator with 32bit addends for L64 platforms.
  It handles edge cases like very large mbuf chains (could happen with
  native IPv6 in the future) and provides a good base for new native
  implementations.
- Modify i386 and amd64 assembly to use the new interface.

This disables the MD implementations on !x86 until the conversion is
done. For Alpha, the portable version is faster.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.1 2007/12/29 14:38:30 jmcneill Exp $
a27 1
file	arch/usermode/usermode/mem.c
@


1.2.44.1
log
@Catchup with rmind-uvmplock merge.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.3 2011/06/12 03:35:48 rmind Exp $
d28 1
@


1.2.34.1
log
@Unify /dev/{mem,kmem,zero,null} implementations in MI code.  Based on patch
from Joerg Sonnenberger, proposed on tech-kern@@, in February 2008.

Work and depression still in progress.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.2 2008/01/25 21:12:13 joerg Exp $
d28 1
@


1.2.2.1
log
@file files.usermode was added on branch mjf-devfs on 2008-02-18 21:05:11 +0000
@
text
@d1 38
@


1.2.2.2
log
@Sync with HEAD.
@
text
@a0 38
# $NetBSD: files.usermode,v 1.2 2008/01/25 21:12:13 joerg Exp $

maxpartitions 8
maxusers 8 16 64

defparam opt_memsize.h				MEMSIZE

define	thunkbus { }

device	mainbus: thunkbus
attach	mainbus at root
file	arch/usermode/dev/mainbus.c		mainbus

device	cpu { }
attach	cpu at thunkbus
file	arch/usermode/dev/cpu.c			cpu

device	clock { }
attach	clock at thunkbus
file	arch/usermode/dev/clock.c		clock

device	ttycons { } : tty
attach	ttycons at thunkbus
file	arch/usermode/dev/ttycons.c		ttycons

file	arch/usermode/usermode/copy.c
file	arch/usermode/usermode/machdep.c
file	arch/usermode/usermode/mem.c
file	arch/usermode/usermode/pmap.c
file	arch/usermode/usermode/process_machdep.c
file	arch/usermode/usermode/sys_machdep.c
file	arch/usermode/usermode/syscall.c
file	arch/usermode/usermode/trap.c
file	arch/usermode/usermode/vm_machdep.c
file	dev/cons.c
file	dev/md_root.c				memory_disk_hooks

include "arch/usermode/conf/majors.usermode"
@


1.1
log
@Import work-in-progress NetBSD/usermode port.
@
text
@d1 1
a1 1
# $NetBSD$
a25 3
file	netinet/in_cksum.c			inet
file	netinet/in4_cksum.c			inet

@


1.1.6.1
log
@file files.usermode was added on branch yamt-lazymbuf on 2008-01-21 09:39:43 +0000
@
text
@d1 41
@


1.1.6.2
log
@sync with head
@
text
@a0 41
# $NetBSD$

maxpartitions 8
maxusers 8 16 64

defparam opt_memsize.h				MEMSIZE

define	thunkbus { }

device	mainbus: thunkbus
attach	mainbus at root
file	arch/usermode/dev/mainbus.c		mainbus

device	cpu { }
attach	cpu at thunkbus
file	arch/usermode/dev/cpu.c			cpu

device	clock { }
attach	clock at thunkbus
file	arch/usermode/dev/clock.c		clock

device	ttycons { } : tty
attach	ttycons at thunkbus
file	arch/usermode/dev/ttycons.c		ttycons

file	netinet/in_cksum.c			inet
file	netinet/in4_cksum.c			inet

file	arch/usermode/usermode/copy.c
file	arch/usermode/usermode/machdep.c
file	arch/usermode/usermode/mem.c
file	arch/usermode/usermode/pmap.c
file	arch/usermode/usermode/process_machdep.c
file	arch/usermode/usermode/sys_machdep.c
file	arch/usermode/usermode/syscall.c
file	arch/usermode/usermode/trap.c
file	arch/usermode/usermode/vm_machdep.c
file	dev/cons.c
file	dev/md_root.c				memory_disk_hooks

include "arch/usermode/conf/majors.usermode"
@


1.1.6.3
log
@sync with head.
@
text
@d1 1
a1 1
# $NetBSD: files.usermode,v 1.1.6.2 2008/01/21 09:39:43 yamt Exp $
d26 3
@


1.1.4.1
log
@file files.usermode was added on branch matt-armv6 on 2008-01-09 01:49:19 +0000
@
text
@d1 41
@


1.1.4.2
log
@sync with HEAD
@
text
@a0 41
# $NetBSD$

maxpartitions 8
maxusers 8 16 64

defparam opt_memsize.h				MEMSIZE

define	thunkbus { }

device	mainbus: thunkbus
attach	mainbus at root
file	arch/usermode/dev/mainbus.c		mainbus

device	cpu { }
attach	cpu at thunkbus
file	arch/usermode/dev/cpu.c			cpu

device	clock { }
attach	clock at thunkbus
file	arch/usermode/dev/clock.c		clock

device	ttycons { } : tty
attach	ttycons at thunkbus
file	arch/usermode/dev/ttycons.c		ttycons

file	netinet/in_cksum.c			inet
file	netinet/in4_cksum.c			inet

file	arch/usermode/usermode/copy.c
file	arch/usermode/usermode/machdep.c
file	arch/usermode/usermode/mem.c
file	arch/usermode/usermode/pmap.c
file	arch/usermode/usermode/process_machdep.c
file	arch/usermode/usermode/sys_machdep.c
file	arch/usermode/usermode/syscall.c
file	arch/usermode/usermode/trap.c
file	arch/usermode/usermode/vm_machdep.c
file	dev/cons.c
file	dev/md_root.c				memory_disk_hooks

include "arch/usermode/conf/majors.usermode"
@


1.1.4.3
log
@sync with HEAD
@
text
@d1 1
a1 1
# files.usermode,v 1.1.4.2 2008/01/09 01:49:19 matt Exp
d26 3
@


1.1.2.1
log
@file files.usermode was added on branch bouyer-xeni386 on 2008-01-02 21:50:41 +0000
@
text
@d1 41
@


1.1.2.2
log
@Sync with HEAD
@
text
@a0 41
# $NetBSD$

maxpartitions 8
maxusers 8 16 64

defparam opt_memsize.h				MEMSIZE

define	thunkbus { }

device	mainbus: thunkbus
attach	mainbus at root
file	arch/usermode/dev/mainbus.c		mainbus

device	cpu { }
attach	cpu at thunkbus
file	arch/usermode/dev/cpu.c			cpu

device	clock { }
attach	clock at thunkbus
file	arch/usermode/dev/clock.c		clock

device	ttycons { } : tty
attach	ttycons at thunkbus
file	arch/usermode/dev/ttycons.c		ttycons

file	netinet/in_cksum.c			inet
file	netinet/in4_cksum.c			inet

file	arch/usermode/usermode/copy.c
file	arch/usermode/usermode/machdep.c
file	arch/usermode/usermode/mem.c
file	arch/usermode/usermode/pmap.c
file	arch/usermode/usermode/process_machdep.c
file	arch/usermode/usermode/sys_machdep.c
file	arch/usermode/usermode/syscall.c
file	arch/usermode/usermode/trap.c
file	arch/usermode/usermode/vm_machdep.c
file	dev/cons.c
file	dev/md_root.c				memory_disk_hooks

include "arch/usermode/conf/majors.usermode"
@


