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
83b67df8af
Merge branch 'post-10' into post-11
2020-03-08 14:39:38 +01:00
Philipp Oppermann
02c36bae29
Merge branch 'post-09' into post-10
2020-03-08 14:39:38 +01:00
Philipp Oppermann
70deb3168e
Merge branch 'post-08' into post-09
2020-03-08 14:39:38 +01:00
Philipp Oppermann
9d4a960bcb
Merge branch 'post-07' into post-08
2020-03-08 14:39:38 +01:00
Philipp Oppermann
564ba9f9ac
Merge branch 'post-06' into post-07
2020-03-08 14:39:38 +01:00
Philipp Oppermann
8a4f3ab2a8
Merge branch 'post-05' into post-06
2020-03-08 14:39:37 +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
3735ae51c9
Merge branch 'post-10' into post-11
2020-03-08 14:29:03 +01:00
Philipp Oppermann
f230ee4258
Merge branch 'post-09' into post-10
2020-03-08 14:29:00 +01:00
Philipp Oppermann
a5d409b777
Merge branch 'post-08' into post-09
2020-03-08 14:28:03 +01:00
Philipp Oppermann
33df0bb2a3
Merge branch 'post-07' into post-08
2020-03-08 14:28:03 +01:00
Philipp Oppermann
9a61e1724b
Merge branch 'post-06' into post-07
2020-03-08 14:27:58 +01:00
Philipp Oppermann
dbe1353fd2
Merge branch 'post-05' into post-06
2020-03-08 14:27:42 +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
a430d5ef06
Merge branch 'post-10' into post-11
2020-03-06 11:58:45 +01:00
Philipp Oppermann
39f14b6d0b
Merge pull request #763 from phil-opp/post-10-update-linked-list-alloc
...
Update linked_list_allocator to v0.8.0
2020-03-06 11:58:23 +01:00
Philipp Oppermann
dd1daf2652
Update linked_list_allocator to v0.8.0
2020-03-06 11:47:49 +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
f4331daa25
Merge branch 'post-10' into post-11
2020-02-26 12:48:22 +01:00
Philipp Oppermann
9a415c85b9
Merge branch 'post-09' into post-10
2020-02-26 12:47:51 +01:00
Philipp Oppermann
79a0172ace
Merge branch 'post-08' into post-09
2020-02-26 12:47:32 +01:00
Philipp Oppermann
9af6337f67
Merge branch 'post-07' into post-08
2020-02-26 12:47:23 +01:00
Philipp Oppermann
725e03b5c5
Merge branch 'post-06' into post-07
2020-02-26 12:47:07 +01:00
Philipp Oppermann
16afb268f8
Merge branch 'post-05' into post-06
2020-02-26 12:46:19 +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
Philipp Oppermann
d35ab51629
Merge pull request #756 from RKennedy9064/post-07
...
Updated pc-keyboard to `0.5.0`
2020-02-26 12:18:13 +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
9fb6c1d0bd
Merge branch 'post-10' into post-11
2020-02-04 09:39:02 +01:00
Philipp Oppermann
5ed04baab0
Update linked_list_allocator dependency
2020-02-04 09:38:52 +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
75d826bf69
Add a test that memory is reused with a long lived allocation
...
This test fails for the bump allocator because it can only free the complete heap at once, which is prevented by the single long-lived allocation.
2020-01-09 15:45:38 +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
882c83f9de
Update many_boxes test to scale with heap size ( #716 )
...
Instead of using a hardcoded number of boxes, use the HEAP_SIZE constant. This ensures that we get a test failure because of an out-of-memory error when the allocator does not reuse freed memory.
2020-01-09 12:58:29 +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
817267e51c
Update Github Actions badge for post-10
2019-12-12 09:32:59 +01:00
Philipp Oppermann
9e75078dab
Merge branch 'post-09' into post-10
2019-12-12 09:32:46 +01:00
Philipp Oppermann
ed3af8e984
Update Github Actions badge for post-09
2019-12-12 09:32:30 +01:00
Philipp Oppermann
1d1075b35e
Merge branch 'post-08' into post-09
2019-12-12 09:32:16 +01:00
Philipp Oppermann
00f39aaccb
Update Github Actions badge for post-08
2019-12-12 09:31:56 +01:00
Philipp Oppermann
f815a1742a
Merge branch 'post-07' into post-08
2019-12-12 09:31:42 +01:00
Philipp Oppermann
2bf70751bf
Update Github Actions badge for post-07
2019-12-12 09:31:24 +01:00
Philipp Oppermann
ad2590068d
Merge branch 'post-06' into post-07
2019-12-12 09:31:07 +01:00
Philipp Oppermann
c211412ce2
Update Github Actions badge for post-06
2019-12-12 09:30:51 +01:00
Philipp Oppermann
93d3de6feb
Merge branch 'post-05' into post-06
2019-12-12 09:30:37 +01:00
Philipp Oppermann
41f38d92f2
Merge branch 'post-09' into post-10
2019-12-12 09:23:31 +01:00
Philipp Oppermann
8eb44dcbd5
Merge branch 'post-08' into post-09
2019-12-12 09:23:31 +01:00
Philipp Oppermann
1f771a6820
Merge branch 'post-07' into post-08
2019-12-12 09:23:31 +01:00
Philipp Oppermann
36b8fd402f
Merge branch 'post-06' into post-07
2019-12-12 09:23:31 +01:00
Philipp Oppermann
651c629ffd
Merge branch 'post-05' into post-06
2019-12-12 09:23:30 +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
Philipp Oppermann
f392d8a7f5
Merge pull request #703 from phil-opp/post-09-fix
...
Update frame allocation code to x86_64 0.8.1
2019-12-11 16:37:49 +01:00
Philipp Oppermann
c7bc26d8ee
Update frame allocation code to x86_64 0.8.1
2019-12-11 16:26:38 +01:00
Philipp Oppermann
3171ab584b
Merge branch 'post-07' into post-08
2019-12-10 17:31:24 +01:00
Philipp Oppermann
dfd65d579c
Merge branch 'post-06' into post-07
2019-12-10 17:31:24 +01:00
Philipp Oppermann
8d8a7e0973
Merge branch 'post-05' into post-06
2019-12-10 17:31:24 +01:00
Philipp Oppermann
9da9ecb515
Merge branch 'post-09' into post-10
2019-12-10 17:31:24 +01:00
Philipp Oppermann
6c1594ea24
Merge branch 'post-08' into post-09
2019-12-10 17:31:24 +01:00
Philipp Oppermann
9d31eb8aa8
Merge branch 'post-07' into post-08
2019-12-10 17:17:53 +01:00
Philipp Oppermann
3ffd71723f
Merge branch 'post-06' into post-07
2019-12-10 17:17:53 +01:00
Philipp Oppermann
f226ba0c3f
Merge branch 'post-09' into post-10
2019-12-10 17:17:53 +01:00
Philipp Oppermann
94aa2c4093
Merge branch 'post-08' into post-09
2019-12-10 17:17:53 +01:00
Philipp Oppermann
423b6e49cc
Merge pull request #702 from phil-opp/post-06-fix
...
Make double fault handlers diverging
2019-12-10 17:17:00 +01:00
Philipp Oppermann
d1cf8000a3
Make double fault handlers diverging
...
Required by x86_64 0.8.0.
2019-12-10 17:02:46 +01:00
Philipp Oppermann
2436801a05
Merge branch 'post-07' into post-08
2019-12-10 16:55:41 +01:00
Philipp Oppermann
617d0e6db6
Merge branch 'post-06' into post-07
2019-12-10 16:55:41 +01:00
Philipp Oppermann
c1fc7171fb
Merge branch 'post-09' into post-10
2019-12-10 16:55:41 +01:00
Philipp Oppermann
259742a5e3
Merge branch 'post-08' into post-09
2019-12-10 16:55:41 +01:00
Philipp Oppermann
16c499f966
Merge branch 'post-05' into post-06
2019-12-10 16:55:41 +01:00
Philipp Oppermann
cf527e9ce7
Update post-10 to new lockfile format
2019-11-28 14:08:28 +01:00
Philipp Oppermann
c891acb234
Merge branch 'post-09' into post-10
2019-11-28 14:08:08 +01:00
Philipp Oppermann
6876e82fc5
Merge branch 'post-08' into post-09
2019-11-28 14:07:43 +01:00
Philipp Oppermann
1b1953678c
Merge branch 'post-07' into post-08
2019-11-28 14:07:29 +01:00
Philipp Oppermann
d4c256c653
Update post-07 to new lockfile format
2019-11-28 14:07:23 +01:00
Philipp Oppermann
9e5ff8dd78
Merge branch 'post-06' into post-07
2019-11-28 14:07:03 +01:00
Philipp Oppermann
9d6ba0d31e
Merge branch 'post-05' into post-06
2019-11-28 14:06:28 +01:00
Philipp Oppermann
b9a0702bc0
Merge branch 'post-09' into post-10
2019-11-25 13:35:20 +01:00
Philipp Oppermann
84ddda6a3f
Merge branch 'post-08' into post-09
2019-11-25 13:35:20 +01:00
Philipp Oppermann
37b8b42cba
Add missing hlt_loop import
2019-11-25 13:35:18 +01:00
Philipp Oppermann
2919cbdefc
Merge branch 'post-09' into post-10
2019-11-25 13:25:15 +01:00
Philipp Oppermann
f85664fd6b
Merge branch 'post-08' into post-09
2019-11-25 13:25:15 +01:00
Philipp Oppermann
1e86c9f5f0
Merge branch 'post-07' into post-08
2019-11-25 13:25:15 +01:00
Philipp Oppermann
084a77775f
Merge branch 'post-06' into post-07
2019-11-25 13:25:02 +01:00
Philipp Oppermann
590585da33
Merge branch 'post-05' into post-06
2019-11-25 13:24:09 +01:00
Philipp Oppermann
059ea76848
Merge branch 'post-09' into post-10
2019-11-22 16:33:23 +01:00
Philipp Oppermann
a65573b061
Merge branch 'post-08' into post-09
2019-11-22 16:33:23 +01:00
Philipp Oppermann
723776f852
Merge branch 'post-07' into post-08
2019-11-22 16:33:23 +01:00
Philipp Oppermann
1bf2a49526
Merge pull request #689 from phil-opp/post-07-new
...
post-07: Use panic instead of println + hlt_loop for double fault handler
2019-11-22 16:33:00 +01:00
Philipp Oppermann
b5b37d6e2b
Remove unused crate::hlt_loop import
2019-11-22 16:12:28 +01:00
Philipp Oppermann
c3f76cf1f0
Use panic instead of println + hlt_loop for double fault handler
2019-11-22 16:06:56 +01:00
Philipp Oppermann
2f085b7310
Merge branch 'post-09' into post-10
2019-11-22 16:05:13 +01:00
Philipp Oppermann
385004cab2
Merge branch 'post-08' into post-09
2019-11-22 16:05:13 +01:00
Philipp Oppermann
fab00675e1
Merge branch 'post-07' into post-08
2019-11-22 16:05:13 +01:00
Philipp Oppermann
12eed472ba
Merge branch 'post-06' into post-07
2019-11-22 16:05:10 +01:00
Philipp Oppermann
a604e1fa14
Merge branch 'post-06' of github.com:phil-opp/blog_os into post-06
2019-11-22 16:04:09 +01:00
Philipp Oppermann
cc713e4570
Merge branch 'post-09' into post-10
2019-11-22 15:57:18 +01:00
Philipp Oppermann
9696612b2b
Merge branch 'post-08' into post-09
2019-11-22 15:57:18 +01:00
Philipp Oppermann
b0b0ebda06
Merge branch 'post-07' into post-08
2019-11-22 15:57:18 +01:00
Philipp Oppermann
1e8720b4ff
Merge branch 'post-06' into post-07
2019-11-22 15:57:18 +01:00
Philipp Oppermann
05c3a17c49
Merge branch 'post-05' into post-06
2019-11-22 15:57:18 +01:00
Philipp Oppermann
3470636653
Use panic! instead of println! + loop in double fault handler ( #687 )
...
This avoids an endless loop when a double fault occurs while running `cargo xtest`.
2019-11-22 15:56:56 +01:00
Philipp Oppermann
b3066e9a78
Merge branch 'post-09' into post-10
2019-10-08 19:44:38 +02:00
Philipp Oppermann
d5d7db0de6
Merge branch 'post-08' into post-09
2019-10-08 19:44:38 +02:00
Philipp Oppermann
271f65e21c
Merge branch 'post-07' into post-08
2019-10-08 19:44:38 +02:00
Philipp Oppermann
c83160554e
Merge branch 'post-06' into post-07
2019-10-08 19:44:38 +02:00
Philipp Oppermann
1a1ce5120f
Merge branch 'post-05' into post-06
2019-10-08 19:44:38 +02:00
Philipp Oppermann
66c3a0de76
Merge branch 'post-09' into post-10
2019-09-25 13:21:18 +02:00
Philipp Oppermann
45375d1f1b
Merge branch 'post-08' into post-09
2019-09-25 13:21:06 +02:00
Philipp Oppermann
9cab6fb659
Merge branch 'post-07' into post-08
2019-09-25 13:20:55 +02:00
Philipp Oppermann
e7446d2df6
Merge branch 'post-06' into post-07
2019-09-25 13:20:38 +02:00
Philipp Oppermann
78fdba7606
Merge branch 'post-05' into post-06
2019-09-25 13:20:13 +02:00
Philipp Oppermann
96d9de76b0
Fix: memory::init expects a VirtAddr
2019-09-15 10:56:15 +02:00
Philipp Oppermann
f56e4d24e3
Add missing import
2019-09-14 19:08:53 +02:00
Philipp Oppermann
8d3d712cef
Merge branch 'post-09' into post-10
2019-09-14 19:06:30 +02:00
Philipp Oppermann
4897e9c4d5
Merge pull request #667 from phil-opp/post-09-offset_page_table
...
Update post-09 branch for improved Paging Implementation Post
2019-09-14 19:04:53 +02:00
Philipp Oppermann
5cced71fb0
Directly use OffsetPageTable for create_example_mapping instead of impl trait
2019-09-14 18:33:37 +02:00
Philipp Oppermann
7ec727f69f
Update comment
2019-09-14 18:33:16 +02:00
Philipp Oppermann
e75c623985
Merge branch 'post-07' into post-08
2019-09-13 17:43:25 +02:00
Philipp Oppermann
27a0ae6000
Merge branch 'post-06' into post-07
2019-09-13 17:43:25 +02:00
Philipp Oppermann
8d6915beba
Merge branch 'post-05' into post-06
2019-09-13 17:43:25 +02:00
Philipp Oppermann
5f66b437d5
Merge branch 'post-09' into post-10
2019-09-13 17:43:25 +02:00
Philipp Oppermann
8059c229c5
Merge branch 'post-08' into post-09
2019-09-13 17:43:25 +02:00
Philipp Oppermann
dce26ede7e
Merge branch 'post-07' into post-08
2019-09-13 10:53:50 +02:00
Philipp Oppermann
cfe2e23a9c
Merge branch 'post-06' into post-07
2019-09-13 10:53:50 +02:00
Philipp Oppermann
0eaaa3ff2b
Merge branch 'post-05' into post-06
2019-09-13 10:53:50 +02:00
Philipp Oppermann
0694f29946
Merge branch 'post-09' into post-10
2019-09-13 10:53:50 +02:00
Philipp Oppermann
bc2099d31d
Merge branch 'post-08' into post-09
2019-09-13 10:53:50 +02:00
Philipp Oppermann
211ec3898b
Use OffsetPageTable instead of MappedPageTable
2019-09-11 13:40:36 +02:00
Philipp Oppermann
889c0771d6
Merge branch 'post-09' into post-10
2019-09-11 13:33:07 +02:00
Philipp Oppermann
2227fa434f
Merge branch 'post-08' into post-09
2019-09-11 13:29:14 +02:00
Philipp Oppermann
20ffda14f4
Merge branch 'post-07' into post-08
2019-09-11 13:28:53 +02:00
Philipp Oppermann
e4ce277ca9
Merge branch 'post-06' into post-07
2019-09-11 13:19:01 +02:00
Philipp Oppermann
086304c9c4
Merge branch 'post-05' into post-06
2019-09-11 13:18:19 +02:00
Philipp Oppermann
e74d9753f2
Merge branch 'post-09' into post-10
2019-09-11 11:21:15 +02:00
Philipp Oppermann
23d554548a
Merge branch 'post-08' into post-09
2019-09-11 11:21:15 +02:00
Philipp Oppermann
0cd7d4cbcc
Merge branch 'post-07' into post-08
2019-09-11 11:21:15 +02:00
Philipp Oppermann
a9bcf44012
Merge branch 'post-06' into post-07
2019-09-11 11:21:15 +02:00
Philipp Oppermann
2e27b91220
Merge branch 'post-05' into post-06
2019-09-11 11:21:15 +02:00
Philipp Oppermann
9fc71547d7
Run cargo update
2019-09-11 10:59:31 +02:00
Philipp Oppermann
caa9d8b0e4
Merge branch 'post-09' into post-10
2019-09-11 10:59:18 +02:00
Philipp Oppermann
091f7ef153
Merge branch 'post-08' into post-09
2019-09-11 10:58:56 +02:00
Philipp Oppermann
76d03974fe
Merge branch 'post-07' into post-08
2019-09-11 10:58:40 +02:00
Philipp Oppermann
881ad152a0
Merge branch 'post-06' into post-07
2019-09-11 10:58:19 +02:00
Philipp Oppermann
cb77074476
Merge branch 'post-05' into post-06
2019-09-11 10:58:02 +02:00
Philipp Oppermann
29512ddd31
Merge branch 'post-09' into post-10
2019-09-11 10:32:57 +02:00
Philipp Oppermann
38d606b4d1
Merge branch 'post-08' into post-09
2019-09-11 10:32:57 +02:00
Philipp Oppermann
3dcc43b374
Merge branch 'post-07' into post-08
2019-09-11 10:32:57 +02:00
Philipp Oppermann
0c713b9978
Merge branch 'post-06' into post-07
2019-09-11 10:32:57 +02:00
Philipp Oppermann
d0afb95b50
Merge branch 'post-05' into post-06
2019-09-11 10:32:57 +02:00
Philipp Oppermann
a7943e7e55
Merge branch 'post-09' into post-10
2019-09-11 10:12:46 +02:00
Philipp Oppermann
ae75d8b209
Merge branch 'post-08' into post-09
2019-09-11 10:12:46 +02:00
Philipp Oppermann
f7fc89fd31
Merge branch 'post-07' into post-08
2019-09-11 10:12:46 +02:00
Philipp Oppermann
1427993cac
Merge branch 'post-06' into post-07
2019-09-11 10:12:46 +02:00
Philipp Oppermann
1b0378f87e
Merge branch 'post-05' into post-06
2019-09-11 10:12:46 +02:00
Philipp Oppermann
bcdadec5b6
Merge branch 'post-09' into post-10
2019-09-11 10:11:25 +02:00
Philipp Oppermann
e0d5cdd625
Merge branch 'post-08' into post-09
2019-09-11 10:11:25 +02:00
Philipp Oppermann
db92a921b8
Merge branch 'post-07' into post-08
2019-09-11 10:11:25 +02:00
Philipp Oppermann
84eb8632f5
Merge branch 'post-06' into post-07
2019-09-11 10:11:25 +02:00
Philipp Oppermann
b91f71784d
Merge branch 'post-05' into post-06
2019-09-11 10:11:25 +02:00
Philipp Oppermann
17f8866264
Merge branch 'post-09' into post-10
2019-09-11 10:02:41 +02:00
Philipp Oppermann
3f95494ae8
Merge branch 'post-08' into post-09
2019-09-11 10:02:41 +02:00
Philipp Oppermann
80686ded94
Merge branch 'post-07' into post-08
2019-09-11 10:02:41 +02:00
Philipp Oppermann
cefa607569
Merge branch 'post-06' into post-07
2019-09-11 10:02:41 +02:00
Philipp Oppermann
6316a0e1df
Merge branch 'post-05' into post-06
2019-09-11 10:02:41 +02:00
Philipp Oppermann
a7ef4012d0
Merge branch 'post-09' into post-10
2019-09-10 11:12:54 +02:00
Philipp Oppermann
cabbbec72f
Merge branch 'post-08' into post-09
2019-09-10 11:12:54 +02:00
Philipp Oppermann
5a67b64d20
Merge branch 'post-07' into post-08
2019-09-10 11:12:54 +02:00
Philipp Oppermann
c2431ecf63
Merge branch 'post-06' into post-07
2019-09-10 11:12:54 +02:00
Philipp Oppermann
38cfb5e324
Merge branch 'post-05' into post-06
2019-09-10 11:12:54 +02:00
Philipp Oppermann
6f07c2b666
Merge branch 'post-09' into post-10
2019-09-10 10:21:14 +02:00
Philipp Oppermann
1dd7f03a7a
Merge branch 'post-08' into post-09
2019-09-10 10:21:14 +02:00
Philipp Oppermann
1a74b36c99
Merge branch 'post-07' into post-08
2019-09-10 10:21:14 +02:00
Philipp Oppermann
c87b221f5e
Merge branch 'post-06' into post-07
2019-09-10 10:21:14 +02:00
Philipp Oppermann
a9921e9448
Merge branch 'post-05' into post-06
2019-09-10 10:21:14 +02:00
Philipp Oppermann
e89c77398d
Merge branch 'post-09' into post-10
2019-08-07 12:40:04 +02:00
Philipp Oppermann
66c4eae9cf
Merge branch 'post-08' into post-09
2019-08-07 12:40:04 +02:00
Philipp Oppermann
175065ca2f
Merge branch 'post-07' into post-08
2019-08-07 12:40:04 +02:00
Philipp Oppermann
6ab4b0170f
Merge branch 'post-06' into post-07
2019-08-07 12:40:04 +02:00
Philipp Oppermann
9770d481f2
Merge branch 'post-05' into post-06
2019-08-07 12:40:04 +02:00
Philipp Oppermann
f3a7689f33
Merge branch 'post-09' into post-10
2019-07-22 10:46:35 +02:00
Philipp Oppermann
e721878e4b
Merge branch 'post-08' into post-09
2019-07-22 10:46:35 +02:00
Philipp Oppermann
7020999ab8
The error code issue is fixed, so let's print it ( #643 )
...
See https://github.com/phil-opp/blog_os/issues/513 for more information.
2019-07-22 10:46:19 +02:00
Philipp Oppermann
14d0e07b3e
Merge branch 'post-09' into post-10
2019-07-22 10:36:58 +02:00
Philipp Oppermann
f2eb6cec9a
Merge branch 'post-08' into post-09
2019-07-22 10:36:51 +02:00
Philipp Oppermann
30e0b16a81
Merge branch 'post-07' into post-08
2019-07-22 10:36:51 +02:00
Philipp Oppermann
05248fe322
Merge branch 'post-06' into post-07
2019-07-22 10:36:37 +02:00
Philipp Oppermann
7baa3b0155
Merge branch 'post-05' into post-06
2019-07-22 10:36:23 +02:00
Philipp Oppermann
9651eb7a3b
Merge branch 'post-09' into post-10
2019-07-18 10:17:50 +02:00
Philipp Oppermann
bc4ddcef05
Merge branch 'post-08' into post-09
2019-07-18 10:17:37 +02:00
Philipp Oppermann
d7d63af4cc
Merge branch 'post-07' into post-08
2019-07-18 10:17:20 +02:00
Philipp Oppermann
ac2b6b1307
Merge branch 'post-06' into post-07
2019-07-18 10:17:10 +02:00
Philipp Oppermann
08bf4405a9
Merge branch 'post-05' into post-06
2019-07-18 10:17:05 +02:00
Philipp Oppermann
89e3e2b190
Use correct build badge in post-10 Readme
2019-07-07 11:26:15 +02:00
Philipp Oppermann
004282138c
Merge branch 'post-09' into post-10
2019-07-07 11:25:48 +02:00
Philipp Oppermann
4580b85fe2
Use correct build badge in post-09 Readme
2019-07-07 11:25:40 +02:00
Philipp Oppermann
8c575388cf
Merge pull request #626 from phil-opp/code-heap
...
Code for new heap allocation post
2019-06-26 21:30:42 +02:00
Philipp Oppermann
4792ec41b1
Adjust comments to be equal with post
2019-06-26 21:08:08 +02:00
Philipp Oppermann
df75f7f4e8
Add an integration test for heap allocation
2019-06-26 17:45:32 +02:00
Philipp Oppermann
5cf3884396
Run cargo fmt
2019-06-26 16:59:38 +02:00
Philipp Oppermann
e5b6ba38ac
Update Readme for new post
2019-06-26 16:33:20 +02:00
Philipp Oppermann
f429a8ab03
Example use of Box, Vec, and Rc in kernel_main
2019-06-26 15:06:40 +02:00
Philipp Oppermann
d7484ab48b
Use linked_list_allocator crate instead of dummy allocator
2019-06-26 15:05:57 +02:00
Philipp Oppermann
06fc63028a
Create a heap memory area
2019-06-26 13:14:56 +02:00
Philipp Oppermann
d4623419b0
Try to use Box type in main.rs
...
This causes an allocation error because the Dummy::alloc function always returns a null pointer.
2019-06-26 12:34:57 +02:00
Philipp Oppermann
417c44159e
Add a alloc_error_handler function
2019-06-26 12:34:57 +02:00
Philipp Oppermann
ebbc6d55d2
Use dummy allocator as global allocator
2019-06-26 12:34:57 +02:00
Philipp Oppermann
c0367074ac
Create an allocator module with a dummy allocator
2019-06-26 12:34:57 +02:00
Philipp Oppermann
48e2175bac
Add a dependency on the alloc crate
2019-06-26 12:34:57 +02:00
Philipp Oppermann
954cfe977a
Merge branch 'post-07' into post-08
2019-06-23 18:07:34 +02:00
Philipp Oppermann
262f56c9e2
Merge branch 'post-06' into post-07
2019-06-23 18:07:34 +02:00
Philipp Oppermann
9d5b5f33f1
Merge branch 'post-05' into post-06
2019-06-23 18:07:34 +02:00
Philipp Oppermann
45e1e99390
Merge branch 'post-08' into post-09
2019-06-23 18:07:34 +02:00
Philipp Oppermann
eb86565308
Merge branch 'post-07' into post-08
2019-06-17 17:28:32 +02:00
Philipp Oppermann
061dee44eb
Merge branch 'post-06' into post-07
2019-06-17 17:28:32 +02:00
Philipp Oppermann
9b4b810bd3
Merge branch 'post-05' into post-06
2019-06-17 17:28:32 +02:00
Philipp Oppermann
b5793c34c6
Merge branch 'post-08' into post-09
2019-06-17 17:28:32 +02:00
Philipp Oppermann
bbeb63ec3d
Merge branch 'post-07' into post-08
2019-05-23 12:39:35 +02:00
Philipp Oppermann
fe35a21965
Merge branch 'post-06' into post-07
2019-05-23 12:39:35 +02:00
Philipp Oppermann
7a45083975
Merge branch 'post-05' into post-06
2019-05-23 12:39:35 +02:00
Philipp Oppermann
67ee45090d
Merge branch 'post-08' into post-09
2019-05-23 12:39:35 +02:00
Philipp Oppermann
a4a7b5e8d6
Merge branch 'post-07' into post-08
2019-05-09 15:38:47 +02:00
Philipp Oppermann
64d1a587e7
Merge branch 'post-08' into post-09
2019-05-09 15:38:47 +02:00
Philipp Oppermann
13923c59f2
Fix: Make keyboard port mutable
...
This is required because of the update to x86_64 0.7.0 (see #606 ).
2019-05-09 15:38:34 +02:00
Philipp Oppermann
01040fc643
Merge branch 'post-05' into post-06
2019-05-09 14:59:55 +02:00
Philipp Oppermann
189ab7d0d8
Merge branch 'post-07' into post-08
2019-05-09 14:59:55 +02:00
Philipp Oppermann
fbe279831e
Merge branch 'post-08' into post-09
2019-05-09 14:59:55 +02:00
Philipp Oppermann
09be8647d5
Merge branch 'post-06' into post-07
2019-05-09 14:59:55 +02:00
Philipp Oppermann
375d4d0479
Merge pull request #599 from phil-opp/post-09-new
...
Update `post-09` branch for version 0.6.0 of `x86_64` crate
2019-05-03 19:41:29 +02:00
Philipp Oppermann
7796d4c14a
FrameAllocator is an unsafe trait now
...
Make `BootInfoFrameAllocator` unsafe because the caller must guarantee that the given memory map is valid.
2019-05-03 19:29:14 +02:00
Philipp Oppermann
5a68816b45
Merge branch 'post-05' into post-06
2019-05-03 18:36:45 +02:00
Philipp Oppermann
a2beb9d2a6
Merge branch 'post-07' into post-08
2019-05-03 18:36:45 +02:00
Philipp Oppermann
a2d36342c1
Merge branch 'post-06' into post-07
2019-05-03 18:36:45 +02:00
Philipp Oppermann
78e4b22a2f
Merge branch 'post-08' into post-09
2019-05-03 18:36:45 +02:00
Philipp Oppermann
a867450e3b
Merge pull request #595 from phil-opp/redesign-frame-allocator
...
Avoid generic impl trait parameters in BootInfoFrameAllocator
2019-04-30 13:24:43 +02:00
Philipp Oppermann
b5ee44621c
Use an import for initializing BootInfoFrameAllocator
2019-04-30 13:10:53 +02:00
Philipp Oppermann
24a9e7abd2
Simplify FrameAllocator implementation using Iterator::nth
2019-04-30 12:47:45 +02:00
Philipp Oppermann
180c77d1f4
Avoid generic impl trait parameters in BootInfoFrameAllocator
2019-04-30 11:14:23 +02:00
Philipp Oppermann
247af45791
Merge branch 'post-08-new' into post-09-new
2019-04-26 15:50:18 +02:00
Philipp Oppermann
667c093594
Merge branch 'post-07-new' into post-08-new
2019-04-26 15:50:02 +02:00
Philipp Oppermann
abf640254a
Merge branch 'post-06-new' into post-07-new
2019-04-26 15:49:43 +02:00
Philipp Oppermann
111c3e1029
Comment out stack_overflow() call to keep cargo xtest working
2019-04-26 15:48:59 +02:00
Philipp Oppermann
fd0646fecf
Improve formatting
2019-04-26 15:29:43 +02:00
Philipp Oppermann
c8821cb226
Use entry_point macro in lib.rs too
2019-04-26 15:29:43 +02:00
Philipp Oppermann
2e531850b8
Remove redundant import
2019-04-26 15:29:43 +02:00
Philipp Oppermann
65dbb5ac48
Merge branch 'post-08-new' into post-09-new
2019-04-26 15:28:56 +02:00
Philipp Oppermann
62f913facc
Move test_main call to end of _start
2019-04-26 15:27:48 +02:00
Philipp Oppermann
d6f48d72aa
Remove duplicated import
2019-04-26 15:27:48 +02:00
Philipp Oppermann
2784998301
Update post number for Readme badge
2019-04-26 15:27:05 +02:00
Philipp Oppermann
6099fddd54
Merge branch 'post-07-new' into post-08-new
2019-04-26 15:26:47 +02:00
Philipp Oppermann
8854b6b751
Move hlt_loop up to keep cfg(test) functions together
2019-04-26 15:25:41 +02:00
Philipp Oppermann
51cdc4db8b
Use hlt_loop in lib.rs too
2019-04-26 15:25:41 +02:00
Philipp Oppermann
ae93dc18c3
Fix race condition in test_println_output test
2019-04-26 15:25:41 +02:00
Philipp Oppermann
acfdf929ad
Move PIC initialization and interrupt::enable to blog_os::init
2019-04-26 15:25:41 +02:00
Philipp Oppermann
3e6f242b52
Update post number for Readme badge
2019-04-26 15:24:38 +02:00
Philipp Oppermann
ad6cb02d5c
Merge branch 'post-06-new' into post-07-new-rebased
2019-04-26 15:24:28 +02:00
Philipp Oppermann
70d981e179
Simplify stack_overflow test
2019-04-26 15:14:38 +02:00
Philipp Oppermann
ee3d2219ab
Disable test harness for stack_overflow test
2019-04-26 15:14:38 +02:00
Philipp Oppermann
c5a39e0902
Add a stack overflow integration test
2019-04-26 15:14:38 +02:00
Philipp Oppermann
4774893a93
Call gdt::init from blog_os::init
2019-04-26 15:14:38 +02:00
Philipp Oppermann
3c59321b54
Remove old bootimage test integration test
2019-04-26 15:14:38 +02:00
Philipp Oppermann
f5345db3e6
Update post number for Readme badge
2019-04-26 15:11:49 +02:00
Philipp Oppermann
94622ebfd5
Merge branch 'post-05-new' into post-06-new-rebased
2019-04-26 15:11:24 +02:00
Philipp Oppermann
82014268da
Merge branch 'post-05-new' into post-06-new-rebased
2019-04-26 15:05:55 +02:00
Philipp Oppermann
16cf7e8e42
Merge branch 'post-09' into post-10
2019-04-25 11:08:11 +02:00
Philipp Oppermann
9c7faf92ed
Merge branch 'post-08' into post-09
2019-04-25 11:08:11 +02:00
Philipp Oppermann
db0489403a
Merge branch 'post-07' into post-08
2019-04-25 11:08:11 +02:00
Philipp Oppermann
e0d68fee24
Merge branch 'post-06' into post-07
2019-04-25 11:08:11 +02:00
Philipp Oppermann
19556d9e68
Merge branch 'post-09' into post-10
2019-04-11 15:32:21 +02:00
Philipp Oppermann
22ba71a3f6
Merge branch 'post-08' into post-09
2019-04-11 15:32:21 +02:00
Philipp Oppermann
25c6640c62
Merge branch 'post-07' into post-08
2019-04-11 15:32:21 +02:00
Philipp Oppermann
6f623dc7b4
Merge branch 'post-06' into post-07
2019-04-11 15:32:21 +02:00
Philipp Oppermann
338833262c
Merge branch 'post-09' into post-10
2019-04-06 17:35:17 +02:00
Philipp Oppermann
59d0a267d6
Merge branch 'post-08' into post-09
2019-04-06 17:35:17 +02:00
Philipp Oppermann
2053c59d2a
Merge branch 'post-07' into post-08
2019-04-06 17:35:17 +02:00
Philipp Oppermann
dc1f862177
Merge branch 'post-06' into post-07
2019-04-06 17:35:17 +02:00
Philipp Oppermann
77800d9212
Merge branch 'post-09' into post-10
2019-04-06 17:33:49 +02:00
Philipp Oppermann
71b3d0431f
Merge branch 'post-08' into post-09
2019-04-06 17:33:29 +02:00
Philipp Oppermann
823bc3c5a3
Merge branch 'post-07' into post-08
2019-04-06 17:31:55 +02:00
Philipp Oppermann
fdf0fe617b
Merge branch 'post-06' into post-07
2019-04-06 17:31:13 +02:00
Philipp Oppermann
be618df7f5
Merge branch 'post-09' into post-10
2019-04-06 16:49:18 +02:00
Philipp Oppermann
0ca216d4fe
Merge branch 'post-08' into post-09
2019-04-06 16:49:02 +02:00
Philipp Oppermann
37a2c925d6
Merge branch 'post-07' into post-08
2019-04-06 16:49:02 +02:00
Philipp Oppermann
23fcb9f20b
Merge branch 'post-06' into post-07
2019-04-06 16:49:01 +02:00
Philipp Oppermann
ff85a2e502
Merge branch 'post-09' into post-10
...
# Conflicts:
# README.md
2019-04-03 10:47:15 +02:00
Philipp Oppermann
80d4065b4c
Merge branch 'post-08' into post-09
...
# Conflicts:
# README.md
2019-04-03 10:47:04 +02:00
Philipp Oppermann
6a44f51eaa
Merge branch 'post-07' into post-08
...
# Conflicts:
# README.md
2019-04-03 10:46:54 +02:00
Philipp Oppermann
ffb76038bc
Merge branch 'post-06' into post-07
...
# Conflicts:
# README.md
2019-04-03 10:46:46 +02:00
Philipp Oppermann
74675346c9
Merge branch 'post-09' into post-10
2019-03-26 13:26:56 +01:00
Philipp Oppermann
d36d1dc18b
Merge branch 'post-08' into post-09
2019-03-26 13:26:56 +01:00
Philipp Oppermann
a0420c229e
Merge branch 'post-07' into post-08
2019-03-26 13:26:56 +01:00
Philipp Oppermann
f42461b99b
Merge branch 'post-06' into post-07
2019-03-26 13:26:56 +01:00
Philipp Oppermann
e9344ae046
Remove unneeded into_iter() in init_frame_allocator
2019-03-14 13:20:26 +01:00
Philipp Oppermann
4acf12bb69
Merge branch 'post-09' into post-10
2019-03-14 11:18:40 +01:00
Philipp Oppermann
6f25c34d46
Merge branch 'post-08' into post-09
2019-03-14 11:18:22 +01:00
Philipp Oppermann
23e45b5b13
Merge branch 'post-07' into post-08
2019-03-14 11:18:22 +01:00
Philipp Oppermann
701823742e
Merge branch 'post-06' into post-07
2019-03-14 11:18:22 +01:00
Philipp Oppermann
161d5fe7be
Merge pull request #569 from phil-opp/post-10-new
...
Update post-10 branch for new "Paging Implementation" post
2019-03-14 10:49:55 +01:00
Philipp Oppermann
9bf4ea7341
Use BootInfoFrameAllocator to create a 0xdeadbeaf000 mapping
2019-03-14 10:30:37 +01:00
Philipp Oppermann
a1bf5651fc
Create an init_frame_allocator function
2019-03-14 10:30:37 +01:00
Philipp Oppermann
763228c859
Create a generic BootInfoFrameAllocator type
2019-03-14 10:30:37 +01:00
Philipp Oppermann
770af27d75
Create a new mapping and write through it to the screen
2019-03-14 10:30:37 +01:00
Philipp Oppermann
3e59283c19
Create an EmptyFrameAllocator
2019-03-14 10:30:37 +01:00
Philipp Oppermann
6146ccba2d
Add a memory::create_example_mapping function
2019-03-14 10:30:37 +01:00
Philipp Oppermann
b0e1527a95
Delete our memory::translate_addr function again
2019-03-14 10:30:37 +01:00
Philipp Oppermann
cb4410c84e
Update kernel_main to use MapperAllSizes::translate_addr
2019-03-14 10:30:37 +01:00
Philipp Oppermann
98b5976656
Create a memory::init function that initializes a MappedPageTable
2019-03-14 10:30:37 +01:00
Philipp Oppermann
9335386928
Add and test a memory::translate_addr function
2019-03-14 10:30:37 +01:00
Philipp Oppermann
7c30d62f33
Also show non-empty level 3 table entries
2019-03-14 10:30:37 +01:00
Philipp Oppermann
61683bccda
Print non-empty level 4 table entries
2019-03-14 10:30:37 +01:00
Philipp Oppermann
e1ec5159b8
Add boot info argument and use entry_point macro
2019-03-14 10:30:37 +01:00
Philipp Oppermann
7b7d19592f
Enable map_physical_memory feature of bootloader
2019-03-14 10:30:37 +01:00
Philipp Oppermann
e387c0b6b8
Create a memory::active_level_4_table function
2019-03-14 10:30:37 +01:00
Philipp Oppermann
d5abc119f3
Update Readme for Paging Implementation post
2019-03-14 10:30:37 +01:00
Philipp Oppermann
59da6e5620
Update bootloader to version 0.4.0
2019-03-14 10:30:37 +01:00
Philipp Oppermann
ef1cc0ed4f
Reset code to post-09 branch for new 'Paging Implementation' post
2019-03-14 10:20:46 +01:00
Philipp Oppermann
90f0caec1a
Merge branch 'post-09' into post-10
2019-03-14 10:17:37 +01:00
Philipp Oppermann
7198a4d110
The code for reading the level 4 table was moved to the next post
2019-03-12 17:49:31 +01:00
Philipp Oppermann
5c0fb63f33
Merge branch 'post-09' into post-10
2019-03-12 17:48:43 +01:00
Philipp Oppermann
6ffcb2cf1a
Merge branch 'post-08' into post-09
2019-03-12 17:48:43 +01:00
Philipp Oppermann
1c72107cb1
Merge branch 'post-07' into post-08
2019-03-12 17:48:24 +01:00
Philipp Oppermann
b533bf6596
Merge branch 'post-06' into post-07
2019-03-12 17:48:11 +01:00
Philipp Oppermann
036a8e7608
Merge branch 'post-09' into post-10
2019-03-09 14:21:12 +01:00
Philipp Oppermann
3b960751f4
Merge branch 'post-08' into post-09
2019-03-09 14:21:12 +01:00
Philipp Oppermann
0ff6334026
Merge branch 'post-07' into post-08
2019-03-09 14:21:12 +01:00
Philipp Oppermann
1ed76411f7
Fix remaining use of ExceptionStackFrame in test
2019-03-09 14:21:03 +01:00
Philipp Oppermann
10c4d0509d
Update post-10 code for changes in x86_64 0.5.0
...
We no longer need a custom translate function as we can directly use MapperAllSizes::translate_addr.
2019-03-09 12:40:27 +01:00
Philipp Oppermann
57998ea4f8
Merge branch 'post-09' into post-10
2019-03-09 12:39:25 +01:00
Philipp Oppermann
f05aaeb0ac
Update post-09 code for changes in x86_64 0.5.0
2019-03-09 12:39:14 +01:00
Philipp Oppermann
78a30984bc
Merge branch 'post-08' into post-09
2019-03-09 12:38:25 +01:00
Philipp Oppermann
09dd68a1a2
Update post-08 code for changes in x86_64 0.5.0
2019-03-09 12:37:45 +01:00
Philipp Oppermann
81e4eec055
Merge branch 'post-07' into post-08
2019-03-09 12:36:39 +01:00
Philipp Oppermann
8e5b6a3e3f
Update post-07 code for changes in x86_64 0.5.0
2019-03-09 12:34:49 +01:00
Philipp Oppermann
be0ed3a54d
Merge branch 'post-06' into post-07
2019-03-09 12:32:03 +01:00
Philipp Oppermann
ef9a629ddc
Merge branch 'post-09' into post-10
2019-02-25 17:04:56 +01:00
Philipp Oppermann
18d8d311cb
Merge branch 'post-08' into post-09
2019-02-25 17:04:40 +01:00
Philipp Oppermann
7b61da94a0
Run cargo fmt
2019-02-25 17:04:25 +01:00
Philipp Oppermann
d974cf5200
Merge branch 'post-09' into post-10
2019-02-25 16:37:31 +01:00
Philipp Oppermann
f5b6094521
Merge branch 'post-06' into post-07
2019-02-25 16:37:30 +01:00
Philipp Oppermann
94447af25a
Merge branch 'post-08' into post-09
2019-02-25 16:37:30 +01:00
Philipp Oppermann
a7f487f206
Merge branch 'post-07' into post-08
2019-02-25 16:37:30 +01:00
Philipp Oppermann
36d6c6d0e9
Merge branch 'post-09' into post-10
2019-02-12 19:31:09 +01:00
Philipp Oppermann
76d3715eef
Merge branch 'post-08' into post-09
2019-02-12 19:31:09 +01:00
Antoine
babf9d8cce
Introduce an InterruptIndex enum ( #557 )
...
The following modifications aim to group the hardware interrupts' indexes in an easily accessible structure, while being more friendly to eventual evolutions.
* the hardware interrupts' indexes `TIMER_INTERRUPT_ID` and `KEYBOARD_INTERRUPT_ID` have been replaced by the attributes `Timer` and `Keyboard` contained in `enum InterruptIndex`.
* only the first attribute `Timer` is explicitly declared, the following as inferred by the compiler.
* the functions `as_u8` and `as_usize` avoid the need of casts to `u8` or `usize`.
2019-02-12 19:28:24 +01:00
Philipp Oppermann
ff49104764
Merge branch 'post-09' into post-10
2019-02-07 18:48:39 +01:00
Philipp Oppermann
bda1b8929c
Merge branch 'post-08' into post-09
2019-02-07 18:48:39 +01:00
Philipp Oppermann
38bd9a65b6
Merge branch 'post-06' into post-07
2019-02-07 18:46:32 +01:00
Philipp Oppermann
09ff2e01b1
Merge branch 'post-07' into post-08
2019-02-07 18:46:32 +01:00
Philipp Oppermann
03e43da9f9
Merge branch 'post-09' into post-10
2019-02-07 16:17:54 +01:00
Philipp Oppermann
58e171cce7
Merge branch 'post-08' into post-09
2019-02-07 16:15:10 +01:00
Philipp Oppermann
b3e94470e4
Merge branch 'post-06' into post-07
2019-02-07 16:15:10 +01:00
Philipp Oppermann
901a1630eb
Merge branch 'post-07' into post-08
2019-02-07 16:15:10 +01:00
Philipp Oppermann
e696d65b60
Merge branch 'post-09' into post-10
2019-02-05 15:23:49 +01:00
Philipp Oppermann
ef09418cbf
Merge branch 'post-08' into post-09
2019-02-05 15:23:49 +01:00
Philipp Oppermann
7b01e9c862
Merge branch 'post-06' into post-07
2019-02-05 15:23:49 +01:00
Philipp Oppermann
28f37da07d
Merge branch 'post-07' into post-08
2019-02-05 15:23:49 +01:00
Philipp Oppermann
ebf626061f
Merge branch 'post-09' into post-10
2019-02-05 14:59:15 +01:00
Philipp Oppermann
4c9352d898
Merge branch 'post-08' into post-09
2019-02-05 14:59:15 +01:00
Philipp Oppermann
5452e0f455
Merge branch 'post-06' into post-07
2019-02-05 14:59:15 +01:00
Philipp Oppermann
a41a007039
Merge branch 'post-07' into post-08
2019-02-05 14:59:15 +01:00
Philipp Oppermann
c3d023ad40
Merge branch 'post-09' into post-10
2019-02-05 10:46:08 +01:00
Philipp Oppermann
f3cf5b51de
Merge branch 'post-08' into post-09
2019-02-05 10:46:08 +01:00
Philipp Oppermann
202902f30d
Merge branch 'post-06' into post-07
2019-02-05 10:46:08 +01:00
Philipp Oppermann
26be4cb84d
Merge branch 'post-07' into post-08
2019-02-05 10:46:08 +01:00
Philipp Oppermann
0a10b3e784
Merge branch 'post-09' into post-10
2019-02-05 10:45:12 +01:00
Philipp Oppermann
9617680e45
Merge branch 'post-08' into post-09
2019-02-05 10:45:12 +01:00
Philipp Oppermann
3bb30fd1e8
Merge branch 'post-06' into post-07
2019-02-05 10:45:12 +01:00
Philipp Oppermann
8f18fb4282
Merge branch 'post-07' into post-08
2019-02-05 10:45:12 +01:00
Philipp Oppermann
e0f66a8196
Merge branch 'post-09' into post-10
2019-01-29 12:16:54 +01:00
Philipp Oppermann
ba54fd2503
Merge branch 'post-08' into post-09
2019-01-29 12:16:54 +01:00
Philipp Oppermann
41e36b4afa
Merge branch 'post-06' into post-07
2019-01-29 12:16:54 +01:00
Philipp Oppermann
6b9d275c2d
Merge branch 'post-07' into post-08
2019-01-29 12:16:54 +01:00
Philipp Oppermann
e5dfbd4b23
Merge branch 'post-09' into post-10
2019-01-28 11:51:35 +01:00
Philipp Oppermann
4e6ce8d16e
Merge branch 'post-08' into post-09
2019-01-28 11:51:23 +01:00
Philipp Oppermann
519f47286c
Merge branch 'post-07' into post-08
2019-01-28 11:51:03 +01:00
Philipp Oppermann
f76ec1ae32
Only set double fault handler once
2019-01-28 11:50:59 +01:00
Philipp Oppermann
5ad2962389
Merge branch 'post-09' into post-10
2019-01-28 11:44:14 +01:00
Philipp Oppermann
82e6c4b066
Merge branch 'post-08' into post-09
2019-01-28 11:44:14 +01:00
Philipp Oppermann
d564dc208f
Merge branch 'post-07' into post-08
2019-01-28 11:44:14 +01:00
Philipp Oppermann
efe92e5004
Merge branch 'post-06' into post-07
2019-01-28 11:44:14 +01:00
Philipp Oppermann
a56e22b6fc
Use BootInfoFrameAllocator instead of EmptyFrameAllocator
2019-01-28 11:30:27 +01:00
Philipp Oppermann
67f536d7c6
Add a BootInfoFrameAllocator
2019-01-28 11:28:51 +01:00
Philipp Oppermann
741224411b
Use the BootInfo struct passed by the bootloader
2019-01-28 11:24:16 +01:00
Philipp Oppermann
818417d119
Try to create example mapping for page 0xdeadbeaf000
2019-01-28 11:23:46 +01:00
Philipp Oppermann
f272785861
Create example mapping for page 0x1000
2019-01-28 11:19:46 +01:00
Philipp Oppermann
5d807ee622
Run rustfmt
2019-01-28 11:19:34 +01:00
Philipp Oppermann
90c3cdf0f3
Update Readme for Advanced Paging post
2019-01-27 17:14:58 +01:00
Philipp Oppermann
2bc233b2f6
Merge branch 'post-09' into post-10
2019-01-27 17:14:12 +01:00
Philipp Oppermann
0df629df47
Update Readme for Introduction to Paging post
2019-01-27 17:13:57 +01:00
Philipp Oppermann
cca85de5ed
Merge branch 'post-08' into post-09
2019-01-27 17:13:21 +01:00
Philipp Oppermann
1da81c6f84
Update Readme for Hardware Interrupts post
2019-01-27 17:13:00 +01:00
Philipp Oppermann
42d89c1030
Merge branch 'post-07' into post-08
2019-01-27 17:12:28 +01:00
Philipp Oppermann
233943310c
Update Readme for Double Faults post
2019-01-27 17:12:21 +01:00
Philipp Oppermann
ef6d69f82b
Merge branch 'post-06' into post-07
2019-01-27 17:11:38 +01:00
Philipp Oppermann
051b23f577
Merge branch 'post-09' into post-10
2019-01-27 16:33:54 +01:00
Philipp Oppermann
97e884e6a3
Merge branch 'post-08' into post-09
2019-01-27 16:33:54 +01:00
Philipp Oppermann
954c0bcfbb
Merge branch 'post-07' into post-08
2019-01-27 16:33:54 +01:00
Philipp Oppermann
637b517f47
Merge branch 'post-06' into post-07
2019-01-27 16:33:54 +01:00
Philipp Oppermann
bd1f5345da
Merge branch 'z_post_08' into z_post_09
2019-01-27 15:46:59 +01:00
Philipp Oppermann
662faa8dd0
Merge branch 'z_post_07' into z_post_08
2019-01-27 15:46:59 +01:00
Philipp Oppermann
5802c97938
Merge branch 'z_post_06' into z_post_07
2019-01-27 15:46:59 +01:00
Philipp Oppermann
f2bc2d33f0
Rewrite translation function on top of RecursivePageTable
2019-01-27 14:38:49 +01:00
Philipp Oppermann
38a121a887
Test translate_addr by translating some virtual addresses
2019-01-27 14:38:49 +01:00
Philipp Oppermann
8b380f0692
Create a new memory module with a translate_addr function
2019-01-27 14:38:49 +01:00
Philipp Oppermann
f23ee04161
Merge branch 'z_post_08' into z_post_09
2019-01-27 14:30:32 +01:00
Philipp Oppermann
2031a8dc81
Merge branch 'z_post_07' into z_post_08
2019-01-27 14:29:25 +01:00
Philipp Oppermann
29ee6b15dd
Merge branch 'z_post_06' into z_post_07
2019-01-27 14:28:55 +01:00
Philipp Oppermann
b184f7d996
Move the testing code to the end of _start
2019-01-26 12:57:32 +01:00
Philipp Oppermann
7c07a67bf5
Merge branch 'z_post_08' into z_post_09
2019-01-25 14:47:46 +01:00
Philipp Oppermann
ec2da4bebd
Merge branch 'z_post_07' into z_post_08
2019-01-25 14:47:32 +01:00
Philipp Oppermann
90ad333e90
Merge branch 'z_post_06' into z_post_07
2019-01-25 14:46:29 +01:00
Philipp Oppermann
afe8dc3dcf
Add stack overflow integration test
2019-01-25 14:45:02 +01:00
Philipp Oppermann
8bb0187f35
Run rustfmt
2019-01-25 14:44:42 +01:00
Philipp Oppermann
abaf5bd862
Use PageTable struct of x86_64 crate for accessing entries
2019-01-25 14:29:50 +01:00
Philipp Oppermann
b7005b766f
Print first 10 entries of level 4 page table
2019-01-25 14:29:04 +01:00
Philipp Oppermann
91ca04e8c2
Retrieve address of level 4 page table
2019-01-25 14:28:23 +01:00
Philipp Oppermann
ada45c6e52
Provoke page fault
2019-01-25 14:27:31 +01:00
Philipp Oppermann
207a466707
Add a page fault handler
2019-01-25 14:26:35 +01:00
Philipp Oppermann
a954c02fbe
Use pc-keyboard crate to translate all scancodes
2019-01-25 14:23:23 +01:00
Philipp Oppermann
895991fee3
Translate keycodes for keys 0-9
2019-01-25 14:22:25 +01:00
Philipp Oppermann
25796110f3
Read and print scancodes in keyboard interrupt handler
2019-01-25 14:21:49 +01:00
Philipp Oppermann
1d153d694e
Add a keyboard interrupt handler
2019-01-25 14:21:12 +01:00
Philipp Oppermann
c2e4e8c96f
Add and use hlt_loop function
2019-01-25 14:21:12 +01:00
Philipp Oppermann
599a643d97
Remove deadlock provoking code again
...
This reverts commit 1a39774ead .
2019-01-25 14:14:45 +01:00
Philipp Oppermann
5efcecc2f2
Avoid deadlock by disabling interrupts in print! and serial_print! macros
2019-01-25 14:14:26 +01:00
Philipp Oppermann
1a39774ead
Provoke a print! deadlock
2019-01-25 14:12:14 +01:00
Philipp Oppermann
1ea8cf6ed1
Send end of interrupt signal
2019-01-25 14:09:47 +01:00
Philipp Oppermann
4060ac558c
Add a timer interrupt handler
2019-01-25 14:09:12 +01:00
Philipp Oppermann
28a11e47bc
Enable hardware interrupts
2019-01-25 14:05:20 +01:00
Philipp Oppermann
6504bed810
Initialize the PIC
2019-01-25 14:04:55 +01:00
Philipp Oppermann
d8edfccca4
Set the stack_index for the double fault handler
2019-01-25 14:01:29 +01:00
Philipp Oppermann
ff25a7d86c
Reload code and TSS selector registers
2019-01-25 13:59:09 +01:00
Philipp Oppermann
b5202e26a1
Load the GDT
2019-01-25 13:57:40 +01:00
Philipp Oppermann
ea1b031fd3
Create a static GDT
2019-01-25 13:57:08 +01:00
Philipp Oppermann
db4e879c34
Create a new GDT module and a static TSS
2019-01-25 13:56:40 +01:00
Philipp Oppermann
7fd29c9cbe
Trigger a double fault through a stack overflow -> triple fault
2019-01-25 13:55:42 +01:00
Philipp Oppermann
218cb9399e
Add a double fault handler and test it
2019-01-25 13:54:44 +01:00