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