fastmem.c
来自「Application (fix point) for playing MP3 」· C语言 代码 · 共 89 行
C
89 行
/****************************************************************************//* * fastmem.c -- Simple routines to access fast memory. * * (C) Copyright 2002, Greg Ungerer (gerg@snapgear.com) *//****************************************************************************/#include <stdio.h>#include <stdlib.h>/****************************************************************************/#ifdef __uClinux__/****************************************************************************/#define MAXALLOCS 8struct atable { int alloced; void *p; size_t size;};struct atable fmem_alloctable[MAXALLOCS];int fmem_atablei;void *fmem_base = (void *) 0x20000000;size_t fmem_alloced;void *fmalloc(size_t size){ void *p; int i; /* See if exact match already */ for (i = 0; (i < MAXALLOCS); i++) { if (size == fmem_alloctable[i].size) { if (fmem_alloctable[i].alloced == 0) { fmem_alloctable[i].alloced = 1; return(fmem_alloctable[i].p); } } } p = fmem_base; fmem_base += size; fmem_alloced += size; fmem_alloctable[fmem_atablei].alloced = 1; fmem_alloctable[fmem_atablei].size = size; fmem_alloctable[fmem_atablei].p = p; fmem_atablei++; return(p);}void ffree(void *ptr){ int i; for (i = 0; (i < MAXALLOCS); i++) { if (ptr == fmem_alloctable[i].p) { fmem_alloctable[i].alloced = 0; return; } } //free(ptr);}/****************************************************************************/#else/****************************************************************************/void *fmalloc(size_t size){ return(malloc(size));}void ffree(void *ptr){ free(ptr);}/****************************************************************************/#endif /* __uClinux__ *//****************************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?