Files
obitools3/src/obitypes.c

96 lines
1.4 KiB
C
Raw Normal View History

/*
* obitypes.c
*
* Created on: 23 mai 2015
* Author: coissac
*/
#include <string.h>
#include "obitypes.h"
#include "obidebug.h"
#include "obierrno.h"
#define DEBUG_LEVEL 0
2015-06-10 15:19:02 +02:00
size_t obi_sizeof(OBIType_t type)
{
2015-05-26 10:38:56 +02:00
size_t size=0;
switch (type) {
case OBI_VOID: size = 1;
break;
case OBI_INT: size = sizeof(obiint_t);
break;
case OBI_FLOAT: size = sizeof(obifloat_t);
break;
case OBI_CHAR: size = sizeof(obichar_t);
break;
case OBI_IDX: size = sizeof(obiidx_t);
break;
default: size = 0;
}
return size;
}
size_t obi_array_sizeof(OBIType_t type, size_t nb_elements, size_t nb_elements_per_line)
{
size_t size;
size_t rsize;
size_t psize;
size = obi_sizeof(type) * nb_elements * nb_elements_per_line;
psize = getpagesize();
rsize = size % psize;
// Round at a size multiple of pagesize
if (rsize)
size = (size / psize) * psize + psize;
return size;
}
char* name_data_type(int data_type)
{
char* name = NULL;
switch (data_type)
{
case OBI_VOID: name = strdup("OBI_VOID");
break;
case OBI_INT: name = strdup("OBI_INT");
break;
case OBI_FLOAT: name = strdup("OBI_FLOAT");
break;
case OBI_CHAR: name = strdup("OBI_CHAR");
break;
case OBI_IDX: name = strdup("OBI_IDX");
break;
}
if (name == NULL)
obidebug(1, "Problem with the data type");
return name;
}