RTEMS CPU Kit with SuperCore  4.11.3
region.h
Go to the documentation of this file.
1 
22 /* COPYRIGHT (c) 1989-2013.
23  * On-Line Applications Research Corporation (OAR).
24  *
25  * The license and distribution terms for this file may be
26  * found in the file LICENSE in this distribution or at
27  * http://www.rtems.org/license/LICENSE.
28  */
29 
30 #ifndef _RTEMS_RTEMS_REGION_H
31 #define _RTEMS_RTEMS_REGION_H
32 
33 #include <rtems/rtems/attr.h>
34 #include <rtems/rtems/options.h>
35 #include <rtems/rtems/status.h>
36 #include <rtems/rtems/types.h>
37 #include <rtems/score/heap.h>
38 #include <rtems/score/threadq.h>
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
59 typedef struct {
60  Objects_Control Object;
61  Thread_queue_Control Wait_queue; /* waiting threads */
62  void *starting_address; /* physical start addr */
63  uintptr_t length; /* physical length(bytes) */
64  uintptr_t page_size; /* in bytes */
65  uintptr_t maximum_segment_size; /* in bytes */
66  rtems_attribute attribute_set;
67  uint32_t number_of_used_blocks; /* blocks allocated */
68  Heap_Control Memory;
70 
85  rtems_name name,
86  void *starting_address,
87  uintptr_t length,
88  uintptr_t page_size,
89  rtems_attribute attribute_set,
90  rtems_id *id
91 );
92 
110  rtems_id id,
111  void *starting_address,
112  uintptr_t length
113 );
114 
132  rtems_name name,
133  rtems_id *id
134 );
135 
150  rtems_id id,
151  Heap_Information_block *the_info
152 );
153 
171  rtems_id id,
172  Heap_Information_block *the_info
173 );
174 
189  rtems_id id
190 );
191 
215  rtems_id id,
216  uintptr_t size,
217  rtems_option option_set,
218  rtems_interval timeout,
219  void **segment
220 );
221 
238  rtems_id id,
239  void *segment,
240  uintptr_t *size
241 );
242 
260  rtems_id id,
261  void *segment
262 );
263 
288  rtems_id id,
289  void *segment,
290  uintptr_t size,
291  uintptr_t *old_size
292 );
293 
296 #ifdef __cplusplus
297 }
298 #endif
299 
300 #endif
301 /* end of include file */
rtems_status_code rtems_region_delete(rtems_id id)
RTEMS Delete Region.
Definition: regiondelete.c:29
uint32_t rtems_attribute
This defines the type used to contain Classic API attributes.
Definition: attr.h:44
The following defines the Object Control Block used to manage each object local to this node...
Definition: object.h:232
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:80
rtems_status_code rtems_region_get_segment(rtems_id id, uintptr_t size, rtems_option option_set, rtems_interval timeout, void **segment)
RTEMS Get Region Segment.
Definition: regiongetsegment.c:27
rtems_status_code rtems_region_ident(rtems_name name, rtems_id *id)
RTEMS Region Name to Id.
Definition: regionident.c:29
rtems_status_code rtems_region_get_segment_size(rtems_id id, void *segment, uintptr_t *size)
RTEMS Get Region Segment Size.
Definition: regiongetsegmentsize.c:28
This is the structure used to manage sets of tasks which are blocked waiting to acquire a resource...
Definition: threadq.h:171
Information block returned by _Heap_Get_information().
Definition: heap.h:379
Constants and Structures Needed to Declare a Thread Queue.
The following records define the control block used to manage each region.
Definition: region.h:59
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:119
rtems_status_code rtems_region_get_information(rtems_id id, Heap_Information_block *the_info)
RTEMS Get Region Information.
Definition: regiongetinfo.c:29
Heap Handler API.
rtems_status_code
Classic API Status.
Definition: status.h:46
uint32_t rtems_name
Classic API object name type.
Definition: types.h:74
uint32_t rtems_option
The following type defines the control block used to manage option sets.
Definition: options.h:45
Control block used to manage a heap.
Definition: heap.h:342
rtems_status_code rtems_region_create(rtems_name name, void *starting_address, uintptr_t length, uintptr_t page_size, rtems_attribute attribute_set, rtems_id *id)
rtems_region_create
Definition: regioncreate.c:47
rtems_status_code rtems_region_resize_segment(rtems_id id, void *segment, uintptr_t size, uintptr_t *old_size)
Resize RTEMS Region Segment.
Definition: regionresizesegment.c:29
rtems_status_code rtems_region_get_free_information(rtems_id id, Heap_Information_block *the_info)
RTEMS Get Region Free Information.
Definition: regiongetfreeinfo.c:29
rtems_status_code rtems_region_return_segment(rtems_id id, void *segment)
RTEMS Return Region Segment.
Definition: regionreturnsegment.c:37
rtems_status_code rtems_region_extend(rtems_id id, void *starting_address, uintptr_t length)
RTEMS Extend Region.
Definition: regionextend.c:29