Annotation of researchv10no/libj/balloc.c, revision 1.1.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.