10#ifndef TR_APP_TOKENS_H
11#define TR_APP_TOKENS_H
15#include "tr_platform_token_def.h"
34#define TR_START_APP_TOKEN_DEFS \
35 typedef struct __attribute__((packed))
38#define TR_END_APP_TOKEN_DEFS \
39 tr_app_token_struct_t;
45#define TR_CREATE_APP_TOKEN(token, type) \
51#define tr_get_app_token_len(token) \
52 sizeof(((tr_app_token_struct_t*)0)->token)
57#define tr_get_app_token_offset(token) \
58 ((uint32_t)(&((tr_app_token_struct_t*)0)->token))
63#define tr_get_app_token(data, token) \
64 tr_platform_token_read(data, \
65 (uint8_t)tr_get_app_token_len(token), \
66 (uint32_t)(TR_APP_TOKEN_BASE + tr_get_app_token_offset(token)))
71#define tr_app_token_check_erased(token) \
73 bool is_erased = true; \
76 tr_get_app_token(data, token); \
77 for (size_t i = 0 ; i < tr_get_app_token_len(token) ; i++) { \
78 if (data[i] == 0xFF) { \
82 if (count != tr_get_app_token_len(token)) { \
92#define tr_set_app_token(data, data_len, token) \
94 tr_platform_token_write((uint8_t*)data, \
96 (uint32_t)((TR_APP_TOKEN_BASE + tr_get_app_token_offset(token)))); \