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