Mac OS X compilation

This commit is contained in:
def 2014-09-11 21:38:23 +02:00
parent efeb2b9417
commit a36358190b
4 changed files with 79 additions and 69 deletions

View file

@ -88,6 +88,7 @@ void dbg_break()
*((volatile unsigned*)0) = 0x0;
}
#if !defined(CONF_PLATFORM_MACOSX)
#define QUEUE_SIZE 16
typedef struct
@ -113,75 +114,6 @@ int queue_full(Queue *q)
return ((q->end+1) % QUEUE_SIZE) == q->begin;
}
void dbg_msg(const char *sys, const char *fmt, ...)
{
va_list args;
char *msg;
int len;
int e;
//str_format(str, sizeof(str), "[%08x][%s]: ", (int)time(0), sys);
time_t rawtime;
struct tm* timeinfo;
char timestr [80];
time ( &rawtime );
timeinfo = localtime ( &rawtime );
strftime (timestr,sizeof(timestr),"%y-%m-%d %H:%M:%S",timeinfo);
if(dbg_msg_threaded)
{
semaphore_wait(&log_queue.notfull);
semaphore_wait(&log_queue.mutex);
e = queue_empty(&log_queue);
str_format(log_queue.q[log_queue.end], sizeof(log_queue.q[log_queue.end]), "[%s][%s]: ", timestr, sys);
len = strlen(log_queue.q[log_queue.end]);
msg = (char *)log_queue.q[log_queue.end] + len;
va_start(args, fmt);
#if defined(CONF_FAMILY_WINDOWS)
_vsnprintf(msg, sizeof(log_queue.q[log_queue.end])-len, fmt, args);
#else
vsnprintf(msg, sizeof(log_queue.q[log_queue.end])-len, fmt, args);
#endif
va_end(args);
log_queue.end = (log_queue.end + 1) % QUEUE_SIZE;
if(e)
semaphore_signal(&log_queue.notempty);
if(!queue_full(&log_queue))
semaphore_signal(&log_queue.notfull);
semaphore_signal(&log_queue.mutex);
}
else
{
char str[1024*4];
int i;
str_format(str, sizeof(str), "[%s][%s]: ", timestr, sys);
len = strlen(str);
msg = (char *)str + len;
va_start(args, fmt);
#if defined(CONF_FAMILY_WINDOWS)
_vsnprintf(msg, sizeof(str)-len, fmt, args);
#else
vsnprintf(msg, sizeof(str)-len, fmt, args);
#endif
va_end(args);
for(i = 0; i < num_loggers; i++)
loggers[i](str);
}
}
void dbg_msg_thread(void *v)
{
char str[1024*4];
@ -231,6 +163,78 @@ void dbg_enable_threaded()
pthread_detach((pthread_t)Thread);
#endif
}
#endif
void dbg_msg(const char *sys, const char *fmt, ...)
{
va_list args;
char *msg;
int len;
int e;
//str_format(str, sizeof(str), "[%08x][%s]: ", (int)time(0), sys);
time_t rawtime;
struct tm* timeinfo;
char timestr [80];
time ( &rawtime );
timeinfo = localtime ( &rawtime );
strftime (timestr,sizeof(timestr),"%y-%m-%d %H:%M:%S",timeinfo);
#if !defined(CONF_PLATFORM_MACOSX)
if(dbg_msg_threaded)
{
semaphore_wait(&log_queue.notfull);
semaphore_wait(&log_queue.mutex);
e = queue_empty(&log_queue);
str_format(log_queue.q[log_queue.end], sizeof(log_queue.q[log_queue.end]), "[%s][%s]: ", timestr, sys);
len = strlen(log_queue.q[log_queue.end]);
msg = (char *)log_queue.q[log_queue.end] + len;
va_start(args, fmt);
#if defined(CONF_FAMILY_WINDOWS)
_vsnprintf(msg, sizeof(log_queue.q[log_queue.end])-len, fmt, args);
#else
vsnprintf(msg, sizeof(log_queue.q[log_queue.end])-len, fmt, args);
#endif
va_end(args);
log_queue.end = (log_queue.end + 1) % QUEUE_SIZE;
if(e)
semaphore_signal(&log_queue.notempty);
if(!queue_full(&log_queue))
semaphore_signal(&log_queue.notfull);
semaphore_signal(&log_queue.mutex);
}
else
#endif
{
char str[1024*4];
int i;
str_format(str, sizeof(str), "[%s][%s]: ", timestr, sys);
len = strlen(str);
msg = (char *)str + len;
va_start(args, fmt);
#if defined(CONF_FAMILY_WINDOWS)
_vsnprintf(msg, sizeof(str)-len, fmt, args);
#else
vsnprintf(msg, sizeof(str)-len, fmt, args);
#endif
va_end(args);
for(i = 0; i < num_loggers; i++)
loggers[i](str);
}
}
static void logger_stdout(const char *line)
{

View file

@ -1176,7 +1176,9 @@ void swap_endian(void *data, unsigned elem_size, unsigned num);
typedef void (*DBG_LOGGER)(const char *line);
void dbg_logger(DBG_LOGGER logger);
#if !defined(CONF_PLATFORM_MACOSX)
void dbg_enable_threaded();
#endif
void dbg_logger_stdout();
void dbg_logger_debugger();
void dbg_logger_file(const char *filename);

View file

@ -3045,7 +3045,9 @@ int main(int argc, const char **argv) // ignore_convention
}
#endif
#if !defined(CONF_PLATFORM_MACOSX)
dbg_enable_threaded();
#endif
CClient *pClient = CreateClient();
IKernel *pKernel = IKernel::Create();

View file

@ -1964,7 +1964,9 @@ static CServer *CreateServer() { return new CServer(); }
int main(int argc, const char **argv) // ignore_convention
{
#if !defined(CONF_PLATFORM_MACOSX)
dbg_enable_threaded();
#endif
#if defined(CONF_FAMILY_WINDOWS)
for(int i = 1; i < argc; i++) // ignore_convention
{