コード例 #1
0
ファイル: pheapgetinfo.c プロジェクト: AlexShiLucky/rtems
bool _Protected_heap_Get_information(
  Heap_Control            *the_heap,
  Heap_Information_block  *the_info
)
{
  if ( !the_heap )
    return false;

  if ( !the_info )
    return false;

  _RTEMS_Lock_allocator();
    _Heap_Get_information( the_heap, the_info );
  _RTEMS_Unlock_allocator();

  return true;
}
コード例 #2
0
ファイル: init.c プロジェクト: gedare/rtems
static void print_info(void)
{
  Heap_Information_block info;

  _Heap_Get_information(&task_stack_heap, &info);

  printf(
    "used blocks = %" PRIuPTR ", "
    "largest used block = %" PRIuPTR ", "
    "used space = %" PRIuPTR "\n"
    "free blocks = %" PRIuPTR ", "
    "largest free block = %" PRIuPTR ", "
    "free space = %" PRIuPTR "\n",
    info.Used.number,
    info.Used.largest,
    info.Used.total,
    info.Free.number,
    info.Free.largest,
    info.Free.total
  );
}
コード例 #3
0
ファイル: regiongetinfo.c プロジェクト: 0871087123/rtems
rtems_status_code rtems_region_get_information(
  rtems_id                id,
  Heap_Information_block *the_info
)
{
  Objects_Locations        location;
  rtems_status_code        return_status;
  register Region_Control *the_region;

  if ( !the_info )
    return RTEMS_INVALID_ADDRESS;

  _RTEMS_Lock_allocator();

    the_region = _Region_Get( id, &location );
    switch ( location ) {

      case OBJECTS_LOCAL:
        _Heap_Get_information( &the_region->Memory, the_info );
        return_status = RTEMS_SUCCESSFUL;
        break;

#if defined(RTEMS_MULTIPROCESSING)
      case OBJECTS_REMOTE:        /* this error cannot be returned */
        break;
#endif

      case OBJECTS_ERROR:
      default:
        return_status = RTEMS_INVALID_ID;
        break;
    }

  _RTEMS_Unlock_allocator();
  return return_status;
}
コード例 #4
0
ファイル: resource_snapshot.c プロジェクト: atgreen/RTEMS
static void get_heap_info(Heap_Control *heap, Heap_Information_block *info)
{
  _Heap_Get_information(heap, info);
  memset(&info->Stats, 0, sizeof(info->Stats));
}