watchdog.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2012-09-12 heyuanjie87 first version.
  9. */
  10. #ifndef __WATCHDOG_H__
  11. #define __WATCHDOG_H__
  12. #include <rtthread.h>
  13. #define RT_DEVICE_CTRL_WDT_GET_TIMEOUT (1) /* get timeout(in seconds) */
  14. #define RT_DEVICE_CTRL_WDT_SET_TIMEOUT (2) /* set timeout(in seconds) */
  15. #define RT_DEVICE_CTRL_WDT_GET_TIMELEFT (3) /* get the left time before reboot(in seconds) */
  16. #define RT_DEVICE_CTRL_WDT_KEEPALIVE (4) /* refresh watchdog */
  17. #define RT_DEVICE_CTRL_WDT_START (5) /* start watchdog */
  18. #define RT_DEVICE_CTRL_WDT_STOP (6) /* stop watchdog */
  19. struct rt_watchdog_ops;
  20. struct rt_watchdog_device
  21. {
  22. struct rt_device parent;
  23. const struct rt_watchdog_ops *ops;
  24. };
  25. typedef struct rt_watchdog_device rt_watchdog_t;
  26. struct rt_watchdog_ops
  27. {
  28. rt_err_t (*init)(rt_watchdog_t *wdt);
  29. rt_err_t (*control)(rt_watchdog_t *wdt, int cmd, void *arg);
  30. };
  31. rt_err_t rt_hw_watchdog_register(rt_watchdog_t *wdt,
  32. const char *name,
  33. rt_uint32_t flag,
  34. void *data);
  35. #endif /* __WATCHDOG_H__ */