summaryrefslogtreecommitdiff
path: root/lib/libbsdmalloc
diff options
context:
space:
mode:
authorriastradh <riastradh@NetBSD.org>2023-07-04 16:23:15 +0000
committerriastradh <riastradh@NetBSD.org>2023-07-04 16:23:15 +0000
commit08b3ba2045319f41ea875f35e81ffe63b89ae590 (patch)
treed059b4fe12389aef7888bed4f9d0c972cb2fcae0 /lib/libbsdmalloc
parentf54f53a7a780d1ebeb63d0c8ce94d753b65e17f0 (diff)
libbsdmalloc: New man page.
XXX pullup-10
Diffstat (limited to 'lib/libbsdmalloc')
-rw-r--r--lib/libbsdmalloc/Makefile5
-rw-r--r--lib/libbsdmalloc/bsdmalloc.386
2 files changed, 88 insertions, 3 deletions
diff --git a/lib/libbsdmalloc/Makefile b/lib/libbsdmalloc/Makefile
index 990eb406867..ca0fb9979f7 100644
--- a/lib/libbsdmalloc/Makefile
+++ b/lib/libbsdmalloc/Makefile
@@ -1,6 +1,4 @@
-# $NetBSD: Makefile,v 1.5 2023/07/04 15:08:55 riastradh Exp $
-
-NOMAN=1
+# $NetBSD: Makefile,v 1.6 2023/07/04 16:23:15 riastradh Exp $
WARNS= 2
@@ -8,6 +6,7 @@ WARNS= 2
LIB= bsdmalloc
SRCS= malloc.c
+MAN= bsdmalloc.3
CFLAGS+= -fno-builtin-aligned_alloc
CFLAGS+= -fno-builtin-calloc
diff --git a/lib/libbsdmalloc/bsdmalloc.3 b/lib/libbsdmalloc/bsdmalloc.3
new file mode 100644
index 00000000000..756b984ddf9
--- /dev/null
+++ b/lib/libbsdmalloc/bsdmalloc.3
@@ -0,0 +1,86 @@
+.\" $NetBSD: bsdmalloc.3,v 1.1 2023/07/04 16:23:15 riastradh Exp $
+.\"
+.\" Copyright (c) 2023 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd July 4, 2023
+.Dt BSDMALLOC 3
+.Os
+.Sh NAME
+.Nm bsdmalloc
+.Nd lightweight historic BSD memory allocator replacement
+.Sh LIBRARY
+.Lb libbsdmalloc
+.Sh SYNOPSIS
+.In stdlib.h
+.Ft void *
+.Fn malloc "void *size"
+.Ft void *
+.Fn calloc "size_t nmemb" "size_t size"
+.Ft void *
+.Fn realloc "void *ptr" "size_t size"
+.Ft void *
+.Fn aligned_alloc "size_t alignment" "size_t size"
+.Ft int
+.Fn posix_memalign "void **memptr" "size_t alignment" "size_t size"
+.Ft void
+.Fn free "void *ptr"
+.Ft void
+.Fn _malloc_prefork
+.Ft void
+.Fn _malloc_postfork
+.Ft void
+.Fn _malloc_postfork_child
+.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.Sh DESCRIPTION
+The
+.Nm
+library provides a lower-performance but smaller-size drop-in
+replacement for the standard
+.Xr malloc 3
+family of functions provided by
+.Lb libc ,
+as well as internal hooks for
+.Xr fork 2
+safety in multithreaded programs.
+.Pp
+Programs can be statically linked with
+.Li -lbsdmalloc
+for smaller code footprint, at a higher cost to run-time performance
+and scalability and limited diagnostics.
+.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.Sh SEE ALSO
+.Xr malloc 3 ,
+.Xr posix_memalign 3
+.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.Sh BUGS
+.Nm Ns No 's
+implementation of
+.Fn malloc ,
+.Fn calloc ,
+and
+.Fn realloc
+doesn't correctly set
+.Xr errno 2
+on failure.