latch.h 446 B

12345678910111213141516171819202122
  1. #ifndef CX_ZIVUOS_LATCH_H_INCLUDED
  2. #define CX_ZIVUOS_LATCH_H_INCLUDED
  3. #include "zivu_types.h"
  4. typedef enum zv_latch_state_e {
  5. SAME,
  6. CHANGED
  7. } zv_latch_state_t;
  8. typedef union zv_latch_updater_u {
  9. intptr_t exists;
  10. zv_latch_state_t (*callback) (struct zv_latch_s *);
  11. } zv_latch_updater_t;
  12. typedef struct zv_latch_s {
  13. zv_universal_param_t data;
  14. zv_latch_state_t state;
  15. zv_latch_updater_t updater;
  16. } zv_latch_t;
  17. #endif