* cygwin.din (fstatvfs): Export.

(statvfs): Export.
	* syscalls.cc: Include sys/statvfs.h.
	(statvfs): New function.  Move statfs functionality here.
	(fstatvfs): New function.
	(statfs): Just call statvfs and copy structure.  Check validity of
	incoming struct statfs pointer.
	* include/cygwin/types.h (fsblkcnt_t): Define.
	(fsfilcnt_t): Define.
	* include/cygwin/version.h: Bump API minor version.
	* include/sys/statvfs.h: New file.
This commit is contained in:
Corinna Vinschen
2005-02-23 13:12:43 +00:00
parent e5ef74dfb2
commit a652e6d52a
6 changed files with 113 additions and 7 deletions

View File

@ -66,6 +66,16 @@ typedef __blkcnt32_t blkcnt_t;
#endif
#endif /*__blkcnt_t_defined*/
#ifndef __fsblkcnt_t_defined
#define __fsblkcnt_t_defined
typedef unsigned long fsblkcnt_t;
#endif /* __fsblkcnt_t_defined */
#ifndef __fsfilcnt_t_defined
#define __fsfilcnt_t_defined
typedef unsigned long fsfilcnt_t;
#endif /* __fsfilcnt_t_defined */
#ifndef __uid_t_defined
#define __uid_t_defined
typedef unsigned short __uid16_t;

View File

@ -248,12 +248,13 @@ details. */
118: Export getpriority, setpriority.
119: Export fdatasync.
120: Export basename, dirname.
121: Export statvfs, fstatvfs.
*/
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
#define CYGWIN_VERSION_API_MAJOR 0
#define CYGWIN_VERSION_API_MINOR 120
#define CYGWIN_VERSION_API_MINOR 121
/* There is also a compatibity version number associated with the
shared memory regions. It is incremented when incompatible

View File

@ -0,0 +1,41 @@
/* sys/statvfs.h
Copyright 2005 Red Hat, Inc.
This file is part of Cygwin.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#ifndef _SYS_STATVFS_H_
#define _SYS_STATVFS_H_
#include <sys/types.h>
struct statvfs {
unsigned long f_bsize; /* file system block size */
unsigned long f_frsize; /* fragment size */
fsblkcnt_t f_blocks; /* size of fs in f_frsize units */
fsblkcnt_t f_bfree; /* free blocks in fs */
fsblkcnt_t f_bavail; /* free blocks avail to non-superuser */
fsfilcnt_t f_files; /* total file nodes in file system */
fsfilcnt_t f_ffree; /* free file nodes in fs */
fsfilcnt_t f_favail; /* avail file nodes in fs */
unsigned long f_fsid; /* file system id */
unsigned long f_flag; /* mount flags */
unsigned long f_namemax; /* maximum length of filenames */
};
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
int statvfs (const char *__path, struct statvfs *__buf);
int fstatvfs (int __fd, struct statvfs *__buf);
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /*_SYS_STATVFS_H_*/