FreeBSD and statfs(2)

From: Date: Sun, 20 May 2001 01:25:13 +0000
Subject: FreeBSD and statfs(2)
Groups: php.dev 
Request: Send a blank email to php-dev+get-55934@lists.php.net to get a copy of this message
FreeBSD defines statfs(2) in sys/mount.h, not in sys/statsfs.h as PHP expects. The following patch corrects the use of statfs(2) under FreeBSD, allowing disk_free_space() and disk_total_space() to report meaningful values. Any objections (or suggestions) to this patch? In theory, it would be nice to unbreak these functions in PHP 4.0.6, too, but there's really no rush being these functions haven't worked under FreeBSD for quite some time, anyway. -- Jon Parise (jon@csh.rit.edu) . Rochester Inst. of Technology http://www.csh.rit.edu/~jon/ : Computer Science House Member

? config ? mount_h.patch ? ext/standard/new Index: configure.in =================================================================== RCS file: /repository/php4/configure.in,v retrieving revision 1.251 diff -u -r1.251 configure.in --- configure.in 2001/05/19 22:21:40 1.251 +++ configure.in 2001/05/20 01:19:33 @@ -303,6 +303,7 @@ sysexits.h \ sys/file.h \ sys/mman.h \ +sys/mount.h \ sys/resource.h \ sys/select.h \ sys/socket.h \ Index: ext/standard/filestat.c =================================================================== RCS file: /repository/php4/ext/standard/filestat.c,v retrieving revision 1.67 diff -u -r1.67 filestat.c --- ext/standard/filestat.c 2001/05/15 23:43:18 1.67 +++ ext/standard/filestat.c 2001/05/20 01:19:34 @@ -43,6 +43,8 @@ # include <sys/statvfs.h> #elif defined(HAVE_SYS_STATFS_H) && defined(HAVE_STATFS) # include <sys/statfs.h> +#elif defined(HAVE_SYS_MOUNT_H) && defined(HAVE_STATFS) +# include <sys/mount.h> #endif #if HAVE_PWD_H @@ -151,7 +153,7 @@ #else /* not - WINDOWS */ #if defined(HAVE_SYS_STATVFS_H) && defined(HAVE_STATVFS) struct statvfs buf; -#elif defined(HAVE_SYS_STATFS_H) && defined(HAVE_STATFS) +#elif (defined(HAVE_SYS_STATFS_H) || defined(HAVE_SYS_MOUNT_H)) && defined(HAVE_STATFS) struct statfs buf; #endif double bytestotal = 0; @@ -215,7 +217,7 @@ bytestotal = (((double)buf.f_blocks) * ((double)buf.f_bsize)); } -#elif defined(HAVE_SYS_STATFS_H) && defined(HAVE_STATFS) +#elif (defined(HAVE_SYS_STATFS_H) || defined(HAVE_SYS_MOUNT_H)) && defined(HAVE_STATFS) if (statfs((*path)->value.str.val,&buf)) RETURN_FALSE; bytestotal = (((double)buf.f_bsize) * ((double)buf.f_blocks)); #endif @@ -252,7 +254,7 @@ #else /* not - WINDOWS */ #if defined(HAVE_SYS_STATVFS_H) && defined(HAVE_STATVFS) struct statvfs buf; -#elif defined(HAVE_SYS_STATFS_H) && defined(HAVE_STATFS) +#elif (defined(HAVE_SYS_STATFS_H) || defined(HAVE_SYS_MOUNT_H)) && defined(HAVE_STATFS) struct statfs buf; #endif double bytesfree = 0; @@ -315,7 +317,7 @@ } else { bytesfree = (((double)buf.f_bavail) * ((double)buf.f_bsize)); } -#elif defined(HAVE_SYS_STATFS_H) && defined(HAVE_STATFS) +#elif (defined(HAVE_SYS_STATFS_H) || defined(HAVE_SYS_MOUNT_H)) && defined(HAVE_STATFS) if (statfs((*path)->value.str.val,&buf)) RETURN_FALSE; bytesfree = (((double)buf.f_bsize) * ((double)buf.f_bavail)); #endif
« previous php.dev (#55934) next »