/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ /* * Copyright (c) 1985 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Copyright (c) 1988-1997, by Sun Microsystems, Inc. * All Rights reserved. */ /*LINTLIBRARY*/ #include #include #include #include #if !defined(_LP64) static void cnvtvfs64(struct statfs64 *buf, struct statvfs64 *vbuf) { buf->f_type = 0; buf->f_bsize = vbuf->f_frsize; buf->f_blocks = vbuf->f_blocks; buf->f_bfree = vbuf->f_bfree; buf->f_bavail = vbuf->f_bavail; buf->f_files = vbuf->f_files; buf->f_ffree = vbuf->f_ffree; buf->f_fsid.val[0] = vbuf->f_fsid; buf->f_fsid.val[1] = 0; } int statfs64(char *path, struct statfs64 *buf) { int ret; struct statvfs64 vbuf; if ((long)buf == -1L) { errno = EFAULT; return (-1); } if ((ret = statvfs64(path, &vbuf)) != -1) cnvtvfs64(buf, &vbuf); return (ret); } int fstatfs64(int fd, struct statfs64 *buf) { int ret; struct statvfs64 vbuf; if ((ret = fstatvfs64(fd, &vbuf)) != -1) cnvtvfs64(buf, &vbuf); return (ret); } #endif static void cnvtvfs(struct statfs *buf, struct statvfs *vbuf) { buf->f_type = 0; buf->f_bsize = vbuf->f_frsize; buf->f_blocks = vbuf->f_blocks; buf->f_bfree = vbuf->f_bfree; buf->f_bavail = vbuf->f_bavail; buf->f_files = vbuf->f_files; buf->f_ffree = vbuf->f_ffree; buf->f_fsid.val[0] = vbuf->f_fsid; buf->f_fsid.val[1] = 0; } int statfs(char *path, struct statfs *buf) { int ret; struct statvfs vbuf; if ((long)buf == -1L) { errno = EFAULT; return (-1); } if ((ret = statvfs(path, &vbuf)) != -1) cnvtvfs(buf, &vbuf); return (ret); } int fstatfs(int fd, struct statfs *buf) { int ret; struct statvfs vbuf; if ((ret = fstatvfs(fd, &vbuf)) != -1) cnvtvfs(buf, &vbuf); return (ret); }