11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* $Id: bsd-statvfs.h,v 1.1 2008/06/08 17:32:29 dtucker Exp $ */ 21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood/* 41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Copyright (c) 2008 Darren Tucker <dtucker@zip.com.au> 51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 61305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * Permission to use, copy, modify, and distribute this software for any 71305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * purpose with or without fee is hereby granted, provided that the above 81305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * copyright notice and this permission notice appear in all copies. 91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * 101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER 151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood */ 181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include "includes.h" 201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <sys/types.h> 221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifdef HAVE_SYS_STATFS_H 241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#include <sys/statfs.h> 251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef HAVE_STATVFS 281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef HAVE_FSBLKCNT_T 301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long fsblkcnt_t; 311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef HAVE_FSFILCNT_T 331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtypedef unsigned long fsfilcnt_t; 341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef ST_RDONLY 371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ST_RDONLY 1 381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef ST_NOSUID 401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#define ST_NOSUID 2 411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood /* as defined in IEEE Std 1003.1, 2004 Edition */ 441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstruct statvfs { 451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long f_bsize; /* File system block size. */ 461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long f_frsize; /* Fundamental file system block size. */ 471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood fsblkcnt_t f_blocks; /* Total number of blocks on file system in */ 481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood /* units of f_frsize. */ 491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood fsblkcnt_t f_bfree; /* Total number of free blocks. */ 501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood fsblkcnt_t f_bavail; /* Number of free blocks available to */ 511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood /* non-privileged process. */ 521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood fsfilcnt_t f_files; /* Total number of file serial numbers. */ 531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood fsfilcnt_t f_ffree; /* Total number of free file serial numbers. */ 541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood fsfilcnt_t f_favail; /* Number of file serial numbers available to */ 551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood /* non-privileged process. */ 561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long f_fsid; /* File system ID. */ 571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long f_flag; /* BBit mask of f_flag values. */ 581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood unsigned long f_namemax;/* Maximum filename length. */ 591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}; 601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef HAVE_STATVFS 631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodint statvfs(const char *, struct statvfs *); 641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood 661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#ifndef HAVE_FSTATVFS 671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodint fstatvfs(int, struct statvfs *); 681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#endif 69