diff options
Diffstat (limited to 'dom/system/gonk/nsVolumeStat.cpp')
-rw-r--r-- | dom/system/gonk/nsVolumeStat.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/dom/system/gonk/nsVolumeStat.cpp b/dom/system/gonk/nsVolumeStat.cpp new file mode 100644 index 000000000..11976237f --- /dev/null +++ b/dom/system/gonk/nsVolumeStat.cpp @@ -0,0 +1,33 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsVolumeStat.h" +#include "nsString.h" + +namespace mozilla { +namespace system { + +NS_IMPL_ISUPPORTS(nsVolumeStat, nsIVolumeStat) + +nsVolumeStat::nsVolumeStat(const nsAString& aPath) +{ + if (statfs(NS_ConvertUTF16toUTF8(aPath).get(), &mStat) != 0) { + memset(&mStat, 0, sizeof(mStat)); + } +} + +NS_IMETHODIMP nsVolumeStat::GetTotalBytes(int64_t* aTotalBytes) +{ + *aTotalBytes = mStat.f_blocks * mStat.f_bsize; + return NS_OK; +} + +NS_IMETHODIMP nsVolumeStat::GetFreeBytes(int64_t* aFreeBytes) +{ + *aFreeBytes = mStat.f_bfree * mStat.f_bsize; + return NS_OK; +} + +} // system +} // mozilla |