*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> inode (4)              


inode(4)							      inode(4)

NAME    [Toc]    [Back]

     inode - format of an Extent File System inode

SYNOPSIS    [Toc]    [Back]

     #include <sys/param.h>
     #include <sys/fs/efs_ino.h>

DESCRIPTION    [Toc]    [Back]

     An	inode is the volume data structure used	by the Extent File System
     (EFS) to implement	the abstraction	of a file.  (This is not to be
     confused with the in-core inode used by the operating system to manage
     memory-resident EFS files.)

     An	inode contains the type	(for example, plain file, directory, symbolic
     link, or device file) of the file;	its owner, group, and public access
     permissions; the owner and	group ID numbers; its size in bytes; the
     number of links (directory	references) to the file; and the times of last
     access and	last modification to the file.	In addition, there is a	list
     of	data blocks claimed by the file.

     An	inode under the	Extent File System has the following structure.

	  #define   EFS_DIRECTEXTENTS	12

	   * Extent based filesystem inode as it appears on disk.
	   * The efs inode is 128 bytes	long.
	  struct    efs_dinode {
	       ushort	 di_mode;	/* type	and access permissions */
	       short	 di_nlink;	/* number of links */
	       ushort	 di_uid;	/* owner's user	ID number */
	       ushort	 di_gid;	/* group's group ID number */
	       off_t	 di_size;	/* number of bytes in file */
	       time_t	 di_atime;	/* time	of last	access (to contents) */
	       time_t	 di_mtime;	/* of last modification	(of contents) */
	       time_t	 di_ctime;	/* of last modification	to inode */
	       long	 di_gen;	/* generation number */
	       short	 di_numextents;	/* # of	extents	*/
	       u_char	 di_version;	/* version of inode */
	       u_char	 di_spare;	/* UNUSED */
	       union {
		    extent    di_extents[EFS_DIRECTEXTENTS];
		    dev_t     di_dev;	/* device for IFCHR/IFBLK */
	       } di_u;

     The types ushort, off_t, time_t, and dev_t	are defined in types(5).  The
     extent type is defined as follows:

									Page 1

inode(4)							      inode(4)

	  typedef struct extent	{
	       unsigned	int
		    ex_magic:8,	   /* magic #, must be 0 */
		    ex_bn:24,	   /* bb # on volume */
		    ex_length:8,   /* length of	this extent in bb's */
		    ex_offset:24;  /* logical file offset in bb's */
	  } extent;

     di_mode contains the type of the file (plain file,	directory, and so on),
     and its read, write, and execute permissions for the file's owner,	group,
     and public.  di_nlink contains the	number of links	to the inode.
     Correctly formed directories have a minimum of two	links:	a link in the
     directory's parent	and the	`.' link in the	directory itself.  Additional
     links may be caused by `..' links from subdirectories.

     di_uid and	di_gid contain the user	ID and group ID	of the file (used to
     determine which set of access permissions apply:  owner, group, or
     public).  di_size contains	the length of the file in bytes.

     di_atime is the time of last access to the	file's contents.  di_mtime is
     the time of last modification of the file's contents.  di_ctime is	the
     time of last modification of the inode, as	opposed	to the contents	of the
     file it represents.  These	times are given	in seconds since the beginning
     of	1970 GMT.

     di_gen is the inode generation number used	to sequence instantiations of
     the inode.

     An	extent descriptor maps a logical segment of a file to a	physical
     segment (extent) on the volume.  The physical segment is characterized by
     a starting	address	and a length, both in basic blocks (of 512 bytes) and
     a logical file offset, also in basic blocks.

     di_numextents is the number of extents claimed by the file.  If it	is
     less than or equal	to EFS_DIRECTEXTENTS then the extent descriptors
     appear directly in	the inode as di_u.di_extents[0 .. di_numextents-1].
     When the number of	extents	exceeds	this range, then di_u.di_extents[0 ..
     di_u.di_extents[0].ex_offset-1] are indirect extents that map blocks
     holding extent information.  There	are at most EFS_DIRECTEXTENTS indirect

     If	the inode is a block or	character special inode, di_u.di_numexents is
     0,	and di_u.di_dev	contains a number identifying the device.

     If	the inode is a symbolic	link and di_u.di_numexents is 0, the symbolic
     link path string is stored	in the extent descriptor area of the inode.  A
     symbolic link is created with in-line data	only when the data string fits
     within the	extent descriptor area,	and the	tuneable parameter efs_line is
     non-zero (see systune(1M)).

									Page 2

inode(4)							      inode(4)

FILES    [Toc]    [Back]


SEE ALSO    [Toc]    [Back]

     stat(2), efs(4), types(5).

									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
inode_vxfs HP-UX format of a VxFS file system inode
efs IRIX layout of the Extent File System
ncheck_vxfs HP-UX generate pathnames from inode numbers for a VxFS file system
ncheck_hfs HP-UX generate a list of path names from inode numbers for a HFS file system
fs OpenBSD format of file system volume
inode FreeBSD format of file system volume
satd IRIX system auditing file format.
mh-format Tru64 Format file for the MH message system
inode OpenBSD format of file system volume
fs FreeBSD format of file system volume
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service