LCOV - code coverage report
Current view: top level - zephyr/arch/arm/cortex_m - cpu.h Hit Total Coverage
Test: new.info Lines: 0 13 0.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2015, Wind River Systems, Inc.
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef _CORTEX_M_CPU_H
       8             : #define _CORTEX_M_CPU_H
       9             : 
      10             : #ifdef _ASMLANGUAGE
      11             : 
      12             : #define _SCS_BASE_ADDR _PPB_INT_SCS
      13             : 
      14             : /* ICSR defines */
      15             : #define _SCS_ICSR (_SCS_BASE_ADDR + 0xd04)
      16             : #define _SCS_ICSR_PENDSV (1 << 28)
      17             : #define _SCS_ICSR_UNPENDSV (1 << 27)
      18             : #define _SCS_ICSR_RETTOBASE (1 << 11)
      19             : 
      20             : #define _SCS_MPU_CTRL (_SCS_BASE_ADDR + 0xd94)
      21             : 
      22             : /* CONTROL defines */
      23             : #define _CONTROL_FPCA_Msk (1 << 2)
      24             : 
      25             : /* EXC_RETURN defines */
      26             : #define _EXC_RETURN_SPSEL_Msk (1 << 2)
      27             : #define _EXC_RETURN_FTYPE_Msk (1 << 4)
      28             : 
      29             : #else
      30             : #include <stdint.h>
      31             : 
      32             : #ifdef __cplusplus
      33             : extern "C" {
      34             : #endif
      35             : 
      36             : /* CP10 Access Bits */
      37           0 : #define CPACR_CP10_Pos          20U
      38           0 : #define CPACR_CP10_Msk          (3UL << CPACR_CP10_Pos)
      39           0 : #define CPACR_CP10_NO_ACCESS    (0UL << CPACR_CP10_Pos)
      40           0 : #define CPACR_CP10_PRIV_ACCESS  (1UL << CPACR_CP10_Pos)
      41           0 : #define CPACR_CP10_RESERVED     (2UL << CPACR_CP10_Pos)
      42           0 : #define CPACR_CP10_FULL_ACCESS  (3UL << CPACR_CP10_Pos)
      43             : 
      44             : /* CP11 Access Bits */
      45           0 : #define CPACR_CP11_Pos          22U
      46           0 : #define CPACR_CP11_Msk          (3UL << CPACR_CP11_Pos)
      47           0 : #define CPACR_CP11_NO_ACCESS    (0UL << CPACR_CP11_Pos)
      48           0 : #define CPACR_CP11_PRIV_ACCESS  (1UL << CPACR_CP11_Pos)
      49           0 : #define CPACR_CP11_RESERVED     (2UL << CPACR_CP11_Pos)
      50           0 : #define CPACR_CP11_FULL_ACCESS  (3UL << CPACR_CP11_Pos)
      51             : 
      52             : #ifdef CONFIG_PM_S2RAM
      53             : 
      54             : struct __cpu_context {
      55             :         /* GPRs are saved onto the stack */
      56             :         uint32_t msp;
      57             :         uint32_t psp;
      58             :         uint32_t primask;
      59             :         uint32_t control;
      60             : 
      61             : #if defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
      62             :         /* Registers present only on ARMv7-M and ARMv8-M Mainline */
      63             :         uint32_t faultmask;
      64             :         uint32_t basepri;
      65             : #endif /* CONFIG_ARMV7_M_ARMV8_M_MAINLINE */
      66             : 
      67             : #if defined(CONFIG_CPU_CORTEX_M_HAS_SPLIM)
      68             :         /* Registers present only on certain ARMv8-M implementations */
      69             :         uint32_t msplim;
      70             :         uint32_t psplim;
      71             : #endif /* CONFIG_CPU_CORTEX_M_HAS_SPLIM */
      72             : };
      73             : 
      74             : typedef struct __cpu_context _cpu_context_t;
      75             : 
      76             : #endif /* CONFIG_PM_S2RAM */
      77             : 
      78             : #ifdef __cplusplus
      79             : }
      80             : #endif
      81             : 
      82             : #endif /* _ASMLANGUAGE */
      83             : 
      84             : #endif /* _CORTEX_M_CPU_H */

Generated by: LCOV version 1.14