10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# 40696600cSBjoern A. Zeeb 50696600cSBjoern A. Zeeb# PROVIDE: devfs 60696600cSBjoern A. Zeeb# REQUIRE: mountcritremote 70696600cSBjoern A. Zeeb# BEFORE: SERVERS securelevel 80696600cSBjoern A. Zeeb# KEYWORD: nojail 90696600cSBjoern A. Zeeb 100696600cSBjoern A. Zeeb. /etc/rc.subr 110696600cSBjoern A. Zeeb 120696600cSBjoern A. Zeebname="devfs" 130696600cSBjoern A. Zeebdesc="Device filesystem" 140696600cSBjoern A. Zeebstart_cmd='devfs_start' 150696600cSBjoern A. Zeebstop_cmd=':' 160696600cSBjoern A. Zeeb 170696600cSBjoern A. Zeebdevfs_start() 180696600cSBjoern A. Zeeb{ 190696600cSBjoern A. Zeeb if [ -n "$devfs_system_ruleset" -o -n "$devfs_set_rulesets" ] || 200696600cSBjoern A. Zeeb checkyesno devfs_load_rulesets; then 210696600cSBjoern A. Zeeb devfs_init_rulesets 220696600cSBjoern A. Zeeb if [ -n "$devfs_system_ruleset" ]; then 230696600cSBjoern A. Zeeb devfs_set_ruleset $devfs_system_ruleset /dev 240696600cSBjoern A. Zeeb devfs_apply_ruleset $devfs_system_ruleset /dev 250696600cSBjoern A. Zeeb fi 260696600cSBjoern A. Zeeb if [ -n "$devfs_set_rulesets" ]; then 270696600cSBjoern A. Zeeb local _dir_set 280696600cSBjoern A. Zeeb local _dir 290696600cSBjoern A. Zeeb local _set 300696600cSBjoern A. Zeeb for _dir_set in $devfs_set_rulesets; do 310696600cSBjoern A. Zeeb _dir=${_dir_set%=*} 320696600cSBjoern A. Zeeb _set=${_dir_set#*=} 330696600cSBjoern A. Zeeb devfs_set_ruleset $_set $_dir 340696600cSBjoern A. Zeeb devfs_apply_ruleset $_set $_dir 350696600cSBjoern A. Zeeb done 360696600cSBjoern A. Zeeb fi 370696600cSBjoern A. Zeeb fi 380696600cSBjoern A. Zeeb read_devfs_conf 390696600cSBjoern A. Zeeb} 400696600cSBjoern A. Zeeb 410696600cSBjoern A. Zeebread_devfs_conf() 420696600cSBjoern A. Zeeb{ 430696600cSBjoern A. Zeeb if [ -r /etc/devfs.conf ]; then 440696600cSBjoern A. Zeeb cd /dev 450696600cSBjoern A. Zeeb while read action devicelist parameter; do 460696600cSBjoern A. Zeeb case "${action}" in 470696600cSBjoern A. Zeeb l*) for device in ${devicelist}; do 480696600cSBjoern A. Zeeb if [ ! -e ${parameter} ]; then 490696600cSBjoern A. Zeeb ln -fs ${device} ${parameter} 500696600cSBjoern A. Zeeb fi 510696600cSBjoern A. Zeeb done 520696600cSBjoern A. Zeeb ;; 530696600cSBjoern A. Zeeb o*) for device in ${devicelist}; do 540696600cSBjoern A. Zeeb if [ -c ${device} ]; then 550696600cSBjoern A. Zeeb chown ${parameter} ${device} 560696600cSBjoern A. Zeeb fi 570696600cSBjoern A. Zeeb done 580696600cSBjoern A. Zeeb ;; 590696600cSBjoern A. Zeeb p*) for device in ${devicelist}; do 600696600cSBjoern A. Zeeb if [ -c ${device} ]; then 610696600cSBjoern A. Zeeb chmod ${parameter} ${device} 620696600cSBjoern A. Zeeb fi 630696600cSBjoern A. Zeeb done 640696600cSBjoern A. Zeeb ;; 650696600cSBjoern A. Zeeb esac 660696600cSBjoern A. Zeeb done < /etc/devfs.conf 670696600cSBjoern A. Zeeb fi 680696600cSBjoern A. Zeeb} 690696600cSBjoern A. Zeeb 700696600cSBjoern A. Zeebload_rc_config $name 71*f99f0ee1SAlexander Leidinger 72*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj: may need more permissions 73*f99f0ee1SAlexander Leidingerdevfs_svcj="NO" 74*f99f0ee1SAlexander Leidinger 750696600cSBjoern A. Zeebrun_rc_command "$1" 76