mirror of
https://github.com/aaru-dps/docs.git
synced 2025-12-16 19:24:38 +00:00
Added XENIX structures definitions
This commit is contained in:
100
xenix.h
Normal file
100
xenix.h
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
#define S_S3MAGIC 0x2b5544 /* system 3 arbitrary magic value */
|
||||||
|
#define S_CLEAN 0106 /* arbitrary magic value */
|
||||||
|
|
||||||
|
/* s_type, block size of file system */
|
||||||
|
#define S_B512 1 /* 512 byte block */
|
||||||
|
#define S_B1024 2 /* 1024 byte block */
|
||||||
|
|
||||||
|
/* codes for file system version (for utilities) */
|
||||||
|
#define S_V2 1 /* version 7 */
|
||||||
|
#define S_V3 2 /* system 3 */
|
||||||
|
|
||||||
|
/* Note: DIRSIZ must be even, or else add
|
||||||
|
* filler byte to direct struct.
|
||||||
|
*/
|
||||||
|
#define DIRSIZ 14
|
||||||
|
|
||||||
|
#define NICINOD 100 /* number of superblock inodes */
|
||||||
|
|
||||||
|
#ifdef LISA
|
||||||
|
|
||||||
|
#define NICFREE 50 /* number of superblock free blocks */
|
||||||
|
#define NSBFILL 51 /* aligns s_magic & s_type at end of SB blk */
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define NICFREE 100 /* number of superblock free blocks */
|
||||||
|
|
||||||
|
#ifdef XENIX_2.2.1e
|
||||||
|
|
||||||
|
#define NSBFILL 370 /* aligns s_magic & s_type at end of SB blk */
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define NSBFILL 371 /* aligns s_magic, .. at end of super block */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef long daddr_t; /* disc address */
|
||||||
|
typedef unsigned short ino_t; /* i-node number */
|
||||||
|
typedef long time_t; /* time (seconds) */
|
||||||
|
typedef long off_t; /* offset in file */
|
||||||
|
|
||||||
|
struct filsys
|
||||||
|
{
|
||||||
|
ushort s_isize; /* size in blocks of i-list */
|
||||||
|
daddr_t s_fsize; /* size in blocks of entire volume */
|
||||||
|
short s_nfree; /* number of addresses in s_free */
|
||||||
|
daddr_t s_free[NICFREE]; /* free block list */
|
||||||
|
short s_ninode; /* number of i-nodes in s_inode */
|
||||||
|
ino_t s_inode[NICINOD]; /* free i-node list */
|
||||||
|
char s_flock; /* lock during free list manipulation */
|
||||||
|
char s_ilock; /* lock during i-list manipulation */
|
||||||
|
char s_fmod; /* super block modified flag */
|
||||||
|
char s_ronly; /* mounted read-only flag */
|
||||||
|
time_t s_time; /* last super block update */
|
||||||
|
daddr_t s_tfree; /* total free blocks*/
|
||||||
|
ino_t s_tinode; /* total free inodes */
|
||||||
|
short s_dinfo[4]; /* device information */
|
||||||
|
char s_fname[6]; /* file system name */
|
||||||
|
char s_fpack[6]; /* file system pack name */
|
||||||
|
/* remainder is maintained for xenix */
|
||||||
|
char s_clean; /* S_CLEAN if structure is properly closed */
|
||||||
|
char s_fill[NSBFILL];/* space to make sizeof filsys be BSIZE */
|
||||||
|
long s_magic; /* indicates version of filsys */
|
||||||
|
long s_type; /* type of new file system */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct fblk
|
||||||
|
{
|
||||||
|
short df_nfree;
|
||||||
|
daddr_t df_free[NICFREE];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct direct
|
||||||
|
{
|
||||||
|
ino_t d_ino;
|
||||||
|
char d_name[DIRSIZ];
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Inode structure as it appears on a disk block. */
|
||||||
|
struct dinode
|
||||||
|
{
|
||||||
|
ushort di_mode; /* mode and type of file */
|
||||||
|
short di_nlink; /* number of links to file */
|
||||||
|
ushort di_uid; /* owner's user id */
|
||||||
|
ushort di_gid; /* owner's group id */
|
||||||
|
off_t di_size; /* number of bytes in file */
|
||||||
|
char di_addr[40]; /* disk block addresses */
|
||||||
|
time_t di_atime; /* time last accessed */
|
||||||
|
time_t di_mtime; /* time last modified */
|
||||||
|
time_t di_ctime; /* time created */
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
* the 40 address bytes:
|
||||||
|
* 39 used; 13 addresses
|
||||||
|
* of 3 bytes each.
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user