78 lines
3.9 KiB
C
78 lines
3.9 KiB
C
|
/*
|
||
|
* Copyright (c) 2006-2024, RT-Thread Development Team
|
||
|
*
|
||
|
* SPDX-License-Identifier: Apache-2.0
|
||
|
*
|
||
|
* Change Logs:
|
||
|
* Date Author Notes
|
||
|
* 2024-09-22 Meco Man the first version
|
||
|
*/
|
||
|
|
||
|
#ifndef __RT_KERRNO_H__
|
||
|
#define __RT_KERRNO_H__
|
||
|
|
||
|
#include <rtconfig.h>
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#if defined(RT_USING_LIBC) && !defined(RT_USING_NANO)
|
||
|
/* POSIX error code compatible */
|
||
|
#define RT_EOK 0 /**< There is no error */
|
||
|
#define RT_ERROR 255 /**< A generic/unknown error happens */
|
||
|
#define RT_ETIMEOUT ETIMEDOUT /**< Timed out */
|
||
|
#define RT_EFULL ENOSPC /**< The resource is full */
|
||
|
#define RT_EEMPTY ENODATA /**< The resource is empty */
|
||
|
#define RT_ENOMEM ENOMEM /**< No memory */
|
||
|
#define RT_ENOSYS ENOSYS /**< Function not implemented */
|
||
|
#define RT_EBUSY EBUSY /**< Busy */
|
||
|
#define RT_EIO EIO /**< IO error */
|
||
|
#define RT_EINTR EINTR /**< Interrupted system call */
|
||
|
#define RT_EINVAL EINVAL /**< Invalid argument */
|
||
|
#define RT_ENOENT ENOENT /**< No entry */
|
||
|
#define RT_ENOSPC ENOSPC /**< No space left */
|
||
|
#define RT_EPERM EPERM /**< Operation not permitted */
|
||
|
#define RT_EFAULT EFAULT /**< Bad address */
|
||
|
#define RT_ENOBUFS ENOBUFS /**< No buffer space is available */
|
||
|
#define RT_ESCHEDISR 253 /**< scheduler failure in isr context */
|
||
|
#define RT_ESCHEDLOCKED 252 /**< scheduler failure in critical region */
|
||
|
#define RT_ETRAP 254 /**< Trap event */
|
||
|
#else
|
||
|
#define RT_EOK 0 /**< There is no error */
|
||
|
#define RT_ERROR 1 /**< A generic/unknown error happens */
|
||
|
#define RT_ETIMEOUT 2 /**< Timed out */
|
||
|
#define RT_EFULL 3 /**< The resource is full */
|
||
|
#define RT_EEMPTY 4 /**< The resource is empty */
|
||
|
#define RT_ENOMEM 5 /**< No memory */
|
||
|
#define RT_ENOSYS 6 /**< Function not implemented */
|
||
|
#define RT_EBUSY 7 /**< Busy */
|
||
|
#define RT_EIO 8 /**< IO error */
|
||
|
#define RT_EINTR 9 /**< Interrupted system call */
|
||
|
#define RT_EINVAL 10 /**< Invalid argument */
|
||
|
#define RT_ENOENT 11 /**< No entry */
|
||
|
#define RT_ENOSPC 12 /**< No space left */
|
||
|
#define RT_EPERM 13 /**< Operation not permitted */
|
||
|
#define RT_ETRAP 14 /**< Trap event */
|
||
|
#define RT_EFAULT 15 /**< Bad address */
|
||
|
#define RT_ENOBUFS 16 /**< No buffer space is available */
|
||
|
#define RT_ESCHEDISR 17 /**< scheduler failure in isr context */
|
||
|
#define RT_ESCHEDLOCKED 18 /**< scheduler failure in critical region */
|
||
|
#endif /* defined(RT_USING_LIBC) && !defined(RT_USING_NANO) */
|
||
|
|
||
|
rt_err_t rt_get_errno(void);
|
||
|
void rt_set_errno(rt_err_t no);
|
||
|
int *_rt_errno(void);
|
||
|
const char *rt_strerror(rt_err_t error);
|
||
|
#if !defined(RT_USING_NEWLIBC) && !defined(_WIN32)
|
||
|
#ifndef errno
|
||
|
#define errno *_rt_errno()
|
||
|
#endif
|
||
|
#endif /* !defined(RT_USING_NEWLIBC) && !defined(_WIN32) */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|