OLD | NEW |
1 #include <string.h> | 1 #include <string.h> |
2 #include <sys/stat.h> | 2 #include <sys/stat.h> |
3 #include <time.h> | 3 #include <time.h> |
4 #include <nacl_stat.h> | 4 #include <nacl_stat.h> |
5 #include <nacl_syscalls.h> | 5 #include <nacl_syscalls.h> |
6 #define stat nacl_abi_stat | 6 #define stat nacl_abi_stat |
7 #include <irt.h> | 7 #include <irt.h> |
8 #include <irt_dev.h> | 8 #include <irt_dev.h> |
9 #undef stat | 9 #undef stat |
10 #include <irt_syscalls.h> | 10 #include <irt_syscalls.h> |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 } | 155 } |
156 | 156 |
157 static int nacl_irt_dyncode_modify(void *dest, const void *src, size_t size) { | 157 static int nacl_irt_dyncode_modify(void *dest, const void *src, size_t size) { |
158 return -NACL_SYSCALL(dyncode_modify)(dest, src, size); | 158 return -NACL_SYSCALL(dyncode_modify)(dest, src, size); |
159 } | 159 } |
160 | 160 |
161 static int nacl_irt_dyncode_delete(void *dest, size_t size) { | 161 static int nacl_irt_dyncode_delete(void *dest, size_t size) { |
162 return -NACL_SYSCALL(dyncode_delete)(dest, size); | 162 return -NACL_SYSCALL(dyncode_delete)(dest, size); |
163 } | 163 } |
164 | 164 |
165 static int nacl_irt_thread_create (void *start_user_address, void *stack, | 165 static int nacl_irt_thread_create (void (*start_user_address)(void), |
| 166 void *stack, |
166 void *thread_ptr) { | 167 void *thread_ptr) { |
167 return -NACL_SYSCALL (thread_create) (start_user_address, stack, | 168 return -NACL_SYSCALL (thread_create) (start_user_address, stack, |
168 thread_ptr, 0); | 169 thread_ptr, 0); |
169 } | 170 } |
170 | 171 |
171 static void nacl_irt_thread_exit (int32_t *stack_flag) { | 172 static void nacl_irt_thread_exit (int32_t *stack_flag) { |
172 NACL_SYSCALL (thread_exit) (stack_flag); | 173 NACL_SYSCALL (thread_exit) (stack_flag); |
173 while (1) (*(void (*)(void)) 0) (); /* Crash. */ | 174 while (1) (*(void (*)(void)) 0) (); /* Crash. */ |
174 } | 175 } |
175 | 176 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 /* Load files from DL_DST_LIB using IRT's open_resource. Other paths | 255 /* Load files from DL_DST_LIB using IRT's open_resource. Other paths |
255 will be processed using regular open syscall. | 256 will be processed using regular open syscall. |
256 | 257 |
257 Note: nacl_mount may change this logic if needed. */ | 258 Note: nacl_mount may change this logic if needed. */ |
258 static int (*___nacl_irt_open_resource) (const char* file, int *fd); | 259 static int (*___nacl_irt_open_resource) (const char* file, int *fd); |
259 static int nacl_irt_open_resource (const char *pathname, int *newfd) { | 260 static int nacl_irt_open_resource (const char *pathname, int *newfd) { |
260 if (memcmp (DL_DST_LIB "/", pathname, sizeof (DL_DST_LIB))) | 261 if (memcmp (DL_DST_LIB "/", pathname, sizeof (DL_DST_LIB))) |
261 return __nacl_irt_open (pathname, O_RDONLY, 0, newfd); | 262 return __nacl_irt_open (pathname, O_RDONLY, 0, newfd); |
262 else | 263 else |
263 return ___nacl_irt_open_resource (pathname + sizeof (DL_DST_LIB) - 1, | 264 return ___nacl_irt_open_resource (pathname + sizeof (DL_DST_LIB) - 1, |
264 » » » » newfd); | 265 newfd); |
265 } | 266 } |
266 | 267 |
267 static int nacl_irt_clock_getres(clockid_t clk_id, | 268 static int nacl_irt_clock_getres(clockid_t clk_id, |
268 struct timespec *res) { | 269 struct timespec *res) { |
269 return -NACL_SYSCALL (clock_getres) (clk_id, res); | 270 return -NACL_SYSCALL (clock_getres) (clk_id, res); |
270 } | 271 } |
271 | 272 |
272 static int nacl_irt_clock_gettime(clockid_t clk_id, | 273 static int nacl_irt_clock_gettime(clockid_t clk_id, |
273 struct timespec *tp) { | 274 struct timespec *tp) { |
274 return -NACL_SYSCALL (clock_gettime) (clk_id, tp); | 275 return -NACL_SYSCALL (clock_gettime) (clk_id, tp); |
275 } | 276 } |
276 | 277 |
277 static size_t no_interface (const char *interface_ident, | 278 static size_t no_interface (const char *interface_ident, |
278 void *table, size_t tablesize) { | 279 void *table, size_t tablesize) { |
279 return 0; | 280 return 0; |
280 } | 281 } |
281 | 282 |
282 static int not_implemented() { | 283 static int not_implemented() { |
283 return (38 /* ENOSYS */); | 284 return (38 /* ENOSYS */); |
284 } | 285 } |
285 | 286 |
286 size_t (*__nacl_irt_query) (const char *interface_ident, | 287 size_t (*__nacl_irt_query) (const char *interface_ident, |
287 » » » void *table, size_t tablesize); | 288 void *table, size_t tablesize); |
288 | 289 |
289 int (*__nacl_irt_mkdir) (const char* pathname, mode_t mode); | 290 int (*__nacl_irt_mkdir) (const char* pathname, mode_t mode); |
290 int (*__nacl_irt_rmdir) (const char* pathname); | 291 int (*__nacl_irt_rmdir) (const char* pathname); |
291 int (*__nacl_irt_chdir) (const char* pathname); | 292 int (*__nacl_irt_chdir) (const char* pathname); |
292 int (*__nacl_irt_getcwd) (char* buf, size_t size); | 293 int (*__nacl_irt_getcwd) (char* buf, size_t size); |
293 | 294 |
294 void (*__nacl_irt_exit) (int status); | 295 void (*__nacl_irt_exit) (int status); |
295 int (*__nacl_irt_gettod) (struct timeval *tv); | 296 int (*__nacl_irt_gettod) (struct timeval *tv); |
296 int (*__nacl_irt_clock) (clock_t *ticks); | 297 int (*__nacl_irt_clock) (clock_t *ticks); |
297 int (*__nacl_irt_nanosleep) (const struct timespec *req, struct timespec *rem); | 298 int (*__nacl_irt_nanosleep) (const struct timespec *req, struct timespec *rem); |
298 int (*__nacl_irt_sched_yield) (void); | 299 int (*__nacl_irt_sched_yield) (void); |
299 int (*__nacl_irt_sysconf) (int name, int *value); | 300 int (*__nacl_irt_sysconf) (int name, int *value); |
300 | 301 |
301 int (*__nacl_irt_open) (const char *pathname, int oflag, mode_t cmode, | 302 int (*__nacl_irt_open) (const char *pathname, int oflag, mode_t cmode, |
302 » » » int *newfd); | 303 int *newfd); |
303 int (*__nacl_irt_close) (int fd); | 304 int (*__nacl_irt_close) (int fd); |
304 int (*__nacl_irt_read) (int fd, void *buf, size_t count, size_t *nread); | 305 int (*__nacl_irt_read) (int fd, void *buf, size_t count, size_t *nread); |
305 int (*__nacl_irt_write) (int fd, const void *buf, size_t count, size_t *nwrote); | 306 int (*__nacl_irt_write) (int fd, const void *buf, size_t count, |
| 307 size_t *nwrote); |
306 int (*__nacl_irt_seek) (int fd, off_t offset, int whence, off_t *new_offset); | 308 int (*__nacl_irt_seek) (int fd, off_t offset, int whence, off_t *new_offset); |
307 int (*__nacl_irt_dup) (int fd, int *newfd); | 309 int (*__nacl_irt_dup) (int fd, int *newfd); |
308 int (*__nacl_irt_dup2) (int fd, int newfd); | 310 int (*__nacl_irt_dup2) (int fd, int newfd); |
309 int (*__nacl_irt_fstat) (int fd, struct nacl_abi_stat *); | 311 int (*__nacl_irt_fstat) (int fd, struct nacl_abi_stat *); |
310 int (*__nacl_irt_stat) (const char *pathname, struct nacl_abi_stat *); | 312 int (*__nacl_irt_stat) (const char *pathname, struct nacl_abi_stat *); |
311 int (*__nacl_irt_getdents) (int fd, struct dirent *, size_t count, | 313 int (*__nacl_irt_getdents) (int fd, struct dirent *, size_t count, |
312 » » » size_t *nread); | 314 size_t *nread); |
313 int (*__nacl_irt_socket) (int domain, int type, int protocol, int *sd); | 315 int (*__nacl_irt_socket) (int domain, int type, int protocol, int *sd); |
314 int (*__nacl_irt_accept) (int sockfd, struct sockaddr *addr, | 316 int (*__nacl_irt_accept) (int sockfd, struct sockaddr *addr, |
315 socklen_t *addrlen, int *sd); | 317 socklen_t *addrlen, int *sd); |
316 int (*__nacl_irt_bind) (int sockfd, const struct sockaddr *addr, socklen_t addrl
en); | 318 int (*__nacl_irt_bind) (int sockfd, const struct sockaddr *addr, |
| 319 socklen_t addrlen); |
317 int (*__nacl_irt_listen) (int sockfd, int backlog); | 320 int (*__nacl_irt_listen) (int sockfd, int backlog); |
318 int (*__nacl_irt_connect) (int sockfd, const struct sockaddr *addr, | 321 int (*__nacl_irt_connect) (int sockfd, const struct sockaddr *addr, |
319 socklen_t addrlen); | 322 socklen_t addrlen); |
320 int (*__nacl_irt_send) (int sockfd, const void *buf, size_t len, int flags, | 323 int (*__nacl_irt_send) (int sockfd, const void *buf, size_t len, int flags, |
321 int *count); | 324 int *count); |
322 int (*__nacl_irt_sendmsg) (int sockfd, const struct msghdr *msg, int flags, | 325 int (*__nacl_irt_sendmsg) (int sockfd, const struct msghdr *msg, int flags, |
323 int *count); | 326 int *count); |
324 int (*__nacl_irt_sendto) (int sockfd, const void *buf, size_t len, int flags, | 327 int (*__nacl_irt_sendto) (int sockfd, const void *buf, size_t len, int flags, |
325 const struct sockaddr *dest_addr, socklen_t addrlen, | 328 const struct sockaddr *dest_addr, socklen_t addrlen, |
326 » » » » » » int *count); | 329 int *count); |
327 int (*__nacl_irt_recv) (int sockfd, void *buf, size_t len, int flags, int *count
); | 330 int (*__nacl_irt_recv) (int sockfd, void *buf, size_t len, int flags, |
328 int (*__nacl_irt_recvmsg) (int sockfd, struct msghdr *msg, int flags, int *count
); | 331 int *count); |
| 332 int (*__nacl_irt_recvmsg) (int sockfd, struct msghdr *msg, int flags, |
| 333 int *count); |
329 int (*__nacl_irt_recvfrom) (int sockfd, void *buf, size_t len, int flags, | 334 int (*__nacl_irt_recvfrom) (int sockfd, void *buf, size_t len, int flags, |
330 struct sockaddr *dest_addr, socklen_t* addrlen, int
*count); | 335 struct sockaddr *dest_addr, socklen_t* addrlen, |
| 336 int *count); |
331 | 337 |
332 int (*__nacl_irt_epoll_create) (int size, int *fd); | 338 int (*__nacl_irt_epoll_create) (int size, int *fd); |
333 int (*__nacl_irt_epoll_create1) (int flags, int *fd); | 339 int (*__nacl_irt_epoll_create1) (int flags, int *fd); |
334 int (*__nacl_irt_epoll_ctl) (int epfd, int op, int fd, | 340 int (*__nacl_irt_epoll_ctl) (int epfd, int op, int fd, |
335 struct epoll_event *event); | 341 struct epoll_event *event); |
336 int (*__nacl_irt_epoll_pwait) (int epfd, struct epoll_event *events, | 342 int (*__nacl_irt_epoll_pwait) (int epfd, struct epoll_event *events, |
337 int maxevents, int timeout, const sigset_t *sigmask, size_t sigset_size, | 343 int maxevents, int timeout, |
338 » int *count); | 344 const sigset_t *sigmask, size_t sigset_size, |
| 345 int *count); |
339 int (*__nacl_irt_epoll_wait) (int epfd, struct epoll_event *events, | 346 int (*__nacl_irt_epoll_wait) (int epfd, struct epoll_event *events, |
340 int maxevents, int timeout, int *count); | 347 int maxevents, int timeout, int *count); |
341 int (*__nacl_irt_poll) (struct pollfd *fds, nfds_t nfds, | 348 int (*__nacl_irt_poll) (struct pollfd *fds, nfds_t nfds, |
342 int timeout, int *count); | 349 int timeout, int *count); |
343 int (*__nacl_irt_ppoll) (struct pollfd *fds, nfds_t nfds, | 350 int (*__nacl_irt_ppoll) (struct pollfd *fds, nfds_t nfds, |
344 const struct timespec *timeout, const sigset_t *sigmask, | 351 const struct timespec *timeout, |
345 » size_t sigset_size, int *count); | 352 const sigset_t *sigmask, |
| 353 size_t sigset_size, int *count); |
346 int (*__nacl_irt_select) (int nfds, fd_set *readfds, | 354 int (*__nacl_irt_select) (int nfds, fd_set *readfds, |
347 fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout, | 355 fd_set *writefds, fd_set *exceptfds, |
348 » int *count); | 356 const struct timeval *timeout, |
| 357 int *count); |
349 int (*__nacl_irt_pselect) (int nfds, fd_set *readfds, | 358 int (*__nacl_irt_pselect) (int nfds, fd_set *readfds, |
350 fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout, | 359 fd_set *writefds, fd_set *exceptfds, |
351 » void* sigmask, int *count); | 360 const struct timeval *timeout, |
| 361 void* sigmask, int *count); |
352 int (*__nacl_irt_getpeername) (int sockfd, struct sockaddr *addr, | 362 int (*__nacl_irt_getpeername) (int sockfd, struct sockaddr *addr, |
353 socklen_t *addrlen); | 363 socklen_t *addrlen); |
354 int (*__nacl_irt_getsockname) (int sockfd, struct sockaddr *addr, | 364 int (*__nacl_irt_getsockname) (int sockfd, struct sockaddr *addr, |
355 socklen_t *addrlen); | 365 socklen_t *addrlen); |
356 int (*__nacl_irt_getsockopt) (int sockfd, int level, int optname, | 366 int (*__nacl_irt_getsockopt) (int sockfd, int level, int optname, |
357 void *optval, socklen_t *optlen); | 367 void *optval, socklen_t *optlen); |
358 int (*__nacl_irt_setsockopt) (int sockfd, int level, int optname, | 368 int (*__nacl_irt_setsockopt) (int sockfd, int level, int optname, |
359 const void *optval, socklen_t optlen); | 369 const void *optval, socklen_t optlen); |
360 int (*__nacl_irt_socketpair) (int domain, int type, int protocol, int sv[2]); | 370 int (*__nacl_irt_socketpair) (int domain, int type, int protocol, int sv[2]); |
361 int (*__nacl_irt_shutdown) (int sockfd, int how); | 371 int (*__nacl_irt_shutdown) (int sockfd, int how); |
362 | 372 |
363 | 373 |
364 int (*__nacl_irt_sysbrk) (void **newbrk); | 374 int (*__nacl_irt_sysbrk) (void **newbrk); |
365 int (*__nacl_irt_mmap) (void **addr, size_t len, int prot, int flags, | 375 int (*__nacl_irt_mmap) (void **addr, size_t len, int prot, int flags, |
366 » » » int fd, off_t off); | 376 int fd, off_t off); |
367 int (*__nacl_irt_munmap) (void *addr, size_t len); | 377 int (*__nacl_irt_munmap) (void *addr, size_t len); |
368 int (*__nacl_irt_mprotect) (void *addr, size_t len, int prot); | 378 int (*__nacl_irt_mprotect) (void *addr, size_t len, int prot); |
369 | 379 |
370 int (*__nacl_irt_dyncode_create) (void *dest, const void *src, size_t size); | 380 int (*__nacl_irt_dyncode_create) (void *dest, const void *src, size_t size); |
371 int (*__nacl_irt_dyncode_modify) (void *dest, const void *src, size_t size); | 381 int (*__nacl_irt_dyncode_modify) (void *dest, const void *src, size_t size); |
372 int (*__nacl_irt_dyncode_delete) (void *dest, size_t size); | 382 int (*__nacl_irt_dyncode_delete) (void *dest, size_t size); |
373 | 383 |
374 int (*__nacl_irt_thread_create) (void *start_user_address, void *stack, | 384 int (*__nacl_irt_thread_create) (void (*start_user_address)(void), |
375 » » » » void *thread_ptr); | 385 void *stack, |
| 386 void *thread_ptr); |
376 void (*__nacl_irt_thread_exit) (int32_t *stack_flag); | 387 void (*__nacl_irt_thread_exit) (int32_t *stack_flag); |
377 int (*__nacl_irt_thread_nice) (const int nice); | 388 int (*__nacl_irt_thread_nice) (const int nice); |
378 | 389 |
379 int (*__nacl_irt_mutex_create) (int *mutex_handle); | 390 int (*__nacl_irt_mutex_create) (int *mutex_handle); |
380 int (*__nacl_irt_mutex_destroy) (int mutex_handle); | 391 int (*__nacl_irt_mutex_destroy) (int mutex_handle); |
381 int (*__nacl_irt_mutex_lock) (int mutex_handle); | 392 int (*__nacl_irt_mutex_lock) (int mutex_handle); |
382 int (*__nacl_irt_mutex_unlock) (int mutex_handle); | 393 int (*__nacl_irt_mutex_unlock) (int mutex_handle); |
383 int (*__nacl_irt_mutex_trylock) (int mutex_handle); | 394 int (*__nacl_irt_mutex_trylock) (int mutex_handle); |
384 | 395 |
385 int (*__nacl_irt_cond_create) (int *cond_handle); | 396 int (*__nacl_irt_cond_create) (int *cond_handle); |
386 int (*__nacl_irt_cond_destroy) (int cond_handle); | 397 int (*__nacl_irt_cond_destroy) (int cond_handle); |
387 int (*__nacl_irt_cond_signal) (int cond_handle); | 398 int (*__nacl_irt_cond_signal) (int cond_handle); |
388 int (*__nacl_irt_cond_broadcast) (int cond_handle); | 399 int (*__nacl_irt_cond_broadcast) (int cond_handle); |
389 int (*__nacl_irt_cond_wait) (int cond_handle, int mutex_handle); | 400 int (*__nacl_irt_cond_wait) (int cond_handle, int mutex_handle); |
390 int (*__nacl_irt_cond_timed_wait_abs) (int cond_handle, int mutex_handle, | 401 int (*__nacl_irt_cond_timed_wait_abs) (int cond_handle, int mutex_handle, |
391 » » » » const struct timespec *abstime); | 402 const struct timespec *abstime); |
392 | 403 |
393 int (*__nacl_irt_tls_init) (void *tdb); | 404 int (*__nacl_irt_tls_init) (void *tdb); |
394 void *(*__nacl_irt_tls_get) (void); | 405 void *(*__nacl_irt_tls_get) (void); |
395 | 406 |
396 int (*__nacl_irt_open_resource) (const char* file, int *fd); | 407 int (*__nacl_irt_open_resource) (const char* file, int *fd); |
397 | 408 |
398 int (*__nacl_irt_clock_getres) (clockid_t clk_id, struct timespec *res); | 409 int (*__nacl_irt_clock_getres) (clockid_t clk_id, struct timespec *res); |
399 int (*__nacl_irt_clock_gettime) (clockid_t clk_id, struct timespec *tp); | 410 int (*__nacl_irt_clock_gettime) (clockid_t clk_id, struct timespec *tp); |
400 | 411 |
401 int (*__nacl_irt_getpid) (int *pid); | 412 int (*__nacl_irt_getpid) (int *pid); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 struct nacl_irt_resource_open nacl_irt_resource_open; | 447 struct nacl_irt_resource_open nacl_irt_resource_open; |
437 struct nacl_irt_clock nacl_irt_clock; | 448 struct nacl_irt_clock nacl_irt_clock; |
438 struct nacl_irt_dev_getpid nacl_irt_dev_getpid; | 449 struct nacl_irt_dev_getpid nacl_irt_dev_getpid; |
439 struct nacl_irt_dev_fdio nacl_irt_dev_fdio; | 450 struct nacl_irt_dev_fdio nacl_irt_dev_fdio; |
440 struct nacl_irt_dev_filename_v0_2 nacl_irt_dev_filename_v0_2; | 451 struct nacl_irt_dev_filename_v0_2 nacl_irt_dev_filename_v0_2; |
441 struct nacl_irt_dev_filename nacl_irt_dev_filename; | 452 struct nacl_irt_dev_filename nacl_irt_dev_filename; |
442 } u; | 453 } u; |
443 | 454 |
444 if (__nacl_irt_query && | 455 if (__nacl_irt_query && |
445 __nacl_irt_query (NACL_IRT_BASIC_v0_1, &u.nacl_irt_basic, | 456 __nacl_irt_query (NACL_IRT_BASIC_v0_1, &u.nacl_irt_basic, |
446 » » » sizeof(u.nacl_irt_basic)) == sizeof(u.nacl_irt_basic)) | 457 sizeof(u.nacl_irt_basic)) == sizeof(u.nacl_irt_basic)) |
447 { | 458 { |
448 __nacl_irt_exit = u.nacl_irt_basic.exit; | 459 __nacl_irt_exit = u.nacl_irt_basic.exit; |
449 __nacl_irt_gettod = u.nacl_irt_basic.gettod; | 460 __nacl_irt_gettod = u.nacl_irt_basic.gettod; |
450 __nacl_irt_clock = u.nacl_irt_basic.clock; | 461 __nacl_irt_clock = u.nacl_irt_basic.clock; |
451 __nacl_irt_nanosleep = u.nacl_irt_basic.nanosleep; | 462 __nacl_irt_nanosleep = u.nacl_irt_basic.nanosleep; |
452 __nacl_irt_sched_yield = u.nacl_irt_basic.sched_yield; | 463 __nacl_irt_sched_yield = u.nacl_irt_basic.sched_yield; |
453 __nacl_irt_sysconf = u.nacl_irt_basic.sysconf; | 464 __nacl_irt_sysconf = u.nacl_irt_basic.sysconf; |
454 } | 465 } |
455 else | 466 else |
456 { | 467 { |
457 __nacl_irt_exit = nacl_irt_exit; | 468 __nacl_irt_exit = nacl_irt_exit; |
458 __nacl_irt_gettod = nacl_irt_gettod; | 469 __nacl_irt_gettod = nacl_irt_gettod; |
459 __nacl_irt_clock = nacl_irt_clock; | 470 __nacl_irt_clock = nacl_irt_clock; |
460 __nacl_irt_nanosleep = nacl_irt_nanosleep; | 471 __nacl_irt_nanosleep = nacl_irt_nanosleep; |
461 __nacl_irt_sched_yield = nacl_irt_sched_yield; | 472 __nacl_irt_sched_yield = nacl_irt_sched_yield; |
462 __nacl_irt_sysconf = nacl_irt_sysconf; | 473 __nacl_irt_sysconf = nacl_irt_sysconf; |
463 } | 474 } |
464 | 475 |
465 if (__nacl_irt_query && | 476 if (__nacl_irt_query && |
466 __nacl_irt_query (NACL_IRT_FDIO_v0_1, &u.nacl_irt_fdio, | 477 __nacl_irt_query (NACL_IRT_FDIO_v0_1, &u.nacl_irt_fdio, |
467 » » » sizeof(u.nacl_irt_fdio)) == sizeof(u.nacl_irt_fdio)) | 478 sizeof(u.nacl_irt_fdio)) == sizeof(u.nacl_irt_fdio)) |
468 { | 479 { |
469 __nacl_irt_close = u.nacl_irt_fdio.close; | 480 __nacl_irt_close = u.nacl_irt_fdio.close; |
470 __nacl_irt_dup = u.nacl_irt_fdio.dup; | 481 __nacl_irt_dup = u.nacl_irt_fdio.dup; |
471 __nacl_irt_dup2 = u.nacl_irt_fdio.dup2; | 482 __nacl_irt_dup2 = u.nacl_irt_fdio.dup2; |
472 __nacl_irt_read = u.nacl_irt_fdio.read; | 483 __nacl_irt_read = u.nacl_irt_fdio.read; |
473 __nacl_irt_write = u.nacl_irt_fdio.write; | 484 __nacl_irt_write = u.nacl_irt_fdio.write; |
474 __nacl_irt_seek = u.nacl_irt_fdio.seek; | 485 __nacl_irt_seek = u.nacl_irt_fdio.seek; |
475 __nacl_irt_fstat = u.nacl_irt_fdio.fstat; | 486 __nacl_irt_fstat = u.nacl_irt_fdio.fstat; |
476 __nacl_irt_getdents = u.nacl_irt_fdio.getdents; | 487 __nacl_irt_getdents = u.nacl_irt_fdio.getdents; |
477 } | 488 } |
478 else | 489 else |
479 { | 490 { |
480 __nacl_irt_close = nacl_irt_close; | 491 __nacl_irt_close = nacl_irt_close; |
481 __nacl_irt_dup = nacl_irt_dup; | 492 __nacl_irt_dup = nacl_irt_dup; |
482 __nacl_irt_dup2 = nacl_irt_dup2; | 493 __nacl_irt_dup2 = nacl_irt_dup2; |
483 __nacl_irt_read = nacl_irt_read; | 494 __nacl_irt_read = nacl_irt_read; |
484 __nacl_irt_write = nacl_irt_write; | 495 __nacl_irt_write = nacl_irt_write; |
485 __nacl_irt_seek = nacl_irt_seek; | 496 __nacl_irt_seek = nacl_irt_seek; |
486 __nacl_irt_fstat = nacl_irt_fstat; | 497 __nacl_irt_fstat = nacl_irt_fstat; |
487 __nacl_irt_getdents = nacl_irt_getdents; | 498 __nacl_irt_getdents = nacl_irt_getdents; |
488 } | 499 } |
489 | 500 |
490 if (__nacl_irt_query && | 501 if (__nacl_irt_query && |
491 __nacl_irt_query (NACL_IRT_FILENAME_v0_1, &u.nacl_irt_filename, | 502 __nacl_irt_query (NACL_IRT_FILENAME_v0_1, &u.nacl_irt_filename, |
492 » » » sizeof(u.nacl_irt_filename)) == sizeof(u.nacl_irt_filena
me)) | 503 sizeof(u.nacl_irt_filename)) == |
| 504 sizeof(u.nacl_irt_filename)) |
493 { | 505 { |
494 __nacl_irt_open = u.nacl_irt_filename.open; | 506 __nacl_irt_open = u.nacl_irt_filename.open; |
495 __nacl_irt_stat = u.nacl_irt_filename.nacl_abi_stat; | 507 __nacl_irt_stat = u.nacl_irt_filename.nacl_abi_stat; |
496 } | 508 } |
497 else | 509 else |
498 { | 510 { |
499 __nacl_irt_open = nacl_irt_open; | 511 __nacl_irt_open = nacl_irt_open; |
500 __nacl_irt_stat = nacl_irt_stat; | 512 __nacl_irt_stat = nacl_irt_stat; |
501 } | 513 } |
502 | 514 |
503 if (__nacl_irt_query && | 515 if (__nacl_irt_query && |
504 __nacl_irt_query (NACL_IRT_MEMORY_v0_2, &u.nacl_irt_memory, | 516 __nacl_irt_query (NACL_IRT_MEMORY_v0_2, &u.nacl_irt_memory, |
505 » » » sizeof(u.nacl_irt_memory)) == sizeof(u.nacl_irt_memory)) | 517 sizeof(u.nacl_irt_memory)) == |
| 518 sizeof(u.nacl_irt_memory)) |
506 { | 519 { |
507 __nacl_irt_sysbrk = u.nacl_irt_memory.sysbrk; | 520 __nacl_irt_sysbrk = u.nacl_irt_memory.sysbrk; |
508 __nacl_irt_mmap = u.nacl_irt_memory.mmap; | 521 __nacl_irt_mmap = u.nacl_irt_memory.mmap; |
509 __nacl_irt_munmap = u.nacl_irt_memory.munmap; | 522 __nacl_irt_munmap = u.nacl_irt_memory.munmap; |
510 __nacl_irt_mprotect = u.nacl_irt_memory.mprotect; | 523 __nacl_irt_mprotect = u.nacl_irt_memory.mprotect; |
511 } | 524 } |
512 else if (__nacl_irt_query && | 525 else if (__nacl_irt_query && |
513 __nacl_irt_query (NACL_IRT_MEMORY_v0_1, &u.nacl_irt_memory, | 526 __nacl_irt_query (NACL_IRT_MEMORY_v0_1, &u.nacl_irt_memory, |
514 sizeof(struct nacl_irt_memory_v0_1)) == | 527 sizeof(struct nacl_irt_memory_v0_1)) == |
515 sizeof(struct nacl_irt_memory_v0_1)) | 528 sizeof(struct nacl_irt_memory_v0_1)) |
516 { | 529 { |
517 __nacl_irt_sysbrk = u.nacl_irt_memory.sysbrk; | 530 __nacl_irt_sysbrk = u.nacl_irt_memory.sysbrk; |
518 __nacl_irt_mmap = u.nacl_irt_memory.mmap; | 531 __nacl_irt_mmap = u.nacl_irt_memory.mmap; |
519 __nacl_irt_munmap = u.nacl_irt_memory.munmap; | 532 __nacl_irt_munmap = u.nacl_irt_memory.munmap; |
520 __nacl_irt_mprotect = not_implemented; | 533 __nacl_irt_mprotect = not_implemented; |
521 } | 534 } |
522 else | 535 else |
523 { | 536 { |
524 __nacl_irt_sysbrk = nacl_irt_sysbrk; | 537 __nacl_irt_sysbrk = nacl_irt_sysbrk; |
525 __nacl_irt_mmap = nacl_irt_mmap; | 538 __nacl_irt_mmap = nacl_irt_mmap; |
526 __nacl_irt_munmap = nacl_irt_munmap; | 539 __nacl_irt_munmap = nacl_irt_munmap; |
527 __nacl_irt_mprotect = nacl_irt_mprotect; | 540 __nacl_irt_mprotect = nacl_irt_mprotect; |
528 } | 541 } |
529 | 542 |
530 if (__nacl_irt_query && | 543 if (__nacl_irt_query && |
531 __nacl_irt_query (NACL_IRT_DYNCODE_v0_1, &u.nacl_irt_dyncode, | 544 __nacl_irt_query (NACL_IRT_DYNCODE_v0_1, &u.nacl_irt_dyncode, |
532 » » » sizeof(u.nacl_irt_dyncode)) == sizeof(u.nacl_irt_dyncode
)) | 545 sizeof(u.nacl_irt_dyncode)) == |
| 546 sizeof(u.nacl_irt_dyncode)) |
533 { | 547 { |
534 __nacl_irt_dyncode_create = u.nacl_irt_dyncode.dyncode_create; | 548 __nacl_irt_dyncode_create = u.nacl_irt_dyncode.dyncode_create; |
535 __nacl_irt_dyncode_modify = u.nacl_irt_dyncode.dyncode_modify; | 549 __nacl_irt_dyncode_modify = u.nacl_irt_dyncode.dyncode_modify; |
536 __nacl_irt_dyncode_delete = u.nacl_irt_dyncode.dyncode_delete; | 550 __nacl_irt_dyncode_delete = u.nacl_irt_dyncode.dyncode_delete; |
537 } | 551 } |
538 else | 552 else |
539 { | 553 { |
540 __nacl_irt_dyncode_create = nacl_irt_dyncode_create; | 554 __nacl_irt_dyncode_create = nacl_irt_dyncode_create; |
541 __nacl_irt_dyncode_modify = nacl_irt_dyncode_modify; | 555 __nacl_irt_dyncode_modify = nacl_irt_dyncode_modify; |
542 __nacl_irt_dyncode_delete = nacl_irt_dyncode_delete; | 556 __nacl_irt_dyncode_delete = nacl_irt_dyncode_delete; |
543 } | 557 } |
544 | 558 |
545 if (__nacl_irt_query && | 559 if (__nacl_irt_query && |
546 __nacl_irt_query (NACL_IRT_THREAD_v0_1, &u.nacl_irt_thread, | 560 __nacl_irt_query (NACL_IRT_THREAD_v0_1, &u.nacl_irt_thread, |
547 » » » sizeof(u.nacl_irt_thread)) == sizeof(u.nacl_irt_thread)) | 561 sizeof(u.nacl_irt_thread)) == |
| 562 sizeof(u.nacl_irt_thread)) |
548 { | 563 { |
549 __nacl_irt_thread_create = u.nacl_irt_thread.thread_create; | 564 __nacl_irt_thread_create = u.nacl_irt_thread.thread_create; |
550 __nacl_irt_thread_exit = u.nacl_irt_thread.thread_exit; | 565 __nacl_irt_thread_exit = u.nacl_irt_thread.thread_exit; |
551 __nacl_irt_thread_nice = u.nacl_irt_thread.thread_nice; | 566 __nacl_irt_thread_nice = u.nacl_irt_thread.thread_nice; |
552 } | 567 } |
553 else | 568 else |
554 { | 569 { |
555 __nacl_irt_thread_create = nacl_irt_thread_create; | 570 __nacl_irt_thread_create = nacl_irt_thread_create; |
556 __nacl_irt_thread_exit = nacl_irt_thread_exit; | 571 __nacl_irt_thread_exit = nacl_irt_thread_exit; |
557 __nacl_irt_thread_nice = nacl_irt_thread_nice; | 572 __nacl_irt_thread_nice = nacl_irt_thread_nice; |
558 } | 573 } |
559 | 574 |
560 if (__nacl_irt_query && | 575 if (__nacl_irt_query && |
561 __nacl_irt_query (NACL_IRT_MUTEX_v0_1, &u.nacl_irt_mutex, | 576 __nacl_irt_query (NACL_IRT_MUTEX_v0_1, &u.nacl_irt_mutex, |
562 » » sizeof(u.nacl_irt_mutex)) == sizeof(u.nacl_irt_mutex)) | 577 sizeof(u.nacl_irt_mutex)) == sizeof(u.nacl_irt_mutex)) |
563 { | 578 { |
564 __nacl_irt_mutex_create = u.nacl_irt_mutex.mutex_create; | 579 __nacl_irt_mutex_create = u.nacl_irt_mutex.mutex_create; |
565 __nacl_irt_mutex_destroy = u.nacl_irt_mutex.mutex_destroy; | 580 __nacl_irt_mutex_destroy = u.nacl_irt_mutex.mutex_destroy; |
566 __nacl_irt_mutex_lock = u.nacl_irt_mutex.mutex_lock; | 581 __nacl_irt_mutex_lock = u.nacl_irt_mutex.mutex_lock; |
567 __nacl_irt_mutex_unlock = u.nacl_irt_mutex.mutex_unlock; | 582 __nacl_irt_mutex_unlock = u.nacl_irt_mutex.mutex_unlock; |
568 __nacl_irt_mutex_trylock = u.nacl_irt_mutex.mutex_trylock; | 583 __nacl_irt_mutex_trylock = u.nacl_irt_mutex.mutex_trylock; |
569 } | 584 } |
570 else | 585 else |
571 { | 586 { |
572 __nacl_irt_mutex_create = nacl_irt_mutex_create; | 587 __nacl_irt_mutex_create = nacl_irt_mutex_create; |
573 __nacl_irt_mutex_destroy = nacl_irt_mutex_destroy; | 588 __nacl_irt_mutex_destroy = nacl_irt_mutex_destroy; |
574 __nacl_irt_mutex_lock = nacl_irt_mutex_lock; | 589 __nacl_irt_mutex_lock = nacl_irt_mutex_lock; |
575 __nacl_irt_mutex_unlock = nacl_irt_mutex_unlock; | 590 __nacl_irt_mutex_unlock = nacl_irt_mutex_unlock; |
576 __nacl_irt_mutex_trylock = nacl_irt_mutex_trylock; | 591 __nacl_irt_mutex_trylock = nacl_irt_mutex_trylock; |
577 } | 592 } |
578 | 593 |
579 if (__nacl_irt_query && | 594 if (__nacl_irt_query && |
580 __nacl_irt_query (NACL_IRT_COND_v0_1, &u.nacl_irt_cond, | 595 __nacl_irt_query (NACL_IRT_COND_v0_1, &u.nacl_irt_cond, |
581 » » sizeof(u.nacl_irt_cond)) == sizeof(u.nacl_irt_cond)) | 596 sizeof(u.nacl_irt_cond)) == sizeof(u.nacl_irt_cond)) |
582 { | 597 { |
583 __nacl_irt_cond_create = u.nacl_irt_cond.cond_create; | 598 __nacl_irt_cond_create = u.nacl_irt_cond.cond_create; |
584 __nacl_irt_cond_destroy = u.nacl_irt_cond.cond_destroy; | 599 __nacl_irt_cond_destroy = u.nacl_irt_cond.cond_destroy; |
585 __nacl_irt_cond_signal = u.nacl_irt_cond.cond_signal; | 600 __nacl_irt_cond_signal = u.nacl_irt_cond.cond_signal; |
586 __nacl_irt_cond_broadcast = u.nacl_irt_cond.cond_broadcast; | 601 __nacl_irt_cond_broadcast = u.nacl_irt_cond.cond_broadcast; |
587 __nacl_irt_cond_wait = u.nacl_irt_cond.cond_wait; | 602 __nacl_irt_cond_wait = u.nacl_irt_cond.cond_wait; |
588 __nacl_irt_cond_timed_wait_abs = u.nacl_irt_cond.cond_timed_wait_abs; | 603 __nacl_irt_cond_timed_wait_abs = u.nacl_irt_cond.cond_timed_wait_abs; |
589 } | 604 } |
590 else | 605 else |
591 { | 606 { |
592 __nacl_irt_cond_create = nacl_irt_cond_create; | 607 __nacl_irt_cond_create = nacl_irt_cond_create; |
593 __nacl_irt_cond_destroy = nacl_irt_cond_destroy; | 608 __nacl_irt_cond_destroy = nacl_irt_cond_destroy; |
594 __nacl_irt_cond_signal = nacl_irt_cond_signal; | 609 __nacl_irt_cond_signal = nacl_irt_cond_signal; |
595 __nacl_irt_cond_broadcast = nacl_irt_cond_broadcast; | 610 __nacl_irt_cond_broadcast = nacl_irt_cond_broadcast; |
596 __nacl_irt_cond_wait = nacl_irt_cond_wait; | 611 __nacl_irt_cond_wait = nacl_irt_cond_wait; |
597 __nacl_irt_cond_timed_wait_abs = nacl_irt_cond_timed_wait_abs; | 612 __nacl_irt_cond_timed_wait_abs = nacl_irt_cond_timed_wait_abs; |
598 } | 613 } |
599 | 614 |
600 if (__nacl_irt_query && | 615 if (__nacl_irt_query && |
601 __nacl_irt_query (NACL_IRT_TLS_v0_1, &u.nacl_irt_tls, | 616 __nacl_irt_query (NACL_IRT_TLS_v0_1, &u.nacl_irt_tls, |
602 » » sizeof(u.nacl_irt_tls)) == sizeof(u.nacl_irt_tls)) | 617 sizeof(u.nacl_irt_tls)) == sizeof(u.nacl_irt_tls)) |
603 { | 618 { |
604 __nacl_irt_tls_init = u.nacl_irt_tls.tls_init; | 619 __nacl_irt_tls_init = u.nacl_irt_tls.tls_init; |
605 __nacl_irt_tls_get = u.nacl_irt_tls.tls_get; | 620 __nacl_irt_tls_get = u.nacl_irt_tls.tls_get; |
606 } | 621 } |
607 else | 622 else |
608 { | 623 { |
609 __nacl_irt_tls_init = nacl_irt_tls_init; | 624 __nacl_irt_tls_init = nacl_irt_tls_init; |
610 __nacl_irt_tls_get = nacl_irt_tls_get; | 625 __nacl_irt_tls_get = nacl_irt_tls_get; |
611 } | 626 } |
612 | 627 |
613 if (__nacl_irt_query && | 628 if (__nacl_irt_query && |
614 __nacl_irt_query (NACL_IRT_RESOURCE_OPEN_v0_1, &u.nacl_irt_resource_open, | 629 __nacl_irt_query (NACL_IRT_RESOURCE_OPEN_v0_1, &u.nacl_irt_resource_open, |
615 » sizeof(u.nacl_irt_resource_open)) == sizeof(u.nacl_irt_resource_open)) | 630 sizeof(u.nacl_irt_resource_open)) == |
| 631 sizeof(u.nacl_irt_resource_open)) |
616 { | 632 { |
617 ___nacl_irt_open_resource = u.nacl_irt_resource_open.open_resource; | 633 ___nacl_irt_open_resource = u.nacl_irt_resource_open.open_resource; |
618 __nacl_irt_open_resource = nacl_irt_open_resource; | 634 __nacl_irt_open_resource = nacl_irt_open_resource; |
619 #ifdef IS_IN_rtld | 635 #ifdef IS_IN_rtld |
620 if (_dl_argc == 1) | 636 if (_dl_argc == 1) |
621 { | 637 { |
622 static const char *argv[] = | 638 static const char *argv[] = |
623 » { | 639 { |
624 » DL_DST_LIB "/runnable-ld.so", | 640 DL_DST_LIB "/runnable-ld.so", |
625 » DL_DST_LIB "/main.nexe", | 641 DL_DST_LIB "/main.nexe", |
626 » 0 | 642 0 |
627 » }; | 643 }; |
628 _dl_argc = 2; | 644 _dl_argc = 2; |
629 _dl_argv = (char **)argv; | 645 _dl_argv = (char **)argv; |
630 } | 646 } |
631 #endif | 647 #endif |
632 } | 648 } |
633 else | 649 else |
634 __nacl_irt_open_resource = nacl_irt_open_as_resource; | 650 __nacl_irt_open_resource = nacl_irt_open_as_resource; |
635 | 651 |
636 if (__nacl_irt_query && | 652 if (__nacl_irt_query && |
637 __nacl_irt_query (NACL_IRT_CLOCK_v0_1, &u.nacl_irt_clock, | 653 __nacl_irt_query (NACL_IRT_CLOCK_v0_1, &u.nacl_irt_clock, |
638 » » » sizeof(u.nacl_irt_clock)) == sizeof(u.nacl_irt_clock)) | 654 sizeof(u.nacl_irt_clock)) == sizeof(u.nacl_irt_clock)) |
639 { | 655 { |
640 __nacl_irt_clock_getres = u.nacl_irt_clock.clock_getres; | 656 __nacl_irt_clock_getres = u.nacl_irt_clock.clock_getres; |
641 __nacl_irt_clock_gettime = u.nacl_irt_clock.clock_gettime; | 657 __nacl_irt_clock_gettime = u.nacl_irt_clock.clock_gettime; |
642 } | 658 } |
643 else | 659 else |
644 { | 660 { |
645 __nacl_irt_clock_getres = nacl_irt_clock_getres; | 661 __nacl_irt_clock_getres = nacl_irt_clock_getres; |
646 __nacl_irt_clock_gettime = nacl_irt_clock_gettime; | 662 __nacl_irt_clock_gettime = nacl_irt_clock_gettime; |
647 } | 663 } |
648 | 664 |
649 if (__nacl_irt_query && | 665 if (__nacl_irt_query && |
650 __nacl_irt_query (NACL_IRT_DEV_GETPID_v0_1, &u.nacl_irt_dev_getpid, | 666 __nacl_irt_query (NACL_IRT_DEV_GETPID_v0_1, &u.nacl_irt_dev_getpid, |
651 » » » sizeof(u.nacl_irt_dev_getpid)) == sizeof(u.nacl_irt_dev_
getpid)) | 667 sizeof(u.nacl_irt_dev_getpid)) == |
| 668 sizeof(u.nacl_irt_dev_getpid)) |
652 { | 669 { |
653 __nacl_irt_getpid = u.nacl_irt_dev_getpid.getpid; | 670 __nacl_irt_getpid = u.nacl_irt_dev_getpid.getpid; |
654 } | 671 } |
655 else | 672 else |
656 { | 673 { |
657 __nacl_irt_getpid = not_implemented; | 674 __nacl_irt_getpid = not_implemented; |
658 } | 675 } |
659 | 676 |
660 if (__nacl_irt_query && | 677 if (__nacl_irt_query && |
661 __nacl_irt_query (NACL_IRT_DEV_FDIO_v0_2, &u.nacl_irt_dev_fdio, | 678 __nacl_irt_query (NACL_IRT_DEV_FDIO_v0_2, &u.nacl_irt_dev_fdio, |
662 » » » sizeof(u.nacl_irt_dev_fdio)) == sizeof(u.nacl_irt_dev_fd
io)) | 679 sizeof(u.nacl_irt_dev_fdio)) == |
| 680 sizeof(u.nacl_irt_dev_fdio)) |
663 { | 681 { |
664 __nacl_irt_fchdir = u.nacl_irt_dev_fdio.fchdir; | 682 __nacl_irt_fchdir = u.nacl_irt_dev_fdio.fchdir; |
665 __nacl_irt_fchmod = u.nacl_irt_dev_fdio.fchmod; | 683 __nacl_irt_fchmod = u.nacl_irt_dev_fdio.fchmod; |
666 __nacl_irt_fsync = u.nacl_irt_dev_fdio.fsync; | 684 __nacl_irt_fsync = u.nacl_irt_dev_fdio.fsync; |
667 __nacl_irt_fdatasync = u.nacl_irt_dev_fdio.fdatasync; | 685 __nacl_irt_fdatasync = u.nacl_irt_dev_fdio.fdatasync; |
668 __nacl_irt_ftruncate = u.nacl_irt_dev_fdio.ftruncate; | 686 __nacl_irt_ftruncate = u.nacl_irt_dev_fdio.ftruncate; |
669 } | 687 } |
670 else | 688 else |
671 { | 689 { |
672 __nacl_irt_fchdir = not_implemented; | 690 __nacl_irt_fchdir = not_implemented; |
673 __nacl_irt_fchmod = not_implemented; | 691 __nacl_irt_fchmod = not_implemented; |
674 __nacl_irt_fsync = not_implemented; | 692 __nacl_irt_fsync = not_implemented; |
675 __nacl_irt_fdatasync = not_implemented; | 693 __nacl_irt_fdatasync = not_implemented; |
676 __nacl_irt_ftruncate = not_implemented; | 694 __nacl_irt_ftruncate = not_implemented; |
677 } | 695 } |
678 | 696 |
679 if (__nacl_irt_query && | 697 if (__nacl_irt_query && |
680 __nacl_irt_query (NACL_IRT_DEV_FILENAME_v0_3, &u.nacl_irt_dev_filename, | 698 __nacl_irt_query (NACL_IRT_DEV_FILENAME_v0_3, &u.nacl_irt_dev_filename, |
681 » » » sizeof(u.nacl_irt_dev_filename)) == sizeof(u.nacl_irt_de
v_filename)) | 699 sizeof(u.nacl_irt_dev_filename)) == |
| 700 sizeof(u.nacl_irt_dev_filename)) |
682 { | 701 { |
683 __nacl_irt_mkdir = u.nacl_irt_dev_filename.mkdir; | 702 __nacl_irt_mkdir = u.nacl_irt_dev_filename.mkdir; |
684 __nacl_irt_chdir = u.nacl_irt_dev_filename.chdir; | 703 __nacl_irt_chdir = u.nacl_irt_dev_filename.chdir; |
685 __nacl_irt_rmdir = u.nacl_irt_dev_filename.rmdir; | 704 __nacl_irt_rmdir = u.nacl_irt_dev_filename.rmdir; |
686 __nacl_irt_getcwd = u.nacl_irt_dev_filename.getcwd; | 705 __nacl_irt_getcwd = u.nacl_irt_dev_filename.getcwd; |
687 __nacl_irt_unlink = u.nacl_irt_dev_filename.unlink; | 706 __nacl_irt_unlink = u.nacl_irt_dev_filename.unlink; |
688 __nacl_irt_truncate = u.nacl_irt_dev_filename.truncate; | 707 __nacl_irt_truncate = u.nacl_irt_dev_filename.truncate; |
689 __nacl_irt_lstat = u.nacl_irt_dev_filename.lstat; | 708 __nacl_irt_lstat = u.nacl_irt_dev_filename.lstat; |
690 __nacl_irt_link = u.nacl_irt_dev_filename.link; | 709 __nacl_irt_link = u.nacl_irt_dev_filename.link; |
691 __nacl_irt_rename = u.nacl_irt_dev_filename.rename; | 710 __nacl_irt_rename = u.nacl_irt_dev_filename.rename; |
692 __nacl_irt_symlink = u.nacl_irt_dev_filename.symlink; | 711 __nacl_irt_symlink = u.nacl_irt_dev_filename.symlink; |
693 __nacl_irt_chmod = u.nacl_irt_dev_filename.chmod; | 712 __nacl_irt_chmod = u.nacl_irt_dev_filename.chmod; |
694 __nacl_irt_access = u.nacl_irt_dev_filename.access; | 713 __nacl_irt_access = u.nacl_irt_dev_filename.access; |
695 __nacl_irt_readlink = u.nacl_irt_dev_filename.readlink; | 714 __nacl_irt_readlink = u.nacl_irt_dev_filename.readlink; |
696 __nacl_irt_utimes = u.nacl_irt_dev_filename.utimes; | 715 __nacl_irt_utimes = u.nacl_irt_dev_filename.utimes; |
697 } | 716 } |
698 else if (__nacl_irt_query && | 717 else if (__nacl_irt_query && |
699 __nacl_irt_query (NACL_IRT_DEV_FILENAME_v0_2, &u.nacl_irt_dev_filenam
e_v0_2, | 718 __nacl_irt_query (NACL_IRT_DEV_FILENAME_v0_2, |
700 sizeof(u.nacl_irt_dev_filename_v0_2)) == sizeof(u.n
acl_irt_dev_filename_v0_2)) | 719 &u.nacl_irt_dev_filename_v0_2, |
| 720 sizeof(u.nacl_irt_dev_filename_v0_2)) == |
| 721 sizeof(u.nacl_irt_dev_filename_v0_2)) |
701 { | 722 { |
702 __nacl_irt_mkdir = u.nacl_irt_dev_filename_v0_2.mkdir; | 723 __nacl_irt_mkdir = u.nacl_irt_dev_filename_v0_2.mkdir; |
703 __nacl_irt_chdir = u.nacl_irt_dev_filename_v0_2.chdir; | 724 __nacl_irt_chdir = u.nacl_irt_dev_filename_v0_2.chdir; |
704 __nacl_irt_rmdir = u.nacl_irt_dev_filename_v0_2.rmdir; | 725 __nacl_irt_rmdir = u.nacl_irt_dev_filename_v0_2.rmdir; |
705 __nacl_irt_getcwd = u.nacl_irt_dev_filename_v0_2.getcwd; | 726 __nacl_irt_getcwd = u.nacl_irt_dev_filename_v0_2.getcwd; |
706 __nacl_irt_unlink = u.nacl_irt_dev_filename_v0_2.unlink; | 727 __nacl_irt_unlink = u.nacl_irt_dev_filename_v0_2.unlink; |
707 __nacl_irt_truncate = not_implemented; | 728 __nacl_irt_truncate = not_implemented; |
708 __nacl_irt_lstat = not_implemented; | 729 __nacl_irt_lstat = not_implemented; |
709 __nacl_irt_link = not_implemented; | 730 __nacl_irt_link = not_implemented; |
710 __nacl_irt_rename = not_implemented; | 731 __nacl_irt_rename = not_implemented; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
760 __nacl_irt_getsockopt = not_implemented; | 781 __nacl_irt_getsockopt = not_implemented; |
761 __nacl_irt_setsockopt = not_implemented; | 782 __nacl_irt_setsockopt = not_implemented; |
762 __nacl_irt_socketpair = not_implemented; | 783 __nacl_irt_socketpair = not_implemented; |
763 __nacl_irt_shutdown = not_implemented; | 784 __nacl_irt_shutdown = not_implemented; |
764 } | 785 } |
765 | 786 |
766 size_t nacl_interface_query(const char *interface_ident, | 787 size_t nacl_interface_query(const char *interface_ident, |
767 void *table, size_t tablesize) { | 788 void *table, size_t tablesize) { |
768 return (*__nacl_irt_query)(interface_ident, table, tablesize); | 789 return (*__nacl_irt_query)(interface_ident, table, tablesize); |
769 } | 790 } |
OLD | NEW |