Page MenuHomeFreeBSD

D31004.id91684.diff
No OneTemporary

D31004.id91684.diff

Index: share/man/man9/malloc.9
===================================================================
--- share/man/man9/malloc.9
+++ share/man/man9/malloc.9
@@ -29,7 +29,7 @@
.\" $NetBSD: malloc.9,v 1.3 1996/11/11 00:05:11 lukem Exp $
.\" $FreeBSD$
.\"
-.Dd March 6, 2021
+.Dd July 2, 2021
.Dt MALLOC 9
.Os
.Sh NAME
@@ -58,6 +58,13 @@
.Ft size_t
.Fn malloc_usable_size "const void *addr"
.Ft void *
+.Fo malloc_aligned
+.Fa "size_t size"
+.Fa "size_t align"
+.Fa "struct malloc_type *type"
+.Fa "int flags"
+.Fc
+.Ft void *
.Fn malloc_exec "size_t size" "struct malloc_type *type" "int flags"
.Fn MALLOC_DECLARE type
.In sys/param.h
@@ -69,6 +76,14 @@
.Ft void *
.Fn malloc_domainset "size_t size" "struct malloc_type *type" "struct domainset *ds" "int flags"
.Ft void *
+.Fo malloc_domainset_aligned
+.Fa "size_t size"
+.Fa "size_t align"
+.Fa "struct malloc_type *type"
+.Fa "struct domainset *ds"
+.Fa "int flags"
+.Fc
+.Ft void *
.Fn malloc_domainset_exec "size_t size" "struct malloc_type *type" "struct domainset *ds" "int flags"
.Ft void *
.Fn mallocarray_domainset "size_t nmemb" "size_t size" "struct malloc_type *type" "struct domainset *ds" "int flags"
@@ -88,6 +103,14 @@
.Xr domainset 9
for some example policies.
.Pp
+The
+.Fn malloc_aligned
+and
+.Fn malloc_domainset_aligned
+variants return allocations aligned as specified by
+.Fa align ,
+which must be non-zero, a power of two, and less than or equal to the page size.
+.Pp
Both
.Fn malloc_exec
and
Index: sys/kern/kern_malloc.c
===================================================================
--- sys/kern/kern_malloc.c
+++ sys/kern/kern_malloc.c
@@ -773,6 +773,13 @@
return (malloc_large(&size, mtp, ds, flags DEBUG_REDZONE_ARG));
}
+void *
+malloc_aligned(size_t size, size_t align, struct malloc_type *type, int flags)
+{
+ return (malloc_domainset_aligned(size, align, type, DOMAINSET_RR(),
+ flags));
+}
+
void *
malloc_domainset_aligned(size_t size, size_t align,
struct malloc_type *mtp, struct domainset *ds, int flags)
Index: sys/sys/malloc.h
===================================================================
--- sys/sys/malloc.h
+++ sys/sys/malloc.h
@@ -265,6 +265,8 @@
__result_use_check __alloc_size(2);
void *reallocf(void *addr, size_t size, struct malloc_type *type, int flags)
__result_use_check __alloc_size(2);
+void *malloc_aligned(size_t size, size_t align, struct malloc_type *type,
+ int flags) __malloc_like __result_use_check __alloc_size(1);
void *malloc_domainset_aligned(size_t size, size_t align,
struct malloc_type *mtp, struct domainset *ds, int flags)
__malloc_like __result_use_check __alloc_size(1);

File Metadata

Mime Type
text/plain
Expires
Tue, Jun 9, 5:37 PM (1 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33833985
Default Alt Text
D31004.id91684.diff (2 KB)

Event Timeline