forked from Imagelibrary/rtems
2000-10-18 Joel Sherrill <joel@OARcorp.com>
* src/regiongetinfo.c, include/rtems/rtems/region.h, include/rtems/rtems/types.h, src/Makefile.am: Added region_get_information() and information control block. * src/regiongetinfo.c: New file.
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
2000-10-18 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* src/regiongetinfo.c, include/rtems/rtems/region.h,
|
||||||
|
include/rtems/rtems/types.h, src/Makefile.am: Added
|
||||||
|
region_get_information() and information control block.
|
||||||
|
* src/regiongetinfo.c: New file.
|
||||||
|
|
||||||
2000-09-29 Stephan Merker <merker@decrc.abb.de>
|
2000-09-29 Stephan Merker <merker@decrc.abb.de>
|
||||||
|
|
||||||
* include/rtems/rtems/ratemon.h, src/ratemonperiod.c,
|
* include/rtems/rtems/ratemon.h, src/ratemonperiod.c,
|
||||||
|
|||||||
@@ -128,6 +128,21 @@ rtems_status_code rtems_region_ident(
|
|||||||
Objects_Id *id
|
Objects_Id *id
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* rtems_region_ident
|
||||||
|
*
|
||||||
|
* DESCRIPTION:
|
||||||
|
*
|
||||||
|
* This routine implements the rtems_region_get_information directive.
|
||||||
|
* This directive returns information about the heap associated with
|
||||||
|
* this region.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_status_code rtems_region_get_information(
|
||||||
|
Objects_Id id,
|
||||||
|
Heap_Information_block *the_info
|
||||||
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rtems_region_delete
|
* rtems_region_delete
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <rtems/score/heap.h>
|
||||||
#include <rtems/score/object.h>
|
#include <rtems/score/object.h>
|
||||||
#include <rtems/score/priority.h>
|
#include <rtems/score/priority.h>
|
||||||
#include <rtems/score/tod.h>
|
#include <rtems/score/tod.h>
|
||||||
@@ -61,6 +62,12 @@ typedef Context_Control rtems_context;
|
|||||||
typedef Context_Control_fp rtems_context_fp;
|
typedef Context_Control_fp rtems_context_fp;
|
||||||
typedef CPU_Interrupt_frame rtems_interrupt_frame;
|
typedef CPU_Interrupt_frame rtems_interrupt_frame;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Region information block
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef Heap_Information_block region_information_block;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Time related
|
* Time related
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ SIGNAL_C_FILES = signal.c signalcatch.c signalsend.c
|
|||||||
|
|
||||||
REGION_C_FILES = region.c regioncreate.c regiondelete.c regionextend.c \
|
REGION_C_FILES = region.c regioncreate.c regiondelete.c regionextend.c \
|
||||||
regiongetsegment.c regiongetsegmentsize.c regionident.c \
|
regiongetsegment.c regiongetsegmentsize.c regionident.c \
|
||||||
regionreturnsegment.c
|
regionreturnsegment.c regiongetinfo.c
|
||||||
|
|
||||||
PARTITION_C_FILES = part.c partcreate.c partdelete.c partgetbuffer.c \
|
PARTITION_C_FILES = part.c partcreate.c partdelete.c partgetbuffer.c \
|
||||||
partident.c partreturnbuffer.c
|
partident.c partreturnbuffer.c
|
||||||
|
|||||||
71
c/src/exec/rtems/src/regiongetinfo.c
Normal file
71
c/src/exec/rtems/src/regiongetinfo.c
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
* Region Manager
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1999.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <rtems/system.h>
|
||||||
|
#include <rtems/rtems/status.h>
|
||||||
|
#include <rtems/rtems/support.h>
|
||||||
|
#include <rtems/score/object.h>
|
||||||
|
#include <rtems/rtems/options.h>
|
||||||
|
#include <rtems/rtems/region.h>
|
||||||
|
#include <rtems/score/states.h>
|
||||||
|
#include <rtems/score/thread.h>
|
||||||
|
|
||||||
|
/*PAGE
|
||||||
|
*
|
||||||
|
* rtems_region_get_information
|
||||||
|
*
|
||||||
|
* This directive will return information about the region specified.
|
||||||
|
*
|
||||||
|
* Input parameters:
|
||||||
|
* id - region id
|
||||||
|
* the_info - pointer to region information block
|
||||||
|
*
|
||||||
|
* Output parameters:
|
||||||
|
* *the_info - region information block filled in
|
||||||
|
* RTEMS_SUCCESSFUL - if successful
|
||||||
|
* error code - if unsuccessful
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_status_code rtems_region_get_information(
|
||||||
|
Objects_Id id,
|
||||||
|
Heap_Information_block *the_info
|
||||||
|
)
|
||||||
|
{
|
||||||
|
register Region_Control *the_region;
|
||||||
|
Objects_Locations location;
|
||||||
|
Thread_Control *executing;
|
||||||
|
|
||||||
|
if ( !the_info )
|
||||||
|
return RTEMS_INVALID_ADDRESS;
|
||||||
|
|
||||||
|
the_region = _Region_Get( id, &location );
|
||||||
|
switch ( location ) {
|
||||||
|
case OBJECTS_REMOTE: /* this error cannot be returned */
|
||||||
|
return RTEMS_INTERNAL_ERROR;
|
||||||
|
|
||||||
|
case OBJECTS_ERROR:
|
||||||
|
return RTEMS_INVALID_ID;
|
||||||
|
|
||||||
|
case OBJECTS_LOCAL:
|
||||||
|
|
||||||
|
if ( _Heap_Get_information( &the_region->Memory, the_info ) ) {
|
||||||
|
_Thread_Enable_dispatch();
|
||||||
|
return RTEMS_SUCCESSFUL;
|
||||||
|
}
|
||||||
|
_Thread_Enable_dispatch();
|
||||||
|
return RTEMS_INVALID_ADDRESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */
|
||||||
|
}
|
||||||
@@ -1,3 +1,10 @@
|
|||||||
|
2000-10-18 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* src/regiongetinfo.c, include/rtems/rtems/region.h,
|
||||||
|
include/rtems/rtems/types.h, src/Makefile.am: Added
|
||||||
|
region_get_information() and information control block.
|
||||||
|
* src/regiongetinfo.c: New file.
|
||||||
|
|
||||||
2000-09-29 Stephan Merker <merker@decrc.abb.de>
|
2000-09-29 Stephan Merker <merker@decrc.abb.de>
|
||||||
|
|
||||||
* include/rtems/rtems/ratemon.h, src/ratemonperiod.c,
|
* include/rtems/rtems/ratemon.h, src/ratemonperiod.c,
|
||||||
|
|||||||
@@ -128,6 +128,21 @@ rtems_status_code rtems_region_ident(
|
|||||||
Objects_Id *id
|
Objects_Id *id
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* rtems_region_ident
|
||||||
|
*
|
||||||
|
* DESCRIPTION:
|
||||||
|
*
|
||||||
|
* This routine implements the rtems_region_get_information directive.
|
||||||
|
* This directive returns information about the heap associated with
|
||||||
|
* this region.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_status_code rtems_region_get_information(
|
||||||
|
Objects_Id id,
|
||||||
|
Heap_Information_block *the_info
|
||||||
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rtems_region_delete
|
* rtems_region_delete
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <rtems/score/heap.h>
|
||||||
#include <rtems/score/object.h>
|
#include <rtems/score/object.h>
|
||||||
#include <rtems/score/priority.h>
|
#include <rtems/score/priority.h>
|
||||||
#include <rtems/score/tod.h>
|
#include <rtems/score/tod.h>
|
||||||
@@ -61,6 +62,12 @@ typedef Context_Control rtems_context;
|
|||||||
typedef Context_Control_fp rtems_context_fp;
|
typedef Context_Control_fp rtems_context_fp;
|
||||||
typedef CPU_Interrupt_frame rtems_interrupt_frame;
|
typedef CPU_Interrupt_frame rtems_interrupt_frame;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Region information block
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef Heap_Information_block region_information_block;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Time related
|
* Time related
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ SIGNAL_C_FILES = signal.c signalcatch.c signalsend.c
|
|||||||
|
|
||||||
REGION_C_FILES = region.c regioncreate.c regiondelete.c regionextend.c \
|
REGION_C_FILES = region.c regioncreate.c regiondelete.c regionextend.c \
|
||||||
regiongetsegment.c regiongetsegmentsize.c regionident.c \
|
regiongetsegment.c regiongetsegmentsize.c regionident.c \
|
||||||
regionreturnsegment.c
|
regionreturnsegment.c regiongetinfo.c
|
||||||
|
|
||||||
PARTITION_C_FILES = part.c partcreate.c partdelete.c partgetbuffer.c \
|
PARTITION_C_FILES = part.c partcreate.c partdelete.c partgetbuffer.c \
|
||||||
partident.c partreturnbuffer.c
|
partident.c partreturnbuffer.c
|
||||||
|
|||||||
71
cpukit/rtems/src/regiongetinfo.c
Normal file
71
cpukit/rtems/src/regiongetinfo.c
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
* Region Manager
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* COPYRIGHT (c) 1989-1999.
|
||||||
|
* On-Line Applications Research Corporation (OAR).
|
||||||
|
*
|
||||||
|
* The license and distribution terms for this file may be
|
||||||
|
* found in the file LICENSE in this distribution or at
|
||||||
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <rtems/system.h>
|
||||||
|
#include <rtems/rtems/status.h>
|
||||||
|
#include <rtems/rtems/support.h>
|
||||||
|
#include <rtems/score/object.h>
|
||||||
|
#include <rtems/rtems/options.h>
|
||||||
|
#include <rtems/rtems/region.h>
|
||||||
|
#include <rtems/score/states.h>
|
||||||
|
#include <rtems/score/thread.h>
|
||||||
|
|
||||||
|
/*PAGE
|
||||||
|
*
|
||||||
|
* rtems_region_get_information
|
||||||
|
*
|
||||||
|
* This directive will return information about the region specified.
|
||||||
|
*
|
||||||
|
* Input parameters:
|
||||||
|
* id - region id
|
||||||
|
* the_info - pointer to region information block
|
||||||
|
*
|
||||||
|
* Output parameters:
|
||||||
|
* *the_info - region information block filled in
|
||||||
|
* RTEMS_SUCCESSFUL - if successful
|
||||||
|
* error code - if unsuccessful
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_status_code rtems_region_get_information(
|
||||||
|
Objects_Id id,
|
||||||
|
Heap_Information_block *the_info
|
||||||
|
)
|
||||||
|
{
|
||||||
|
register Region_Control *the_region;
|
||||||
|
Objects_Locations location;
|
||||||
|
Thread_Control *executing;
|
||||||
|
|
||||||
|
if ( !the_info )
|
||||||
|
return RTEMS_INVALID_ADDRESS;
|
||||||
|
|
||||||
|
the_region = _Region_Get( id, &location );
|
||||||
|
switch ( location ) {
|
||||||
|
case OBJECTS_REMOTE: /* this error cannot be returned */
|
||||||
|
return RTEMS_INTERNAL_ERROR;
|
||||||
|
|
||||||
|
case OBJECTS_ERROR:
|
||||||
|
return RTEMS_INVALID_ID;
|
||||||
|
|
||||||
|
case OBJECTS_LOCAL:
|
||||||
|
|
||||||
|
if ( _Heap_Get_information( &the_region->Memory, the_info ) ) {
|
||||||
|
_Thread_Enable_dispatch();
|
||||||
|
return RTEMS_SUCCESSFUL;
|
||||||
|
}
|
||||||
|
_Thread_Enable_dispatch();
|
||||||
|
return RTEMS_INVALID_ADDRESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user