freebsd-dev/etc/rc.d/archdep
Marcel Moolenaar 1c71a2c535 On ia64, the unaligned_print sysctl is a debugging knob under debug
and not under machdep as the behaviour is controlled by the process.
When PSR.ac is set the process expects to receive a SIGBUS. Otherwise
the processor or the kernel will emulate the misaligned memory access.

MFC after: 3 days
2006-02-13 21:41:32 +00:00

75 lines
1.0 KiB
Bash

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: archdep
# REQUIRE: LOGIN
# BEFORE: abi
# KEYWORD: nojail
. /etc/rc.subr
name=archdep
start_cmd="archdep_start"
stop_cmd=":"
# should we print out unaligned access warnings?
#
unaligned_warnings()
{
if ! checkyesno unaligned_print; then
sysctl machdep.unaligned_print=0
fi
}
# Alpha OSF/1 binary emulation
#
osf1_compat()
{
if checkyesno osf1_enable; then
echo -n ' OSF/1'
if ! kldstat -v | grep osf1_ecoff > /dev/null; then
kldload osf1 > /dev/null 2>&1
fi
fi
}
# SCO binary emulation
#
ibcs2_compat()
{
if checkyesno ibcs2_enable; then
echo -n ' ibcs2'
kldload ibcs2 > /dev/null 2>&1
case ${ibcs2_loaders} in
[Nn][Oo])
;;
*)
for i in ${ibcs2_loaders}; do
kldload ibcs2_$i > /dev/null 2>&1
done
;;
esac
fi
}
archdep_start()
{
_arch=`${SYSCTL_N} hw.machine_arch`
echo -n "Initial $_arch initialization:"
case $_arch in
i386)
ibcs2_compat
;;
alpha)
osf1_compat
unaligned_warnings
;;
esac
echo '.'
}
load_rc_config $name
run_rc_command "$1"