29 #include "osapi/osapi_dll.h"
31 #ifndef osapi_thread_h
37 #ifndef osapi_system_h
53 #ifndef RTI_MODULE_NAME
54 #define RTI_MODULE_NAME "undefined"
57 #define OSAPI_LOG_MSG_PN_X2_STD_PARAM RTI_MODULE_NAME,\
58 __FILE__,__FUNCTION__, __LINE__
124 #define OSAPI_LOG_BASE (0)
129 #define REDA_LOG_BASE (1 << 16)
134 #define DB_LOG_BASE (2 << 16)
139 #define RT_LOG_BASE (3 << 16)
144 #define NETIO_LOG_BASE (4 << 16)
149 #define UDP_LOG_BASE NETIO_LOG_BASE
154 #define CDR_LOG_BASE (5 << 16)
159 #define RTPS_LOG_BASE (6 << 16)
164 #define DDSC_LOG_BASE (7 << 16)
169 #define RHSM_LOG_BASE (8 << 16)
174 #define WHSM_LOG_BASE (9 << 16)
179 #define DPSE_LOG_BASE (10 << 16)
184 #define DPDE_LOG_BASE (11 << 16)
190 #define OSAPI_LOG_GET_NEXT_OBJECT_ID (1)
191 #define OSAPI_Log_get_next_object_id(level_) \
192 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_GET_NEXT_OBJECT_ID ,\
193 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
201 #define OSAPI_LOG_SYSTEM_SET_PROPERTY (2)
202 #define OSAPI_Log_system_set_property(level_) \
203 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_SYSTEM_SET_PROPERTY,\
204 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
210 #define OSAPI_LOG_SYSTEM_TIMER_START (4)
211 #define OSAPI_Log_system_timer_start(level_) \
212 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_SYSTEM_TIMER_START,\
213 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
219 #define OSAPI_LOG_SYSTEM_TIMER_STOP (5)
220 #define OSAPI_Log_system_timer_stop(level_) \
221 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_SYSTEM_TIMER_STOP,\
222 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
229 #define OSAPI_LOG_THREAD_NEW (6)
230 #define OSAPI_Log_thread_new(level_) \
231 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_NEW,\
232 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
238 #define OSAPI_LOG_THREAD_CREATE (7)
239 #define OSAPI_Log_thread_create(level_) \
240 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_CREATE,\
241 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
247 #define OSAPI_LOG_THREAD_SEM (8)
248 #define OSAPI_Log_thread_sem(level_,cs_,ss_) \
249 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_SEM,\
250 OSAPI_LOG_MSG_PN_X2_STD_PARAM,2,\
251 "cs=%p,ss=%p",(cs_),(ss_))
257 #define OSAPI_LOG_THREAD_EXEC_CREATE (9)
258 #define OSAPI_Log_thread_exec_create(level_) \
259 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_EXEC_CREATE,\
260 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
266 #define OSAPI_LOG_THREAD_EXEC_START (10)
267 #define OSAPI_Log_thread_exec_start(level_,ss_) \
268 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_EXEC_START,\
269 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
276 #define OSAPI_LOG_THREAD_START (11)
277 #define OSAPI_Log_thread_start(level_,ss_) \
278 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_START,\
279 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
286 #define OSAPI_LOG_THREAD_DESTROY (12)
287 #define OSAPI_Log_thread_destroy(level_,ss_) \
288 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_DESTROY,\
289 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
296 #define OSAPI_LOG_THREAD_DESTROY_NO_START (13)
297 #define OSAPI_Log_thread_destroy_no_start(level_,ss_) \
298 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_DESTROY_NO_START,\
299 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
306 #define OSAPI_LOG_THREAD_DESTROY_NO_WAKEUP (14)
307 #define OSAPI_Log_thread_destroy_no_wakeup(level_,ss_) \
308 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_DESTROY_NO_WAKEUP,\
309 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
316 #define OSAPI_LOG_THREAD_INIT (15)
317 #define OSAPI_Log_thread_init(level_,sysrc_) \
318 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_INIT,\
319 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
326 #define OSAPI_LOG_THREAD_SCHEDPARAM (16)
327 #define OSAPI_Log_thread_schedparam(level_,sysrc_,prio_) \
328 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_SCHEDPARAM ,\
329 OSAPI_LOG_MSG_PN_X2_STD_PARAM,2,\
330 "sysrc=%d,prio=%d",(sysrc_),(prio_))
336 #define OSAPI_LOG_THREAD_GET_POLICY (17)
337 #define OSAPI_Log_thread_get_policy(level_,sysrc_) \
338 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_GET_POLICY,\
339 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
347 #define OSAPI_LOG_THREAD_POLICY_DIFFER (18)
348 #define OSAPI_Log_thread_policy_differ(level_,get_policy_,set_policy_) \
349 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_POLICY_DIFFER,\
350 OSAPI_LOG_MSG_PN_X2_STD_PARAM,2,\
351 "get_policy=%d,set_policy=%d",(get_policy_),(set_policy_))
357 #define OSAPI_LOG_THREAD_PRIORITY_MAP (19)
358 #define OSAPI_Log_thread_priority_map(level_,min_,max_) \
359 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_THREAD_PRIORITY_MAP,\
360 OSAPI_LOG_MSG_PN_X2_STD_PARAM,2,\
361 "min=%d,max=%d",(min_),(max_))
369 #define OSAPI_LOG_TIMER_DELETE (20)
370 #define OSAPI_Log_timer_delete(level_) \
371 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_TIMER_DELETE ,\
372 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
374 #define OSAPI_LOG_TIMER_TICK (21)
380 #define OSAPI_LOG_TIMER_TICK_MUTEX (22)
381 #define OSAPI_Log_timer_tick_mutex(level_,mutex_,take_) \
382 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_TIMER_TICK_MUTEX,\
383 OSAPI_LOG_MSG_PN_X2_STD_PARAM,2,\
384 "mutex=%p,take=%d",(mutex_),(take_))
386 #define OSAPI_LOG_TIMER_CREATE_TIMEOUT (23)
388 #define OSAPI_LOG_TIMER_UPDATE_TIMEOUT (24)
390 #define OSAPI_LOG_TIMER_DELETE_TIMEOUT (25)
397 #define OSAPI_LOG_TIMER_GET_USER_DATA_EPOCH (27)
398 #define OSAPI_Log_timer_get_user_data_epoch(level_,h_,e_,e1_,e2_) \
399 OSAPI_Log_msg_pN_X2( (level_),OSAPI_LOG_TIMER_GET_USER_DATA_EPOCH,\
400 OSAPI_LOG_MSG_PN_X2_STD_PARAM,4,\
401 "h=%p,e=%d,e1=%d,e2=%d",(h_),(e_),(e1_),(e2_))
407 #define OSAPI_LOG_TIMER_NEW (28)
408 #define OSAPI_Log_timer_new(level_) \
409 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_TIMER_NEW,\
410 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
416 #define OSAPI_LOG_TIMER_NEW_ENTRY (29)
417 #define OSAPI_Log_timer_new_entry(level_) \
418 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_TIMER_NEW_ENTRY,\
419 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
425 #define OSAPI_LOG_TIMER_NEW_WHEEL (30)
426 #define OSAPI_Log_timer_new_wheel(level_,slots_) \
427 OSAPI_Log_msg_pN_X2( (level_),OSAPI_LOG_TIMER_NEW_WHEEL,\
428 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
435 #define OSAPI_LOG_TIMER_NEW_MUTEX (31)
436 #define OSAPI_Log_timer_new_mutex(level_) \
437 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_TIMER_NEW_MUTEX,\
438 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
444 #define OSAPI_LOG_TIMER_NEW_START_TIMER (32)
445 #define OSAPI_Log_timer_new_start_timer(level_,timer_,ticr_) \
446 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_TIMER_NEW_START_TIMER,\
447 OSAPI_LOG_MSG_PN_X2_STD_PARAM,2,\
448 "timer=%p,ticr=%d",(timer_),(ticr_))
454 #define OSAPI_LOG_TIMER_DELETE_STOP_TIMER (33)
455 #define OSAPI_Log_timer_delete_stop_timer(level_,timer_) \
456 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_TIMER_DELETE_STOP_TIMER,\
457 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
464 #define OSAPI_LOG_TIMER_DELETE_MUTEX (34)
465 #define OSAPI_Log_timer_delete_mutex(level_,timer_) \
466 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_TIMER_DELETE_MUTEX ,\
467 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
474 #define OSAPI_LOG_TIMER_MUTEX (35)
475 #define OSAPI_Log_timer_mutex(level_,mutex_,take_) \
476 OSAPI_Log_msg_pN_X2( (level_),OSAPI_LOG_TIMER_MUTEX,\
477 OSAPI_LOG_MSG_PN_X2_STD_PARAM,2,\
478 "mutex=%p,take=%d",(mutex_),(take_))
486 #define OSAPI_LOG_SEMAPHORE_DELETE (36)
487 #define OSAPI_Log_semaphore_delete(level_,sysrc_) \
488 OSAPI_Log_msg_pN_X2( (level_),OSAPI_LOG_SEMAPHORE_DELETE,\
489 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
496 #define OSAPI_LOG_SEMAPHORE_NEW (37)
497 #define OSAPI_Log_semaphore_new(level_) \
498 OSAPI_Log_msg_pN_X2( (level_),OSAPI_LOG_SEMAPHORE_NEW,\
499 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
505 #define OSAPI_LOG_SEMAPHORE_NEW_INIT (38)
506 #define OSAPI_Log_semaphore_new_init(level_,sysrc_) \
507 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_SEMAPHORE_NEW_INIT,\
508 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
515 #define OSAPI_LOG_SEMAPHORE_GIVE (39)
516 #define OSAPI_Log_semaphore_give(level_,sysrc_) \
517 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_SEMAPHORE_GIVE,\
518 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
525 #define OSAPI_LOG_SEMAPHORE_TAKE (40)
526 #define OSAPI_Log_semaphore_take(level_,sysrc_) \
527 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_SEMAPHORE_TAKE,\
528 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
537 #define OSAPI_LOG_MUTEX_DELETE (41)
538 #define OSAPI_Log_mutex_delete(level_,sysrc_) \
539 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_MUTEX_DELETE,\
540 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
547 #define OSAPI_LOG_MUTEX_NEW (42)
548 #define OSAPI_Log_mutex_new(level_) \
549 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_MUTEX_NEW,\
550 OSAPI_LOG_MSG_PN_X2_STD_PARAM,0)
556 #define OSAPI_LOG_MUTEX_TAKE (43)
557 #define OSAPI_Log_mutex_take(level_,sysrc_) \
558 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_MUTEX_TAKE,\
559 OSAPI_LOG_MSG_PN_X2_STD_PARAM , NULL, __LINE__,1,\
566 #define OSAPI_LOG_MUTEX_GIVE (44)
567 #define OSAPI_Log_mutex_give(level_,sysrc_) \
568 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_MUTEX_GIVE,\
569 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
576 #define OSAPI_LOG_MUTEX_INIT (45)
577 #define OSAPI_Log_mutex_init(level_,sysrc_) \
578 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_MUTEX_INIT,\
579 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
588 #define OSAPI_LOG_HEAP_INTERNAL_ALLOCATE (46)
589 #define OSAPI_Log_heap_internal_allocate(level_,s_,a_) \
590 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_HEAP_INTERNAL_ALLOCATE,\
591 OSAPI_LOG_MSG_PN_X2_STD_PARAM,2,\
592 "s=%u,a=%d",(s_),(a_))
594 #define OSAPI_LOG_HEAP_FREE (47)
600 #define OSAPI_LOG_SYSTEM_GET_TIME (48)
601 #define OSAPI_Log_system_get_time(level_,sysrc_) \
602 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_SYSTEM_GET_TIME,\
603 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
616 #define OSAPI_LOG_LAST_RECORDED_ERROR (49)
617 #define OSAPI_Log_last_recorded_error(level_) \
618 OSAPI_Log_msg_pN_X2((level_),OSAPI_LOG_LAST_RECORDED_ERROR,\
619 OSAPI_LOG_MSG_PN_X2_STD_PARAM,1,\
620 "rc=%d",OSAPI_Log_get_last_error_code())
633 OSAPI_LOGKIND_ERROR = 0,
634 OSAPI_LOGKIND_WARNING,
636 OSAPI_LOGKIND_PRECONDITION
639 typedef RTI_UINT32 OSAPI_LogEntryHeader_T;
640 typedef RTI_UINT32 OSAPI_LogEntryPayloadElement_T;
642 #define OSAPI_LOG_HEADER_GET_X(hdr_) ((hdr_)>>31)
643 #define OSAPI_LOG_HEADER_GET_E(hdr_) ((hdr_)>>30 & 0x1)
644 #define OSAPI_LOG_HEADER_GET_TYPE(hdr_) (((hdr_) >>28) & 0x3)
645 #define OSAPI_LOG_HEADER_GET_MODULE(hdr_) (((hdr_) >>16) & 0xfff)
646 #define OSAPI_LOG_HEADER_GET_EC(hdr_) ((hdr_) & 0xffff)
648 #define OSAPI_LOG_HEADER_SET_X(hdr_) ((hdr_) |= 0x80000000)
649 #define OSAPI_LOG_HEADER_CLR_X(hdr_) ((hdr_) &= ~0x80000000)
650 #define OSAPI_LOG_HEADER_SET_E(hdr_) ((hdr_) |= 0x40000000)
651 #define OSAPI_LOG_HEADER_SET_TYPE(hdr_,type_) ((hdr_) |= ((type_) << 28))
652 #define OSAPI_LOG_HEADER_SET_MODULE(hdr_,m_) ((hdr_) |= ((m_) << 16))
653 #define OSAPI_LOG_HEADER_SET_EC(hdr_,ec) ((hdr_) |= (ec_))
655 #define OSAPI_LOG_STATUS_MN (0x80000000)
656 #define OSAPI_LOG_STATUS_SF (0x40000000)
657 #define OSAPI_LOG_STATUS_FN (0x20000000)
658 #define OSAPI_LOG_STATUS_LN (0x10000000)
659 #define OSAPI_LOG_STATUS_F (0x08000000)
661 #define OSAPI_LOG_STATUS_ALL \
662 (OSAPI_LOG_STATUS_MN | \
663 OSAPI_LOG_STATUS_SF | \
664 OSAPI_LOG_STATUS_FN | \
665 OSAPI_LOG_STATUS_LN | \
668 #define OSAPI_LOG_STATUS_NO_DATA \
669 (OSAPI_LOG_STATUS_MN | \
670 OSAPI_LOG_STATUS_SF | \
671 OSAPI_LOG_STATUS_FN | \
674 typedef struct OSAPI_LogEntry
680 OSAPI_ThreadId thread_id;
690 RTI_UINT32 error_code;
699 OSAPI_LOG_VERBOSITY_SILENT = 0,
701 OSAPI_LOG_VERBOSITY_ERROR = 1,
703 OSAPI_LOG_VERBOSITY_WARNING = 2,
705 OSAPI_LOG_VERBOSITY_DEBUG = 3
706 } OSAPI_LogVerbosity_T;
731 #define OSAPI_LOG_DETAIL_MODULENAME (0x80000000)
732 #define OSAPI_LOG_DETAIL_SOURCEFILE (0x40000000)
733 #define OSAPI_LOG_DETAIL_LINENUMBER (0x20000000)
734 #define OSAPI_LOG_DETAIL_FUNCTIONAME (0x10000000)
735 #define OSAPI_LOG_DETAIL_FORMAT (0x08000000)
736 #define OSAPI_LOG_DETAIL_DATA_ONLY (0x04000000)
738 #define OSAPI_LOG_DETAIL_ALL \
739 (OSAPI_LOG_DETAIL_MODULENAME | \
740 OSAPI_LOG_DETAIL_SOURCEFILE | \
741 OSAPI_LOG_DETAIL_LINENUMBER | \
742 OSAPI_LOG_DETAIL_FUNCTIONAME | \
743 OSAPI_LOG_DETAIL_FORMAT | \
744 OSAPI_LOG_DETAIL_DATA_ONLY)
746 #define OSAPI_LOG_DETAIL_NO_DATA \
747 (OSAPI_LOG_DETAIL_MODULENAME | \
748 OSAPI_LOG_DETAIL_SOURCEFILE | \
749 OSAPI_LOG_DETAIL_LINENUMBER | \
750 OSAPI_LOG_DETAIL_FUNCTIONAME )
752 #define OSAPI_LogProperty_INIITALIZER \
755 OSAPI_LOG_DETAIL_ALL\
759 (*OSAPI_TraceHandler_T)(RTI_UINT32 trace_mask,
762 const char *
const module,
763 const char *
const file,
764 const char *
const function,
766 RTI_INT32 line_no,...);
768 OSAPIDllVariable
extern OSAPI_TraceHandler_T OSAPI_gv_TraceFunction;
769 OSAPIDllVariable
extern void* OSAPI_gv_TraceFunctionParam;
770 OSAPIDllVariable
extern RTI_UINT32 OSAPI_gv_TraceMask;
797 (*OSAPI_LogHandler_T)(
void *param,OSAPI_LogEntry_T *msg,OSAPI_LogKind_T kind,
799 const char *
const module,
800 const char *
const file,
801 const char *
const func,
807 (*OSAPI_LogDisplay_T)(
void *param,OSAPI_LogEntry_T *msg);
809 OSAPIDllVariable
extern OSAPI_LogHandler_T OSAPI_gv_LogFunction;
810 OSAPIDllVariable
extern void* OSAPI_gv_LogFunctionParam;
812 OSAPIDllVariable
extern OSAPI_LogDisplay_T OSAPI_gv_LogDisplayFunction;
813 OSAPIDllVariable
extern void* OSAPI_gv_LogDisplayFunctionParam;
832 MUST_CHECK_RETURN OSAPIDllExport
RTI_BOOL
833 OSAPI_Log_set_log_handler(OSAPI_LogHandler_T handler,
void *param);
848 MUST_CHECK_RETURN OSAPIDllExport
RTI_BOOL
849 OSAPI_Log_get_log_handler(OSAPI_LogHandler_T *handler,
void **param);
867 MUST_CHECK_RETURN OSAPIDllExport
RTI_BOOL
868 OSAPI_Log_set_trace_handler(OSAPI_TraceHandler_T handler,
void *param);
884 MUST_CHECK_RETURN OSAPIDllExport
RTI_BOOL
885 OSAPI_Log_get_trace_handler(OSAPI_TraceHandler_T *handler,
void **param);
901 MUST_CHECK_RETURN OSAPIDllExport
RTI_BOOL
902 OSAPI_Log_set_display_handler(OSAPI_LogDisplay_T handler,
void *param);
917 MUST_CHECK_RETURN OSAPIDllExport
RTI_BOOL
918 OSAPI_Log_get_display_handler(OSAPI_LogDisplay_T *handler,
void **param);
938 MUST_CHECK_RETURN OSAPIDllExport
RTI_BOOL
953 SHOULD_CHECK_RETURN OSAPIDllExport
RTI_BOOL
954 OSAPI_Log_finalize(
void);
967 OSAPI_Log_set_verbosity(OSAPI_LogVerbosity_T verbosity);
976 OSAPI_Trace_set_trace_mask(RTI_UINT32 mask);
995 OSAPI_Log_msg_pN_X2(OSAPI_LogKind_T kind,
996 RTI_INT32 error_code,
997 const char *
const module,
998 const char *
const file,
999 const char *
const func,
1000 RTI_INT32 line,...);
1003 OSAPI_Log_precond(OSAPI_LogKind_T kind,
1004 RTI_INT32 error_code,
1005 const char *
const module,
1006 const char *
const file,
1007 const char *
const func,
1008 RTI_INT32 line,...);
1019 SHOULD_CHECK_RETURN OSAPIDllExport
RTI_BOOL
1020 OSAPI_Log_clear(
void);
1036 MUST_CHECK_RETURN OSAPIDllExport
RTI_BOOL
1037 OSAPI_Log_entry_to_string(OSAPI_LogEntry_T *log_entry,
1038 char *buffer,RTI_INT32 max_buffer);
1053 OSAPIDllExport RTI_INT32
1054 OSAPI_Log_get_last_error_code(
void);
1076 OSAPIDllExport OSAPI_LogVerbosity_T
1077 OSAPI_Log_get_verbosity(
void);