plan9fox/sys/src/9/sgi
cinap_lenrek 128ea44a89 kernel: expose no execute bit to portable mmu code as SG_NOEXEC / PTENOEXEC, add PTECACHED bits
a portable SG_NOEXEC segment attribute was added to allow
non-executable (physical) segments. which will set the
PTENOEXEC bits for putmmu().

in the future, this can be used to make non-executable
stack / bss segments.

the SG_DEVICE attribute was added to distinguish between
mmio regions and uncached memory. only matterns on arm64.

on arm, theres the issue that PTEUNCACHED would have
no bits set when using the hardware bit definitions.
this is the reason bcm, kw, teg2 and omap kernels use
arteficial PTE constants. on zynq, the XN bit was used
as a hack to give PTEUNCACHED a non-zero value and when
the bit is clear then cache attributes where added to
the pte.

to fix this, PTECACHED constant was added.

the portable mmu code in fault.c will now explicitely set
PTECACHED bits for cached memory and PTEUNCACHED for
uncached memory. that way the hardware bit definitions
can be used everywhere.
2019-08-26 22:34:38 +02:00
..
bootfs.proto kernel: add srvtls and tlsclient to bootfs.proto for encrypting connection to the file server 2016-05-16 22:55:30 +02:00
clock.c sgi: get rid of timerset(0) case 2017-01-22 21:08:28 +01:00
dat.h kernel: move devether and wifi to port/ 2018-02-11 18:08:03 +01:00
devkbd.c sgi: keyboard, mouse and cursor for indy 2015-04-02 18:35:43 +02:00
etherseeq.c devether: mux bridges, portable netconsole 2018-02-18 19:56:01 +01:00
faultmips.c sgi: work in progress kernel for sgi mips machines (only tested with r5k indy) 2015-03-28 05:15:40 +01:00
fns.h kernel: move devether and wifi to port/ 2018-02-11 18:08:03 +01:00
fptrap.c kernel: introduce per process FPU struct (PFPU) for more flexible machine specific fpu handling 2017-11-04 20:08:22 +01:00
indy kernel: move devether and wifi to port/ 2018-02-11 18:08:03 +01:00
init9.s sgi: work in progress kernel for sgi mips machines (only tested with r5k indy) 2015-03-28 05:15:40 +01:00
io.h sgi: keyboard, mouse and cursor for indy 2015-04-02 18:35:43 +02:00
l.s all kernels: declare _tas() to prevent pulling in libc version (for libmemdraw) 2015-07-07 19:17:55 +02:00
main.c kernel: move devether and wifi to port/ 2018-02-11 18:08:03 +01:00
mem.h kernel: expose no execute bit to portable mmu code as SG_NOEXEC / PTENOEXEC, add PTECACHED bits 2019-08-26 22:34:38 +02:00
mkfile kernel: introduce devswap #¶ to serve /dev/swap and handle swapfile encryption 2017-10-29 23:09:54 +01:00
mmu.c kernel: expose no execute bit to portable mmu code as SG_NOEXEC / PTENOEXEC, add PTECACHED bits 2019-08-26 22:34:38 +02:00
screen.c devdraw: get rid of softscreen==0xa110c hack and make attachscreen() return Memdata* 2019-01-30 18:22:52 +01:00
screen.h devdraw: get rid of softscreen==0xa110c hack and make attachscreen() return Memdata* 2019-01-30 18:22:52 +01:00
trap.c kernel: introduce per process FPU struct (PFPU) for more flexible machine specific fpu handling 2017-11-04 20:08:22 +01:00
uartarcs.c sgi: keyboard, mouse and cursor for indy 2015-04-02 18:35:43 +02:00