2008-12-01 Joel Sherrill <joel.sherrill@oarcorp.com>

* ada_user/Makefile.am, user/Makefile.am, user/concepts.t: Add 16 bit
	object Id format information.
	* user/ObjectId-16Bits.eps, user/ObjectId-16Bits.png: New files.
This commit is contained in:
Joel Sherrill
2008-12-01 16:07:40 +00:00
parent 2b90266588
commit 2bf21fc83e
6 changed files with 23150 additions and 10 deletions

View File

@@ -1,3 +1,9 @@
2008-12-01 Joel Sherrill <joel.sherrill@oarcorp.com>
* ada_user/Makefile.am, user/Makefile.am, user/concepts.t: Add 16 bit
object Id format information.
* user/ObjectId-16Bits.eps, user/ObjectId-16Bits.png: New files.
2008-12-01 Joel Sherrill <joel.sherrill@OARcorp.com>
* user/datatypes.t: Add C99 uint types.

View File

@@ -24,7 +24,7 @@ COMMON_FILES += \
$(top_builddir)/user/overview.texi $(top_builddir)/user/part.texi \
$(top_builddir)/user/preface.texi $(top_builddir)/user/region.texi \
$(top_builddir)/user/rtmon.texi $(top_builddir)/user/schedule.texi \
$(top_builddir)/user/sem.texi $(top_builddir)/user/signal.texi \
$(top_builddir)/user/sem.textexii $(top_builddir)/user/signal.texi \
$(top_builddir)/user/task.texi $(top_builddir)/user/timer.texi \
$(top_builddir)/user/userext.texi $(top_builddir)/user/stackchk.texi \
$(top_builddir)/user/cpuuse.texi $(top_srcdir)/common/cpright.texi \
@@ -32,6 +32,8 @@ COMMON_FILES += \
FILES = example.texi
ObjectId-16Bits.eps: $(top_srcdir)/user/ObjectId-16Bits.eps
$(LN_S) $<
ObjectId-32Bits.eps: $(top_srcdir)/user/ObjectId-32Bits.eps
$(LN_S) $<
rtemspie.eps: $(top_srcdir)/user/rtemspie.eps
@@ -41,6 +43,8 @@ states.eps: $(top_srcdir)/user/states.eps
CLEANFILES += rtemspie.eps states.eps rtemsarc.png rtemspie.png states.png \
ObjectId-32Bits.png
ObjectId-16Bits.png: $(top_srcdir)/user/ObjectId-16Bits.png
$(LN_S) $<
ObjectId-32Bits.png: $(top_srcdir)/user/ObjectId-32Bits.png
$(LN_S) $<
rtemsarc.png: $(top_srcdir)/user/rtemsarc.png
@@ -54,10 +58,12 @@ info_TEXINFOS = ada_user.texi
ada_user_TEXINFOS = $(FILES) $(COMMON_FILES)
if USE_HTML
html_project_DATA += rtemsarc.png rtemspie.png states.png ObjectId-32Bits.png
html_project_DATA += rtemsarc.png rtemspie.png states.png \
ObjectId-16Bits.png ObjectId-32Bits.png
endif
$(PROJECT).dvi: rtemspie.eps states.eps ObjectId-32Bits.eps
$(PROJECT).dvi: rtemspie.eps states.eps ObjectId-16Bits.eps \
ObjectId-32Bits.eps
PDF_IMAGES = rtemspie.pdf states.pdf
CLEANFILES += ada_user.info ada_user.info-? ada_user.info-??

View File

@@ -27,12 +27,15 @@ c_user_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES)
TXT_FILES = rtemsarc.txt rtemspie.txt states.txt
PNG_FILES = rtemsarc.png rtemspie.png states.png ObjectId-32Bits.png
PNG_FILES = rtemsarc.png rtemspie.png states.png ObjectId-32Bits.png \
ObjectId-16Bits.png
EPS_IMAGES = rtemspie.eps states.eps
EPS_IMAGES = rtemspie.eps states.eps ObjectId-32Bits.eps \
ObjectId-32Bits.eps
$(PROJECT).dvi: $(EPS_IMAGES)
PDF_IMAGES = rtemspie.pdf states.pdf
PDF_IMAGES = rtemspie.pdf states.pdf ObjectId-16Bits.pdf \
ObjectId-32Bits.pdf
CLEANFILES += $(PDF_IMAGES)
if USE_HTML

23070
doc/user/ObjectId-16Bits.eps Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -118,9 +118,22 @@ void print_name(rtems_id the_object)
@need 3000
An object ID is a unique unsigned thirty-two bit
entity composed of three parts: API, object class, node, and index.
The data type @code{@value{DIRPREFIX}id} is used to store object IDs.
An object ID is a unique unsigned integer value which uniquely identifies
an object instance. Object IDs are passed as arguments to many directives
in RTEMS and RTEMS translates the ID to an internal object pointer. The
efficient manipulation of object IDs is critical to the performance
of RTEMS services. Because of this, there are two object Id formats
defined. Each target architecture specifies which format it will use.
There is a thirty-two bit format which is used for most of the supported
architectures and supports multiprocessor configurations. There is also
a simpler sixteen bit format which is appropriate for smaller target
architectures and does not support multiprocessor configurations.
@subsubsection Thirty-Two Object ID Format
The thirty-two bit format for an object ID is composed of four parts: API,
object class, node, and index. The data type @code{@value{DIRPREFIX}id}
is used to store object IDs.
@ifset use-ascii
@@ -157,7 +170,49 @@ identifier within a particular object type. This identifier,
called the object index, ranges in value from 1 to the maximum
number of objects configured for this object type.
The four components of an object ID make it possible
@subsubsection Sixteen Bit Object ID Format
The sixteen bit format for an object ID is composed of three parts: API,
object class, and index. The data type @code{@value{DIRPREFIX}id}
is used to store object IDs.
@ifset use-ascii
@example
@group
15 11 10 8 7 0
+---------+-------+--------------+
| | | |
| Class | API | Index |
| | | |
+---------+-------+--------------+
@end group
@end example
@end ifset
@ifset use-tex
@sp1
@center{@image{ObjectId-16Bits,,2in}}
@end ifset
@ifset use-html
@html
<P ALIGN="center"><IMG SRC="ObjectId-16Bits.png"
WIDTH=550 HEIGHT=400 ALT="16 Bit Object Id"></P>
@end html
@end ifset
The sixteen-bit format is designed to be as similar as possible to the
thrity-two bit format. The differences are limited to the eliminatation
of the node field and reduction of the index field from sixteen-bits
to 8-bits. Thus the sixteen bit format only supports up to 255 object
instances per API/Class combination and single processor systems.
As this format is typically utilized by sixteen-bit processors with
limited address space, this is more than enough object instances.
@subsection Object ID Description
The components of an object ID make it possible
to quickly locate any object in even the most complicated
multiprocessor system. Object ID's are associated with an
object by RTEMS when the object is created and the corresponding