BeRTOS
|
00001 00043 #ifndef DRV_WDT_H 00044 #define DRV_WDT_H 00045 00046 #include "cfg/cfg_wdt.h" 00047 00048 #include <cfg/compiler.h> // INLINE 00049 00050 /* Configury sanity check */ 00051 #if !defined(CONFIG_WATCHDOG) || (CONFIG_WATCHDOG != 0 && CONFIG_WATCHDOG != 1) 00052 #error CONFIG_WATCHDOG must be defined to either 0 or 1 00053 #endif 00054 00055 #if OS_HOSTED 00056 #include <cpu/detect.h> 00057 #include <cfg/os.h> 00058 00059 #if OS_QT 00060 #include <QtGui/QApplication> 00061 #elif OS_POSIX 00062 #include <sys/select.h> 00063 #else 00064 #error unknown CPU 00065 #endif 00066 #elif CONFIG_WATCHDOG 00067 #include CPU_HEADER(wdt) 00068 #endif /* CONFIG_WATCHDOG */ 00069 00070 00071 #if OS_HOSTED || !CONFIG_WATCHDOG 00072 00076 INLINE void wdt_reset(void) 00077 { 00078 #if CONFIG_WATCHDOG 00079 #if OS_POSIX 00080 static struct timeval tv = { 0, 0 }; 00081 select(0, NULL, NULL, NULL, &tv); 00082 #endif 00083 #endif /* CONFIG_WATCHDOG */ 00084 } 00085 00093 INLINE void wdt_start(uint32_t timeout) 00094 { 00095 #if CONFIG_WATCHDOG 00096 #if OS_QT 00097 // Create a dummy QApplication object 00098 if (!qApp) 00099 { 00100 int argc; 00101 new QApplication(argc, (char **)NULL); 00102 } 00103 (void)timeout; 00104 #elif OS_POSIX 00105 (void)timeout; // NOP 00106 #endif 00107 #endif /* CONFIG_WATCHDOG */ 00108 (void)timeout; // NOP 00109 } 00110 00111 INLINE void wdt_stop(void) 00112 { 00113 #if CONFIG_WATCHDOG 00114 #if OS_QT 00115 // NOP 00116 #elif OS_POSIX 00117 // NOP 00118 #else 00119 #error unknown CPU 00120 #endif 00121 #endif /* CONFIG_WATCHDOG */ 00122 } 00123 #endif /* OS_HOSTED || !CONFIG_WATCHDOG */ 00124 00125 #endif /* DRV_WDT_H */