Jeremy Soller
63fcc204cb
x86 paging refactor for debugger
2021-11-30 20:56:55 -07:00
4lDO2
3eedbeb14d
WIP: Let userspace manage fsbase/gsbase and TLS.
2021-08-01 12:09:22 +02:00
4lDO2
0968e4f87e
Support fsgsbase at compile time.
2021-07-31 10:12:59 +02:00
4lDO2
3e5cf387d5
Use offset_of! in context::arch::switch_to.
...
This is definitely better than hardcoding the offsets!
2021-06-21 10:16:41 +02:00
4lDO2
cc6f792a03
Use options(noreturn) in all naked functions.
2021-06-17 22:42:31 +02:00
Jeremy Soller
3dc08c878f
Fix aarch64 switch_to function
2021-05-04 08:07:44 -06:00
Jeremy Soller
8f50785781
Fixes for building aarch64
2021-05-03 21:57:45 -06:00
Jeremy Soller
2aa4d8caf5
Merge remote-tracking branch 'origin/aarch64-rebase' into riscv64
2021-05-03 20:52:59 -06:00
Jeremy Soller
17c261553b
Fixes for building x86_64
2021-05-03 20:43:18 -06:00
4lDO2
a706a0dae4
Rewrite signal_handler_wrapper as single asm block.
...
The reason for these types of rewrites, is that more recent Rust
compilers have started to deprecate naked functions that consist of more
than only a single asm block, as they can trigger all sorts of UB.
2021-02-13 21:55:40 +01:00
4lDO2
47c3b2269f
Fix context switching.
...
Previously there was a triple fault, due to a combination of reasons
(e.g. rsp and rbp being ordered in the struct and in the assembly).
Now, the locks will be held __all the way until the new context__ has
been switched to, which completely eliminates any possibility that the
"pcid fault" originates here.
While I am unsure whether this will work, this could also be an
opportunity to be able to remove CONTEXT_SWITCH_LOCK fully.
2021-02-13 21:55:40 +01:00
4lDO2
ef4270e473
WIP: Attempt to rewrite switch_to in assembly.
...
This is due to a warning in more recent compilers, which forbid anything
but a single inline assembly block, in naked functions. It does
unfortunately triple fault right now, but I hope I may be able to fix it
soon.
2021-02-13 21:55:36 +01:00
Robin Randhawa
afca6ab31c
aarch64: Fix incorrect FP save/restore
2021-01-28 16:50:07 +00:00
Robin Randhawa
1462fe8638
aarch64: context: Align with x86_64 code
2021-01-27 17:17:59 +00:00
Robin Randhawa
3afa0f0895
aarch64: Basic Floating-point/SIMD support
2021-01-27 17:17:11 +00:00
Robin Randhawa
4a215c7c2c
aarch64: exception management and clone fixups
2021-01-26 18:17:09 +00:00
Robin Randhawa
75870a655f
aarch64: context: Add separate kspace and uspace page table getters
2021-01-21 11:40:02 +00:00
Robin Randhawa
fd0336692d
aarch64: clone: Introduce kernel and user space specific mods
...
At present these are done 'wholesale' without any regard for x86_64.
That needs to change eventually.
2021-01-18 21:50:19 +00:00
Robin Randhawa
5bc9dea242
aarch64: context::switch: update the CONTEXT_SWITCH_LOCK
2021-01-15 19:03:42 +00:00
Robin Randhawa
14d79927af
aarch64: Add a set_tcb method to setup tpidr_el0
2021-01-15 09:12:30 -07:00
Robin Randhawa
02c37d3fae
WIP: aarch64 rebase
2021-01-15 05:54:42 -07:00
Jeremy Soller
ea6b1e7f8b
Update redox_syscall to 0.2.4
2021-01-11 07:01:05 -07:00
jD91mZM2
f07603902d
Replace all llvm_asm! uses with asm!
2020-08-01 14:56:46 +02:00
jD91mZM2
93856b43b9
s/\basm!/llvm_asm!/g
2020-08-01 12:31:56 +02:00
Jeremy Soller
582e3fd8eb
Unlock CONTEXT_SWITCH_LOCK after loading registers but before switch
2020-04-21 21:03:17 -06:00
Jeremy Soller
b892603501
Require mutable context to perform page table modifications
2020-02-10 17:58:44 -07:00
Jeremy Soller
63e2a835e0
Fix clippy.sh script and fix a number of clippy warnings
2019-10-06 11:04:06 -06:00
jD91mZM2
6fbb4fbae1
Ptrace memory reading and floating point registers support
2019-07-07 17:07:04 +00:00
Jeremy Soller
f042bd5d07
Update for new rust
2019-04-07 10:57:33 -06:00
Jeremy Soller
58e1d92eb5
Add clippy lints, action some clippy items
2017-12-24 22:19:00 -07:00
Jeremy Soller
2087544ea7
Move all files to src
2017-04-03 21:47:01 -06:00