1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
.TH ALLOC 9.3
.CT 2 mem_man
.SH NAME
alloc, free, balloc, bfree, gcalloc, gcfree \- allocate memory
.SH SYNOPSIS
.B #include <jerq.h>
.PP
.B char *alloc(nbytes)
.B unsigned nbytes;
.PP
.B void free(s)
.B char *s;
.PP
.B Bitmap *balloc(r)
.B Rectangle r;
.PP
.B void bfree(b)
.B Bitmap *b;
.PP
.B char *gcalloc(nbytes, where)
.B unsigned long nbytes;
.B char **where;
.PP
.B void gcfree(s)
.B char *s;
.SH DESCRIPTION
.I Alloc
corresponds to the standard C function
.IR calloc ;
see
.IR malloc (3).
It returns a pointer to a block of
.I nbytes
contiguous bytes of storage, or 0
if unavailable.
The storage is aligned on 4-byte boundaries
and is cleared to zeros.
.I Free
frees storage allocated by
.IR alloc .
.PP
.I Balloc
returns a pointer to a Bitmap
large enough to contain
the Rectangle
.IR r ,
or 0
for failure.
The coordinate system inside the Bitmap is set by
.IR r :
the
.B origin
and
.B corner
of the Bitmap are those of
.IR r .
.I Bfree
frees the storage associated with a Bitmap allocated by
.IR balloc .
.PP
.I Gcalloc
provides a simple garbage-compacting allocator.
It returns a pointer to a block of
.I nbytes
contiguous bytes of storage, or
0
if unavailable.
The storage is initialized to zeros.
.I Where
is a pointer to the user's data where the location of the
block is to be saved.
The return value of
.I gcalloc
is stored in
.BI * where
and will be updated after each compaction.
Therefore, a program using
.I gcalloc
should never store the location of memory obtained from
.I gcalloc
anywhere other than
.I where.
Typically, this location is contained in a structure, such as a
Bitmap
.RI ( balloc
uses
.IR gcalloc ).
.I Gcfree
frees the storage block at
.IR p .
.SH SEE ALSO
.IR types (9.5),
.IR malloc (3)
|