git: 9front

Download patch

ref: bb85411a83ba9779849a9b7dade04ef6fcaf7513
parent: d01ec89dd454bbc746cd6c2297fc000b69839103
author: cinap_lenrek <cinap_lenrek@localhost>
date: Tue May 10 05:14:30 EDT 2011

boot and namespace cleanup

--- a/lib/namespace
+++ b/lib/namespace
@@ -10,11 +10,12 @@
 bind #p /proc
 bind -c #s /srv
 bind -a #¤ /dev
-bind -a #S /dev
 
+# userspace devices
+mount -qb /srv/cons /dev
+
 # mount points
 mount -a /srv/slashn /n
-mount -b /srv/cons /dev
 
 # authentication
 mount -a /srv/factotum /mnt
--- a/rc/bin/cpurc
+++ b/rc/bin/cpurc
@@ -71,7 +71,7 @@
 
 # mode of /proc/*/ctl is inherited across rfork, and sets modes on
 # other /proc files, such as note, so let listen be killed.
-dontkill '^(ipconfig|factotum|mntgen|venti|fossil|cs|dns|reboot)$'
+dontkill '^(ipconfig|factotum|mntgen|venti|kfs|cwfs.*|cs|dns|reboot)$'
 
 # echo `{date} $sysname >>/sys/log/boot
 exit ''
--- a/rc/bin/cpurc.local
+++ b/rc/bin/cpurc.local
@@ -5,10 +5,11 @@
 # return addresses, even local ones
 site=EXAMPLE
 # replace FILESERVER with the name of your file server
-# here we start with kfs, your local disk file system
-fileserver=kfs
+# here we start with cwfs, your local disk file system
+fileserver=cwfs
 # replace FACEDOM with the local domain to be used in the faces database
 facedom=FACEDOM
 
-for(i in m i P S t)
+for(i in m i P S t u)
 	bind -a '#'^$i /dev >/dev/null >[2=1]
+mount -qa /srv/usb /dev
--- a/rc/bin/termrc
+++ b/rc/bin/termrc
@@ -5,11 +5,13 @@
 
 mntgen -s slashn && chmod 666 /srv/slashn
 
-# bind all likely devices (#S was bound in boot)
-for(i in f t m v L P u U '$' Σ κ)
-	/bin/bind -a '#'^$i /dev >/dev/null >[2=1]
+# bind all likely devices
+for(i in S f k t m i v L P u U '$' Σ κ)
+	bind -a '#'^$i /dev >/dev/null >[2=1]
 rm -f /env/i
 
+mount -qa /srv/usb /dev
+
 # set up any partitions
 diskparts
 
@@ -110,8 +112,7 @@
 }
 rm -f '/env/fn#ask'
 
-usbstart
 if (test -f /dev/apm)
 	aux/apm
 
-dontkill '^(ipconfig|factotum|mntgen|fossil|kfs|cwfs|cs|dns|listen|reboot)$'
+dontkill '^(ipconfig|factotum|mntgen|fossil|kfs|cwfs.*|cs|dns|listen|reboot)$'
--- a/rc/bin/usbstart
+++ /dev/null
@@ -1,12 +1,0 @@
-#!/bin/rc
-# usbstart - start appropriate usb flavour
-if(test -r '#u'/usb) {
-	if(! test -r /dev/usb)
-		bind -a '#u' /dev
-	# /boot/boot may have started usbd, which starts all usb drivers
-	if(test -f /srv/usb)
-		mount -a /srv/usb /dev
-	if not
-		usb/usbd
-}
-exit ''
--- a/sys/src/9/boot/bootrc
+++ b/sys/src/9/boot/bootrc
@@ -2,39 +2,19 @@
 
 bind -q '#p' /proc
 
-if(test -e '#b' && ! test -e /dev/kbd){
-	bind -a '#b' /dev
-	aux/kbdfs -s cons
-	exec /rc/bin/bootrc </dev/cons >/dev/cons >[2]/dev/cons
+for(i in S f k æ t){
+	bind -a '#'^$i /dev >/dev/null >[2=1]
 }
 
-bind -qa '#S' /dev
-bind -qa '#f' /dev
-bind -qa '#k' /dev
-bind -qa '#æ' /dev
-
-fn set {
-	a=$$1
-	$1=()
-	rm -f '#e'/$1 '#ec'/$1 /env/$1
+for(i in init user nvram rootdir bootargs nobootprompt sysname \
+	debugfactotum fs fsaddr auth authaddr){
+	a=$$i
+	$i=()
+	rm -f '#e'/$i '#ec'/$i /env/$i
 	if(! ~ $#a 0)
-		$1=$a
+		$i=$a
 }
 
-# convert plan9.ini variables
-set init
-set user
-set nvram
-set rootdir
-set bootargs
-set nobootprompt
-set sysname
-set debugfactotum
-set fs
-set fsaddr
-set auth
-set authaddr
-
 fn fatal {
 	echo $*
 	exit $"*
@@ -138,17 +118,16 @@
 	exec $init
 }
 
-if(test -e '#u'){
+if(test -e '#b' && test -x /bin/aux/kbdfs){
+	bind -a '#b' /dev
+	aux/kbdfs -s cons
+}
+
+if(test -e '#u' && test -x /bin/usb/usbd){
 	bind -a '#u' /dev
 	usb/usbd
 }
 
-if(! ~ $#kbmap 0){
-	bind -a '#κ' /dev
-	if(test -r $"kbmap)
-		cat $"kbmap >/dev/kbmap
-}
-
 # bind in an ip interface
 for(i in I l`{seq 0 3})
 	bind -qa '#'$i /net
@@ -163,4 +142,4 @@
 	nobootprompt=()
 	user=()
 	rm -f /srv/boot /srv/slashn /srv/cs /srv/dns
-}
+} </dev/cons >/dev/cons >[2]/dev/cons 
--- a/sys/src/cmd/aux/kbdfs.c
+++ b/sys/src/cmd/aux/kbdfs.c
@@ -1085,7 +1085,10 @@
 	}
 
 	/* get higher than normal priority */
-	fprint(fd, "pri 16");
+	fprint(fd, "pri 16\n");
+
+	/* always present in physical memory */
+	fprint(fd, "noswap\n");
 
 	/* dont let anybody kill us */
 	if(d = dirfstat(fd)){
--