shithub: plan9front

ref: 2db3642b8d3b871c6f9d1f4e3204b2f44fc4b79f
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).