|
|
1.1 root 1:
2: /* stdarg.h */
3: /*
4: USAGE:
5: f( arg-declarations ... ) {
6: va_list ap;
7: va_start(ap, parmN); // parmN == last named arg
8: // ...
9: type arg = va_arg(ap, type);
10: // ...
11: va_end(ap);
12: }
13: */
14:
15: #ifndef va_start
16:
17: typedef char *va_list;
18: #define va_end(ap)
19: #ifdef u370
20: #define va_start(ap, parmN) ap =\
21: (char *) ((int)&parmN + 2*sizeof(parmN) - 1 & -sizeof(parmN))
22: #define va_arg(ap, mode) ((mode *)(ap = \
23: (char *) ((int)ap + 2*sizeof(mode) - 1 & -sizeof(mode))))[-1]
24: #else
25: #define va_start(ap, parmN) ap = (char *)( &parmN+1 )
26: #define va_arg(ap, mode) ((mode *)(ap += sizeof(mode)))[-1]
27: #endif
28:
29: #endif
30:
31:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.