Annotation of 43BSD/etc/config/config.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:  *     @(#)config.h    5.3 (Berkeley) 4/18/86
                      7:  */
                      8: 
                      9: /*
                     10:  * Config.
                     11:  */
                     12: #include <sys/types.h>
                     13: 
                     14: #define        NODEV   ((dev_t)-1)
                     15: 
                     16: struct file_list {
                     17:        struct  file_list *f_next;      
                     18:        char    *f_fn;                  /* the name */
                     19:        u_char  f_type;                 /* see below */
                     20:        u_char  f_flags;                /* see below */
                     21:        short   f_special;              /* requires special make rule */
                     22:        char    *f_needs;
                     23:        /*
                     24:         * Random values:
                     25:         *      swap space parameters for swap areas
                     26:         *      root device, etc. for system specifications
                     27:         */
                     28:        union {
                     29:                struct {                /* when swap specification */
                     30:                        dev_t   fuw_swapdev;
                     31:                        int     fuw_swapsize;
                     32:                } fuw;
                     33:                struct {                /* when system specification */
                     34:                        dev_t   fus_rootdev;
                     35:                        dev_t   fus_argdev;
                     36:                        dev_t   fus_dumpdev;
                     37:                } fus;
                     38:        } fun;
                     39: #define        f_swapdev       fun.fuw.fuw_swapdev
                     40: #define        f_swapsize      fun.fuw.fuw_swapsize
                     41: #define        f_rootdev       fun.fus.fus_rootdev
                     42: #define        f_argdev        fun.fus.fus_argdev
                     43: #define        f_dumpdev       fun.fus.fus_dumpdev
                     44: };
                     45: 
                     46: /*
                     47:  * Types.
                     48:  */
                     49: #define DRIVER         1
                     50: #define NORMAL         2
                     51: #define        INVISIBLE       3
                     52: #define        PROFILING       4
                     53: #define        SYSTEMSPEC      5
                     54: #define        SWAPSPEC        6
                     55: 
                     56: /*
                     57:  * Attributes (flags).
                     58:  */
                     59: #define        CONFIGDEP       1
                     60: 
                     61: struct idlst {
                     62:        char    *id;
                     63:        struct  idlst *id_next;
                     64: };
                     65: 
                     66: struct device {
                     67:        int     d_type;                 /* CONTROLLER, DEVICE, UBA or MBA */
                     68:        struct  device *d_conn;         /* what it is connected to */
                     69:        char    *d_name;                /* name of device (e.g. rk11) */
                     70:        struct  idlst *d_vec;           /* interrupt vectors */
                     71:        int     d_pri;                  /* interrupt priority */
                     72:        int     d_addr;                 /* address of csr */
                     73:        int     d_unit;                 /* unit number */
                     74:        int     d_drive;                /* drive number */
                     75:        int     d_slave;                /* slave number */
                     76: #define QUES   -1      /* -1 means '?' */
                     77: #define        UNKNOWN -2      /* -2 means not set yet */
                     78:        int     d_dk;                   /* if init 1 set to number for iostat */
                     79:        int     d_flags;                /* nlags for device init */
                     80:        struct  device *d_next;         /* Next one in list */
                     81: };
                     82: #define TO_NEXUS       (struct device *)-1
                     83: 
                     84: struct config {
                     85:        char    *c_dev;
                     86:        char    *s_sysname;
                     87: };
                     88: 
                     89: /*
                     90:  * Config has a global notion of which machine type is
                     91:  * being used.  It uses the name of the machine in choosing
                     92:  * files and directories.  Thus if the name of the machine is ``vax'',
                     93:  * it will build from ``Makefile.vax'' and use ``../vax/inline''
                     94:  * in the makerules, etc.
                     95:  */
                     96: int    machine;
                     97: char   *machinename;
                     98: #define        MACHINE_VAX     1
                     99: #define        MACHINE_SUN     2
                    100: 
                    101: /*
                    102:  * For each machine, a set of CPU's may be specified as supported.
                    103:  * These and the options (below) are put in the C flags in the makefile.
                    104:  */
                    105: struct cputype {
                    106:        char    *cpu_name;
                    107:        struct  cputype *cpu_next;
                    108: } *cputype;
                    109: 
                    110: /*
                    111:  * A set of options may also be specified which are like CPU types,
                    112:  * but which may also specify values for the options.
                    113:  * A separate set of options may be defined for make-style options.
                    114:  */
                    115: struct opt {
                    116:        char    *op_name;
                    117:        char    *op_value;
                    118:        struct  opt *op_next;
                    119: } *opt, *mkopt;
                    120: 
                    121: char   *ident;
                    122: char   *ns();
                    123: char   *tc();
                    124: char   *qu();
                    125: char   *get_word();
                    126: char   *path();
                    127: char   *raise();
                    128: 
                    129: int    do_trace;
                    130: 
                    131: char   *index();
                    132: char   *rindex();
                    133: char   *malloc();
                    134: char   *strcpy();
                    135: char   *strcat();
                    136: char   *sprintf();
                    137: 
                    138: #if MACHINE_VAX
                    139: int    seen_mba, seen_uba;
                    140: #endif
                    141: 
                    142: struct device *connect();
                    143: struct device *dtab;
                    144: dev_t  nametodev();
                    145: char   *devtoname();
                    146: 
                    147: char   errbuf[80];
                    148: int    yyline;
                    149: 
                    150: struct file_list *ftab, *conf_list, **confp;
                    151: char   *PREFIX;
                    152: 
                    153: int    timezone, hadtz;
                    154: int    dst;
                    155: int    profiling;
                    156: 
                    157: int    maxusers;
                    158: 
                    159: #define eq(a,b)        (!strcmp(a,b))

unix.superglobalmegacorp.com

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