summaryrefslogtreecommitdiffstats
path: root/sbe/image/proc_sbe_fixed.H
diff options
context:
space:
mode:
Diffstat (limited to 'sbe/image/proc_sbe_fixed.H')
-rw-r--r--sbe/image/proc_sbe_fixed.H51
1 files changed, 37 insertions, 14 deletions
diff --git a/sbe/image/proc_sbe_fixed.H b/sbe/image/proc_sbe_fixed.H
index 2969e3b1..16701f74 100644
--- a/sbe/image/proc_sbe_fixed.H
+++ b/sbe/image/proc_sbe_fixed.H
@@ -21,19 +21,19 @@
/// TOC.
///
/// This header file can be #include-ed into either C or SBE assembly language
-/// source code. In C, it creates simple structures 'ProcChipAttributes',
-/// 'PervAttributes', 'CoreAttributes', 'EQAttributes' and 'EXAttributes' that
+/// source code. In C, it creates simple structures 'ProcChipAttributes',
+/// 'PervAttributes', 'CoreAttributes', 'EQAttributes' and 'EXAttributes' that
/// contain attribute information that are sized per XML definition per entry.
///
-/// PPE image data is always stored big-endian, so applications on little-endian
+/// PPE image data is always stored big-endian, so applications on little-endian
/// hosts will need to perform the appropriate endian converison when reading or
/// writing images via this header.
///
/// In assembler code, this header creates macros '.proc_sbe_fixed_proc_chip',
-/// '.proc_sbe_fixed_perv', '.proc_sbe_fixed_core', '.proc_sbe_fixed_ex',
-/// '.proc_sbe_fixed_eq', that is expanded exactly once in the file
-/// 'sbe_base_header.S', creating the actual data allocation of the data
-/// equivalent to the C structure. Assembler code references the data symbols
+/// '.proc_sbe_fixed_perv', '.proc_sbe_fixed_core', '.proc_sbe_fixed_ex',
+/// '.proc_sbe_fixed_eq', that is expanded exactly once in the file
+/// 'sbe_base_header.S', creating the actual data allocation of the data
+/// equivalent to the C structure. Assembler code references the data symbols
/// as normal.
///
/// To simplify programming a 'mini-TOC' is also provided for this data in
@@ -50,14 +50,37 @@
#include "plat_target_parms.H"
#include "fapi2AttributeIds.H"
+#ifdef __ASSEMBLER__
+ .macro .proc_sbe_fixed_system
+ .section .fixed, "a", @progbits
+ .balign 8
+ .global G_system_attributes
+G_system_attributes:
+#else
+
+extern "C" {
+namespace fapi2attr {
+typedef struct SystemAttributes_t {
+#endif
+
+#include "proc_sbe_fixed_system.H"
+
+#ifdef __ASSEMBLER__
+ .endm
+#else
+} SystemAttributes;
+} // fapi2
+} // C
+#endif
#ifdef __ASSEMBLER__
.macro .proc_sbe_fixed_proc_chip
.section .fixed, "a", @progbits
.balign 8
.global G_proc_chip_attributes
-G_proc_chip_attributes:
+G_proc_chip_attributes:
#else
+
extern "C" {
namespace fapi2attr {
typedef struct ProcChipAttributes_t {
@@ -80,7 +103,7 @@ typedef struct ProcChipAttributes_t {
.section .fixed, "a", @progbits
.balign 8
.global G_perv_attributes
-G_perv_attributes:
+G_perv_attributes:
#else
namespace fapi2attr {
typedef struct PervAttributes_t {
@@ -102,14 +125,14 @@ typedef struct PervAttributes_t {
.section .fixed, "a", @progbits
.balign 8
.global G_core_attributes
-G_core_attributes:
+G_core_attributes:
#else
namespace fapi2attr {
typedef struct CoreAttributes_t {
#endif
#include "proc_sbe_fixed_core.H"
-
+
#ifdef __ASSEMBLER__
.endm
#else
@@ -124,14 +147,14 @@ typedef struct CoreAttributes_t {
.section .fixed, "a", @progbits
.balign 8
.global G_ex_attributes
-G_ex_attributes:
+G_ex_attributes:
#else
namespace fapi2attr {
typedef struct EXAttributes_t {
#endif
#include "proc_sbe_fixed_ex.H"
-
+
#ifdef __ASSEMBLER__
.endm
#else
@@ -153,7 +176,7 @@ typedef struct EQAttributes_t {
#endif
#include "proc_sbe_fixed_eq.H"
-
+
#ifdef __ASSEMBLER__
.endm
#else
OpenPOWER on IntegriCloud