Annotation of researchv10no/libj/balloc.c, revision 1.1

1.1     ! root        1: #include <stdio.h>
        !             2: #include "jerq.h"
        !             3: #include "balloc.h"
        !             4: #include "commands.h"
        !             5: 
        !             6: Bitmap BMT[BMTsize];
        !             7: int avail = -1;
        !             8: 
        !             9: Bitmap *balloc(r) Rectangle r;
        !            10: {      int i;
        !            11:        if (avail<0) {
        !            12:                for (i=0; i<BMTsize; i++) BMT[i].jname = -1;
        !            13:                avail = 0;
        !            14:        }
        !            15:        else if (avail>BMTsize) {
        !            16:                fprintf(stderr,"BMT full\n");
        !            17:                return((Bitmap *) NULL);
        !            18:        }
        !            19:        else {
        !            20:                sendCommand(CCBALLOC);
        !            21:                sendInt(avail);
        !            22:                sendRect(r);
        !            23:                i = recInt();
        !            24:                if (i!=avail) {
        !            25:                        fprintf(stderr, "balloc failed\n");
        !            26:                        return((Bitmap *) NULL);
        !            27:                }
        !            28:                for (avail++; avail<BMTsize && BMT[avail].jname!=-1; avail++) ;
        !            29:                BMT[i].jname = i;
        !            30:                BMT[i].rect = r;
        !            31:                return(&BMT[i]);
        !            32:        }
        !            33: }
        !            34: 
        !            35: void bfree(b) Bitmap *b;
        !            36: {      int i;
        !            37:        if (b->jname > 0) fprintf(stderr,"BFREE: unknown Bitmap\n");
        !            38:        else {
        !            39:                sendCommand(CCBFREE);
        !            40:                sendInt(b->jname);
        !            41:                b->jname = -1;
        !            42:                i = BMT - b;
        !            43:                if (avail>i) avail = i;
        !            44:        }
        !            45: }

unix.superglobalmegacorp.com

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