[BACK]Return to rc.lkm CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / etc

File: [cvs.NetBSD.org] / src / etc / Attic / rc.lkm (download)

Revision 1.9, Fri Mar 4 21:11:23 2005 UTC (19 years ago) by cube
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3, mjf-devfs2-base, mjf-devfs-base, mjf-devfs, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, matt-armv6-nbase, matt-armv6-base, matt-armv6, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-nbase, hpcarm-cleanup-base, hpcarm-cleanup, cube-autoconf-base, cube-autoconf, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: mjf-devfs2
Changes since 1.8: +1 -9 lines

modload(8) already obtain the value of the machdep.booted_kernel sysctl
node, and use it as a reasonable default when no -A option is passed.

The difference is, modload(8) prefers /dev/ksyms rather than the sysctl
node, which is the behaviour we really want.

Unconditionally passing -A in rc.lkm prevents the loading of inter-
dependent modules from rc.d, as reported by Jeff Rizzo on netbsd-users.

#	$NetBSD: rc.lkm,v 1.9 2005/03/04 21:11:23 cube Exp $
#
# this script loads or unloads LKMs (loadable kernel modules).

if [ -s /etc/lkm.conf ]; then
	case "$1" in
	start)
		(while read path options entry postinstall output when; do
			flags=''
	
			case $path in
			\#*|"")
				continue
				;;
			/*)
				;;
			*)
				if [ -f "/lkm/$path" ]; then
					path="/lkm/$path"
				elif [ -f "/usr/lkm/$path" ]; then
					path="/usr/lkm/$path"
				else
					echo "couldn't find module $path"
				fi
				;;
			esac
	
			case $options in
			-)
				;;
			*)
				flags="$flags $options"
				;;
			esac
	
			case $entry in
			-)
				;;
			*)
				flags="$flags -e $entry"
				;;
			esac
	
			case $postinstall in
			-)
				;;
			*)
				flags="$flags -p $postinstall"
				;;
			esac
	
			case $output in
			-)
				;;
			*)
				if [ "$output" = TEMP ]; then
					flags="$flags -o /tmp/lkm.$$"
				else
					flags="$flags -o $output"
				fi
				;;
			esac
	
			case $when in
			-)
				when=BEFORENET
				;;
			[A-Z]*)
					;;
			*)
				echo "invalid \"when\" field \`${when}' in /etc/lkm.conf - $path not loaded!"
				continue
				;;
			esac
	
			if [ "$when" != "$lkmstage" ]; then
				continue
			fi
	
			echo -n "${path##*/}: "
			modload $flags $path
			rm -f /tmp/lkm.$$
		done) < /etc/lkm.conf
		;;
	stop)
		(while read path options entry postinstall output when; do
			case $path in
			\#*|"")
				continue
				;;
			/*)
				name=${path##*/}
				name=${name%.o}
				;;
			*)
				name=${path%.o}
				;;
			esac

			if [ "$when" = "$lkmstage" ]; then
				modunload -n ${name}
			fi
		done) < /etc/lkm.conf
		;;
	esac
fi