LCOV - code coverage report
Current view: top level - zephyr/sys - errno_private.h Hit Total Coverage
Test: new.info Lines: 0 1 0.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2018 Intel Corporation.
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_INCLUDE_SYS_ERRNO_PRIVATE_H_
       8             : #define ZEPHYR_INCLUDE_SYS_ERRNO_PRIVATE_H_
       9             : 
      10             : #include <zephyr/toolchain.h>
      11             : #include <zephyr/types.h> /* For Z_THREAD_LOCAL */
      12             : 
      13             : #ifdef __cplusplus
      14             : extern "C" {
      15             : #endif
      16             : 
      17             : /* NOTE: located here to avoid include dependency loops between errno.h
      18             :  * and kernel.h
      19             :  */
      20             : 
      21             : #ifdef CONFIG_LIBC_ERRNO
      22             : #include <errno.h>
      23             : 
      24             : static inline int *z_errno(void)
      25             : {
      26             :         return &errno;
      27             : }
      28             : 
      29             : #elif defined(CONFIG_ERRNO_IN_TLS)
      30             : extern Z_THREAD_LOCAL int z_errno_var;
      31             : 
      32             : static inline int *z_errno(void)
      33             : {
      34             :         return &z_errno_var;
      35             : }
      36             : #else
      37             : /**
      38             :  * return a pointer to a memory location containing errno
      39             :  *
      40             :  * errno is thread-specific, and can't just be a global. This pointer
      41             :  * is guaranteed to be read/writable from user mode.
      42             :  *
      43             :  * @return Memory location of errno data for current thread
      44             :  */
      45             : __syscall int *z_errno(void);
      46             : 
      47             : #endif /* CONFIG_ERRNO_IN_TLS */
      48             : 
      49             : #ifdef __cplusplus
      50             : }
      51             : #endif
      52             : 
      53             : #if !defined(CONFIG_ERRNO_IN_TLS) && !defined(CONFIG_LIBC_ERRNO)
      54             : #include <zephyr/syscalls/errno_private.h>
      55             : #endif /* CONFIG_ERRNO_IN_TLS */
      56             : 
      57             : #endif /* ZEPHYR_INCLUDE_SYS_ERRNO_PRIVATE_H_ */

Generated by: LCOV version 1.14