OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #ifndef BASE_OS_COMPAT_ANDROID_H_ | 5 #ifndef BASE_OS_COMPAT_ANDROID_H_ |
6 #define BASE_OS_COMPAT_ANDROID_H_ | 6 #define BASE_OS_COMPAT_ANDROID_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <fcntl.h> | 9 #include <fcntl.h> |
10 #include <sys/types.h> | 10 #include <sys/types.h> |
| 11 #include <time64.h> |
11 #include <utime.h> | 12 #include <utime.h> |
12 | 13 |
13 // Not implemented in Bionic. See platform_file_android.cc. | 14 // Not implemented in Bionic. See platform_file_android.cc. |
14 extern "C" int futimes(int fd, const struct timeval tv[2]); | 15 extern "C" int futimes(int fd, const struct timeval tv[2]); |
15 | 16 |
16 // The prototype of mkdtemp is missing. | 17 // The prototype of mkdtemp is missing. |
17 extern "C" char* mkdtemp(char* path); | 18 extern "C" char* mkdtemp(char* path); |
18 | 19 |
19 // The lockf() function is not available on Android; we translate to flock(). | 20 // The lockf() function is not available on Android; we translate to flock(). |
20 #define F_LOCK LOCK_EX | 21 #define F_LOCK LOCK_EX |
21 #define F_ULOCK LOCK_UN | 22 #define F_ULOCK LOCK_UN |
22 inline int lockf(int fd, int cmd, off_t ignored_len) { | 23 inline int lockf(int fd, int cmd, off_t ignored_len) { |
23 return flock(fd, cmd); | 24 return flock(fd, cmd); |
24 } | 25 } |
25 | 26 |
| 27 // Android has only timegm64() and no timegm(). |
| 28 inline time_t timegm(struct tm* const tmp) { |
| 29 return static_cast<time_t>(timegm64(tmp)); |
| 30 } |
| 31 |
26 #endif // BASE_OS_COMPAT_ANDROID_H_ | 32 #endif // BASE_OS_COMPAT_ANDROID_H_ |
OLD | NEW |