tx01_msg.cc 616 B

12345678910111213141516171819202122
  1. #include <stdlib.h>
  2. #include "tx01_msg.hpp"
  3. #include "tx01_magic_match.hpp"
  4. const struct tx01_msg_header *tx01_try_match_msg_header(const char *ptr)
  5. {
  6. return tx01_try_match_magic<tx01_msg_header,
  7. TX01_MSG_HEADER_MAGIC>(ptr);
  8. }
  9. const struct tx01_data_msg *
  10. tx01_try_match_data_msg(const struct tx01_msg_header *ptr)
  11. {
  12. if (ptr->size > sizeof(struct tx01_data_msg)) {
  13. big_int32_t *p_postamble = (big_int32_t *) ((char *)ptr +
  14. ptr->size -
  15. sizeof(big_int32_t));
  16. if (*p_postamble == TX01_MSG_POSTAMBLE)
  17. return (struct tx01_data_msg *) ptr;
  18. }
  19. return NULL;
  20. }