~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/libs/port/fstatvfs.c

Version: ~ [ wine-1.1.40 ] ~ [ wine-1.1.39 ] ~ [ wine-1.1.38 ] ~ [ wine-1.1.37 ] ~ [ wine-1.1.36 ] ~ [ wine-1.1.35 ] ~ [ wine-1.1.34 ] ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * fstatvfs function
  3  *
  4  * Copyright 2004 Alexandre Julliard
  5  *
  6  * This library is free software; you can redistribute it and/or
  7  * modify it under the terms of the GNU Lesser General Public
  8  * License as published by the Free Software Foundation; either
  9  * version 2.1 of the License, or (at your option) any later version.
 10  *
 11  * This library is distributed in the hope that it will be useful,
 12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 14  * Lesser General Public License for more details.
 15  *
 16  * You should have received a copy of the GNU Lesser General Public
 17  * License along with this library; if not, write to the Free Software
 18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 19  */
 20 
 21 #include "config.h"
 22 #include "wine/port.h"
 23 
 24 #ifndef HAVE_FSTATVFS
 25 
 26 #include <sys/types.h>
 27 #include <sys/stat.h>
 28 #include <errno.h>
 29 #ifdef HAVE_SYS_PARAM_H
 30 # include <sys/param.h>
 31 #endif
 32 #ifdef HAVE_SYS_VFS_H
 33 # include <sys/vfs.h>
 34 #endif
 35 #ifdef HAVE_SYS_MOUNT_H
 36 # include <sys/mount.h>
 37 #endif
 38 #ifdef HAVE_SYS_STATFS_H
 39 # include <sys/statfs.h>
 40 #endif
 41 
 42 int fstatvfs( int fd, struct statvfs *buf )
 43 {
 44     int ret;
 45 #ifdef HAVE_FSTATFS
 46     struct statfs info;
 47 
 48 /* FIXME: add autoconf check for this */
 49 #if defined(__svr4__) || defined(_SCO_DS) || defined(__sun)
 50     ret = fstatfs( fd, &info, 0, 0 );
 51 #else
 52     ret = fstatfs( fd, &info );
 53 #endif
 54     if (ret >= 0)
 55     {
 56         memset( buf, 0, sizeof(*buf) );
 57         buf->f_bsize   = info.f_bsize;
 58         buf->f_blocks  = info.f_blocks;
 59         buf->f_files   = info.f_files;
 60 #ifdef HAVE_STRUCT_STATFS_F_NAMELEN
 61         buf->f_namemax = info.f_namelen;
 62 #endif
 63 #ifdef HAVE_STRUCT_STATFS_F_FRSIZE
 64         buf->f_frsize  = info.f_frsize;
 65 #else
 66         buf->f_frsize  = info.f_bsize;
 67 #endif
 68 #ifdef HAVE_STRUCT_STATFS_F_BFREE
 69         buf->f_bfree   = info.f_bfree;
 70 #else
 71         buf->f_bfree   = info.f_bavail;
 72 #endif
 73 #ifdef HAVE_STRUCT_STATFS_F_BAVAIL
 74         buf->f_bavail  = info.f_bavail;
 75 #else
 76         buf->f_bavail  = info.f_bfree;
 77 #endif
 78 #ifdef HAVE_STRUCT_STATFS_F_FFREE
 79         buf->f_ffree   = info.f_ffree;
 80 #else
 81         buf->f_ffree   = info.f_favail;
 82 #endif
 83 #ifdef HAVE_STRUCT_STATFS_F_FAVAIL
 84         buf->f_favail  = info.f_favail;
 85 #else
 86         buf->f_favail  = info.f_ffree;
 87 #endif
 88     }
 89 #else  /* HAVE_FSTATFS */
 90     ret = -1;
 91     errno = ENOSYS;
 92 #endif  /* HAVE_FSTATFS */
 93     return ret;
 94 }
 95 
 96 #endif /* HAVE_FSTATVFS */
 97 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.