PTR
# define PUT(SIZE,PTR,VAL) (((struct { uint##SIZE##_t i; } __attribute__((packed)) *)(PTR))->i = (VAL))
# define GET(SIZE,PTR) (((const struct { uint##SIZE##_t i; } __attribute__((packed)) *)(PTR))->i)
# define PUTSWAPPED(SIZE,PTR,VAL) PUT(SIZE,PTR,SWAP##SIZE(VAL))
# define GETSWAPPED(SIZE,PTR) SWAP##SIZE(GET(SIZE,PTR))
#define LOADPTR(PTR, TYPE) (*(const void *const *)(PTR))
#define STOREPTR(PTR, TYPE, VAL) (*(void **)(VAL) = (PTR))
#define LOADPTR(PTR, PTRINFO) \
(assert((PTRINFO)->loadptr != NULL), (PTRINFO)->loadptr(PTR))
#define STOREPTR(PTR, PTRINFO, VAL) \
(assert((PTRINFO)->storeptr != NULL), (PTRINFO)->storeptr(PTR, VAL))
#define VALGRIND_CHECK_READABLE(PTR,SIZE) ((void)0)
#define SWIG_FREE_ARRAY(PTR) delete[] PTR
#define SWIG_FREE_ARRAY(PTR) free(PTR)
next = PTR(old_top.ptr);
val->pNext = PTR(old_top.ptr);
lac_mem_blk_t *next = PTR(old_top.ptr);
smc_write_2(sc, PTR, 0 | PTR_AUTO_INCR);
smc_write_2(sc, PTR, 0 | PTR_READ | PTR_RCV | PTR_AUTO_INCR);
smc_write_2(sc, PTR, 4 | PTR_READ | PTR_RCV | PTR_AUTO_INCR);
smc_write_2(sc, PTR, 0 | PTR_READ |