uc-sdk
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
mem.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2001-2004 Swedish Institute of Computer Science.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without modification,
6
* are permitted provided that the following conditions are met:
7
*
8
* 1. Redistributions of source code must retain the above copyright notice,
9
* this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright notice,
11
* this list of conditions and the following disclaimer in the documentation
12
* and/or other materials provided with the distribution.
13
* 3. The name of the author may not be used to endorse or promote products
14
* derived from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
19
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
25
* OF SUCH DAMAGE.
26
*
27
* This file is part of the lwIP TCP/IP stack.
28
*
29
* Author: Adam Dunkels <adam@sics.se>
30
*
31
*/
32
#ifndef __LWIP_MEM_H__
33
#define __LWIP_MEM_H__
34
35
#include "
lwip/opt.h
"
36
37
#ifdef __cplusplus
38
extern
"C"
{
39
#endif
40
41
#if MEM_LIBC_MALLOC
42
43
#include <stddef.h>
/* for size_t */
44
45
typedef
size_t
mem_size_t
;
46
47
/* aliases for C library malloc() */
48
#define mem_init()
49
/* in case C library malloc() needs extra protection,
50
* allow these defines to be overridden.
51
*/
52
#ifndef mem_free
53
#define mem_free free
54
#endif
55
#ifndef mem_malloc
56
#define mem_malloc malloc
57
#endif
58
#ifndef mem_calloc
59
#define mem_calloc calloc
60
#endif
61
/* Since there is no C library allocation function to shrink memory without
62
moving it, define this to nothing. */
63
#ifndef mem_trim
64
#define mem_trim(mem, size) (mem)
65
#endif
66
#else
/* MEM_LIBC_MALLOC */
67
68
/* MEM_SIZE would have to be aligned, but using 64000 here instead of
69
* 65535 leaves some room for alignment...
70
*/
71
#if MEM_SIZE > 64000l
72
typedef
u32_t
mem_size_t
;
73
#define MEM_SIZE_F U32_F
74
#else
75
typedef
u16_t
mem_size_t
;
76
#define MEM_SIZE_F U16_F
77
#endif
/* MEM_SIZE > 64000 */
78
79
#if MEM_USE_POOLS
80
81
#define mem_init()
82
84
#define mem_trim(mem, size) (mem)
85
#else
/* MEM_USE_POOLS */
86
/* lwIP alternative malloc */
87
void
mem_init
(
void
);
88
void
*
mem_trim
(
void
*
mem
, mem_size_t size);
89
#endif
/* MEM_USE_POOLS */
90
void
*
mem_malloc
(mem_size_t size);
91
void
*
mem_calloc
(mem_size_t count, mem_size_t size);
92
void
mem_free
(
void
*
mem
);
93
#endif
/* MEM_LIBC_MALLOC */
94
99
#ifndef LWIP_MEM_ALIGN_SIZE
100
#define LWIP_MEM_ALIGN_SIZE(size) (((size) + MEM_ALIGNMENT - 1) & ~(MEM_ALIGNMENT-1))
101
#endif
102
107
#ifndef LWIP_MEM_ALIGN_BUFFER
108
#define LWIP_MEM_ALIGN_BUFFER(size) (((size) + MEM_ALIGNMENT - 1))
109
#endif
110
114
#ifndef LWIP_MEM_ALIGN
115
#define LWIP_MEM_ALIGN(addr) ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1)))
116
#endif
117
118
#ifdef __cplusplus
119
}
120
#endif
121
122
#endif
/* __LWIP_MEM_H__ */
lwip
src
include
lwip
mem.h
Generated on Fri Nov 15 2013 05:00:21 for uc-sdk by
1.8.4