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 00143 00144 //----------------------------------------------------------------------------------- 00145 // 00147 00148 // 00149 //----------------------------------------------------------------------------------- 00150 00156 ML_UTILS_EXPORT char* MLIntToStringCopy(int intValue); 00157 00163 ML_UTILS_EXPORT char* MLInt64ToStringCopy(MLint64 int64Value); 00164 00170 ML_UTILS_EXPORT char* MLDoubleToStringCopy(double doubleValue); 00172 00173 00174 00175 //-------------------------------------------------------------------------------------------------- 00176 // 00178 00179 // 00180 //-------------------------------------------------------------------------------------------------- 00181 00186 ML_UTILS_EXPORT void* MLAlloc(MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED; 00187 00193 ML_UTILS_EXPORT void* MLRealloc(void* ptr, MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED; 00194 00198 00199 ML_UTILS_EXPORT void MLFree(void* ptr); 00200 ML_UTILS_EXPORT void MLFreeMemoryManagerCallback(void* ptr, const size_t size, void* userData); 00202 00208 ML_UTILS_EXPORT void* MLMemDup(const void* src, MLuint numBytes, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED; 00209 00213 ML_UTILS_EXPORT char* MLStrDup(const char* str, MLMemoryErrorHandling handleFailure) ML_RETURN_VALUE_SHOULD_BE_USED; 00215 00216 00217 00218 00219 00220 //----------------------------------------------------------------------------------- 00221 // 00223 00224 // 00225 //----------------------------------------------------------------------------------- 00233 // void MLMessageCB(void* usrData, 00234 // MLErrorCode errCode, 00235 // MLMessageType messageType, 00236 // const char* messStr, 00237 // int line, 00238 // const char** infos) 00262 ML_UTILS_EXPORT void MLSetMessageCB(void* userData, MLMessageCB* callback); 00263 00267 ML_UTILS_EXPORT void MLGetMessageCB(void** userData, MLMessageCB** callback); 00269 00270 00271 00272 //----------------------------------------------------------------------------------- 00273 // 00275 00276 // 00277 //----------------------------------------------------------------------------------- 00280 ML_UTILS_EXPORT void MLDebugAddEnvName(const char* envName); 00281 00285 ML_UTILS_EXPORT void MLDebugRemoveEnvName(const char* envName); 00286 00289 ML_UTILS_EXPORT MLint32 MLDebugHasEnvName(const char* envName); 00290 00293 ML_UTILS_EXPORT const char * MLDebugGetEnvName(MLuint32 envNameIdx); 00294 00297 ML_UTILS_EXPORT void MLDebugRemoveAllEnvNames(); 00298 00300 ML_UTILS_EXPORT size_t MLDebugGetNumEnvNames(); 00302 00303 00304 00305 //----------------------------------------------------------------------------------- 00306 // 00308 00309 // 00310 //----------------------------------------------------------------------------------- 00329 ML_UTILS_EXPORT void MLPrintAndNotify(MLMessageType messageType, 00330 const char* libraryPrefix, 00331 const char* fPrefix, 00332 const char* functionName, 00333 const char* reason, 00334 const char* handling, 00335 const char* file, 00336 int line, 00337 MLErrorCode errCode); 00338 00342 ML_UTILS_EXPORT void MLPrintAndNotifyFatal(const char* file, 00343 int line, 00344 MLErrorCode errCode); 00345 00353 ML_UTILS_EXPORT void MLHandleDebugPrint(const char* envVar, 00354 const char* libraryPrefix, 00355 const char* outStr, 00356 const char* file, 00357 int line); 00359 00360 00361 //----------------------------------------------------------------------------------- 00362 // 00364 00365 // 00366 //----------------------------------------------------------------------------------- 00371 ML_UTILS_EXPORT void MLSetTerminationType(MLMessageType level, MLTerminator term); 00372 00375 ML_UTILS_EXPORT MLTerminator MLGetTerminationType(MLMessageType level); 00377 00378 00379 //----------------------------------------------------------------------------------- 00380 // 00382 00383 // 00384 //----------------------------------------------------------------------------------- 00388 ML_UTILS_EXPORT MLErrorCode MLEnableExceptionHandling(MLuint32 enable); 00389 00391 ML_UTILS_EXPORT MLuint32 MLIsExceptionHandlingEnabled(); 00393 00394 00395 //----------------------------------------------------------------------------------- 00396 // 00398 00399 // 00400 //----------------------------------------------------------------------------------- 00406 ML_UTILS_EXPORT void MLSetMessageFilter(MLuint32 messageTypes); 00407 00410 ML_UTILS_EXPORT MLuint32 MLGetMessageFilter(); 00412 00413 00414 //----------------------------------------------------------------------------------- 00415 // 00417 00418 // 00419 //----------------------------------------------------------------------------------- 00427 ML_UTILS_EXPORT MLErrorCode MLEnableFullDebugging(MLuint32 enable); 00428 00430 ML_UTILS_EXPORT MLuint32 MLIsFullDebuggingEnabled(); 00432 00433 00434 //----------------------------------------------------------------------------------- 00435 // 00437 00438 // 00439 //----------------------------------------------------------------------------------- 00440 00453 ML_UTILS_EXPORT void MLAddEventFilterCB(MLEventFilterCB* cb, void* usrData, 00454 MLuint32 fromMessageId, MLuint32 toMessageId); 00455 00459 ML_UTILS_EXPORT void MLRemoveEventFilterCB(MLEventFilterCB* cb, void* usrData); 00461 00462 00463 //----------------------------------------------------------------------------------- 00464 // 00466 00467 // 00468 //----------------------------------------------------------------------------------- 00469 00474 ML_UTILS_EXPORT void MLSetApplicationPropertiesHook(MLApplicationPropertyCallbacks* callbacks); 00475 00479 ML_UTILS_EXPORT const MLApplicationPropertyCallbacks* MLGetApplicationPropertiesHook(); 00480 00481 00486 ML_UTILS_EXPORT void MLSetEventFilterApplicationHook(MLEventFilterApplicationHookCB* cb, void* usrData); 00487 00489 ML_UTILS_EXPORT MLEventFilterApplicationHookCB* MLGetEventFilterApplicationHookCB(); 00490 00492 ML_UTILS_EXPORT void *MLGetEventFilterApplicationHookCBUserData(); 00494 00495 //----------------------------------------------------------------------------------- 00496 // 00498 00499 // 00500 //----------------------------------------------------------------------------------- 00501 00504 ML_UTILS_EXPORT MLint32 MLSetNotifyEnabled(MLint32 flag); 00505 00507 ML_UTILS_EXPORT MLint32 MLIsNotifyEnabled(); 00509 00510 00511 //----------------------------------------------------------------------------------- 00512 // 00514 00515 // 00516 //----------------------------------------------------------------------------------- 00517 00545 ML_UTILS_EXPORT void* MLStringToPtr(const char* valueString, int postError, const char* errFunc); 00547 00548 00549 00550 //-------------------------------------------------------------------------------------------------- 00551 // 00553 00554 // 00555 //-------------------------------------------------------------------------------------------------- 00557 ML_UTILS_EXPORT MLint32 MLIsLittleEndian(); 00558 00562 ML_UTILS_EXPORT void MLMakeLittleEndian(unsigned char* data, size_t numBytes, size_t dTypeSize); 00563 00567 ML_UTILS_EXPORT void MLMakeBigEndian(unsigned char* data, size_t numBytes, size_t dTypeSize); 00568 00574 ML_UTILS_EXPORT void MLSwapBytes(unsigned char* data, size_t numBytes, size_t dTypeSize); 00576 00577 00578 //----------------------------------------------------------------------------------- 00579 // 00581 00582 // 00583 //----------------------------------------------------------------------------------- 00585 ML_UTILS_EXPORT void MLSetMaxNumTraceListDumps(MLuint32 numMaxEntries); 00586 00588 ML_UTILS_EXPORT MLuint32 MLGetMaxNumTraceListDumps(); 00590 00591 //----------------------------------------------------------------------------------- 00592 // 00594 00595 // 00596 //----------------------------------------------------------------------------------- 00598 ML_UTILS_EXPORT void MLSetMaxNumTraceStackDumps(MLuint32 numMaxEntries); 00599 00601 ML_UTILS_EXPORT MLuint32 MLGetMaxNumTraceStackDumps(); 00603 00604 //----------------------------------------------------------------------------------- 00605 // 00607 00608 // 00609 //----------------------------------------------------------------------------------- 00611 ML_UTILS_EXPORT void MLSetTraceDumpMessageBits(MLuint32 messageBitMask); 00612 00614 ML_UTILS_EXPORT MLuint32 MLGetTraceDumpMessageBits(); 00616 00617 #ifdef __cplusplus 00618 } 00619 #endif 00620 00621 00622 #endif // __mlUtilsAPI_H 00623 00624 00625