STM32H735xx HAL User Manual
stm32h7xx_ll_hsem.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32h7xx_ll_hsem.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of HSEM LL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* Define to prevent recursive inclusion -------------------------------------*/
00020 #ifndef STM32H7xx_LL_HSEM_H
00021 #define STM32H7xx_LL_HSEM_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32h7xx.h"
00029 
00030 /** @addtogroup STM32H7xx_LL_Driver
00031   * @{
00032   */
00033 
00034 #if defined(HSEM)
00035 
00036 /** @defgroup HSEM_LL HSEM
00037   * @{
00038   */
00039 
00040 /* Private types -------------------------------------------------------------*/
00041 /* Private variables ---------------------------------------------------------*/
00042 /* Private constants ---------------------------------------------------------*/
00043 /* Private macros ------------------------------------------------------------*/
00044 
00045 /* Exported types ------------------------------------------------------------*/
00046 /* Exported constants --------------------------------------------------------*/
00047 
00048 /** @defgroup HSEM_LL_Exported_Constants HSEM Exported Constants
00049   * @{
00050   */
00051 
00052 /** @defgroup HSEM_LL_EC_COREID COREID Defines
00053   * @{
00054   */
00055 #define LL_HSEM_COREID_NONE             0U
00056 #define LL_HSEM_COREID_CPU1             HSEM_CR_COREID_CPU1
00057 #if defined(DUAL_CORE)
00058 #define LL_HSEM_COREID_CPU2             HSEM_CR_COREID_CPU2
00059 #endif /* DUAL_CORE */
00060 #define LL_HSEM_COREID                  HSEM_CR_COREID_CURRENT
00061 /**
00062   * @}
00063   */
00064 
00065 
00066 /** @defgroup HSEM_LL_EC_GET_FLAG Get Flags Defines
00067   * @brief    Flags defines which can be used with LL_HSEM_ReadReg function
00068   * @{
00069   */
00070 
00071 #define LL_HSEM_SEMAPHORE_0                HSEM_C1IER_ISE0
00072 #define LL_HSEM_SEMAPHORE_1                HSEM_C1IER_ISE1
00073 #define LL_HSEM_SEMAPHORE_2                HSEM_C1IER_ISE2
00074 #define LL_HSEM_SEMAPHORE_3                HSEM_C1IER_ISE3
00075 #define LL_HSEM_SEMAPHORE_4                HSEM_C1IER_ISE4
00076 #define LL_HSEM_SEMAPHORE_5                HSEM_C1IER_ISE5
00077 #define LL_HSEM_SEMAPHORE_6                HSEM_C1IER_ISE6
00078 #define LL_HSEM_SEMAPHORE_7                HSEM_C1IER_ISE7
00079 #define LL_HSEM_SEMAPHORE_8                HSEM_C1IER_ISE8
00080 #define LL_HSEM_SEMAPHORE_9                HSEM_C1IER_ISE9
00081 #define LL_HSEM_SEMAPHORE_10               HSEM_C1IER_ISE10
00082 #define LL_HSEM_SEMAPHORE_11               HSEM_C1IER_ISE11
00083 #define LL_HSEM_SEMAPHORE_12               HSEM_C1IER_ISE12
00084 #define LL_HSEM_SEMAPHORE_13               HSEM_C1IER_ISE13
00085 #define LL_HSEM_SEMAPHORE_14               HSEM_C1IER_ISE14
00086 #define LL_HSEM_SEMAPHORE_15               HSEM_C1IER_ISE15
00087 #if (HSEM_SEMID_MAX == 15)
00088 #define LL_HSEM_SEMAPHORE_ALL              0x0000FFFFU
00089 #else /* HSEM_SEMID_MAX == 31 */
00090 #define LL_HSEM_SEMAPHORE_16               HSEM_C1IER_ISE16
00091 #define LL_HSEM_SEMAPHORE_17               HSEM_C1IER_ISE17
00092 #define LL_HSEM_SEMAPHORE_18               HSEM_C1IER_ISE18
00093 #define LL_HSEM_SEMAPHORE_19               HSEM_C1IER_ISE19
00094 #define LL_HSEM_SEMAPHORE_20               HSEM_C1IER_ISE20
00095 #define LL_HSEM_SEMAPHORE_21               HSEM_C1IER_ISE21
00096 #define LL_HSEM_SEMAPHORE_22               HSEM_C1IER_ISE22
00097 #define LL_HSEM_SEMAPHORE_23               HSEM_C1IER_ISE23
00098 #define LL_HSEM_SEMAPHORE_24               HSEM_C1IER_ISE24
00099 #define LL_HSEM_SEMAPHORE_25               HSEM_C1IER_ISE25
00100 #define LL_HSEM_SEMAPHORE_26               HSEM_C1IER_ISE26
00101 #define LL_HSEM_SEMAPHORE_27               HSEM_C1IER_ISE27
00102 #define LL_HSEM_SEMAPHORE_28               HSEM_C1IER_ISE28
00103 #define LL_HSEM_SEMAPHORE_29               HSEM_C1IER_ISE29
00104 #define LL_HSEM_SEMAPHORE_30               HSEM_C1IER_ISE30
00105 #define LL_HSEM_SEMAPHORE_31               HSEM_C1IER_ISE31
00106 #define LL_HSEM_SEMAPHORE_ALL              0xFFFFFFFFU
00107 #endif /* HSEM_SEMID_MAX == 15 */
00108 /**
00109   * @}
00110   */
00111 
00112 /**
00113   * @}
00114   */
00115 
00116 /* Exported macro ------------------------------------------------------------*/
00117 /** @defgroup HSEM_LL_Exported_Macros HSEM Exported Macros
00118   * @{
00119   */
00120 
00121 /** @defgroup HSEM_LL_EM_WRITE_READ Common Write and read registers Macros
00122   * @{
00123   */
00124 
00125 /**
00126   * @brief  Write a value in HSEM register
00127   * @param  __INSTANCE__ HSEM Instance
00128   * @param  __REG__ Register to be written
00129   * @param  __VALUE__ Value to be written in the register
00130   * @retval None
00131   */
00132 #define LL_HSEM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
00133 
00134 /**
00135   * @brief  Read a value in HSEM register
00136   * @param  __INSTANCE__ HSEM Instance
00137   * @param  __REG__ Register to be read
00138   * @retval Register value
00139   */
00140 #define LL_HSEM_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
00141 /**
00142   * @}
00143   */
00144 
00145 /**
00146   * @}
00147   */
00148 
00149 /* Exported functions --------------------------------------------------------*/
00150 /** @defgroup HSEM_LL_Exported_Functions HSEM Exported Functions
00151   * @{
00152   */
00153 
00154 /** @defgroup HSEM_LL_EF_Data_Management Data_Management
00155   * @{
00156   */
00157 
00158 
00159 /**
00160   * @brief  Return 1 if the semaphore is locked, else return 0.
00161   * @rmtoll R            LOCK          LL_HSEM_IsSemaphoreLocked
00162   * @param  HSEMx HSEM Instance.
00163   * @param  Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
00164   * @retval State of bit (1 or 0).
00165   */
00166 __STATIC_INLINE uint32_t LL_HSEM_IsSemaphoreLocked(HSEM_TypeDef *HSEMx, uint32_t Semaphore)
00167 {
00168   return ((READ_BIT(HSEMx->R[Semaphore], HSEM_R_LOCK) == (HSEM_R_LOCK_Msk)) ? 1UL : 0UL);
00169 }
00170 
00171 /**
00172   * @brief  Get core id.
00173   * @rmtoll R            COREID        LL_HSEM_GetCoreId
00174   * @param  HSEMx HSEM Instance.
00175   * @param  Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
00176   * @retval Returned value can be one of the following values:
00177   *         @arg @ref LL_HSEM_COREID_NONE
00178   *         @arg @ref LL_HSEM_COREID_CPU1
00179   *         @arg @ref LL_HSEM_COREID_CPU2
00180   */
00181 __STATIC_INLINE uint32_t LL_HSEM_GetCoreId(HSEM_TypeDef *HSEMx, uint32_t Semaphore)
00182 {
00183   return (uint32_t)(READ_BIT(HSEMx->R[Semaphore], HSEM_R_COREID_Msk));
00184 }
00185 
00186 /**
00187   * @brief  Get process id.
00188   * @rmtoll R            PROCID        LL_HSEM_GetProcessId
00189   * @param  HSEMx HSEM Instance.
00190   * @param  Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
00191   * @retval Process number. Value between Min_Data=0 and Max_Data=255
00192   */
00193 __STATIC_INLINE uint32_t LL_HSEM_GetProcessId(HSEM_TypeDef *HSEMx, uint32_t Semaphore)
00194 {
00195   return (uint32_t)(READ_BIT(HSEMx->R[Semaphore], HSEM_R_PROCID_Msk));
00196 }
00197 
00198 /**
00199   * @brief  Get the lock by writing in R register.
00200   * @note The R register has to be read to determined if the lock is taken.
00201   * @rmtoll R            LOCK          LL_HSEM_SetLock
00202   * @rmtoll R            COREID        LL_HSEM_SetLock
00203   * @rmtoll R            PROCID        LL_HSEM_SetLock
00204   * @param  HSEMx HSEM Instance.
00205   * @param  Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
00206   * @param  process Process id. Value between Min_Data=0 and Max_Data=255
00207   * @retval None
00208   */
00209 __STATIC_INLINE void LL_HSEM_SetLock(HSEM_TypeDef *HSEMx, uint32_t Semaphore, uint32_t process)
00210 {
00211   WRITE_REG(HSEMx->R[Semaphore], (HSEM_R_LOCK | LL_HSEM_COREID | process));
00212 }
00213 
00214 /**
00215   * @brief  Get the lock with 2-step lock.
00216   * @rmtoll R            LOCK          LL_HSEM_2StepLock
00217   * @rmtoll R            COREID        LL_HSEM_2StepLock
00218   * @rmtoll R            PROCID        LL_HSEM_2StepLock
00219   * @param  HSEMx HSEM Instance.
00220   * @param  Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
00221   * @param  process Process id. Value between Min_Data=0 and Max_Data=255
00222   * @retval 1 lock fail, 0 lock successful or already locked by same process and core
00223   */
00224 __STATIC_INLINE uint32_t LL_HSEM_2StepLock(HSEM_TypeDef *HSEMx, uint32_t Semaphore, uint32_t process)
00225 {
00226   WRITE_REG(HSEMx->R[Semaphore], (HSEM_R_LOCK | LL_HSEM_COREID | process));
00227   return ((HSEMx->R[Semaphore] != (HSEM_R_LOCK | LL_HSEM_COREID | process)) ? 1UL : 0UL);
00228 }
00229 
00230 /**
00231   * @brief  Get the lock with 1-step lock.
00232   * @rmtoll RLR          LOCK          LL_HSEM_1StepLock
00233   * @rmtoll RLR          COREID        LL_HSEM_1StepLock
00234   * @rmtoll RLR          PROCID        LL_HSEM_1StepLock
00235   * @param  HSEMx HSEM Instance.
00236   * @param  Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
00237   * @retval 1 lock fail, 0 lock successful or already locked by same core
00238   */
00239 __STATIC_INLINE uint32_t LL_HSEM_1StepLock(HSEM_TypeDef *HSEMx, uint32_t Semaphore)
00240 {
00241   return ((HSEMx->RLR[Semaphore] != (HSEM_RLR_LOCK | LL_HSEM_COREID)) ? 1UL : 0UL);
00242 }
00243 
00244 /**
00245   * @brief  Release the lock of the semaphore.
00246   * @note In case of LL_HSEM_1StepLock usage to lock a semaphore, the process is 0.
00247   * @rmtoll R            LOCK          LL_HSEM_ReleaseLock
00248   * @param  HSEMx HSEM Instance.
00249   * @param  Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
00250   * @param  process Process number. Value between Min_Data=0 and Max_Data=255
00251   * @retval None
00252   */
00253 __STATIC_INLINE void LL_HSEM_ReleaseLock(HSEM_TypeDef *HSEMx, uint32_t Semaphore, uint32_t process)
00254 {
00255   WRITE_REG(HSEMx->R[Semaphore], (LL_HSEM_COREID | process));
00256 }
00257 
00258 /**
00259   * @brief  Get the lock status of the semaphore.
00260   * @rmtoll R            LOCK          LL_HSEM_GetStatus
00261   * @param  HSEMx HSEM Instance.
00262   * @param  Semaphore Semaphore number. Value between Min_Data=0 and Max_Data=31
00263   * @retval 0 semaphore is free, 1 semaphore is locked  */
00264 __STATIC_INLINE uint32_t LL_HSEM_GetStatus(HSEM_TypeDef *HSEMx, uint32_t Semaphore)
00265 {
00266   return ((HSEMx->R[Semaphore] != 0U) ? 1UL : 0UL);
00267 }
00268 
00269 /**
00270   * @brief  Set the key.
00271   * @rmtoll KEYR         KEY           LL_HSEM_SetKey
00272   * @param  HSEMx HSEM Instance.
00273   * @param  key Key value.
00274   * @retval None
00275   */
00276 __STATIC_INLINE void LL_HSEM_SetKey(HSEM_TypeDef *HSEMx, uint32_t key)
00277 {
00278   WRITE_REG(HSEMx->KEYR, key << HSEM_KEYR_KEY_Pos);
00279 }
00280 
00281 /**
00282   * @brief  Get the key.
00283   * @rmtoll KEYR         KEY           LL_HSEM_GetKey
00284   * @param  HSEMx HSEM Instance.
00285   * @retval key to unlock all semaphore from the same core
00286   */
00287 __STATIC_INLINE uint32_t LL_HSEM_GetKey(HSEM_TypeDef *HSEMx)
00288 {
00289   return (uint32_t)(READ_BIT(HSEMx->KEYR, HSEM_KEYR_KEY) >> HSEM_KEYR_KEY_Pos);
00290 }
00291 
00292 /**
00293   * @brief  Release all semaphore with the same core id.
00294   * @rmtoll CR           KEY           LL_HSEM_ResetAllLock
00295   * @rmtoll CR           SEC           LL_HSEM_ResetAllLock
00296   * @rmtoll CR           PRIV          LL_HSEM_ResetAllLock
00297   * @param  HSEMx HSEM Instance.
00298   * @param  key Key value.
00299   * @param  core This parameter can be one of the following values:
00300   *         @arg @ref LL_HSEM_COREID_CPU1
00301   *         @arg @ref LL_HSEM_COREID_CPU2
00302   * @retval None
00303   */
00304 __STATIC_INLINE void LL_HSEM_ResetAllLock(HSEM_TypeDef *HSEMx, uint32_t key, uint32_t core)
00305 {
00306   WRITE_REG(HSEMx->CR, (key << HSEM_CR_KEY_Pos) | core);
00307 }
00308 
00309 /**
00310   * @}
00311   */
00312 
00313 /** @defgroup HSEM_LL_EF_IT_Management IT_Management
00314   * @{
00315   */
00316 
00317 /**
00318   * @brief  Enable interrupt.
00319   * @rmtoll C1IER         ISEM          LL_HSEM_EnableIT_C1IER
00320   * @param  HSEMx HSEM Instance.
00321   * @param  SemaphoreMask This parameter can be a combination of the following values:
00322   *         @arg @ref LL_HSEM_SEMAPHORE_0
00323   *         @arg @ref LL_HSEM_SEMAPHORE_1
00324   *         @arg @ref LL_HSEM_SEMAPHORE_2
00325   *         @arg @ref LL_HSEM_SEMAPHORE_3
00326   *         @arg @ref LL_HSEM_SEMAPHORE_4
00327   *         @arg @ref LL_HSEM_SEMAPHORE_5
00328   *         @arg @ref LL_HSEM_SEMAPHORE_6
00329   *         @arg @ref LL_HSEM_SEMAPHORE_7
00330   *         @arg @ref LL_HSEM_SEMAPHORE_8
00331   *         @arg @ref LL_HSEM_SEMAPHORE_9
00332   *         @arg @ref LL_HSEM_SEMAPHORE_10
00333   *         @arg @ref LL_HSEM_SEMAPHORE_11
00334   *         @arg @ref LL_HSEM_SEMAPHORE_12
00335   *         @arg @ref LL_HSEM_SEMAPHORE_13
00336   *         @arg @ref LL_HSEM_SEMAPHORE_14
00337   *         @arg @ref LL_HSEM_SEMAPHORE_15
00338   *         @arg @ref LL_HSEM_SEMAPHORE_16
00339   *         @arg @ref LL_HSEM_SEMAPHORE_17
00340   *         @arg @ref LL_HSEM_SEMAPHORE_18
00341   *         @arg @ref LL_HSEM_SEMAPHORE_19
00342   *         @arg @ref LL_HSEM_SEMAPHORE_20
00343   *         @arg @ref LL_HSEM_SEMAPHORE_21
00344   *         @arg @ref LL_HSEM_SEMAPHORE_22
00345   *         @arg @ref LL_HSEM_SEMAPHORE_23
00346   *         @arg @ref LL_HSEM_SEMAPHORE_24
00347   *         @arg @ref LL_HSEM_SEMAPHORE_25
00348   *         @arg @ref LL_HSEM_SEMAPHORE_26
00349   *         @arg @ref LL_HSEM_SEMAPHORE_27
00350   *         @arg @ref LL_HSEM_SEMAPHORE_28
00351   *         @arg @ref LL_HSEM_SEMAPHORE_29
00352   *         @arg @ref LL_HSEM_SEMAPHORE_30
00353   *         @arg @ref LL_HSEM_SEMAPHORE_31
00354   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00355   * @note   Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
00356   *         depends on devices.
00357   * @retval None
00358   */
00359 __STATIC_INLINE void LL_HSEM_EnableIT_C1IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00360 {
00361   SET_BIT(HSEMx->C1IER, SemaphoreMask);
00362 }
00363 
00364 /**
00365   * @brief  Disable interrupt.
00366   * @rmtoll C1IER          ISEM          LL_HSEM_DisableIT_C1IER
00367   * @param  HSEMx HSEM Instance.
00368   * @param  SemaphoreMask This parameter can be a combination of the following values:
00369   *         @arg @ref LL_HSEM_SEMAPHORE_0
00370   *         @arg @ref LL_HSEM_SEMAPHORE_1
00371   *         @arg @ref LL_HSEM_SEMAPHORE_2
00372   *         @arg @ref LL_HSEM_SEMAPHORE_3
00373   *         @arg @ref LL_HSEM_SEMAPHORE_4
00374   *         @arg @ref LL_HSEM_SEMAPHORE_5
00375   *         @arg @ref LL_HSEM_SEMAPHORE_6
00376   *         @arg @ref LL_HSEM_SEMAPHORE_7
00377   *         @arg @ref LL_HSEM_SEMAPHORE_8
00378   *         @arg @ref LL_HSEM_SEMAPHORE_9
00379   *         @arg @ref LL_HSEM_SEMAPHORE_10
00380   *         @arg @ref LL_HSEM_SEMAPHORE_11
00381   *         @arg @ref LL_HSEM_SEMAPHORE_12
00382   *         @arg @ref LL_HSEM_SEMAPHORE_13
00383   *         @arg @ref LL_HSEM_SEMAPHORE_14
00384   *         @arg @ref LL_HSEM_SEMAPHORE_15
00385   *         @arg @ref LL_HSEM_SEMAPHORE_16
00386   *         @arg @ref LL_HSEM_SEMAPHORE_17
00387   *         @arg @ref LL_HSEM_SEMAPHORE_18
00388   *         @arg @ref LL_HSEM_SEMAPHORE_19
00389   *         @arg @ref LL_HSEM_SEMAPHORE_20
00390   *         @arg @ref LL_HSEM_SEMAPHORE_21
00391   *         @arg @ref LL_HSEM_SEMAPHORE_22
00392   *         @arg @ref LL_HSEM_SEMAPHORE_23
00393   *         @arg @ref LL_HSEM_SEMAPHORE_24
00394   *         @arg @ref LL_HSEM_SEMAPHORE_25
00395   *         @arg @ref LL_HSEM_SEMAPHORE_26
00396   *         @arg @ref LL_HSEM_SEMAPHORE_27
00397   *         @arg @ref LL_HSEM_SEMAPHORE_28
00398   *         @arg @ref LL_HSEM_SEMAPHORE_29
00399   *         @arg @ref LL_HSEM_SEMAPHORE_30
00400   *         @arg @ref LL_HSEM_SEMAPHORE_31
00401   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00402   * @note   Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
00403   *         depends on devices.
00404   * @retval None
00405   */
00406 __STATIC_INLINE void LL_HSEM_DisableIT_C1IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00407 {
00408   CLEAR_BIT(HSEMx->C1IER, SemaphoreMask);
00409 }
00410 
00411 /**
00412   * @brief  Check if interrupt is enabled.
00413   * @rmtoll C1IER          ISEM          LL_HSEM_IsEnabledIT_C1IER
00414   * @param  HSEMx HSEM Instance.
00415   * @param  SemaphoreMask This parameter can be a combination of the following values:
00416   *         @arg @ref LL_HSEM_SEMAPHORE_0
00417   *         @arg @ref LL_HSEM_SEMAPHORE_1
00418   *         @arg @ref LL_HSEM_SEMAPHORE_2
00419   *         @arg @ref LL_HSEM_SEMAPHORE_3
00420   *         @arg @ref LL_HSEM_SEMAPHORE_4
00421   *         @arg @ref LL_HSEM_SEMAPHORE_5
00422   *         @arg @ref LL_HSEM_SEMAPHORE_6
00423   *         @arg @ref LL_HSEM_SEMAPHORE_7
00424   *         @arg @ref LL_HSEM_SEMAPHORE_8
00425   *         @arg @ref LL_HSEM_SEMAPHORE_9
00426   *         @arg @ref LL_HSEM_SEMAPHORE_10
00427   *         @arg @ref LL_HSEM_SEMAPHORE_11
00428   *         @arg @ref LL_HSEM_SEMAPHORE_12
00429   *         @arg @ref LL_HSEM_SEMAPHORE_13
00430   *         @arg @ref LL_HSEM_SEMAPHORE_14
00431   *         @arg @ref LL_HSEM_SEMAPHORE_15
00432   *         @arg @ref LL_HSEM_SEMAPHORE_16
00433   *         @arg @ref LL_HSEM_SEMAPHORE_17
00434   *         @arg @ref LL_HSEM_SEMAPHORE_18
00435   *         @arg @ref LL_HSEM_SEMAPHORE_19
00436   *         @arg @ref LL_HSEM_SEMAPHORE_20
00437   *         @arg @ref LL_HSEM_SEMAPHORE_21
00438   *         @arg @ref LL_HSEM_SEMAPHORE_22
00439   *         @arg @ref LL_HSEM_SEMAPHORE_23
00440   *         @arg @ref LL_HSEM_SEMAPHORE_24
00441   *         @arg @ref LL_HSEM_SEMAPHORE_25
00442   *         @arg @ref LL_HSEM_SEMAPHORE_26
00443   *         @arg @ref LL_HSEM_SEMAPHORE_27
00444   *         @arg @ref LL_HSEM_SEMAPHORE_28
00445   *         @arg @ref LL_HSEM_SEMAPHORE_29
00446   *         @arg @ref LL_HSEM_SEMAPHORE_30
00447   *         @arg @ref LL_HSEM_SEMAPHORE_31
00448   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00449   * @note   Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
00450   *         depends on devices.
00451   * @retval State of bit (1 or 0).
00452   */
00453 __STATIC_INLINE uint32_t LL_HSEM_IsEnabledIT_C1IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00454 {
00455   return ((READ_BIT(HSEMx->C1IER, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
00456 }
00457 
00458 #if defined(DUAL_CORE)
00459 /**
00460   * @brief  Enable interrupt.
00461   * @rmtoll C2IER         ISEM          LL_HSEM_EnableIT_C2IER
00462   * @param  HSEMx HSEM Instance.
00463   * @param  SemaphoreMask This parameter can be a combination of the following values:
00464   *         @arg @ref LL_HSEM_SEMAPHORE_0
00465   *         @arg @ref LL_HSEM_SEMAPHORE_1
00466   *         @arg @ref LL_HSEM_SEMAPHORE_2
00467   *         @arg @ref LL_HSEM_SEMAPHORE_3
00468   *         @arg @ref LL_HSEM_SEMAPHORE_4
00469   *         @arg @ref LL_HSEM_SEMAPHORE_5
00470   *         @arg @ref LL_HSEM_SEMAPHORE_6
00471   *         @arg @ref LL_HSEM_SEMAPHORE_7
00472   *         @arg @ref LL_HSEM_SEMAPHORE_8
00473   *         @arg @ref LL_HSEM_SEMAPHORE_9
00474   *         @arg @ref LL_HSEM_SEMAPHORE_10
00475   *         @arg @ref LL_HSEM_SEMAPHORE_11
00476   *         @arg @ref LL_HSEM_SEMAPHORE_12
00477   *         @arg @ref LL_HSEM_SEMAPHORE_13
00478   *         @arg @ref LL_HSEM_SEMAPHORE_14
00479   *         @arg @ref LL_HSEM_SEMAPHORE_15
00480   *         @arg @ref LL_HSEM_SEMAPHORE_16
00481   *         @arg @ref LL_HSEM_SEMAPHORE_17
00482   *         @arg @ref LL_HSEM_SEMAPHORE_18
00483   *         @arg @ref LL_HSEM_SEMAPHORE_19
00484   *         @arg @ref LL_HSEM_SEMAPHORE_20
00485   *         @arg @ref LL_HSEM_SEMAPHORE_21
00486   *         @arg @ref LL_HSEM_SEMAPHORE_22
00487   *         @arg @ref LL_HSEM_SEMAPHORE_23
00488   *         @arg @ref LL_HSEM_SEMAPHORE_24
00489   *         @arg @ref LL_HSEM_SEMAPHORE_25
00490   *         @arg @ref LL_HSEM_SEMAPHORE_26
00491   *         @arg @ref LL_HSEM_SEMAPHORE_27
00492   *         @arg @ref LL_HSEM_SEMAPHORE_28
00493   *         @arg @ref LL_HSEM_SEMAPHORE_29
00494   *         @arg @ref LL_HSEM_SEMAPHORE_30
00495   *         @arg @ref LL_HSEM_SEMAPHORE_31
00496   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00497   * @retval None
00498   */
00499 __STATIC_INLINE void LL_HSEM_EnableIT_C2IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00500 {
00501   SET_BIT(HSEMx->C2IER, SemaphoreMask);
00502 }
00503 
00504 /**
00505   * @brief  Disable interrupt.
00506   * @rmtoll C2IER          ISEM          LL_HSEM_DisableIT_C2IER
00507   * @param  HSEMx HSEM Instance.
00508   * @param  SemaphoreMask This parameter can be a combination of the following values:
00509   *         @arg @ref LL_HSEM_SEMAPHORE_0
00510   *         @arg @ref LL_HSEM_SEMAPHORE_1
00511   *         @arg @ref LL_HSEM_SEMAPHORE_2
00512   *         @arg @ref LL_HSEM_SEMAPHORE_3
00513   *         @arg @ref LL_HSEM_SEMAPHORE_4
00514   *         @arg @ref LL_HSEM_SEMAPHORE_5
00515   *         @arg @ref LL_HSEM_SEMAPHORE_6
00516   *         @arg @ref LL_HSEM_SEMAPHORE_7
00517   *         @arg @ref LL_HSEM_SEMAPHORE_8
00518   *         @arg @ref LL_HSEM_SEMAPHORE_9
00519   *         @arg @ref LL_HSEM_SEMAPHORE_10
00520   *         @arg @ref LL_HSEM_SEMAPHORE_11
00521   *         @arg @ref LL_HSEM_SEMAPHORE_12
00522   *         @arg @ref LL_HSEM_SEMAPHORE_13
00523   *         @arg @ref LL_HSEM_SEMAPHORE_14
00524   *         @arg @ref LL_HSEM_SEMAPHORE_15
00525   *         @arg @ref LL_HSEM_SEMAPHORE_16
00526   *         @arg @ref LL_HSEM_SEMAPHORE_17
00527   *         @arg @ref LL_HSEM_SEMAPHORE_18
00528   *         @arg @ref LL_HSEM_SEMAPHORE_19
00529   *         @arg @ref LL_HSEM_SEMAPHORE_20
00530   *         @arg @ref LL_HSEM_SEMAPHORE_21
00531   *         @arg @ref LL_HSEM_SEMAPHORE_22
00532   *         @arg @ref LL_HSEM_SEMAPHORE_23
00533   *         @arg @ref LL_HSEM_SEMAPHORE_24
00534   *         @arg @ref LL_HSEM_SEMAPHORE_25
00535   *         @arg @ref LL_HSEM_SEMAPHORE_26
00536   *         @arg @ref LL_HSEM_SEMAPHORE_27
00537   *         @arg @ref LL_HSEM_SEMAPHORE_28
00538   *         @arg @ref LL_HSEM_SEMAPHORE_29
00539   *         @arg @ref LL_HSEM_SEMAPHORE_30
00540   *         @arg @ref LL_HSEM_SEMAPHORE_31
00541   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00542   * @retval None
00543   */
00544 __STATIC_INLINE void LL_HSEM_DisableIT_C2IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00545 {
00546   CLEAR_BIT(HSEMx->C2IER, SemaphoreMask);
00547 }
00548 
00549 /**
00550   * @brief  Check if interrupt is enabled.
00551   * @rmtoll C2IER          ISEM          LL_HSEM_IsEnabledIT_C2IER
00552   * @param  HSEMx HSEM Instance.
00553   * @param  SemaphoreMask This parameter can be a combination of the following values:
00554   *         @arg @ref LL_HSEM_SEMAPHORE_0
00555   *         @arg @ref LL_HSEM_SEMAPHORE_1
00556   *         @arg @ref LL_HSEM_SEMAPHORE_2
00557   *         @arg @ref LL_HSEM_SEMAPHORE_3
00558   *         @arg @ref LL_HSEM_SEMAPHORE_4
00559   *         @arg @ref LL_HSEM_SEMAPHORE_5
00560   *         @arg @ref LL_HSEM_SEMAPHORE_6
00561   *         @arg @ref LL_HSEM_SEMAPHORE_7
00562   *         @arg @ref LL_HSEM_SEMAPHORE_8
00563   *         @arg @ref LL_HSEM_SEMAPHORE_9
00564   *         @arg @ref LL_HSEM_SEMAPHORE_10
00565   *         @arg @ref LL_HSEM_SEMAPHORE_11
00566   *         @arg @ref LL_HSEM_SEMAPHORE_12
00567   *         @arg @ref LL_HSEM_SEMAPHORE_13
00568   *         @arg @ref LL_HSEM_SEMAPHORE_14
00569   *         @arg @ref LL_HSEM_SEMAPHORE_15
00570   *         @arg @ref LL_HSEM_SEMAPHORE_16
00571   *         @arg @ref LL_HSEM_SEMAPHORE_17
00572   *         @arg @ref LL_HSEM_SEMAPHORE_18
00573   *         @arg @ref LL_HSEM_SEMAPHORE_19
00574   *         @arg @ref LL_HSEM_SEMAPHORE_20
00575   *         @arg @ref LL_HSEM_SEMAPHORE_21
00576   *         @arg @ref LL_HSEM_SEMAPHORE_22
00577   *         @arg @ref LL_HSEM_SEMAPHORE_23
00578   *         @arg @ref LL_HSEM_SEMAPHORE_24
00579   *         @arg @ref LL_HSEM_SEMAPHORE_25
00580   *         @arg @ref LL_HSEM_SEMAPHORE_26
00581   *         @arg @ref LL_HSEM_SEMAPHORE_27
00582   *         @arg @ref LL_HSEM_SEMAPHORE_28
00583   *         @arg @ref LL_HSEM_SEMAPHORE_29
00584   *         @arg @ref LL_HSEM_SEMAPHORE_30
00585   *         @arg @ref LL_HSEM_SEMAPHORE_31
00586   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00587   * @retval State of bit (1 or 0).
00588   */
00589 __STATIC_INLINE uint32_t LL_HSEM_IsEnabledIT_C2IER(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00590 {
00591   return ((READ_BIT(HSEMx->C2IER, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
00592 }
00593 #endif /* DUAL_CORE */
00594 
00595 /**
00596   * @}
00597   */
00598 
00599 /** @defgroup HSEM_LL_EF_FLAG_Management FLAG_Management
00600   * @{
00601   */
00602 
00603 /**
00604   * @brief  Clear interrupt status.
00605   * @rmtoll C1ICR         ISEM          LL_HSEM_ClearFlag_C1ICR
00606   * @param  HSEMx HSEM Instance.
00607   * @param  SemaphoreMask This parameter can be a combination of the following values:
00608   *         @arg @ref LL_HSEM_SEMAPHORE_0
00609   *         @arg @ref LL_HSEM_SEMAPHORE_1
00610   *         @arg @ref LL_HSEM_SEMAPHORE_2
00611   *         @arg @ref LL_HSEM_SEMAPHORE_3
00612   *         @arg @ref LL_HSEM_SEMAPHORE_4
00613   *         @arg @ref LL_HSEM_SEMAPHORE_5
00614   *         @arg @ref LL_HSEM_SEMAPHORE_6
00615   *         @arg @ref LL_HSEM_SEMAPHORE_7
00616   *         @arg @ref LL_HSEM_SEMAPHORE_8
00617   *         @arg @ref LL_HSEM_SEMAPHORE_9
00618   *         @arg @ref LL_HSEM_SEMAPHORE_10
00619   *         @arg @ref LL_HSEM_SEMAPHORE_11
00620   *         @arg @ref LL_HSEM_SEMAPHORE_12
00621   *         @arg @ref LL_HSEM_SEMAPHORE_13
00622   *         @arg @ref LL_HSEM_SEMAPHORE_14
00623   *         @arg @ref LL_HSEM_SEMAPHORE_15
00624   *         @arg @ref LL_HSEM_SEMAPHORE_16
00625   *         @arg @ref LL_HSEM_SEMAPHORE_17
00626   *         @arg @ref LL_HSEM_SEMAPHORE_18
00627   *         @arg @ref LL_HSEM_SEMAPHORE_19
00628   *         @arg @ref LL_HSEM_SEMAPHORE_20
00629   *         @arg @ref LL_HSEM_SEMAPHORE_21
00630   *         @arg @ref LL_HSEM_SEMAPHORE_22
00631   *         @arg @ref LL_HSEM_SEMAPHORE_23
00632   *         @arg @ref LL_HSEM_SEMAPHORE_24
00633   *         @arg @ref LL_HSEM_SEMAPHORE_25
00634   *         @arg @ref LL_HSEM_SEMAPHORE_26
00635   *         @arg @ref LL_HSEM_SEMAPHORE_27
00636   *         @arg @ref LL_HSEM_SEMAPHORE_28
00637   *         @arg @ref LL_HSEM_SEMAPHORE_29
00638   *         @arg @ref LL_HSEM_SEMAPHORE_30
00639   *         @arg @ref LL_HSEM_SEMAPHORE_31
00640   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00641   * @note   Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
00642   *         depends on devices.
00643   * @retval None
00644   */
00645 __STATIC_INLINE void LL_HSEM_ClearFlag_C1ICR(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00646 {
00647   WRITE_REG(HSEMx->C1ICR, SemaphoreMask);
00648 }
00649 
00650 /**
00651   * @brief  Get interrupt status from ISR register.
00652   * @rmtoll C1ISR         ISEM          LL_HSEM_IsActiveFlag_C1ISR
00653   * @param  HSEMx HSEM Instance.
00654   * @param  SemaphoreMask This parameter can be a combination of the following values:
00655   *         @arg @ref LL_HSEM_SEMAPHORE_0
00656   *         @arg @ref LL_HSEM_SEMAPHORE_1
00657   *         @arg @ref LL_HSEM_SEMAPHORE_2
00658   *         @arg @ref LL_HSEM_SEMAPHORE_3
00659   *         @arg @ref LL_HSEM_SEMAPHORE_4
00660   *         @arg @ref LL_HSEM_SEMAPHORE_5
00661   *         @arg @ref LL_HSEM_SEMAPHORE_6
00662   *         @arg @ref LL_HSEM_SEMAPHORE_7
00663   *         @arg @ref LL_HSEM_SEMAPHORE_8
00664   *         @arg @ref LL_HSEM_SEMAPHORE_9
00665   *         @arg @ref LL_HSEM_SEMAPHORE_10
00666   *         @arg @ref LL_HSEM_SEMAPHORE_11
00667   *         @arg @ref LL_HSEM_SEMAPHORE_12
00668   *         @arg @ref LL_HSEM_SEMAPHORE_13
00669   *         @arg @ref LL_HSEM_SEMAPHORE_14
00670   *         @arg @ref LL_HSEM_SEMAPHORE_15
00671   *         @arg @ref LL_HSEM_SEMAPHORE_16
00672   *         @arg @ref LL_HSEM_SEMAPHORE_17
00673   *         @arg @ref LL_HSEM_SEMAPHORE_18
00674   *         @arg @ref LL_HSEM_SEMAPHORE_19
00675   *         @arg @ref LL_HSEM_SEMAPHORE_20
00676   *         @arg @ref LL_HSEM_SEMAPHORE_21
00677   *         @arg @ref LL_HSEM_SEMAPHORE_22
00678   *         @arg @ref LL_HSEM_SEMAPHORE_23
00679   *         @arg @ref LL_HSEM_SEMAPHORE_24
00680   *         @arg @ref LL_HSEM_SEMAPHORE_25
00681   *         @arg @ref LL_HSEM_SEMAPHORE_26
00682   *         @arg @ref LL_HSEM_SEMAPHORE_27
00683   *         @arg @ref LL_HSEM_SEMAPHORE_28
00684   *         @arg @ref LL_HSEM_SEMAPHORE_29
00685   *         @arg @ref LL_HSEM_SEMAPHORE_30
00686   *         @arg @ref LL_HSEM_SEMAPHORE_31
00687   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00688   * @note   Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
00689   *         depends on devices.
00690   * @retval State of bit (1 or 0).
00691   */
00692 __STATIC_INLINE uint32_t LL_HSEM_IsActiveFlag_C1ISR(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00693 {
00694   return ((READ_BIT(HSEMx->C1ISR, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
00695 }
00696 
00697 /**
00698   * @brief  Get interrupt status from MISR register.
00699   * @rmtoll C1MISR        ISEM          LL_HSEM_IsActiveFlag_C1MISR
00700   * @param  HSEMx HSEM Instance.
00701   * @param  SemaphoreMask This parameter can be a combination of the following values:
00702   *         @arg @ref LL_HSEM_SEMAPHORE_0
00703   *         @arg @ref LL_HSEM_SEMAPHORE_1
00704   *         @arg @ref LL_HSEM_SEMAPHORE_2
00705   *         @arg @ref LL_HSEM_SEMAPHORE_3
00706   *         @arg @ref LL_HSEM_SEMAPHORE_4
00707   *         @arg @ref LL_HSEM_SEMAPHORE_5
00708   *         @arg @ref LL_HSEM_SEMAPHORE_6
00709   *         @arg @ref LL_HSEM_SEMAPHORE_7
00710   *         @arg @ref LL_HSEM_SEMAPHORE_8
00711   *         @arg @ref LL_HSEM_SEMAPHORE_9
00712   *         @arg @ref LL_HSEM_SEMAPHORE_10
00713   *         @arg @ref LL_HSEM_SEMAPHORE_11
00714   *         @arg @ref LL_HSEM_SEMAPHORE_12
00715   *         @arg @ref LL_HSEM_SEMAPHORE_13
00716   *         @arg @ref LL_HSEM_SEMAPHORE_14
00717   *         @arg @ref LL_HSEM_SEMAPHORE_15
00718   *         @arg @ref LL_HSEM_SEMAPHORE_16
00719   *         @arg @ref LL_HSEM_SEMAPHORE_17
00720   *         @arg @ref LL_HSEM_SEMAPHORE_18
00721   *         @arg @ref LL_HSEM_SEMAPHORE_19
00722   *         @arg @ref LL_HSEM_SEMAPHORE_20
00723   *         @arg @ref LL_HSEM_SEMAPHORE_21
00724   *         @arg @ref LL_HSEM_SEMAPHORE_22
00725   *         @arg @ref LL_HSEM_SEMAPHORE_23
00726   *         @arg @ref LL_HSEM_SEMAPHORE_24
00727   *         @arg @ref LL_HSEM_SEMAPHORE_25
00728   *         @arg @ref LL_HSEM_SEMAPHORE_26
00729   *         @arg @ref LL_HSEM_SEMAPHORE_27
00730   *         @arg @ref LL_HSEM_SEMAPHORE_28
00731   *         @arg @ref LL_HSEM_SEMAPHORE_29
00732   *         @arg @ref LL_HSEM_SEMAPHORE_30
00733   *         @arg @ref LL_HSEM_SEMAPHORE_31
00734   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00735   * @note   Availability of flags LL_HSEM_SEMAPHORE_16 to LL_HSEM_SEMAPHORE_31
00736   *         depends on devices.
00737   * @retval State of bit (1 or 0).
00738   */
00739 __STATIC_INLINE uint32_t LL_HSEM_IsActiveFlag_C1MISR(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00740 {
00741   return ((READ_BIT(HSEMx->C1MISR, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
00742 }
00743 
00744 #if defined(DUAL_CORE)
00745 /**
00746   * @brief  Clear interrupt status.
00747   * @rmtoll C2ICR         ISEM          LL_HSEM_ClearFlag_C2ICR
00748   * @param  HSEMx HSEM Instance.
00749   * @param  SemaphoreMask This parameter can be a combination of the following values:
00750   *         @arg @ref LL_HSEM_SEMAPHORE_0
00751   *         @arg @ref LL_HSEM_SEMAPHORE_1
00752   *         @arg @ref LL_HSEM_SEMAPHORE_2
00753   *         @arg @ref LL_HSEM_SEMAPHORE_3
00754   *         @arg @ref LL_HSEM_SEMAPHORE_4
00755   *         @arg @ref LL_HSEM_SEMAPHORE_5
00756   *         @arg @ref LL_HSEM_SEMAPHORE_6
00757   *         @arg @ref LL_HSEM_SEMAPHORE_7
00758   *         @arg @ref LL_HSEM_SEMAPHORE_8
00759   *         @arg @ref LL_HSEM_SEMAPHORE_9
00760   *         @arg @ref LL_HSEM_SEMAPHORE_10
00761   *         @arg @ref LL_HSEM_SEMAPHORE_11
00762   *         @arg @ref LL_HSEM_SEMAPHORE_12
00763   *         @arg @ref LL_HSEM_SEMAPHORE_13
00764   *         @arg @ref LL_HSEM_SEMAPHORE_14
00765   *         @arg @ref LL_HSEM_SEMAPHORE_15
00766   *         @arg @ref LL_HSEM_SEMAPHORE_16
00767   *         @arg @ref LL_HSEM_SEMAPHORE_17
00768   *         @arg @ref LL_HSEM_SEMAPHORE_18
00769   *         @arg @ref LL_HSEM_SEMAPHORE_19
00770   *         @arg @ref LL_HSEM_SEMAPHORE_20
00771   *         @arg @ref LL_HSEM_SEMAPHORE_21
00772   *         @arg @ref LL_HSEM_SEMAPHORE_22
00773   *         @arg @ref LL_HSEM_SEMAPHORE_23
00774   *         @arg @ref LL_HSEM_SEMAPHORE_24
00775   *         @arg @ref LL_HSEM_SEMAPHORE_25
00776   *         @arg @ref LL_HSEM_SEMAPHORE_26
00777   *         @arg @ref LL_HSEM_SEMAPHORE_27
00778   *         @arg @ref LL_HSEM_SEMAPHORE_28
00779   *         @arg @ref LL_HSEM_SEMAPHORE_29
00780   *         @arg @ref LL_HSEM_SEMAPHORE_30
00781   *         @arg @ref LL_HSEM_SEMAPHORE_31
00782   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00783   * @retval None
00784   */
00785 __STATIC_INLINE void LL_HSEM_ClearFlag_C2ICR(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00786 {
00787   WRITE_REG(HSEMx->C2ICR, SemaphoreMask);
00788 }
00789 
00790 /**
00791   * @brief  Get interrupt status from ISR register.
00792   * @rmtoll C2ISR         ISEM          LL_HSEM_IsActiveFlag_C2ISR
00793   * @param  HSEMx HSEM Instance.
00794   * @param  SemaphoreMask This parameter can be a combination of the following values:
00795   *         @arg @ref LL_HSEM_SEMAPHORE_0
00796   *         @arg @ref LL_HSEM_SEMAPHORE_1
00797   *         @arg @ref LL_HSEM_SEMAPHORE_2
00798   *         @arg @ref LL_HSEM_SEMAPHORE_3
00799   *         @arg @ref LL_HSEM_SEMAPHORE_4
00800   *         @arg @ref LL_HSEM_SEMAPHORE_5
00801   *         @arg @ref LL_HSEM_SEMAPHORE_6
00802   *         @arg @ref LL_HSEM_SEMAPHORE_7
00803   *         @arg @ref LL_HSEM_SEMAPHORE_8
00804   *         @arg @ref LL_HSEM_SEMAPHORE_9
00805   *         @arg @ref LL_HSEM_SEMAPHORE_10
00806   *         @arg @ref LL_HSEM_SEMAPHORE_11
00807   *         @arg @ref LL_HSEM_SEMAPHORE_12
00808   *         @arg @ref LL_HSEM_SEMAPHORE_13
00809   *         @arg @ref LL_HSEM_SEMAPHORE_14
00810   *         @arg @ref LL_HSEM_SEMAPHORE_15
00811   *         @arg @ref LL_HSEM_SEMAPHORE_16
00812   *         @arg @ref LL_HSEM_SEMAPHORE_17
00813   *         @arg @ref LL_HSEM_SEMAPHORE_18
00814   *         @arg @ref LL_HSEM_SEMAPHORE_19
00815   *         @arg @ref LL_HSEM_SEMAPHORE_20
00816   *         @arg @ref LL_HSEM_SEMAPHORE_21
00817   *         @arg @ref LL_HSEM_SEMAPHORE_22
00818   *         @arg @ref LL_HSEM_SEMAPHORE_23
00819   *         @arg @ref LL_HSEM_SEMAPHORE_24
00820   *         @arg @ref LL_HSEM_SEMAPHORE_25
00821   *         @arg @ref LL_HSEM_SEMAPHORE_26
00822   *         @arg @ref LL_HSEM_SEMAPHORE_27
00823   *         @arg @ref LL_HSEM_SEMAPHORE_28
00824   *         @arg @ref LL_HSEM_SEMAPHORE_29
00825   *         @arg @ref LL_HSEM_SEMAPHORE_30
00826   *         @arg @ref LL_HSEM_SEMAPHORE_31
00827   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00828   * @retval State of bit (1 or 0).
00829   */
00830 __STATIC_INLINE uint32_t LL_HSEM_IsActiveFlag_C2ISR(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00831 {
00832   return ((READ_BIT(HSEMx->C2ISR, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
00833 }
00834 
00835 /**
00836   * @brief  Get interrupt status from MISR register.
00837   * @rmtoll C2MISR        ISEM          LL_HSEM_IsActiveFlag_C2MISR
00838   * @param  HSEMx HSEM Instance.
00839   * @param  SemaphoreMask This parameter can be a combination of the following values:
00840   *         @arg @ref LL_HSEM_SEMAPHORE_0
00841   *         @arg @ref LL_HSEM_SEMAPHORE_1
00842   *         @arg @ref LL_HSEM_SEMAPHORE_2
00843   *         @arg @ref LL_HSEM_SEMAPHORE_3
00844   *         @arg @ref LL_HSEM_SEMAPHORE_4
00845   *         @arg @ref LL_HSEM_SEMAPHORE_5
00846   *         @arg @ref LL_HSEM_SEMAPHORE_6
00847   *         @arg @ref LL_HSEM_SEMAPHORE_7
00848   *         @arg @ref LL_HSEM_SEMAPHORE_8
00849   *         @arg @ref LL_HSEM_SEMAPHORE_9
00850   *         @arg @ref LL_HSEM_SEMAPHORE_10
00851   *         @arg @ref LL_HSEM_SEMAPHORE_11
00852   *         @arg @ref LL_HSEM_SEMAPHORE_12
00853   *         @arg @ref LL_HSEM_SEMAPHORE_13
00854   *         @arg @ref LL_HSEM_SEMAPHORE_14
00855   *         @arg @ref LL_HSEM_SEMAPHORE_15
00856   *         @arg @ref LL_HSEM_SEMAPHORE_16
00857   *         @arg @ref LL_HSEM_SEMAPHORE_17
00858   *         @arg @ref LL_HSEM_SEMAPHORE_18
00859   *         @arg @ref LL_HSEM_SEMAPHORE_19
00860   *         @arg @ref LL_HSEM_SEMAPHORE_20
00861   *         @arg @ref LL_HSEM_SEMAPHORE_21
00862   *         @arg @ref LL_HSEM_SEMAPHORE_22
00863   *         @arg @ref LL_HSEM_SEMAPHORE_23
00864   *         @arg @ref LL_HSEM_SEMAPHORE_24
00865   *         @arg @ref LL_HSEM_SEMAPHORE_25
00866   *         @arg @ref LL_HSEM_SEMAPHORE_26
00867   *         @arg @ref LL_HSEM_SEMAPHORE_27
00868   *         @arg @ref LL_HSEM_SEMAPHORE_28
00869   *         @arg @ref LL_HSEM_SEMAPHORE_29
00870   *         @arg @ref LL_HSEM_SEMAPHORE_30
00871   *         @arg @ref LL_HSEM_SEMAPHORE_31
00872   *         @arg @ref LL_HSEM_SEMAPHORE_ALL
00873   * @retval State of bit (1 or 0).
00874   */
00875 __STATIC_INLINE uint32_t LL_HSEM_IsActiveFlag_C2MISR(HSEM_TypeDef *HSEMx, uint32_t SemaphoreMask)
00876 {
00877   return ((READ_BIT(HSEMx->C2MISR, SemaphoreMask) == (SemaphoreMask)) ? 1UL : 0UL);
00878 }
00879 #endif /* DUAL_CORE */
00880 /**
00881   * @}
00882   */
00883 
00884 /**
00885   * @}
00886   */
00887 
00888 /**
00889   * @}
00890   */
00891 
00892 #endif /* defined(HSEM) */
00893 
00894 /**
00895   * @}
00896   */
00897 
00898 #ifdef __cplusplus
00899 }
00900 #endif
00901 
00902 #endif /* __STM32H7xx_LL_HSEM_H */