ソースを参照

[Kernel] Fix the errno definitions in armcc/iar.

Bernard Xiong 6 年 前
コミット
96e6deac29
2 ファイル変更184 行追加154 行削除
  1. 0 15
      components/libc/compilers/dlib/sys/errno.h
  2. 184 139
      include/libc/libc_errno.h

+ 0 - 15
components/libc/compilers/dlib/sys/errno.h

@@ -1,15 +0,0 @@
-/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */
-#ifndef SYS_ERRNO_H__
-#define SYS_ERRNO_H__
-
-#include <rtthread.h>
-
-
-#endif

+ 184 - 139
include/libc/libc_errno.h

@@ -2,10 +2,6 @@
  * Copyright (c) 2006-2018, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
- */
-
-/*
- * File      : libc_errno.h
  *
  * Change Logs:
  * Date           Author       Notes
@@ -17,145 +13,194 @@
 
 #include <rtconfig.h>
 
-#if defined(RT_USING_NEWLIB) || defined(_WIN32)
-/* use errno.h file in newlib */
+#if defined(RT_USING_NEWLIB) || defined(_WIN32) || defined(__CC_ARM) || defined(__IAR_SYSTEMS_ICC__)
+/* use errno.h file in toolchains */
 #include <errno.h>
+#endif
+
+#if defined(__CC_ARM)
+/*
+defined in armcc/errno.h
+
+#define EDOM    1
+#define ERANGE  2
+#define EILSEQ  4
+#define ESIGNUM 3
+#define EINVAL  5
+#define ENOMEM  6
+*/
+#define ERROR_BASE_NO    7
+
+#elif defined(__IAR_SYSTEMS_ICC__)
+/* defined in iar/errno.h
+#define EDOM    33
+#define ERANGE  34
+#define EFPOS   35
+#define EILSEQ  36
+*/
+#define ERROR_BASE_NO    36
+
 #else
