factor/basis/libc/windows/windows.factor

117 lines
3.1 KiB
Factor

USING: alien.c-types alien.strings alien.syntax destructors
io.encodings.utf8 kernel libc system ;
IN: libc
LIBRARY: libc
! From errno.h in msvc 10:
CONSTANT: EPERM 1
CONSTANT: ENOENT 2
CONSTANT: ESRCH 3
CONSTANT: EINTR 4
CONSTANT: EIO 5
CONSTANT: ENXIO 6
CONSTANT: E2BIG 7
CONSTANT: ENOEXEC 8
CONSTANT: EBADF 9
CONSTANT: ECHILD 10
CONSTANT: EAGAIN 11
CONSTANT: ENOMEM 12
CONSTANT: EACCES 13
CONSTANT: EFAULT 14
CONSTANT: EBUSY 16
CONSTANT: EEXIST 17
CONSTANT: EXDEV 18
CONSTANT: ENODEV 19
CONSTANT: ENOTDIR 20
CONSTANT: EISDIR 21
CONSTANT: ENFILE 23
CONSTANT: EMFILE 24
CONSTANT: ENOTTY 25
CONSTANT: EFBIG 27
CONSTANT: ENOSPC 28
CONSTANT: ESPIPE 29
CONSTANT: EROFS 30
CONSTANT: EMLINK 31
CONSTANT: EPIPE 32
CONSTANT: EDOM 33
CONSTANT: EDEADLK 36
CONSTANT: ENAMETOOLONG 38
CONSTANT: ENOLCK 39
CONSTANT: ENOSYS 40
CONSTANT: ENOTEMPTY 41
! Error codes used in the Secure CRT functions
CONSTANT: EINVAL 22
CONSTANT: ERANGE 34
CONSTANT: EILSEQ 42
CONSTANT: STRUNCATE 80
! Support EDEADLOCK for compatibility with older MS-C versions
ALIAS: EDEADLOCK EDEADLK
! POSIX SUPPLEMENT
CONSTANT: EADDRINUSE 100
CONSTANT: EADDRNOTAVAIL 101
CONSTANT: EAFNOSUPPORT 102
CONSTANT: EALREADY 103
CONSTANT: EBADMSG 104
CONSTANT: ECANCELED 105
CONSTANT: ECONNABORTED 106
CONSTANT: ECONNREFUSED 107
CONSTANT: ECONNRESET 108
CONSTANT: EDESTADDRREQ 109
CONSTANT: EHOSTUNREACH 110
CONSTANT: EIDRM 111
CONSTANT: EINPROGRESS 112
CONSTANT: EISCONN 113
CONSTANT: ELOOP 114
CONSTANT: EMSGSIZE 115
CONSTANT: ENETDOWN 116
CONSTANT: ENETRESET 117
CONSTANT: ENETUNREACH 118
CONSTANT: ENOBUFS 119
CONSTANT: ENODATA 120
CONSTANT: ENOLINK 121
CONSTANT: ENOMSG 122
CONSTANT: ENOPROTOOPT 123
CONSTANT: ENOSR 124
CONSTANT: ENOSTR 125
CONSTANT: ENOTCONN 126
CONSTANT: ENOTRECOVERABLE 127
CONSTANT: ENOTSOCK 128
CONSTANT: ENOTSUP 129
CONSTANT: EOPNOTSUPP 130
CONSTANT: EOTHER 131
CONSTANT: EOVERFLOW 132
CONSTANT: EOWNERDEAD 133
CONSTANT: EPROTO 134
CONSTANT: EPROTONOSUPPORT 135
CONSTANT: EPROTOTYPE 136
CONSTANT: ETIME 137
CONSTANT: ETIMEDOUT 138
CONSTANT: ETXTBSY 139
CONSTANT: EWOULDBLOCK 140
! From signal.h in msvc 10:
CONSTANT: SIGINT 2
CONSTANT: SIGILL 4
CONSTANT: SIGFPE 8
CONSTANT: SIGSEGV 11
CONSTANT: SIGTERM 15
CONSTANT: SIGBREAK 21
CONSTANT: SIGABRT 22
CONSTANT: SIGABRT_COMPAT 6
LIBRARY: libc
FUNCTION: int strerror_s ( char *buffer, size_t numberOfElements, int errnum )
M: windows strerror ( errno -- str )
[
[ 1024 [ malloc &free ] keep ] dip
[ strerror_s drop ] 3keep 2drop
utf8 alien>string
] with-destructors ;