OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [exec/] [rtems/] [macros/] [rtems/] [rtems/] [part.inl] - Rev 173

Compare with Previous | Blame | View Log

/*  part.inl
 *
 *  This file contains the macro implementation of all inlined routines
 *  in the Partition 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: part.inl,v 1.2 2001-09-27 11:59:19 chris Exp $
 */

#ifndef __PARTITION_inl
#define __PARTITION_inl

/*PAGE
 *
 *  _Partition_Allocate_buffer
 *
 */

#define _Partition_Allocate_buffer( _the_partition ) \
  _Chain_Get( &(_the_partition)->Memory )

/*PAGE
 *
 *  _Partition_Free_buffer
 *
 */

#define _Partition_Free_buffer( _the_partition, _the_buffer ) \
  _Chain_Append( &(_the_partition)->Memory, (_the_buffer) )

/*PAGE
 *
 *  _Partition_Is_buffer_on_boundary
 *
 */

#define _Partition_Is_buffer_on_boundary( _the_buffer, _the_partition ) \
  ((((unsigned32) _Addresses_Subtract( \
                    (_the_buffer), \
                    (_the_partition)->starting_address ) \
                  ) % \
                  (_the_partition)->buffer_size) == 0)

/*PAGE
 *
 *  _Partition_Is_buffer_valid
 *
 */

#define _Partition_Is_buffer_valid( _the_buffer, _the_partition ) \
  ( \
    _Addresses_Is_in_range( \
      (_the_buffer), \
      (_the_partition)->starting_address, \
      _Addresses_Add_offset( \
         (_the_partition)->starting_address, \
         (_the_partition)->length \
      ) \
    ) && \
    _Partition_Is_buffer_on_boundary( (_the_buffer), (_the_partition) ) \
  )

/*PAGE
 *
 *  _Partition_Is_buffer_size_aligned
 *
 */

#define _Partition_Is_buffer_size_aligned( _buffer_size ) \
  ((_buffer_size) % CPU_PARTITION_ALIGNMENT == 0)

/*PAGE
 *
 *  _Partition_Allocate
 *
 */

#define _Partition_Allocate() \
  (Partition_Control *) _Objects_Allocate( &_Partition_Information )

/*PAGE
 *
 *  _Partition_Free
 *
 */

#define _Partition_Free( _the_partition ) \
  _Objects_Free( &_Partition_Information, &(_the_partition)->Object )

/*PAGE
 *
 *  _Partition_Get
 *
 */

#define _Partition_Get( _id, _location ) \
  (Partition_Control *) \
    _Objects_Get( &_Partition_Information, (_id), (_location) )

/*PAGE
 *
 *  _Partition_Is_null
 *
 */

#define _Partition_Is_null( _the_partition ) \
   ( (_the_partition) == NULL  )

#endif
/* end of include file */

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.