xref: /freebsd/libexec/rc/rc.d/kldxref (revision 0696600c41600d80bcd993bfd8e675d0ae6951fe)
1*0696600cSBjoern A. Zeeb#!/bin/sh
2*0696600cSBjoern A. Zeeb#
3*0696600cSBjoern A. Zeeb# $FreeBSD$
4*0696600cSBjoern A. Zeeb#
5*0696600cSBjoern A. Zeeb
6*0696600cSBjoern A. Zeeb# PROVIDE: kldxref
7*0696600cSBjoern A. Zeeb# REQUIRE: FILESYSTEMS
8*0696600cSBjoern A. Zeeb# BEFORE:  netif
9*0696600cSBjoern A. Zeeb# KEYWORD: nojail
10*0696600cSBjoern A. Zeeb
11*0696600cSBjoern A. Zeeb. /etc/rc.subr
12*0696600cSBjoern A. Zeeb
13*0696600cSBjoern A. Zeebrcvar="kldxref_enable"
14*0696600cSBjoern A. Zeebname="kldxref"
15*0696600cSBjoern A. Zeebdesc="Generate hints for the kernel loader"
16*0696600cSBjoern A. Zeebstop_cmd=":"
17*0696600cSBjoern A. Zeebstart_cmd="kldxref_start"
18*0696600cSBjoern A. Zeeb
19*0696600cSBjoern A. Zeebkldxref_start() {
20*0696600cSBjoern A. Zeeb	if [ -n "$kldxref_module_path" ]; then
21*0696600cSBjoern A. Zeeb		MODULE_PATHS="$kldxref_module_path"
22*0696600cSBjoern A. Zeeb	else
23*0696600cSBjoern A. Zeeb		MODULE_PATHS=`sysctl -n kern.module_path`
24*0696600cSBjoern A. Zeeb	fi
25*0696600cSBjoern A. Zeeb	IFS=';'
26*0696600cSBjoern A. Zeeb	for MODULE_DIR in $MODULE_PATHS; do
27*0696600cSBjoern A. Zeeb		if checkyesno kldxref_clobber ||
28*0696600cSBjoern A. Zeeb		    [ ! -f "$MODULE_DIR/linker.hints" ] &&
29*0696600cSBjoern A. Zeeb		    [ `echo ${MODULE_DIR}/*.ko` != "${MODULE_DIR}/*.ko" ]; then
30*0696600cSBjoern A. Zeeb			echo "Building $MODULE_DIR/linker.hints"
31*0696600cSBjoern A. Zeeb			kldxref "$MODULE_DIR"
32*0696600cSBjoern A. Zeeb		fi
33*0696600cSBjoern A. Zeeb	done
34*0696600cSBjoern A. Zeeb}
35*0696600cSBjoern A. Zeeb
36*0696600cSBjoern A. Zeebload_rc_config $name
37*0696600cSBjoern A. Zeebrun_rc_command "$1"
38