12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- .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 address
- of the top of bss.
- .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
- .I Segbrk
- is not fully defined or implemented.
- In particular,
- it cannot always return the top of bss
- when called with a zero
- .I addr
- argument.
- 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
- .IR segfree (2).
|