cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

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}