filesystem man page on Xenix

Man page or keyword search:  
man Server   1130 pages
apropos Keyword Search (all sections)
Output format
Xenix logo
[printable version]



     FILESYSTEM(F)	      XENIX System V		 FILESYSTEM(F)

     Name
	  file system - Format of a system volume.

     Syntax
	  #include <sys/filsys.h>
	  #include <sys/types.h>
	  #include <sys/param.h>

     Description
	  Every file system storage volume (for example, a hard disk)
	  has a common format for certain vital information.  Every
	  such volume is divided into a certain number of 256 word
	  (512 byte) blocks.  Block 0 is unused and is available to
	  contain a bootstrap program or other information.

	  Block 1 is the super-block.  The format of a super-block is
	  described in /usr/include/sys/filesys.h.  In that include
	  file, S_isize is the address of the first data block after
	  the i-list.  The i-list starts just after the super-block in
	  block 2; thus the i-list is s_isize-2 blocks long.  S_fsize
	  is the first block not potentially available for allocation
	  to a file.  These numbers are used by the system to check
	  for bad block numbers.  If an ``impossible'' block number is
	  allocated from the free list or is freed, a diagnostic is
	  written on the console.  Moreover, the free array is cleared
	  so as to prevent further allocation from a presumably
	  corrupted free list.

	  The free list for each volume is maintained as follows.  The
	  s_free array contains, in s_free[1], ..., s_free[s_nfree-1],
	  up to 49 numbers of free blocks.  S_free[0] is the block
	  number of the head of a chain of blocks constituting the
	  free list.  The first long in each free-chain block is the
	  number (up to 50) of free-block numbers listed in the next
	  50 longs of this chain member.  The first of these 50 blocks
	  is the link to the next member of the chain.	To allocate a
	  block: decrement s_nfree, and the new block is
	  s_free[s_nfree].  If the new block number is 0, there are no
	  blocks left, so give an error.  If s_nfree becomes 0, read
	  in the block named by the new block number, replace s_nfree
	  by its first word, and copy the block numbers in the next 50
	  longs into the s_free array.	To free a block, check if
	  s_nfree is 50; if so, copy s_nfree and the s_free array into
	  it, write it out, and set s_nfree to 0.  In any event set
	  s_free[s_nfree] to the freed block's number and increment
	  s_nfree.

	  S_tfree is the total free blocks available in the file
	  system.

	  S_ninode is the number of free i-numbers in the s_inode
	  array.  To allocate an inode: if s_ninode is greater than 0,

     Page 1					      (printed 8/7/87)

     FILESYSTEM(F)	      XENIX System V		 FILESYSTEM(F)

	  decrement it and return s_inode[s_ninode].  If it was 0,
	  read the i-list and place the numbers of all free inodes (up
	  to 100) into the s_inode array, then try again.  To free an
	  inode, provided s_ninode is less than 100, place its number
	  into s_inode[s_ninode] and increment s_ninode.  If s_ninode
	  is already 100, do not bother to enter the freed inode into
	  any table.  This list of inodes only speeds up the
	  allocation process. The information about whether the inode
	  is really free is maintained in the inode itself.

	  S_tinode is the total free inodes available in the file
	  system.

	  S_flock and s_ilock are flags maintained in the core copy of
	  the file system while it is mounted and their values on disk
	  are immaterial.  The value of s_fmod on disk is also
	  immaterial, and is used as a flag to indicate that the
	  super-block has changed and should be copied to the disk
	  during the next periodic update of file system information.

	  S_ronly is a read-only flag to indicate write-protection.

	  S_time is the last time the super-block of the file system
	  was changed, and is a double precision representation of the
	  number of seconds that have elapsed since 00:00 Jan. 1, 1970
	  (GMT).  During a reboot, the s_time of the super-block for
	  the root file system is used to set the system's idea of the
	  time.

	  I-numbers begin at 1, and the storage for inodes begins in
	  block 2.  Also, inodes are 64 bytes long, so 8 of them fit
	  into a block.	 Therefore, inode i is located in block
	  (i+15)/8, and begins 64x((i+15) (mod 8)) bytes from its
	  start.  Inode 1 is reserved for future use.  Inode 2 is
	  reserved for the root directory of the file system, but no
	  other i-number has a built-in meaning.  Each inode
	  represents one file.	For the format of an inode and its
	  flags, see inode(F).

     Files
	  /usr/include/sys/filsys.h

	  /usr/include/sys/stat.h

     See Also
	  fsck(C), mkfs(C), inode(F)

     Page 2					      (printed 8/7/87)

[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Xenix

List of man pages available for Xenix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net