These are definitions that characterize the properties of the base
architecture that are used to compile the portable parts of the
kernel. They are concerned with such things a portable type
definitions, endianness, and labeling.
These definitions are supplied by the
cyg/hal/basetype.h header file which is supplied
by the architecture HAL. It is included automatically by
cyg/infra/cyg_type.h.
This is a wrapper used in some C and C++ files which
use labels defined in assembly code or the linker script.
It need only be defined if the default implementation in
cyg/infra/cyg_type.h, which passes the name
argument unaltered, is inadequate. It should be paired with
CYG_LABEL_DEFN().
CYG_LABEL_DEFN(name)
This is a wrapper used in assembler sources and linker scripts
which define labels. It need only be defined if the default
implementation in
cyg/infra/cyg_type.h, which passes the name
argument unaltered, is inadequate. The most usual alternative
definition of this macro prepends an underscore to the label
name.
These macros define the C base types that should be used to define
variables of the given size. They only need to be defined if the
default types specified in cyg/infra/cyg_type.h
cannot be used. Note that these are only the base types, they will be
composed with signed and
unsigned to form full type specifications.
These types are guaranteed to be read or written in a single
uninterruptible operation. It is architecture defined what size this
type is, but it will be at least a byte.