Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1212)

Side by Side Diff: native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc

Issue 474433005: [NaCl SDK] Remove syscalls wrappers for chmod and unlink. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <sys/types.h> // Include something that will define __GLIBC__. 5 #include <sys/types.h> // Include something that will define __GLIBC__.
6 6
7 // The entire file is wrapped in this #if. We do this so this .cc file can be 7 // The entire file is wrapped in this #if. We do this so this .cc file can be
8 // compiled, even on a non-glibc build. 8 // compiled, even on a non-glibc build.
9 #if defined(__native_client__) && defined(__GLIBC__) 9 #if defined(__native_client__) && defined(__GLIBC__)
10 10
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 OP(recv); \ 152 OP(recv); \
153 OP(recvmsg); \ 153 OP(recvmsg); \
154 OP(recvfrom); \ 154 OP(recvfrom); \
155 OP(getpeername); \ 155 OP(getpeername); \
156 OP(getsockname); \ 156 OP(getsockname); \
157 OP(getsockopt); \ 157 OP(getsockopt); \
158 OP(setsockopt); \ 158 OP(setsockopt); \
159 OP(socketpair); \ 159 OP(socketpair); \
160 OP(shutdown); \ 160 OP(shutdown); \
161 \ 161 \
162 OP(chmod); \
162 OP(access); \ 163 OP(access); \
163 OP(unlink); \ 164 OP(unlink); \
164 OP(fchdir); \ 165 OP(fchdir); \
165 OP(fchmod); \ 166 OP(fchmod); \
166 OP(fsync); \ 167 OP(fsync); \
167 OP(fdatasync); \ 168 OP(fdatasync); \
168 OP(lstat); \ 169 OP(lstat); \
170 OP(link); \
169 OP(readlink); \ 171 OP(readlink); \
170 OP(utimes); 172 OP(utimes);
171 173
172 // TODO(bradnelson): Add these as well. 174 // TODO(bradnelson): Add these as well.
173 // OP(epoll_create); 175 // OP(epoll_create);
174 // OP(epoll_create1); 176 // OP(epoll_create1);
175 // OP(epoll_ctl); 177 // OP(epoll_ctl);
176 // OP(epoll_pwait); 178 // OP(epoll_pwait);
177 // OP(ppoll); 179 // OP(ppoll);
178 // OP(pselect); 180 // OP(pselect);
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 330
329 int WRAP(lstat)(const char* pathname, struct nacl_abi_stat* nacl_buf) { 331 int WRAP(lstat)(const char* pathname, struct nacl_abi_stat* nacl_buf) {
330 struct stat buf; 332 struct stat buf;
331 memset(&buf, 0, sizeof(struct stat)); 333 memset(&buf, 0, sizeof(struct stat));
332 int res = ki_lstat(pathname, &buf); 334 int res = ki_lstat(pathname, &buf);
333 RTN_ERRNO_IF(res < 0); 335 RTN_ERRNO_IF(res < 0);
334 stat_to_nacl_stat(&buf, nacl_buf); 336 stat_to_nacl_stat(&buf, nacl_buf);
335 return 0; 337 return 0;
336 } 338 }
337 339
340 int WRAP(link)(const char* pathname, const char* newpath) {
341 ERRNO_RTN(ki_link(pathname, newpath));
342 }
343
338 int WRAP(readlink)(const char* pathname, 344 int WRAP(readlink)(const char* pathname,
339 char* buf, 345 char* buf,
340 size_t count, 346 size_t count,
341 size_t* nread) { 347 size_t* nread) {
342 int rtn = ki_readlink(pathname, buf, count); 348 int rtn = ki_readlink(pathname, buf, count);
343 RTN_ERRNO_IF(rtn < 0); 349 RTN_ERRNO_IF(rtn < 0);
344 *nread = rtn; 350 *nread = rtn;
345 return 0; 351 return 0;
346 } 352 }
347 353
348 int WRAP(utimes)(const char *filename, const struct timeval *times) { 354 int WRAP(utimes)(const char *filename, const struct timeval *times) {
349 ERRNO_RTN(ki_utimes(filename, times)); 355 ERRNO_RTN(ki_utimes(filename, times));
350 } 356 }
351 357
358 int WRAP(chmod)(const char* pathname, mode_t mode) {
359 ERRNO_RTN(ki_chmod(pathname, mode));
360 }
361
352 int WRAP(access)(const char* pathname, int amode) { 362 int WRAP(access)(const char* pathname, int amode) {
353 ERRNO_RTN(ki_access(pathname, amode)); 363 ERRNO_RTN(ki_access(pathname, amode));
354 } 364 }
355 365
356 int WRAP(unlink)(const char* pathname) { 366 int WRAP(unlink)(const char* pathname) {
357 ERRNO_RTN(ki_unlink(pathname)); 367 ERRNO_RTN(ki_unlink(pathname));
358 } 368 }
359 369
360 int WRAP(fchdir)(int fd) { 370 int WRAP(fchdir)(int fd) {
361 ERRNO_RTN(ki_fchdir(fd)); 371 ERRNO_RTN(ki_fchdir(fd));
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 if (!assigned) { 514 if (!assigned) {
505 EXPAND_SYMBOL_LIST_OPERATION(ASSIGN_REAL_PTR) 515 EXPAND_SYMBOL_LIST_OPERATION(ASSIGN_REAL_PTR)
506 assigned = true; 516 assigned = true;
507 } 517 }
508 } 518 }
509 519
510 #define CHECK_REAL(func) \ 520 #define CHECK_REAL(func) \
511 if (!REAL(func)) \ 521 if (!REAL(func)) \
512 assign_real_pointers(); 522 assign_real_pointers();
513 523
524 #define CHECK_REAL_NOSYS(func) \
525 CHECK_REAL(func) \
526 if (!REAL(func)) \
527 return ENOSYS;
528
514 // "real" functions, i.e. the unwrapped original functions. 529 // "real" functions, i.e. the unwrapped original functions.
515 530
516 int _real_close(int fd) { 531 int _real_close(int fd) {
517 CHECK_REAL(close); 532 CHECK_REAL(close);
518 return REAL(close)(fd); 533 return REAL(close)(fd);
519 } 534 }
520 535
521 void _real_exit(int status) { 536 void _real_exit(int status) {
522 CHECK_REAL(exit); 537 CHECK_REAL(exit);
523 REAL(exit)(status); 538 REAL(exit)(status);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 int _real_rmdir(const char* pathname) { 624 int _real_rmdir(const char* pathname) {
610 CHECK_REAL(rmdir); 625 CHECK_REAL(rmdir);
611 return REAL(rmdir)(pathname); 626 return REAL(rmdir)(pathname);
612 } 627 }
613 628
614 int _real_write(int fd, const void* buf, size_t count, size_t* nwrote) { 629 int _real_write(int fd, const void* buf, size_t count, size_t* nwrote) {
615 CHECK_REAL(write); 630 CHECK_REAL(write);
616 return REAL(write)(fd, buf, count, nwrote); 631 return REAL(write)(fd, buf, count, nwrote);
617 } 632 }
618 633
634 int _real_getcwd(char* pathname, size_t len) {
635 CHECK_REAL_NOSYS(getcwd);
636 return REAL(getcwd)(pathname, len);
637 }
638
619 static bool s_wrapped = false; 639 static bool s_wrapped = false;
620 void kernel_wrap_init() { 640 void kernel_wrap_init() {
621 if (!s_wrapped) { 641 if (!s_wrapped) {
622 LOG_TRACE("kernel_wrap_init"); 642 LOG_TRACE("kernel_wrap_init");
623 assign_real_pointers(); 643 assign_real_pointers();
624 EXPAND_SYMBOL_LIST_OPERATION(USE_WRAP) 644 EXPAND_SYMBOL_LIST_OPERATION(USE_WRAP)
625 s_wrapped = true; 645 s_wrapped = true;
626 } 646 }
627 } 647 }
628 648
629 void kernel_wrap_uninit() { 649 void kernel_wrap_uninit() {
630 if (s_wrapped) { 650 if (s_wrapped) {
631 LOG_TRACE("kernel_wrap_uninit"); 651 LOG_TRACE("kernel_wrap_uninit");
632 EXPAND_SYMBOL_LIST_OPERATION(USE_REAL) 652 EXPAND_SYMBOL_LIST_OPERATION(USE_REAL)
633 s_wrapped = false; 653 s_wrapped = false;
634 } 654 }
635 } 655 }
636 656
637 EXTERN_C_END 657 EXTERN_C_END
638 658
639 #endif // defined(__native_client__) && defined(__GLIBC__) 659 #endif // defined(__native_client__) && defined(__GLIBC__)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698