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

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

Issue 659513004: Non-SFI Mode: Build base/ library by PNaCL toolchain for nacl_helper_nonsfi. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 "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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 #include "base/android/content_uri_utils.h" 52 #include "base/android/content_uri_utils.h"
53 #include "base/os_compat_android.h" 53 #include "base/os_compat_android.h"
54 #endif 54 #endif
55 55
56 #if !defined(OS_IOS) 56 #if !defined(OS_IOS)
57 #include <grp.h> 57 #include <grp.h>
58 #endif 58 #endif
59 59
60 namespace base { 60 namespace base {
61 61
62 #if !defined(__native_client_nonsfi__)
62 namespace { 63 namespace {
63 64
64 #if defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL) 65 #if defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL)
65 static int CallStat(const char *path, stat_wrapper_t *sb) { 66 static int CallStat(const char *path, stat_wrapper_t *sb) {
66 ThreadRestrictions::AssertIOAllowed(); 67 ThreadRestrictions::AssertIOAllowed();
67 return stat(path, sb); 68 return stat(path, sb);
68 } 69 }
69 static int CallLstat(const char *path, stat_wrapper_t *sb) { 70 static int CallLstat(const char *path, stat_wrapper_t *sb) {
70 ThreadRestrictions::AssertIOAllowed(); 71 ThreadRestrictions::AssertIOAllowed();
71 return lstat(path, sb); 72 return lstat(path, sb);
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 << current.value(); 339 << current.value();
339 } 340 }
340 341
341 current = traversal.Next(); 342 current = traversal.Next();
342 if (!current.empty()) 343 if (!current.empty())
343 from_stat = traversal.GetInfo().stat(); 344 from_stat = traversal.GetInfo().stat();
344 } 345 }
345 346
346 return success; 347 return success;
347 } 348 }
349 #endif // !defined(__native_client_nonsfi__)
348 350
349 bool PathExists(const FilePath& path) { 351 bool PathExists(const FilePath& path) {
350 ThreadRestrictions::AssertIOAllowed(); 352 ThreadRestrictions::AssertIOAllowed();
351 #if defined(OS_ANDROID) 353 #if defined(OS_ANDROID)
352 if (path.IsContentUri()) { 354 if (path.IsContentUri()) {
353 return ContentUriExists(path); 355 return ContentUriExists(path);
354 } 356 }
355 #endif 357 #endif
356 return access(path.value().c_str(), F_OK) == 0; 358 return access(path.value().c_str(), F_OK) == 0;
357 } 359 }
358 360
361 #if !defined(__native_client_nonsfi__)
359 bool PathIsWritable(const FilePath& path) { 362 bool PathIsWritable(const FilePath& path) {
360 ThreadRestrictions::AssertIOAllowed(); 363 ThreadRestrictions::AssertIOAllowed();
361 return access(path.value().c_str(), W_OK) == 0; 364 return access(path.value().c_str(), W_OK) == 0;
362 } 365 }
363 366
364 bool DirectoryExists(const FilePath& path) { 367 bool DirectoryExists(const FilePath& path) {
365 ThreadRestrictions::AssertIOAllowed(); 368 ThreadRestrictions::AssertIOAllowed();
366 stat_wrapper_t file_info; 369 stat_wrapper_t file_info;
367 if (CallStat(path.value().c_str(), &file_info) == 0) 370 if (CallStat(path.value().c_str(), &file_info) == 0)
368 return S_ISDIR(file_info.st_mode); 371 return S_ISDIR(file_info.st_mode);
369 return false; 372 return false;
370 } 373 }
374 #endif // !defined(__native_client_nonsfi__)
371 375
372 bool ReadFromFD(int fd, char* buffer, size_t bytes) { 376 bool ReadFromFD(int fd, char* buffer, size_t bytes) {
373 size_t total_read = 0; 377 size_t total_read = 0;
374 while (total_read < bytes) { 378 while (total_read < bytes) {
375 ssize_t bytes_read = 379 ssize_t bytes_read =
376 HANDLE_EINTR(read(fd, buffer + total_read, bytes - total_read)); 380 HANDLE_EINTR(read(fd, buffer + total_read, bytes - total_read));
377 if (bytes_read <= 0) 381 if (bytes_read <= 0)
378 break; 382 break;
379 total_read += bytes_read; 383 total_read += bytes_read;
380 } 384 }
381 return total_read == bytes; 385 return total_read == bytes;
382 } 386 }
383 387
388 #if !defined(__native_client_nonsfi__)
384 bool CreateSymbolicLink(const FilePath& target_path, 389 bool CreateSymbolicLink(const FilePath& target_path,
385 const FilePath& symlink_path) { 390 const FilePath& symlink_path) {
386 DCHECK(!symlink_path.empty()); 391 DCHECK(!symlink_path.empty());
387 DCHECK(!target_path.empty()); 392 DCHECK(!target_path.empty());
388 return ::symlink(target_path.value().c_str(), 393 return ::symlink(target_path.value().c_str(),
389 symlink_path.value().c_str()) != -1; 394 symlink_path.value().c_str()) != -1;
390 } 395 }
391 396
392 bool ReadSymbolicLink(const FilePath& symlink_path, FilePath* target_path) { 397 bool ReadSymbolicLink(const FilePath& symlink_path, FilePath* target_path) {
393 DCHECK(!symlink_path.empty()); 398 DCHECK(!symlink_path.empty());
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 if (IGNORE_EINTR(close(infile)) < 0) 918 if (IGNORE_EINTR(close(infile)) < 0)
914 result = false; 919 result = false;
915 if (IGNORE_EINTR(close(outfile)) < 0) 920 if (IGNORE_EINTR(close(outfile)) < 0)
916 result = false; 921 result = false;
917 922
918 return result; 923 return result;
919 } 924 }
920 #endif // !defined(OS_MACOSX) 925 #endif // !defined(OS_MACOSX)
921 926
922 } // namespace internal 927 } // namespace internal
928
929 #endif // !defined(__native_client_nonsfi__)
923 } // namespace base 930 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698