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

util_mem.h (1623B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2#ifndef __SOUND_UTIL_MEM_H
      3#define __SOUND_UTIL_MEM_H
      4
      5#include <linux/mutex.h>
      6/*
      7 *  Copyright (C) 2000 Takashi Iwai <tiwai@suse.de>
      8 *
      9 *  Generic memory management routines for soundcard memory allocation
     10 */
     11
     12/*
     13 * memory block
     14 */
     15struct snd_util_memblk {
     16	unsigned int size;		/* size of this block */
     17	unsigned int offset;		/* zero-offset of this block */
     18	struct list_head list;		/* link */
     19};
     20
     21#define snd_util_memblk_argptr(blk)	(void*)((char*)(blk) + sizeof(struct snd_util_memblk))
     22
     23/*
     24 * memory management information
     25 */
     26struct snd_util_memhdr {
     27	unsigned int size;		/* size of whole data */
     28	struct list_head block;		/* block linked-list header */
     29	int nblocks;			/* # of allocated blocks */
     30	unsigned int used;		/* used memory size */
     31	int block_extra_size;		/* extra data size of chunk */
     32	struct mutex block_mutex;	/* lock */
     33};
     34
     35/*
     36 * prototypes
     37 */
     38struct snd_util_memhdr *snd_util_memhdr_new(int memsize);
     39void snd_util_memhdr_free(struct snd_util_memhdr *hdr);
     40struct snd_util_memblk *snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size);
     41int snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk);
     42int snd_util_mem_avail(struct snd_util_memhdr *hdr);
     43
     44/* functions without mutex */
     45struct snd_util_memblk *__snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size);
     46void __snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk);
     47struct snd_util_memblk *__snd_util_memblk_new(struct snd_util_memhdr *hdr,
     48					      unsigned int units,
     49					      struct list_head *prev);
     50
     51#endif /* __SOUND_UTIL_MEM_H */