Source file src/pkg/syscall/tables_nacljs.go
1
2
3
4
5
6
7 package syscall
8
9 import "runtime"
10
11
12 const (
13 sys_null = 1
14 sys_nameservice = 2
15 sys_dup = 8
16 sys_dup2 = 9
17 sys_open = 10
18 sys_close = 11
19 sys_read = 12
20 sys_write = 13
21 sys_lseek = 14
22 sys_stat = 16
23 sys_fstat = 17
24 sys_chmod = 18
25 sys_isatty = 19
26 sys_brk = 20
27 sys_mmap = 21
28 sys_munmap = 22
29 sys_getdents = 23
30 sys_mprotect = 24
31 sys_list_mappings = 25
32 sys_exit = 30
33 sys_getpid = 31
34 sys_sched_yield = 32
35 sys_sysconf = 33
36 sys_gettimeofday = 40
37 sys_clock = 41
38 sys_nanosleep = 42
39 sys_clock_getres = 43
40 sys_clock_gettime = 44
41 sys_mkdir = 45
42 sys_rmdir = 46
43 sys_chdir = 47
44 sys_getcwd = 48
45 sys_unlink = 49
46 sys_imc_makeboundsock = 60
47 sys_imc_accept = 61
48 sys_imc_connect = 62
49 sys_imc_sendmsg = 63
50 sys_imc_recvmsg = 64
51 sys_imc_mem_obj_create = 65
52 sys_imc_socketpair = 66
53 sys_mutex_create = 70
54 sys_mutex_lock = 71
55 sys_mutex_trylock = 72
56 sys_mutex_unlock = 73
57 sys_cond_create = 74
58 sys_cond_wait = 75
59 sys_cond_signal = 76
60 sys_cond_broadcast = 77
61 sys_cond_timed_wait_abs = 79
62 sys_thread_create = 80
63 sys_thread_exit = 81
64 sys_tls_init = 82
65 sys_thread_nice = 83
66 sys_tls_get = 84
67 sys_second_tls_set = 85
68 sys_second_tls_get = 86
69 sys_exception_handler = 87
70 sys_exception_stack = 88
71 sys_exception_clear_flag = 89
72 sys_sem_create = 100
73 sys_sem_wait = 101
74 sys_sem_post = 102
75 sys_sem_get_value = 103
76 sys_dyncode_create = 104
77 sys_dyncode_modify = 105
78 sys_dyncode_delete = 106
79 sys_test_infoleak = 109
80 sys_test_crash = 110
81 sys_test_syscall_1 = 111
82 sys_test_syscall_2 = 112
83 sys_futex_wait_abs = 120
84 sys_futex_wake = 121
85 sys_pread = 130
86 sys_pwrite = 131
87 sys_truncate = 140
88 sys_lstat = 141
89 sys_link = 142
90 sys_rename = 143
91 sys_symlink = 144
92 sys_access = 145
93 sys_readlink = 146
94 sys_utimes = 147
95 sys_get_random_bytes = 150
96 )
97
98
99 const (
100
101
102 EPERM Errno = 1
103 ENOENT Errno = 2
104 ESRCH Errno = 3
105 EINTR Errno = 4
106 EIO Errno = 5
107 ENXIO Errno = 6
108 E2BIG Errno = 7
109 ENOEXEC Errno = 8
110 EBADF Errno = 9
111 ECHILD Errno = 10
112 EAGAIN Errno = 11
113 ENOMEM Errno = 12
114 EACCES Errno = 13
115 EFAULT Errno = 14
116 EBUSY Errno = 16
117 EEXIST Errno = 17
118 EXDEV Errno = 18
119 ENODEV Errno = 19
120 ENOTDIR Errno = 20
121 EISDIR Errno = 21
122 EINVAL Errno = 22
123 ENFILE Errno = 23
124 EMFILE Errno = 24
125 ENOTTY Errno = 25
126 EFBIG Errno = 27
127 ENOSPC Errno = 28
128 ESPIPE Errno = 29
129 EROFS Errno = 30
130 EMLINK Errno = 31
131 EPIPE Errno = 32
132 ENAMETOOLONG Errno = 36
133 ENOSYS Errno = 38
134 EDQUOT Errno = 122
135 EDOM Errno = 33
136 ERANGE Errno = 34
137 EDEADLK Errno = 35
138 ENOLCK Errno = 37
139 ENOTEMPTY Errno = 39
140 ELOOP Errno = 40
141 ENOMSG Errno = 42
142 EIDRM Errno = 43
143 ECHRNG Errno = 44
144 EL2NSYNC Errno = 45
145 EL3HLT Errno = 46
146 EL3RST Errno = 47
147 ELNRNG Errno = 48
148 EUNATCH Errno = 49
149 ENOCSI Errno = 50
150 EL2HLT Errno = 51
151 EBADE Errno = 52
152 EBADR Errno = 53
153 EXFULL Errno = 54
154 ENOANO Errno = 55
155 EBADRQC Errno = 56
156 EBADSLT Errno = 57
157 EDEADLOCK Errno = EDEADLK
158 EBFONT Errno = 59
159 ENOSTR Errno = 60
160 ENODATA Errno = 61
161 ETIME Errno = 62
162 ENOSR Errno = 63
163 ENONET Errno = 64
164 ENOPKG Errno = 65
165 EREMOTE Errno = 66
166 ENOLINK Errno = 67
167 EADV Errno = 68
168 ESRMNT Errno = 69
169 ECOMM Errno = 70
170 EPROTO Errno = 71
171 EMULTIHOP Errno = 72
172 EDOTDOT Errno = 73
173 EBADMSG Errno = 74
174 EOVERFLOW Errno = 75
175 ENOTUNIQ Errno = 76
176 EBADFD Errno = 77
177 EREMCHG Errno = 78
178 ELIBACC Errno = 79
179 ELIBBAD Errno = 80
180 ELIBSCN Errno = 81
181 ELIBMAX Errno = 82
182 ELIBEXEC Errno = 83
183 EILSEQ Errno = 84
184 EUSERS Errno = 87
185 ENOTSOCK Errno = 88
186 EDESTADDRREQ Errno = 89
187 EMSGSIZE Errno = 90
188 EPROTOTYPE Errno = 91
189 ENOPROTOOPT Errno = 92
190 EPROTONOSUPPORT Errno = 93
191 ESOCKTNOSUPPORT Errno = 94
192 EOPNOTSUPP Errno = 95
193 EPFNOSUPPORT Errno = 96
194 EAFNOSUPPORT Errno = 97
195 EADDRINUSE Errno = 98
196 EADDRNOTAVAIL Errno = 99
197 ENETDOWN Errno = 100
198 ENETUNREACH Errno = 101
199 ENETRESET Errno = 102
200 ECONNABORTED Errno = 103
201 ECONNRESET Errno = 104
202 ENOBUFS Errno = 105
203 EISCONN Errno = 106
204 ENOTCONN Errno = 107
205 ESHUTDOWN Errno = 108
206 ETOOMANYREFS Errno = 109
207 ETIMEDOUT Errno = 110
208 ECONNREFUSED Errno = 111
209 EHOSTDOWN Errno = 112
210 EHOSTUNREACH Errno = 113
211 EALREADY Errno = 114
212 EINPROGRESS Errno = 115
213 ESTALE Errno = 116
214 ENOTSUP Errno = EOPNOTSUPP
215 ENOMEDIUM Errno = 123
216 ECANCELED Errno = 125
217 ELBIN Errno = 2048
218 EFTYPE Errno = 2049
219 ENMFILE Errno = 2050
220 EPROCLIM Errno = 2051
221 ENOSHARE Errno = 2052
222 ECASECLASH Errno = 2053
223 EWOULDBLOCK Errno = EAGAIN
224 )
225
226
227 var errorstr = [...]string{
228 EPERM: "Operation not permitted",
229 ENOENT: "No such file or directory",
230 ESRCH: "No such process",
231 EINTR: "Interrupted system call",
232 EIO: "I/O error",
233 ENXIO: "No such device or address",
234 E2BIG: "Argument list too long",
235 ENOEXEC: "Exec format error",
236 EBADF: "Bad file number",
237 ECHILD: "No child processes",
238 EAGAIN: "Try again",
239 ENOMEM: "Out of memory",
240 EACCES: "Permission denied",
241 EFAULT: "Bad address",
242 EBUSY: "Device or resource busy",
243 EEXIST: "File exists",
244 EXDEV: "Cross-device link",
245 ENODEV: "No such device",
246 ENOTDIR: "Not a directory",
247 EISDIR: "Is a directory",
248 EINVAL: "Invalid argument",
249 ENFILE: "File table overflow",
250 EMFILE: "Too many open files",
251 ENOTTY: "Not a typewriter",
252 EFBIG: "File too large",
253 ENOSPC: "No space left on device",
254 ESPIPE: "Illegal seek",
255 EROFS: "Read-only file system",
256 EMLINK: "Too many links",
257 EPIPE: "Broken pipe",
258 ENAMETOOLONG: "File name too long",
259 ENOSYS: "not implemented on " + runtime.GOOS,
260 EDQUOT: "Quota exceeded",
261 EDOM: "Math arg out of domain of func",
262 ERANGE: "Math result not representable",
263 EDEADLK: "Deadlock condition",
264 ENOLCK: "No record locks available",
265 ENOTEMPTY: "Directory not empty",
266 ELOOP: "Too many symbolic links",
267 ENOMSG: "No message of desired type",
268 EIDRM: "Identifier removed",
269 ECHRNG: "Channel number out of range",
270 EL2NSYNC: "Level 2 not synchronized",
271 EL3HLT: "Level 3 halted",
272 EL3RST: "Level 3 reset",
273 ELNRNG: "Link number out of range",
274 EUNATCH: "Protocol driver not attached",
275 ENOCSI: "No CSI structure available",
276 EL2HLT: "Level 2 halted",
277 EBADE: "Invalid exchange",
278 EBADR: "Invalid request descriptor",
279 EXFULL: "Exchange full",
280 ENOANO: "No anode",
281 EBADRQC: "Invalid request code",
282 EBADSLT: "Invalid slot",
283 EBFONT: "Bad font file fmt",
284 ENOSTR: "Device not a stream",
285 ENODATA: "No data (for no delay io)",
286 ETIME: "Timer expired",
287 ENOSR: "Out of streams resources",
288 ENONET: "Machine is not on the network",
289 ENOPKG: "Package not installed",
290 EREMOTE: "The object is remote",
291 ENOLINK: "The link has been severed",
292 EADV: "Advertise error",
293 ESRMNT: "Srmount error",
294 ECOMM: "Communication error on send",
295 EPROTO: "Protocol error",
296 EMULTIHOP: "Multihop attempted",
297 EDOTDOT: "Cross mount point (not really error)",
298 EBADMSG: "Trying to read unreadable message",
299 EOVERFLOW: "Value too large for defined data type",
300 ENOTUNIQ: "Given log. name not unique",
301 EBADFD: "f.d. invalid for this operation",
302 EREMCHG: "Remote address changed",
303 ELIBACC: "Can't access a needed shared lib",
304 ELIBBAD: "Accessing a corrupted shared lib",
305 ELIBSCN: ".lib section in a.out corrupted",
306 ELIBMAX: "Attempting to link in too many libs",
307 ELIBEXEC: "Attempting to exec a shared library",
308 ENOTSOCK: "Socket operation on non-socket",
309 EDESTADDRREQ: "Destination address required",
310 EMSGSIZE: "Message too long",
311 EPROTOTYPE: "Protocol wrong type for socket",
312 ENOPROTOOPT: "Protocol not available",
313 EPROTONOSUPPORT: "Unknown protocol",
314 ESOCKTNOSUPPORT: "Socket type not supported",
315 EOPNOTSUPP: "Operation not supported on transport endpoint",
316 EPFNOSUPPORT: "Protocol family not supported",
317 EAFNOSUPPORT: "Address family not supported by protocol family",
318 EADDRINUSE: "Address already in use",
319 EADDRNOTAVAIL: "Address not available",
320 ENETDOWN: "Network interface is not configured",
321 ENETUNREACH: "Network is unreachable",
322 ECONNABORTED: "Connection aborted",
323 ECONNRESET: "Connection reset by peer",
324 ENOBUFS: "No buffer space available",
325 EISCONN: "Socket is already connected",
326 ENOTCONN: "Socket is not connected",
327 ESHUTDOWN: "Can't send after socket shutdown",
328 ETIMEDOUT: "Connection timed out",
329 ECONNREFUSED: "Connection refused",
330 EHOSTDOWN: "Host is down",
331 EHOSTUNREACH: "Host is unreachable",
332 EALREADY: "Socket already connected",
333 EINPROGRESS: "Connection already in progress",
334 ENOMEDIUM: "No medium (in tape drive)",
335 ECANCELED: "Operation canceled.",
336 ELBIN: "Inode is remote (not really error)",
337 EFTYPE: "Inappropriate file type or format",
338 ENMFILE: "No more files",
339 ENOSHARE: "No such host or network path",
340 ECASECLASH: "Filename exists with different case",
341 }
342
343
344
345 var (
346 errEAGAIN error = EAGAIN
347 errEINVAL error = EINVAL
348 errENOENT error = ENOENT
349 )
350
351
352
353 func errnoErr(e Errno) error {
354 switch e {
355 case 0:
356 return nil
357 case EAGAIN:
358 return errEAGAIN
359 case EINVAL:
360 return errEINVAL
361 case ENOENT:
362 return errENOENT
363 }
364 return e
365 }
366
367 var errnoByCode = map[string]Errno{
368 "EPERM": EPERM,
369 "ENOENT": ENOENT,
370 "ESRCH": ESRCH,
371 "EINTR": EINTR,
372 "EIO": EIO,
373 "ENXIO": ENXIO,
374 "E2BIG": E2BIG,
375 "ENOEXEC": ENOEXEC,
376 "EBADF": EBADF,
377 "ECHILD": ECHILD,
378 "EAGAIN": EAGAIN,
379 "ENOMEM": ENOMEM,
380 "EACCES": EACCES,
381 "EFAULT": EFAULT,
382 "EBUSY": EBUSY,
383 "EEXIST": EEXIST,
384 "EXDEV": EXDEV,
385 "ENODEV": ENODEV,
386 "ENOTDIR": ENOTDIR,
387 "EISDIR": EISDIR,
388 "EINVAL": EINVAL,
389 "ENFILE": ENFILE,
390 "EMFILE": EMFILE,
391 "ENOTTY": ENOTTY,
392 "EFBIG": EFBIG,
393 "ENOSPC": ENOSPC,
394 "ESPIPE": ESPIPE,
395 "EROFS": EROFS,
396 "EMLINK": EMLINK,
397 "EPIPE": EPIPE,
398 "ENAMETOOLONG": ENAMETOOLONG,
399 "ENOSYS": ENOSYS,
400 "EDQUOT": EDQUOT,
401 "EDOM": EDOM,
402 "ERANGE": ERANGE,
403 "EDEADLK": EDEADLK,
404 "ENOLCK": ENOLCK,
405 "ENOTEMPTY": ENOTEMPTY,
406 "ELOOP": ELOOP,
407 "ENOMSG": ENOMSG,
408 "EIDRM": EIDRM,
409 "ECHRNG": ECHRNG,
410 "EL2NSYNC": EL2NSYNC,
411 "EL3HLT": EL3HLT,
412 "EL3RST": EL3RST,
413 "ELNRNG": ELNRNG,
414 "EUNATCH": EUNATCH,
415 "ENOCSI": ENOCSI,
416 "EL2HLT": EL2HLT,
417 "EBADE": EBADE,
418 "EBADR": EBADR,
419 "EXFULL": EXFULL,
420 "ENOANO": ENOANO,
421 "EBADRQC": EBADRQC,
422 "EBADSLT": EBADSLT,
423 "EDEADLOCK": EDEADLOCK,
424 "EBFONT": EBFONT,
425 "ENOSTR": ENOSTR,
426 "ENODATA": ENODATA,
427 "ETIME": ETIME,
428 "ENOSR": ENOSR,
429 "ENONET": ENONET,
430 "ENOPKG": ENOPKG,
431 "EREMOTE": EREMOTE,
432 "ENOLINK": ENOLINK,
433 "EADV": EADV,
434 "ESRMNT": ESRMNT,
435 "ECOMM": ECOMM,
436 "EPROTO": EPROTO,
437 "EMULTIHOP": EMULTIHOP,
438 "EDOTDOT": EDOTDOT,
439 "EBADMSG": EBADMSG,
440 "EOVERFLOW": EOVERFLOW,
441 "ENOTUNIQ": ENOTUNIQ,
442 "EBADFD": EBADFD,
443 "EREMCHG": EREMCHG,
444 "ELIBACC": ELIBACC,
445 "ELIBBAD": ELIBBAD,
446 "ELIBSCN": ELIBSCN,
447 "ELIBMAX": ELIBMAX,
448 "ELIBEXEC": ELIBEXEC,
449 "EILSEQ": EILSEQ,
450 "EUSERS": EUSERS,
451 "ENOTSOCK": ENOTSOCK,
452 "EDESTADDRREQ": EDESTADDRREQ,
453 "EMSGSIZE": EMSGSIZE,
454 "EPROTOTYPE": EPROTOTYPE,
455 "ENOPROTOOPT": ENOPROTOOPT,
456 "EPROTONOSUPPORT": EPROTONOSUPPORT,
457 "ESOCKTNOSUPPORT": ESOCKTNOSUPPORT,
458 "EOPNOTSUPP": EOPNOTSUPP,
459 "EPFNOSUPPORT": EPFNOSUPPORT,
460 "EAFNOSUPPORT": EAFNOSUPPORT,
461 "EADDRINUSE": EADDRINUSE,
462 "EADDRNOTAVAIL": EADDRNOTAVAIL,
463 "ENETDOWN": ENETDOWN,
464 "ENETUNREACH": ENETUNREACH,
465 "ENETRESET": ENETRESET,
466 "ECONNABORTED": ECONNABORTED,
467 "ECONNRESET": ECONNRESET,
468 "ENOBUFS": ENOBUFS,
469 "EISCONN": EISCONN,
470 "ENOTCONN": ENOTCONN,
471 "ESHUTDOWN": ESHUTDOWN,
472 "ETOOMANYREFS": ETOOMANYREFS,
473 "ETIMEDOUT": ETIMEDOUT,
474 "ECONNREFUSED": ECONNREFUSED,
475 "EHOSTDOWN": EHOSTDOWN,
476 "EHOSTUNREACH": EHOSTUNREACH,
477 "EALREADY": EALREADY,
478 "EINPROGRESS": EINPROGRESS,
479 "ESTALE": ESTALE,
480 "ENOTSUP": ENOTSUP,
481 "ENOMEDIUM": ENOMEDIUM,
482 "ECANCELED": ECANCELED,
483 "ELBIN": ELBIN,
484 "EFTYPE": EFTYPE,
485 "ENMFILE": ENMFILE,
486 "EPROCLIM": EPROCLIM,
487 "ENOSHARE": ENOSHARE,
488 "ECASECLASH": ECASECLASH,
489 "EWOULDBLOCK": EWOULDBLOCK,
490 }
491
View as plain text