mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 00:14:25 +00:00
85 lines
2.6 KiB
C
85 lines
2.6 KiB
C
/*
|
|
Copyright 1983
|
|
Alcyon Corporation
|
|
8716 Production Ave.
|
|
San Diego, CA 92121
|
|
|
|
@(#) sys/stat.h - Jul 26, 1983 REGULUS 4.1
|
|
*/
|
|
|
|
long stat();
|
|
long fstat();
|
|
|
|
#define STATSIZE 32 /* REGULUS stat returns 32 bytes */
|
|
|
|
/* index record flags -- same as on the disk */
|
|
/* 0777 - owner, group, and public access bits */
|
|
|
|
#define FIDIR 0100000 /* directory */
|
|
#define FICHR 0040000 /* char special file */
|
|
#define FIBLK 0020000 /* block special file */
|
|
#define FINPIPE 0010000 /* named pipe (fifo) file */
|
|
#define FISUID 0004000 /* set user id upon execution */
|
|
#define FISGID 0002000 /* set group id upon execution */
|
|
#define FISTICKY 0001000 /* sticky file */
|
|
#define USRFBITS 0000777 /* access bits */
|
|
|
|
#define AREAD 4 /* file access read bit */
|
|
#define AWRITE 2 /* file access write bit */
|
|
#define AEXEC 1 /* file access execute bit */
|
|
|
|
#define ROOTIDB 2L /* root index record number */
|
|
|
|
/* this is the structure of a file indirect block */
|
|
/* 32 bytes are returned by stat and fstat. */
|
|
|
|
struct indblk {
|
|
int i_magic; /* magic number to id indirect blocks */
|
|
long i_size; /* file size */
|
|
int i_ownerid; /* file owner id */
|
|
char i_groupid; /* group id of file */
|
|
char i_nlinks; /* file reference count */
|
|
long i_moddate; /* file modification date and time */
|
|
long i_accdate; /* file access date and time */
|
|
int i_flags; /* file type and access mode */
|
|
long i_blkptr[2]; /* block # of data blocks */
|
|
/* first blk ptr contains major/minor device # */
|
|
/* for special files */
|
|
int i_notused;
|
|
int i_dev; /* device number where file resides */
|
|
};
|
|
|
|
/*
|
|
the majority of Unix programs that use stat or fstat should be
|
|
happy with the following defines, if not, they should use the
|
|
version 6 or version 7 interface libraries....
|
|
*/
|
|
|
|
struct stat {
|
|
int i_magic; /* magic number to id indirect blocks */
|
|
long st_size; /* file size */
|
|
int st_uid; /* file owner id */
|
|
char st_gid; /* group id of file */
|
|
char st_nlink; /* file reference count */
|
|
long st_mtime; /* file modification date and time */
|
|
long st_atime; /* file access date and time */
|
|
int st_mode; /* file type and access mode */
|
|
int i_nu1; /* pad for word */
|
|
int st_rdev; /* device for character and block devs */
|
|
long i_nu2; /* pad for block */
|
|
int i_nu3; /* pad for word */
|
|
int st_dev; /* device number where file resides */
|
|
};
|
|
#define S_IFMT (FIBLK|FICHR|FIDIR|FINPIPE)
|
|
#define S_IFDIR FIDIR
|
|
#define S_IFCHR FICHR
|
|
#define S_IFBLK FIBLK
|
|
#define S_IFREG 0
|
|
#define S_IFIFO FINPIPE
|
|
#define S_ISUID FISUID
|
|
#define S_ISGID FISGID
|
|
#define S_ISVTX FISTICKY
|
|
#define S_IREAD 0400
|
|
#define S_IWRITE 0200
|
|
#define S_IEXEC 0100
|