#include <stdlib.h> #include <stdio.h> #include <assert.h> #include "chunk_info.h" extern void chunk_info_init(chunk_info_t *ci, int type, const int dimensions[2], int y, int x, bool allocate_data) { ci->dimensions[0] = dimensions[0]; ci->dimensions[1] = dimensions[1]; ci->count = (size_t) ci->dimensions[0] * (size_t) ci->dimensions[1]; if (allocate_data) { chunk_info_allocate_data(ci, type); } ci->y = y; ci->x = x; } extern void chunk_info_allocate_data(chunk_info_t *ci, int type) { ci->data = calloc(ci->count, (size_t) type); assert(ci->data != NULL); } void chunk_info_print(chunk_info_t *ci) { printf("[chunk_info_t] data = %p, dimensions = [%d][%d], count = %zu, YX = (%d, %d)\n", ci->data, ci->dimensions[0], ci->dimensions[1], ci->count, ci->y, ci->x); } extern void chunk_info_free(chunk_info_t *ci) { free(ci->data); }