4lDO2
fa3e2a24d4
Optimize TLB flushing.
2024-03-04 19:03:01 +01:00
4lDO2
79381249a2
Implement a TLB shootdown draft.
2024-03-04 19:03:00 +01:00
bjorn3
782ec87f27
Fix UB in the locking code of context switching
...
The spin crate considers it UB to call force_write_unlock while there is
a threads trying to obtain a read lock on the same rwlock.
This also switches to the spinning_lot crate for the context rwlock as
it has support for a write guard keeping a reference to the rwlock using
an Arc instead of a reference.
2024-02-25 17:07:41 +01:00
Ron Williams
9331452bdb
Use RedoxPath::as_parts. redox-path from crates.io
2024-02-09 15:05:45 +00:00
Jeremy Soller
87ee68998c
Handle new path format
2024-01-18 12:35:32 -07:00
4lDO2
77400f63ee
Add a memory: file for phys-contiguous mmaps.
2023-12-15 15:14:36 +01:00
bjorn3
2d065083df
Use HashMap instead of BTreeMap where possible
...
This shrinks the kernel from 905840 bytes to 862408 bytes.
2023-12-13 19:55:20 +01:00
bjorn3
a7165f822f
Switch from the memoffset crate to the offset_of feature
...
The memoffset crate requires const_refs_to_cell to work in const
contexts. This feature has some known issues around it's semantics. The
offset_of feature however is currently on track for stabilization.
2023-12-12 20:21:31 +00:00
4lDO2
c210e59a75
Add a config.toml to the kernel.
2023-09-12 21:13:58 +02:00
Jeremy Soller
5c4961d139
Update Cargo.lock
2023-09-09 12:31:14 -06:00
Jeremy Soller
a4d0960b3f
Update redox syscall
2023-09-08 11:16:53 -06:00
Jeremy Soller
40a3601ca5
Update syscall
2023-09-07 16:17:57 -06:00
Jeremy Soller
295bcbdac8
Update redox_syscall
2023-03-14 09:25:17 -06:00
Jeremy Soller
07ed93225e
0.3.4: Update syscall to matching version
2022-08-31 16:15:25 -06:00
Jeremy Soller
310a0dda08
Some aarch64 register struct updates
2022-08-24 08:56:57 -06:00
Jeremy Soller
bb12da2b68
Update syscall
2022-08-24 08:53:37 -06:00
Jeremy Soller
679662c99e
Name bootstrap process
2022-08-17 13:25:13 -06:00
Jeremy Soller
cc6c974c91
Bump kernel to 0.3.0 to match syscall
2022-07-29 18:18:27 -06:00
Jeremy Soller
e99cbcf5d2
Fixes for compiling aarch64
2022-07-29 18:06:53 -06:00
4lDO2
2d935ca6d3
Update cargo.lock
2022-07-27 18:01:58 +02:00
4lDO2
1cdd462244
Move the initfs scheme to userspace.
2022-07-27 10:52:22 +02:00
4lDO2
846318e716
WIP: Attempt implementing fexec in userspace.
2022-07-27 10:51:43 +02:00
Jeremy Soller
76d29bac78
Update rmm
2022-07-26 20:16:47 -06:00
Jeremy Soller
65bbd50416
Update kernel version to match syscall version
2022-04-26 08:28:05 -06:00
4lDO2
df37b1f634
External initfs
2022-04-11 21:09:08 +00:00
4lDO2
6255bea143
Update to latest toolchain.
...
Multi-core is slightly broken when using the latest version of spin
(0.9.2). I believe this is because Once used to do SeqCst loads/stores
everywhere, which might have made any possible data race much harder to
come by.
2022-03-12 17:10:36 +01:00
Jeremy Soller
ae3bdea4bc
Update raw-cpuid
2022-03-01 18:12:06 -07:00
Jeremy Soller
47c3bbe13a
Update syscall
2022-03-01 09:28:17 -07:00
4lDO2
d7a1c6255b
Fix possible race condition in paranoid ISRs.
...
Additionally, because it turned out to be infeasible to rely on
link-time constants in global_asm! code, I have also converted the
interrupt handlers to naked fns. This removes the proc-macro-reliant
"paste" dependency, but inserts a tiny ud2 at the end of every ISR.
2021-08-06 17:34:56 +02:00
4lDO2
1047728f35
Only set process regs for faults from ring 3.
...
This fixes a deadlock that might occur if a page fault is triggered
while a lock to the current context is held.
2021-08-06 15:41:38 +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
1cf5f5ea22
Update dependencies to work with latest nightly.
2021-06-17 22:42:54 +02:00
4lDO2
2dc899dc3b
Update paste and align interrupt handlers.
2021-06-17 22:42:50 +02:00
Jeremy Soller
28d1d7e847
Update version to 0.2.8
2021-05-05 21:21:57 -06:00
Jeremy Soller
bdccce4a1b
Update rmm and syscall
2021-05-04 08:12:18 -06:00
Jeremy Soller
2aa4d8caf5
Merge remote-tracking branch 'origin/aarch64-rebase' into riscv64
2021-05-03 20:52:59 -06:00
Jeremy Soller
826180659c
Update rmm and syscall
2021-05-03 17:16:59 -06:00
Jeremy Soller
d331f72f2a
Use UTF-8 for all paths
2021-04-28 20:06:07 -06:00
Jeremy Soller
afca4da382
Update syscall
2021-04-13 19:34:38 -06:00
Jeremy Soller
6db78cce24
Use UTF-8 for all paths
2021-02-14 13:45:03 -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
Jeremy Soller
ccddabadf7
Make x86 specific dependencies, x86 specific
2021-01-09 20:12:59 -07:00
Jeremy Soller
f5ac405db6
Support for RMM
2020-11-27 16:49:39 +00:00
Jeremy Soller
8b27de416b
Update Cargo.lock
2020-08-27 10:26:56 -06:00
Wren Turkal
03e60f7da6
Add log crate and add a generic logger.
...
This is the first step of integrating the log crate as the main way to
log messages from the kernel.
Also, reexport all log macros. This module should eventually be the
only logging API used in the kernel.
Signed-off-by: Wren Turkal <wt@penguintechs.org >
2020-08-08 20:48:41 -07:00
jD91mZM2
fbeb297949
Fix compilation since last rust
...
Thanks to @4lDO2 for all this. I just moved his changes to io_uring onto
the master branch of the kernel. I take no credit.
2020-08-01 13:00:52 +02:00
jD91mZM2
fbdfcd2ba0
WIP: Rewrite interrupts as global assembly
...
Because the way we were using inline assembly was technically incorrect
and breaking the laws of rust
This *finally* compiles. That doesn't mean it works!
2020-07-11 16:15:25 +02:00
Jeremy Soller
30b109d288
Update dependencies
2020-05-06 09:05:58 -06:00