1*f8bc6aafSDavid du Colombier #ifndef __STDARG 2*f8bc6aafSDavid du Colombier #define __STDARG 3*f8bc6aafSDavid du Colombier 4*f8bc6aafSDavid du Colombier typedef char *va_list; 5*f8bc6aafSDavid du Colombier 6*f8bc6aafSDavid du Colombier #define va_start(list, start) list =\ 7*f8bc6aafSDavid du Colombier (sizeof(start) < 8?\ 8*f8bc6aafSDavid du Colombier (char*)((int*)&(start)+1):\ 9*f8bc6aafSDavid du Colombier (char*)(&(start)+1)) 10*f8bc6aafSDavid du Colombier #define va_end(list) 11*f8bc6aafSDavid du Colombier #define va_arg(list, mode)\ 12*f8bc6aafSDavid du Colombier ((sizeof(mode) == 1)?\ 13*f8bc6aafSDavid du Colombier ((list += 8), (mode*)list)[-1]:\ 14*f8bc6aafSDavid du Colombier (sizeof(mode) == 2)?\ 15*f8bc6aafSDavid du Colombier ((list += 8), (mode*)list)[-1]:\ 16*f8bc6aafSDavid du Colombier (sizeof(mode) == 4)?\ 17*f8bc6aafSDavid du Colombier ((list += 8), (mode*)list)[-1]:\ 18*f8bc6aafSDavid du Colombier ((list += sizeof(mode)), (mode*)list)[-1]) 19*f8bc6aafSDavid du Colombier 20*f8bc6aafSDavid du Colombier #endif /* __STDARG */ 21