Developer World
Spresense SDK Library
v3.2.0-ebc0364
gnssram.h
1
/****************************************************************************
2
* arch/arm/include/cxd56xx/gnssram.h
3
*
4
* Licensed to the Apache Software Foundation (ASF) under one or more
5
* contributor license agreements. See the NOTICE file distributed with
6
* this work for additional information regarding copyright ownership. The
7
* ASF licenses this file to you under the Apache License, Version 2.0 (the
8
* "License"); you may not use this file except in compliance with the
9
* License. You may obtain a copy of the License at
10
*
11
* http://www.apache.org/licenses/LICENSE-2.0
12
*
13
* Unless required by applicable law or agreed to in writing, software
14
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
15
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
16
* License for the specific language governing permissions and limitations
17
* under the License.
18
*
19
****************************************************************************/
20
21
#ifndef __ARCH_ARM_INCLUDE_CXD56XX_GNSSRAM_H
22
#define __ARCH_ARM_INCLUDE_CXD56XX_GNSSRAM_H
23
24
/****************************************************************************
25
* Included Files
26
****************************************************************************/
27
28
#include <nuttx/config.h>
29
30
#include <nuttx/compiler.h>
31
#include <sys/types.h>
32
#include <stdint.h>
33
34
#ifndef __ASSEMBLY__
35
#ifdef __cplusplus
36
#define EXTERN extern "C"
37
extern
"C"
38
{
39
#else
40
#define EXTERN extern
41
#endif
42
43
/****************************************************************************
44
* Pre-processor Definitions
45
****************************************************************************/
46
47
#define SECTION_GNSSRAM_TEXT ".gnssram.text"
48
#define SECTION_GNSSRAM_DATA ".gnssram.data"
49
#define SECTION_GNSSRAM_BSS ".gnssram.bss"
50
51
/* Locate code and data into GNSS RAM */
52
53
#ifdef CONFIG_CXD56_GNSS_RAM
54
# define GNSSRAM_CODE locate_code(SECTION_GNSSRAM_TEXT)
55
# define GNSSRAM_DATA locate_data(SECTION_GNSSRAM_DATA)
56
# define GNSSRAM_BSS locate_data(SECTION_GNSSRAM_BSS)
57
#else
58
# define GNSSRAM_CODE
59
# define GNSSRAM_DATA
60
# define GNSSRAM_BSS
61
#endif
62
63
/****************************************************************************
64
* Public Functions Prototypes
65
****************************************************************************/
66
67
/****************************************************************************
68
* Name: up_gnssram_initialize
69
*
70
* Description:
71
* Initialize the GNSS heap.
72
*
73
****************************************************************************/
74
75
void
up_gnssram_initialize(
void
);
76
77
/****************************************************************************
78
* Name: up_gnssram_uninitialize
79
*
80
* Description:
81
* Uninitialize the GNSS heap.
82
*
83
****************************************************************************/
84
85
void
up_gnssram_uninitialize(
void
);
86
87
/****************************************************************************
88
* Name: up_gnssram_malloc
89
*
90
* Description:
91
* Allocate memory from the GNSS heap.
92
*
93
****************************************************************************/
94
95
void
*up_gnssram_malloc(
size_t
size);
96
97
/****************************************************************************
98
* Name: up_gnssram_calloc
99
*
100
* Description:
101
* Calculates the size of the allocation and allocate memory from
102
* the GNSS heap.
103
*
104
****************************************************************************/
105
106
void
*up_gnssram_calloc(
size_t
n,
size_t
elem_size);
107
108
/****************************************************************************
109
* Name: up_gnssram_realloc
110
*
111
* Description:
112
* Reallocate memory from the GNSS heap.
113
*
114
****************************************************************************/
115
116
void
*up_gnssram_realloc(
void
*ptr,
size_t
size);
117
118
/****************************************************************************
119
* Name: up_gnssram_zalloc
120
*
121
* Description:
122
* Allocate and zero memory from the GNSS heap.
123
*
124
****************************************************************************/
125
126
void
*up_gnssram_zalloc(
size_t
size);
127
128
/****************************************************************************
129
* Name: up_gnssram_free
130
*
131
* Description:
132
* Free memory from the GNSS heap.
133
*
134
****************************************************************************/
135
136
void
up_gnssram_free(
void
*mem);
137
138
/****************************************************************************
139
* Name: up_gnssram_memalign
140
*
141
* Description:
142
* memalign requests more than enough space from malloc, finds a region
143
* within that chunk that meets the alignment request and then frees any
144
* leading or trailing space.
145
*
146
* The alignment argument must be a power of two (not checked). 8-byte
147
* alignment is guaranteed by normal malloc calls.
148
*
149
****************************************************************************/
150
151
void
*up_gnssram_memalign(
size_t
alignment,
size_t
size);
152
153
/****************************************************************************
154
* Name: up_gnssram_heapmember
155
*
156
* Description:
157
* Check if an address lies in the GNSS heap.
158
*
159
* Parameters:
160
* mem - The address to check
161
*
162
* Return Value:
163
* true if the address is a member of the GNSS heap. false if not
164
*
165
****************************************************************************/
166
167
bool
up_gnssram_heapmember(
void
*mem);
168
169
/****************************************************************************
170
* Name: up_gnssram_mallinfo
171
*
172
* Description:
173
* mallinfo returns a copy of updated current heap information for the
174
* GNSS heap.
175
*
176
****************************************************************************/
177
178
struct
mallinfo up_gnssram_mallinfo(void);
179
180
#undef EXTERN
181
#if defined(__cplusplus)
182
}
183
#endif
184
#endif
/* __ASSEMBLY__ */
185
186
#endif
/* __ARCH_ARM_INCLUDE_CXD56XX_GNSSRAM_H */
spresense
nuttx
arch
arm
include
cxd56xx
gnssram.h
Generated by
1.9.4