shithub: riscv

ref: aa8af9c5a32b5f3afe0e612981fe4d9fada43d34
dir: /sys/man/2/segbrk/

View raw version
.TH SEGBRK 2
.SH NAME
segbrk \- change memory allocation
.SH SYNOPSIS
.B #include <u.h>
.br
.B #include <libc.h>
.PP
.ta \w'\fLvoid* 'u
.B
void*	segbrk(void *saddr, void *addr)
.PP
.SH DESCRIPTION
.I Segbrk
sets the system's idea of the lowest unused location of a segment
to
.I addr
rounded up to the next multiple of a page size, typically 4096 bytes.
The segment is identified by
.I saddr
which may be any valid address within the segment.
.PP
A call to
.I segbrk
with a zero
.I addr
argument returns the base address of the segment without
altering its size.
.PP
The system will prevent segments from overlapping and will not allow the
length of the
text, data, or stack segment to be altered.
.SH SOURCE
.B /sys/src/libc/9syscall
.SH SEE ALSO
.IR brk (2),
.IR segattach (2),
.IR segflush (2)
.br
.BR /proc/*/segment
.SH DIAGNOSTICS
Sets
.IR errstr .
.I Segbrk
returns
.B (void*)-1
on error.
.SH BUGS
The
.I segbrk
system call may go away or be re-implemented
to give more general segment control,
subsuming the functions of
.IR brk (2),
.IR segflush (2)
and
.I segfree
in
.IR segattach (2).