14887Schinset prototyped 24887Schinlib _fxstat,__fxstat,_lxstat,__lxstat,_xmknod,__xmknod,_xstat,__xstat,lstat,mknod,sync sys/types.h sys/stat.h 34887Schinlib _fxstat64,__fxstat64,_lxstat64,__lxstat64,_xstat64,__xstat64 -D_LARGEFILE64_SOURCE sys/types.h sys/stat.h 44887Schinmac fstat,lstat,stat,mknod sys/types.h sys/stat.h 54887Schin 64887Schinlcl xstat -D_LARGEFILE64_SOURCE link{ 74887Schin #include <sys/types.h> 84887Schin #include <sys/stat.h> 94887Schin struct stat64 { int xxx; }; /* disable if stat64 available */ 104887Schin #if _STD_ 114887Schin extern int stat(const char* path, struct stat* st) 124887Schin #else 134887Schin int stat(path, st) 144887Schin char* path; 154887Schin struct stat* st; 164887Schin #endif 174887Schin { 184887Schin #if _lib___xstat 194887Schin return __xstat(_STAT_VER, path, st); 204887Schin #else 214887Schin return _xstat(_STAT_VER, path, st); 224887Schin #endif 234887Schin } 244887Schin int 254887Schin main() 264887Schin { 274887Schin struct stat st; 284887Schin return stat(".",&st) < 0; 294887Schin } 304887Schin}end 314887Schin 324887Schinlcl xstat64 -D_LARGEFILE64_SOURCE link{ 334887Schin #include <sys/types.h> 344887Schin #include <sys/stat.h> 354887Schin #if _STD_ 364887Schin extern int stat64(const char* path, struct stat64* st) 374887Schin #else 384887Schin int stat64(path, st) 394887Schin char* path; 404887Schin #endif 414887Schin { 424887Schin #if _lib___xstat64 434887Schin return __xstat64(_STAT_VER, path, st); 444887Schin #else 454887Schin return _xstat64(_STAT_VER, path, st); 464887Schin #endif 474887Schin } 484887Schin int 494887Schin main() 504887Schin { 514887Schin struct stat64 st; 524887Schin return stat64(".",&st) < 0; 534887Schin } 544887Schin}end 554887Schin 564887Schinheader sys/stat.h 578462SApril.Chin@Sun.COMheader sys/mkdev.h 584887Schin 594887Schinextern chmod int (const char*, mode_t) 604887Schinextern fstat int (int, struct stat*) 614887Schinextern lstat int (const char*, struct stat*) 624887Schinextern mkdir int (const char*, mode_t) 634887Schinextern mkfifo int (const char*, mode_t) 644887Schinextern mknod int (const char*, mode_t, dev_t) 654887Schinextern stat int (const char*, struct stat*) 664887Schinextern mkfifo mode_t (mode_t) 674887Schin 684887Schindefine FS_default "ufs" 694887Schin 704887Schinmacro{ 714887Schin #include <sys/types.h> 724887Schin #include <sys/stat.h> 734887Schin #ifndef major 744887Schin #include <sys/param.h> 754887Schin #ifndef major 764887Schin #include <sys/sysmacros.h> 774887Schin #endif 784887Schin <<"#if defined(__STDPP__directive) && defined(__STDPP__initial)">> 794887Schin <<"__STDPP__directive pragma pp:initial">> 804887Schin <<"#endif">> 814887Schin <<"#ifndef major">> 824887Schin #ifdef major 834887Schin <<"#define major(x)">> major((x)) 844887Schin #else 854887Schin #ifndef L_BITSMAJOR 864887Schin #define L_BITSMAJOR 8 874887Schin #endif 884887Schin #ifndef L_BITSMINOR 894887Schin #define L_BITSMINOR 8 904887Schin #endif 914887Schin #ifndef L_MAXMAJ 924887Schin #define L_MAXMAJ ((1<<L_BITSMAJOR)-1) 934887Schin #endif 944887Schin #ifndef L_MAXMIN 954887Schin #define L_MAXMIN ((1<<L_BITSMINOR)-1) 964887Schin #endif 974887Schin <<"#define major(x)">> ((int)(((unsigned)(x)>>L_BITSMINOR)&L_MAXMAJ)) 984887Schin #endif 994887Schin <<"#endif">> 1004887Schin <<"#ifndef minor">> 1014887Schin #ifdef minor 1024887Schin <<"#define minor(x)">> minor((x)) 1034887Schin #else 1044887Schin <<"#define minor(x)">> ((int)((x)&L_MAXMIN)) 1054887Schin #endif 1064887Schin <<"#endif">> 1074887Schin <<"#ifndef makedev">> 1084887Schin #ifdef makedev 1094887Schin <<"#define makedev(x,y)">> makedev((x),(y)) 1104887Schin #else 1114887Schin <<"#define makedev(x,y)">> ((dev_t)((((x)&0377)<<8)|((y)&0377))) 1124887Schin #endif 1134887Schin <<"#endif">> 1144887Schin #endif 1154887Schin <<"#if defined(__STDPP__directive) && defined(__STDPP__initial)">> 1164887Schin <<"__STDPP__directive pragma pp:noinitial">> 1174887Schin <<"#endif">> 1184887Schin}end fail{ 1194887Schin cat <<! 1204887Schin #ifndef major 1214887Schin #define major(x) ((int)(((unsigned)(x)>>8)&0377)) 1224887Schin #endif 1234887Schin #ifndef minor 1244887Schin #define minor(x) ((int)((x)&0377)) 1254887Schin #endif 1264887Schin #ifndef makedev 1274887Schin #define makedev(x,y) ((dev_t)((((x)&0377)<<8)|((y)&0377))) 1284887Schin #endif 1294887Schin ! 1304887Schin}end 1314887Schin 132*12068SRoger.Faulkner@Oracle.COMhdr mntent,mnttab stdio.h 133*12068SRoger.Faulkner@Oracle.COMsys mntent,mnttab stdio.h 134*12068SRoger.Faulkner@Oracle.COMsys fs_types,mount,statfs,statvfs,vfs,vmount 135*12068SRoger.Faulkner@Oracle.COM 1364887Schinmem mnttab.mt_dev,mnttab.mt_filsys,mnttab.mt_fstyp sys/types.h mnttab.h 1374887Schinmem mntent.mnt_opts,w_mntent.mnt_opts,mnttab.mnt_opts sys/types.h stdio.h mntent.h sys/mntent.h 138*12068SRoger.Faulkner@Oracle.COMmem mntent.mnt_opts,mnttab.mnt_opts stdio.h sys/types.h mnttab.h sys/mnttab.h 1394887Schinmem stat.st_blocks,stat.st_blksize,stat.st_rdev sys/types.h sys/stat.h 1404887Schinmem statfs.f_files,statfs.f_bavail sys/types.h - sys/statfs.h - sys/vfs.h - sys/param.h sys/mount.h 1414887Schinmem statvfs.f_basetype,statvfs.f_frsize sys/types.h sys/statvfs.h 1424887Schin 1434887Schinary f_reserved7 sys/types.h sys/statvfs.h note{ statvfs.f_reserved7 can double for statvfs.f_basetype }end compile{ 1444887Schin int f(vp)struct statvfs* vp;{return vp->f_reserved7[0] = 1;} 1454887Schin}end 1464887Schin 1474887Schinlib getmntent,getmntinfo,mntctl,mntopen,mntread,mntclose,setmntent 1484887Schinlib w_getmntent 1494887Schinlib statfs,statvfs 1504887Schin 1514887Schinlib statfs4 sys/types.h - sys/statfs.h - sys/vfs.h - sys/mount.h compile{ 1524887Schin int f() 1534887Schin { 1544887Schin struct statfs fs; 1554887Schin return statfs("/",&fs,sizeof(fs),0); 1564887Schin } 1574887Schin}end 1584887Schin 1594887Schinlib getmntinfo_statvfs note{ getmntinfo uses statvfs -- since when? }end compile{ 1604887Schin #include <sys/types.h> 1614887Schin #include <sys/mount.h> 1624887Schin int 1634887Schin gmi(struct statvfs* fs) 1644887Schin { 1654887Schin fs->f_flag = 0; 1664887Schin return getmntinfo(fs, 0); 1674887Schin } 1684887Schin}end 1694887Schin 1704887Schincat{ 1714887Schin #if _sys_statvfs 1724887Schin #include <sys/statvfs.h> 1734887Schin #if !_mem_statvfs_f_basetype 1744887Schin #if _ary_f_reserved7 1754887Schin #define f_basetype f_reserved7 1764887Schin #endif 1774887Schin #endif 1784887Schin #else 1794887Schin #define _mem_f_basetype_statvfs 1 1804887Schin #define _mem_f_frsize_statvfs 1 1814887Schin struct statvfs 1824887Schin { 1834887Schin unsigned long f_bsize; /* fundamental file system block size */ 1844887Schin unsigned long f_frsize; /* fragment size */ 1854887Schin unsigned long f_blocks; /* total # of blocks of f_frsize on fs */ 1864887Schin unsigned long f_bfree; /* total # of free blocks of f_frsize */ 1874887Schin unsigned long f_bavail; /* # of free blocks avail to non-superuser */ 1884887Schin unsigned long f_files; /* total # of file nodes (inodes) */ 1894887Schin unsigned long f_ffree; /* total # of free file nodes */ 1904887Schin unsigned long f_favail; /* # of free nodes avail to non-superuser */ 1914887Schin unsigned long f_fsid; /* file system id (dev for now) */ 1924887Schin char f_basetype[16]; /* target fs type name, null-terminated */ 1934887Schin unsigned long f_flag; /* bit-mask of flags */ 1944887Schin unsigned long f_namemax; /* maximum file name length */ 1954887Schin char f_fstr[32]; /* filesystem-specific string */ 1964887Schin unsigned long f_filler[16]; /* reserved for future expansion */ 1974887Schin }; 1984887Schin extern int fstatvfs(int, struct statvfs*); 1994887Schin extern int statvfs(const char*, struct statvfs*); 2004887Schin #endif 2014887Schin #if _typ_off64_t 2024887Schin #undef off_t 2034887Schin #define off_t off64_t 2044887Schin #endif 2054887Schin #if _lib_statvfs64 && !defined(statvfs) 2064887Schin #define statvfs statvfs64 2074887Schin #if !defined(__USE_LARGEFILE64) 2084887Schin extern int statvfs64(const char*, struct statvfs64*); 2094887Schin #endif 2104887Schin #endif 2114887Schin #if _lib_fstatvfs64 && !defined(fstatvfs) 2124887Schin #define fstatvfs fstatvfs64 2134887Schin #if !defined(__USE_LARGEFILE64) 2144887Schin extern int fstatvfs64(int, struct statvfs64*); 2154887Schin #endif 2164887Schin #endif 2174887Schin}end 2184887Schin 2194887Schinstr st_fstype sys/types.h sys/stat.h note{ stat.st_fstype is a string }end compile{ 2204887Schin int f(st)struct stat* st;{return st->st_fstype[0];} 2214887Schin}end 2224887Schin 2234887Schinint st_fstype sys/types.h sys/stat.h note{ stat.st_fstype is an int }end compile{ 2244887Schin int f(st)struct stat* st;{return st->st_fstype = 1;} 2254887Schin}end 2264887Schin 2274887Schinint st_spare1 sys/types.h sys/stat.h note{ stat.st_spare1 is an int }end compile{ 2284887Schin int f(st)struct stat* st;{return st->st_spare1 = 1;} 2294887Schin}end 2304887Schin 2314887Schinary st_spare4 sys/types.h sys/stat.h note{ stat.st_spare4 is an array }end compile{ 2324887Schin int f(st)struct stat* st;{return st->st_spare4[0] = 1;} 2334887Schin}end 2344887Schin 2354887Schinary st_pad4 sys/types.h sys/stat.h note{ stat.st_pad4 is an array }end compile{ 2364887Schin int f(st)struct stat* st;{return st->st_pad4[0] = 1;} 2374887Schin}end 238