1 /* 2 * Copyright 2021-2022 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef SWT_IP_TYPES_H 8 #define SWT_IP_TYPES_H 9 10 /** 11 * @file 12 * 13 * @addtogroup Swt 14 * @{ 15 */ 16 17 #if defined(__cplusplus) 18 extern "C" { 19 #endif 20 21 /*================================================================================================== 22 * INCLUDE FILES 23 * 1) system and project includes 24 * 2) needed interfaces from external units 25 * 3) internal and external interfaces from this unit 26 ==================================================================================================*/ 27 #include "Swt_Ip_Cfg_Defines.h" 28 29 /*================================================================================================== 30 * SOURCE FILE VERSION INFORMATION 31 ==================================================================================================*/ 32 #define SWT_IP_TYPES_VENDOR_ID 43 33 #define SWT_IP_TYPES_MODULE_ID 102 34 #define SWT_IP_TYPES_AR_RELEASE_MAJOR_VERSION 4 35 #define SWT_IP_TYPES_AR_RELEASE_MINOR_VERSION 7 36 #define SWT_IP_TYPES_AR_RELEASE_REVISION_VERSION 0 37 #define SWT_IP_TYPES_SW_MAJOR_VERSION 0 38 #define SWT_IP_TYPES_SW_MINOR_VERSION 9 39 #define SWT_IP_TYPES_SW_PATCH_VERSION 0 40 41 /*================================================================================================== 42 * FILE VERSION CHECKS 43 ==================================================================================================*/ 44 45 /* Check if current file and Swt_Ip_Cfg_Defines configuration header file are of the same vendor */ 46 #if (SWT_IP_TYPES_VENDOR_ID != SWT_IP_CFG_DEFINES_VENDOR_ID) 47 #error "Swt_Ip_Types.h and Swt_Ip_Cfg_Defines.h have different vendor ids" 48 #endif 49 50 #if ((SWT_IP_TYPES_AR_RELEASE_MAJOR_VERSION != SWT_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION) || \ 51 (SWT_IP_TYPES_AR_RELEASE_MINOR_VERSION != SWT_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION) || \ 52 (SWT_IP_TYPES_AR_RELEASE_REVISION_VERSION != SWT_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION)) 53 #error "AutoSar Version Numbers of Swt_Ip_Types.h and Swt_Ip_Cfg_Defines.h are different" 54 #endif 55 56 #if ((SWT_IP_TYPES_SW_MAJOR_VERSION != SWT_IP_CFG_DEFINES_SW_MAJOR_VERSION) || \ 57 (SWT_IP_TYPES_SW_MINOR_VERSION != SWT_IP_CFG_DEFINES_SW_MINOR_VERSION) || \ 58 (SWT_IP_TYPES_SW_PATCH_VERSION != SWT_IP_CFG_DEFINES_SW_PATCH_VERSION)) 59 #error "Software Version Numbers of Swt_Ip_Types.h and Swt_Ip_Cfg_Defines.h are different" 60 #endif 61 62 /*================================================================================================== 63 * CONSTANTS 64 ==================================================================================================*/ 65 66 /*================================================================================================== 67 * DEFINES AND MACROS 68 ==================================================================================================*/ 69 70 #define SWT_IP_ALL_MAP_DISABLE ((uint8) 0x00) 71 #define SWT_IP_MAP0_ENABLE ((uint8) 0x80) 72 #define SWT_IP_MAP1_ENABLE ((uint8) 0x40) 73 #define SWT_IP_MAP2_ENABLE ((uint8) 0x20) 74 #define SWT_IP_MAP3_ENABLE ((uint8) 0x10) 75 #define SWT_IP_MAP4_ENABLE ((uint8) 0x08) 76 #define SWT_IP_MAP5_ENABLE ((uint8) 0x04) 77 #define SWT_IP_MAP6_ENABLE ((uint8) 0x02) 78 #define SWT_IP_MAP7_ENABLE ((uint8) 0x01) 79 #define SWT_IP_ALL_MAP_ENABLE ((uint8) 0xFF) 80 81 /*================================================================================================== 82 * ENUMS 83 ==================================================================================================*/ 84 85 /** @brief Enum defining the possible type values for SWT API 86 * @implements Swt_Ip_StatusType_enumeration 87 */ 88 typedef enum 89 { 90 SWT_IP_STATUS_SUCCESS = 0x00, 91 SWT_IP_STATUS_ERROR = 0x01, 92 SWT_IP_STATUS_TIMEOUT = 0x02 93 } Swt_Ip_StatusType; 94 95 /** @brief Enum defining the possible lock types for the SWT 96 */ 97 typedef enum 98 { 99 SWT_IP_UNLOCK = 0x00, 100 SWT_IP_SOFTLOCK = 0x01, 101 SWT_IP_HARDLOCK = 0x02 102 } Swt_Ip_LockType; 103 104 /** @brief Enum defining the possible service modes for the SWT 105 */ 106 typedef enum 107 { 108 SWT_IP_FS_SEQ_MODE = 0x00U, /* Fixed Service Sequence */ 109 SWT_IP_KS_SEQ_MODE = 0x01U, /* Keyed Service Sequence */ 110 } Swt_Ip_ServiceModeType; 111 112 /*================================================================================================== 113 * STRUCTURES AND OTHER TYPEDEFS 114 ==================================================================================================*/ 115 116 typedef void (*Swt_CallbackPtrType)(void); 117 118 /** @brief Structure defining the configuration parameters used for SWT 119 * @implements Swt_Ip_ConfigType_struct 120 */ 121 typedef struct 122 { 123 uint8 u8MapEnBitmask; 124 boolean bEnResetOnInvalidAccess; 125 #if (defined(SWT_IP_HAS_STOP_MODE) && (SWT_IP_HAS_STOP_MODE == 1U)) 126 boolean bEnRunInStopMode; 127 #endif 128 boolean bEnRunInDebugMode; 129 boolean bEnWindow; 130 boolean bEnInterrupt; 131 Swt_Ip_ServiceModeType eServiceMode; 132 uint32 u32TimeoutValue; 133 uint32 u32WindowValue; 134 uint16 u16InitialKey; 135 Swt_Ip_LockType lockConfig; 136 Swt_CallbackPtrType pfSwtCallback; 137 } Swt_Ip_ConfigType; 138 139 /*================================================================================================== 140 * GLOBAL VARIABLE DECLARATIONS 141 ==================================================================================================*/ 142 143 /*================================================================================================== 144 * FUNCTION PROTOTYPES 145 ==================================================================================================*/ 146 147 #if defined(__cplusplus) 148 } 149 #endif 150 151 /** @} */ 152 153 #endif /* SWT_IP_TYPES_H */ 154