10b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes/* 2438cb9e440d250c8aa5daf4fae0c400dce8b1499Elliott Hughes * Copyright (C) 2011 The Android Open Source Project 30b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * 40b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * Licensed under the Apache License, Version 2.0 (the "License"); 50b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * you may not use this file except in compliance with the License. 60b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * You may obtain a copy of the License at 70b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * 80b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 90b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * 100b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * Unless required by applicable law or agreed to in writing, software 110b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 120b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * See the License for the specific language governing permissions and 140b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes * limitations under the License. 150b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes */ 160b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes 175d930cadc8f62aee5f18e7921296fe66a54f18abElliott Hughespackage android.system; 180b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes 19fe77f817b540f2a66c17486a618bb9083a22070eElliott Hughesimport libcore.util.Objects; 20fe77f817b540f2a66c17486a618bb9083a22070eElliott Hughes 210b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes/** 2234721e8e0051258e87848bae25baf50722b4c76aElliott Hughes * File information returned by {@link Os#fstatvfs} and {@link Os#statvfs}. 230b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes */ 24a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughespublic final class StructStatVfs { 25a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** File system block size (used for block counts). */ 26a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_bsize; /*unsigned long*/ 27a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 28a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Fundamental file system block size. */ 29a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_frsize; /*unsigned long*/ 30a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 31a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Total block count. */ 32a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_blocks; /*fsblkcnt_t*/ 33a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 34a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Free block count. */ 35a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_bfree; /*fsblkcnt_t*/ 36a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 37a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Free block count available to non-root. */ 38a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_bavail; /*fsblkcnt_t*/ 39a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 40a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Total file (inode) count. */ 41a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_files; /*fsfilcnt_t*/ 42a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 43a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Free file (inode) count. */ 44a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_ffree; /*fsfilcnt_t*/ 45a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 46a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Free file (inode) count available to non-root. */ 47a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_favail; /*fsfilcnt_t*/ 48a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 49a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** File system id. */ 50a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_fsid; /*unsigned long*/ 51a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 52a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Bit mask of ST_* flags. */ 53a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_flag; /*unsigned long*/ 54a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 55a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes /** Maximum filename length. */ 56a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes public final long f_namemax; /*unsigned long*/ 57a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes 5834721e8e0051258e87848bae25baf50722b4c76aElliott Hughes /** 5934721e8e0051258e87848bae25baf50722b4c76aElliott Hughes * Constructs an instance with the given field values. 6034721e8e0051258e87848bae25baf50722b4c76aElliott Hughes */ 615d930cadc8f62aee5f18e7921296fe66a54f18abElliott Hughes public StructStatVfs(long f_bsize, long f_frsize, long f_blocks, long f_bfree, long f_bavail, 62a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes long f_files, long f_ffree, long f_favail, 63a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes long f_fsid, long f_flag, long f_namemax) { 64a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_bsize = f_bsize; 65a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_frsize = f_frsize; 66a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_blocks = f_blocks; 67a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_bfree = f_bfree; 68a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_bavail = f_bavail; 69a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_files = f_files; 70a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_ffree = f_ffree; 71a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_favail = f_favail; 72a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_fsid = f_fsid; 73a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_flag = f_flag; 74a2fac5bc3fc5c182e738aa4f3fcc64bb38dfbf5fElliott Hughes this.f_namemax = f_namemax; 755d930cadc8f62aee5f18e7921296fe66a54f18abElliott Hughes } 76fe77f817b540f2a66c17486a618bb9083a22070eElliott Hughes 77fe77f817b540f2a66c17486a618bb9083a22070eElliott Hughes @Override public String toString() { 78fe77f817b540f2a66c17486a618bb9083a22070eElliott Hughes return Objects.toString(this); 79fe77f817b540f2a66c17486a618bb9083a22070eElliott Hughes } 800b29a1fecc601de2f642ded891726ac3e460d74bElliott Hughes} 81