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

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

Issue 832413004: [NaCl SDK] nacl_io: Change default root filesystem type from passthroughfs to memfs Base URL: https://chromium.googlesource.com/chromium/src.git@cleanup_path
Patch Set: Created 5 years, 11 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
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 "nacl_io/kernel_proxy.h" 5 #include "nacl_io/kernel_proxy.h"
6 6
7 #include <assert.h> 7 #include <assert.h>
8 #include <errno.h> 8 #include <errno.h>
9 #include <fcntl.h> 9 #include <fcntl.h>
10 #include <limits.h> 10 #include <limits.h>
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 delete i->second; 70 delete i->second;
71 } 71 }
72 } 72 }
73 73
74 Error KernelProxy::Init(PepperInterface* ppapi) { 74 Error KernelProxy::Init(PepperInterface* ppapi) {
75 Error rtn = 0; 75 Error rtn = 0;
76 ppapi_ = ppapi; 76 ppapi_ = ppapi;
77 dev_ = 1; 77 dev_ = 1;
78 78
79 factories_["memfs"] = new TypedFsFactory<MemFs>; 79 factories_["memfs"] = new TypedFsFactory<MemFs>;
80 factories_["devfs"] = new TypedFsFactory<DevFs>;
81 // 'devfs' used to be known as simply 'dev'
80 factories_["dev"] = new TypedFsFactory<DevFs>; 82 factories_["dev"] = new TypedFsFactory<DevFs>;
81 factories_["html5fs"] = new TypedFsFactory<Html5Fs>; 83 factories_["html5fs"] = new TypedFsFactory<Html5Fs>;
82 factories_["httpfs"] = new TypedFsFactory<HttpFs>; 84 factories_["httpfs"] = new TypedFsFactory<HttpFs>;
83 factories_["passthroughfs"] = new TypedFsFactory<PassthroughFs>; 85 factories_["passthroughfs"] = new TypedFsFactory<PassthroughFs>;
84 86
85 ScopedFilesystem root_fs; 87 ScopedFilesystem root_fs;
86 rtn = MountInternal("", "/", "passthroughfs", 0, NULL, false, &root_fs); 88 rtn = MountInternal("", "/", "memfs", 0, NULL, false, &root_fs);
89 if (rtn != 0)
90 return rtn;
91 rtn = this->mkdir("/dev", 0777);
87 if (rtn != 0) 92 if (rtn != 0)
88 return rtn; 93 return rtn;
89 94
90 ScopedFilesystem fs; 95 ScopedFilesystem fs;
91 rtn = MountInternal("", "/dev", "dev", 0, NULL, false, &fs); 96 rtn = MountInternal("", "/dev", "devfs", 0, NULL, false, &fs);
92 if (rtn != 0) 97 if (rtn != 0)
93 return rtn; 98 return rtn;
94 dev_fs_ = sdk_util::static_scoped_ref_cast<DevFs>(fs); 99 dev_fs_ = sdk_util::static_scoped_ref_cast<DevFs>(fs);
95 100
96 // Create the filesystem nodes for / and /dev afterward. They can't be 101 // Create the filesystem nodes for / and /dev afterward. They can't be
97 // created the normal way because the dev filesystem didn't exist yet. 102 // created the normal way because the dev filesystem didn't exist yet.
98 rtn = CreateFsNode(root_fs); 103 rtn = CreateFsNode(root_fs);
99 if (rtn != 0) 104 if (rtn != 0)
100 return rtn; 105 return rtn;
101 106
102 rtn = CreateFsNode(dev_fs_); 107 rtn = CreateFsNode(dev_fs_);
103 if (rtn != 0) 108 if (rtn != 0)
104 return rtn; 109 return rtn;
105 110
106 // Open the first three in order to get STDIN, STDOUT, STDERR 111 // Open the first three in order to get STDIN, STDOUT, STDERR
107 int fd; 112 int fd;
108 fd = open("/dev/stdin", O_RDONLY, 0); 113 fd = this->open("/dev/stdin", O_RDONLY, 0);
109 if (fd < 0) { 114 if (fd < 0) {
110 LOG_ERROR("failed to open /dev/stdin: %s", strerror(errno)); 115 LOG_ERROR("failed to open /dev/stdin: %s", strerror(errno));
111 return errno; 116 return errno;
112 } 117 }
113 assert(fd == 0); 118 assert(fd == 0);
114 119
115 fd = open("/dev/stdout", O_WRONLY, 0); 120 fd = this->open("/dev/stdout", O_WRONLY, 0);
116 if (fd < 0) { 121 if (fd < 0) {
117 LOG_ERROR("failed to open /dev/stdout: %s", strerror(errno)); 122 LOG_ERROR("failed to open /dev/stdout: %s", strerror(errno));
118 return errno; 123 return errno;
119 } 124 }
120 assert(fd == 1); 125 assert(fd == 1);
121 126
122 fd = open("/dev/stderr", O_WRONLY, 0); 127 fd = this->open("/dev/stderr", O_WRONLY, 0);
123 if (fd < 0) { 128 if (fd < 0) {
124 LOG_ERROR("failed to open /dev/sterr: %s", strerror(errno)); 129 LOG_ERROR("failed to open /dev/sterr: %s", strerror(errno));
125 return errno; 130 return errno;
126 } 131 }
127 assert(fd == 2); 132 assert(fd == 2);
128 133
129 #ifdef PROVIDES_SOCKET_API 134 #ifdef PROVIDES_SOCKET_API
130 host_resolver_.Init(ppapi_); 135 host_resolver_.Init(ppapi_);
131 #endif 136 #endif
132 137
(...skipping 1685 matching lines...) Expand 10 before | Expand all | Expand 10 after
1818 errno = ENOTSOCK; 1823 errno = ENOTSOCK;
1819 return -1; 1824 return -1;
1820 } 1825 }
1821 1826
1822 return 0; 1827 return 0;
1823 } 1828 }
1824 1829
1825 #endif // PROVIDES_SOCKET_API 1830 #endif // PROVIDES_SOCKET_API
1826 1831
1827 } // namespace_nacl_io 1832 } // namespace_nacl_io
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698