furi-hal-bootloader.h 888 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * @file furi-hal-bootloader.h
  3. * Bootloader HAL API
  4. */
  5. #pragma once
  6. #include <stdint.h>
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. /** Boot modes */
  11. typedef enum {
  12. FuriHalBootloaderModeNormal,
  13. FuriHalBootloaderModeDFU
  14. } FuriHalBootloaderMode;
  15. /** Boot flags */
  16. typedef enum {
  17. FuriHalBootloaderFlagDefault=0,
  18. FuriHalBootloaderFlagFactoryReset=1,
  19. } FuriHalBootloaderFlag;
  20. /** Initialize boot subsystem
  21. */
  22. void furi_hal_bootloader_init();
  23. /** Set bootloader mode
  24. *
  25. * @param[in] mode FuriHalBootloaderMode
  26. */
  27. void furi_hal_bootloader_set_mode(FuriHalBootloaderMode mode);
  28. /** Set bootloader flags
  29. *
  30. * @param[in] flags FuriHalBootloaderFlag
  31. */
  32. void furi_hal_bootloader_set_flags(FuriHalBootloaderFlag flags);
  33. /** Get boot flag
  34. *
  35. * @return FuriHalBootloaderFlag
  36. */
  37. FuriHalBootloaderFlag furi_hal_bootloader_get_flags();
  38. #ifdef __cplusplus
  39. }
  40. #endif