From 79d62892adee7627dc6e58cb5240b0d1068c19f9 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Wed, 23 Jun 2010 23:46:10 +0000 Subject: [PATCH] includes: statvfs support, contributed by Buccapatnam Tirumala, Gautam --- include/minix/types.h | 2 ++ include/sys/Makefile | 4 ++-- include/sys/statvfs.h | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 include/sys/statvfs.h diff --git a/include/minix/types.h b/include/minix/types.h index dd325d662..e130467ee 100644 --- a/include/minix/types.h +++ b/include/minix/types.h @@ -100,6 +100,8 @@ typedef short nlink_t; /* number of links to a file */ typedef long off_t; /* offset within a file */ typedef int pid_t; /* process id (must be signed) */ typedef short uid_t; /* user id */ +typedef unsigned long fsblkcnt_t; /* File system block count */ +typedef unsigned long fsfilcnt_t; /* File system file count */ /* Signal handler type, e.g. SIG_IGN */ typedef void _PROTOTYPE( (*sighandler_t), (int) ); diff --git a/include/sys/Makefile b/include/sys/Makefile index e6c948ca3..d06942eaa 100644 --- a/include/sys/Makefile +++ b/include/sys/Makefile @@ -7,8 +7,8 @@ INCS= asynchio.h dir.h file.h ioc_cmos.h ioc_disk.h \ ioctl.h ioc_tty.h ipc.h jmp_buf.h kbdio.h mman.h \ mount.h mtio.h param.h ptrace.h queue.h resource.h \ select.h sem.h shm.h sigcontext.h signal.h socket.h \ - soundcard.h statfs.h stat.h svrctl.h timeb.h \ + soundcard.h statfs.h statvfs.h stat.h svrctl.h timeb.h \ time.h times.h types.h ucontext.h uio.h un.h utsname.h video.h vm.h \ - wait.h cdefs.h + wait.h cdefs.h .include diff --git a/include/sys/statvfs.h b/include/sys/statvfs.h new file mode 100644 index 000000000..79eee2932 --- /dev/null +++ b/include/sys/statvfs.h @@ -0,0 +1,35 @@ +/* Statvfs implementation corresponding to: + * http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/statvfs.h.html + */ + +#ifndef _STATVFS_H +#define _STATVFS_H + +#include + + +struct statvfs { + unsigned long f_bsize; /* File system block size. */ + unsigned long f_frsize; /* Fundamental file system block size. */ + fsblkcnt_t f_blocks; /* Total number of blocks on file system */ + /* in units of f_frsize. */ + fsblkcnt_t f_bfree; /* Total number of free blocks. */ + fsblkcnt_t f_bavail; /* Number of free blocks available to */ + /* non-privileged process. */ + fsfilcnt_t f_files; /* Total number of file serial numbers. */ + fsfilcnt_t f_ffree; /* Total number of free file serial numbers. */ + fsfilcnt_t f_favail; /* Number of file serial numbers available */ + /* to non-privileged process. */ + unsigned long f_fsid; /* File system ID. */ + unsigned long f_flag; /* Bit mask of f_flag values. */ + unsigned long f_namemax; /* Maximum filename length. */ + unsigned char __padding[32]; /* Padding for future compatibility */ +}; + +_PROTOTYPE( int fstatvfs, (int fd, struct statvfs *st) ); +_PROTOTYPE( int statvfs, (const char *path, struct statvfs *st)); + +/* Possible values for statvfs->f_flag */ +#define ST_RDONLY 0x1 +#define ST_NOSUID 0x2 +#endif /* _STAVTFS_H */ -- 2.44.0