home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
f
/
fn32_101.zip
/
XSTAT.H
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-13
|
3KB
|
111 lines
/* xstat.h Copyright (C) Norman D. Culver 1992 All rights reserved */
#ifndef __XSTAT_
#define __XSTAT_
/* UNIX STYLE MODE BITS */
#ifndef __MODEBITS__
#define __MODEBITS__
#define _S_IRWXU 0000700
#define _S_IRUSR 0000400
#define _S_IWUSR 0000200
#define _S_IXUSR 0000100
#define _S_IREAD _S_IRUSR
#define _S_IWRITE _S_IWUSR
#define _S_IEXEC _S_IXUSR
#define _S_ISUID 0004000
#define _S_ISGID 0002000
#define _S_ISVTX 0001000
#define _S_IFMT 0170000
#define _SS_ISDIR 0040000
#define _S_IFDIR 0040000
#define _SS_ISCHR 0020000
#define _S_IFCHR 0020000
#define _S_IFIFO 0010000
#define _SS_ISBLK 0060000
#define _S_IFBLK 0060000
#define _SS_ISREG 0100000
#define _S_IFREG 0100000
#define _SS_ISFIFO 0010000
#define _S_IFLNK 0120000
#define _S_IFSOCK 0140000
#define _S_ISDIR(m) ((m & _S_IFMT) == _SS_ISDIR)
#define _S_ISCHR(m) ((m & _S_IFMT) == _SS_ISCHR)
#define _S_ISBLK(m) ((m & _S_IFMT) == _SS_ISBLK)
#define _S_ISREG(m) ((m & _S_IFMT) == _SS_ISREG)
#define _S_ISFIFO(m)((m & _S_IFMT) == _SS_ISFIFO)
#define _S_ISLNK(m) ((m & _S_IFMT) == _S_IFLNK)
#define _S_ISSOCK(m)((m & _S_IFMT) == _S_IFSOCK)
/* EXTENSIONS FOR DOS FORMAT FILES xmode */
#define _SS_RO 0x0001
#define _SS_HIDE 0x0002
#define _SS_SYST 0x0004
#define _SS_LABL 0x0008
#define _SS_SUBD 0x0010
#define _SS_ARCH 0x0020
#define _S_ISRO(x) (x & _SS_RO)
#define _S_ISHIDE(x) (x & _SS_HIDE)
#define _S_ISSYST(x) (x & _SS_SYST)
#define _S_ISLABL(x) (x & _SS_LABL)
#define _S_ISSUBD(x) (x & _SS_SUBD)
#define _S_ISARCH(x) (x & _SS_ARCH)
#endif /* __MODEBITS__ */
typedef struct
{
unsigned short cnt;
unsigned long block;
} STCHUNK;
typedef struct xstat
{
unsigned short st_dev; /* Logical device 0=a, 1=b etc. */
unsigned short st_ino; /* Unique identifier */
unsigned short st_mode; /* Unix style mode bits */
unsigned short st_nlink;
unsigned short st_uid;
unsigned short st_gid;
unsigned short st_rdev; /* Raw device number */
long st_size; /* EOF mark in file */
unsigned long st_atime;
unsigned long st_mtime;
unsigned long st_ctime;
unsigned short st_xmode; /* PCDOS attribute bits */
char st_sname[14]; /* short name */
unsigned short st_fattype; /* see definitions */
unsigned short st_blksize; /* Size in bytes of a block */
unsigned long st_blocks; /* Number of blocks allocated to file */
unsigned short st_chunkcnt; /* # of chunks allocated to file */
STCHUNK st_chunklist[1];/* Array usable for access with
x_abs_read(), x_abs_write() */
} _XSTAT;
/* st_fattype definitions */
#define NOFAT 0
#define BIT32 32
#define BIT24 24
#define BIT16 16
#define BIT12 12
extern _XSTAT _far * _far xxstat(char _far *path);
extern int _far xstat(char _far *path, _XSTAT _far *statbuf);
extern int _far xfstat(int fd, _XSTAT _far *statbuf);
extern void _far xstat_free(void _far *statbuf);
extern int _far x_abs_read(int dev, unsigned long blk, unsigned short blkcnt,
void _far *buf);
extern int _far x_abs_write(int dev, unsigned long blk, unsigned short blkcnt,
void _far *buf);
#endif /*__XSTAT_*/