home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 November / PCWorld_2000-11_cd.bin / Software / Topware / devc40 / _SETUP.6 / Group14 / va-c4x.h < prev    next >
C/C++ Source or Header  |  2000-01-21  |  970b  |  35 lines

  1. /* GNU C varargs support for the TMS320C[34]x  */
  2.  
  3. /* C[34]x arguments grow in weird ways (downwards) that the standard
  4.    varargs stuff can't handle. */
  5.  
  6. #ifndef __GNUC_VA_LIST
  7. #define __GNUC_VA_LIST
  8.  
  9. typedef void *__gnuc_va_list;
  10.  
  11. #endif /* not __GNUC_VA_LIST */
  12.  
  13. /* If this is for internal libc use, don't define anything but
  14.    __gnuc_va_list.  */
  15. #if defined (_STDARG_H) || defined (_VARARGS_H)
  16.  
  17. #ifdef _STDARG_H /* stdarg.h support */
  18.  
  19. #define va_start(AP,LASTARG) AP=(__gnuc_va_list) __builtin_next_arg (LASTARG)
  20.  
  21. #else /* varargs.h support */
  22.  
  23. #define    __va_ellipsis    ...
  24. #define    va_alist    __builtin_va_alist
  25. #define    va_dcl        int __builtin_va_alist; __va_ellipsis
  26. #define va_start(AP)    AP=(__gnuc_va_list) ((int *)&__builtin_va_alist +  1)
  27.  
  28. #endif /* _STDARG_H */
  29.  
  30. #define va_end(AP)    ((void) 0)
  31. #define va_arg(AP,TYPE)    (AP = (__gnuc_va_list) ((char *) (AP) - sizeof(TYPE)), \
  32.              *((TYPE *) ((char *) (AP))))
  33.  
  34. #endif /* defined (_STDARG_H) || defined (_VARARGS_H) */
  35.