1 #ifndef SUMA_OBJS_INCLUDED
2 #define SUMA_OBJS_INCLUDED
3 
4 /*! includes various include files, no muss no fuss */
5 #include <stddef.h>
6 #include <stdlib.h>
7 #include <stdio.h>
8 /** #include <stdarg.h> **/
9 #include <assert.h>
10 #include <string.h>
11 #include <sys/time.h>
12 #include <math.h>
13 #include <signal.h>
14 
15 /* from Fri Aug  9 17:54:03 EDT 2002 and on SUMA will need motif headers */
16 
17 #include "mrilib.h"
18 #include "niml.h"
19 #include "gicor.h"
20 
21 
22 /* SUMA's generic includes */
23    #include "uthash.h"
24    #include "mcw_malloc.h"
25    #include "SUMA/SUMA_label.h"
26    #include "suma_algorithms.h"
27    #include "suma_afni_surface.h"
28    #include "suma_utils.h"
29    #include "suma_string_manip.h"
30    #include "suma_datasets.h"
31    #include "suma_help.h"
32    #include "SUMA/SUMA_Macros.h"
33    #include "SUMA/SUMA_StringParse.h"
34    #define SUMA_ENTRY ENTRY(FuncName)
35    #define SUMA_ENTRY_LH ENTRY(FuncName); \
36            do { if (LocalHead) {          \
37                   SUMA_DUMP_TRACE("dumping trace at top function entry"); } \
38               } while (0)
39    #define SUMA_RETURN  RETURN
40    #define SUMA_RETURNe EXRETURN
41    #define SUMA_mainENTRY mainENTRY(FuncName)
42 
43 
44 
45 
46    /* memory allocation section (SUMA_COMPILED-specific)*/
47    #ifdef ALLOW_MCW_MALLOC
48    /*#if defined(USING_MCW_MALLOC) && !defined(USE_OMP)*/
49       #define SUMA_malloc(a) mcw_malloc((a),__FILE__,__LINE__)
50       #define SUMA_calloc(a,b) mcw_calloc((a),(b),__FILE__,__LINE__)
51       #define SUMA_realloc(a,b) mcw_realloc((a),(b),__FILE__,__LINE__)
52       #define SUMA_MEMTRACE_OFF {   /* No such thing */ }
53       #if defined(USING_MCW_MALLOC) && !defined(USE_OMP)
54          #define SUMA_MEMTRACE_ON {\
55             enable_mcw_malloc() ;   \
56          }
57          #define SUMA_MEMTRACE_TOGGLE {   \
58             if (!SUMAg_CF->MemTrace) { \
59                enable_mcw_malloc() ;   \
60             }  \
61          }
62       #else
63          #define SUMA_MEMTRACE_ON {}
64          #define SUMA_MEMTRACE_TOGGLE {}
65       #endif
66    #else
67       #define SUMA_malloc(a) mcw_malloc((a))
68       #define SUMA_calloc(a,b) mcw_calloc((a),(b))
69       #define SUMA_realloc(a,b) mcw_realloc((a),(b))
70       #define SUMA_MEMTRACE_ON {}
71       #define SUMA_MEMTRACE_OFF {}
72       #define SUMA_MEMTRACE_TOGGLE {}
73    #endif
74 
75    /* debug tracing section */
76       #ifdef USE_TRACING
77          #define SUMA_INOUT_NOTIFY_ON { DBG_trace = 1; }
78          #define SUMA_INOUT_NOTIFY_OFF { DBG_trace = 0; }
79          #define SUMA_INOUT_NOTIFY_TOGGLE {\
80             if (!DBG_trace) DBG_trace = 1;  \
81             else DBG_trace = 0;  \
82          }
83       #else
84          #define SUMA_INOUT_NOTIFY_ON { }
85          #define SUMA_INOUT_NOTIFY_OFF { }
86          #define SUMA_INOUT_NOTIFY_TOGGLE { }
87       #endif
88 
89 
90    /* define the necessary macros (SUMA_COMPILED-specific)*/
91    #define SUMA_STDERR stderr
92    #define SUMA_STDOUT stdout
93 
94    #define SUMA_SLP_Err SUMA_S_Err
95    #define SUMA_SL_Err SUMA_S_Err
96    #define SUMA_L_Err SUMA_S_Err
97 
98    #define SUMA_SLP_Note SUMA_S_Note
99    #define SUMA_SL_Note SUMA_S_Note
100    #define SUMA_L_Note SUMA_S_Note
101 
102    #define SUMA_SLP_Warn SUMA_S_Warn
103    #define SUMA_SL_Warn SUMA_S_Warn
104    #define SUMA_L_Warn SUMA_S_Warn
105 
106    #define SUMA_SLP_Crit SUMA_S_Crit
107    #define SUMA_SL_Crit SUMA_S_Crit
108    #define SUMA_L_Crit SUMA_S_Crit
109 
110    #define SUMA_LHv( ... ) {\
111       if (LocalHead) {  \
112          fprintf (SUMA_STDERR, "##      %s (%s:%d):\n", \
113                                FuncName, __FILE__, __LINE__);  \
114          fprintf (SUMA_STDERR, __VA_ARGS__);  \
115       }  \
116    }
117    #define SUMA_LH( ... ) {\
118       if (LocalHead) {\
119          SUMA_LHv(__VA_ARGS__);  \
120          fprintf (SUMA_STDERR, "\n");  \
121       }  \
122    }
123 
124 
125    #define TLH(v) {\
126       if (v) { LocalHead = v; SUMA_LH("LocalHead Temp ON"); } \
127       else { SUMA_LH("LocalHead Temp OFF"); LocalHead = NOPE; }   \
128    }
129 
130    #ifdef SUMA_noFunc
131      #define SUMA_S_Warn(...) {\
132       fprintf (SUMA_STDERR, "Warning:\n");  \
133       fprintf (SUMA_STDERR , __VA_ARGS__);  \
134      }
135    #else
136      #define SUMA_S_Warn(...) {\
137       fprintf (SUMA_STDERR, "Warning %s:\n ", FuncName);  \
138       fprintf (SUMA_STDERR , __VA_ARGS__);  \
139       fprintf (SUMA_STDERR , "\n"); \
140      }
141    #endif
142 
143    #define SUMA_S_Warnv(...) {\
144       fprintf (SUMA_STDERR, "Warning %s:\n", FuncName);  \
145       fprintf (SUMA_STDERR, __VA_ARGS__);  \
146    }
147 
148    #define SUMA_S_Notev(...) {\
149       fprintf (SUMA_STDERR, "Notice %s:\n", FuncName);  \
150       fprintf (SUMA_STDERR , __VA_ARGS__);  \
151    }
152    #define SUMA_S_Note(...) {\
153       SUMA_S_Notev(__VA_ARGS__);  \
154       fprintf (SUMA_STDERR, "\n");  \
155    }
156 
157    #define SUMA_S_Errv(...) {\
158       fprintf (SUMA_STDERR, "Error %s (%s:%d):\n", \
159                             FuncName, __FILE__, __LINE__);  \
160       fprintf (SUMA_STDERR, __VA_ARGS__);  \
161    }
162    #define SUMA_S_Err(...) {\
163       SUMA_S_Errv(__VA_ARGS__);  \
164       fprintf (SUMA_STDERR, "\n");  \
165    }
166 
167    #define SUMA_S_Critv( ... ) {\
168       fprintf (SUMA_STDERR, "Critical error %s (%s:%d):\n", \
169                             FuncName, __FILE__, __LINE__);  \
170       fprintf (SUMA_STDERR, __VA_ARGS__);  \
171    }
172    #define SUMA_S_Crit(...) {\
173       SUMA_S_Critv(__VA_ARGS__);\
174       fprintf (SUMA_STDERR,"\n");   \
175    }
176 
177 
178 #endif
179