Philipp Oppermann
d21a78dc0b
Switch back to official nightly
2020-03-22 17:30:00 +01:00
Philipp Oppermann
0186f65ece
Use cooked-waker crate for creating wakers
2020-03-22 17:24:58 +01:00
Philipp Oppermann
2772abc8eb
Implement proper wakeups using RawWaker
2020-03-22 16:54:47 +01:00
Philipp Oppermann
51f90236a5
Base dummy waker on RawWaker to avoid allocations
...
The Wake trait is based on Arc, which leads to deallocation on wakes. Since interrupts should not (de)allocate, this can lead to a deadlock.
2020-03-22 16:11:25 +01:00
Philipp Oppermann
90abd5c8c5
Add a keyboard task that prints keypresses
2020-03-22 12:45:24 +01:00
Philipp Oppermann
a6273614e4
Add waker support to ScancodeStream
2020-03-22 12:16:17 +01:00
Philipp Oppermann
3a2a468a0b
Add a ScancodeStream based on the SCANCODE_QUEUE
2020-03-22 12:12:11 +01:00
Philipp Oppermann
05f6abd261
Fill the scancode queue on keyboard interrupts
2020-03-22 12:11:09 +01:00
Philipp Oppermann
255982a8b7
Implement scancode queue
2020-03-20 13:03:41 +01:00
Philipp Oppermann
f885f17b70
Implement a simple poll-loop executor
2020-03-19 16:46:37 +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
e402af005b
Merge branch 'post-04' into post-05
2020-03-08 14:39:37 +01:00
Philipp Oppermann
d7e505da9e
Update x86_64 dependency to version 0.9.6
2020-03-08 14:39:27 +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
813bc41a74
Merge branch 'post-04' into post-05
2020-03-08 14:27:42 +01:00
Philipp Oppermann
2039cd7a64
Update x86_64 to version 0.9.5
2020-03-08 14:27:36 +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
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
5ef73aaa30
Merge branch 'post-04' into post-05
2020-02-26 12:46:09 +01:00
Philipp Oppermann
ebb862de2a
Run cargo update for post-04
2020-02-26 12:46:04 +01:00
Philipp Oppermann
d588dca953
Merge branch 'post-03' into post-04
2020-02-26 12:45:45 +01:00
Philipp Oppermann
f23269ed93
Merge branch 'post-02' into post-03
2020-02-26 12:45:27 +01:00
Philipp Oppermann
46264d08ca
Run cargo update
2020-02-26 12:43:51 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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