1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-24 00:46:17 +04:00
Commit Graph

1006 Commits

Author SHA1 Message Date
Philipp Oppermann
fe464463eb Add pointed_frame and set methods to Entry 2017-11-19 10:39:17 +01:00
Philipp Oppermann
148d506629 Use bitflags to create an EntryFlags type 2017-11-19 10:39:17 +01:00
Philipp Oppermann
f957f2ecde Add a dependency on the bitflags crate 2017-11-19 10:39:17 +01:00
Philipp Oppermann
c4c27c10e6 Create a memory::paging::entry submodule with an Entry struct 2017-11-19 10:39:17 +01:00
Philipp Oppermann
c7c02d7dca Create a memory::paging module with a Page struct 2017-11-19 10:39:17 +01:00
Philipp Oppermann
9f84e37e1b Update Readme for “Page Tables” post 2017-11-19 10:39:17 +01:00
Philipp Oppermann
9f1a69cafa Create a new AreaFrameAllocator and allocate maximum number of frames 2017-11-19 10:39:13 +01:00
Philipp Oppermann
edb2e693da Create an AreaFrameAllocator 2017-11-19 10:39:13 +01:00
Philipp Oppermann
84c337e6f0 Create a memory module with a Frame struct and FrameAllocator trait 2017-11-19 10:39:13 +01:00
Philipp Oppermann
98d97703f4 Calculate start and end of kernel and multiboot struct 2017-11-19 10:39:13 +01:00
Philipp Oppermann
402ec77bc0 Reduce number of ELF section by merging .text.* (etc.) sections together 2017-11-19 10:39:13 +01:00
Philipp Oppermann
9a86f60835 Print kernel ELF sections 2017-11-19 10:39:13 +01:00
Philipp Oppermann
cbc9e112bd Print a proper message on panics 2017-11-19 10:39:13 +01:00
Philipp Oppermann
f231f2c7f2 Print available memory areas 2017-11-19 10:39:13 +01:00
Philipp Oppermann
5f65e1d31f Add dependency on multiboot2 crate 2017-11-19 10:39:13 +01:00
Philipp Oppermann
28ce5310c8 Pass address of multiboot info structure to rust_main 2017-11-19 10:39:13 +01:00
Philipp Oppermann
08a4e795a4 Increase stack size to 16k 2017-11-19 10:39:13 +01:00
Philipp Oppermann
8040f8d565 Update Readme for “Allocating Frames” post 2017-11-19 10:39:13 +01:00
Philipp Oppermann
9f448fbe0e Avoid deadlock on nested print! invokation 2017-11-19 10:39:05 +01:00
Philipp Oppermann
59b8133396 Add print! and println! macros and a clear_screen function 2017-11-19 10:39:05 +01:00
Philipp Oppermann
40aed4fa0f Create a static WRITER protected by a spinlock 2017-11-19 10:39:05 +01:00
Philipp Oppermann
f24c7bc322 Implement the new_line method 2017-11-19 10:31:00 +01:00
Philipp Oppermann
5e0ccd5aa5 Implement the fmt::Write trait and print something with the write! macro 2017-11-19 10:31:00 +01:00
Philipp Oppermann
578717a9b8 Add a write_str method and print “Hello!” 2017-11-19 10:31:00 +01:00
Philipp Oppermann
0ed21fb943 Use volatile writes for printing to screen 2017-11-19 10:31:00 +01:00
Philipp Oppermann
6aa3f67331 Add a print_something function to print an H in the lower left 2017-11-19 10:30:48 +01:00
Philipp Oppermann
46d47f8d2e Create a Writer struct with a write_byte function 2017-11-19 10:30:48 +01:00
Philipp Oppermann
afc2c26a9d Create a vga_buffer module 2017-11-19 10:30:48 +01:00
Philipp Oppermann
db9a19b38a Update Readme for “Printing to Screen” post 2017-11-19 10:30:48 +01:00
Philipp Oppermann
bef5f13560 Print a “Hello World!” in Rust 2017-11-19 10:30:36 +01:00
Philipp Oppermann
a1743eb3dd Set the panic strategy to abort to fix _Unwind_Resume errors 2017-11-19 10:30:36 +01:00
Philipp Oppermann
13cffc3319 Add target directory to .gitignore 2017-11-19 10:30:36 +01:00
Philipp Oppermann
ff623a90e3 Use --gc-sections to remove unused program sections 2017-11-19 10:30:36 +01:00
Philipp Oppermann
5d8758df59 Add a dependency on rlibc 2017-11-18 11:10:17 +01:00
Philipp Oppermann
ca2ccc31aa Call the rust_main function from assembly 2017-11-18 11:10:17 +01:00
Philipp Oppermann
8dd179a6f4 Adjust the Makefile to build and link Rust code 2017-11-18 11:10:17 +01:00
Philipp Oppermann
9f578640d8 Add a target spcification that disables SSE and the red zone 2017-11-18 11:10:17 +01:00
Philipp Oppermann
8e5a85ece4 Create a new no_std cargo project 2017-05-12 21:31:28 +02:00
Philipp Oppermann
1c88c7f945 Update Readme for “Set Up Rust” post 2017-05-12 21:31:28 +02:00
Philipp Oppermann
9136a7b66f Zero all segment registers 2017-05-12 21:31:28 +02:00
Philipp Oppermann
415d27814f Do a far jump to long mode and print OKAY 2017-05-12 21:31:28 +02:00
Philipp Oppermann
e684bfd262 Create and load a 64-bit GDT 2017-05-12 21:31:28 +02:00
Philipp Oppermann
936e2073a9 Enable paging 2017-05-12 21:31:24 +02:00
Philipp Oppermann
b199b02578 Set up page tables for identity mapping 2017-05-12 21:31:24 +02:00
Philipp Oppermann
90e716827a Check multiboot magic number and for CPUID/long mode support 2017-05-12 21:31:24 +02:00
Philipp Oppermann
9819e17a28 Create and load a stack 2017-05-12 21:31:24 +02:00
Philipp Oppermann
5ebdd89ffb Add an error function 2017-05-12 21:31:24 +02:00
Philipp Oppermann
78e86c2312 Update Readme for “Entering Longmode” post 2017-05-12 21:31:24 +02:00
Philipp Oppermann
de26d37527 Ignore the build directory 2017-05-12 21:31:16 +02:00
Philipp Oppermann
b3d457bd79 Add a Makefile 2017-05-12 21:31:16 +02:00