Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

62 rader
1.5 KiB

  1. #ifndef PLSR_PERSISTENCE_H
  2. #define PLSR_PERSISTENCE_H
  3. #include "plsr_address_map.h"
  4. #include <stdint.h>
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct
  9. {
  10. int32_t runtime[PLSR_HSD_RUNTIME_COUNT];
  11. int32_t config[PLSR_HSD_CONFIG_COUNT];
  12. } PLSR_HSD_DATA;
  13. typedef struct
  14. {
  15. int32_t config[PLSR_SFD_CONFIG_COUNT];
  16. } PLSR_SFD_DATA;
  17. typedef enum
  18. {
  19. PLSR_PERSISTENCE_OK = 0,
  20. PLSR_PERSISTENCE_DEFAULTED,
  21. PLSR_PERSISTENCE_INVALID_ARGUMENT,
  22. PLSR_PERSISTENCE_VERIFY_FAILED,
  23. PLSR_PERSISTENCE_NOT_IMPLEMENTED,
  24. PLSR_PERSISTENCE_ERASE_FAILED,
  25. PLSR_PERSISTENCE_PROGRAM_FAILED
  26. } PLSR_PERSISTENCE_RESULT;
  27. PLSR_PERSISTENCE_RESULT PlsrPersistenceLoadHsd(PLSR_HSD_DATA *data);
  28. PLSR_PERSISTENCE_RESULT PlsrPersistenceSaveHsd(const PLSR_HSD_DATA *data);
  29. void PlsrPersistenceResetHsd(void);
  30. PLSR_PERSISTENCE_RESULT PlsrPersistenceLoadSfd(PLSR_SFD_DATA *data);
  31. PLSR_PERSISTENCE_RESULT PlsrPersistenceSaveSfd(const PLSR_SFD_DATA *data);
  32. PLSR_PERSISTENCE_RESULT PlsrPersistenceEraseSfd(void);
  33. #ifdef PLSR_HOST_TEST
  34. typedef enum
  35. {
  36. PLSR_TEST_SFD_FAULT_NONE = 0,
  37. PLSR_TEST_SFD_FAULT_ERASE,
  38. PLSR_TEST_SFD_FAULT_PROGRAM,
  39. PLSR_TEST_SFD_FAULT_VERIFY,
  40. PLSR_TEST_SFD_FAULT_BEFORE_COMMIT
  41. } PLSR_TEST_SFD_FAULT;
  42. void PlsrPersistenceTestResetStorage(void);
  43. void PlsrPersistenceTestCorruptNewestHsd(void);
  44. void PlsrPersistenceTestCorruptNewestSfd(void);
  45. void PlsrPersistenceTestSetSfdFault(PLSR_TEST_SFD_FAULT fault);
  46. #endif
  47. #ifdef __cplusplus
  48. }
  49. #endif
  50. #endif /* PLSR_PERSISTENCE_H */