-/* define errno self. */
-#define EPERM            1
-#define ENOENT           2
-#define ESRCH            3
-#define EINTR            4
-#define EIO              5
-#define ENXIO            6
-#define E2BIG            7
-#define ENOEXEC          8
-#define EBADF            9
-#define ECHILD          10
-#define EAGAIN          11
-#define ENOMEM          12
-#define EACCES          13
-#define EFAULT          14
-#define ENOTBLK         15
-#define EBUSY           16
-#define EEXIST          17
-#define EXDEV           18
-#define ENODEV          19
-#define ENOTDIR         20
-#define EISDIR          21
-#define EINVAL          22
-#define ENFILE          23
-#define EMFILE          24
-#define ENOTTY          25
-#define ETXTBSY         26
-#define EFBIG           27
-#define ENOSPC          28
-#define ESPIPE          29
-#define EROFS           30
-#define EMLINK          31
-#define EPIPE           32
-#define EDOM            33
-#define ERANGE          34
-#define EDEADLK         35
-#define ENAMETOOLONG    36
-#define ENOLCK          37
-#define ENOSYS          38
-#define ENOTEMPTY       39
-#define ELOOP           40
+
+#define ERROR_BASE_NO    0
+#endif
+
+#if !defined(RT_USING_NEWLIB) && !defined(_WIN32)
+
+#define EPERM            (ERROR_BASE_NO + 1)
+#define ENOENT           (ERROR_BASE_NO + 2)
+#define ESRCH            (ERROR_BASE_NO + 3)
+#define EINTR            (ERROR_BASE_NO + 4)
+#define EIO              (ERROR_BASE_NO + 5)
+#define ENXIO            (ERROR_BASE_NO + 6)
+#define E2BIG            (ERROR_BASE_NO + 7)
+#define ENOEXEC          (ERROR_BASE_NO + 8)
+#define EBADF            (ERROR_BASE_NO + 9)
+#define ECHILD          (ERROR_BASE_NO + 10)
+#define EAGAIN          (ERROR_BASE_NO + 11)
+
+#ifndef ENOMEM
+#define ENOMEM          (ERROR_BASE_NO + 12)
+#endif
+
+#define EACCES          (ERROR_BASE_NO + 13)
+#define EFAULT          (ERROR_BASE_NO + 14)
+#define ENOTBLK         (ERROR_BASE_NO + 15)
+#define EBUSY           (ERROR_BASE_NO + 16)
+#define EEXIST          (ERROR_BASE_NO + 17)
+#define EXDEV           (ERROR_BASE_NO + 18)
+#define ENODEV          (ERROR_BASE_NO + 19)
+#define ENOTDIR         (ERROR_BASE_NO + 20)
+#define EISDIR          (ERROR_BASE_NO + 21)
+
+#ifndef EINVAL
+#define EINVAL          (ERROR_BASE_NO + 22)
+#endif
+
+#define ENFILE          (ERROR_BASE_NO + 23)
+#define EMFILE          (ERROR_BASE_NO + 24)
+#define ENOTTY          (ERROR_BASE_NO + 25)
+#define ETXTBSY         (ERROR_BASE_NO + 26)
+#define EFBIG           (ERROR_BASE_NO + 27)
+#define ENOSPC          (ERROR_BASE_NO + 28)
+#define ESPIPE          (ERROR_BASE_NO + 29)
+#define EROFS           (ERROR_BASE_NO + 30)
+#define EMLINK          (ERROR_BASE_NO + 31)
+#define EPIPE           (ERROR_BASE_NO + 32)
+
+#ifndef EDOM
+#define EDOM            (ERROR_BASE_NO + 33)
+#endif
+
+#ifndef ERANGE
+#define ERANGE          (ERROR_BASE_NO + 34)
+#endif
+
+#define EDEADLK         (ERROR_BASE_NO + 35)
+#define ENAMETOOLONG    (ERROR_BASE_NO + 36)
+#define ENOLCK          (ERROR_BASE_NO + 37)
+#define ENOSYS          (ERROR_BASE_NO + 38)
+#define ENOTEMPTY       (ERROR_BASE_NO + 39)
+#define ELOOP           (ERROR_BASE_NO + 40)
 #define EWOULDBLOCK     EAGAIN
-#define ENOMSG          42
-#define EIDRM           43
-#define ECHRNG          44
-#define EL2NSYNC        45
-#define EL3HLT          46
-#define EL3RST          47
-#define ELNRNG          48
-#define EUNATCH         49
-#define ENOCSI          50
-#define EL2HLT          51
-#define EBADE           52
-#define EBADR           53
-#define EXFULL          54
-#define ENOANO          55
-#define EBADRQC         56
-#define EBADSLT         57
+#define ENOMSG          (ERROR_BASE_NO + 42)
+#define EIDRM           (ERROR_BASE_NO + 43)
+#define ECHRNG          (ERROR_BASE_NO + 44)
+#define EL2NSYNC        (ERROR_BASE_NO + 45)
+#define EL3HLT          (ERROR_BASE_NO + 46)
+#define EL3RST          (ERROR_BASE_NO + 47)
+#define ELNRNG          (ERROR_BASE_NO + 48)
+#define EUNATCH         (ERROR_BASE_NO + 49)
+#define ENOCSI          (ERROR_BASE_NO + 50)
+#define EL2HLT          (ERROR_BASE_NO + 51)
+#define EBADE           (ERROR_BASE_NO + 52)
+#define EBADR           (ERROR_BASE_NO + 53)
+#define EXFULL          (ERROR_BASE_NO + 54)
+#define ENOANO          (ERROR_BASE_NO + 55)
+#define EBADRQC         (ERROR_BASE_NO + 56)
+#define EBADSLT         (ERROR_BASE_NO + 57)
 #define EDEADLOCK       EDEADLK
