head 1.2; access; symbols netbsd-10-0-RELEASE:1.2 netbsd-10-0-RC6:1.2 netbsd-10-0-RC5:1.2 netbsd-10-0-RC4:1.2 netbsd-10-0-RC3:1.2 netbsd-10-0-RC2:1.2 netbsd-10-0-RC1:1.2 netbsd-10:1.2.0.2 netbsd-10-base:1.2 netbsd-9-3-RELEASE:1.1 cjep_sun2x-base1:1.1 cjep_sun2x:1.1.0.56 cjep_sun2x-base:1.1 cjep_staticlib_x-base1:1.1 netbsd-9-2-RELEASE:1.1 cjep_staticlib_x:1.1.0.54 cjep_staticlib_x-base:1.1 netbsd-9-1-RELEASE:1.1 phil-wifi-20200421:1.1 phil-wifi-20200411:1.1 is-mlppp:1.1.0.52 is-mlppp-base:1.1 phil-wifi-20200406:1.1 netbsd-8-2-RELEASE:1.1 netbsd-9-0-RELEASE:1.1 netbsd-9-0-RC2:1.1 netbsd-9-0-RC1:1.1 phil-wifi-20191119:1.1 netbsd-9:1.1.0.50 netbsd-9-base:1.1 phil-wifi-20190609:1.1 netbsd-8-1-RELEASE:1.1 netbsd-8-1-RC1:1.1 pgoyette-compat-merge-20190127:1.1 pgoyette-compat-20190127:1.1 pgoyette-compat-20190118:1.1 pgoyette-compat-1226:1.1 pgoyette-compat-1126:1.1 pgoyette-compat-1020:1.1 pgoyette-compat-0930:1.1 pgoyette-compat-0906:1.1 netbsd-7-2-RELEASE:1.1 pgoyette-compat-0728:1.1 netbsd-8-0-RELEASE:1.1 phil-wifi:1.1.0.48 phil-wifi-base:1.1 pgoyette-compat-0625:1.1 netbsd-8-0-RC2:1.1 pgoyette-compat-0521:1.1 pgoyette-compat-0502:1.1 pgoyette-compat-0422:1.1 netbsd-8-0-RC1:1.1 pgoyette-compat-0415:1.1 pgoyette-compat-0407:1.1 pgoyette-compat-0330:1.1 pgoyette-compat-0322:1.1 pgoyette-compat-0315:1.1 netbsd-7-1-2-RELEASE:1.1 pgoyette-compat:1.1.0.46 pgoyette-compat-base:1.1 netbsd-7-1-1-RELEASE:1.1 matt-nb8-mediatek:1.1.0.44 matt-nb8-mediatek-base:1.1 perseant-stdc-iso10646:1.1.0.42 perseant-stdc-iso10646-base:1.1 netbsd-8:1.1.0.40 netbsd-8-base:1.1 prg-localcount2-base3:1.1 prg-localcount2-base2:1.1 prg-localcount2-base1:1.1 prg-localcount2:1.1.0.38 prg-localcount2-base:1.1 pgoyette-localcount-20170426:1.1 bouyer-socketcan-base1:1.1 pgoyette-localcount-20170320:1.1 netbsd-7-1:1.1.0.36 netbsd-7-1-RELEASE:1.1 netbsd-7-1-RC2:1.1 netbsd-7-nhusb-base-20170116:1.1 bouyer-socketcan:1.1.0.34 bouyer-socketcan-base:1.1 pgoyette-localcount-20170107:1.1 netbsd-7-1-RC1:1.1 pgoyette-localcount-20161104:1.1 netbsd-7-0-2-RELEASE:1.1 localcount-20160914:1.1 netbsd-7-nhusb:1.1.0.32 netbsd-7-nhusb-base:1.1 pgoyette-localcount-20160806:1.1 pgoyette-localcount-20160726:1.1 pgoyette-localcount:1.1.0.30 pgoyette-localcount-base:1.1 netbsd-7-0-1-RELEASE:1.1 netbsd-7-0:1.1.0.28 netbsd-7-0-RELEASE:1.1 netbsd-7-0-RC3:1.1 netbsd-7-0-RC2:1.1 netbsd-7-0-RC1:1.1 netbsd-6-0-6-RELEASE:1.1 netbsd-6-1-5-RELEASE:1.1 netbsd-7:1.1.0.26 netbsd-7-base:1.1 yamt-pagecache-base9:1.1 yamt-pagecache-tag8:1.1 netbsd-6-1-4-RELEASE:1.1 netbsd-6-0-5-RELEASE:1.1 tls-earlyentropy:1.1.0.24 tls-earlyentropy-base:1.1 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1 riastradh-drm2-base3:1.1 netbsd-6-1-3-RELEASE:1.1 netbsd-6-0-4-RELEASE:1.1 netbsd-6-1-2-RELEASE:1.1 netbsd-6-0-3-RELEASE:1.1 netbsd-6-1-1-RELEASE:1.1 riastradh-drm2-base2:1.1 riastradh-drm2-base1:1.1 riastradh-drm2:1.1.0.16 riastradh-drm2-base:1.1 netbsd-6-1:1.1.0.22 netbsd-6-0-2-RELEASE:1.1 netbsd-6-1-RELEASE:1.1 khorben-n900:1.1.0.20 netbsd-6-1-RC4:1.1 netbsd-6-1-RC3:1.1 agc-symver:1.1.0.18 agc-symver-base:1.1 netbsd-6-1-RC2:1.1 netbsd-6-1-RC1:1.1 yamt-pagecache-base8:1.1 netbsd-6-0-1-RELEASE:1.1 yamt-pagecache-base7:1.1 matt-nb6-plus-nbase:1.1 yamt-pagecache-base6:1.1 netbsd-6-0:1.1.0.14 netbsd-6-0-RELEASE:1.1 netbsd-6-0-RC2:1.1 tls-maxphys:1.1.0.12 tls-maxphys-base:1.1 matt-nb6-plus:1.1.0.10 matt-nb6-plus-base:1.1 netbsd-6-0-RC1:1.1 yamt-pagecache-base5:1.1 yamt-pagecache-base4:1.1 netbsd-6:1.1.0.8 netbsd-6-base:1.1 yamt-pagecache-base3:1.1 yamt-pagecache-base2:1.1 yamt-pagecache:1.1.0.6 yamt-pagecache-base:1.1 cherry-xenmp:1.1.0.4 cherry-xenmp-base:1.1 bouyer-quota2-nbase:1.1 bouyer-quota2:1.1.0.2 bouyer-quota2-base:1.1 matt-mips64-premerge-20101231:1.1 matt-premerge-20091211:1.1; locks; strict; comment @# @; 1.2 date 2022.04.30.13.48.09; author brad; state Exp; branches; next 1.1; commitid lOUrBYptSynZeeCD; 1.1 date 2009.07.25.16.20.10; author mbalmer; state Exp; branches; next ; desc @@ 1.2 log @ Like /etc/rc.d/network, add the ability to put a '!' character as the first character in /etc/gpio.conf and have the rest evaluated in a shell. It is useful to be able to do actions after setting up gpio pins or attaching gpioiic(4). @ text @#!/bin/sh # # $NetBSD: gpio,v 1.1 2009/07/25 16:20:10 mbalmer Exp $ # # PROVIDE: gpio # BEFORE: securelevel $_rc_subr_loaded . /etc/rc.subr name="gpio" rcvar=$name start_cmd="gpio_start" stop_cmd=":" gpio_start() { if [ -f /etc/gpio.conf ]; then echo "Configuring GPIO." cat /etc/gpio.conf | collapse_backslash_newline | while read -r args; do case "$args" in "!"*) # Run arbitrary command in a subshell. ( eval "${args#*!}" ) ;; *) ( args=${args%%#*} # strip comments test -z "$args" && continue /usr/sbin/gpioctl -q $args ) ;; esac done fi } load_rc_config $name run_rc_command "$1" @ 1.1 log @Document recent gpio(4) changes and introduce a new config file for GPIO. Integrate with the startup scripts in /etc/rc.d. Introduce new variable "gpio" for /etc/rc.conf. @ text @d3 1 a3 1 # $NetBSD$ d21 1 d23 13 a35 3 args=${args%%#*} # strip comments test -z "$args" && continue /usr/sbin/gpioctl -q $args @