160 lines
5.0 KiB
C
160 lines
5.0 KiB
C
#ifndef __MYDDAS_H__
|
|
#define __MYDDAS_H__
|
|
|
|
#include "config.h"
|
|
#include <stdio.h>
|
|
|
|
#ifdef MYDDAS_ODBC
|
|
#include <sql.h>
|
|
#endif
|
|
|
|
#ifdef MYDDAS_MYSQL
|
|
#include <mysql/mysql.h>
|
|
#endif
|
|
|
|
/* MYDDAS TYPES */
|
|
/* sizeof(MyddasPointer) Equal to the size of a integer on the given architecture */
|
|
/* sizeof(MyddasInt32) = 4 (Always) */
|
|
/* sizeof(MyddasUInt32) = 4 (Always) */
|
|
|
|
#if SIZEOF_INT_P==4
|
|
|
|
# if SIZEOF_INT==4
|
|
/* */ typedef int MyddasInt;
|
|
/* */ typedef unsigned int MyddasUInt;
|
|
/* */ typedef unsigned int MyddasPointer;
|
|
/* */ typedef int MyddasInt32;
|
|
/* */ typedef unsigned int MyddasUInt32;
|
|
# elif SIZEOF_LONG_INT==4
|
|
/* */ typedef long int MyddasInt;
|
|
/* */ typedef unsigned long int MyddasUInt;
|
|
/* */ typedef unsigned long int MyddasPointer;
|
|
/* */ typedef long int MyddasInt32;
|
|
/* */ typedef unsigned long int MyddasUInt32;
|
|
# else
|
|
# error MYDDAS require integer types of the same size as a pointer
|
|
# endif
|
|
|
|
# if SIZEOF_SHORT_INT==2
|
|
/* */ typedef short int MyddasSInt;
|
|
/* */ typedef unsigned short int MyddasUSInt;
|
|
# else
|
|
# error MYDDAS requires integer types half the size of a pointer
|
|
# endif
|
|
|
|
# if SIZEOF_LONG_INT==8
|
|
/* */ typedef long int MyddasLInt;
|
|
/* */ typedef unsigned long int MyddasULInt;
|
|
# elif SIZEOF_LONG_LONG_INT==8
|
|
/* */ typedef long long int MyddasLInt;
|
|
/* */ typedef unsigned long long int MyddasULInt;
|
|
# else
|
|
# error MYDDAS requires integer types double the size of a pointer
|
|
# endif
|
|
|
|
#elif SIZEOF_INT_P==8
|
|
|
|
# if SIZEOF_INT==8
|
|
/* */ typedef int MyddasInt;
|
|
/* */ typedef unsigned int MyddasUInt;
|
|
/* */ typedef int MyddasLInt;
|
|
/* */ typedef unsigned int MyddasULInt;
|
|
/* */ typedef unsigned int MyddasPointer;
|
|
# elif SIZEOF_LONG_INT==8
|
|
/* */ typedef long int MyddasInt;
|
|
/* */ typedef unsigned long int MyddasUInt;
|
|
/* */ typedef int MyddasLInt;
|
|
/* */ typedef unsigned int MyddasULInt;
|
|
/* */ typedef unsigned long int MyddasPointer;
|
|
# elif SIZEOF_LONG_LONG_INT==8
|
|
/* */ typedef long long int MyddasInt;
|
|
/* */ typedef unsigned long long int MyddasUInt;
|
|
/* */ typedef int MyddasLInt;
|
|
/* */ typedef unsigned int MyddasULInt;
|
|
/* */ typedef unsigned long long int MyddasPointer;
|
|
# else
|
|
# error MYDDAS requires integer types of the same size as a pointer
|
|
# endif
|
|
|
|
# if SIZEOF_SHORT_INT==4
|
|
/* */ typedef short int MyddasSInt;
|
|
/* */ typedef unsigned short int MyddasUSInt;
|
|
/* */ typedef short int MyddasInt32;
|
|
/* */ typedef unsigned short int MyddasUInt32;
|
|
# elif SIZEOF_INT==4
|
|
/* */ typedef int MyddasSInt;
|
|
/* */ typedef unsigned int MyddasUSInt;
|
|
/* */ typedef int MyddasInt32;
|
|
/* */ typedef unsigned int MyddasUInt32;
|
|
# else
|
|
# error MYDDAS requires integer types half the size of a pointer
|
|
# endif
|
|
|
|
#else
|
|
# error MYDDAS requires pointers of size 4 or 8
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/* Passar para o myddas_statictics.h ???????? */
|
|
#ifdef MYDDAS_STATS
|
|
#include <time.h>
|
|
#include <sys/time.h>
|
|
#endif
|
|
|
|
typedef struct myddas_global *MYDDAS_GLOBAL;
|
|
typedef struct myddas_util_query *MYDDAS_UTIL_QUERY;
|
|
typedef struct myddas_list_connection *MYDDAS_UTIL_CONNECTION;
|
|
typedef struct myddas_list_preds *MYDDAS_UTIL_PREDICATE;
|
|
|
|
#ifdef MYDDAS_STATS
|
|
typedef struct myddas_stats_time_struct *MYDDAS_STATS_TIME;
|
|
typedef struct myddas_global_stats *MYDDAS_GLOBAL_STATS;
|
|
typedef struct myddas_stats_struct *MYDDAS_STATS_STRUCT;
|
|
#endif
|
|
|
|
#ifdef DEBUG
|
|
#define MYDDAS_MALLOC(POINTER,TYPE) \
|
|
{ \
|
|
POINTER = (TYPE *) malloc(sizeof(TYPE)); \
|
|
Yap_REGS.MYDDAS_GLOBAL_POINTER->memory_allocated+=sizeof(TYPE); \
|
|
/*printf ("MALLOC %p %s %d\n",POINTER,__FILE__,__LINE__);*/ \
|
|
Yap_REGS.MYDDAS_GLOBAL_POINTER->malloc_called++; \
|
|
}
|
|
#else
|
|
#define MYDDAS_MALLOC(POINTER,TYPE) \
|
|
{ \
|
|
POINTER = (TYPE *) malloc(sizeof(TYPE)); \
|
|
}
|
|
#endif
|
|
|
|
#ifdef DEBUG
|
|
#define MYDDAS_FREE(POINTER,TYPE) \
|
|
{ \
|
|
Yap_REGS.MYDDAS_GLOBAL_POINTER->memory_freed+=sizeof(TYPE); \
|
|
Yap_REGS.MYDDAS_GLOBAL_POINTER->free_called++; \
|
|
/*printf ("FREE %p %s %d\n",POINTER,__FILE__,__LINE__);*/ \
|
|
free(POINTER); \
|
|
}
|
|
#else
|
|
#define MYDDAS_FREE(POINTER,TYPE) \
|
|
{ \
|
|
free(POINTER); \
|
|
}
|
|
#endif
|
|
|
|
#ifdef DEBUG
|
|
#define MYDDAS_MEMORY_MALLOC_NR(NUMBER) \
|
|
NUMBER = Yap_REGS.MYDDAS_GLOBAL_POINTER->malloc_called;
|
|
#define MYDDAS_MEMORY_MALLOC_SIZE(NUMBER) \
|
|
NUMBER = Yap_REGS.MYDDAS_GLOBAL_POINTER->memory_allocated;
|
|
#define MYDDAS_MEMORY_FREE_NR(NUMBER) \
|
|
NUMBER = Yap_REGS.MYDDAS_GLOBAL_POINTER->free_called;
|
|
#define MYDDAS_MEMORY_FREE_SIZE(NUMBER) \
|
|
NUMBER = Yap_REGS.MYDDAS_GLOBAL_POINTER->memory_freed;
|
|
#endif
|
|
|
|
|
|
#endif /*__MYDDAS_H__*/
|