Browse Source

change(mbr): read 64k more

greatbridf 10 months ago
parent
commit
6674d1b5bb
3 changed files with 7 additions and 2 deletions
  1. 1 1
      src/kernel.ld
  2. 1 1
      src/kernel/syscall.cpp
  3. 5 0
      src/mbr.S

+ 1 - 1
src/kernel.ld

@@ -119,7 +119,7 @@ SECTIONS
     } > MEM
 
     .sentry :
-        AT(0x50000)
+        AT(0x60000)
     { LONG(0x01145140); } > MEM
 
     .eh_frame :

+ 1 - 1
src/kernel/syscall.cpp

@@ -673,7 +673,7 @@ int _syscall_sendfile64(interrupt_stack* data)
         return -EINVAL;
     }
 
-    constexpr size_t bufsize = 512;
+    constexpr size_t bufsize = 4096;
     std::vector<char> buf(bufsize);
     size_t totn = 0;
     while (totn < count) {

+ 5 - 0
src/mbr.S

@@ -34,6 +34,11 @@ mbr_start:
     addl $(8 * 16), read_data_lba
     call read_data
 
+# read 64k more
+    addw $(0x100 * 16), read_data_segment
+    addl $(8 * 16), read_data_lba
+    call read_data
+
 # loader start
     jmp 0x8000