Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
.TH SEGBRK 2
2
.SH NAME
3
segbrk \- change memory allocation
4
.SH SYNOPSIS
5
.B #include <u.h>
6
.br
7
.B #include <libc.h>
8
.PP
9
.ta \w'\fLvoid* 'u
10
.B
11
void*	segbrk(void *saddr, void *addr)
12
.PP
13
.SH DESCRIPTION
14
.I Segbrk
15
sets the system's idea of the lowest unused location of a segment
16
to
17
.I addr
18
rounded up to the next multiple of a page size, typically 4096 bytes.
19
The segment is identified by
20
.I saddr
21
which may be any valid address within the segment.
22
.PP
23
A call to
24
.I segbrk
25
with a zero
26
.I addr
27
argument returns the address
28
of the top of bss.
29
.PP
30
The system will prevent segments from overlapping and will not allow the
31
length of the
32
text, data, or stack segment to be altered.
33
.SH SOURCE
34
.B /sys/src/libc/9syscall
35
.SH SEE ALSO
36
.IR brk (2),
37
.IR segattach (2),
38
.IR segflush (2)
39
.br
40
.BR /proc/*/segment
41
.SH DIAGNOSTICS
42
Sets
43
.IR errstr .
44
.I Segbrk
45
returns
46
.B (void*)-1
47
on error.
48
.SH BUGS
49
.I Segbrk
50
is not fully defined or implemented.
51
In particular,
52
it cannot always return the top of bss
53
when called with a zero
54
.I addr
55
argument.
56
The
57
.I segbrk
58
system call may go away or be re-implemented
59
to give more general segment control,
60
subsuming the functions of
61
.IR brk (2),
62
.IR segflush (2)
63
and
64
.I segfree
65
in
66
.IR segattach (2).