File:  [Research Unix] / researchv10dc / man / adm / man9 / alloc.9
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:34 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv10, HEAD
researchv10 Dan Cross

.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)

unix.superglobalmegacorp.com

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