a536ab821b
o improve parsing and lexing o create data structures based on the parsed file now. o Still need to rewrite main loop and add regex (still uses hard coded devd-generic) o minor man page updates. # There should be one more commit before rc2 Approved by: re (blanket)
101 lines
2.9 KiB
Plaintext
101 lines
2.9 KiB
Plaintext
# $FreeBSD$
|
|
#
|
|
# Refer to devd.conf(5) and devd(8) man pages for the details on how to
|
|
# run and configure devd.
|
|
#
|
|
|
|
# NB: All regular expressions have an implicit ^$ around them.
|
|
# NB: device-name is shorthand for 'match device-name'
|
|
|
|
options {
|
|
# Each directory directive adds a directory the list of directories
|
|
# that we scan for files. Files are read-in in the order that they
|
|
# are returned from readdir(3). The rule-sets are combined to
|
|
# create a DFA that's used to match events to actions.
|
|
directory "/etc/devd";
|
|
directory "/usr/local/etc/devd";
|
|
pid-file "/var/run/devd.pid";
|
|
|
|
# Setup some shorthand for regex that we use later in the file.
|
|
set ethernet-nic-regex
|
|
"(an|ar|aue|awi|bge|cm|cnw|cs|cue|dc|de|ed|el|em|ep|ex|\
|
|
fe|fxp|gem|gx|hme|ie|kue|lge|lnc|my|nge|pcn|ray|rl|\
|
|
sf|sis|sk|sn|snc|ste|ti|tl|tx|txp|vr|vx|wb|wi|xe|xl)[0-9]+";
|
|
set scsi-controller-regex
|
|
"(adv|advw|aic|aha|ahb|ahc|ahd|bt|ct|iir|isp|mly|mpt|ncv|nsp|\
|
|
stg|sym|wds)[0-9]+";
|
|
};
|
|
|
|
# Note that the attach/detach with the highest value wins, so that one can
|
|
# override these general rules.
|
|
|
|
#
|
|
# For ethernet like devices, the default is to run dhclient. Due to
|
|
# a historical accident, the name of this script it called pccard_ether
|
|
#
|
|
attach 0 {
|
|
device-name "$ethernet-nic-regex";
|
|
action "/etc/pccard_ether $device-name start";
|
|
};
|
|
|
|
detach 0 {
|
|
device-name "$ethernet-nic-regex";
|
|
action "/etc/pccard_ether $device-name stop";
|
|
};
|
|
|
|
# An entry like this might be in a different file, but is included here
|
|
# as an example of how to override things. Normally 'ed20' would match
|
|
# the above attach/detach stuff, but the value of 100 makes it
|
|
# ed20 is hard wired to 1.2.3.4
|
|
attach 100 {
|
|
device-name "ed20";
|
|
action "ifconfig $device-name inet 1.2.3.4 netmask 0xffff0000";
|
|
};
|
|
detach 100 {
|
|
device-name "ed20";
|
|
};
|
|
|
|
#
|
|
# Rescan scsi device-names on attach, but not detach.
|
|
#
|
|
attach 0 {
|
|
device-name "$scsi-controller-regex";
|
|
action "camcontrol rescan all";
|
|
};
|
|
|
|
# Don't even try to second guess what to do about drivers that don't
|
|
# match here. Instead, pass it off to a smart script to deal.
|
|
nomatch 0 {
|
|
action "/usr/local/bin/smart-loader $pnpinfo $location $bus";
|
|
};
|
|
|
|
# The following might be an example of something that a vendor might
|
|
# install if you were to add their device. This might reside in
|
|
# /usr/local/etc/devd/deqna.conf. A deqna is, in this hypothetical
|
|
# example, a pccard ethernet-like device. Students of history may
|
|
# know other devices by this name, and will get the in-jokes in this
|
|
# entry.
|
|
nomatch 10 {
|
|
match "bus" "pccard[0-9]+";
|
|
match "manufacturer" "0x1234";
|
|
match "product" "0x2323";
|
|
action "kldload if_deqna";
|
|
};
|
|
attach 10 {
|
|
device-name "deqna[0-9]+";
|
|
action "/etc/pccard_ether $device-name start";
|
|
};
|
|
detach 10 {
|
|
device-name "deqna[0-9]+";
|
|
action "/etc/pccard_ether $device-name stop";
|
|
};
|
|
|
|
// Single line comment, alternate style
|
|
/*
|
|
* This is a multiline comment
|
|
* 96
|
|
* 97
|
|
* 98
|
|
* 99 */
|
|
# error uncomment this line to test, should be line 100.
|