Annotation of researchv8dc/sys/chaos/dev.h, revision 1.1.1.1

1.1       root        1: #ifndef _CHDEV_
                      2: #define _CHDEV_
                      3: 
                      4: /*
                      5:  * This file defines how the UNIX minor device number is used by the UNIX
                      6:  * Chaos N.C.P.
                      7:  *
                      8:  * The minor device is divided into 2 fields: host and (contact) name
                      9:  * The low order CHNBITS specifies how to get the contact name,
                     10:  * the next higher order CHHBITS specifies how to get the host address.
                     11:  *
                     12:  * Host field definitions:
                     13:  */
                     14: #define CHHBITS                4               /* Number of bits of host specifier */
                     15: #define CHHMAX         ((1 << CHHBITS) - 1)
                     16:                                        /*  Maximum value of host field */
                     17: #define CHHMASK                CHHMAX          /* Mask after shift for host */
                     18: #define CHHSHIFT       (8-CHHBITS-1)   /* Right shift of minor for host */
                     19: #define CHHOST(dev)    ((minor(dev) >> CHHSHIFT) & CHHMASK)
                     20:                                        /* Extraction macro */
                     21: #define CHHSPEC                CHHMAX          /* Value for special devices */
                     22: #define CHHREAD                CHHMAX-1        /* Host number is in rest of path */
                     23: #define CHHUSE         CHHMAX-2        /* Host number is in last component */
                     24: #define CHHMAXN                CHHMAX-2        /* Max number of auto hosts numbers */
                     25: 
                     26: /*
                     27:  * Name field values for special devices:
                     28:  */
                     29: #define CHUNMATCHED    0       /* Minor device for unmatched RFC reader */
                     30: #define CHLISTEN       1       /* Listen */
                     31: 
                     32: /*
                     33:  * Contact name field definitions:
                     34:  */
                     35: #define CHNBITS                (8 - CHHBITS - 1)
                     36: #define CHNMAX         ((1 << CHNBITS) - 1)    /* Max value of field */
                     37: #define CHNMASK                CHNMAX                  /* Mask for extraction */
                     38: #define CHNAME(dev)    (minor(dev) & CHNMASK)  /* Extraction macro */
                     39: #define CHNREAD                CHNMAX          /* Contact name is rest of path */
                     40: #define CHNUSE         CHNMAX-1        /* Contact name is last component */
                     41: #define CHNMAXN                CHNMAX-1        /* Max number of auto contact names */
                     42: 
                     43: #define CHMKMIN(h,n)   ((h << CHHSHIFT) | n)
                     44: #define CHURFCMIN      CHMKMIN(CHHSPEC, CHUNMATCHED)
                     45: #define CHLISTMIN      CHMKMIN(CHHSPEC, CHLISTEN)
                     46: #define CHRFCAMIN      CHMKMIN(CHHREAD, CHNREAD)
                     47: #define CHRFCMIN       (CHHANGMIN | (CHRFCAMIN))
                     48: #define CHHANGMIN      0200
                     49: #define CHHANGDEV(dev) (minor(dev)&0200)
                     50: 
                     51: #define NONAME         ((char *)0)
                     52: 
                     53: extern char *chnames[][3];
                     54: extern short chhosts[];                /* Array of "well known hosts" */
                     55: 
                     56: /*
                     57:  * For the channel driver, and some user programs, we need to know a
                     58:  * purposely invalid minor device number
                     59:  */
                     60: #define CHBADCHAN      255
                     61: #endif

unix.superglobalmegacorp.com

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