|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
|
2 // Use of this source code is governed by a BSD-style license that can be |
|
3 // found in the LICENSE file. |
|
4 |
|
5 #ifndef BASE_DIR_READER_POSIX_H_ |
|
6 #define BASE_DIR_READER_POSIX_H_ |
|
7 #pragma once |
|
8 |
|
9 #include "build/build_config.h" |
|
10 |
|
11 // This header provides a class, DirReaderPosix, which allows one to open and |
|
12 // read from directories without allocating memory. For the interface, see |
|
13 // the generic fallback in dir_reader_fallback.h. |
|
14 |
|
15 // Mac note: OS X has getdirentries, but it only works if we restrict Chrome to |
|
16 // 32-bit inodes. There is a getdirentries64 syscall in 10.6, but it's not |
|
17 // wrapped and the direct syscall interface is unstable. Using an unstable API |
|
18 // seems worse than falling back to enumerating all file descriptors so we will |
|
19 // probably never implement this on the Mac. |
|
20 |
|
21 #if defined(OS_LINUX) |
|
22 #include "base/dir_reader_linux.h" |
|
23 #elif defined(OS_BSD) && !defined(__GLIBC__) |
|
24 #include "base/dir_reader_bsd.h" |
|
25 #else |
|
26 #include "base/dir_reader_fallback.h" |
|
27 #endif |
|
28 |
|
29 namespace base { |
|
30 |
|
31 #if defined(OS_LINUX) |
|
32 typedef DirReaderLinux DirReaderPosix; |
|
33 #elif defined(OS_BSD) && !defined(__GLIBC__) |
|
34 typedef DirReaderBSD DirReaderPosix; |
|
35 #else |
|
36 typedef DirReaderFallback DirReaderPosix; |
|
37 #endif |
|
38 |
|
39 } // namespace base |
|
40 |
|
41 #endif // BASE_DIR_READER_POSIX_H_ |