mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-16 14:18:27 +00:00
thread: rearrange thread context management
Use a bit allocator for the allocation management of thread contexts, instead of holding allocation information within the Thread_base objects, which lead to race conditions in the past. Moreover, extend the Thread_base class interface with the ability to to add additional stacks to a thread, and associate the context they're located in with the corresponding Thread_base object. Additional stacks can be used to do user-level scheduling with stack switching, without breaking Genode's API. Fixes #1024 Fixes #1036
This commit is contained in:
committed by
Christian Helmuth
parent
66c5887bd3
commit
5447c406e5
@ -95,13 +95,15 @@ namespace Genode {
|
||||
/**
|
||||
* Thread-context area configuration.
|
||||
*/
|
||||
static addr_t context_area_virtual_base() { return 0x40000000UL; }
|
||||
static addr_t context_area_virtual_size() { return 0x10000000UL; }
|
||||
static constexpr addr_t context_area_virtual_base() {
|
||||
return 0x40000000UL; }
|
||||
static constexpr addr_t context_area_virtual_size() {
|
||||
return 0x10000000UL; }
|
||||
|
||||
/**
|
||||
* Size of virtual address region holding the context of one thread
|
||||
*/
|
||||
static addr_t context_virtual_size() { return 0x00100000UL; }
|
||||
static constexpr addr_t context_virtual_size() { return 0x00100000UL; }
|
||||
};
|
||||
|
||||
struct Native_pd_args { };
|
||||
|
Reference in New Issue
Block a user