/*
 *	sys/statvfs.h
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2014 Naoyuki Sawa
 *
 *	* Sun Sep 07 20:09:27 JST 2014 Naoyuki Sawa
 *	- 新規作成。
 *	* Wed Nov 18 21:37:53 JST 2015 Naoyuki Sawa
 *	- 'extern "C" {'〜'}'で囲みました。.cppを含むWin32プロジェクトからもインクルード出来るようにするためです。
 */
#ifndef __SYS_STATVFS_H__
#define __SYS_STATVFS_H__

#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus

struct statvfs {
	unsigned long	f_bsize;	/* file system block size */			//(BLOCKSIZE)固定
	unsigned long	f_frsize;	/* fundamental file system block size */	//(BLOCKSIZE)固定
	fsblkcnt_t	f_blocks;	/* number of blocks (unit f_frsize) */		//(MAXFAT)以下
	fsblkcnt_t	f_bfree;	/* free blocks in file system */		//(f_blocks)以下
	fsblkcnt_t	f_bavail;	/* free blocks for non-root */			//(f_bfree)と同じ
	fsfilcnt_t	f_files;	/* total file inodes */				//(MAXDIR)固定
	fsfilcnt_t	f_ffree;	/* free file inodes */				//(f_files)以下
	fsfilcnt_t	f_favail;	/* free file inodes for to non-root */		//(f_ffree)と同じ
	unsigned long	f_fsid;		/* file system id */				//(0)固定
	unsigned long	f_flag;		/* bit mask of f_flag values */			//(0)固定
	unsigned long	f_namemax;	/* maximum filename length */			//(FIELD_SIZEOF(DIRECTORY,name)-1)固定	(24-1)=23です。P/ECE APIで扱えるファイル名は(8+1+3)=12文字以下ですが、DIRECTORY構造体には23文字格納できるので、23とすることにしました。
};

/* statvfs.f_flag */
#define ST_RDONLY	0x0001UL	/* read-only filesystem */
#define ST_NOSUID	0x0002UL	/* nosuid flag set */

int statvfs(const char* path, struct statvfs* buf);	//⇒clipio.c
int fstatvfs(int fd, struct statvfs* buf);		//⇒clipio.c

#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus

#endif/*__SYS_STATVFS_H__*/
