PHYSALLOC(9) PHYSALLOC(9)
NAME
physalloc, physfree, phystag, physinit, physallocdump -
kernel buddy allocator for physical addresses
SYNOPSIS
void physinit(uintmem pa, u64int size)
uintmem physalloc(u64int size, int *colorp, void *tag)
void* phystag(uintmem pa)
void physfree(uintmem pa, u64int size)
char* seprintphysstats(char *s, char *e)
DESCRIPTION
The kernel contains a buddy allocator to hand out large
chunks of memory outside the kernel heap. The buddy
allocator does not assign virtual addresses. The map is
populated by one or more calls to physinit. Physalloc allo-
cates a region of the given color with the given tag. If
the color is -1, then any memory color may be used, other-
wise only memory of the given color will be allocated. The
tag is user-defined. Calls to phystag map addresses in the
allocation back to tag. Allocated regions are freed with
physfree. Stats may be put in a buffer with seprintstats,
which takes a pointer to a buffer and its end as seprint.
SOURCE
/sys/src/nix/k10/physalloc.c
SEE ALSO
adr(9nix), qmalloc(9nix),
Page 1 Plan 9 (printed 10/27/25)