X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Finclude%2Fstdarg.h;h=db0b889ca0dc65497a93b7afaea5567f876a4aa9;hb=115d5811f8b0d4c6de0412bad52dfc2df11abbb6;hp=4802a8fdd43c3efb292830e2d7672489a7696dfb;hpb=17ac14c727bd7466b5ac78709231fafbb7f18e59;p=fw%2Fsdcc diff --git a/device/include/stdarg.h b/device/include/stdarg.h index 4802a8fd..db0b889c 100644 --- a/device/include/stdarg.h +++ b/device/include/stdarg.h @@ -1,29 +1,33 @@ /*-----------------------------------------------------------------------------------*/ -/* stdarg.h - ANSI macros for variable parameter list */ +/* stdarg.h - ANSI macros for variable parameter list */ /*-----------------------------------------------------------------------------------*/ #ifndef __SDC51_STDARG_H #define __SDC51_STDARG_H 1 -#if defined(SDCC_STACK_TENBIT) +#if defined(__z80) || defined(__gbz80) || defined(__hc08) -#error Foo! +typedef unsigned char * va_list; +#define va_start(marker, last) { marker = (va_list)&last + sizeof(last); } +#define va_arg(marker, type) *((type *)((marker += sizeof(type)) - sizeof(type))) -typedef unsigned char _xdata * va_list ; -#define va_arg(marker,type) *((type _xdata * )(marker -= sizeof(type))) -#define va_start(marker,first) { marker = (va_list) ((char _xdata * )&first) ; } +#elif defined(__ds390) || defined(__ds400) + +typedef unsigned char * va_list; +#define va_start(marker, first) { marker = (va_list)&first; } +#define va_arg(marker, type) *((type *)(marker -= sizeof(type))) #elif defined(SDCC_USE_XSTACK) -typedef unsigned char _pdata * va_list ; -#define va_arg(marker,type) *((type _data * )(marker -= sizeof(type))) -#define va_start(marker,first) { marker = (va_list) ((char _pdata * )&first) ; } +typedef unsigned char __pdata * va_list; +#define va_start(marker, first) { marker = (va_list)&first; } +#define va_arg(marker, type) *((type __pdata *)(marker -= sizeof(type))) #else -typedef unsigned char _data * va_list ; -#define va_arg(marker,type) *((type _data * )(marker -= sizeof(type))) -#define va_start(marker,first) { marker = (va_list) ((char _data * )&first) ; } +typedef unsigned char __data * va_list; +#define va_start(marker, first) { marker = (va_list)&first; } +#define va_arg(marker, type) *((type __data * )(marker -= sizeof(type))) #endif