xyarray.c (656B)
1// SPDX-License-Identifier: GPL-2.0 2#include <internal/xyarray.h> 3#include <linux/zalloc.h> 4#include <stdlib.h> 5#include <string.h> 6 7struct xyarray *xyarray__new(int xlen, int ylen, size_t entry_size) 8{ 9 size_t row_size = ylen * entry_size; 10 struct xyarray *xy = zalloc(sizeof(*xy) + xlen * row_size); 11 12 if (xy != NULL) { 13 xy->entry_size = entry_size; 14 xy->row_size = row_size; 15 xy->entries = xlen * ylen; 16 xy->max_x = xlen; 17 xy->max_y = ylen; 18 } 19 20 return xy; 21} 22 23void xyarray__reset(struct xyarray *xy) 24{ 25 size_t n = xy->entries * xy->entry_size; 26 27 memset(xy->contents, 0, n); 28} 29 30void xyarray__delete(struct xyarray *xy) 31{ 32 free(xy); 33}