VAL
# define PUT(SIZE,PTR,VAL) (((struct { uint##SIZE##_t i; } __attribute__((packed)) *)(PTR))->i = (VAL))
# define PUTSWAPPED(SIZE,PTR,VAL) PUT(SIZE,PTR,SWAP##SIZE(VAL))
#define STOREPTR(PTR, TYPE, VAL) (*(void **)(VAL) = (PTR))
#define STOREPTR(PTR, PTRINFO, VAL) \
(assert((PTRINFO)->storeptr != NULL), (PTRINFO)->storeptr(PTR, VAL))
#define DEFINT_IMMEDIATE(DESCNAME, VAL, ERR) \
VAL, ERR \
#define GOOD(STR,VAL) { STR, VAL, 0 }
#define S(FIELD, VAL) .FIELD = VAL
#define S(FIELD, VAL) internals_temp.FIELD = VAL
#define SC(FIELD, VAL) S(FIELD, VAL)
#define SC(FIELD, VAL) S(FIELD, 0)
#define SC(FIELD, VAL) S(FIELD, VAL)
#define SC(FIELD, VAL) S(FIELD, 0)
#define SC(FIELD, VAL) S(FIELD, VAL)
#define SC(FIELD, VAL) S(FIELD, 0)
#define PUT_U32_BE(DEST, IDX, VAL) \
((uint8_t *)(DEST))[IDX * 4] = GET_U8_BE(VAL, 0); \
((uint8_t *)(DEST))[IDX * 4 + 1] = GET_U8_BE(VAL, 1); \
((uint8_t *)(DEST))[IDX * 4 + 2] = GET_U8_BE(VAL, 2); \
((uint8_t *)(DEST))[IDX * 4 + 3] = GET_U8_BE(VAL, 3); \
*dst++ = VAL;
*dst++ = VAL;
*dst++ = VAL;
t.tm_year = VAL();
t.tm_year = VAL() + t.tm_year * 10;
t.tm_year = VAL() + t.tm_year * 10;
t.tm_year = VAL() + t.tm_year * 10 - 1900;
t.tm_mon = VAL();
t.tm_mon = VAL() + t.tm_mon * 10 - 1;
t.tm_mday = VAL();
t.tm_mday = VAL() + t.tm_mday * 10;
t.tm_hour = VAL();
t.tm_hour = VAL() + t.tm_hour * 10;
t.tm_min = VAL();
t.tm_min = VAL() + t.tm_min * 10;
t.tm_sec = VAL();
t.tm_sec = VAL() + t.tm_sec * 10;