Jeremy Soller
17c261553b
Fixes for building x86_64
2021-05-03 20:43:18 -06:00
Jeremy Soller
dfdb562e6b
Use RMM PhysicalAddress
2021-05-03 20:33:31 -06:00
Jeremy Soller
ad39568fe9
Fix unwrapping stack when there are kernel addresses (and there always are)
2021-05-02 19:53:31 -06:00
4lDO2
af17eeec3a
Give schemes a dangling address for empty slices.
...
This allows schemes to avoid checking the length against zero before
constructing a slice from pointer+len that the kernel gave.
Additionally, the address is now non-canonical on x86, meaning that
userspace will fail instead of continuing with UB, if they would ever
forget to check the length.
2021-04-29 07:40:50 -06:00
Jeremy Soller
73c77d756d
Print context name in exception
2021-04-28 21:15:21 -06:00
Jeremy Soller
37e6951501
Print CPU and PID when exception occurs
2021-04-28 20:59:52 -06:00
Jeremy Soller
d331f72f2a
Use UTF-8 for all paths
2021-04-28 20:06:07 -06:00
Jeremy Soller
8fcd375bd9
Switch Context::grants to RwLock
2021-04-28 20:04:27 -06:00
Jeremy Soller
41bea0086f
Switch Context::actions to RwLock
2021-04-28 20:03:29 -06:00
Jeremy Soller
83dea72a50
Switch Context::files to RwLock
2021-04-28 20:03:25 -06:00
Jeremy Soller
c7aba8fdfd
Switch Context::cwd to using RwLock
2021-04-28 20:03:18 -06:00
Jeremy Soller
a9bee0bbdc
Require UTF-8 for context name
2021-04-28 20:03:12 -06:00
Jeremy Soller
b26c3e0ae9
Make context name a RwLock
2021-04-28 20:03:05 -06:00
Jeremy Soller
31887bf532
Merge branch 'floating-point-fixups' into 'aarch64-rebase'
...
Floating point fixups
See merge request redox-os/kernel!165
2021-01-28 17:02:32 +00:00
Robin Randhawa
1e10cac3e1
aarch64: Increase storage for FP context to consider AArch64's needs
...
Brute-forcing this at present. Would be better to wrap this
conditionally for the architecture.
2021-01-28 16:51:50 +00:00
Robin Randhawa
afca6ab31c
aarch64: Fix incorrect FP save/restore
2021-01-28 16:50:07 +00:00
Jeremy Soller
a06636b77f
Update syscall
2021-01-27 10:44:52 -07:00
Jeremy Soller
f8f1596f67
Merge branch 'add-floating-point-support' into 'aarch64-rebase'
...
Add floating point support
See merge request redox-os/kernel!164
2021-01-27 17:43:57 +00:00
Robin Randhawa
4dbfaf3ec1
Nit: Add missing close brace in code comment
2021-01-27 17:19:37 +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
00723c4ac2
aarch64: Make IRQs use the exception macros
2021-01-26 19:37:23 +00:00
Jeremy Soller
9621c64991
Update syscall
2021-01-26 11:46:09 -07:00
Jeremy Soller
81c33a3f6a
Merge branch 'aarch64-base' into 'aarch64-rebase'
...
Misc exception handling fixups
See merge request redox-os/kernel!163
2021-01-26 18:41:53 +00:00
Robin Randhawa
28dfc0f46b
aarch64: Basic exception handlers
2021-01-26 18:18:19 +00:00
Robin Randhawa
4a215c7c2c
aarch64: exception management and clone fixups
2021-01-26 18:17:09 +00:00
Jeremy Soller
fa62b48285
Merge branch 'fixes-for-grant-maps-and-others' into 'aarch64-rebase'
...
Fixes for grant maps and others
See merge request redox-os/kernel!162
2021-01-22 15:15:08 +00:00
Robin Randhawa
78d1cd1798
syscall: process: empty: Use user-space specific page table
2021-01-21 11:53:35 +00:00
Robin Randhawa
6cacbb47f6
scheme: user: Use user-space specific pagt table
2021-01-21 11:53:07 +00:00
Robin Randhawa
591775874b
ptrace: with_context_memory: use user-space specific page table
2021-01-21 11:50:56 +00:00
Robin Randhawa
65448c2d48
aarch64: context: memory: Grant::map_inactive: Bugfix
...
When mapping one (from) virtual address range to another (to) virtual
address range, be mindful of which mapper type to use for each range.
Before this, the same mapper type was used for both ranges. This meant
that if from and to were different (as in not both kernel virtual
addresses or user virtual addresses) then it would appear that either
from or to was not mapped previously and the kernel would panic.
2021-01-21 11:41:26 +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
3da345867a
aarch64: paging: Derive Debug, PartialEq for VirtualAddressType
...
This makes asserts on VirtualAddressType equality possible.
2021-01-21 11:38:46 +00:00
Robin Randhawa
452196b81f
aarch64: consts: Use the same USER_TLS_SIZE as x86_64
2021-01-21 11:37:32 +00:00
Jeremy Soller
d76298b3f8
Merge branch 'wip-clone-and-misc-fixes' into 'aarch64-rebase'
...
Wip clone and misc fixes
See merge request redox-os/kernel!161
2021-01-18 23:00:00 +00:00
Robin Randhawa
f1db56f026
aarch64: clone: Further uspace and kspace mods
2021-01-18 21:55:42 +00:00
Robin Randhawa
9429032cec
aarch64: clone: Further clone_ret + tpidr_el0 fixes
2021-01-18 21:53:04 +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
c188a60871
aarch64: Fix clone_ret
...
FIXME: Explain the magic numbers here later.
2021-01-18 21:47:28 +00:00
Robin Randhawa
95bd8f2013
clone: Make stack manipulation arch specific
2021-01-17 10:26:49 +00:00
Robin Randhawa
ae0aebd036
aarch64: clone: Return from clone syscall
...
No CLONE_STACK functionality yet.
2021-01-17 10:12:42 +00:00
Robin Randhawa
67ec6c23e7
aarch64: Move tpidr_el0 setup from spawn to switch
2021-01-17 10:09:03 +00:00
Robin Randhawa
67d72532a9
aarch64: usermode: Remove tpidr_el0 manipulation
...
Was using the incorrect USER_TLS_OFFSET instead of USER_TCB_OFFSET. In
any case, this is better done in process::clone.
2021-01-17 10:06:04 +00:00
Robin Randhawa
3585f620b0
aarch64: clone: Fix incorrect stack offset in clone_ret
2021-01-17 10:03:50 +00:00
Robin Randhawa
208fb681f4
aarch64: vectors: Manage unhandled exceptions
...
So we can more clearly see when things go wrong.
2021-01-17 10:01:34 +00:00
Jeremy Soller
17fd135017
Merge branch 'pagetabletype-and-misc-fixes' into 'aarch64-rebase'
...
Pagetabletype and misc fixes
See merge request redox-os/kernel!158
2021-01-15 19:50:13 +00:00
Jeremy Soller
e124fa171b
Merge branch 'misc-fixes' into 'aarch64-rebase'
...
Misc fixes
See merge request redox-os/kernel!160
2021-01-15 19:43:23 +00:00
Robin Randhawa
5bc9dea242
aarch64: context::switch: update the CONTEXT_SWITCH_LOCK
2021-01-15 19:03:42 +00:00
Robin Randhawa
6677cfbf1e
aarch64: Make interrupt::pause use nop so we can move ahead before interrupts are enabled
2021-01-15 19:02:43 +00:00
Robin Randhawa
825bc4a02d
aarch64: spawn: split out arch specific mods
2021-01-15 09:12:30 -07:00