From a4f8acaca4eecb0bf4d5cda4b2b81bd42b99fe2b Mon Sep 17 00:00:00 2001 From: Derk Rembold Date: Mon, 29 Jun 2015 09:57:08 +0200 Subject: add fapi2 headers into importtemp added bin dir in tools removed absolute path from makefile Change-Id: Ib86e3ab64151e323ceea260ce989ca5f79193461 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/18817 Reviewed-by: Derk Rembold Tested-by: Derk Rembold --- importtemp/fapi2/include/return_code.H | 114 +++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 importtemp/fapi2/include/return_code.H (limited to 'importtemp/fapi2/include/return_code.H') diff --git a/importtemp/fapi2/include/return_code.H b/importtemp/fapi2/include/return_code.H new file mode 100644 index 00000000..2f8f3460 --- /dev/null +++ b/importtemp/fapi2/include/return_code.H @@ -0,0 +1,114 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: hwpf/fapi2/include/return_code.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* EKB Project */ +/* */ +/* COPYRIGHT 2012,2015 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* 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. */ +/* */ +/* IBM_PROLOG_END_TAG */ +/** + * @file return_code.H + * @brief definitions for fapi2 return codes + */ + +#ifndef __FAPI2_RETURN_CODE__ +#define __FAPI2_RETURN_CODE__ + +#include + +#ifndef FAPI2_NO_FFDC + #include +#endif + +namespace fapi2 +{ +/// +/// @brief Class representing a FAPI2 ReturnCode +/// +// Remove the inheritance relationship with FirstFailureData if +// the platform doesn't support FFDC. +#ifdef FAPI2_NO_FFDC +class ReturnCode +#else +class ReturnCode : public FirstFailureData +#endif +{ + public: + + /// + /// @brief Constructor. + /// @param[in] i_rc the rc to set + /// + ReturnCode(const uint64_t i_rc = FAPI2_RC_SUCCESS): + iv_rc(i_rc) + {}; + + /// + /// @brief integral type conversion function. Returns the error code + /// @return The error code + /// + inline operator uint64_t() const + { + return iv_rc; + } + + /// + /// @brief Returns true iff iv_rc == SUCCESS + /// @return true or false + /// + inline operator bool() const + { + return iv_rc != FAPI2_RC_SUCCESS; + } + + /// + /// @brief Assignement operator + /// + #ifdef DOXYGEN + inline ReturnCode& operator=(const uint64_t& rhs) + inline ReturnCode& operator=(const ReturnCodes& rhs) + #endif + + inline bool operator==(const uint64_t& rhs) const + { + return rhs == iv_rc; + } + + inline bool operator==(const ReturnCodes& rhs) const + { + return rhs == iv_rc; + } + + inline bool operator!=(const uint64_t& rhs) const + { + return rhs != iv_rc; + } + + inline bool operator!=(const ReturnCodes& rhs) const + { + return rhs != iv_rc; + } + + private: + uint64_t iv_rc; +}; + +/// This implementation assumes no exception handling and leverages thread-local +/// storage. For platforms without thread support, a global variable will +/// suffice for the error state. +extern thread_local ReturnCode current_err; /// the current error state +extern thread_local uint64_t pib_error_mask; /// the pib mask +extern thread_local uint64_t operational_state; /// the operational mode +} + +#endif -- cgit v1.2.1