#define va_arg(marker,type) *((type __data * )(marker -= sizeof(type)))
#define va_start(marker,first) { marker = (va_list) ((char __data * )&first); }
#define va_arg(marker,type) *((type __data * )(marker -= sizeof(type)))
#define va_start(marker,first) { marker = (va_list) ((char __data * )&first); }