diff options
| author | Mehdi Amini <mehdi.amini@apple.com> | 2016-04-01 00:18:08 +0000 |
|---|---|---|
| committer | Mehdi Amini <mehdi.amini@apple.com> | 2016-04-01 00:18:08 +0000 |
| commit | e2d8f1b8fc42b611e267a47563645e4029e0d75f (patch) | |
| tree | c158ef1f93947571400e4f052c9e73a6f8eeb4f2 /llvm/lib/Support/Windows | |
| parent | b8089516a5e5eae6aff3bdaef426cccd6355c0c5 (diff) | |
| download | bcm5719-llvm-e2d8f1b8fc42b611e267a47563645e4029e0d75f.tar.gz bcm5719-llvm-e2d8f1b8fc42b611e267a47563645e4029e0d75f.zip | |
Add disk_space() to llvm::fs
Summary: Adapted from Boost::filesystem.
(This is a reapply by reverting commit r265080 and fixing the WinAPI part)
Differential Revision: http://reviews.llvm.org/D18467
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 265082
Diffstat (limited to 'llvm/lib/Support/Windows')
| -rw-r--r-- | llvm/lib/Support/Windows/Path.inc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index 98fd7b0034a..068ed357819 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -151,6 +151,19 @@ UniqueID file_status::getUniqueID() const { return UniqueID(VolumeSerialNumber, FileID); } +ErrorOr<space_info> disk_space(const Twine &Path) { + ULARGE_INTEGER Avail, Total, Free; + if (!::GetDiskFreeSpaceExA(Path.str().c_str(), &Avail, &Total, &Free)) + return mapWindowsError(::GetLastError()); + space_info SpaceInfo; + SpaceInfo.capacity = + (static_cast<uint64_t>(Total.HighPart) << 32) + Total.LowPart; + SpaceInfo.Free = (static_cast<uint64_t>(Free.HighPart) << 32) + Free.LowPart; + SpaceInfo.available = + (static_cast<uint64_t>(Avail.HighPart) << 32) + Avail.LowPart; + return SpaceInfo; +} + TimeValue file_status::getLastAccessedTime() const { ULARGE_INTEGER UI; UI.LowPart = LastAccessedTimeLow; |

