1 <!-- Copyright (C) 2003 Red Hat, Inc. -->
2 <!-- This material may be distributed only subject to the terms -->
3 <!-- and conditions set forth in the Open Publication License, v1.0 -->
4 <!-- or later (the latest version is presently available at -->
5 <!-- http://www.opencontent.org/openpub/). -->
6 <!-- Distribution of the work or derivative of the work in any -->
7 <!-- standard (paper) book form is prohibited unless prior -->
8 <!-- permission is obtained from the copyright holder. -->
12 >HAL Interfaces</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
19 TITLE="eCos Reference Manual"
20 HREF="ecos-ref.html"><LINK
22 TITLE="The eCos Hardware Abstraction Layer (HAL)"
23 HREF="the-ecos-hardware-abstraction-layer.html"><LINK
25 TITLE="General principles"
26 HREF="hal-general-principles.html"><LINK
28 TITLE="Architecture Characterization"
29 HREF="hal-architecture-characterization.html"></HEAD
40 SUMMARY="Header navigation table"
49 >eCos Reference Manual</TH
57 HREF="hal-general-principles.html"
71 HREF="hal-architecture-characterization.html"
84 NAME="HAL-INTERFACES">Chapter 9. HAL Interfaces</H1
94 HREF="hal-interfaces.html#HAL-BASE-DEFINITIONS"
99 HREF="hal-architecture-characterization.html"
100 >Architecture Characterization</A
104 HREF="hal-interrupt-handling.html"
105 >Interrupt Handling</A
109 HREF="hal-input-and-output.html"
114 HREF="hal-cache-control.html"
119 HREF="hal-linker-scripts.html"
124 HREF="hal-diagnostic-support.html"
125 >Diagnostic Support</A
129 HREF="hal-smp-support.html"
135 >This section describes the main HAL interfaces. </P
141 NAME="HAL-BASE-DEFINITIONS">Base Definitions</H1
143 >These are definitions that characterize the properties of the base
144 architecture that are used to compile the portable parts of the
145 kernel. They are concerned with such things a portable type
146 definitions, endianness, and labeling.</P
148 >These definitions are supplied by the
151 >cyg/hal/basetype.h</TT
152 > header file which is supplied
153 by the architecture HAL. It is included automatically by
156 >cyg/infra/cyg_type.h</TT
163 NAME="AEN7743">Byte order</H2
176 > This defines the byte order of the target and must be set to either
194 NAME="AEN7753">Label Translation</H2
203 >CYG_LABEL_NAME(name)</TT
207 > This is a wrapper used in some C and C++ files which
208 use labels defined in assembly code or the linker script.
209 It need only be defined if the default implementation in
212 >cyg/infra/cyg_type.h</TT
213 >, which passes the name
214 argument unaltered, is inadequate. It should be paired with
217 >CYG_LABEL_DEFN()</TT
224 >CYG_LABEL_DEFN(name)</TT
228 > This is a wrapper used in assembler sources and linker scripts
229 which define labels. It need only be defined if the default
233 >cyg/infra/cyg_type.h</TT
234 >, which passes the name
235 argument unaltered, is inadequate. The most usual alternative
236 definition of this macro prepends an underscore to the label
248 NAME="AEN7769">Base types</H2
256 CLASS="PROGRAMLISTING"
270 >These macros define the C base types that should be used to define
271 variables of the given size. They only need to be defined if the
272 default types specified in <TT
274 >cyg/infra/cyg_type.h</TT
276 cannot be used. Note that these are only the base types, they will be
284 > to form full type specifications.</P
291 NAME="AEN7776">Atomic types</H2
299 CLASS="PROGRAMLISTING"
300 > cyg_halatomic CYG_ATOMIC</PRE
305 >These types are guaranteed to be read or written in a single
306 uninterruptible operation. It is architecture defined what size this
307 type is, but it will be at least a byte.</P
316 SUMMARY="Footer navigation table"
327 HREF="hal-general-principles.html"
345 HREF="hal-architecture-characterization.html"
355 >General principles</TD
361 HREF="the-ecos-hardware-abstraction-layer.html"
369 >Architecture Characterization</TD