]> git.lizzy.rs Git - plan9front.git/blob - sys/man/2/segflush
merge
[plan9front.git] / sys / man / 2 / segflush
1 .TH SEGFLUSH 2
2 .SH NAME
3 segflush \- flush instruction and data caches
4 .SH SYNOPSIS
5 .B #include <u.h>
6 .br
7 .B #include <libc.h>
8 .PP
9 .B
10 int     segflush(void *va, ulong len)
11 .PP
12 .SH DESCRIPTION
13 .I Segflush
14 invalidates any instruction cache and writes back any data
15 cache associated with pages contained in a segment.
16 All subsequent new pages in the segment will also be flushed when first referenced.
17 .PP
18 .I Va
19 is an address within the segment to be flushed;
20 it is rounded down to the nearest page boundary.
21 .I Len
22 specifies the length in bytes of
23 the memory to flush;
24 .IB va + len
25 is rounded up to the nearest page boundary.
26 .I Segflush
27 works correctly when the memory straddles multiple segments.
28 .PP
29 Correct use of
30 .I segflush
31 depends on an understanding of the cache architecture of the specific
32 machine.
33 .SH SOURCE
34 .B /sys/src/libc/9syscall
35 .SH SEE ALSO
36 .IR segattach (2),
37 .IR segbrk (2)
38 .br
39 .BR /proc/*/segment
40 .SH DIAGNOSTICS
41 Sets
42 .IR errstr .