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