-#define EBFONT          59
-#define ENOSTR          60
-#define ENODATA         61
-#define ETIME           62
-#define ENOSR           63
-#define ENONET          64
-#define ENOPKG          65
-#define EREMOTE         66
-#define ENOLINK         67
-#define EADV            68
-#define ESRMNT          69
-#define ECOMM           70
-#define EPROTO          71
-#define EMULTIHOP       72
-#define EDOTDOT         73
-#define EBADMSG         74
-#define EOVERFLOW       75
-#define ENOTUNIQ        76
-#define EBADFD          77
-#define EREMCHG         78
-#define ELIBACC         79
-#define ELIBBAD         80
-#define ELIBSCN         81
-#define ELIBMAX         82
-#define ELIBEXEC        83
-#define EILSEQ          84
-#define ERESTART        85
-#define ESTRPIPE        86
-#define EUSERS          87
-#define ENOTSOCK        88
-#define EDESTADDRREQ    89
-#define EMSGSIZE        90
-#define EPROTOTYPE      91
-#define ENOPROTOOPT     92
-#define EPROTONOSUPPORT 93
-#define ESOCKTNOSUPPORT 94
-#define EOPNOTSUPP      95
-#define ENOTSUP         EOPNOTSUPP
-#define EPFNOSUPPORT    96
-#define EAFNOSUPPORT    97
-#define EADDRINUSE      98
-#define EADDRNOTAVAIL   99
-#define ENETDOWN        100
-#define ENETUNREACH     101
-#define ENETRESET       102
-#define ECONNABORTED    103
-#define ECONNRESET      104
-#define ENOBUFS         105
-#define EISCONN         106
-#define ENOTCONN        107
-#define ESHUTDOWN       108
-#define ETOOMANYREFS    109
-#define ETIMEDOUT       110
-#define ECONNREFUSED    111
-#define EHOSTDOWN       112
-#define EHOSTUNREACH    113
-#define EALREADY        114
-#define EINPROGRESS     115
-#define ESTALE          116
-#define EUCLEAN         117
-#define ENOTNAM         118
-#define ENAVAIL         119
-#define EISNAM          120
-#define EREMOTEIO       121
-#define EDQUOT          122
-#define ENOMEDIUM       123
-#define EMEDIUMTYPE     124
-#define ECANCELED       125
-#define ENOKEY          126
-#define EKEYEXPIRED     127
-#define EKEYREVOKED     128
-#define EKEYREJECTED    129
-#define EOWNERDEAD      130
-#define ENOTRECOVERABLE 131
-#define ERFKILL         132
-#define EHWPOISON       133
+#define EBFONT          (ERROR_BASE_NO + 59)
+#define ENOSTR          (ERROR_BASE_NO + 60)
+#define ENODATA         (ERROR_BASE_NO + 61)
+#define ETIME           (ERROR_BASE_NO + 62)
+#define ENOSR           (ERROR_BASE_NO + 63)
+#define ENONET          (ERROR_BASE_NO + 64)
+#define ENOPKG          (ERROR_BASE_NO + 65)
+#define EREMOTE         (ERROR_BASE_NO + 66)
+#define ENOLINK         (ERROR_BASE_NO + 67)
+#define EADV            (ERROR_BASE_NO + 68)
+#define ESRMNT          (ERROR_BASE_NO + 69)
+#define ECOMM           (ERROR_BASE_NO + 70)
+#define EPROTO          (ERROR_BASE_NO + 71)
+#define EMULTIHOP       (ERROR_BASE_NO + 72)
+#define EDOTDOT         (ERROR_BASE_NO + 73)
+#define EBADMSG         (ERROR_BASE_NO + 74)
+#define EOVERFLOW       (ERROR_BASE_NO + 75)
+#define ENOTUNIQ        (ERROR_BASE_NO + 76)
+#define EBADFD          (ERROR_BASE_NO + 77)
+#define EREMCHG         (ERROR_BASE_NO + 78)
+#define ELIBACC         (ERROR_BASE_NO + 79)
+#define ELIBBAD         (ERROR_BASE_NO + 80)
+#define ELIBSCN         (ERROR_BASE_NO + 81)
+#define ELIBMAX         (ERROR_BASE_NO + 82)
+#define ELIBEXEC        (ERROR_BASE_NO + 83)
+
+#ifndef EILSEQ
+#define EILSEQ          (ERROR_BASE_NO + 84)
+#endif
+
+#define ERESTART        (ERROR_BASE_NO + 85)
+#define ESTRPIPE        (ERROR_BASE_NO + 86)
+#define EUSERS          (ERROR_BASE_NO + 87)
+#define ENOTSOCK        (ERROR_BASE_NO + 88)
+#define EDESTADDRREQ    (ERROR_BASE_NO + 89)
+#define EMSGSIZE        (ERROR_BASE_NO + 90)
+#define EPROTOTYPE      (ERROR_BASE_NO + 91)
+#define ENOPROTOOPT     (ERROR_BASE_NO + 92)
+#define EPROTONOSUPPORT (ERROR_BASE_NO + 93)
+#define ESOCKTNOSUPPORT (ERROR_BASE_NO + 94)
+#define EOPNOTSUPP      (ERROR_BASE_NO + 95)
+#define ENOTSUP         EOPNOTSUPP         )
+#define EPFNOSUPPORT    (ERROR_BASE_NO + 96)
+#define EAFNOSUPPORT    (ERROR_BASE_NO + 97)
+#define EADDRINUSE      (ERROR_BASE_NO + 98)
+#define EADDRNOTAVAIL   (ERROR_BASE_NO + 99)
+#define ENETDOWN        (ERROR_BASE_NO + 100)
+#define ENETUNREACH     (ERROR_BASE_NO + 101)
+#define ENETRESET       (ERROR_BASE_NO + 102)
+#define ECONNABORTED    (ERROR_BASE_NO + 103)
+#define ECONNRESET      (ERROR_BASE_NO + 104)
+#define ENOBUFS         (ERROR_BASE_NO + 105)
+#define EISCONN         (ERROR_BASE_NO + 106)
+#define ENOTCONN        (ERROR_BASE_NO + 107)
+#define ESHUTDOWN       (ERROR_BASE_NO + 108)
+#define ETOOMANYREFS    (ERROR_BASE_NO + 109)
+#define ETIMEDOUT       (ERROR_BASE_NO + 110)
+#define ECONNREFUSED    (ERROR_BASE_NO + 111)
+#define EHOSTDOWN       (ERROR_BASE_NO + 112)
+#define EHOSTUNREACH    (ERROR_BASE_NO + 113)
+#define EALREADY        (ERROR_BASE_NO + 114)
+#define EINPROGRESS     (ERROR_BASE_NO + 115)
+#define ESTALE          (ERROR_BASE_NO + 116)
+#define EUCLEAN         (ERROR_BASE_NO + 117)
+#define ENOTNAM         (ERROR_BASE_NO + 118)
+#define ENAVAIL         (ERROR_BASE_NO + 119)
+#define EISNAM          (ERROR_BASE_NO + 120)
+#define EREMOTEIO       (ERROR_BASE_NO + 121)
+#define EDQUOT          (ERROR_BASE_NO + 122)
+#define ENOMEDIUM       (ERROR_BASE_NO + 123)
+#define EMEDIUMTYPE     (ERROR_BASE_NO + 124)
+#define ECANCELED       (ERROR_BASE_NO + 125)
+#define ENOKEY          (ERROR_BASE_NO + 126)
+#define EKEYEXPIRED     (ERROR_BASE_NO + 127)
+#define EKEYREVOKED     (ERROR_BASE_NO + 128)
+#define EKEYREJECTED    (ERROR_BASE_NO + 129)
+#define EOWNERDEAD      (ERROR_BASE_NO + 130)
+#define ENOTRECOVERABLE (ERROR_BASE_NO + 131)
+#define ERFKILL         (ERROR_BASE_NO + 132)
+#define EHWPOISON       (ERROR_BASE_NO + 133)
+
 #endif
 
 #endif