LCOV - code coverage report
Current view: top level - zephyr/arch/arc/v2/vpx - arc_vpx.h Hit Total Coverage
Test: new.info Lines: 3 4 75.0 %
Date: 2024-12-22 06:13:53

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2024 Synopsys.
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_INCLUDE_ARCH_ARC_V2_VPX_ARC_VPX_H_
       8             : #define ZEPHYR_INCLUDE_ARCH_ARC_V2_VPX_ARC_VPX_H_
       9             : 
      10             : #include <zephyr/sys_clock.h>
      11             : 
      12             : /**
      13             :  * @brief Obtain a cooperative lock on the VPX vector registers
      14             :  *
      15             :  * This function is used to obtain a cooperative lock on the current CPU's
      16             :  * VPX vector registers before the calling thread uses them. Callers
      17             :  * attempting to obtain the cooperative lock must be already restricted to
      18             :  * executing on a single CPU, and continue to execute on that same CPU while
      19             :  * both waiting and holding the lock.
      20             :  *
      21             :  * This routine is not callable from an ISR.
      22             :  *
      23             :  * @param timeout  Waiting period to obtain the lock, or one of the special
      24             :  *                 values K_NO_WAIT and K_FOREVER.
      25             :  *
      26             :  * @return Zero on success, otherwise error code
      27             :  */
      28           1 : int arc_vpx_lock(k_timeout_t timeout);
      29             : 
      30             : /**
      31             :  * @brief Release cooperative lock on the VPX vector registers
      32             :  *
      33             :  * This function is used to release the cooperative lock on the current CPU's
      34             :  * VPX vector registers. It is called after the current thread no longer needs
      35             :  * to use the VPX vector registers, thereby allowing another thread to use them.
      36             :  *
      37             :  * This routine is not callable from an ISR.
      38             :  */
      39           1 : void arc_vpx_unlock(void);
      40             : 
      41             : /**
      42             :  * @brief Release cooperative lock on a CPU's VPX vector registers
      43             :  *
      44             :  * This function is used to release the cooperative lock on the specified CPU's
      45             :  * VPX vector registers. This routine should not be used except by a system
      46             :  * monitor to release the cooperative lock in case the locking thread where it
      47             :  * is known that the locking thread is unable to release it (e.g. it was
      48             :  * aborted while holding the lock).
      49             :  *
      50             :  * @param cpu_id CPU ID of the VPX vector register set to be unlocked
      51             :  */
      52           1 : void arc_vpx_unlock_force(unsigned int cpu_id);
      53             : 
      54             : #endif /* ZEPHYR_INCLUDE_ARCH_ARC_V2_VPX_ARC_VPX_H_ */

Generated by: LCOV version 1.14