]> git.lizzy.rs Git - loadnothing.git/commitdiff
Global vga::Writer
authorHimbeerserverDE <himbeerserverde@gmail.com>
Sun, 18 Sep 2022 16:49:37 +0000 (18:49 +0200)
committerHimbeerserverDE <himbeerserverde@gmail.com>
Sun, 18 Sep 2022 16:49:37 +0000 (18:49 +0200)
stage2/Cargo.toml
stage2/src/main.rs
stage2/src/vga.rs

index 730ba623cbfd8860d3d62f0c24b8cd33b0ddbbc7..4add51d80065fd35c226f4f3812b4e7f8c3d4028 100644 (file)
@@ -16,4 +16,6 @@ lto = true
 codegen-units = 1
 
 [dependencies]
+lazy_static = { version = "1.0", features = ["spin_no_std"] }
 volatile = "0.4.5"
+spin = "0.9.4"
index 5e519f76cb7b5baf92655e1b3ea440dc228db9d1..d05e3b2c0424e7979b37fb7e693292b16c63b606 100644 (file)
@@ -14,7 +14,7 @@ fn panic(_info: &PanicInfo) -> ! {
 
 #[no_mangle]
 pub extern "C" fn _start() -> ! {
-    vga::test_print();
+    vga::WRITER.lock().write_string("Hello Stage2!");
 
     unsafe {
         loop {
index 901b91aba2a6d2e461cca2aa607d2d2b02b3753c..f20dec771401a868082b11b89bdbac316c62beac 100644 (file)
@@ -1,6 +1,8 @@
 use core::ops::{AddAssign, Deref, DerefMut, Shl, Sub};
 
+use lazy_static::lazy_static;
 use volatile::Volatile;
+use spin::Mutex;
 
 #[allow(dead_code)]
 #[derive(Debug, Clone, Copy, PartialEq, Eq)]
@@ -135,13 +137,11 @@ impl Writer {
     }
 }
 
-pub fn test_print() {
-    let mut writer = Writer {
+lazy_static! {
+    pub static ref WRITER: Mutex<Writer> = Mutex::new(Writer {
         row_position: 1,
         column_position: 0,
-        color_code: ColorCode::new(Color::Yellow, Color::Black),
+        color_code: ColorCode::new(Color::LightGray, Color::Black),
         buffer: unsafe { &mut *(0xb8000 as *mut Buffer) },
-    };
-
-    writer.write_string("Hello Stage2!");
+    });
 }