Changeset 311270c in rtems


Ignore:
Timestamp:
Mar 20, 2019, 10:03:12 AM (5 weeks ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
7a1934d
Parents:
dad6fd4
git-author:
Sebastian Huber <sebastian.huber@…> (03/20/19 10:03:12)
git-committer:
Sebastian Huber <sebastian.huber@…> (03/22/19 09:19:23)
Message:

score: Update Objects_Information documentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/include/rtems/score/objectdata.h

    rdad6fd4 r311270c  
    150150
    151151/**
    152  *  The following defines the structure for the information used to
    153  *  manage each class of objects.
     152 * @brief The information structure used to manage each API class of objects.
     153 *
     154 * If objects for the API class are configured, an instance of this structure
     155 * is statically allocated and pre-initialized by OBJECTS_INFORMATION_DEFINE()
     156 * through <rtems/confdefs.h>.  The RTEMS library contains a statically
     157 * allocated and pre-initialized instance for each API class providing zero
     158 * objects, see OBJECTS_INFORMATION_DEFINE_ZERO().
    154159 */
    155160typedef struct {
    156   /** This is the maximum valid id of this object class. */
    157   Objects_Id        maximum_id;
    158   /** This points to the table of local objects. */
     161  /**
     162   * @brief This is the maximum valid ID of this object API class.
     163   *
     164   * This member is statically initialized and provides also the object API,
     165   * class and multiprocessing node information.
     166   *
     167   * It is used by _Objects_Get() to validate an object ID.
     168   */
     169  Objects_Id maximum_id;
     170
     171  /**
     172   * @brief This points to the table of local object control blocks.
     173   *
     174   * This member is statically initialized.  In case objects for this API class
     175   * are configured, it initially points to a statically allocated table
     176   * defined by <rtems/confdefs.h>.  _Objects_Extend_information() may replace
     177   * the table with a larger one on demand.
     178   */
    159179  Objects_Control **local_table;
    160   /** This is the number of objects on the Inactive list. */
    161   Objects_Maximum   inactive;
    162   /** This is the number of objects in a block. */
    163   Objects_Maximum   objects_per_block;
    164   /** This is the size in bytes of each object instance. */
    165   uint16_t          object_size;
     180
     181  /**
     182   * @brief This is the number of object control blocks on the inactive chain.
     183   *
     184   * This member is only used if unlimited objects are configured for this API
     185   * class.  It is used to trigger calls to _Objects_Shrink_information() in
     186   * _Objects_Free().
     187   */
     188  Objects_Maximum inactive;
     189
     190  /**
     191   * @brief This is the number of object control blocks in an allocation block.
     192   *
     193   * This member is statically initialized and read-only.  It is only used if
     194   * unlimited objects are configured for this API class.  It defines the count
     195   * of object control blocks used to extend and shrink this API class.
     196   */
     197  Objects_Maximum objects_per_block;
     198
     199  /**
     200   * @brief This is the size in bytes of each object control block.
     201   *
     202   * This member is statically initialized and read-only.
     203   */
     204  uint16_t object_size;
     205
    166206  /**
    167207   * @brief This is the maximum length of names.
    168208   *
    169    * A length of zero indicates that this object has a no string name
     209   * This member is statically initialized and read-only.  A length of zero
     210   * indicates that this API class has a no string name
    170211   * (OBJECTS_NO_STRING_NAME).
    171212   */
    172   uint16_t          name_length;
    173   /** This is the chain of inactive control blocks. */
    174   Chain_Control     Inactive;
    175   /** This is the number of inactive objects per block. */
    176   Objects_Maximum  *inactive_per_block;
    177   /** This is a table to the chain of inactive object memory blocks. */
     213  uint16_t name_length;
     214
     215  /**
     216   * @brief This is the chain of inactive object control blocks.
     217   *
     218   * This member is statically initialized to an empty chain.  The
     219   * _Objects_Initialize_information() will populate this chain with the
     220   * object control blocks initially configured.
     221   */
     222  Chain_Control Inactive;
     223
     224  /**
     225   * @brief This is the number of inactive object control blocks per allocation
     226   * block.
     227   *
     228   * It is only used if unlimited objects are configured for this API class.
     229   */
     230  Objects_Maximum *inactive_per_block;
     231
     232  /**
     233   * @brief This is a table to allocation blocks of object control blocks.
     234   *
     235   * It is only used if unlimited objects are configured for this API class.
     236   * The object control blocks extend and shrink by these allocation blocks.
     237   */
    178238  Objects_Control **object_blocks;
    179   Objects_Control  *initial_objects;
    180   #if defined(RTEMS_MULTIPROCESSING)
    181     /** This is this object class' method called when extracting a thread. */
    182     Objects_Thread_queue_Extract_callout extract;
    183 
    184     /**
    185      * @brief The global objects of this object information sorted by object
    186      * identifier.
    187      */
    188     RBTree_Control   Global_by_id;
    189 
    190     /**
    191      * @brief The global objects of this object information sorted by object
    192      * name.
    193      *
    194      * Objects with the same name are sorted according to their identifier.
    195      */
    196     RBTree_Control   Global_by_name;
    197   #endif
    198 }   Objects_Information;
     239
     240  /**
     241   * @brief This points to the object control blocks initially available.
     242   *
     243   * This member is statically initialized and read-only.  In case objects for
     244   * this API class are configured, it points to a statically allocated table
     245   * of object control blocks defined by <rtems/confdefs.h>, otherwise this
     246   * member is NULL.
     247   */
     248  Objects_Control *initial_objects;
     249
     250#if defined(RTEMS_MULTIPROCESSING)
     251  /**
     252   * @brief This method is used by _Thread_queue_Extract_with_proxy().
     253   *
     254   * This member is statically initialized and read-only.
     255   */
     256  Objects_Thread_queue_Extract_callout extract;
     257
     258  /**
     259   * @brief The global objects of this object information sorted by object ID.
     260   *
     261   * This member is statically initialized to an empty tree.  The
     262   * _Objects_MP_Open() and _Objects_MP_Close() functions alter this tree.
     263   */
     264  RBTree_Control Global_by_id;
     265
     266  /**
     267   * @brief The global objects of this object information sorted by object
     268   * name.
     269   *
     270   * This member is statically initialized to an empty tree.  The
     271   * _Objects_MP_Open() and _Objects_MP_Close() functions alter this tree.
     272   *
     273   * Objects with the same name are sorted according to their ID.
     274   */
     275  RBTree_Control Global_by_name;
     276#endif
     277} Objects_Information;
    199278
    200279#if defined(RTEMS_MULTIPROCESSING)
Note: See TracChangeset for help on using the changeset viewer.