Changeset 32de9ff in rtems-docs
- Timestamp:
- 12/01/22 18:13:43 (2 months ago)
- Branches:
- master
- Children:
- a3d7dd1
- Parents:
- 8f5f371
- git-author:
- Joel Sherrill <joel@…> (12/01/22 18:13:43)
- git-committer:
- Joel Sherrill <joel@…> (12/07/22 18:35:19)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
c-user/key_concepts.rst
r8f5f371 r32de9ff 86 86 } 87 87 88 .. index:: object ID89 .. index:: object IDcomposition88 .. index:: object id 89 .. index:: object id composition 90 90 .. index:: rtems_id 91 91 92 Object I Ds92 Object Ids 93 93 ---------- 94 94 95 An object ID is a unique 32-bit unsigned integer value which uniquely 96 identifies an object instance. Object IDs are passed as arguments to many 97 directives in RTEMS and RTEMS translates the ID to an internal object pointer. 98 The efficient manipulation of object IDs is critical to the performance of some 99 RTEMS services. 95 an object id is a unique 32-bit unsigned integer value which uniquely 96 identifies an object instance. object ids are passed as arguments to many 97 directives in rtems and rtems translates the id to an internal object pointer. 98 the efficient manipulation of object ids is critical to the performance of some 99 rtems services. 100 101 .. index:: rtems_extension_ident() 102 .. index:: rtems_barrier_ident() 103 .. index:: rtems_port_ident() 104 .. index:: rtems_message_queue_ident() 105 .. index:: rtems_partition_ident() 106 .. index:: rtems_region_ident() 107 .. index:: rtems_semaphore_ident() 108 .. index:: rtems_task_ident() 109 .. index:: rtems_timer_ident() 110 111 There are multiple directives with names of the form 112 ``rtems_@CLASS@_ident`` that take a name as argument and return the associated 113 id if the name is found. The following is the set of name to id services: 114 which can look up an object 115 116 * ``rtems_extension_ident()`` 117 * ``rtems_barrier_ident()`` 118 * ``rtems_port_ident()`` 119 * ``rtems_message_queue_ident()`` 120 * ``rtems_partition_ident()`` 121 * ``rtems_region_ident()`` 122 * ``rtems_semaphore_ident()`` 123 * ``rtems_task_ident()`` 124 * ``rtems_timer_ident()`` 125 126 Local and Global Scope 127 ---------------------- 128 129 .. index:: uniprocesor 130 .. index:: multiprocessing 131 .. index:: distributed multiprocessing 132 .. index:: symmetric multiprocessing (SMP) 133 .. index:: local scope 134 .. index:: global scope 135 .. index:: RTEMS_GLOBAL 136 .. index:: RTEMS_LOCAL 137 .. index:: RTEMS_GLOBAL 138 139 RTEMS supports uniprocessing, distributed multiprocessing, and Symmetric 140 Multiprocessing (SMP) configurations. A uniprocessor system includes only 141 a single processor in a single node. Distributed multiprocessor systems 142 include multiple nodes, each of which is a single processor and is usually 143 referred to as just multiprocessor mode for historical reasons. SMP 144 systems consist of multiple processors cores in a single node. 145 146 In distributed multiprocessing configurations, there are multiple nodes in 147 the system and object instances may be visible on just the creating node 148 or to all nodes. If visible only to the creating node, this is referred to 149 as **local scope** and corresponds to the RTEMS_LOCAL attribute setting 150 which is the default. If RTEMS GLOBAL is specified as part of the object 151 attributes, then the object instance has **global scope** and the object 152 id can be used anywhere in the system to identify that object instance. 153 154 In uniprocessing and SMP configurations, there is only one node in 155 the system and object instances are locally scoped to that node. Any 156 attempt to create with the RTEMS_GLOBAL attribute is an error. 100 157 101 158 Object ID Format … … 122 179 identifier, called the object index, ranges in value from 1 to the maximum 123 180 number of objects configured for this object type. 181 182 None of the fields in an object id may be zero except for the special 183 case of RTEMS_SELF to indicate the currently running thread. 124 184 125 185 Object ID Description
Note: See TracChangeset
for help on using the changeset viewer.