25 #include <sys/queue.h>
26 #include "rdk_moca_hal.h"
45 struct timeval eventTime;
57 RMH_MoCAVersion mocaVersion;
65 RMH_MoCAVersion networkMoCAVer;
66 bool networkMoCAVerValid;
80 pthread_t eventThread;
81 bool eventThreadRunning;
84 pthread_mutex_t eventQueueProtect;
86 struct timeval lastPrint;
88 RMH_LinkStatus linkStatus;
91 uint32_t reconnectSeconds;
93 RMH_LogLevel apiLogLevel;
94 RMH_LogLevel driverLogLevel;
95 const char* appPrefix;
96 bool userSetTimestamps;
99 const char *out_file_name;
105 #define RMH_PrintErr(fmt, ...) RMH_Print(app, NULL, RMH_LOG_ERROR, "ERROR: ", fmt, ##__VA_ARGS__);
106 #define RMH_PrintWrn(fmt, ...) RMH_Print(app, NULL, RMH_LOG_ERROR, "WARNING: ", fmt, ##__VA_ARGS__);
107 #define RMH_PrintMsg(fmt, ...) RMH_Print(app, NULL, RMH_LOG_MESSAGE, "", fmt, ##__VA_ARGS__);
108 #define RMH_PrintMsgT(time, fmt, ...) RMH_Print(app, time, RMH_LOG_MESSAGE, "", fmt, ##__VA_ARGS__);
109 #define RMH_PrintDbg(fmt, ...) RMH_Print(app, NULL, RMH_LOG_DEBUG, "", fmt, ##__VA_ARGS__);
112 void RMH_Print_Raw(
RMHMonitor *app,
struct timeval *time,
const char*fmt, ...);
113 #define RMH_Print(app, time, level, logPrefix, fmt, ...) { \
114 if (app && (app->apiLogLevel & level) == level) { \
115 struct timeval now; \
116 gettimeofday(&now, NULL); \
117 app->lastPrint=now; \
118 if (time != NULL) { \
119 RMH_Print_Raw(app, time, fmt, ##__VA_ARGS__); \
122 RMH_Print_Raw(app, &now, fmt, ##__VA_ARGS__); \
133 RMH_Result RMHMonitor_Semaphore_WaitTimeout(
RMHMonitor_hSemaphore eventHandle,
const int timeoutMsec);
134 void RMHMonitor_Queue_Dequeue(
RMHMonitor *app);
135 void RMHMonitor_Queue_Enqueue(
RMHMonitor *app,
const enum RMH_Event event,
const struct RMH_EventData *eventData);
138 void RMHMonitor_Event_Thread(
void * context);
139 void RMHMonitor_RMHCallback(
const enum RMH_Event event,
const struct RMH_EventData *eventData,
void* userContext);