/* * obitypes.c * * Created on: 23 mai 2015 * Author: coissac */ #include size_t obi_sizeof(OBIType_t type) { 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 nbelements) { size_t size; size_t rsize; size_t psize; size = obi_sizeof(type) * nbelements; psize = getpagesize(); rsize = size % psize; // Round at a size multiple of pagesize if (rsize) size = (size / psize) * psize + psize; return size; }