Philipp Oppermann
5a879058c9
Minor fixes
2020-03-26 13:42:05 +01:00
Philipp Oppermann
c26d36ebce
Prevent deadlock by basing DummyWaker directly on RawWaker
...
Don't use Arc for DummyWaker. It causes a drop in the `add_scancode` function, which can easily lead to a deadlock because the function is called directly from the interrupt handler.
2020-03-26 13:42:05 +01:00
Philipp Oppermann
89f5350ac4
Start explaining the deadlock problem caused by Arc dealloc
2020-03-26 13:42:05 +01:00
Philipp Oppermann
c423363266
Small fixes to text and code examples
2020-03-26 13:42:05 +01:00
Philipp Oppermann
000adfb2be
Create a keyboard task and use it with our SimpleExecutor
2020-03-26 13:42:05 +01:00
Philipp Oppermann
4f29fdea72
Add Waker support to the poll_next implementation on ScancodeStream
2020-03-26 13:42:05 +01:00
Philipp Oppermann
c3648e4b20
Implement Stream for ScancodeStream
2020-03-26 13:42:05 +01:00
Philipp Oppermann
dd83feec2d
Add section about filling the scancode queue
2020-03-26 13:42:05 +01:00
Philipp Oppermann
45afd2032b
Add section about scancode queue
2020-03-26 13:42:05 +01:00
Philipp Oppermann
744314cb3a
Begin section about async keyboard interrupt
2020-03-26 13:41:25 +01:00
Philipp Oppermann
1907e5d3ce
Summarize execution steps for the simple executor example
2020-03-26 13:41:25 +01:00
Philipp Oppermann
50db561774
Update implementation section
2020-03-26 13:41:25 +01:00
Philipp Oppermann
326a35939a
Start implementation section
2020-03-26 13:41:25 +01:00
Philipp Oppermann
ae167faee5
Explain how async/await implements cooperative multitasking
2020-03-26 13:41:25 +01:00
Philipp Oppermann
fb0f30b9f0
Write section about executors and wakers
2020-03-26 13:41:25 +01:00
Philipp Oppermann
75e2626dc0
Some minor improvements
2020-03-26 13:41:25 +01:00
Philipp Oppermann
def0e6762d
Add images for pinning section
2020-03-26 13:41:25 +01:00
Rob Gries
ba6452c5b0
Fix typos ( #759 )
2020-03-26 13:41:25 +01:00
Philipp Oppermann
817c0c56ab
Fix typo
2020-03-26 13:41:25 +01:00
Philipp Oppermann
81f71982f4
Finish first draft of pinning section
2020-03-26 13:41:25 +01:00
Philipp Oppermann
bf07f26e73
Begin section about pinning
2020-03-26 13:41:25 +01:00
Philipp Oppermann
642ff0f27f
Minor improvement
2020-03-26 13:41:25 +01:00
Philipp Oppermann
58faf5adf0
Remove old section
2020-03-26 13:41:25 +01:00
Philipp Oppermann
868a6f03ec
Add explantion for state machine code
2020-03-26 13:41:25 +01:00
Philipp Oppermann
2ff011ffba
Split code example into individual match cases; add code for example
2020-03-26 13:41:25 +01:00
Philipp Oppermann
7ce491df53
Start creating full state machine for example
2020-03-26 13:41:25 +01:00
Philipp Oppermann
3d89841a51
Update async/await sections and 'saving state' section
2020-03-26 13:41:25 +01:00
Philipp Oppermann
3cff5d0961
Small improvements
2020-03-26 13:41:25 +01:00
Philipp Oppermann
51a02a4064
Typo fix
2020-03-26 13:41:25 +01:00
Philipp Oppermann
752accdd33
Explain how to work with futures and introduce async/await
2020-03-26 13:41:25 +01:00
Philipp Oppermann
bdcd392dbf
Start explaining futures in Rust
2020-03-26 13:40:34 +01:00
Philipp Oppermann
6f7c5a35dd
Begin a new post about async/await
2020-03-26 13:40:34 +01:00
StackDoubleFlow
4feaffe102
Use a instead of an before a constant ( #766 )
2020-03-17 08:48:17 +01:00
Philipp Oppermann
e0686209f4
Fix cargo doc links that were moved
...
Move occured in https://github.com/rust-lang/cargo/pull/7733 and was just released together with Rust 1.42.
2020-03-13 13:47:26 +01:00
Patrick
aeafe57c5d
Removed unnecessary word ( #765 )
...
Removed the word "executes" from "The CPU executes tries to write to `0xdeadbeef`, which causes a page fault."
2020-03-11 13:07:22 +01:00
Philipp Oppermann
82c6a5dd60
Update x86_64 dependency to version 0.9.6
2020-03-08 14:38:38 +01:00
Philipp Oppermann
f9002f9f9b
Update Heap Allocation post for new spinlock type of linked_list_allocator
2020-03-06 14:56:07 +01:00
Philipp Oppermann
bf4c928214
Update Heap Allocation post for #763
2020-03-06 11:50:29 +01:00
Philipp Oppermann
bfdc1e96a6
Create February status update
2020-03-02 11:42:19 +01:00
Philipp Oppermann
fb920af5dc
Hardware Interrupts: Update pc-keyboard crate to v0.5.0
2020-02-26 12:17:35 +01:00
Philipp Oppermann
0619f3a9e7
Convert all external links to https (if supported)
2020-02-21 11:53:34 +01:00
Philipp Oppermann
b532c052ad
Double Faults: A missing handler leads to a #GP exception (not a #NP)
...
A IDT entry that is zero is not valid (e.g. the must-be-one bits are not set). For this reason, a general protection fault occurs instead of a segment-not-present fault.
See https://github.com/phil-opp/blog_os/issues/449#issuecomment-558906316 for more information.
2020-02-19 10:58:55 +01:00
Philipp Oppermann
a392065ca8
Merge pull request #732 from phil-opp/phil-opp-patch-1
...
Mention in "Paging Introduction" that a CPU with 5-level paging is available now
2020-02-18 14:58:21 +01:00
Philipp Oppermann
2cb6d2f3d0
Add a _index.md to prevent orphan pages
2020-02-17 13:45:49 +01:00
Philipp Oppermann
65da18d143
Fix dead links
2020-02-17 13:41:22 +01:00
Philipp Oppermann
db69d016a9
Add metadata to translations and list translators
2020-02-17 12:04:12 +01:00
Philipp Oppermann
0ae8c972bb
Specify a template for zh-TW posts
2020-02-17 11:18:09 +01:00
Philipp Oppermann
04fae1194f
Remove stale link
2020-02-17 11:04:04 +01:00
Philipp Oppermann
0f8bd7fab8
Fix internal link syntax in translation
2020-02-17 10:49:00 +01:00
Philipp Oppermann
7124ce742f
Merge branch 'master' into translations
2020-02-17 10:38:43 +01:00