ML Reference
|
00001 // **InsertLicense** code 00002 //----------------------------------------------------------------------------------- 00005 00010 //----------------------------------------------------------------------------------- 00011 // Attention: All includes must be pure C! 00012 00013 #ifndef __mlUtilsAPI_H 00014 #define __mlUtilsAPI_H 00015 00016 #ifdef __cplusplus 00017 extern "C" { 00018 #endif 00019 00020 #ifndef __mlUtilsSystemC_H 00021 #include "mlUtilsSystemC.h" 00022 #endif 00023 00024 //-------------------------------------------------------------------------------------------- 00025 // 00027 00028 // 00029 //-------------------------------------------------------------------------------------------- 00030 00032 extern ML_UTILS_EXPORT const char* MLTerminatorStrings[MLNumTerminators]; 00033 00037 ML_UTILS_EXPORT const char* MLGetErrorCodeDescription(MLErrorCode errCode); 00038 00042 ML_UTILS_EXPORT MLErrorCode MLAddNewErrorCodeDescription(const char* errorString) ML_RETURN_VALUE_SHOULD_BE_USED; 00043 00046 ML_UTILS_EXPORT MLErrorCode MLFindErrorCodeDescription(const char* errorString) ML_RETURN_VALUE_SHOULD_BE_USED; 00047 00049 ML_UTILS_EXPORT MLuint32 MLGetNumErrorCodes(); 00050 00054 ML_UTILS_EXPORT const char* const* MLGetErrorCodeDescriptionTable(); 00056 00057 00058 //----------------------------------------------------------------------------------- 00059 // 00061 00062 // 00063 //----------------------------------------------------------------------------------- 00064 00066 ML_UTILS_EXPORT MLint32 MLInitializeUtils(); 00067 00069 ML_UTILS_EXPORT MLint32 MLIsUtilsInitialized(); 00070 00072 ML_UTILS_EXPORT MLint32 MLUtilsDestroy(); 00074 00075 00076 //----------------------------------------------------------------------------------- 00077 // 00079 00080 // 00081 //----------------------------------------------------------------------------------- 00082 00086 ML_UTILS_EXPORT MLuint32 MLGetCheckBitMask(); 00087 00092 ML_UTILS_EXPORT void MLSetCheckBitMask(MLuint32 bitMask); 00094 00095 00096 00097 //----------------------------------------------------------------------------------- 00098 // 00100 00101 // 00102 //----------------------------------------------------------------------------------- 00103 00105 ML_UTILS_EXPORT MLint32 MLIsMultithreadingActive(); 00106 00109 ML_UTILS_EXPORT void _MLSetMultithreadingActive(MLint32 isActive); 00111 00112 00113 //----------------------------------------------------------------------------------- 00114 // 00116 00117 // 00118 //----------------------------------------------------------------------------------- 00119 00121 ML_UTILS_EXPORT MLThreadId MLGetCurrentThreadID(); 00122 00124 ML_UTILS_EXPORT MLint32 MLIsCurrentThreadMainThread(); 00125 00127 ML_UTILS_EXPORT MLThreadId MLGetMainThreadID(); 00128 00132 ML_UTILS_EXPORT void MLSetMainThreadID(MLThreadId threadId); 00133 00135 ML_UTILS_EXPORT MLint32 MLCompareThreadIDs(const MLThreadId& id1, const MLThreadId& id2); 00136 00139 extern ML_UTILS_EXPORT MLThreadId _MLMainThreadId; 00140 00142 ML_UTILS_EXPORT void MLSetThreadName(const char* threadName); 00143 00145 00146 00147 //----------------------------------------------------------------------------------- 00148 // 00150 00151 // 00152 //----------------------------------------------------------------------------------- 00153 00159 ML_UTILS_EXPORT char* MLIntToStringCopy(int intValue); 00160 00166 ML_UTILS_EXPORT char* MLInt64ToStringCopy(MLint64 int64Value); 00167 00173 ML_UTILS_EXPORT char* MLDoubleToStringCopy(double doubleValue); 00175 00176 00177 00178 //-------------------------------------------------------------------------------------------------- 00179 // 00181 00182 // 00183 //-------------------------------------------------------------------------------------------------- 00184 00189 ML_UTILS_EXPORT void* MLAlloc(MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED; 00190 00196 ML_UTILS_EXPORT void* MLRealloc(void* ptr, MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED; 00197 00201 00202 ML_UTILS_EXPORT void MLFree(void* ptr); 00203 ML_UTILS_EXPORT void MLFreeMemoryManagerCallback(void* ptr, const size_t size, void* userData); 00205 00211 ML_UTILS_EXPORT void* MLMemDup(const void* src, MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED; 00212 00216 ML_UTILS_EXPORT char* MLStrDup(const char* str, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED; 00218 00219 00220 00221 00222 00223 //----------------------------------------------------------------------------------- 00224 // 00226 00227 // 00228 //----------------------------------------------------------------------------------- 00236 // void MLMessageCB(void* usrData, 00237 // MLErrorCode errCode, 00238 // MLMessageType messageType, 00239 // const char* messStr, 00240 // int line, 00241 // const char** infos) 00265 ML_UTILS_EXPORT void MLSetMessageCB(void* userData, MLMessageCB* callback); 00266 00270 ML_UTILS_EXPORT void MLGetMessageCB(void** userData, MLMessageCB** callback); 00272 00273 00274 00275 //----------------------------------------------------------------------------------- 00276 // 00278 00279 // 00280 //----------------------------------------------------------------------------------- 00283 ML_UTILS_EXPORT void MLDebugAddEnvName(const char* envName); 00284 00288 ML_UTILS_EXPORT void MLDebugRemoveEnvName(const char* envName); 00289 00292 ML_UTILS_EXPORT MLint32 MLDebugHasEnvName(const char* envName); 00293 00296 ML_UTILS_EXPORT const char * MLDebugGetEnvName(MLuint32 envNameIdx); 00297 00300 ML_UTILS_EXPORT void MLDebugRemoveAllEnvNames(); 00301 00303 ML_UTILS_EXPORT size_t MLDebugGetNumEnvNames(); 00305 00306 00307 00308 //----------------------------------------------------------------------------------- 00309 // 00311 00312 // 00313 //----------------------------------------------------------------------------------- 00332 ML_UTILS_EXPORT void MLPrintAndNotify(MLMessageType messageType, 00333 const char* libraryPrefix, 00334 const char* fPrefix, 00335 const char* functionName, 00336 const char* reason, 00337 const char* handling, 00338 const char* file, 00339 int line, 00340 MLErrorCode errCode); 00341 00345 ML_UTILS_EXPORT void MLPrintAndNotifyFatal(const char* file, 00346 int line, 00347 MLErrorCode errCode); 00348 00356 ML_UTILS_EXPORT void MLHandleDebugPrint(const char* envVar, 00357 const char* libraryPrefix, 00358 const char* outStr, 00359 const char* file, 00360 int line); 00362 00363 00364 //----------------------------------------------------------------------------------- 00365 // 00367 00368 // 00369 //----------------------------------------------------------------------------------- 00374 ML_UTILS_EXPORT void MLSetTerminationType(MLMessageType level, MLTerminator term); 00375 00378 ML_UTILS_EXPORT MLTerminator MLGetTerminationType(MLMessageType level); 00380 00381 00382 //----------------------------------------------------------------------------------- 00383 // 00385 00386 // 00387 //----------------------------------------------------------------------------------- 00391 ML_UTILS_EXPORT MLErrorCode MLEnableExceptionHandling(MLuint32 enable); 00392 00394 ML_UTILS_EXPORT MLuint32 MLIsExceptionHandlingEnabled(); 00396 00397 00398 //----------------------------------------------------------------------------------- 00399 // 00401 00402 // 00403 //----------------------------------------------------------------------------------- 00409 ML_UTILS_EXPORT void MLSetMessageFilter(MLuint32 messageTypes); 00410 00413 ML_UTILS_EXPORT MLuint32 MLGetMessageFilter(); 00415 00416 00417 //----------------------------------------------------------------------------------- 00418 // 00420 00421 // 00422 //----------------------------------------------------------------------------------- 00430 ML_UTILS_EXPORT MLErrorCode MLEnableFullDebugging(MLuint32 enable); 00431 00433 ML_UTILS_EXPORT MLuint32 MLIsFullDebuggingEnabled(); 00435 00436 00437 //----------------------------------------------------------------------------------- 00438 // 00440 00441 // 00442 //----------------------------------------------------------------------------------- 00443 00456 ML_UTILS_EXPORT void MLAddEventFilterCB(MLEventFilterCB* cb, void* usrData, 00457 MLuint32 fromMessageId, MLuint32 toMessageId); 00458 00462 ML_UTILS_EXPORT void MLRemoveEventFilterCB(MLEventFilterCB* cb, void* usrData); 00464 00465 00466 //----------------------------------------------------------------------------------- 00467 // 00469 00470 // 00471 //----------------------------------------------------------------------------------- 00472 00477 ML_UTILS_EXPORT void MLSetApplicationPropertiesHook(MLApplicationPropertyCallbacks* callbacks); 00478 00482 ML_UTILS_EXPORT const MLApplicationPropertyCallbacks* MLGetApplicationPropertiesHook(); 00483 00484 00489 ML_UTILS_EXPORT void MLSetEventFilterApplicationHook(MLEventFilterApplicationHookCB* cb, void* usrData); 00490 00492 ML_UTILS_EXPORT MLEventFilterApplicationHookCB* MLGetEventFilterApplicationHookCB(); 00493 00495 ML_UTILS_EXPORT void *MLGetEventFilterApplicationHookCBUserData(); 00497 00498 //----------------------------------------------------------------------------------- 00499 // 00501 00502 // 00503 //----------------------------------------------------------------------------------- 00504 00507 ML_UTILS_EXPORT MLint32 MLSetNotifyEnabled(MLint32 flag); 00508 00510 ML_UTILS_EXPORT MLint32 MLIsNotifyEnabled(); 00512 00513 00514 //----------------------------------------------------------------------------------- 00515 // 00517 00518 // 00519 //----------------------------------------------------------------------------------- 00520 00548 ML_UTILS_EXPORT void* MLStringToPtr(const char* valueString, int postError, const char* errFunc); 00550 00551 00552 00553 //-------------------------------------------------------------------------------------------------- 00554 // 00556 00557 // 00558 //-------------------------------------------------------------------------------------------------- 00560 ML_UTILS_EXPORT MLint32 MLIsLittleEndian(); 00561 00565 ML_UTILS_EXPORT void MLMakeLittleEndian(unsigned char* data, size_t numBytes, size_t dTypeSize); 00566 00570 ML_UTILS_EXPORT void MLMakeBigEndian(unsigned char* data, size_t numBytes, size_t dTypeSize); 00571 00577 ML_UTILS_EXPORT void MLSwapBytes(unsigned char* data, size_t numBytes, size_t dTypeSize); 00579 00580 00581 //----------------------------------------------------------------------------------- 00582 // 00584 00585 // 00586 //----------------------------------------------------------------------------------- 00588 ML_UTILS_EXPORT void MLSetMaxNumTraceListDumps(MLuint32 numMaxEntries); 00589 00591 ML_UTILS_EXPORT MLuint32 MLGetMaxNumTraceListDumps(); 00593 00594 //----------------------------------------------------------------------------------- 00595 // 00597 00598 // 00599 //----------------------------------------------------------------------------------- 00601 ML_UTILS_EXPORT void MLSetMaxNumTraceStackDumps(MLuint32 numMaxEntries); 00602 00604 ML_UTILS_EXPORT MLuint32 MLGetMaxNumTraceStackDumps(); 00606 00607 //----------------------------------------------------------------------------------- 00608 // 00610 00611 // 00612 //----------------------------------------------------------------------------------- 00614 ML_UTILS_EXPORT void MLSetTraceDumpMessageBits(MLuint32 messageBitMask); 00615 00617 ML_UTILS_EXPORT MLuint32 MLGetTraceDumpMessageBits(); 00619 00620 #ifdef __cplusplus 00621 } 00622 #endif 00623 00624 00625 #endif // __mlUtilsAPI_H 00626 00627 00628