mirror of
https://github.com/aaru-dps/docs.git
synced 2025-12-16 11:14:37 +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