]> gitweb.factorcode.org Git - factor.git/blob - vm/segments.hpp
vm: Revert extra canary page before callstack
[factor.git] / vm / segments.hpp
1 namespace factor
2 {
3
4 inline cell align_page(cell a)
5 {
6         return align(a,getpagesize());
7 }
8
9 /* segments set up guard pages to check for under/overflow.
10 size must be a multiple of the page size */
11 struct segment {
12         cell start;
13         cell size;
14         cell end;
15
16         explicit segment(cell size, bool executable_p);
17         ~segment();
18
19         bool underflow_p(cell addr)
20         {
21                 return (addr >= start - getpagesize() && addr < start);
22         }
23
24         bool overflow_p(cell addr)
25         {
26                 return (addr >= end && addr < end + getpagesize());
27         }
28 };
29
30 }