diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/kernel/hbdescriptor.H | 38 | ||||
| -rw-r--r-- | src/include/kernel/hbterminatetypes.H | 68 | ||||
| -rw-r--r-- | src/include/kernel/terminate.H | 45 |
3 files changed, 151 insertions, 0 deletions
diff --git a/src/include/kernel/hbdescriptor.H b/src/include/kernel/hbdescriptor.H new file mode 100644 index 000000000..e90861a48 --- /dev/null +++ b/src/include/kernel/hbdescriptor.H @@ -0,0 +1,38 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/kernel/hbdescriptor.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2012 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ + +/** @file hbdescriptor.H + * @brief Defines hostboot data area + */ + +#ifndef __KERNEL_HBDESCRIPTOR_H +#define __KERNEL_HBDESCRIPTOR_H + +struct HB_TI_DataArea; + +struct HB_Descriptor +{ + HB_TI_DataArea *TI_DataAreaPtr; // ptr to the TI data area structure +}; + +#endif /* __KERNEL_HBDESCRIPTOR_H */ diff --git a/src/include/kernel/hbterminatetypes.H b/src/include/kernel/hbterminatetypes.H new file mode 100644 index 000000000..353dea06f --- /dev/null +++ b/src/include/kernel/hbterminatetypes.H @@ -0,0 +1,68 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/kernel/terminatetypes.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2012 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ +/** @file terminate.H + * @brief Defines kernel information about the TI data area + */ +#ifndef __KERNEL_HBTERMINATETYPES_H +#define __KERNEL_HBTERMINATETYPES_H +#include <stdint.h> + + + +/** @struct TI_DataArea + * @brief Defines the data space used to store the src or PLID regarding a + * Terminate Immediate request + */ +struct HB_TI_DataArea +{ + + union{ + struct { + uint64_t type:16; /**< indicates either plid or src */ + uint64_t source:16; /**< Caller of the TI */ + uint64_t reserved2:16; /**< Reserved space */ + uint64_t reserved3:16; /**< Reserved space */ + }; + uint64_t flag; /**< Full Dword0 */ + }; + uint64_t src[4]; + uint64_t plid; +}; + +// Enum indicating whether a SRC or PLID is stored +enum hb_terminate_type +{ + TI_WITH_PLID = 0x0001, + TI_WITH_SRC = 0x0002, +}; + +// Enum used in the flag indicating who initiated the TI +enum hb_terminate_source +{ + TI_KERNAL_ASSERT = 0x0001, + TI_CRIT_ASSERT = 0x0002, + TI_SHUTDOWN = 0x0003, +}; + + +#endif diff --git a/src/include/kernel/terminate.H b/src/include/kernel/terminate.H new file mode 100644 index 000000000..db93a1b0b --- /dev/null +++ b/src/include/kernel/terminate.H @@ -0,0 +1,45 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/kernel/terminate.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2012 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ +/** @file terminate.H + * @brief Defines kernel information about the TI data area + */ +#ifndef __KERNEL_TERMINATE_H +#define __KERNEL_TERMINATE_H + +#include <kernel/types.h> + +/** @fn terminateAndUpdateSaveArea + * Update TI data area with src or PLID and force a TI + * @param[in] i_type : indicates if an src or plid is stored + * @param[in] i_source: indicates what type of fail forced the TI + * @param[in] *i_src: SRC to be stored + * @param[in] i_plid: plid to be stored + * @param[out] NONE: + */ +void terminateAndUpdateSaveArea(uint16_t i_type, + uint16_t i_source, + uint64_t *i_src, + uint64_t plid = 0); + + +#endif |

