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 xyarray__new(int xlen,int ylen,size_t entry_size)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 xyarray__reset(struct xyarray * xy)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 xyarray__delete(struct xyarray * xy)30void xyarray__delete(struct xyarray *xy) 31 { 32 free(xy); 33 } 34