(List (FunctionDef unmount_devpts [] (List (If (Com {[LIT_CHARS mountpoint]} {[LIT_CHARS -q]} {[LIT_CHARS /dev/pts/]}) (Com {[LIT_CHARS umount]} {[LIT_CHARS -n]} {[LIT_CHARS -l]} {[LIT_CHARS /dev/pts/]}) ) (If (Com {[LIT_CHARS mountpoint]} {[LIT_CHARS -q]} {[LIT_CHARS /dev/shm/]}) (Com {[LIT_CHARS umount]} {[LIT_CHARS -n]} {[LIT_CHARS -l]} {[LIT_CHARS /dev/shm/]}) ) ) ) (FunctionDef mount_devtmpfs [] (List (If (Com {[LIT_CHARS grep]} {[LIT_CHARS -E]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS "^[^[:space:]]+ /dev devtmpfs"]]} {[LIT_CHARS /proc/mounts]}) (List (Com {[LIT_CHARS mount]} {[LIT_CHARS -n]} {[LIT_CHARS -o]} {[LIT_CHARS remount] [LIT_COMMA ","] [LIT_VAR_LIKE "size="] [VarSub tmpfs_size] [LIT_COMMA ","] [LIT_VAR_LIKE "mode="] [LIT_CHARS 0755]} {[LIT_CHARS -t]} {[LIT_CHARS devtmpfs]} {[LIT_CHARS devtmpfs]} {[LIT_CHARS /dev]}) (Com {[LIT_CHARS return]}) ) ) (If (Pipeline! (Com {[LIT_CHARS mount]} {[LIT_CHARS -n]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "size="] [VarSub tmpfs_size] [LIT_COMMA ","] [LIT_VAR_LIKE "mode="] [LIT_CHARS 0755] =} {[LIT_CHARS -t]} {[LIT_CHARS devtmpfs]} {[LIT_CHARS devtmpfs]} {[LIT_CHARS /dev]}) ) (List (Com {[LIT_CHARS log_failure_msg]} {[DQ [LIT_CHARS "udev requires devtmpfs support, not started"]]}) (Com {[LIT_CHARS log_end_msg]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) ) (FunctionDef create_dev_makedev [] (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[LIT_CHARS /sbin/MAKEDEV]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -sf]} {[LIT_CHARS /sbin/MAKEDEV]} {[LIT_CHARS /dev/MAKEDEV]}) (ElseTrue) (Com {[LIT_CHARS ln]} {[LIT_CHARS -sf]} {[LIT_CHARS /bin/true]} {[LIT_CHARS /dev/MAKEDEV]}) ) ) (FunctionDef move_udev_database [] (List (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS /dev/.udev/]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[LIT_CHARS /run/udev/]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[LIT_CHARS /run/]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS mountpoint]} {[LIT_CHARS -q]} {[LIT_CHARS /run/]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS mv]} {[LIT_CHARS /dev/.udev/]} {[LIT_CHARS /run/udev/]}) (Com {[LIT_CHARS true]}) ) ) ) (FunctionDef supported_kernel [] (List (Case to_match={[DQ [ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -r]})]]}, pat_word_list=[[{[LIT_CHARS 2.] [LIT_OTHER "["] [LIT_CHARS 012345] [LIT_OTHER "]"] [LIT_CHARS .] [LIT_OTHER "*"]}, {[LIT_CHARS 2.6.] [LIT_OTHER "["] [LIT_CHARS 0-9] [LIT_OTHER "]"]}, {[LIT_CHARS 2.6.] [LIT_OTHER "["] [LIT_CHARS 0-9] [LIT_OTHER "]"] [LIT_OTHER "["] [LIT_OTHER "!"] [LIT_CHARS 0-9] [LIT_OTHER "]"] [LIT_OTHER "*"]}], [{[LIT_CHARS 2.6.] [LIT_OTHER "["] [LIT_CHARS 12] [LIT_OTHER "]"] [LIT_OTHER "["] [LIT_CHARS 0-9] [LIT_OTHER "]"]}, {[LIT_CHARS 2.6.] [LIT_OTHER "["] [LIT_CHARS 12] [LIT_OTHER "]"] [LIT_OTHER "["] [LIT_CHARS 0-9] [LIT_OTHER "]"] [LIT_OTHER "["] [LIT_OTHER "!"] [LIT_CHARS 0-9] [LIT_OTHER "]"] [LIT_OTHER "*"]}], [{[LIT_CHARS 2.6.3] [LIT_OTHER "["] [LIT_CHARS 0-1] [LIT_OTHER "]"]}, {[LIT_CHARS 2.6.3] [LIT_OTHER "["] [LIT_CHARS 0-1] [LIT_OTHER "]"] [LIT_OTHER "["] [LIT_OTHER "!"] [LIT_CHARS 0-9] [LIT_OTHER "]"] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) ) (FunctionDef my_tty [] (List (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -x]} {[LIT_CHARS /bin/readlink]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[LIT_CHARS /proc/self/fd/0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS readlink]} {[LIT_CHARS --silent]} {[LIT_CHARS /proc/self/fd/0]}) (Com {[LIT_CHARS true]}) ) ) ) (FunctionDef warn_if_interactive [] (List (If (Com {[LIT_OTHER "["]} {[DQ [VarSub RUNLEVEL]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS S]]} {[LIT_CHARS -a]} {[DQ [VarSub PREVLEVEL]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS N]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]}) ) (= scope= flags=0 words=[] bindings=[('TTY', {[ComSub (Com {[LIT_CHARS my_tty]})]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub TTY]]} {[LIT_CHARS -o]} {[DQ [VarSub TTY]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS /dev/console]]} {[LIT_CHARS -o]} {[DQ [VarSub TTY]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS /dev/null]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]}) ) (Com {[LIT_CHARS printf]} {[DQ [\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "It has been detected that the command"][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\t"][VarSub 0][LIT_CHARS " "][VarSub *][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "has been run from an interactive shell."][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "It will probably not do what you expect, so this script will wait"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "60 seconds before continuing. Press ^C to stop it."][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!"][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\n"]]}) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 60]}) ) ) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -x]} {[LIT_CHARS /sbin/udevd]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) (= scope= flags=0 words=[] bindings=[('PATH', {[DQ [LIT_CHARS "/sbin:/bin"]]})]) (= scope= flags=0 words=[] bindings=[('tmpfs_size', {[DQ [LIT_CHARS 10M]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[LIT_CHARS /etc/udev/udev.conf]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS .]} {[LIT_CHARS /etc/udev/udev.conf]}) ) (Com {[LIT_CHARS .]} {[LIT_CHARS /lib/lsb/init-functions]}) (If (Pipeline! (Com {[LIT_CHARS supported_kernel]}) ) (List (Com {[LIT_CHARS log_failure_msg]} {[DQ [LIT_CHARS "udev requires a kernel >= 2.6.32, not started"]]}) (Com {[LIT_CHARS log_end_msg]} {[LIT_CHARS 1]}) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[LIT_CHARS /proc/filesystems]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS log_failure_msg]} {[DQ [LIT_CHARS "udev requires a mounted procfs, not started"]]}) (Com {[LIT_CHARS log_end_msg]} {[LIT_CHARS 1]}) ) ) (If (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ]} {[LIT_CHARS /proc/filesystems]}) ) (List (Com {[LIT_CHARS log_failure_msg]} {[DQ [LIT_CHARS "udev requires devtmpfs support, not started"]]}) (Com {[LIT_CHARS log_end_msg]} {[LIT_CHARS 1]}) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[LIT_CHARS /sys/class/]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS log_failure_msg]} {[DQ [LIT_CHARS "udev requires a mounted sysfs, not started"]]}) (Com {[LIT_CHARS log_end_msg]} {[LIT_CHARS 1]}) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[LIT_CHARS /sys/kernel/uevent_helper]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS log_failure_msg]} {[DQ [LIT_CHARS "udev requires hotplug support, not started"]]}) (Com {[LIT_CHARS log_end_msg]} {[LIT_CHARS 1]}) ) ) (If (Pipeline! (Com {[LIT_CHARS ps]} {[LIT_CHARS --no-headers]} {[LIT_CHARS --format]} {[LIT_CHARS args]} {[LIT_CHARS ax]}) (Com {[LIT_CHARS egrep]} {[LIT_CHARS -q]} {[SQ ]}) ) (List (Com {[LIT_CHARS log_warning_msg]} {[DQ [LIT_CHARS "udev does not support containers, not started"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) ) (If (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[LIT_CHARS /sys/class/mem/null]} {[LIT_CHARS -a]} {[LIT_OTHER "!"]} {[LIT_CHARS -L]} {[LIT_CHARS /sys/class/mem/null]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[LIT_CHARS /sys/block]} {[LIT_CHARS -a]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[LIT_CHARS /sys/class/block]} {[LIT_OTHER "]"]}) ) (List (Com {[LIT_CHARS log_warning_msg]} {[DQ [LIT_CHARS "CONFIG_SYSFS_DEPRECATED must not be selected"]]}) (Com {[LIT_CHARS log_warning_msg]} {[DQ [LIT_CHARS "Booting will continue in 30 seconds but many things will be broken"]]}) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 30]}) ) ) (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS start]}], [{[LIT_CHARS stop]}], [{[LIT_CHARS restart]}], [{[LIT_CHARS reload]}, {[LIT_CHARS force-reload]}], [{[LIT_CHARS status]}], [{[LIT_OTHER "*"]}]] (List (If (Com {[LIT_CHARS init_is_upstart]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (If (Com {[LIT_CHARS mountpoint]} {[LIT_CHARS -q]} {[LIT_CHARS /dev/]}) (= scope= flags=0 words=[] bindings=[('TMPFS_MOUNTED', {[LIT_CHARS 1]})]) (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS /dev/.udev/]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS log_warning_msg]} {[DQ [LIT_CHARS ".udev/ already exists on the static /dev"]]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS /dev/.udev/]]} {[LIT_CHARS -a]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS /run/udev/]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS warn_if_interactive]}) ) (Com {[LIT_CHARS echo]} < (FilenameRedirectNode filename={[LIT_CHARS /sys/kernel/uevent_helper]} "> 1), > ) (Com {[LIT_CHARS move_udev_database]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub TMPFS_MOUNTED]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS unmount_devpts]}) (Com {[LIT_CHARS mount_devtmpfs]}) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[LIT_CHARS /proc/1]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS mount]} {[LIT_CHARS -n]} {[LIT_CHARS /proc]}) ) ) ) (Com {[LIT_CHARS udevadm]} {[LIT_CHARS info]} {[LIT_CHARS --cleanup-db]}) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -x]} {[LIT_CHARS /sbin/restorecon]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS /sbin/restorecon]} {[LIT_CHARS -R]} {[LIT_CHARS /dev]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS /lib/udev/create_static_nodes]}) (Com {[LIT_CHARS true]}) ) (Com {[LIT_CHARS log_daemon_msg]} {[DQ [LIT_CHARS "Starting the hotplug events dispatcher"]]} {[DQ [LIT_CHARS udevd]]}) (If (Com {[LIT_CHARS udevd]} {[LIT_CHARS --daemon]}) (Com {[LIT_CHARS log_end_msg]} {[VarSub ?]}) (ElseTrue) (List (Com {[LIT_CHARS log_warning_msg]} {[VarSub ?]}) (Com {[LIT_CHARS log_warning_msg]} {[DQ [LIT_CHARS "Waiting 15 seconds and trying to continue anyway"]]}) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 15]}) ) ) (Com {[LIT_CHARS log_action_begin_msg]} {[DQ [LIT_CHARS "Synthesizing the initial hotplug events"]]}) (If (Com {[LIT_CHARS udevadm]} {[LIT_CHARS trigger]} {[LIT_CHARS --action] [LIT_OTHER "="] [LIT_CHARS add]}) (Com {[LIT_CHARS log_action_end_msg]} {[VarSub ?]}) (ElseTrue) (Com {[LIT_CHARS log_action_end_msg]} {[VarSub ?]}) ) (Com {[LIT_CHARS create_dev_makedev]}) (Com {[LIT_CHARS log_action_begin_msg]} {[DQ [LIT_CHARS "Waiting for /dev to be fully populated"]]}) (If (Com {[LIT_CHARS udevadm]} {[LIT_CHARS settle]}) (Com {[LIT_CHARS log_action_end_msg]} {[LIT_CHARS 0]}) (ElseTrue) (Com {[LIT_CHARS log_action_end_msg]} {[LIT_CHARS 0]} {[SQ ]}) ) ) (List (Com {[LIT_CHARS log_daemon_msg]} {[DQ [LIT_CHARS "Stopping the hotplug events dispatcher"]]} {[DQ [LIT_CHARS udevd]]}) (If (Com {[LIT_CHARS start-stop-daemon]} {[LIT_CHARS --stop]} {[LIT_CHARS --name]} {[LIT_CHARS udevd]} {[LIT_CHARS --user]} {[LIT_CHARS root]} {[LIT_CHARS --quiet]} {[LIT_CHARS --oknodo]} {[LIT_CHARS --retry]} {[LIT_CHARS 5]}) (Com {[LIT_CHARS log_end_msg]} {[VarSub ?]}) (ElseTrue) (Com {[LIT_CHARS log_end_msg]} {[VarSub ?]}) ) ) (List (If (Com {[LIT_CHARS init_is_upstart]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (Com {[LIT_CHARS log_daemon_msg]} {[DQ [LIT_CHARS "Stopping the hotplug events dispatcher"]]} {[DQ [LIT_CHARS udevd]]}) (If (Com {[LIT_CHARS start-stop-daemon]} {[LIT_CHARS --stop]} {[LIT_CHARS --name]} {[LIT_CHARS udevd]} {[LIT_CHARS --user]} {[LIT_CHARS root]} {[LIT_CHARS --quiet]} {[LIT_CHARS --oknodo]} {[LIT_CHARS --retry]} {[LIT_CHARS 5]}) (Com {[LIT_CHARS log_end_msg]} {[VarSub ?]}) (ElseTrue) (AndOr OP_OR_IF (Com {[LIT_CHARS log_end_msg]} {[VarSub ?]}) (Com {[LIT_CHARS true]}) ) ) (Com {[LIT_CHARS log_daemon_msg]} {[DQ [LIT_CHARS "Starting the hotplug events dispatcher"]]} {[DQ [LIT_CHARS udevd]]}) (If (Com {[LIT_CHARS udevd]} {[LIT_CHARS --daemon]}) (Com {[LIT_CHARS log_end_msg]} {[VarSub ?]}) (ElseTrue) (Com {[LIT_CHARS log_end_msg]} {[VarSub ?]}) ) ) (Com {[LIT_CHARS udevadm]} {[LIT_CHARS control]} {[LIT_CHARS --reload-rules]}) (AndOr OP_AND_IF (Com {[LIT_CHARS status_of_proc]} {[LIT_CHARS /sbin/udevd]} {[LIT_CHARS udevd]}) (AndOr OP_OR_IF (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS exit]} {[VarSub ?]}) ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload|status}"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) )