Annotation of researchv9/cmd/cfront/CC/stdargs.h, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.