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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
diff --git a/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc b/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
index ed2ab0c404d9368089c6aa2afbca2f2edbeac3b1..0cc3e9045fddc6e1cc4a02b7bd3fec372c3d232c 100644
--- a/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
+++ b/native_client_sdk/src/libraries/nacl_io/kernel_wrap_glibc.cc
@@ -159,6 +159,7 @@ EXTERN_C_BEGIN
OP(socketpair); \
OP(shutdown); \
\
+ OP(chmod); \
OP(access); \
OP(unlink); \
OP(fchdir); \
@@ -166,6 +167,7 @@ EXTERN_C_BEGIN
OP(fsync); \
OP(fdatasync); \
OP(lstat); \
+ OP(link); \
OP(readlink); \
OP(utimes);
@@ -335,6 +337,10 @@ int WRAP(lstat)(const char* pathname, struct nacl_abi_stat* nacl_buf) {
return 0;
}
+int WRAP(link)(const char* pathname, const char* newpath) {
+ ERRNO_RTN(ki_link(pathname, newpath));
+}
+
int WRAP(readlink)(const char* pathname,
char* buf,
size_t count,
@@ -349,6 +355,10 @@ int WRAP(utimes)(const char *filename, const struct timeval *times) {
ERRNO_RTN(ki_utimes(filename, times));
}
+int WRAP(chmod)(const char* pathname, mode_t mode) {
+ ERRNO_RTN(ki_chmod(pathname, mode));
+}
+
int WRAP(access)(const char* pathname, int amode) {
ERRNO_RTN(ki_access(pathname, amode));
}
@@ -511,6 +521,11 @@ static void assign_real_pointers() {
if (!REAL(func)) \
assign_real_pointers();
+#define CHECK_REAL_NOSYS(func) \
+ CHECK_REAL(func) \
+ if (!REAL(func)) \
+ return ENOSYS;
+
// "real" functions, i.e. the unwrapped original functions.
int _real_close(int fd) {
@@ -616,6 +631,11 @@ int _real_write(int fd, const void* buf, size_t count, size_t* nwrote) {
return REAL(write)(fd, buf, count, nwrote);
}
+int _real_getcwd(char* pathname, size_t len) {
+ CHECK_REAL_NOSYS(getcwd);
+ return REAL(getcwd)(pathname, len);
+}
+
static bool s_wrapped = false;
void kernel_wrap_init() {
if (!s_wrapped) {

Powered by Google App Engine
This is Rietveld 408576698