Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
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 <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_ERRNO_IN_TLS
21extern __thread int z_errno_var;
22
23static inline int *z_errno(void)
24{
25 return &z_errno_var;
26}
27#else
36__syscall int *z_errno(void);
37
38#endif /* CONFIG_ERRNO_IN_TLS */
39
40#ifdef __cplusplus
41}
42#endif
43
44#ifndef CONFIG_ERRNO_IN_TLS
45#include <syscalls/errno_private.h>
46#endif /* CONFIG_ERRNO_IN_TLS */
47
48#endif /* ZEPHYR_INCLUDE_SYS_ERRNO_PRIVATE_H_ */
Macros to abstract toolchain specific capabilities.