Browse Source

@ - Fix disk_free_space() and disk_total_space() under FreeBSD. (jon)

FreeBSD defines statfs(2) in <sys/mount.h>.  Teach PHP to look for it there.
experimental/pre_new_hash_func
Jon Parise 25 years ago
parent
commit
311278f273
  1. 1
      configure.in
  2. 10
      ext/standard/filestat.c

1
configure.in

@ -303,6 +303,7 @@ syslog.h \
sysexits.h \
sys/file.h \
sys/mman.h \
sys/mount.h \
sys/resource.h \
sys/select.h \
sys/socket.h \

10
ext/standard/filestat.c

@ -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 @@ PHP_FUNCTION(disk_total_space)
#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 @@ PHP_FUNCTION(disk_total_space)
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 @@ PHP_FUNCTION(disk_free_space)
#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 @@ PHP_FUNCTION(disk_free_space)
} 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

Loading…
Cancel
Save