LCOV - code coverage report
Current view: top level - zephyr/arch/arm - misc.h Hit Total Coverage
Test: new.info Lines: 1 6 16.7 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2013-2014 Wind River Systems, Inc.
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief ARM AArch32 public kernel miscellaneous
      10             :  *
      11             :  * ARM AArch32-specific kernel miscellaneous interface. Included by arm/arch.h.
      12             :  */
      13             : 
      14             : #ifndef ZEPHYR_INCLUDE_ARCH_ARM_MISC_H_
      15             : #define ZEPHYR_INCLUDE_ARCH_ARM_MISC_H_
      16             : 
      17             : #ifdef __cplusplus
      18             : extern "C" {
      19             : #endif
      20             : 
      21             : #ifndef _ASMLANGUAGE
      22           0 : extern uint32_t sys_clock_cycle_get_32(void);
      23             : 
      24           0 : static inline uint32_t arch_k_cycle_get_32(void)
      25             : {
      26             :         return sys_clock_cycle_get_32();
      27             : }
      28             : 
      29           0 : extern uint64_t sys_clock_cycle_get_64(void);
      30             : 
      31           0 : static inline uint64_t arch_k_cycle_get_64(void)
      32             : {
      33             :         return sys_clock_cycle_get_64();
      34             : }
      35             : 
      36           0 : static ALWAYS_INLINE void arch_nop(void)
      37             : {
      38             :         __asm__ volatile("nop");
      39             : }
      40             : 
      41             : #if defined(CONFIG_USERSPACE)
      42             : extern bool z_arm_thread_is_in_user_mode(void);
      43             : #endif
      44             : 
      45             : #if defined(CONFIG_ARM_ON_ENTER_CPU_IDLE_HOOK)
      46             : /* Prototype of a hook that can be enabled to be called every time the CPU is
      47             :  * made idle (the calls will be done from k_cpu_idle() and k_cpu_atomic_idle()).
      48             :  * If this hook returns false, the CPU is prevented from entering the actual
      49             :  * sleep (the WFE/WFI instruction is skipped).
      50             :  */
      51             : bool z_arm_on_enter_cpu_idle(void);
      52             : #endif
      53             : 
      54             : #if defined(CONFIG_ARM_ON_ENTER_CPU_IDLE_PREPARE_HOOK)
      55             : /* Prototype of a hook that can be enabled to be called every time the CPU is
      56             :  * made idle (the calls will be done from k_cpu_idle() and k_cpu_atomic_idle()).
      57             :  * The function is called before interrupts are disabled and can prepare to
      58             :  * upcoming call to z_arm_on_enter_cpu_idle.
      59             :  */
      60             : void z_arm_on_enter_cpu_idle_prepare(void);
      61             : #endif
      62             : 
      63             : #endif
      64             : 
      65             : #ifdef __cplusplus
      66             : }
      67             : #endif
      68             : 
      69             : #endif /* ZEPHYR_INCLUDE_ARCH_ARM_MISC_H_ */

Generated by: LCOV version 1.14