Chromium Code Reviews| 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 { |
|
Mark Seaborn
2014/03/14 17:56:45
This should be indented deeper
hamaji
2014/03/14 18:31:37
Done.
| |
| 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 |