Annotation of researchv10dc/man/man5/worm.5, revision 1.1.1.1

1.1       root        1: .TH WORM 5
                      2: .CT 1 dirs
                      3: .SH NAME
                      4: worm \- format of worm disks
                      5: .SH SYNOPSIS
                      6: .B #include <worm.h>
                      7: .SH DESCRIPTION
                      8: A 
                      9: .SM WORM
                     10: disk is a linked list of `superblocks', roughly one for every
                     11: .I "worm write"
                     12: on the 
                     13: .SM WORM.
                     14: The `governing' superblock is at block zero if it exists and
                     15: has a valid magic number;
                     16: otherwise the governing superblock is the last superblock in
                     17: the linked list starting at block 1.
                     18: (The link to the next superblock is preallocated
                     19: and thus the last superblock in the list will be unwritten.)
                     20: Each superblock has some status information and a pointer
                     21: to a set of `inodes' describing a set of files.
                     22: The status information for the 
                     23: .SM WORM
                     24: is that of the governing superblock;
                     25: the set of files on the 
                     26: .SM WORM
                     27: is the accumulation of all the superblocks
                     28: taken in order.
                     29: The structure of a superblock as given in the
                     30: include file is:
                     31: .LP
                     32: .EX
                     33: .ta \w'#define 'u +\w'unsigned 'u +\w'mment[128]; 'u
                     34: #define        SMAGIC  0x21746967
                     35: #define        VLINK   1       /* linked list superblock */
                     36: #define        VBTREE  2       /* cbt superblock */
                     37: typedef struct superblock
                     38: {
                     39:        long magic;             /* magic number for superblock */
                     40:        unsigned short blocksize; /* physical size of blocks */
                     41:        short version;          /* type of superblock */
                     42:        long nblocks;           /* number of blocks on device */
                     43:        long zero;              /* first logical data block */
                     44:        long nfree;             /* number of free blocks */
                     45:        long ninodes;           /* number of inodes */
                     46:        long ninochars;         /* number of bytes of inode names */
                     47:        long binodes;           /* start of inodes */
                     48:        long nextffree;         /* next free file block */
                     49:        long nextsb;            /* next superblock */
                     50:        short fd;               /* fildes for device (in core) */
                     51:        char vol_id[128];               /* name the disk can be mounted as */
                     52:        char comment[128];              /* comments */
                     53:        long myblock;           /* where this superblock is */
                     54:        long nF;                /* bytes for .F (VBTREE) */
                     55:        long nT;                /* bytes for .T (VBTREE) */
                     56:        long ctime;             /* create time for this superblock */
                     57: } superblock;
                     58: .EE
                     59: .PP
                     60: superblocks are padded with zeros to
                     61: .BR blocksize .
                     62: .PP
                     63: Following each
                     64: .B VLINK
                     65: superblock is a set of inodes, a string table, and then the data blocks
                     66: for the files described by the inodes.
                     67: Following a (there is at most one)
                     68: .B VBTREE
                     69: superblock
                     70: there is a set of inodes, a string table and the 
                     71: .B .F
                     72: and
                     73: .B .T
                     74: files for a
                     75: .IR cbt (1)
                     76: database where the keys are filenames and the data is an inode number.
                     77: .LP
                     78: .EX
                     79: #define        DMAGIC  0x3A746967
                     80: typedef struct Inode
                     81: {
                     82:        long magic;             /* magic number for Dirent */
                     83:        long block;             /* starting block of file */
                     84:        long nbytes;            /* bytes in file */
                     85:        long ctime;             /* creation time */
                     86:        union {
                     87:                char *n;        /* core - name */
                     88:                long o; /* disk - offset into chars block */
                     89:        } name;         /* filename */
                     90:        long pad1               /* to 32 bytes */
                     91:        short mode              /* as in \fIstat\fP(2) */
                     92:        short uid               /* owner */
                     93:        short gid               /* owner */
                     94:        short pad2              /* to 32 bytes */
                     95: } Inode                
                     96: .EE
                     97: .PP
                     98: If the
                     99: .B block
                    100: field of an inode is negative,
                    101: the file has been deleted.
                    102: .SH "SEE ALSO"
                    103: .IR worm (8)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.