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