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

Side by Side Diff: base/files/file_util_posix.cc

Issue 1056433002: Include DirectoryExists to libbase_nacl_nonsfi.a. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/files/file_util.h" 5 #include "base/files/file_util.h"
6 6
7 #include <dirent.h> 7 #include <dirent.h>
8 #include <errno.h> 8 #include <errno.h>
9 #include <fcntl.h> 9 #include <fcntl.h>
10 #include <libgen.h> 10 #include <libgen.h>
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 #include "base/android/content_uri_utils.h" 50 #include "base/android/content_uri_utils.h"
51 #include "base/os_compat_android.h" 51 #include "base/os_compat_android.h"
52 #endif 52 #endif
53 53
54 #if !defined(OS_IOS) 54 #if !defined(OS_IOS)
55 #include <grp.h> 55 #include <grp.h>
56 #endif 56 #endif
57 57
58 namespace base { 58 namespace base {
59 59
60 #if !defined(OS_NACL_NONSFI)
61 namespace { 60 namespace {
62 61
63 #if defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL) 62 #if defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL)
64 static int CallStat(const char *path, stat_wrapper_t *sb) { 63 static int CallStat(const char *path, stat_wrapper_t *sb) {
65 ThreadRestrictions::AssertIOAllowed(); 64 ThreadRestrictions::AssertIOAllowed();
66 return stat(path, sb); 65 return stat(path, sb);
67 } 66 }
68 static int CallLstat(const char *path, stat_wrapper_t *sb) { 67 static int CallLstat(const char *path, stat_wrapper_t *sb) {
69 ThreadRestrictions::AssertIOAllowed(); 68 ThreadRestrictions::AssertIOAllowed();
70 return lstat(path, sb); 69 return lstat(path, sb);
71 } 70 }
72 #else // defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL) 71 #else // defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL)
73 static int CallStat(const char *path, stat_wrapper_t *sb) { 72 static int CallStat(const char *path, stat_wrapper_t *sb) {
74 ThreadRestrictions::AssertIOAllowed(); 73 ThreadRestrictions::AssertIOAllowed();
75 return stat64(path, sb); 74 return stat64(path, sb);
76 } 75 }
77 static int CallLstat(const char *path, stat_wrapper_t *sb) { 76 static int CallLstat(const char *path, stat_wrapper_t *sb) {
78 ThreadRestrictions::AssertIOAllowed(); 77 ThreadRestrictions::AssertIOAllowed();
79 return lstat64(path, sb); 78 return lstat64(path, sb);
80 } 79 }
81 #endif // !(defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL)) 80 #endif // !(defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL))
82 81
82 #if !defined(OS_NACL_NONSFI)
83 // Helper for NormalizeFilePath(), defined below. 83 // Helper for NormalizeFilePath(), defined below.
84 bool RealPath(const FilePath& path, FilePath* real_path) { 84 bool RealPath(const FilePath& path, FilePath* real_path) {
85 ThreadRestrictions::AssertIOAllowed(); // For realpath(). 85 ThreadRestrictions::AssertIOAllowed(); // For realpath().
86 FilePath::CharType buf[PATH_MAX]; 86 FilePath::CharType buf[PATH_MAX];
87 if (!realpath(path.value().c_str(), buf)) 87 if (!realpath(path.value().c_str(), buf))
88 return false; 88 return false;
89 89
90 *real_path = FilePath(buf); 90 *real_path = FilePath(buf);
91 return true; 91 return true;
92 } 92 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 void* mapping = mmap(NULL, pagesize, PROT_READ, MAP_SHARED, fd.get(), 0); 175 void* mapping = mmap(NULL, pagesize, PROT_READ, MAP_SHARED, fd.get(), 0);
176 if (mapping != MAP_FAILED) { 176 if (mapping != MAP_FAILED) {
177 if (mprotect(mapping, pagesize, PROT_READ | PROT_EXEC) == 0) 177 if (mprotect(mapping, pagesize, PROT_READ | PROT_EXEC) == 0)
178 result = true; 178 result = true;
179 munmap(mapping, pagesize); 179 munmap(mapping, pagesize);
180 } 180 }
181 } 181 }
182 return result; 182 return result;
183 } 183 }
184 #endif // defined(OS_LINUX) 184 #endif // defined(OS_LINUX)
185 #endif // !defined(OS_NACL_NONSFI)
185 186
186 } // namespace 187 } // namespace
187 188
189 #if !defined(OS_NACL_NONSFI)
188 FilePath MakeAbsoluteFilePath(const FilePath& input) { 190 FilePath MakeAbsoluteFilePath(const FilePath& input) {
189 ThreadRestrictions::AssertIOAllowed(); 191 ThreadRestrictions::AssertIOAllowed();
190 char full_path[PATH_MAX]; 192 char full_path[PATH_MAX];
191 if (realpath(input.value().c_str(), full_path) == NULL) 193 if (realpath(input.value().c_str(), full_path) == NULL)
192 return FilePath(); 194 return FilePath();
193 return FilePath(full_path); 195 return FilePath(full_path);
194 } 196 }
195 197
196 // TODO(erikkay): The Windows version of this accepts paths like "foo/bar/*" 198 // TODO(erikkay): The Windows version of this accepts paths like "foo/bar/*"
197 // which works both with and without the recursive flag. I'm not sure we need 199 // which works both with and without the recursive flag. I'm not sure we need
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 } 358 }
357 #endif 359 #endif
358 return access(path.value().c_str(), F_OK) == 0; 360 return access(path.value().c_str(), F_OK) == 0;
359 } 361 }
360 362
361 #if !defined(OS_NACL_NONSFI) 363 #if !defined(OS_NACL_NONSFI)
362 bool PathIsWritable(const FilePath& path) { 364 bool PathIsWritable(const FilePath& path) {
363 ThreadRestrictions::AssertIOAllowed(); 365 ThreadRestrictions::AssertIOAllowed();
364 return access(path.value().c_str(), W_OK) == 0; 366 return access(path.value().c_str(), W_OK) == 0;
365 } 367 }
368 #endif // !defined(OS_NACL_NONSFI)
366 369
367 bool DirectoryExists(const FilePath& path) { 370 bool DirectoryExists(const FilePath& path) {
368 ThreadRestrictions::AssertIOAllowed(); 371 ThreadRestrictions::AssertIOAllowed();
369 stat_wrapper_t file_info; 372 stat_wrapper_t file_info;
370 if (CallStat(path.value().c_str(), &file_info) == 0) 373 if (CallStat(path.value().c_str(), &file_info) == 0)
371 return S_ISDIR(file_info.st_mode); 374 return S_ISDIR(file_info.st_mode);
372 return false; 375 return false;
373 } 376 }
374 #endif // !defined(OS_NACL_NONSFI)
375 377
376 bool ReadFromFD(int fd, char* buffer, size_t bytes) { 378 bool ReadFromFD(int fd, char* buffer, size_t bytes) {
377 size_t total_read = 0; 379 size_t total_read = 0;
378 while (total_read < bytes) { 380 while (total_read < bytes) {
379 ssize_t bytes_read = 381 ssize_t bytes_read =
380 HANDLE_EINTR(read(fd, buffer + total_read, bytes - total_read)); 382 HANDLE_EINTR(read(fd, buffer + total_read, bytes - total_read));
381 if (bytes_read <= 0) 383 if (bytes_read <= 0)
382 break; 384 break;
383 total_read += bytes_read; 385 total_read += bytes_read;
384 } 386 }
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 return false; 923 return false;
922 924
923 DeleteFile(from_path, true); 925 DeleteFile(from_path, true);
924 return true; 926 return true;
925 } 927 }
926 928
927 } // namespace internal 929 } // namespace internal
928 930
929 #endif // !defined(OS_NACL_NONSFI) 931 #endif // !defined(OS_NACL_NONSFI)
930 } // namespace base 932 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698