From 94c2a1626d7d60277c2a9a9db9e06c73362fc957 Mon Sep 17 00:00:00 2001 From: Elaina Claus Date: Fri, 18 Oct 2024 07:57:42 -0400 Subject: [PATCH] correct some field sizes --- include/BIOS/func/ext_read.nasm | 7 +++++-- include/util/kmem_func.nasm | 10 +++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/include/BIOS/func/ext_read.nasm b/include/BIOS/func/ext_read.nasm index 72ddc4a..e27322b 100644 --- a/include/BIOS/func/ext_read.nasm +++ b/include/BIOS/func/ext_read.nasm @@ -98,13 +98,16 @@ read_disk_raw: mov ax, [bp + 12] mov word [bx + LBAPkt_t.xfer_size], ax - mov eax, [bp + 8] + mov eax, dword [bp + 8] mov dword [bx + LBAPkt_t.lower_lba], eax + ; upper_lba is zero from kmemset + ; TODO: possiblly support >32bit LBA addresses in the future, this limits us to 4GiB + mov ax, [bp + 6] mov word [bx + LBAPkt_t.offset], ax - movzx ax, byte [bp + 4] + mov ax, [bp + 4] mov word [bx + LBAPkt_t.segment], ax xor ax, ax diff --git a/include/util/kmem_func.nasm b/include/util/kmem_func.nasm index 2c5ad3d..305c133 100644 --- a/include/util/kmem_func.nasm +++ b/include/util/kmem_func.nasm @@ -21,18 +21,18 @@ %ifndef __INC_KMEM_FUNC %include 'cdecl16.inc' -; uint8_t* kmemset_byte(void* dst, uint8_t val, uint16_t len); +; void* kmemset_byte(void* dst, uint8_t val, uint16_t len); ALIGN 4, db 0x90 kmemset: __CDECL16_ENTRY .func: - mov cx, [bp + 8] ; size_t len - mov al, [bp + 6] ; uint8_t val - mov di, [bp + 4] ; void * dst + mov cx, [bp + 8] ; uint16_t len + mov al, byte [bp + 6] ; uint8_t val + mov di, [bp + 4] ; void * dst cld rep stosb - mov ax, di ; return pointer to dest + mov ax, di ; return pointer to dest + len (last elem of dest) .endp: __CDECL16_EXIT ret