Skip to content
Snippets Groups Projects
Commit 1d88f4b1 authored by deuce's avatar deuce
Browse files

DLLificonicate.

parent 7e9c9012
No related branches found
No related tags found
No related merge requests found
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
#include "threadwrap.h" /* pthread_self */ #include "threadwrap.h" /* pthread_self */
#include "msg_queue.h" #include "msg_queue.h"
msg_queue_t* msgQueueInit(msg_queue_t* q, long flags) msg_queue_t* DLLCALL msgQueueInit(msg_queue_t* q, long flags)
{ {
if(q==NULL) { if(q==NULL) {
if((q=(msg_queue_t*)malloc(sizeof(msg_queue_t)))==NULL) if((q=(msg_queue_t*)malloc(sizeof(msg_queue_t)))==NULL)
...@@ -63,7 +63,7 @@ msg_queue_t* msgQueueInit(msg_queue_t* q, long flags) ...@@ -63,7 +63,7 @@ msg_queue_t* msgQueueInit(msg_queue_t* q, long flags)
return(q); return(q);
} }
BOOL msgQueueFree(msg_queue_t* q) BOOL DLLCALL msgQueueFree(msg_queue_t* q)
{ {
if(q==NULL) if(q==NULL)
return(FALSE); return(FALSE);
...@@ -77,7 +77,7 @@ BOOL msgQueueFree(msg_queue_t* q) ...@@ -77,7 +77,7 @@ BOOL msgQueueFree(msg_queue_t* q)
return(TRUE); return(TRUE);
} }
long msgQueueAttach(msg_queue_t* q) long DLLCALL msgQueueAttach(msg_queue_t* q)
{ {
if(q==NULL) if(q==NULL)
return(-1); return(-1);
...@@ -87,7 +87,7 @@ long msgQueueAttach(msg_queue_t* q) ...@@ -87,7 +87,7 @@ long msgQueueAttach(msg_queue_t* q)
return(q->refs); return(q->refs);
} }
long msgQueueDetach(msg_queue_t* q) long DLLCALL msgQueueDetach(msg_queue_t* q)
{ {
int refs; int refs;
...@@ -100,7 +100,7 @@ long msgQueueDetach(msg_queue_t* q) ...@@ -100,7 +100,7 @@ long msgQueueDetach(msg_queue_t* q)
return(refs); return(refs);
} }
void* msgQueueSetPrivateData(msg_queue_t* q, void* p) void* DLLCALL msgQueueSetPrivateData(msg_queue_t* q, void* p)
{ {
void* old; void* old;
...@@ -112,7 +112,7 @@ void* msgQueueSetPrivateData(msg_queue_t* q, void* p) ...@@ -112,7 +112,7 @@ void* msgQueueSetPrivateData(msg_queue_t* q, void* p)
return(old); return(old);
} }
void* msgQueueGetPrivateData(msg_queue_t* q) void* DLLCALL msgQueueGetPrivateData(msg_queue_t* q)
{ {
if(q==NULL) if(q==NULL)
return(NULL); return(NULL);
...@@ -141,7 +141,7 @@ static link_list_t* msgQueueWriteList(msg_queue_t* q) ...@@ -141,7 +141,7 @@ static link_list_t* msgQueueWriteList(msg_queue_t* q)
return(&q->in); return(&q->in);
} }
long msgQueueReadLevel(msg_queue_t* q) long DLLCALL msgQueueReadLevel(msg_queue_t* q)
{ {
return listCountNodes(msgQueueReadList(q)); return listCountNodes(msgQueueReadList(q));
} }
...@@ -171,7 +171,7 @@ static BOOL list_wait(link_list_t* list, long timeout) ...@@ -171,7 +171,7 @@ static BOOL list_wait(link_list_t* list, long timeout)
#endif #endif
} }
BOOL msgQueueWait(msg_queue_t* q, long timeout) BOOL DLLCALL msgQueueWait(msg_queue_t* q, long timeout)
{ {
BOOL result; BOOL result;
link_list_t* list = msgQueueReadList(q); link_list_t* list = msgQueueReadList(q);
...@@ -185,7 +185,7 @@ BOOL msgQueueWait(msg_queue_t* q, long timeout) ...@@ -185,7 +185,7 @@ BOOL msgQueueWait(msg_queue_t* q, long timeout)
return(result); return(result);
} }
void* msgQueueRead(msg_queue_t* q, long timeout) void* DLLCALL msgQueueRead(msg_queue_t* q, long timeout)
{ {
link_list_t* list = msgQueueReadList(q); link_list_t* list = msgQueueReadList(q);
...@@ -194,7 +194,7 @@ void* msgQueueRead(msg_queue_t* q, long timeout) ...@@ -194,7 +194,7 @@ void* msgQueueRead(msg_queue_t* q, long timeout)
return listShiftNode(list); return listShiftNode(list);
} }
void* msgQueuePeek(msg_queue_t* q, long timeout) void* DLLCALL msgQueuePeek(msg_queue_t* q, long timeout)
{ {
link_list_t* list = msgQueueReadList(q); link_list_t* list = msgQueueReadList(q);
...@@ -207,7 +207,7 @@ void* msgQueuePeek(msg_queue_t* q, long timeout) ...@@ -207,7 +207,7 @@ void* msgQueuePeek(msg_queue_t* q, long timeout)
return listNodeData(listFirstNode(list)); return listNodeData(listFirstNode(list));
} }
void* msgQueueFind(msg_queue_t* q, const void* data, size_t length) void* DLLCALL msgQueueFind(msg_queue_t* q, const void* data, size_t length)
{ {
link_list_t* list = msgQueueReadList(q); link_list_t* list = msgQueueReadList(q);
list_node_t* node; list_node_t* node;
...@@ -217,22 +217,22 @@ void* msgQueueFind(msg_queue_t* q, const void* data, size_t length) ...@@ -217,22 +217,22 @@ void* msgQueueFind(msg_queue_t* q, const void* data, size_t length)
return listRemoveNode(list,node,/* Free Data? */FALSE); return listRemoveNode(list,node,/* Free Data? */FALSE);
} }
list_node_t* msgQueueFirstNode(msg_queue_t* q) list_node_t* DLLCALL msgQueueFirstNode(msg_queue_t* q)
{ {
return listFirstNode(msgQueueReadList(q)); return listFirstNode(msgQueueReadList(q));
} }
list_node_t* msgQueueLastNode(msg_queue_t* q) list_node_t* DLLCALL msgQueueLastNode(msg_queue_t* q)
{ {
return listLastNode(msgQueueReadList(q)); return listLastNode(msgQueueReadList(q));
} }
long msgQueueWriteLevel(msg_queue_t* q) long DLLCALL msgQueueWriteLevel(msg_queue_t* q)
{ {
return listCountNodes(msgQueueWriteList(q)); return listCountNodes(msgQueueWriteList(q));
} }
BOOL msgQueueWrite(msg_queue_t* q, const void* data, size_t length) BOOL DLLCALL msgQueueWrite(msg_queue_t* q, const void* data, size_t length)
{ {
return listPushNodeData(msgQueueWriteList(q),data,length)!=NULL; return listPushNodeData(msgQueueWriteList(q),data,length)!=NULL;
} }
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include "link_list.h" #include "link_list.h"
#include "threadwrap.h" #include "threadwrap.h"
#include "wrapdll.h"
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
...@@ -58,29 +59,29 @@ typedef struct { ...@@ -58,29 +59,29 @@ typedef struct {
#define MSG_QUEUE_MALLOC (1<<0) /* Queue allocated with malloc() */ #define MSG_QUEUE_MALLOC (1<<0) /* Queue allocated with malloc() */
#define MSG_QUEUE_BIDIR (1<<1) /* Bi-directional message queue */ #define MSG_QUEUE_BIDIR (1<<1) /* Bi-directional message queue */
msg_queue_t* msgQueueInit(msg_queue_t*, long flags); DLLEXPORT msg_queue_t* DLLCALL msgQueueInit(msg_queue_t*, long flags);
BOOL msgQueueFree(msg_queue_t*); DLLEXPORT BOOL DLLCALL msgQueueFree(msg_queue_t*);
long msgQueueAttach(msg_queue_t*); DLLEXPORT long DLLCALL msgQueueAttach(msg_queue_t*);
long msgQueueDetach(msg_queue_t*); DLLEXPORT long DLLCALL msgQueueDetach(msg_queue_t*);
/* Get/Set queue private data */ /* Get/Set queue private data */
void* msgQueueSetPrivateData(msg_queue_t*, void*); DLLEXPORT void* DLLCALL msgQueueSetPrivateData(msg_queue_t*, void*);
void* msgQueueGetPrivateData(msg_queue_t*); DLLEXPORT void* DLLCALL msgQueueGetPrivateData(msg_queue_t*);
BOOL msgQueueWait(msg_queue_t* q, long timeout); DLLEXPORT BOOL DLLCALL msgQueueWait(msg_queue_t* q, long timeout);
long msgQueueReadLevel(msg_queue_t*); DLLEXPORT long DLLCALL msgQueueReadLevel(msg_queue_t*);
void* msgQueueRead(msg_queue_t*, long timeout); DLLEXPORT void* DLLCALL msgQueueRead(msg_queue_t*, long timeout);
void* msgQueuePeek(msg_queue_t*, long timeout); DLLEXPORT void* DLLCALL msgQueuePeek(msg_queue_t*, long timeout);
void* msgQueueFind(msg_queue_t*, const void*, size_t length); DLLEXPORT void* DLLCALL msgQueueFind(msg_queue_t*, const void*, size_t length);
list_node_t* msgQueueFirstNode(msg_queue_t*); DLLEXPORT list_node_t* DLLCALL msgQueueFirstNode(msg_queue_t*);
list_node_t* msgQueueLastNode(msg_queue_t*); DLLEXPORT list_node_t* DLLCALL msgQueueLastNode(msg_queue_t*);
#define msgQueueNextNode(node) listNextNode(node) #define msgQueueNextNode(node) listNextNode(node)
#define msgQueuePrevNode(node) listPrevNode(node) #define msgQueuePrevNode(node) listPrevNode(node)
#define msgQueueNodeData(node) listNodeData(node) #define msgQueueNodeData(node) listNodeData(node)
long msgQueueWriteLevel(msg_queue_t*); DLLEXPORT long DLLCALL msgQueueWriteLevel(msg_queue_t*);
BOOL msgQueueWrite(msg_queue_t*, const void*, size_t length); DLLEXPORT BOOL DLLCALL msgQueueWrite(msg_queue_t*, const void*, size_t length);
#if defined(__cplusplus) #if defined(__cplusplus)
} }
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
#include <iphlpapi.h> /* GetNetworkParams */ #include <iphlpapi.h> /* GetNetworkParams */
#endif #endif
str_list_t getNameServerList(void) str_list_t DLLCALL getNameServerList(void)
{ {
#ifdef __unix__ /* Look up DNS server address */ #ifdef __unix__ /* Look up DNS server address */
FILE* fp; FILE* fp;
...@@ -97,7 +97,7 @@ str_list_t getNameServerList(void) ...@@ -97,7 +97,7 @@ str_list_t getNameServerList(void)
#endif #endif
} }
const char* getHostNameByAddr(const char* str) const char* DLLCALL getHostNameByAddr(const char* str)
{ {
HOSTENT* h; HOSTENT* h;
uint32_t ip; uint32_t ip;
...@@ -121,7 +121,7 @@ const char* getHostNameByAddr(const char* str) ...@@ -121,7 +121,7 @@ const char* getHostNameByAddr(const char* str)
} }
/* In case we want to DLL-export getNameServerList in the future */ /* In case we want to DLL-export getNameServerList in the future */
void freeNameServerList(str_list_t list) void DLLCALL freeNameServerList(str_list_t list)
{ {
strListFree(&list); strListFree(&list);
} }
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include <stddef.h> /* size_t */ #include <stddef.h> /* size_t */
#include "str_list.h" /* string list functions and types */ #include "str_list.h" /* string list functions and types */
#include "wrapdll.h"
#define IPv4_LOCALHOST 0x7f000001U /* 127.0.0.1 */ #define IPv4_LOCALHOST 0x7f000001U /* 127.0.0.1 */
...@@ -47,9 +48,9 @@ ...@@ -47,9 +48,9 @@
extern "C" { extern "C" {
#endif #endif
const char* getHostNameByAddr(const char*); DLLEXPORT const char* DLLCALL getHostNameByAddr(const char*);
str_list_t getNameServerList(void); DLLEXPORT str_list_t DLLCALL getNameServerList(void);
void freeNameServerList(str_list_t); DLLEXPORT void DLLCALL freeNameServerList(str_list_t);
#if defined(__cplusplus) #if defined(__cplusplus)
} }
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
/* Cross-platform date/time functions */ /* Cross-platform date/time functions */
/**************************************/ /**************************************/
xpDateTime_t xpDateTime_create(unsigned year, unsigned month, unsigned day xpDateTime_t DLLCALL xpDateTime_create(unsigned year, unsigned month, unsigned day
,unsigned hour, unsigned minute, float second ,unsigned hour, unsigned minute, float second
,xpTimeZone_t zone) ,xpTimeZone_t zone)
{ {
...@@ -60,7 +60,7 @@ xpDateTime_t xpDateTime_create(unsigned year, unsigned month, unsigned day ...@@ -60,7 +60,7 @@ xpDateTime_t xpDateTime_create(unsigned year, unsigned month, unsigned day
return xpDateTime; return xpDateTime;
} }
xpDateTime_t xpDateTime_now(void) xpDateTime_t DLLCALL xpDateTime_now(void)
{ {
#if defined(_WIN32) #if defined(_WIN32)
SYSTEMTIME systime; SYSTEMTIME systime;
...@@ -84,7 +84,7 @@ xpDateTime_t xpDateTime_now(void) ...@@ -84,7 +84,7 @@ xpDateTime_t xpDateTime_now(void)
#endif #endif
} }
xpTimeZone_t xpTimeZone_local(void) xpTimeZone_t DLLCALL xpTimeZone_local(void)
{ {
#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DARWIN__) #if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DARWIN__)
struct tm tm; struct tm tm;
...@@ -123,7 +123,7 @@ xpTimeZone_t xpTimeZone_local(void) ...@@ -123,7 +123,7 @@ xpTimeZone_t xpTimeZone_local(void)
#endif #endif
} }
time_t xpDateTime_to_time(xpDateTime_t xpDateTime) time_t DLLCALL xpDateTime_to_time(xpDateTime_t xpDateTime)
{ {
struct tm tm; struct tm tm;
...@@ -143,7 +143,7 @@ time_t xpDateTime_to_time(xpDateTime_t xpDateTime) ...@@ -143,7 +143,7 @@ time_t xpDateTime_to_time(xpDateTime_t xpDateTime)
return sane_mktime(&tm); return sane_mktime(&tm);
} }
xpDateTime_t time_to_xpDateTime(time_t ti, xpTimeZone_t zone) xpDateTime_t DLLCALL time_to_xpDateTime(time_t ti, xpTimeZone_t zone)
{ {
xpDateTime_t never; xpDateTime_t never;
struct tm tm; struct tm tm;
...@@ -158,7 +158,7 @@ xpDateTime_t time_to_xpDateTime(time_t ti, xpTimeZone_t zone) ...@@ -158,7 +158,7 @@ xpDateTime_t time_to_xpDateTime(time_t ti, xpTimeZone_t zone)
,zone==xpTimeZone_LOCAL ? xpTimeZone_local() : zone); ,zone==xpTimeZone_LOCAL ? xpTimeZone_local() : zone);
} }
xpDateTime_t gmtime_to_xpDateTime(time_t ti) xpDateTime_t DLLCALL gmtime_to_xpDateTime(time_t ti)
{ {
xpDateTime_t never; xpDateTime_t never;
struct tm tm; struct tm tm;
...@@ -177,7 +177,7 @@ xpDateTime_t gmtime_to_xpDateTime(time_t ti) ...@@ -177,7 +177,7 @@ xpDateTime_t gmtime_to_xpDateTime(time_t ti)
/* Decimal-coded ISO-8601 date/time functions */ /* Decimal-coded ISO-8601 date/time functions */
/**********************************************/ /**********************************************/
isoDate_t xpDateTime_to_isoDateTime(xpDateTime_t xpDateTime, isoTime_t* isoTime) isoDate_t DLLCALL xpDateTime_to_isoDateTime(xpDateTime_t xpDateTime, isoTime_t* isoTime)
{ {
if(isoTime!=NULL) if(isoTime!=NULL)
*isoTime=0; *isoTime=0;
...@@ -191,13 +191,13 @@ isoDate_t xpDateTime_to_isoDateTime(xpDateTime_t xpDateTime, isoTime_t* isoTime) ...@@ -191,13 +191,13 @@ isoDate_t xpDateTime_to_isoDateTime(xpDateTime_t xpDateTime, isoTime_t* isoTime)
return isoDate_create(xpDateTime.date.year,xpDateTime.date.month,xpDateTime.date.day); return isoDate_create(xpDateTime.date.year,xpDateTime.date.month,xpDateTime.date.day);
} }
xpDateTime_t isoDateTime_to_xpDateTime(isoDate_t date, isoTime_t ti) xpDateTime_t DLLCALL isoDateTime_to_xpDateTime(isoDate_t date, isoTime_t ti)
{ {
return xpDateTime_create(isoDate_year(date),isoDate_month(date),isoDate_day(date) return xpDateTime_create(isoDate_year(date),isoDate_month(date),isoDate_day(date)
,isoTime_hour(ti),isoTime_minute(ti),(float)isoTime_second(ti),xpTimeZone_local()); ,isoTime_hour(ti),isoTime_minute(ti),(float)isoTime_second(ti),xpTimeZone_local());
} }
isoDate_t time_to_isoDateTime(time_t ti, isoTime_t* isoTime) isoDate_t DLLCALL time_to_isoDateTime(time_t ti, isoTime_t* isoTime)
{ {
struct tm tm; struct tm tm;
...@@ -214,7 +214,7 @@ isoDate_t time_to_isoDateTime(time_t ti, isoTime_t* isoTime) ...@@ -214,7 +214,7 @@ isoDate_t time_to_isoDateTime(time_t ti, isoTime_t* isoTime)
return isoDate_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday); return isoDate_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday);
} }
isoTime_t time_to_isoTime(time_t ti) isoTime_t DLLCALL time_to_isoTime(time_t ti)
{ {
isoTime_t isoTime; isoTime_t isoTime;
...@@ -223,7 +223,7 @@ isoTime_t time_to_isoTime(time_t ti) ...@@ -223,7 +223,7 @@ isoTime_t time_to_isoTime(time_t ti)
return isoTime; return isoTime;
} }
isoDate_t gmtime_to_isoDateTime(time_t ti, isoTime_t* isoTime) isoDate_t DLLCALL gmtime_to_isoDateTime(time_t ti, isoTime_t* isoTime)
{ {
struct tm tm; struct tm tm;
...@@ -240,7 +240,7 @@ isoDate_t gmtime_to_isoDateTime(time_t ti, isoTime_t* isoTime) ...@@ -240,7 +240,7 @@ isoDate_t gmtime_to_isoDateTime(time_t ti, isoTime_t* isoTime)
return isoDate_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday); return isoDate_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday);
} }
isoTime_t gmtime_to_isoTime(time_t ti) isoTime_t DLLCALL gmtime_to_isoTime(time_t ti)
{ {
isoTime_t isoTime; isoTime_t isoTime;
...@@ -249,7 +249,7 @@ isoTime_t gmtime_to_isoTime(time_t ti) ...@@ -249,7 +249,7 @@ isoTime_t gmtime_to_isoTime(time_t ti)
return isoTime; return isoTime;
} }
time_t isoDateTime_to_time(isoDate_t date, isoTime_t ti) time_t DLLCALL isoDateTime_to_time(isoDate_t date, isoTime_t ti)
{ {
struct tm tm; struct tm tm;
...@@ -273,7 +273,7 @@ time_t isoDateTime_to_time(isoDate_t date, isoTime_t ti) ...@@ -273,7 +273,7 @@ time_t isoDateTime_to_time(isoDate_t date, isoTime_t ti)
/* Conversion from xpDate/Time/Zone to isoDate/Time/Zone Strings */ /* Conversion from xpDate/Time/Zone to isoDate/Time/Zone Strings */
/****************************************************************************/ /****************************************************************************/
char* xpDate_to_isoDateStr(xpDate_t date, const char* sep, char* str, size_t maxlen) char* DLLCALL xpDate_to_isoDateStr(xpDate_t date, const char* sep, char* str, size_t maxlen)
{ {
if(sep==NULL) if(sep==NULL)
sep="-"; sep="-";
...@@ -294,7 +294,7 @@ char* xpDate_to_isoDateStr(xpDate_t date, const char* sep, char* str, size_t max ...@@ -294,7 +294,7 @@ char* xpDate_to_isoDateStr(xpDate_t date, const char* sep, char* str, size_t max
* 2 "14:02:39.82" * 2 "14:02:39.82"
* 3 "14:02:39.829" * 3 "14:02:39.829"
*/ */
char* xpTime_to_isoTimeStr(xpTime_t ti, const char* sep, int precision char* DLLCALL xpTime_to_isoTimeStr(xpTime_t ti, const char* sep, int precision
,char* str, size_t maxlen) ,char* str, size_t maxlen)
{ {
if(sep==NULL) if(sep==NULL)
...@@ -319,7 +319,7 @@ char* xpTime_to_isoTimeStr(xpTime_t ti, const char* sep, int precision ...@@ -319,7 +319,7 @@ char* xpTime_to_isoTimeStr(xpTime_t ti, const char* sep, int precision
return str; return str;
} }
char* xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t zone, const char* sep char* DLLCALL xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t zone, const char* sep
,char *str, size_t maxlen) ,char *str, size_t maxlen)
{ {
xpTimeZone_t tz=zone; xpTimeZone_t tz=zone;
...@@ -342,7 +342,7 @@ char* xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t zone, const char* sep ...@@ -342,7 +342,7 @@ char* xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t zone, const char* sep
return str; return str;
} }
char* xpDateTime_to_isoDateTimeStr(xpDateTime_t dt char* DLLCALL xpDateTime_to_isoDateTimeStr(xpDateTime_t dt
,const char* date_sep, const char* datetime_sep, const char* time_sep ,const char* date_sep, const char* datetime_sep, const char* time_sep
,int precision ,int precision
,char* str, size_t maxlen) ,char* str, size_t maxlen)
...@@ -366,7 +366,7 @@ char* xpDateTime_to_isoDateTimeStr(xpDateTime_t dt ...@@ -366,7 +366,7 @@ char* xpDateTime_to_isoDateTimeStr(xpDateTime_t dt
/* isoDate/Time/Zone String parsing functions */ /* isoDate/Time/Zone String parsing functions */
/****************************************************************************/ /****************************************************************************/
BOOL isoTimeZoneStr_parse(const char* str, xpTimeZone_t* zone) BOOL DLLCALL isoTimeZoneStr_parse(const char* str, xpTimeZone_t* zone)
{ {
unsigned hour=0,minute=0; unsigned hour=0,minute=0;
...@@ -391,7 +391,7 @@ BOOL isoTimeZoneStr_parse(const char* str, xpTimeZone_t* zone) ...@@ -391,7 +391,7 @@ BOOL isoTimeZoneStr_parse(const char* str, xpTimeZone_t* zone)
} }
/* TODO: adjust times in 24:xx:xx format */ /* TODO: adjust times in 24:xx:xx format */
xpDateTime_t isoDateTimeStr_parse(const char* str) xpDateTime_t DLLCALL isoDateTimeStr_parse(const char* str)
{ {
char zone[16]; char zone[16];
xpDateTime_t xpDateTime; xpDateTime_t xpDateTime;
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#define _XPDATETIME_H_ #define _XPDATETIME_H_
#include "gen_defs.h" /* uint32_t and time_t */ #include "gen_defs.h" /* uint32_t and time_t */
#include "wrapdll.h"
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
...@@ -72,14 +73,14 @@ typedef struct { ...@@ -72,14 +73,14 @@ typedef struct {
xpTimeZone_t zone; /* minutes +/- UTC */ xpTimeZone_t zone; /* minutes +/- UTC */
} xpDateTime_t; } xpDateTime_t;
xpDateTime_t xpDateTime_create(unsigned year, unsigned month, unsigned day DLLEXPORT xpDateTime_t DLLCALL xpDateTime_create(unsigned year, unsigned month, unsigned day
,unsigned hour, unsigned minute, float second ,unsigned hour, unsigned minute, float second
,xpTimeZone_t); ,xpTimeZone_t);
xpDateTime_t xpDateTime_now(void); DLLEXPORT xpDateTime_t DLLCALL xpDateTime_now(void);
time_t xpDateTime_to_time(xpDateTime_t); DLLEXPORT time_t DLLCALL xpDateTime_to_time(xpDateTime_t);
xpDateTime_t time_to_xpDateTime(time_t, xpTimeZone_t); DLLEXPORT xpDateTime_t DLLCALL time_to_xpDateTime(time_t, xpTimeZone_t);
xpDateTime_t gmtime_to_xpDateTime(time_t); DLLEXPORT xpDateTime_t DLLCALL gmtime_to_xpDateTime(time_t);
xpTimeZone_t xpTimeZone_local(void); DLLEXPORT xpTimeZone_t DLLCALL xpTimeZone_local(void);
/**********************************************/ /**********************************************/
/* Decimal-coded ISO-8601 date/time functions */ /* Decimal-coded ISO-8601 date/time functions */
...@@ -99,17 +100,17 @@ typedef uint32_t isoTime_t; /* HHMMSS (decimal) */ ...@@ -99,17 +100,17 @@ typedef uint32_t isoTime_t; /* HHMMSS (decimal) */
#define isoTime_minute(time) (((time)/100)%100) #define isoTime_minute(time) (((time)/100)%100)
#define isoTime_second(time) ((time)%100) #define isoTime_second(time) ((time)%100)
BOOL isoTimeZoneStr_parse(const char* str, xpTimeZone_t*); DLLEXPORT BOOL DLLCALL isoTimeZoneStr_parse(const char* str, xpTimeZone_t*);
xpDateTime_t isoDateTimeStr_parse(const char* str); DLLEXPORT xpDateTime_t DLLCALL isoDateTimeStr_parse(const char* str);
/**************************************************************/ /**************************************************************/
/* Conversion between time_t (local and GMT) and isoDate/Time */ /* Conversion between time_t (local and GMT) and isoDate/Time */
/**************************************************************/ /**************************************************************/
isoTime_t time_to_isoTime(time_t); DLLEXPORT isoTime_t DLLCALL time_to_isoTime(time_t);
isoTime_t gmtime_to_isoTime(time_t); DLLEXPORT isoTime_t DLLCALL gmtime_to_isoTime(time_t);
isoDate_t time_to_isoDateTime(time_t, isoTime_t*); DLLEXPORT isoDate_t DLLCALL time_to_isoDateTime(time_t, isoTime_t*);
isoDate_t gmtime_to_isoDateTime(time_t, isoTime_t*); DLLEXPORT isoDate_t DLLCALL gmtime_to_isoDateTime(time_t, isoTime_t*);
time_t isoDateTime_to_time(isoDate_t, isoTime_t); DLLEXPORT time_t DLLCALL isoDateTime_to_time(isoDate_t, isoTime_t);
#define time_to_isoDate(t) time_to_isoDateTime(t,NULL) #define time_to_isoDate(t) time_to_isoDateTime(t,NULL)
#define gmtime_to_isoDate(t) gmtime_to_isoDateTime(t,NULL) #define gmtime_to_isoDate(t) gmtime_to_isoDateTime(t,NULL)
...@@ -120,8 +121,8 @@ time_t isoDateTime_to_time(isoDate_t, isoTime_t); ...@@ -120,8 +121,8 @@ time_t isoDateTime_to_time(isoDate_t, isoTime_t);
#define xpDate_to_isoDate(date) isoDate_create((date).year,(date).month,(date).day) #define xpDate_to_isoDate(date) isoDate_create((date).year,(date).month,(date).day)
#define xpTime_to_isoTime(time) isoTime_create((time).hour,(time).minute,(unsigned)((time).second)) #define xpTime_to_isoTime(time) isoTime_create((time).hour,(time).minute,(unsigned)((time).second))
xpDateTime_t isoDateTime_to_xpDateTime(isoDate_t, isoTime_t); DLLEXPORT xpDateTime_t DLLCALL isoDateTime_to_xpDateTime(isoDate_t, isoTime_t);
isoDate_t xpDateTime_to_isoDateTime(xpDateTime_t, isoTime_t*); DLLEXPORT isoDate_t DLLCALL xpDateTime_to_isoDateTime(xpDateTime_t, isoTime_t*);
/*****************************************************************/ /*****************************************************************/
/* Conversion from xpDate/Time/Zone to isoDate/Time/Zone Strings */ /* Conversion from xpDate/Time/Zone to isoDate/Time/Zone Strings */
...@@ -137,17 +138,17 @@ isoDate_t xpDateTime_to_isoDateTime(xpDateTime_t, isoTime_t*); ...@@ -137,17 +138,17 @@ isoDate_t xpDateTime_to_isoDateTime(xpDateTime_t, isoTime_t*);
* 2 "14.02:39.82" * 2 "14.02:39.82"
* 3 "14.02:39.829" * 3 "14.02:39.829"
*/ */
char* xpDate_to_isoDateStr(xpDate_t DLLEXPORT char* DLLCALL xpDate_to_isoDateStr(xpDate_t
,const char* sep ,const char* sep
,char* str, size_t maxlen); ,char* str, size_t maxlen);
char* xpTime_to_isoTimeStr(xpTime_t DLLEXPORT char* DLLCALL xpTime_to_isoTimeStr(xpTime_t
,const char* sep ,const char* sep
,int precision ,int precision
,char* str, size_t maxlen); ,char* str, size_t maxlen);
char* xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t DLLEXPORT char* DLLCALL xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t
,const char* sep ,const char* sep
,char *str, size_t maxlen); ,char *str, size_t maxlen);
char* xpDateTime_to_isoDateTimeStr(xpDateTime_t DLLEXPORT char* DLLCALL xpDateTime_to_isoDateTimeStr(xpDateTime_t
,const char* date_sep, const char* datetime_sep, const char* time_sep ,const char* date_sep, const char* datetime_sep, const char* time_sep
,int precision ,int precision
,char* str, size_t maxlen); ,char* str, size_t maxlen);
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
struct xpmapping *xpmap(const char *filename, enum xpmap_type type) struct xpmapping* DLLCALL xpmap(const char *filename, enum xpmap_type type)
{ {
int fd; int fd;
void *addr=NULL; void *addr=NULL;
...@@ -91,7 +91,7 @@ struct xpmapping *xpmap(const char *filename, enum xpmap_type type) ...@@ -91,7 +91,7 @@ struct xpmapping *xpmap(const char *filename, enum xpmap_type type)
return ret; return ret;
} }
void xpunmap(struct xpmapping *map) void DLLCALL xpunmap(struct xpmapping *map)
{ {
munmap(map->addr, map->size); munmap(map->addr, map->size);
close(map->fd); close(map->fd);
...@@ -100,7 +100,7 @@ void xpunmap(struct xpmapping *map) ...@@ -100,7 +100,7 @@ void xpunmap(struct xpmapping *map)
#elif defined(_WIN32) #elif defined(_WIN32)
struct xpmapping *xpmap(const char *filename, enum xpmap_type type) struct xpmapping* DLLCALL xpmap(const char *filename, enum xpmap_type type)
{ {
HFILE fd; HFILE fd;
HANDLE md; HANDLE md;
...@@ -149,7 +149,7 @@ struct xpmapping *xpmap(const char *filename, enum xpmap_type type) ...@@ -149,7 +149,7 @@ struct xpmapping *xpmap(const char *filename, enum xpmap_type type)
return ret; return ret;
} }
void xpunmap(struct xpmapping *map) void DLLCALL xpunmap(struct xpmapping *map)
{ {
UnmapViewOfFile(map->addr); UnmapViewOfFile(map->addr);
CloseHandle(map->md); CloseHandle(map->md);
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#define _XPMAP_H #define _XPMAP_H
#include "gen_defs.h" #include "gen_defs.h"
#include "wrapdll.h"
enum xpmap_type { enum xpmap_type {
XPMAP_READ, XPMAP_READ,
...@@ -70,7 +71,7 @@ struct xpmapping { ...@@ -70,7 +71,7 @@ struct xpmapping {
#endif #endif
struct xpmapping *xpmap(const char *filename, enum xpmap_type type); DLLEXPORT struct xpmapping* DLLCALL xpmap(const char *filename, enum xpmap_type type);
void xpunmap(struct xpmapping *map); DLLEXPORT void DLLCALL xpunmap(struct xpmapping *map);
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment