git: 9front

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