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