/* : : generated from /pbulk/work/shells/ksh93/work/ksh-1.0.10/src/lib/libast/features/fs by iffe version 2024-03-20 : : */
#ifndef _def_fs_ast
#define _def_fs_ast	1
#define _sys_types	1	/* #include <sys/types.h> ok */
#define _sys_stat	1	/* #include <sys/stat.h> ok */
#define _lib_mknod	1	/* mknod() in default lib(s) */
#define _lib_sync	1	/* sync() in default lib(s) */
#include <sys/stat.h>
#define FS_default	"ufs"
#define _hdr_stdio	1	/* #include <stdio.h> ok */
#define _sys_param	1	/* #include <sys/param.h> ok */
#define _sys_ucred	1	/* #include <sys/ucred.h> ok */
#define _sys_mount	1	/* #include <sys/mount.h> ok */
#define _sys_statvfs	1	/* #include <sys/statvfs.h> ok */
#define _mem_st_blocks_stat	1	/* st_blocks is a member of struct stat */
#define _mem_st_blksize_stat	1	/* st_blksize is a member of struct stat */
#define _mem_st_rdev_stat	1	/* st_rdev is a member of struct stat */
#define _mem_f_frsize_statvfs	1	/* f_frsize is a member of struct statvfs */
#define _lib_getmntinfo	1	/* getmntinfo() in default lib(s) */
#define _lib_statfs	1	/* statfs() in default lib(s) */
#define _lib_statvfs	1	/* statvfs() in default lib(s) */
#define _lib_getmntinfo_statvfs	1	/* getmntinfo uses statvfs -- since when? */
#define _lib_getfsstat_statvfs	1	/* getfsstat uses statvfs -- just in case it is confused like getmntinfo */
#define _lib_getfsstat 1	/* getfsstat() uses statvfs and compiles successfully */
#if _sys_statvfs
#include <sys/statvfs.h>
#if !_mem_statvfs_f_basetype
#if _ary_f_reserved7
#define f_basetype	f_reserved7
#endif
#endif
#else
#define _mem_f_basetype_statvfs	1
#define _mem_f_frsize_statvfs	1
struct statvfs
{
unsigned long	f_bsize;	/* fundamental file system block size */
unsigned long	f_frsize;	/* fragment size */
unsigned long	f_blocks;	/* total # of blocks of f_frsize on fs */
unsigned long	f_bfree;	/* total # of free blocks of f_frsize */
unsigned long	f_bavail;	/* # of free blocks avail to non-superuser */
unsigned long	f_files;	/* total # of file nodes (inodes) */
unsigned long	f_ffree;	/* total # of free file nodes */
unsigned long	f_favail;	/* # of free nodes avail to non-superuser */
unsigned long	f_fsid;		/* file system ID (dev for now) */
char		f_basetype[16]; /* target fs type name, null-terminated */
unsigned long	f_flag;		/* bit-mask of flags */
unsigned long	f_namemax;	/* maximum file name length */
char		f_fstr[32];	/* filesystem-specific string */
unsigned long	f_filler[16];	/* reserved for future expansion */
};
extern int	fstatvfs(int, struct statvfs*);
extern int	statvfs(const char*, struct statvfs*);
#endif

#endif
