Philipp Oppermann
3d485535ae
Refactor: Move interrupt wakers/operations into separate modules
2020-03-09 08:25:24 +01:00
Philipp Oppermann
08582948c5
Let executor enable interrupts
2020-03-08 14:51:51 +01:00
Philipp Oppermann
b3ba0ba4e9
Use new enable_interrupts_and_hlt function of x86_64
2020-03-08 14:50:58 +01:00
Philipp Oppermann
c3ea4190ca
Merge branch 'post-11' into post-12-async-await
2020-03-08 14:48:33 +01:00
Philipp Oppermann
714d9cef7d
Merge branch 'post-10' into post-11
2020-03-08 14:30:38 +01:00
Philipp Oppermann
7b0d8f05ba
Fix code for x86_64 v0.9.5 update
2020-03-08 14:30:33 +01:00
Philipp Oppermann
f75d63853f
Refactor Executor::run into separate methods
2020-03-08 13:49:36 +01:00
Philipp Oppermann
378159ce76
Simplify executor by removing separate Spawner type
2020-03-08 13:07:43 +01:00
Philipp Oppermann
a5ff4261a0
Handle timer interrupts using async task too
2020-02-28 19:09:15 +01:00
Philipp Oppermann
ea83d905fe
Fix wrong calculation of task ID
...
Pin implements Deref too, so by dereferencing only once we get a `&Box` reference. Since Box also implements Future, the type of `future_ref` was still correct. To avoid this error in the future, we added an assertion to catch duplicate task IDson `pending_tasks.insert()`.
2020-02-28 19:08:31 +01:00
Philipp Oppermann
786a7a6922
Use crossbeam-queue and AtomicWaker for async keypress handling
2020-02-28 17:52:51 +01:00
Philipp Oppermann
6329274f02
Create a basic executor based on crossbeam_queue
2020-02-28 11:42:36 +01:00
Philipp Oppermann
921dd54207
Merge branch 'post-10' into post-11
2020-02-26 12:22:10 +01:00
Philipp Oppermann
c7cc718ae3
Merge branch 'post-09' into post-10
2020-02-26 12:22:06 +01:00
Philipp Oppermann
8fc746555d
Merge branch 'post-08' into post-09
2020-02-26 12:21:28 +01:00
Philipp Oppermann
9324ea45a5
Merge branch 'post-07' into post-08
2020-02-26 12:21:28 +01:00
Ryan Kennedy
de509e058f
Switched to HandleControl::Ignore
2020-02-25 10:32:39 -06:00
Ryan Kennedy
2a8f499f73
Might help if I use cargo fmt
2020-02-22 19:02:57 -06:00
Ryan Kennedy
2634bb2d37
Updated pc-keyboard to 0.5.0
2020-02-22 18:55:21 -06:00
Philipp Oppermann
3a6d3153a4
Don't panic on overflow in allocator; return null pointer instead ( #738 )
2020-02-04 09:47:39 +01:00
Philipp Oppermann
00fedc801e
Use LinkedListAllocator::lock instead of self.inner.lock()
2020-01-30 13:03:34 +01:00
Philipp Oppermann
0f74db4812
Implement align_up using align_offset from Rust's standard library ( #723 )
...
Improve `align_up` performance using a bitmask
2020-01-28 10:39:14 +01:00
Philipp Oppermann
93fd330ab9
Use bitmask instead of align_offset
2020-01-28 10:29:53 +01:00
Philipp Oppermann
3ad5f117c2
Use checked addition for allocator implementations ( #726 )
2020-01-27 13:25:08 +01:00
Philipp Oppermann
d1678f5a96
Implement align_up using align_offset from Rust's standard library
2020-01-22 11:35:29 +01:00
Philipp Oppermann
002d6f255f
Set FixedSizeBlockAllocator as global allocator
2020-01-20 14:09:00 +01:00
Philipp Oppermann
6c3bf0b10f
Implement GlobalAlloc::dealloc
2020-01-20 14:07:47 +01:00
Philipp Oppermann
7a792f5cb0
Implement GlobalAlloc::alloc
2020-01-20 14:07:02 +01:00
Philipp Oppermann
93b4dcf434
Add skeleton for GlobalAlloc implementation
2020-01-20 14:06:26 +01:00
Philipp Oppermann
821dd2adb4
Add function to calculate the list index
2020-01-20 14:05:24 +01:00
Philipp Oppermann
d636939b51
Add FixedSizeBlockAllocator::fallback_alloc method
2020-01-20 14:05:01 +01:00
Philipp Oppermann
9b7326541e
Add FixedSizeBlockAllocator type
2020-01-20 14:04:13 +01:00
Philipp Oppermann
4f234b67ef
Add ListNode type and BLOCK_SIZES constant
2020-01-20 14:02:57 +01:00
Philipp Oppermann
7381e11f3c
Create a new fixed_size_block allocator submodule
2020-01-20 14:01:59 +01:00
Philipp Oppermann
a9fe65a0ce
Use new LinkedListAllocator
2020-01-10 13:04:46 +01:00
Philipp Oppermann
2001814119
Implement LinkedListAllocator::size_align
2020-01-10 13:00:16 +01:00
Philipp Oppermann
a5c50e7408
Implement GlobalAlloc for LinkedListAllocator
2020-01-10 11:52:04 +01:00
Philipp Oppermann
70a52c291d
Implement alloc_from_region
2020-01-10 11:48:56 +01:00
Philipp Oppermann
c56bfa27e4
Implement find_region
2020-01-10 11:46:10 +01:00
Philipp Oppermann
55aec9ebf3
Apply rustfmt to ListNode::new function
2020-01-10 11:44:38 +01:00
Philipp Oppermann
2e1d132a9a
Implement add_free_region
2020-01-10 11:44:17 +01:00
Philipp Oppermann
63e8577d77
Create a basic LinkedListAllocator type
2020-01-10 11:42:04 +01:00
Philipp Oppermann
45be3f0648
Use our BumpAllocator instead of linked_list_allocator crate
2020-01-09 15:37:43 +01:00
Philipp Oppermann
055c560a7a
Add an align_up function
2020-01-09 15:36:06 +01:00
Philipp Oppermann
e87044a7ee
Implement GlobalAlloc for BumpAllocator
2020-01-09 15:35:03 +01:00
Philipp Oppermann
08d2289dad
Add a Locked wrapper type that can be used to implement GlobalAlloc
2020-01-09 15:34:04 +01:00
Philipp Oppermann
7c84dbaa1d
Create a basic BumpAllocator type
2020-01-09 15:25:37 +01:00
Philipp Oppermann
869a69e531
Move #[global_allocator] into allocator module ( #714 )
...
The Rust issue that the #[global_allocator] cannot be defined in submodules was fixed.
2020-01-08 12:38:06 +01:00
Philipp Oppermann
3ac5318c94
Remove now unneeded unsafe block
...
The `map_to` method is safe since x86_64 0.8.1.
2019-12-11 16:47:45 +01:00
Philipp Oppermann
e94a489a31
Merge branch 'post-09' into post-10
2019-12-11 16:38:08 +01:00