diff -urN busybox-dist/include/applets.h busybox/include/applets.h --- busybox-dist/include/applets.h 2004-03-16 09:56:27.000000000 -0600 +++ busybox/include/applets.h 2004-03-16 10:00:14.000000000 -0600 @@ -484,6 +484,9 @@ #ifdef CONFIG_RESET APPLET(reset, reset_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) #endif +#ifdef CONFIG_RESETMON + APPLET(resetmon, resetmon_main, _BB_DIR_SBIN, _BB_SUID_NEVER) +#endif #ifdef CONFIG_RM APPLET(rm, rm_main, _BB_DIR_BIN, _BB_SUID_NEVER) #endif diff -urN busybox-dist/include/usage.h busybox/include/usage.h --- busybox-dist/include/usage.h 2004-03-16 09:56:27.000000000 -0600 +++ busybox/include/usage.h 2004-03-16 10:00:14.000000000 -0600 @@ -2024,6 +2024,11 @@ #define reset_full_usage \ "Resets the screen." +#define resetmon_trivial_usage \ + "" +#define resetmon_full_usage \ + "Return an exit code of TRUE (0) if reset is NOT pressed." + #define rm_trivial_usage \ "[OPTION]... FILE..." #define rm_full_usage \ diff -urN busybox-dist/miscutils/Config.in busybox/miscutils/Config.in --- busybox-dist/miscutils/Config.in 2004-03-15 02:28:46.000000000 -0600 +++ busybox/miscutils/Config.in 2004-03-16 10:00:14.000000000 -0600 @@ -156,6 +156,12 @@ to advance or rewind a tape past a specified number of archive files on the tape. +config CONFIG_RESETMON + bool "resetmon" + default y + help + Linksys wrt54g reset button monitor. Returns TRUE if NOT pressed. + config CONFIG_RX bool "rx" default n diff -urN busybox-dist/miscutils/Makefile.in busybox/miscutils/Makefile.in --- busybox-dist/miscutils/Makefile.in 2004-03-15 02:28:46.000000000 -0600 +++ busybox/miscutils/Makefile.in 2004-03-16 10:00:14.000000000 -0600 @@ -33,6 +33,7 @@ MISCUTILS-$(CONFIG_LAST) += last.o MISCUTILS-$(CONFIG_MAKEDEVS) += makedevs.o MISCUTILS-$(CONFIG_MT) += mt.o +MISCUTILS-$(CONFIG_RESETMON) += resetmon.o MISCUTILS-$(CONFIG_RX) += rx.o MISCUTILS-$(CONFIG_STRINGS) += strings.o MISCUTILS-$(CONFIG_TIME) += time.o diff -urN busybox-dist/miscutils/resetmon.c busybox/miscutils/resetmon.c --- busybox-dist/miscutils/resetmon.c 1969-12-31 18:00:00.000000000 -0600 +++ busybox/miscutils/resetmon.c 2004-03-16 10:00:14.000000000 -0600 @@ -0,0 +1,30 @@ +#include +#include +#include "busybox.h" + +#define RESET (1<<6) + +int resetmon_main(int argc, char **argv) { + int fd = -1; + unsigned int val=0; + +#if 0 + if ((fd = open("/dev/gpio/control",O_RDWR))<0) goto error; + read(fd,&val,4); + val|=RESET; + write(fd,&val,4); + + if ((fd = open("/dev/gpio/outen",O_RDWR))<0) goto error; + read(fd,&val,4); + val&=~RESET; + write(fd,&val,4); +#endif + + if ((fd = open("/dev/gpio/in",O_RDONLY))<0) goto error; + read(fd,&val,4); + + return !(val&RESET); + +error: + return 1; +}