WDIOC_SETTIMEOUT for 2.5.2
PATCH 1/1 WDIOC_SETTIMEOUT for 2.5.2
Folks,
Here's the WDIOC_SETTIMEOUT patch against 2.5.2.
Joel
drivers/char/advantechwdt.c +17 -2
@@ -64,6 +64,7 @@#define WDT_START 0x443#define WD_TIMO 60/* 1 minute */ +static int wd_margin =WD_TIMO ;/* * Kernel methods.
@@ -73,7 +74,7 @@advwdt_ping (void) {/* Write a watchdog value */ -outb_p (WD_TIMO ,WDT_START ); +outb_p (wd_margin,WDT_START ); } static ssize_t
@@ -100,8 +101,9 @@ advwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { + int new_margin;static struct watchdog_info ident = { -WDIOF_KEEPALIVEPING ,1 ,"Advantech WDT" +WDIOF_KEEPALIVEPING |WDIOF_SETTIMEOUT ,1 ,"Advantech WDT" };switch (cmd) {
@@ -117,6 +119,19 @@case WDIOC_KEEPALIVE :advwdt_ping (); +break ; + +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +if ((new_margin <1 ) || (new_margin >63 )) +return -EINVAL ; + wd_margin = new_margin; +advwdt_ping (); +/* Fall */ + +case WDIOC_GETTIMEOUT : +return put_user (wd_margin, (int *)arg);break ;default :
drivers/char/eurotechwdt.c +5 -2
@@ -233,7 +233,7 @@ unsigned int cmd, unsigned long arg) {static struct watchdog_info ident = { - options :WDIOF_CARDRESET , + options :WDIOF_CARDRESET |WDIOF_SETTIMEOUT , firmware_version :1 , identity :"WDT Eurotech CPU-1220/1410" };
@@ -265,7 +265,10 @@ eurwdt_timeout = time;eurwdt_set_timeout (time); -return 0 ; +/* Fall */ + +case WDIOC_GETTIMEOUT : +return put_user (eurwdt_timeout, (int *)arg); } }
drivers/char/i810-tco.c +17 -2
@@ -181,7 +181,7 @@/* * Shut off the timer. */ -#ifdef CONFIG_WATCHDOG_NOWAYOUT +#ifndef CONFIG_WATCHDOG_NOWAYOUT tco_timer_stop (); timer_alive =0 ;#endif
@@ -208,8 +208,10 @@static int i810tco_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) { +int new_margin, u_margin; +static struct watchdog_info ident = { -0 , +WDIOF_SETTIMEOUT |WDIOF_KEEPALIVEPING ,0 ,"i810 TCO timer" };
@@ -229,6 +231,19 @@case WDIOC_KEEPALIVE :tco_timer_reload ();return 0 ; +case WDIOC_SETTIMEOUT : +if (get_user (u_margin, (int *) arg)) +return -EFAULT ; + new_margin = (u_margin *10 +5 ) /6 ; +if ((new_margin <3 ) || (new_margin >63 )) +return -EINVAL ; +if (tco_timer_settimer ((unsigned char )new_margin)) +return -EINVAL ; + i810_margin = new_margin; +tco_timer_reload (); +/* Fall */ +case WDIOC_GETTIMEOUT : +return put_user ((int )(i810_margin *6 /10 ), (int *) arg); } }
drivers/char/ib700wdt.c +45 -4
91 lines not on this page · raw message
drivers/char/ib700wdt.c~ +272 -0
272 lines not on this page · raw message
drivers/char/softdog.c +33 -8
74 lines not on this page · raw message
drivers/char/softdog.c~ +184 -0
184 lines not on this page · raw message
drivers/char/wdt.c +21 -3
@@ -27,6 +27,7 @@* Tim Hockin : Added insmod parameters, comment cleanup * Parameterized timeout * Tigran Aivazian : Restructured wdt_init() to handle failures +* Joel Becker : Added WDIOC_GET/SETTIMEOUT */ #include <linux/config.h>
@@ -60,8 +61,11 @@static int io=0x240 ;static int irq=11 ; +/* Default margin */ #define WD_TIMO (100*60)/* 1 minute */ +static int wd_margin =WD_TIMO ; +#ifndef MODULE /**
@@ -216,7 +220,7 @@/* Write a watchdog value */ inb_p (WDT_DC );wdt_ctr_mode (1 ,2 ); -wdt_ctr_load (1 ,WD_TIMO );/* Timeout */ +wdt_ctr_load (1 ,wd_margin);/* Timeout */ outb_p (0 ,WDT_DC ); }
@@ -294,10 +298,13 @@static int wdt_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) { +int new_margin; +static struct watchdog_info ident= {WDIOF_OVERHEAT |WDIOF_POWERUNDER |WDIOF_POWEROVER - |WDIOF_EXTERN1 |WDIOF_EXTERN2 |WDIOF_FANFAULT , + |WDIOF_EXTERN1 |WDIOF_EXTERN2 |WDIOF_FANFAULT + |WDIOF_SETTIMEOUT ,1 ,"WDT500/501" };
@@ -317,6 +324,17 @@case WDIOC_KEEPALIVE :wdt_ping ();return 0 ; +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +/* Arbitrary, can't find the card's limits */ +if ((new_margin <0 ) || (new_margin >60 )) +return -EINVAL ; + wd_margin = new_margin *100 ; +wdt_ping (); +/* Fall */ +case WDIOC_GETTIMEOUT : +return put_user (wd_margin /100 , (int *)arg); } }
@@ -348,7 +366,7 @@wdt_ctr_mode (1 ,2 );wdt_ctr_mode (2 ,0 );wdt_ctr_load (0 ,8948 );/* count at 100Hz */ -wdt_ctr_load (1 ,WD_TIMO );/* Timeout 120 seconds */ +wdt_ctr_load (1 ,wd_margin);/* Timeout 120 seconds */ wdt_ctr_load (2 ,65535 );outb_p (0 ,WDT_DC );/* Enable */ return 0 ;
drivers/char/wdt.c~ +541 -0
541 lines not on this page · raw message
drivers/char/wdt285.c +13 -2
@@ -124,10 +124,10 @@static int watchdog_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) { -int i; +int i, new_margin;static struct watchdog_info ident= { -0 , +WDIOF_SETTIMEOUT ,0 ,"Footbridge Watchdog" };
@@ -147,6 +147,17 @@case WDIOC_KEEPALIVE :watchdog_ping ();return 0 ; +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +/* Arbitrary, can't find the card's limits */ +if ((new_marg <0 ) || (new_margin >60 )) +return -EINVAL ; + soft_margin = new_margin; +watchdog_ping (); +/* Fall */ +case WDIOC_GETTIMEOUT : +return put_user (soft_margin, (int *)arg); } }
drivers/char/wdt285.c~ +197 -0
197 lines not on this page · raw message
drivers/char/wdt_pci.c +20 -3
@@ -30,6 +30,7 @@* Alan Cox : Split ISA and PCI cards into two drivers * Jeff Garzik : PCI cleanups * Tigran Aivazian : Restructured wdtpci_init_one() to handle failures +* Joel Becker : Added WDIOC_GET/SETTIMEOUT */ #include <linux/config.h>
@@ -81,8 +82,11 @@static int io=0x240 ;static int irq=11 ; +/* Default timeout */ #define WD_TIMO (100*60)/* 1 minute */ +static int wd_margin =WD_TIMO ; +#ifndef MODULE /**
@@ -232,7 +236,7 @@/* Write a watchdog value */ inb_p (WDT_DC );wdtpci_ctr_mode (1 ,2 ); -wdtpci_ctr_load (1 ,WD_TIMO );/* Timeout */ +wdtpci_ctr_load (1 ,wd_margin);/* Timeout */ outb_p (0 ,WDT_DC ); }
@@ -310,10 +314,12 @@static int wdtpci_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) { +int new_margin;static struct watchdog_info ident= {WDIOF_OVERHEAT |WDIOF_POWERUNDER |WDIOF_POWEROVER - |WDIOF_EXTERN1 |WDIOF_EXTERN2 |WDIOF_FANFAULT , + |WDIOF_EXTERN1 |WDIOF_EXTERN2 |WDIOF_FANFAULT + |WDIOF_SETTIMEOUT ,1 ,"WDT500/501PCI" };
@@ -333,6 +339,17 @@case WDIOC_KEEPALIVE :wdtpci_ping ();return 0 ; +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +/* Arbitrary, can't find the card's limits */ +if ((new_margin <0 ) || (new_margin >60 )) +return -EINVAL ; + wd_margin = new_margin *100 ; +wdtpci_ping (); +/* Fall */ +case WDIOC_GETTIMEOUT : +return put_user (wd_margin, (int *)arg); } }
@@ -385,7 +402,7 @@wdtpci_ctr_mode (1 ,2 );wdtpci_ctr_mode (2 ,1 );wdtpci_ctr_load (0 ,20833 );/* count at 100Hz */ -wdtpci_ctr_load (1 ,WD_TIMO );/* Timeout 60 seconds */ +wdtpci_ctr_load (1 ,wd_margin);/* Timeout 60 seconds */ /* DO NOT LOAD CTR2 on PCI card! -- JPN */ outb_p (0 ,WDT_DC );/* Enable */ return 0 ;
drivers/sbus/char/riowatchdog.c +15 -1
@@ -127,7 +127,9 @@static int riowd_ioctl (struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg) { -static struct watchdog_info info = {0 ,0 ,"Natl. Semiconductor PC97317" }; +static struct watchdog_info info = { +WDIOF_SETTIMEOUT ,0 ,"Natl. Semiconductor PC97317" + };unsigned int options;switch (cmd) {
@@ -158,6 +160,18 @@return -EINVAL ;break ; + +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +if ((new_margin <60 ) || (new_margin > (255 *60 ))) +return -EINVAL ; + riowd_timeout = (new_margin +59 ) /60 ; +riowd_pingtimer (); +/* Fall */ + +case WDIOC_GETTIMEOUT : +return put_user (riowd_timeout *60 , (int *)arg);default :return -EINVAL ;
include/linux/watchdog.h +3 -1
@@ -25,7 +25,8 @@#define WDIOC_GETTEMP _IOR(WATCHDOG_IOCTL_BASE, 3, int)#define WDIOC_SETOPTIONS _IOR(WATCHDOG_IOCTL_BASE, 4, int)#define WDIOC_KEEPALIVE _IOR(WATCHDOG_IOCTL_BASE, 5, int) -#define WDIOC_SETTIMEOUT _IOW(WATCHDOG_IOCTL_BASE, 6, int) +#define WDIOC_SETTIMEOUT _IOWR(WATCHDOG_IOCTL_BASE, 6, int) +#define WDIOC_GETTIMEOUT _IOR(WATCHDOG_IOCTL_BASE, 7, int)#define WDIOF_UNKNOWN -1/* Unknown flag error */ #define WDIOS_UNKNOWN -1/* Unknown status error */
@@ -37,6 +38,7 @@#define WDIOF_POWERUNDER 0x0010/* Power bad/power fault */ #define WDIOF_CARDRESET 0x0020/* Card previously reset the CPU */ #define WDIOF_POWEROVER 0x0040/* Power over voltage */ +#define WDIOF_SETTIMEOUT 0x0080/* Set timeout (in seconds) */ #define WDIOF_KEEPALIVEPING 0x8000/* Keep alive ping reply */ #define WDIOS_DISABLECARD 0x0001/* Turn off the watchdog timer */
Signature · 6 lines
"Can any of you seriously say the Bill of Rights could get through Congress today? It wouldn't even get out of committee." - F. Lee Bailey http://www.jlbec.org/ [email protected]
Quoted 2 lines · Joel Becker
Folks,
Here's theWDIOC_SETTIMEOUTpatch against 2.5.2.
You've got some backup files in this patch that you might like to get rid of:
Quoted 4 lines
diff -uNr linux-2.5.2/drivers/char/ib700wdt.c~ linux-2.5.2-wd/drivers/char/ib700wdt.c~ diff -uNr linux-2.5.2/drivers/char/softdog.c~ linux-2.5.2-wd/drivers/char/softdog.c~ diff -uNr linux-2.5.2/drivers/char/wdt.c~ linux-2.5.2-wd/drivers/char/wdt.c~ diff -uNr linux-2.5.2/drivers/char/wdt285.c~ linux-2.5.2-wd/drivers/char/wdt285.c~
Signature · 2 lines
Russell King ([email protected]) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html
Re: [PATCH] WDIOC_SETTIMEOUT for 2.5.2 (take 2)
In reply to Joel BeckerQuoted 6 lines · Russell King
Quoted 2 lines · Joel Becker
Folks,
Here's theWDIOC_SETTIMEOUTpatch against 2.5.2.You've got some backup files in this patch that you might like to get rid of:
Ouch! Sorry 'bout that! Thanks for letting me know.
Joel
drivers/char/advantechwdt.c +17 -2
@@ -64,6 +64,7 @@#define WDT_START 0x443#define WD_TIMO 60/* 1 minute */ +static int wd_margin =WD_TIMO ;/* * Kernel methods.
@@ -73,7 +74,7 @@advwdt_ping (void) {/* Write a watchdog value */ -outb_p (WD_TIMO ,WDT_START ); +outb_p (wd_margin,WDT_START ); } static ssize_t
@@ -100,8 +101,9 @@ advwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { + int new_margin;static struct watchdog_info ident = { -WDIOF_KEEPALIVEPING ,1 ,"Advantech WDT" +WDIOF_KEEPALIVEPING |WDIOF_SETTIMEOUT ,1 ,"Advantech WDT" };switch (cmd) {
@@ -117,6 +119,19 @@case WDIOC_KEEPALIVE :advwdt_ping (); +break ; + +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +if ((new_margin <1 ) || (new_margin >63 )) +return -EINVAL ; + wd_margin = new_margin; +advwdt_ping (); +/* Fall */ + +case WDIOC_GETTIMEOUT : +return put_user (wd_margin, (int *)arg);break ;default :
drivers/char/eurotechwdt.c +5 -2
@@ -233,7 +233,7 @@ unsigned int cmd, unsigned long arg) {static struct watchdog_info ident = { - options :WDIOF_CARDRESET , + options :WDIOF_CARDRESET |WDIOF_SETTIMEOUT , firmware_version :1 , identity :"WDT Eurotech CPU-1220/1410" };
@@ -265,7 +265,10 @@ eurwdt_timeout = time;eurwdt_set_timeout (time); -return 0 ; +/* Fall */ + +case WDIOC_GETTIMEOUT : +return put_user (eurwdt_timeout, (int *)arg); } }
drivers/char/i810-tco.c +17 -2
@@ -181,7 +181,7 @@/* * Shut off the timer. */ -#ifdef CONFIG_WATCHDOG_NOWAYOUT +#ifndef CONFIG_WATCHDOG_NOWAYOUT tco_timer_stop (); timer_alive =0 ;#endif
@@ -208,8 +208,10 @@static int i810tco_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) { +int new_margin, u_margin; +static struct watchdog_info ident = { -0 , +WDIOF_SETTIMEOUT |WDIOF_KEEPALIVEPING ,0 ,"i810 TCO timer" };
@@ -229,6 +231,19 @@case WDIOC_KEEPALIVE :tco_timer_reload ();return 0 ; +case WDIOC_SETTIMEOUT : +if (get_user (u_margin, (int *) arg)) +return -EFAULT ; + new_margin = (u_margin *10 +5 ) /6 ; +if ((new_margin <3 ) || (new_margin >63 )) +return -EINVAL ; +if (tco_timer_settimer ((unsigned char )new_margin)) +return -EINVAL ; + i810_margin = new_margin; +tco_timer_reload (); +/* Fall */ +case WDIOC_GETTIMEOUT : +return put_user ((int )(i810_margin *6 /10 ), (int *) arg); } }
drivers/char/ib700wdt.c +45 -4
91 lines not on this page · raw message
drivers/char/softdog.c +33 -8
74 lines not on this page · raw message
drivers/char/wdt.c +21 -3
@@ -27,6 +27,7 @@* Tim Hockin : Added insmod parameters, comment cleanup * Parameterized timeout * Tigran Aivazian : Restructured wdt_init() to handle failures +* Joel Becker : Added WDIOC_GET/SETTIMEOUT */ #include <linux/config.h>
@@ -60,8 +61,11 @@static int io=0x240 ;static int irq=11 ; +/* Default margin */ #define WD_TIMO (100*60)/* 1 minute */ +static int wd_margin =WD_TIMO ; +#ifndef MODULE /**
@@ -216,7 +220,7 @@/* Write a watchdog value */ inb_p (WDT_DC );wdt_ctr_mode (1 ,2 ); -wdt_ctr_load (1 ,WD_TIMO );/* Timeout */ +wdt_ctr_load (1 ,wd_margin);/* Timeout */ outb_p (0 ,WDT_DC ); }
@@ -294,10 +298,13 @@static int wdt_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) { +int new_margin; +static struct watchdog_info ident= {WDIOF_OVERHEAT |WDIOF_POWERUNDER |WDIOF_POWEROVER - |WDIOF_EXTERN1 |WDIOF_EXTERN2 |WDIOF_FANFAULT , + |WDIOF_EXTERN1 |WDIOF_EXTERN2 |WDIOF_FANFAULT + |WDIOF_SETTIMEOUT ,1 ,"WDT500/501" };
@@ -317,6 +324,17 @@case WDIOC_KEEPALIVE :wdt_ping ();return 0 ; +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +/* Arbitrary, can't find the card's limits */ +if ((new_margin <0 ) || (new_margin >60 )) +return -EINVAL ; + wd_margin = new_margin *100 ; +wdt_ping (); +/* Fall */ +case WDIOC_GETTIMEOUT : +return put_user (wd_margin /100 , (int *)arg); } }
@@ -348,7 +366,7 @@wdt_ctr_mode (1 ,2 );wdt_ctr_mode (2 ,0 );wdt_ctr_load (0 ,8948 );/* count at 100Hz */ -wdt_ctr_load (1 ,WD_TIMO );/* Timeout 120 seconds */ +wdt_ctr_load (1 ,wd_margin);/* Timeout 120 seconds */ wdt_ctr_load (2 ,65535 );outb_p (0 ,WDT_DC );/* Enable */ return 0 ;
drivers/char/wdt285.c +13 -2
@@ -124,10 +124,10 @@static int watchdog_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) { -int i; +int i, new_margin;static struct watchdog_info ident= { -0 , +WDIOF_SETTIMEOUT ,0 ,"Footbridge Watchdog" };
@@ -147,6 +147,17 @@case WDIOC_KEEPALIVE :watchdog_ping ();return 0 ; +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +/* Arbitrary, can't find the card's limits */ +if ((new_marg <0 ) || (new_margin >60 )) +return -EINVAL ; + soft_margin = new_margin; +watchdog_ping (); +/* Fall */ +case WDIOC_GETTIMEOUT : +return put_user (soft_margin, (int *)arg); } }
drivers/char/wdt_pci.c +20 -3
@@ -30,6 +30,7 @@* Alan Cox : Split ISA and PCI cards into two drivers * Jeff Garzik : PCI cleanups * Tigran Aivazian : Restructured wdtpci_init_one() to handle failures +* Joel Becker : Added WDIOC_GET/SETTIMEOUT */ #include <linux/config.h>
@@ -81,8 +82,11 @@static int io=0x240 ;static int irq=11 ; +/* Default timeout */ #define WD_TIMO (100*60)/* 1 minute */ +static int wd_margin =WD_TIMO ; +#ifndef MODULE /**
@@ -232,7 +236,7 @@/* Write a watchdog value */ inb_p (WDT_DC );wdtpci_ctr_mode (1 ,2 ); -wdtpci_ctr_load (1 ,WD_TIMO );/* Timeout */ +wdtpci_ctr_load (1 ,wd_margin);/* Timeout */ outb_p (0 ,WDT_DC ); }
@@ -310,10 +314,12 @@static int wdtpci_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) { +int new_margin;static struct watchdog_info ident= {WDIOF_OVERHEAT |WDIOF_POWERUNDER |WDIOF_POWEROVER - |WDIOF_EXTERN1 |WDIOF_EXTERN2 |WDIOF_FANFAULT , + |WDIOF_EXTERN1 |WDIOF_EXTERN2 |WDIOF_FANFAULT + |WDIOF_SETTIMEOUT ,1 ,"WDT500/501PCI" };
@@ -333,6 +339,17 @@case WDIOC_KEEPALIVE :wdtpci_ping ();return 0 ; +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +/* Arbitrary, can't find the card's limits */ +if ((new_margin <0 ) || (new_margin >60 )) +return -EINVAL ; + wd_margin = new_margin *100 ; +wdtpci_ping (); +/* Fall */ +case WDIOC_GETTIMEOUT : +return put_user (wd_margin, (int *)arg); } }
@@ -385,7 +402,7 @@wdtpci_ctr_mode (1 ,2 );wdtpci_ctr_mode (2 ,1 );wdtpci_ctr_load (0 ,20833 );/* count at 100Hz */ -wdtpci_ctr_load (1 ,WD_TIMO );/* Timeout 60 seconds */ +wdtpci_ctr_load (1 ,wd_margin);/* Timeout 60 seconds */ /* DO NOT LOAD CTR2 on PCI card! -- JPN */ outb_p (0 ,WDT_DC );/* Enable */ return 0 ;
drivers/sbus/char/riowatchdog.c +15 -1
@@ -127,7 +127,9 @@static int riowd_ioctl (struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg) { -static struct watchdog_info info = {0 ,0 ,"Natl. Semiconductor PC97317" }; +static struct watchdog_info info = { +WDIOF_SETTIMEOUT ,0 ,"Natl. Semiconductor PC97317" + };unsigned int options;switch (cmd) {
@@ -158,6 +160,18 @@return -EINVAL ;break ; + +case WDIOC_SETTIMEOUT : +if (get_user (new_margin, (int *)arg)) +return -EFAULT ; +if ((new_margin <60 ) || (new_margin > (255 *60 ))) +return -EINVAL ; + riowd_timeout = (new_margin +59 ) /60 ; +riowd_pingtimer (); +/* Fall */ + +case WDIOC_GETTIMEOUT : +return put_user (riowd_timeout *60 , (int *)arg);default :return -EINVAL ;
include/linux/watchdog.h +3 -1
@@ -25,7 +25,8 @@#define WDIOC_GETTEMP _IOR(WATCHDOG_IOCTL_BASE, 3, int)#define WDIOC_SETOPTIONS _IOR(WATCHDOG_IOCTL_BASE, 4, int)#define WDIOC_KEEPALIVE _IOR(WATCHDOG_IOCTL_BASE, 5, int) -#define WDIOC_SETTIMEOUT _IOW(WATCHDOG_IOCTL_BASE, 6, int) +#define WDIOC_SETTIMEOUT _IOWR(WATCHDOG_IOCTL_BASE, 6, int) +#define WDIOC_GETTIMEOUT _IOR(WATCHDOG_IOCTL_BASE, 7, int)#define WDIOF_UNKNOWN -1/* Unknown flag error */ #define WDIOS_UNKNOWN -1/* Unknown status error */
@@ -37,6 +38,7 @@#define WDIOF_POWERUNDER 0x0010/* Power bad/power fault */ #define WDIOF_CARDRESET 0x0020/* Card previously reset the CPU */ #define WDIOF_POWEROVER 0x0040/* Power over voltage */ +#define WDIOF_SETTIMEOUT 0x0080/* Set timeout (in seconds) */ #define WDIOF_KEEPALIVEPING 0x8000/* Keep alive ping reply */ #define WDIOS_DISABLECARD 0x0001/* Turn off the watchdog timer */
Signature · 6 lines
Life's Little Instruction Book #3 "Watch a sunrise at least once a year." http://www.jlbec.org/ [email protected]