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