Annotation of 43BSDTahoe/etc/dump/dump.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1980 Regents of the University of California.
                      3:  * All rights reserved.  The Berkeley software License Agreement
                      4:  * specifies the terms and conditions for redistribution.
                      5:  *
                      6:  *     @(#)dump.h      5.4 (Berkeley) 2/23/87
                      7:  */
                      8: 
                      9: #define        NI              16
                     10: #define MAXINOPB       (MAXBSIZE / sizeof(struct dinode))
                     11: #define MAXNINDIR      (MAXBSIZE / sizeof(daddr_t))
                     12: 
                     13: #include <stdio.h>
                     14: #include <ctype.h>
                     15: #include <sys/param.h>
                     16: #include <sys/stat.h>
                     17: #include <sys/fs.h>
                     18: #include <sys/inode.h>
                     19: #include <protocols/dumprestore.h>
                     20: #include <sys/dir.h>
                     21: #include <utmp.h>
                     22: #include <sys/time.h>
                     23: #include <signal.h>
                     24: #include <fstab.h>
                     25: 
                     26: #define        MWORD(m,i)      (m[(unsigned)(i-1)/NBBY])
                     27: #define        MBIT(i)         (1<<((unsigned)(i-1)%NBBY))
                     28: #define        BIS(i,w)        (MWORD(w,i) |=  MBIT(i))
                     29: #define        BIC(i,w)        (MWORD(w,i) &= ~MBIT(i))
                     30: #define        BIT(i,w)        (MWORD(w,i) & MBIT(i))
                     31: 
                     32: int    msiz;
                     33: char   *clrmap;
                     34: char   *dirmap;
                     35: char   *nodmap;
                     36: 
                     37: /*
                     38:  *     All calculations done in 0.1" units!
                     39:  */
                     40: 
                     41: char   *disk;          /* name of the disk file */
                     42: char   *tape;          /* name of the tape file */
                     43: char   *increm;        /* name of the file containing incremental information*/
                     44: char   *temp;          /* name of the file for doing rewrite of increm */
                     45: char   lastincno;      /* increment number of previous dump */
                     46: char   incno;          /* increment number */
                     47: int    uflag;          /* update flag */
                     48: int    fi;             /* disk file descriptor */
                     49: int    to;             /* tape file descriptor */
                     50: int    pipeout;        /* true => output to standard output */
                     51: ino_t  ino;            /* current inumber; used globally */
                     52: int    nsubdir;
                     53: int    newtape;        /* new tape flag */
                     54: int    nadded;         /* number of added sub directories */
                     55: int    dadded;         /* directory added flag */
                     56: int    density;        /* density in 0.1" units */
                     57: long   tsize;          /* tape size in 0.1" units */
                     58: long   esize;          /* estimated tape size, blocks */
                     59: long   asize;          /* number of 0.1" units written on current tape */
                     60: int    etapes;         /* estimated number of tapes */
                     61: 
                     62: int    notify;         /* notify operator flag */
                     63: int    blockswritten;  /* number of blocks written on current tape */
                     64: int    tapeno;         /* current tape number */
                     65: time_t tstart_writing; /* when started writing the first tape block */
                     66: char   *processname;
                     67: struct fs *sblock;     /* the file system super block */
                     68: char   buf[MAXBSIZE];
                     69: long   dev_bsize;
                     70: 
                     71: char   *ctime();
                     72: char   *prdate();
                     73: long   atol();
                     74: int    mark();
                     75: int    add();
                     76: int    dirdump();
                     77: int    dump();
                     78: int    tapsrec();
                     79: int    dmpspc();
                     80: int    dsrch();
                     81: int    nullf();
                     82: char   *getsuffix();
                     83: char   *rawname();
                     84: struct dinode *getino();
                     85: 
                     86: int    interrupt();            /* in case operator bangs on console */
                     87: 
                     88: #define        HOUR    (60L*60L)
                     89: #define        DAY     (24L*HOUR)
                     90: #define        YEAR    (365L*DAY)
                     91: 
                     92: /*
                     93:  *     Exit status codes
                     94:  */
                     95: #define        X_FINOK         0       /* normal exit */
                     96: #define        X_REWRITE       2       /* restart writing from the check point */
                     97: #define        X_ABORT         3       /* abort all of dump; don't attempt checkpointing*/
                     98: 
                     99: #define        NINCREM "/etc/dumpdates"        /*new format incremental info*/
                    100: #define        TEMP    "/etc/dtmp"             /*output temp file*/
                    101: 
                    102: #define        TAPE    "/dev/rmt8"             /* default tape device */
                    103: #define        DISK    "/dev/rrp1g"            /* default disk */
                    104: #define        OPGRENT "operator"              /* group entry to notify */
                    105: #define DIALUP "ttyd"                  /* prefix for dialups */
                    106: 
                    107: struct fstab   *fstabsearch(); /* search in fs_file and fs_spec */
                    108: 
                    109: /*
                    110:  *     The contents of the file NINCREM is maintained both on
                    111:  *     a linked list, and then (eventually) arrayified.
                    112:  */
                    113: struct idates {
                    114:        char    id_name[MAXNAMLEN+3];
                    115:        char    id_incno;
                    116:        time_t  id_ddate;
                    117: };
                    118: struct itime{
                    119:        struct  idates  it_value;
                    120:        struct  itime   *it_next;
                    121: };
                    122: struct itime   *ithead;        /* head of the list version */
                    123: int    nidates;                /* number of records (might be zero) */
                    124: int    idates_in;              /* we have read the increment file */
                    125: struct idates  **idatev;       /* the arrayfied version */
                    126: #define        ITITERATE(i, ip) for (i = 0,ip = idatev[0]; i < nidates; i++, ip = idatev[i])
                    127: 
                    128: /*
                    129:  *     We catch these interrupts
                    130:  */
                    131: int    sighup();
                    132: int    sigquit();
                    133: int    sigill();
                    134: int    sigtrap();
                    135: int    sigfpe();
                    136: int    sigkill();
                    137: int    sigbus();
                    138: int    sigsegv();
                    139: int    sigsys();
                    140: int    sigalrm();
                    141: int    sigterm();

unix.superglobalmegacorp.com

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