all: merge NaCl branch (part 1)
See golang.org/s/go13nacl for design overview.
This CL is the mostly mechanical changes from rsc's Go 1.2 based NaCl branch, specifically 39cb35750369 to 500771b477cf from https://code.google.com/r/rsc-go13nacl. This CL does not include working NaCl support, there are probably two or three more large merges to come.
CL 15750044 is not included as it involves more invasive changes to the linker which will need to be merged separately.
The exact change lists included are
15050047: syscall: support for Native Client
15360044: syscall: unzip implementation for Native Client
15370044: syscall: Native Client SRPC implementation
15400047: cmd/dist, cmd/go, go/build, test: support for Native Client
15410048: runtime: support for Native Client
15410049: syscall: file descriptor table for Native Client
15410050: syscall: in-memory file system for Native Client
15440048: all: update +build lines for Native Client port
15540045: cmd/6g, cmd/8g, cmd/gc: support for Native Client
15570045: os: support for Native Client
15680044: crypto/..., hash/crc32, reflect, sync/atomic: support for amd64p32
15690044: net: support for Native Client
15690048: runtime: support for fake time like on Go Playground
15690051: build: disable various tests on Native Client
LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/68150047
2014-02-25 07:47:42 -07:00
|
|
|
// Copyright 2013 The Go Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package syscall
|
|
|
|
|
|
|
|
// TODO: generate with runtime/mknacl.sh, allow override with IRT.
|
|
|
|
const (
|
|
|
|
sys_null = 1
|
|
|
|
sys_nameservice = 2
|
|
|
|
sys_dup = 8
|
|
|
|
sys_dup2 = 9
|
|
|
|
sys_open = 10
|
|
|
|
sys_close = 11
|
|
|
|
sys_read = 12
|
|
|
|
sys_write = 13
|
|
|
|
sys_lseek = 14
|
|
|
|
sys_stat = 16
|
|
|
|
sys_fstat = 17
|
|
|
|
sys_chmod = 18
|
2014-12-18 01:26:08 -07:00
|
|
|
sys_isatty = 19
|
all: merge NaCl branch (part 1)
See golang.org/s/go13nacl for design overview.
This CL is the mostly mechanical changes from rsc's Go 1.2 based NaCl branch, specifically 39cb35750369 to 500771b477cf from https://code.google.com/r/rsc-go13nacl. This CL does not include working NaCl support, there are probably two or three more large merges to come.
CL 15750044 is not included as it involves more invasive changes to the linker which will need to be merged separately.
The exact change lists included are
15050047: syscall: support for Native Client
15360044: syscall: unzip implementation for Native Client
15370044: syscall: Native Client SRPC implementation
15400047: cmd/dist, cmd/go, go/build, test: support for Native Client
15410048: runtime: support for Native Client
15410049: syscall: file descriptor table for Native Client
15410050: syscall: in-memory file system for Native Client
15440048: all: update +build lines for Native Client port
15540045: cmd/6g, cmd/8g, cmd/gc: support for Native Client
15570045: os: support for Native Client
15680044: crypto/..., hash/crc32, reflect, sync/atomic: support for amd64p32
15690044: net: support for Native Client
15690048: runtime: support for fake time like on Go Playground
15690051: build: disable various tests on Native Client
LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/68150047
2014-02-25 07:47:42 -07:00
|
|
|
sys_brk = 20
|
|
|
|
sys_mmap = 21
|
|
|
|
sys_munmap = 22
|
|
|
|
sys_getdents = 23
|
|
|
|
sys_mprotect = 24
|
|
|
|
sys_list_mappings = 25
|
|
|
|
sys_exit = 30
|
|
|
|
sys_getpid = 31
|
|
|
|
sys_sched_yield = 32
|
|
|
|
sys_sysconf = 33
|
|
|
|
sys_gettimeofday = 40
|
|
|
|
sys_clock = 41
|
|
|
|
sys_nanosleep = 42
|
|
|
|
sys_clock_getres = 43
|
|
|
|
sys_clock_gettime = 44
|
|
|
|
sys_mkdir = 45
|
|
|
|
sys_rmdir = 46
|
|
|
|
sys_chdir = 47
|
|
|
|
sys_getcwd = 48
|
|
|
|
sys_unlink = 49
|
|
|
|
sys_imc_makeboundsock = 60
|
|
|
|
sys_imc_accept = 61
|
|
|
|
sys_imc_connect = 62
|
|
|
|
sys_imc_sendmsg = 63
|
|
|
|
sys_imc_recvmsg = 64
|
|
|
|
sys_imc_mem_obj_create = 65
|
|
|
|
sys_imc_socketpair = 66
|
|
|
|
sys_mutex_create = 70
|
|
|
|
sys_mutex_lock = 71
|
|
|
|
sys_mutex_trylock = 72
|
|
|
|
sys_mutex_unlock = 73
|
|
|
|
sys_cond_create = 74
|
|
|
|
sys_cond_wait = 75
|
|
|
|
sys_cond_signal = 76
|
|
|
|
sys_cond_broadcast = 77
|
|
|
|
sys_cond_timed_wait_abs = 79
|
|
|
|
sys_thread_create = 80
|
|
|
|
sys_thread_exit = 81
|
|
|
|
sys_tls_init = 82
|
|
|
|
sys_thread_nice = 83
|
|
|
|
sys_tls_get = 84
|
|
|
|
sys_second_tls_set = 85
|
|
|
|
sys_second_tls_get = 86
|
|
|
|
sys_exception_handler = 87
|
|
|
|
sys_exception_stack = 88
|
|
|
|
sys_exception_clear_flag = 89
|
|
|
|
sys_sem_create = 100
|
|
|
|
sys_sem_wait = 101
|
|
|
|
sys_sem_post = 102
|
|
|
|
sys_sem_get_value = 103
|
|
|
|
sys_dyncode_create = 104
|
|
|
|
sys_dyncode_modify = 105
|
|
|
|
sys_dyncode_delete = 106
|
|
|
|
sys_test_infoleak = 109
|
|
|
|
sys_test_crash = 110
|
|
|
|
sys_test_syscall_1 = 111
|
|
|
|
sys_test_syscall_2 = 112
|
2014-12-18 01:26:08 -07:00
|
|
|
sys_futex_wait_abs = 120
|
|
|
|
sys_futex_wake = 121
|
|
|
|
sys_pread = 130
|
|
|
|
sys_pwrite = 131
|
|
|
|
sys_truncate = 140
|
|
|
|
sys_lstat = 141
|
|
|
|
sys_link = 142
|
|
|
|
sys_rename = 143
|
|
|
|
sys_symlink = 144
|
|
|
|
sys_access = 145
|
|
|
|
sys_readlink = 146
|
|
|
|
sys_utimes = 147
|
|
|
|
sys_get_random_bytes = 150
|
all: merge NaCl branch (part 1)
See golang.org/s/go13nacl for design overview.
This CL is the mostly mechanical changes from rsc's Go 1.2 based NaCl branch, specifically 39cb35750369 to 500771b477cf from https://code.google.com/r/rsc-go13nacl. This CL does not include working NaCl support, there are probably two or three more large merges to come.
CL 15750044 is not included as it involves more invasive changes to the linker which will need to be merged separately.
The exact change lists included are
15050047: syscall: support for Native Client
15360044: syscall: unzip implementation for Native Client
15370044: syscall: Native Client SRPC implementation
15400047: cmd/dist, cmd/go, go/build, test: support for Native Client
15410048: runtime: support for Native Client
15410049: syscall: file descriptor table for Native Client
15410050: syscall: in-memory file system for Native Client
15440048: all: update +build lines for Native Client port
15540045: cmd/6g, cmd/8g, cmd/gc: support for Native Client
15570045: os: support for Native Client
15680044: crypto/..., hash/crc32, reflect, sync/atomic: support for amd64p32
15690044: net: support for Native Client
15690048: runtime: support for fake time like on Go Playground
15690051: build: disable various tests on Native Client
LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/68150047
2014-02-25 07:47:42 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
// TODO: Auto-generate some day. (Hard-coded in binaries so not likely to change.)
|
|
|
|
const (
|
|
|
|
// native_client/src/trusted/service_runtime/include/sys/errno.h
|
|
|
|
// The errors are mainly copied from Linux.
|
|
|
|
EPERM Errno = 1 /* Operation not permitted */
|
|
|
|
ENOENT Errno = 2 /* No such file or directory */
|
|
|
|
ESRCH Errno = 3 /* No such process */
|
|
|
|
EINTR Errno = 4 /* Interrupted system call */
|
|
|
|
EIO Errno = 5 /* I/O error */
|
|
|
|
ENXIO Errno = 6 /* No such device or address */
|
|
|
|
E2BIG Errno = 7 /* Argument list too long */
|
|
|
|
ENOEXEC Errno = 8 /* Exec format error */
|
|
|
|
EBADF Errno = 9 /* Bad file number */
|
|
|
|
ECHILD Errno = 10 /* No child processes */
|
|
|
|
EAGAIN Errno = 11 /* Try again */
|
|
|
|
ENOMEM Errno = 12 /* Out of memory */
|
|
|
|
EACCES Errno = 13 /* Permission denied */
|
|
|
|
EFAULT Errno = 14 /* Bad address */
|
|
|
|
EBUSY Errno = 16 /* Device or resource busy */
|
|
|
|
EEXIST Errno = 17 /* File exists */
|
|
|
|
EXDEV Errno = 18 /* Cross-device link */
|
|
|
|
ENODEV Errno = 19 /* No such device */
|
|
|
|
ENOTDIR Errno = 20 /* Not a directory */
|
|
|
|
EISDIR Errno = 21 /* Is a directory */
|
|
|
|
EINVAL Errno = 22 /* Invalid argument */
|
|
|
|
ENFILE Errno = 23 /* File table overflow */
|
|
|
|
EMFILE Errno = 24 /* Too many open files */
|
|
|
|
ENOTTY Errno = 25 /* Not a typewriter */
|
|
|
|
EFBIG Errno = 27 /* File too large */
|
|
|
|
ENOSPC Errno = 28 /* No space left on device */
|
|
|
|
ESPIPE Errno = 29 /* Illegal seek */
|
|
|
|
EROFS Errno = 30 /* Read-only file system */
|
|
|
|
EMLINK Errno = 31 /* Too many links */
|
|
|
|
EPIPE Errno = 32 /* Broken pipe */
|
|
|
|
ENAMETOOLONG Errno = 36 /* File name too long */
|
|
|
|
ENOSYS Errno = 38 /* Function not implemented */
|
|
|
|
EDQUOT Errno = 122 /* Quota exceeded */
|
|
|
|
EDOM Errno = 33 /* Math arg out of domain of func */
|
|
|
|
ERANGE Errno = 34 /* Math result not representable */
|
|
|
|
EDEADLK Errno = 35 /* Deadlock condition */
|
|
|
|
ENOLCK Errno = 37 /* No record locks available */
|
|
|
|
ENOTEMPTY Errno = 39 /* Directory not empty */
|
|
|
|
ELOOP Errno = 40 /* Too many symbolic links */
|
|
|
|
ENOMSG Errno = 42 /* No message of desired type */
|
|
|
|
EIDRM Errno = 43 /* Identifier removed */
|
|
|
|
ECHRNG Errno = 44 /* Channel number out of range */
|
|
|
|
EL2NSYNC Errno = 45 /* Level 2 not synchronized */
|
|
|
|
EL3HLT Errno = 46 /* Level 3 halted */
|
|
|
|
EL3RST Errno = 47 /* Level 3 reset */
|
|
|
|
ELNRNG Errno = 48 /* Link number out of range */
|
|
|
|
EUNATCH Errno = 49 /* Protocol driver not attached */
|
|
|
|
ENOCSI Errno = 50 /* No CSI structure available */
|
|
|
|
EL2HLT Errno = 51 /* Level 2 halted */
|
|
|
|
EBADE Errno = 52 /* Invalid exchange */
|
|
|
|
EBADR Errno = 53 /* Invalid request descriptor */
|
|
|
|
EXFULL Errno = 54 /* Exchange full */
|
|
|
|
ENOANO Errno = 55 /* No anode */
|
|
|
|
EBADRQC Errno = 56 /* Invalid request code */
|
|
|
|
EBADSLT Errno = 57 /* Invalid slot */
|
|
|
|
EDEADLOCK Errno = EDEADLK /* File locking deadlock error */
|
|
|
|
EBFONT Errno = 59 /* Bad font file fmt */
|
|
|
|
ENOSTR Errno = 60 /* Device not a stream */
|
|
|
|
ENODATA Errno = 61 /* No data (for no delay io) */
|
|
|
|
ETIME Errno = 62 /* Timer expired */
|
|
|
|
ENOSR Errno = 63 /* Out of streams resources */
|
|
|
|
ENONET Errno = 64 /* Machine is not on the network */
|
|
|
|
ENOPKG Errno = 65 /* Package not installed */
|
|
|
|
EREMOTE Errno = 66 /* The object is remote */
|
|
|
|
ENOLINK Errno = 67 /* The link has been severed */
|
|
|
|
EADV Errno = 68 /* Advertise error */
|
|
|
|
ESRMNT Errno = 69 /* Srmount error */
|
|
|
|
ECOMM Errno = 70 /* Communication error on send */
|
|
|
|
EPROTO Errno = 71 /* Protocol error */
|
|
|
|
EMULTIHOP Errno = 72 /* Multihop attempted */
|
|
|
|
EDOTDOT Errno = 73 /* Cross mount point (not really error) */
|
|
|
|
EBADMSG Errno = 74 /* Trying to read unreadable message */
|
|
|
|
EOVERFLOW Errno = 75 /* Value too large for defined data type */
|
|
|
|
ENOTUNIQ Errno = 76 /* Given log. name not unique */
|
|
|
|
EBADFD Errno = 77 /* f.d. invalid for this operation */
|
|
|
|
EREMCHG Errno = 78 /* Remote address changed */
|
|
|
|
ELIBACC Errno = 79 /* Can't access a needed shared lib */
|
|
|
|
ELIBBAD Errno = 80 /* Accessing a corrupted shared lib */
|
|
|
|
ELIBSCN Errno = 81 /* .lib section in a.out corrupted */
|
|
|
|
ELIBMAX Errno = 82 /* Attempting to link in too many libs */
|
|
|
|
ELIBEXEC Errno = 83 /* Attempting to exec a shared library */
|
|
|
|
EILSEQ Errno = 84
|
|
|
|
EUSERS Errno = 87
|
|
|
|
ENOTSOCK Errno = 88 /* Socket operation on non-socket */
|
|
|
|
EDESTADDRREQ Errno = 89 /* Destination address required */
|
|
|
|
EMSGSIZE Errno = 90 /* Message too long */
|
|
|
|
EPROTOTYPE Errno = 91 /* Protocol wrong type for socket */
|
|
|
|
ENOPROTOOPT Errno = 92 /* Protocol not available */
|
|
|
|
EPROTONOSUPPORT Errno = 93 /* Unknown protocol */
|
|
|
|
ESOCKTNOSUPPORT Errno = 94 /* Socket type not supported */
|
|
|
|
EOPNOTSUPP Errno = 95 /* Operation not supported on transport endpoint */
|
|
|
|
EPFNOSUPPORT Errno = 96 /* Protocol family not supported */
|
|
|
|
EAFNOSUPPORT Errno = 97 /* Address family not supported by protocol family */
|
|
|
|
EADDRINUSE Errno = 98 /* Address already in use */
|
|
|
|
EADDRNOTAVAIL Errno = 99 /* Address not available */
|
|
|
|
ENETDOWN Errno = 100 /* Network interface is not configured */
|
|
|
|
ENETUNREACH Errno = 101 /* Network is unreachable */
|
|
|
|
ENETRESET Errno = 102
|
|
|
|
ECONNABORTED Errno = 103 /* Connection aborted */
|
|
|
|
ECONNRESET Errno = 104 /* Connection reset by peer */
|
|
|
|
ENOBUFS Errno = 105 /* No buffer space available */
|
|
|
|
EISCONN Errno = 106 /* Socket is already connected */
|
|
|
|
ENOTCONN Errno = 107 /* Socket is not connected */
|
|
|
|
ESHUTDOWN Errno = 108 /* Can't send after socket shutdown */
|
|
|
|
ETOOMANYREFS Errno = 109
|
|
|
|
ETIMEDOUT Errno = 110 /* Connection timed out */
|
|
|
|
ECONNREFUSED Errno = 111 /* Connection refused */
|
|
|
|
EHOSTDOWN Errno = 112 /* Host is down */
|
|
|
|
EHOSTUNREACH Errno = 113 /* Host is unreachable */
|
|
|
|
EALREADY Errno = 114 /* Socket already connected */
|
|
|
|
EINPROGRESS Errno = 115 /* Connection already in progress */
|
|
|
|
ESTALE Errno = 116
|
|
|
|
ENOTSUP Errno = EOPNOTSUPP /* Not supported */
|
|
|
|
ENOMEDIUM Errno = 123 /* No medium (in tape drive) */
|
|
|
|
ECANCELED Errno = 125 /* Operation canceled. */
|
|
|
|
ELBIN Errno = 2048 /* Inode is remote (not really error) */
|
|
|
|
EFTYPE Errno = 2049 /* Inappropriate file type or format */
|
|
|
|
ENMFILE Errno = 2050 /* No more files */
|
|
|
|
EPROCLIM Errno = 2051
|
|
|
|
ENOSHARE Errno = 2052 /* No such host or network path */
|
|
|
|
ECASECLASH Errno = 2053 /* Filename exists with different case */
|
|
|
|
EWOULDBLOCK Errno = EAGAIN /* Operation would block */
|
|
|
|
)
|
|
|
|
|
|
|
|
// TODO: Auto-generate some day. (Hard-coded in binaries so not likely to change.)
|
|
|
|
var errorstr = [...]string{
|
|
|
|
EPERM: "Operation not permitted",
|
|
|
|
ENOENT: "No such file or directory",
|
|
|
|
ESRCH: "No such process",
|
|
|
|
EINTR: "Interrupted system call",
|
|
|
|
EIO: "I/O error",
|
|
|
|
ENXIO: "No such device or address",
|
|
|
|
E2BIG: "Argument list too long",
|
|
|
|
ENOEXEC: "Exec format error",
|
|
|
|
EBADF: "Bad file number",
|
|
|
|
ECHILD: "No child processes",
|
|
|
|
EAGAIN: "Try again",
|
|
|
|
ENOMEM: "Out of memory",
|
|
|
|
EACCES: "Permission denied",
|
|
|
|
EFAULT: "Bad address",
|
|
|
|
EBUSY: "Device or resource busy",
|
|
|
|
EEXIST: "File exists",
|
|
|
|
EXDEV: "Cross-device link",
|
|
|
|
ENODEV: "No such device",
|
|
|
|
ENOTDIR: "Not a directory",
|
|
|
|
EISDIR: "Is a directory",
|
|
|
|
EINVAL: "Invalid argument",
|
|
|
|
ENFILE: "File table overflow",
|
|
|
|
EMFILE: "Too many open files",
|
|
|
|
ENOTTY: "Not a typewriter",
|
|
|
|
EFBIG: "File too large",
|
|
|
|
ENOSPC: "No space left on device",
|
|
|
|
ESPIPE: "Illegal seek",
|
|
|
|
EROFS: "Read-only file system",
|
|
|
|
EMLINK: "Too many links",
|
|
|
|
EPIPE: "Broken pipe",
|
|
|
|
ENAMETOOLONG: "File name too long",
|
|
|
|
ENOSYS: "not implemented on Native Client",
|
|
|
|
EDQUOT: "Quota exceeded",
|
|
|
|
EDOM: "Math arg out of domain of func",
|
|
|
|
ERANGE: "Math result not representable",
|
|
|
|
EDEADLK: "Deadlock condition",
|
|
|
|
ENOLCK: "No record locks available",
|
|
|
|
ENOTEMPTY: "Directory not empty",
|
|
|
|
ELOOP: "Too many symbolic links",
|
|
|
|
ENOMSG: "No message of desired type",
|
|
|
|
EIDRM: "Identifier removed",
|
|
|
|
ECHRNG: "Channel number out of range",
|
|
|
|
EL2NSYNC: "Level 2 not synchronized",
|
|
|
|
EL3HLT: "Level 3 halted",
|
|
|
|
EL3RST: "Level 3 reset",
|
|
|
|
ELNRNG: "Link number out of range",
|
|
|
|
EUNATCH: "Protocol driver not attached",
|
|
|
|
ENOCSI: "No CSI structure available",
|
|
|
|
EL2HLT: "Level 2 halted",
|
|
|
|
EBADE: "Invalid exchange",
|
|
|
|
EBADR: "Invalid request descriptor",
|
|
|
|
EXFULL: "Exchange full",
|
|
|
|
ENOANO: "No anode",
|
|
|
|
EBADRQC: "Invalid request code",
|
|
|
|
EBADSLT: "Invalid slot",
|
|
|
|
EBFONT: "Bad font file fmt",
|
|
|
|
ENOSTR: "Device not a stream",
|
|
|
|
ENODATA: "No data (for no delay io)",
|
|
|
|
ETIME: "Timer expired",
|
|
|
|
ENOSR: "Out of streams resources",
|
|
|
|
ENONET: "Machine is not on the network",
|
|
|
|
ENOPKG: "Package not installed",
|
|
|
|
EREMOTE: "The object is remote",
|
|
|
|
ENOLINK: "The link has been severed",
|
|
|
|
EADV: "Advertise error",
|
|
|
|
ESRMNT: "Srmount error",
|
|
|
|
ECOMM: "Communication error on send",
|
|
|
|
EPROTO: "Protocol error",
|
|
|
|
EMULTIHOP: "Multihop attempted",
|
|
|
|
EDOTDOT: "Cross mount point (not really error)",
|
|
|
|
EBADMSG: "Trying to read unreadable message",
|
|
|
|
EOVERFLOW: "Value too large for defined data type",
|
|
|
|
ENOTUNIQ: "Given log. name not unique",
|
|
|
|
EBADFD: "f.d. invalid for this operation",
|
|
|
|
EREMCHG: "Remote address changed",
|
|
|
|
ELIBACC: "Can't access a needed shared lib",
|
|
|
|
ELIBBAD: "Accessing a corrupted shared lib",
|
|
|
|
ELIBSCN: ".lib section in a.out corrupted",
|
|
|
|
ELIBMAX: "Attempting to link in too many libs",
|
|
|
|
ELIBEXEC: "Attempting to exec a shared library",
|
|
|
|
ENOTSOCK: "Socket operation on non-socket",
|
|
|
|
EDESTADDRREQ: "Destination address required",
|
|
|
|
EMSGSIZE: "Message too long",
|
|
|
|
EPROTOTYPE: "Protocol wrong type for socket",
|
|
|
|
ENOPROTOOPT: "Protocol not available",
|
|
|
|
EPROTONOSUPPORT: "Unknown protocol",
|
|
|
|
ESOCKTNOSUPPORT: "Socket type not supported",
|
|
|
|
EOPNOTSUPP: "Operation not supported on transport endpoint",
|
|
|
|
EPFNOSUPPORT: "Protocol family not supported",
|
|
|
|
EAFNOSUPPORT: "Address family not supported by protocol family",
|
|
|
|
EADDRINUSE: "Address already in use",
|
|
|
|
EADDRNOTAVAIL: "Address not available",
|
|
|
|
ENETDOWN: "Network interface is not configured",
|
|
|
|
ENETUNREACH: "Network is unreachable",
|
|
|
|
ECONNABORTED: "Connection aborted",
|
|
|
|
ECONNRESET: "Connection reset by peer",
|
|
|
|
ENOBUFS: "No buffer space available",
|
|
|
|
EISCONN: "Socket is already connected",
|
|
|
|
ENOTCONN: "Socket is not connected",
|
|
|
|
ESHUTDOWN: "Can't send after socket shutdown",
|
|
|
|
ETIMEDOUT: "Connection timed out",
|
|
|
|
ECONNREFUSED: "Connection refused",
|
|
|
|
EHOSTDOWN: "Host is down",
|
|
|
|
EHOSTUNREACH: "Host is unreachable",
|
|
|
|
EALREADY: "Socket already connected",
|
|
|
|
EINPROGRESS: "Connection already in progress",
|
|
|
|
ENOMEDIUM: "No medium (in tape drive)",
|
|
|
|
ECANCELED: "Operation canceled.",
|
|
|
|
ELBIN: "Inode is remote (not really error)",
|
|
|
|
EFTYPE: "Inappropriate file type or format",
|
|
|
|
ENMFILE: "No more files",
|
|
|
|
ENOSHARE: "No such host or network path",
|
|
|
|
ECASECLASH: "Filename exists with different case",
|
|
|
|
}
|