/* ChibiOS - Copyright (C) 2006,2007,2008,2009,2010,2011,2012,2013,2014, 2015,2016,2017,2018,2019,2020,2021,2022 Giovanni Di Sirio. This file is part of ChibiOS. ChibiOS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 3 of the License. ChibiOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /** * @file sb/host/sbhost.h * @brief ARM SandBox host macros and structures. * * @addtogroup ARM_SANDBOX_HEADER * @{ */ #ifndef SBHDR_H #define SBHDR_H /*===========================================================================*/ /* Module constants. */ /*===========================================================================*/ /** * @brief Magic numbers * @{ */ #define SB_HDR_MAGIC1 0xFE9154C0U #define SB_HDR_MAGIC2 0x0C4519EFU /** @} */ /*===========================================================================*/ /* Module pre-compile time settings. */ /*===========================================================================*/ /*===========================================================================*/ /* Derived constants and error checks. */ /*===========================================================================*/ /*===========================================================================*/ /* Module data structures and types. */ /*===========================================================================*/ /** * @brief Type of a sandbox binary image header. */ typedef struct { /** * @brief Magic number 1. */ uint32_t hdr_magic1; /** * @brief Magic number 2. */ uint32_t hdr_magic2; /** * @brief Header size, inclusive of magic numbers. */ uint32_t hdr_size; /** * @brief Entry vector. */ uint32_t hdr_entry; /** * @brief Exit vector. */ uint32_t hdr_exit; /** * @brief VRQ vector. */ uint32_t hdr_vrq; /** * @brief Used-defined parameters, defaulted to zero. */ uint32_t user[2]; } sb_header_t; /*===========================================================================*/ /* Module macros. */ /*===========================================================================*/ /*===========================================================================*/ /* External declarations. */ /*===========================================================================*/ #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif /*===========================================================================*/ /* Module inline functions. */ /*===========================================================================*/ #endif /* SBHDR_H */ /** @} */