|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.