brintos

brintos / linux-shallow public Read only

0
0
Text · 656 B · dcd901d Raw
34 lines · c
1// SPDX-License-Identifier: GPL-2.02#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}34