diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-02-13 18:31:00 -0800 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-02-13 18:40:35 -0800 |
commit | b65ce57675ecd983c85dd4d755fe0167f33ecc87 (patch) | |
tree | 581b9b0c656872023aefe9bc9fe59ffb05445953 /core/java | |
parent | 9de56d220e6fee092e6bc70b3649939f3c0bbda4 (diff) | |
download | frameworks_base-b65ce57675ecd983c85dd4d755fe0167f33ecc87.zip frameworks_base-b65ce57675ecd983c85dd4d755fe0167f33ecc87.tar.gz frameworks_base-b65ce57675ecd983c85dd4d755fe0167f33ecc87.tar.bz2 |
Expose longer statfs values, add derived values.
Since fsblkcnt_t is 8 bytes, provide methods to access larger value
instead of casting to int. This would start being an issue around
8TB filesystems.
Also add convenience methods to calculate values in bytes.
Change-Id: Ib924425d8d6d82785466f611ca71800cc1e952b6
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/os/StatFs.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/core/java/android/os/StatFs.java b/core/java/android/os/StatFs.java index ca7fdba..60ec0d7 100644 --- a/core/java/android/os/StatFs.java +++ b/core/java/android/os/StatFs.java @@ -65,6 +65,14 @@ public class StatFs { } /** + * The size, in bytes, of a block on the file system. This corresponds to + * the Unix {@code statfs.f_bsize} field. + */ + public long getBlockSizeLong() { + return mStat.f_bsize; + } + + /** * The total number of blocks on the file system. This corresponds to the * Unix {@code statfs.f_blocks} field. */ @@ -73,6 +81,14 @@ public class StatFs { } /** + * The size, in bytes, of a block on the file system. This corresponds to + * the Unix {@code statfs.f_bsize} field. + */ + public long getBlockCountLong() { + return mStat.f_blocks; + } + + /** * The total number of blocks that are free on the file system, including * reserved blocks (that are not available to normal applications). This * corresponds to the Unix {@code statfs.f_bfree} field. Most applications @@ -83,10 +99,44 @@ public class StatFs { } /** + * The total number of blocks that are free on the file system, including + * reserved blocks (that are not available to normal applications). This + * corresponds to the Unix {@code statfs.f_bfree} field. Most applications + * will want to use {@link #getAvailableBlocks()} instead. + */ + public long getFreeBlocksLong() { + return mStat.f_bfree; + } + + /** + * The number of bytes that are free on the file system, including + * reserved blocks (that are not available to normal applications). + */ + public long getFreeBytes() { + return mStat.f_bfree * mStat.f_bsize; + } + + /** * The number of blocks that are free on the file system and available to * applications. This corresponds to the Unix {@code statfs.f_bavail} field. */ public int getAvailableBlocks() { return (int) mStat.f_bavail; } + + /** + * The number of blocks that are free on the file system and available to + * applications. This corresponds to the Unix {@code statfs.f_bavail} field. + */ + public long getAvailableBlocksLong() { + return mStat.f_bavail; + } + + /** + * The number of bytes that are free on the file system and available to + * applications. + */ + public long getAvailableBytes() { + return mStat.f_bavail * mStat.f_bsize; + } } |