• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

sst/elements/genericProc/programs/qthread-1.4/test/argparsing.h

00001 #ifndef TEST_ARGPARSING_H
00002 #define TEST_ARGPARSING_H
00003 
00004 #include <stdlib.h>
00005 #include <stdio.h>
00006 #include <stdarg.h>
00007 
00008 #ifndef SST
00009 # define CHECK_VERBOSE() verbose = (getenv("VERBOSE") != NULL)
00010 #else
00011 # define CHECK_VERBOSE()
00012 #endif
00013 
00014 #define NUMARG(var,name) do { \
00015     char *str; \
00016     if ((str = getenv(name)) != NULL) { \
00017         char *stre = NULL; \
00018         size_t tmp = strtoul(str, &stre, 0); \
00019         if (stre == NULL || stre == str) { \
00020             fprintf(stderr, "unparsable "name" (%s)\n", str); \
00021         } else { \
00022             var = tmp; \
00023         } \
00024     } \
00025     iprintf(name" = %lu\n", (unsigned long)var); \
00026 } while (0)
00027 
00028 #ifdef SST
00029 static int verbose = 1;
00030 #else
00031 static int verbose = 0;
00032 #endif
00033 
00034 #ifdef __tile__
00035 #define iprintf printf
00036 #else
00037 static void iprintf(const char * restrict format, ...)
00038 {
00039     if (verbose != 0) {
00040         va_list ap;
00041 
00042         va_start(ap, format);
00043         vprintf(format, ap);
00044         fflush(stdout);
00045         va_end(ap);
00046     }
00047 }
00048 #endif
00049 
00050 #endif

Generated on Fri Oct 22 2010 11:02:24 for SST by  doxygen 1.7.1