• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/usr/include/bits/
1/*
2 * Macros to transparently switch between the stack and heap for large
3 * allocations.  The former is useful on MMU systems as it results in
4 * smaller code, but the latter is required on NoMMU systems.  This is
5 * due to small stacks that cannot grow and so doing large allocs will
6 * cause a stack overflow.
7 *
8 * Copyright (C) 2010 Mike Frysinger <vapier@gentoo.org>
9 * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
10 */
11
12#ifndef _UCLIBC_ALLOC_H
13#define _UCLIBC_ALLOC_H
14
15#include <alloca.h>
16#include <stdlib.h>
17
18#ifdef __ARCH_USE_MMU__
19# define stack_heap_alloc(x) alloca(x)
20# define stack_heap_free(x)  do { if (0) free(x); } while (0)
21#else
22# define stack_heap_alloc(x) malloc(x)
23# define stack_heap_free(x)  free(x)
24#endif
25
26#endif
27