.\" -*-nroff-*-
.de VS
.sp 1
-.RS 5
+.RS
.nf
.ft B
..
.RE
.sp 1
..
-.TH sub 3mLib "8 May 1999" mLib
+.TH sub 3 "8 May 1999" "Straylight/Edgeware" "mLib utilities library"
.SH NAME
sub \- efficient allocation and freeing of small blocks
+.\" @sub_alloc
+.\" @sub_free
+.\" @sub_init
+.\"
+.\" @CREATE
+.\" @DESTROY
+.\"
.SH SYNOPSIS
.nf
.B "#include <mLib/sub.h>"
operation requires the block size as an argument, so there's no data
overhead for an allocated block. The system takes advantage of this by
allocating big chunks from the underlying system (actually via
-.BR xmalloc (3mLib),
+.BR xmalloc (3),
q.v.) and splitting the chunks into smaller blocks of the right size, so
the space and time overhead from the underlying allocator is divided
over many blocks.
to
.BR free (3);
similarly, don't try to pass blocks allocated by
-.BR xmalloc (3mLib)
+.BR xmalloc (3)
or
.BR malloc (3)
to
.VS
DESTROY(p)
.VE
-rather than the more cubersome
+rather than the more cumbersome
.VS
sub_free(p, sizeof(*p));
.VE
must be called before any of the other
.B sub
functions or macros.
+.SH "SEE ALSO"
+.BR exc (3),
+.BR alloc (3),
+.BR mLib (3).
.SH AUTHOR
Mark Wooding, <mdw@nsict.org>