Annotation of researchv10no/cmd/cfront/ooptcfront/size.c, revision 1.1

1.1     ! root        1: /*ident        "@(#)ctrans:src/size.c  1.1.4.3" */
        !             2: /*********************************************************************
        !             3: 
        !             4:        C++ source for cfront, the C++ compiler front-end
        !             5:        written in the computer science research center of Bell Labs
        !             6: 
        !             7:        Copyright (c) 1984 AT&T, Inc. All rigths Reserved
        !             8:        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T, INC.
        !             9: 
        !            10: size.c:
        !            11: 
        !            12:        initialize alignment and sizeof "constants"
        !            13: 
        !            14: **********************************************************************/
        !            15: 
        !            16: #include "cfront.h"
        !            17: #include "size.h"
        !            18: 
        !            19:                                // default sizes:
        !            20:        // Note: #if doesn't work on all systems
        !            21: #ifdef u3b
        !            22: #define Abbb
        !            23: #endif
        !            24: #ifdef u3b2
        !            25: #define Abbb
        !            26: #endif
        !            27: #ifdef u3b5
        !            28: #define Abbb
        !            29: #endif
        !            30: #ifdef u3b15
        !            31: #define Abbb
        !            32: #endif
        !            33: #ifdef pyr
        !            34: #define Abbb
        !            35: #endif
        !            36: 
        !            37: 
        !            38: #ifdef alliant
        !            39: #define Am68
        !            40: #endif
        !            41: #ifdef apollo
        !            42: #define Am68
        !            43: #endif
        !            44: #if defined(sun2) || defined(mc68010)
        !            45: #define Am68
        !            46: #endif
        !            47: #if defined(sun3) || defined(mc68020)
        !            48: #define Am68
        !            49: #endif
        !            50: #if defined(mc68k) || defined(hp9000s200) || defined(hp9000s300)
        !            51: #define Am68
        !            52: #endif
        !            53: 
        !            54: #ifdef iAPX286
        !            55: #ifdef LARGE
        !            56: #define Ai286l
        !            57: #endif
        !            58: #endif
        !            59: 
        !            60: #ifdef Abbb
        !            61:                                /* AT&T 3Bs */
        !            62: #define DBI_IN_WORD 32
        !            63: #define DBI_IN_BYTE 8
        !            64: #define DSZ_CHAR 1
        !            65: #define DAL_CHAR 1
        !            66: #define DSZ_SHORT 2
        !            67: #define DAL_SHORT 2
        !            68: #define DSZ_INT 4
        !            69: #define DAL_INT 4
        !            70: #define DSZ_LONG 4
        !            71: #define DAL_LONG 4
        !            72: #define DSZ_FLOAT 4
        !            73: #define DAL_FLOAT 4
        !            74: #define DSZ_DOUBLE 8
        !            75: #define DAL_DOUBLE 4
        !            76: #define DSZ_LDOUBLE 8
        !            77: #define DAL_LDOUBLE 4
        !            78: #define DSZ_STRUCT 4
        !            79: #define DAL_STRUCT 4
        !            80: //#define DSZ_FRAME 4
        !            81: //#define DAL_FRAME 4
        !            82: #define DSZ_WORD 4
        !            83: #define DSZ_WPTR 4
        !            84: #define DAL_WPTR 4
        !            85: #define DSZ_BPTR 4
        !            86: #define DAL_BPTR 4
        !            87: //#define DSZ_TOP 0
        !            88: //#define DSZ_BOTTOM 0
        !            89: #define DLARGEST_INT "2147483647"      /* 2**31 - 1 */
        !            90: #define DF_SENSITIVE 0
        !            91: #define DF_OPTIMIZED 1
        !            92: #else
        !            93: #ifdef Am68
        !            94:                                /* most M68K boxes */
        !            95: #if defined(hp9000s200) || defined(hp9000s300) || defined(sun)
        !            96: #define DBI_IN_WORD 32 
        !            97: #else
        !            98: #define DBI_IN_WORD 16
        !            99: #endif
        !           100: 
        !           101: #define DBI_IN_BYTE 8
        !           102: #define DSZ_CHAR 1
        !           103: #define DAL_CHAR 1
        !           104: #define DSZ_SHORT 2
        !           105: #define DAL_SHORT 2
        !           106: #define DSZ_INT 4
        !           107: #define DAL_INT 2
        !           108: #define DSZ_LONG 4
        !           109: #define DAL_LONG 2
        !           110: #define DSZ_FLOAT 4
        !           111: #define DAL_FLOAT 2
        !           112: #define DSZ_DOUBLE 8
        !           113: #define DAL_DOUBLE 2
        !           114: #define DSZ_LDOUBLE 8
        !           115: #define DAL_LDOUBLE 2
        !           116: #define DSZ_STRUCT 2
        !           117: #define DAL_STRUCT 2
        !           118: //#define DSZ_FRAME 4
        !           119: //#define DAL_FRAME 4
        !           120: #ifdef sun
        !           121: #define DSZ_WORD 4
        !           122: #define DZB_BOUNDARY 2
        !           123: #else
        !           124: #define DSZ_WORD 2
        !           125: #define DZB_BOUNDARY 2
        !           126: #endif
        !           127: #define DSZ_WPTR 4
        !           128: #define DAL_WPTR 2
        !           129: #define DSZ_BPTR 4
        !           130: #define DAL_BPTR 2
        !           131: //#define DSZ_TOP 0
        !           132: //#define DSZ_BOTTOM 0
        !           133: #define DLARGEST_INT "2147483647"      /* 2**31 - 1 */
        !           134: #define DF_SENSITIVE 0
        !           135: #define DF_OPTIMIZED 1
        !           136: #else
        !           137: #ifdef Ai286l
        !           138:                                /* Intel 80286 large model */
        !           139: #define DBI_IN_WORD 16
        !           140: #define DBI_IN_BYTE 8
        !           141: #define DSZ_CHAR 1
        !           142: #define DAL_CHAR 1
        !           143: #define DSZ_SHORT 2
        !           144: #define DAL_SHORT 2
        !           145: #define DSZ_INT 2
        !           146: #define DAL_INT 2
        !           147: #define DSZ_LONG 4
        !           148: #define DAL_LONG 2
        !           149: #define DSZ_FLOAT 4
        !           150: #define DAL_FLOAT 2
        !           151: #define DSZ_DOUBLE 8
        !           152: #define DAL_DOUBLE 2
        !           153: #define DSZ_LDOUBLE 8
        !           154: #define DAL_LDOUBLE 2
        !           155: #define DSZ_STRUCT 2
        !           156: #define DAL_STRUCT 2
        !           157: //#define DSZ_FRAME 4
        !           158: //#define DAL_FRAME 4
        !           159: #define DSZ_WORD 2
        !           160: #define DSZ_WPTR 4
        !           161: #define DAL_WPTR 2
        !           162: #define DSZ_BPTR 4
        !           163: #define DAL_BPTR 2
        !           164: //#define DSZ_TOP 0
        !           165: //#define DSZ_BOTTOM 0
        !           166: #define DLARGEST_INT "32767"   /* 2**15 - 1 */
        !           167: #define DF_SENSITIVE 0
        !           168: #define DF_OPTIMIZED 1
        !           169: #else
        !           170: #if defined(uts) || defined(hp9000s800) || defined(sun4) || defined(sparc)
        !           171:                                /* Amdahl running UTS, HP RISC */
        !           172: #define DBI_IN_WORD 32
        !           173: #define DBI_IN_BYTE 8
        !           174: #define DSZ_CHAR 1
        !           175: #define DAL_CHAR 1
        !           176: #define DSZ_SHORT 2
        !           177: #define DAL_SHORT 2
        !           178: #define DSZ_INT 4
        !           179: #define DAL_INT 4
        !           180: #define DSZ_LONG 4
        !           181: #define DAL_LONG 4
        !           182: #define DSZ_FLOAT 4
        !           183: #define DAL_FLOAT 4
        !           184: #define DSZ_DOUBLE 8
        !           185: #define DAL_DOUBLE 8
        !           186: #define DSZ_LDOUBLE 8
        !           187: #define DAL_LDOUBLE 8
        !           188: #define DSZ_STRUCT 1
        !           189: #define DAL_STRUCT 1
        !           190: #define DSZ_WORD 4
        !           191: #define DSZ_WPTR 4
        !           192: #define DAL_WPTR 4
        !           193: #define DSZ_BPTR 4
        !           194: #define DAL_BPTR 4
        !           195: #define DLARGEST_INT "2147483647"      /* 2**31 - 1 */
        !           196: #define DF_SENSITIVE 0
        !           197: #define DF_OPTIMIZED 1
        !           198: #else
        !           199: #ifdef hpux 
        !           200:                                 /* hp */
        !           201: #define DBI_IN_WORD 32
        !           202: #define DBI_IN_BYTE 8
        !           203: #define DSZ_CHAR 1
        !           204: #define DAL_CHAR 1
        !           205: #define DSZ_SHORT 2
        !           206: #define DAL_SHORT 2
        !           207: #define DSZ_INT 4
        !           208: #define DAL_INT 4
        !           209: #define DSZ_LONG 4
        !           210: #define DAL_LONG 4
        !           211: #define DSZ_FLOAT 4
        !           212: #define DAL_FLOAT 4
        !           213: #define DSZ_DOUBLE 8
        !           214: #define DAL_DOUBLE 8 
        !           215: #define DSZ_LDOUBLE 8
        !           216: #define DAL_LDOUBLE 8
        !           217: #define DSZ_STRUCT 1 
        !           218: #define DAL_STRUCT 1 
        !           219: #define DSZ_WORD 4
        !           220: #define DSZ_WPTR 4
        !           221: #define DAL_WPTR 4
        !           222: #define DSZ_BPTR 4
        !           223: #define DAL_BPTR 4
        !           224: #define DLARGEST_INT "2147483647"       /* 2**31 - 1 */
        !           225: #define DF_SENSITIVE 1 
        !           226: #define DF_OPTIMIZED 1
        !           227: #else
        !           228: #if defined(vax) || defined(ibm032) || defined(i386)
        !           229:                                /* VAX, IBM 32, Intel 386 */
        !           230: #define DBI_IN_WORD 32
        !           231: #define DBI_IN_BYTE 8
        !           232: #define DSZ_CHAR 1
        !           233: #define DAL_CHAR 1
        !           234: #define DSZ_SHORT 2
        !           235: #define DAL_SHORT 2
        !           236: #define DSZ_INT 4
        !           237: #define DAL_INT 4
        !           238: #define DSZ_LONG 4
        !           239: #define DAL_LONG 4
        !           240: #define DSZ_FLOAT 4
        !           241: #define DAL_FLOAT 4
        !           242: #define DSZ_DOUBLE 8
        !           243: #define DAL_DOUBLE 4
        !           244: #define DSZ_LDOUBLE 8
        !           245: #define DAL_LDOUBLE 4
        !           246: #define DSZ_STRUCT 1
        !           247: #define DAL_STRUCT 1
        !           248: //#define DSZ_FRAME 4
        !           249: //#define DAL_FRAME 4
        !           250: #define DSZ_WORD 4
        !           251: #define DSZ_WPTR 4
        !           252: #define DAL_WPTR 4
        !           253: #define DSZ_BPTR 4
        !           254: #define DAL_BPTR 4
        !           255: //#define DSZ_TOP 0
        !           256: //#define DSZ_BOTTOM 0
        !           257: #define DLARGEST_INT "2147483647"      /* 2**31 - 1 */
        !           258: #define DF_SENSITIVE 0
        !           259: #define DF_OPTIMIZED 1
        !           260: #else
        !           261: #ifdef mc300
        !           262: #define DBI_IN_WORD 32
        !           263: #define DBI_IN_BYTE 8
        !           264: #define DSZ_CHAR 1
        !           265: #define DAL_CHAR 1
        !           266: #define DSZ_SHORT 2
        !           267: #define DAL_SHORT 2
        !           268: #define DSZ_INT 4
        !           269: #define DAL_INT 4
        !           270: #define DSZ_LONG 4
        !           271: #define DAL_LONG 4
        !           272: #define DSZ_FLOAT 4
        !           273: #define DAL_FLOAT 4
        !           274: #define DSZ_DOUBLE 8
        !           275: #define DAL_DOUBLE 4
        !           276: #define DSZ_LDOUBLE 8
        !           277: #define DAL_LDOUBLE 4
        !           278: #define DSZ_STRUCT 2
        !           279: #define DAL_STRUCT 2
        !           280: //#define DSZ_FRAME 4
        !           281: //#define DAL_FRAME 4
        !           282: #define DSZ_WORD 4
        !           283: #define DSZ_WPTR 4
        !           284: #define DAL_WPTR 4
        !           285: #define DSZ_BPTR 4
        !           286: #define DAL_BPTR 4
        !           287: //#define DSZ_TOP 0
        !           288: //#define DSZ_BOTTOM 0
        !           289: #define DLARGEST_INT "2147483647"       /* 2**31 - 1 */
        !           290: #define DF_SENSITIVE 0
        !           291: #define DF_OPTIMIZED 1
        !           292: #else
        !           293:                                /* defaults: 0 => error */
        !           294: #define DBI_IN_WORD 0
        !           295: #define DBI_IN_BYTE 0
        !           296: #define DSZ_CHAR 1
        !           297: #define DAL_CHAR 1
        !           298: #define DSZ_SHORT 0
        !           299: #define DAL_SHORT 0
        !           300: #define DSZ_INT 0
        !           301: #define DAL_INT 0
        !           302: #define DSZ_LONG 0
        !           303: #define DAL_LONG 0
        !           304: #define DSZ_FLOAT 0
        !           305: #define DAL_FLOAT 0
        !           306: #define DSZ_DOUBLE 0
        !           307: #define DAL_DOUBLE 0
        !           308: #define DSZ_LDOUBLE 0
        !           309: #define DAL_LDOUBLE 0
        !           310: #define DSZ_STRUCT 0
        !           311: #define DAL_STRUCT 0
        !           312: #define DSZ_WORD 0
        !           313: #define DSZ_WPTR 0
        !           314: #define DAL_WPTR 0
        !           315: #define DSZ_BPTR 0
        !           316: #define DAL_BPTR 0
        !           317: #define DLARGEST_INT "0"
        !           318: #define DF_SENSITIVE 0
        !           319: #define DF_OPTIMIZED 0
        !           320: #endif
        !           321: #endif
        !           322: #endif
        !           323: #endif
        !           324: #endif
        !           325: #endif
        !           326: #endif
        !           327: 
        !           328: #ifndef DZB_BOUNDARY
        !           329: // #define ZB_BOUNDARY DSZ_WORD
        !           330: #define DZB_BOUNDARY DSZ_WORD
        !           331: #endif
        !           332: 
        !           333: int BI_IN_WORD = DBI_IN_WORD;
        !           334: int BI_IN_BYTE = DBI_IN_BYTE;
        !           335: int SZ_CHAR = DSZ_CHAR;
        !           336: int AL_CHAR = DAL_CHAR;
        !           337: int SZ_SHORT = DSZ_SHORT;
        !           338: int AL_SHORT = DAL_SHORT;
        !           339: int SZ_INT = DSZ_INT;
        !           340: int AL_INT = DAL_INT;
        !           341: int SZ_LONG = DSZ_LONG;
        !           342: int AL_LONG = DAL_LONG;
        !           343: int SZ_FLOAT = DSZ_FLOAT;
        !           344: int AL_FLOAT = DAL_FLOAT;
        !           345: int SZ_DOUBLE = DSZ_DOUBLE;
        !           346: int AL_DOUBLE = DAL_DOUBLE;
        !           347: int SZ_LDOUBLE = DSZ_LDOUBLE;
        !           348: int AL_LDOUBLE = DAL_LDOUBLE;
        !           349: int SZ_STRUCT = DSZ_STRUCT;
        !           350: int AL_STRUCT = DAL_STRUCT;
        !           351: //int SZ_FRAME = DSZ_FRAME;
        !           352: //int AL_FRAME = DAL_FRAME;
        !           353: int SZ_WORD = DSZ_WORD;
        !           354: int ZB_BOUNDARY = DZB_BOUNDARY;
        !           355: int SZ_WPTR = DSZ_WPTR;
        !           356: int AL_WPTR = DAL_WPTR;
        !           357: int SZ_BPTR = DSZ_BPTR;
        !           358: int AL_BPTR = DAL_BPTR;
        !           359: //int SZ_TOP = DSZ_TOP;
        !           360: //int SZ_BOTTOM = DSZ_BOTTOM;
        !           361: char* LARGEST_INT = DLARGEST_INT;
        !           362: int F_SENSITIVE = DF_SENSITIVE;
        !           363: int F_OPTIMIZED =  DF_OPTIMIZED;
        !           364: 
        !           365: int arg1 = 0;
        !           366: int arg2 = 0;
        !           367: 
        !           368: int get_line(FILE* fp)
        !           369: {
        !           370:        char s[32];
        !           371: 
        !           372:        if (fscanf(fp," %s %d %d",s,&arg1,&arg2) == EOF) return 0;
        !           373: // fprintf(stderr,"xxx %s %d %d",s,arg1,arg2);
        !           374:        if (strcmp("char",s) == 0) {
        !           375:                SZ_CHAR = arg1;
        !           376:                AL_CHAR = arg2;
        !           377:                return 1;
        !           378:        }
        !           379:        if (strcmp("short",s) == 0) {
        !           380:                SZ_SHORT = arg1;
        !           381:                AL_SHORT = arg2;
        !           382:                return 1;
        !           383:        }
        !           384:        if (strcmp("int",s) == 0) {
        !           385:                SZ_INT = arg1;
        !           386:                AL_INT = arg2;
        !           387:                if (fscanf(fp," %s",s) == EOF) return 0;
        !           388:                LARGEST_INT = new char[strlen(s)+1];
        !           389:                strcpy(LARGEST_INT,s);
        !           390:                return 1;
        !           391:        }
        !           392:        if (strcmp("long",s) == 0) {
        !           393:                SZ_LONG = arg1;
        !           394:                AL_LONG = arg2;
        !           395:                return 1;
        !           396:        }
        !           397:        if (strcmp("float",s) == 0) {
        !           398:                SZ_FLOAT = arg1;
        !           399:                AL_FLOAT = arg2;
        !           400:                return 1;
        !           401:        }
        !           402:        if (strcmp("double",s) == 0) {
        !           403:                SZ_DOUBLE = arg1;
        !           404:                AL_DOUBLE = arg2;
        !           405:                return 1;
        !           406:        }
        !           407:        if (strcmp("ldouble",s) == 0) {
        !           408:                SZ_LDOUBLE = arg1;
        !           409:                AL_LDOUBLE = arg2;
        !           410:                return 1;
        !           411:        }
        !           412:        if (strcmp("bit",s) == 0) {
        !           413:                BI_IN_BYTE = arg1;
        !           414:                BI_IN_WORD = arg2;
        !           415:                return 1;
        !           416:        }
        !           417:        if (strcmp("struct",s) == 0) {
        !           418:                SZ_STRUCT = arg1;
        !           419:                AL_STRUCT = arg2;
        !           420:                return 1;
        !           421:        }
        !           422:        if (strcmp("struct2",s) == 0) {
        !           423:                F_SENSITIVE = arg1;
        !           424:                F_OPTIMIZED = arg2;
        !           425:                return 1;
        !           426:        }
        !           427:        if (strcmp("frame",s) == 0) {
        !           428: //             SZ_FRAME = arg1;
        !           429: //             AL_FRAME = arg2;
        !           430:                return 1;
        !           431:        }
        !           432:        if (strcmp("word",s) == 0) {
        !           433:                SZ_WORD = arg1;
        !           434:                return 1;
        !           435:        }
        !           436:        if (strcmp("zero_bitfield_boundary",s) == 0) {
        !           437:                ZB_BOUNDARY = arg1;
        !           438:                return 1;
        !           439:        }
        !           440:        if (strcmp("wptr",s) == 0) {
        !           441:                SZ_WPTR = arg1;
        !           442:                AL_WPTR = arg2;
        !           443:                return 1;
        !           444:        }
        !           445:        if (strcmp("bptr",s) == 0) {
        !           446:                SZ_BPTR = arg1;
        !           447:                AL_BPTR = arg2;
        !           448:                return 1;
        !           449:        }
        !           450:        if (strcmp("top",s) == 0) {
        !           451: //             SZ_TOP = arg1;
        !           452: //             SZ_BOTTOM = arg2;
        !           453:                return 1;
        !           454:        }
        !           455:        return 0;
        !           456: }
        !           457: 
        !           458: int read_align(char* f)
        !           459: {
        !           460:        char* p = f;
        !           461:        if (*p == 0) {
        !           462:                fprintf(stderr,"size/align file missing\n");
        !           463:                ext(1);
        !           464:        }
        !           465:        FILE* fp = fopen(f,"r");
        !           466:        if (fp == 0) return 1;
        !           467:        while (get_line(fp)) ;
        !           468:        return 0;
        !           469: }
        !           470: /*
        !           471: print_align(char* s)
        !           472: {
        !           473:        fprintf(stderr,"%s sizes and alignments\n\n",s);
        !           474: 
        !           475:        fprintf(stderr,"        size    align   largest\n");
        !           476:        fprintf(stderr,"char    %d      %d\n",SZ_CHAR,AL_CHAR);
        !           477:        fprintf(stderr,"short   %d      %d\n",SZ_SHORT,AL_SHORT);
        !           478:        fprintf(stderr,"int     %d      %d      %s\n",SZ_INT,AL_INT,LARGEST_INT);
        !           479:        fprintf(stderr,"long    %d      %d\n",SZ_LONG,AL_LONG);
        !           480:        fprintf(stderr,"float   %d      %d\n",SZ_FLOAT,AL_FLOAT);
        !           481:        fprintf(stderr,"double  %d      %d\n",SZ_DOUBLE,AL_DOUBLE);
        !           482:        fprintf(stderr,"ldouble %d      %d\n",SZ_LDOUBLE,AL_LDOUBLE);
        !           483:        fprintf(stderr,"bptr    %d      %d\n",SZ_BPTR,AL_BPTR);
        !           484:        fprintf(stderr,"wptr    %d      %d\n",SZ_WPTR,AL_WPTR);
        !           485:        fprintf(stderr,"struct  %d      %d\n",SZ_STRUCT,AL_STRUCT);
        !           486:        fprintf(stderr,"struct2 %d      %d\n",F_SENSITIVE,F_OPTIMIZED);
        !           487: //     fprintf(stderr,"frame   %d      %d\n",SZ_FRAME,AL_FRAME);
        !           488: 
        !           489:        fprintf(stderr,"%d bits in a byte, %d bits in a word, %d bytes in a word zero bitfield aligned to %d bytes\n",
        !           490:                        BI_IN_BYTE, BI_IN_WORD, SZ_WORD, ZB_BOUNDARY);
        !           491:        return 1;
        !           492: }
        !           493: */
        !           494: 
        !           495: int c_strlen(const char* s)
        !           496: /*
        !           497:        return sizeof(s) with escapes processed
        !           498:        sizeof("") == 1         the terminating 0
        !           499:        sizeof("a") == 2
        !           500:        sizeof("\0x") == 3      0 x 0
        !           501:        sizeof("\012") == 2     '\012'
        !           502:        sizeof("\01")           '\001'
        !           503:        sizeof("\x") == 2       \ ignored
        !           504: 
        !           505: */
        !           506: {
        !           507:        int i = 1;
        !           508:         for (const char* p = s; *p; i++,p++) {
        !           509:                if (*p == '\\') {                                       // '\?
        !           510:                        switch (*++p) {
        !           511:                        case '0':
        !           512:                                switch (p[1]) {         // '\01' or '\012'
        !           513:                                case '0': case '1': case '2': case '3':
        !           514:                                case '4': case '5': case '6': case '7':
        !           515:                                        break;
        !           516:                                default:
        !           517:                                        continue;       // '\0'
        !           518:                                }
        !           519:                                /* no break */
        !           520:                        case '1': case '2': case '3':
        !           521:                        case '4': case '5': case '6': case '7':         // '\123'
        !           522:                                switch (*++p) {
        !           523:                                case '0': case '1': case '2': case '3':
        !           524:                                case '4': case '5': case '6': case '7':
        !           525:                                        switch (*++p) {
        !           526:                                        case '0': case '1': case '2': case '3':
        !           527:                                        case '4': case '5': case '6': case '7':
        !           528:                                                break;
        !           529:                                        default:
        !           530:                                                --p;
        !           531:                                        }
        !           532:                                        break;
        !           533:                                default:
        !           534:                                        --p;
        !           535:                                }
        !           536:                        }
        !           537:                }
        !           538:        }
        !           539:        return i;
        !           540: }
        !           541: /* ODI notes --
        !           542: 
        !           543:  * move all the initialization #ifdef's into here so they
        !           544:  * can be changed without recompiling the whole compiler.
        !           545:  * Add ZB_BOUNDARY to represent the start of a bitfield 32 bit
        !           546:  * throw as distinct from the "word", which is 32 bits on a sun.
        !           547:  * 
        !           548: 
        !           549: */

unix.superglobalmegacorp.com

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