Zephyr API Documentation  3.7.0-rc1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
errno_private.h
Go to the documentation of this file.
1/*
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
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16/* NOTE: located here to avoid include dependency loops between errno.h
17 * and kernel.h
18 */
19
20#ifdef CONFIG_LIBC_ERRNO
21#include <errno.h>
22
23static inline int *z_errno(void)
24{
25 return &errno;
26}
27
28#elif defined(CONFIG_ERRNO_IN_TLS)
29extern __thread int z_errno_var;
30
31static inline int *z_errno(void)
32{
33 return &z_errno_var;
34}
35#else
44__syscall int *z_errno(void);
45
46#endif /* CONFIG_ERRNO_IN_TLS */
47
48#ifdef __cplusplus
49}
50#endif
51
52#if !defined(CONFIG_ERRNO_IN_TLS) && !defined(CONFIG_LIBC_ERRNO)
53#include <zephyr/syscalls/errno_private.h>
54#endif /* CONFIG_ERRNO_IN_TLS */
55
56#endif /* ZEPHYR_INCLUDE_SYS_ERRNO_PRIVATE_H_ */
System error numbers.
#define errno
Definition: errno.h:38
Macros to abstract toolchain specific capabilities.