this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Errno related functionality

+233
+115
libmac/libc/darwin_errno_codes.h
··· 1 + #ifndef DARWIN_ERRNO_CODES_H 2 + #define DARWIN_ERRNO_CODES_H 3 + 4 + /* $ awk '/#define[ \t]([A-Z]+)[\t ]+([0-9]+)/ { print "#define DARWIN_" $2 " " $3; }' < errno.h */ 5 + 6 + #define DARWIN_EPERM 1 7 + #define DARWIN_ENOENT 2 8 + #define DARWIN_ESRCH 3 9 + #define DARWIN_EINTR 4 10 + #define DARWIN_EIO 5 11 + #define DARWIN_ENXIO 6 12 + #define DARWIN_ENOEXEC 8 13 + #define DARWIN_EBADF 9 14 + #define DARWIN_ECHILD 10 15 + #define DARWIN_EDEADLK 11 16 + #define DARWIN_ENOMEM 12 17 + #define DARWIN_EACCES 13 18 + #define DARWIN_EFAULT 14 19 + #define DARWIN_ENOTBLK 15 20 + #define DARWIN_EBUSY 16 21 + #define DARWIN_EEXIST 17 22 + #define DARWIN_EXDEV 18 23 + #define DARWIN_ENODEV 19 24 + #define DARWIN_ENOTDIR 20 25 + #define DARWIN_EISDIR 21 26 + #define DARWIN_EINVAL 22 27 + #define DARWIN_ENFILE 23 28 + #define DARWIN_EMFILE 24 29 + #define DARWIN_ENOTTY 25 30 + #define DARWIN_ETXTBSY 26 31 + #define DARWIN_EFBIG 27 32 + #define DARWIN_ENOSPC 28 33 + #define DARWIN_ESPIPE 29 34 + #define DARWIN_EROFS 30 35 + #define DARWIN_EMLINK 31 36 + #define DARWIN_EPIPE 32 37 + #define DARWIN_EDOM 33 38 + #define DARWIN_ERANGE 34 39 + #define DARWIN_EAGAIN 35 40 + #define DARWIN_EINPROGRESS 36 41 + #define DARWIN_EALREADY 37 42 + #define DARWIN_ENOTSOCK 38 43 + #define DARWIN_EDESTADDRREQ 39 44 + #define DARWIN_EMSGSIZE 40 45 + #define DARWIN_EPROTOTYPE 41 46 + #define DARWIN_ENOPROTOOPT 42 47 + #define DARWIN_EPROTONOSUPPORT 43 48 + #define DARWIN_ESOCKTNOSUPPORT 44 49 + #define DARWIN_ENOTSUP 45 50 + #define DARWIN_EPFNOSUPPORT 46 51 + #define DARWIN_EAFNOSUPPORT 47 52 + #define DARWIN_EADDRINUSE 48 53 + #define DARWIN_EADDRNOTAVAIL 49 54 + #define DARWIN_ENETDOWN 50 55 + #define DARWIN_ENETUNREACH 51 56 + #define DARWIN_ENETRESET 52 57 + #define DARWIN_ECONNABORTED 53 58 + #define DARWIN_ECONNRESET 54 59 + #define DARWIN_ENOBUFS 55 60 + #define DARWIN_EISCONN 56 61 + #define DARWIN_ENOTCONN 57 62 + #define DARWIN_ESHUTDOWN 58 63 + #define DARWIN_ETOOMANYREFS 59 64 + #define DARWIN_ETIMEDOUT 60 65 + #define DARWIN_ECONNREFUSED 61 66 + #define DARWIN_ELOOP 62 67 + #define DARWIN_ENAMETOOLONG 63 68 + #define DARWIN_EHOSTDOWN 64 69 + #define DARWIN_EHOSTUNREACH 65 70 + #define DARWIN_ENOTEMPTY 66 71 + #define DARWIN_EPROCLIM 67 72 + #define DARWIN_EUSERS 68 73 + #define DARWIN_EDQUOT 69 74 + #define DARWIN_ESTALE 70 75 + #define DARWIN_EREMOTE 71 76 + #define DARWIN_EBADRPC 72 77 + #define DARWIN_ERPCMISMATCH 73 78 + #define _DARWIN_EPROGUNAVAIL 74 79 + #define _DARWIN_EPROGMISMATCH 75 80 + #define _DARWIN_EPROCUNAVAIL 76 81 + #define DARWIN_ENOLCK 77 82 + #define DARWIN_ENOSYS 78 83 + #define _DARWIN_EFTYPE 79 84 + #define _DARWIN_EAUTH 80 85 + #define _DARWIN_ENEEDAUTH 81 86 + #define _DARWIN_EPWROFF 82 87 + #define _DARWIN_EDEVERR 83 88 + #define DARWIN_EOVERFLOW 84 89 + #define _DARWIN_EBADEXEC 85 90 + #define _DARWIN_EBADARCH 86 91 + #define _DARWIN_ESHLIBVERS 87 92 + #define _DARWIN_EBADMACHO 88 93 + #define DARWIN_ECANCELED 89 94 + #define DARWIN_EIDRM 90 95 + #define DARWIN_ENOMSG 91 96 + #define DARWIN_EILSEQ 92 97 + #define _DARWIN_ENOATTR 93 98 + #define DARWIN_EBADMSG 94 99 + #define DARWIN_EMULTIHOP 95 100 + #define DARWIN_ENODATA 96 101 + #define DARWIN_ENOLINK 97 102 + #define DARWIN_ENOSR 98 103 + #define DARWIN_ENOSTR 99 104 + #define DARWIN_EPROTO 100 105 + #define DARWIN_ETIME 101 106 + #define DARWIN_EOPNOTSUPP 102 107 + #define _DARWIN_ENOPOLICY 103 108 + #define DARWIN_ENOTRECOVERABLE 104 109 + #define DARWIN_EOWNERDEAD 105 110 + #define _DARWIN_EQFULL 106 111 + #define _DARWIN_ELAST 106 112 + #define _DARWIN_ECVCERORR 256 113 + #define _DARWIN_ECVPERORR 512 114 + 115 + #endif
+2
libmac/libc/directmap.lst
··· 1 + __error;__errno_location 2 +
+71
libmac/libc/errno.cpp
··· 1 + #define _POSIX_C_SOURCE 200112L 2 + #undef _GNU_SOURCE // for proper strerror_r 3 + #include <errno.h> 4 + #include <cstring> 5 + #include <cstdio> 6 + #include "errno.h" 7 + #include "darwin_errno_codes.h" 8 + 9 + static void initErrnoMappingTable() __attribute__ ((constructor)); 10 + static int darwin_to_linux[130]; 11 + static int linux_to_darwin[130]; 12 + 13 + // This is deprecated, we don't bother to support that 14 + extern "C" const char * const __darwin_sys_errlist[0]; 15 + extern "C" const int __darwin_sys_nerr = 0; 16 + 17 + int cthread_errno() 18 + { 19 + return errno; 20 + } 21 + 22 + void initErrnoMappingTable() 23 + { 24 + ::memset(darwin_to_linux, 0, sizeof(darwin_to_linux)); 25 + ::memset(linux_to_darwin, 0, sizeof(linux_to_darwin)); 26 + 27 + # include "darwin_to_linux.map" 28 + # include "linux_to_darwin.map" 29 + 30 + darwin_to_linux[_DARWIN_EBADEXEC] = ENOEXEC; 31 + darwin_to_linux[_DARWIN_EBADARCH] = ENOEXEC; 32 + darwin_to_linux[_DARWIN_EBADMACHO] = ENOEXEC; 33 + } 34 + 35 + int errnoDarwinToLinux(int err) 36 + { 37 + if (err < sizeof(darwin_to_linux)/sizeof(darwin_to_linux[0])-1) 38 + return darwin_to_linux[err]; 39 + else 40 + return 0; 41 + } 42 + 43 + int errnoLinuxToDarwin(int err) 44 + { 45 + if (err < sizeof(linux_to_darwin)/sizeof(linux_to_darwin[0])-1) 46 + return linux_to_darwin[err]; 47 + else 48 + return 0; 49 + } 50 + 51 + char* __darwin_strerror(int errnum) 52 + { 53 + errnum = errnoDarwinToLinux(errnum); 54 + return ::strerror(errnum); 55 + } 56 + 57 + int __darwin_strerror_r(int errnum, char *strerrbuf, size_t buflen) 58 + { 59 + errnum = errnoDarwinToLinux(errnum); 60 + return ::strerror_r(errnum, strerrbuf, buflen); 61 + } 62 + 63 + void __darwin_perror(const char *s) 64 + { 65 + // First map the error back 66 + errno = errnoDarwinToLinux(errno); 67 + ::perror(s); 68 + // Now map it back again 69 + errno = errnoLinuxToDarwin(errno); 70 + } 71 +
+16
libmac/libc/errno.h
··· 1 + #ifndef DARWIN_ERRNO_H 2 + #define DARWIN_ERRNO_H 3 + 4 + extern "C" 5 + { 6 + // int *__error(); /* generated code */ 7 + int cthread_errno(); 8 + 9 + char* __darwin_strerror(int errnum); 10 + int __darwin_strerror_r(int errnum, char *strerrbuf, size_t buflen); 11 + } 12 + 13 + int errnoDarwinToLinux(int err); 14 + int errnoLinuxToDarwin(int err); 15 + 16 + #endif
+23
tools/gendirectmapassembly
··· 1 + #!/bin/bash 2 + 3 + # Generates a direct mapping between two functions in assembly code 4 + 5 + ( 6 + echo "section .text" 7 + echo 8 + 9 + while read line; do 10 + arrIN=(${line//;/ }) 11 + 12 + if [ ${#arrIN[@]} -ne 2 ]; then 13 + continue 14 + fi 15 + 16 + echo "global ${arrIN[0]}" 17 + echo "extern ${arrIN[1]}" 18 + echo "${arrIN[0]}:" 19 + echo " jmp ${arrIN[1]}" 20 + echo 21 + done < "$1" 22 + ) > "${1%.lst}.asm" 23 +
+6
tools/generrnomap
··· 1 + #!/bin/sh 2 + 3 + awk '/#define DARWIN_([A-Z]+) ([0-9]+)/ { printf("darwin_to_linux[%s] = %s;\n", $2, substr($2, 8)); }' < "$1" > "darwin_to_linux.map" 4 + 5 + awk '/#define DARWIN_([A-Z]+) ([0-9]+)/ { printf("linux_to_darwin[%s] = %s;\n", substr($2, 8), $2); }' < "$1" > "linux_to_darwin.map" 6 +