diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-04-12 22:30:30 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-04-12 22:30:30 +0200 |
commit | 461c2b68a16ab3314202ec7796fe7eb8a7731f2d (patch) | |
tree | d2fd155f08d5dff13b6b600db5151da233842347 /sys/src/9/port/fault.c | |
parent | aadbcf0a32c92b1ba4584ad9487854ede43932ca (diff) |
kernel: fixed segment support (for fpga experiments)
fixed segments are continuous in physical memory but
allocated in user pages. unlike shared segments, they
are not allocated on demand but the pages are allocated
on creation time (devsegment). fixed segments are
never swapped out, segfreed or resized and can only be
destroyed as a whole.
the physical base address can be discovered by userspace
reading the ctl file in devsegment.
Diffstat (limited to 'sys/src/9/port/fault.c')
-rw-r--r-- | sys/src/9/port/fault.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/src/9/port/fault.c b/sys/src/9/port/fault.c index 5aff0a731..f1ce5c223 100644 --- a/sys/src/9/port/fault.c +++ b/sys/src/9/port/fault.c @@ -267,6 +267,7 @@ fixfault(Segment *s, uintptr addr, int read, int doputmmu) copypage(old, *pg); putpage(old); } + case SG_FIXED: /* Never paged out */ mmuphys = PPN((*pg)->pa) | PTEWRITE | PTEVALID; (*pg)->modref = PG_MOD|PG_REF; break; |