Annotation of researchv10no/cmd/worm/worm.h, revision 1.1

1.1     ! root        1: #include       <errno.h>
        !             2: 
        !             3: #define                SMAGIC          0x21746967
        !             4: #define                DMAGIC          0x3A746967
        !             5: 
        !             6: typedef struct Superblock
        !             7: {
        !             8:        long magic;             /* magic number for Superblock */
        !             9:        unsigned short blocksize;       /* physical size of blocks */
        !            10:        short version;          /* type of superblock */
        !            11:        long nblocks;           /* number of blocks on device */
        !            12:        long zero;              /* first logical data block */
        !            13:        long nfree;             /* number of free blocks */
        !            14:        long ninodes;           /* number of inodes */
        !            15:        long ninochars;         /* number of bytes of inode names */
        !            16:        long binodes;           /* start of inodes */
        !            17:        long nextffree;         /* next free file block */
        !            18:        long nextsb;            /* next superblock */
        !            19:        short fd;               /* fildes for device (in core) */
        !            20:        char vol_id[128];       /* name the disk can be mounted as */
        !            21:        char comment[128];      /* comments */
        !            22:        long myblock;           /* where this superblock is */
        !            23:        long nF;                /* bytes for .F (VBTREE) */
        !            24:        long nT;                /* bytes for .T (VBTREE) */
        !            25:        long ctime;             /* create time for this superblock */
        !            26: } Superblock;
        !            27: 
        !            28: typedef struct Inode
        !            29: {
        !            30:        long magic;             /* magic number for Dirent */
        !            31:        long block;             /* starting block of file */
        !            32:        long nbytes;            /* bytes in file */
        !            33:        long ctime;             /* creation time */
        !            34:        union {
        !            35:                char *n;        /* core - name */
        !            36:                long o;         /* disk - offset into chars block */
        !            37:        } name;                 /* filename */
        !            38:        long pad1;              /* to 32 bytes */
        !            39:        short mode;             /* a la stat */
        !            40:        short uid;              /* owner */
        !            41:        short gid;              /* owner */
        !            42:        short pad2;             /* to 32 bytes */
        !            43: } Inode;
        !            44: #define                IPERB           (s->blocksize/sizeof(Inode))
        !            45: 
        !            46: extern char *openinode(), *lkwri(), *lkwsb();
        !            47: extern char *mapdev();
        !            48: extern Inode *(*inodefn)();
        !            49: extern void (*traversefn)();
        !            50: extern long numinodes;
        !            51: extern long numnamechars;
        !            52: extern char *timenow();
        !            53: 
        !            54: #define        inodeof(s)      (*inodefn)(s)
        !            55: #define        inodetraverse(fn)       (*traversefn)(fn)
        !            56: 
        !            57: #define        VLINK   1       /* linked list version */
        !            58: #define        VBTREE  2       /* cbt */
        !            59: 
        !            60: #define        NBLKS(s, x)     (long)(((s)->blocksize-1+(x))/(s)->blocksize)
        !            61: 
        !            62: /*
        !            63:        flags for openinode
        !            64: */
        !            65: #define        DO_INODE        1
        !            66: #define        SPIN_DOWN       2
        !            67: 
        !            68: #define        BIGBLOCK        (60*1024L)      /* max read/write */
        !            69: 
        !            70: /*
        !            71:        in.c declarations
        !            72: */
        !            73: 
        !            74: extern int bad;
        !            75: extern long nbytes;
        !            76: extern long blkdone;
        !            77: extern long nfiles;
        !            78: extern char *argout;

unix.superglobalmegacorp.com

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