2
0
mirror of https://git.missingno.dev/kolibrios-nvme-driver/ synced 2025-02-02 02:20:09 +01:00

refactor: replace memset with memsetdz

This commit is contained in:
Abdur-Rahman Mansoor 2024-07-08 15:49:43 -04:00
parent 87afd80486
commit b21f83fef0
2 changed files with 17 additions and 17 deletions

View File

@ -8,13 +8,13 @@
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
proc memset stdcall, dest:dword, val:byte, sz:dword
proc memsetdz stdcall, dest:dword, sz:dword
push edi
mov edi, [dest]
mov al, [val]
mov ecx, [sz]
rep stosb
xor eax, eax
rep stosd
pop edi
ret

View File

@ -195,7 +195,7 @@ proc nvme_identify stdcall, pci:dword, nsid:dword, dptr:dword, cns:byte
end if
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
mov eax, [nsid]
mov dword [esp + SQ_ENTRY.nsid], eax
@ -307,7 +307,7 @@ endp
proc create_io_completion_queue stdcall, pci:dword, prp1:dword, qid:dword, ien:byte
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_CRE_IO_COMPLETION_QUEUE
mov dword [esp + SQ_ENTRY.cdw0], eax
mov eax, [prp1]
@ -329,7 +329,7 @@ endp
proc create_io_submission_queue stdcall, pci:dword, prp1:dword, qid:dword, cqid:word
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_CRE_IO_SUBMISSION_QUEUE
mov dword [esp + SQ_ENTRY.cdw0], eax
mov eax, [prp1]
@ -352,7 +352,7 @@ endp
proc abort stdcall, pci:dword, cid:word, sqid:word
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_ABORT
mov dword [esp + SQ_ENTRY.cdw0], eax
movzx eax, [cid]
@ -370,7 +370,7 @@ endp
proc set_features stdcall, pci:dword, dptr:dword, fid:byte, cdw11:dword
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_SET_FEATURES
mov dword [esp + SQ_ENTRY.cdw0], eax
mov eax, [dptr]
@ -390,7 +390,7 @@ endp
proc delete_io_completion_queue stdcall, pci:dword, qid:word
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_DEL_IO_COMPLETION_QUEUE
mov dword [esp + SQ_ENTRY.cdw0], eax
mov ax, [qid]
@ -405,7 +405,7 @@ endp
proc get_features stdcall, pci:dword, dptr:dword, sel:byte, fid:byte
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_GET_FEATURES
mov dword [esp + SQ_ENTRY.cdw0], eax
movzx eax, [sel]
@ -426,7 +426,7 @@ endp
proc delete_io_submission_queue stdcall, pci:dword, qid:word
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_DEL_IO_SUBMISSION_QUEUE
mov dword [esp + SQ_ENTRY.cdw0], eax
mov ax, [qid]
@ -442,7 +442,7 @@ endp
proc get_log_page stdcall, pci:dword, dptr:dword, lid:byte
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
stdcall set_cdw0, [pci], ADMIN_QUEUE, ADM_CMD_GET_LOG_PAGE
mov dword [esp + SQ_ENTRY.cdw0], eax
mov eax, [dptr]
@ -794,7 +794,7 @@ proc nvme_io_rw stdcall, pci:dword, qid:word, nsid:dword, prps:qword, slba_lo:dw
;
; TODO: Read AWUN/NAWUN
sub esp, sizeof.SQ_ENTRY
stdcall memset, esp, 0, sizeof.SQ_ENTRY
stdcall memsetdz, esp, sizeof.SQ_ENTRY / 4
movzx ecx, [qid]
stdcall set_cdw0, [pci], ecx, [opcode]
mov dword [esp + SQ_ENTRY.cdw0], eax ; CDW0
@ -998,7 +998,7 @@ proc nvme_init stdcall, pci:dword
jz .exit_fail
mov dword [esi + pcidev.queue_entries], eax
mov edi, eax
stdcall memset, eax, 0, sizeof.NVM_QUEUE_ENTRY * (LAST_QUEUE_ID + 1)
stdcall memsetdz, eax, sizeof.NVM_QUEUE_ENTRY * (LAST_QUEUE_ID + 1) / 4
; Allocate submission/completion queue pointers
; TODO: Make these queues physically contiguous
@ -1011,14 +1011,14 @@ proc nvme_init stdcall, pci:dword
jz .exit_fail
mov dword [edi + ecx + NVM_QUEUE_ENTRY.sq_ptr], eax
push ecx
stdcall memset, eax, 0, sizeof.SQ_ENTRY * SQ_ENTRIES
stdcall memsetdz, eax, sizeof.CQ_ENTRY * CQ_ENTRIES / 4
invoke CreateRingBuffer, 0x1000, PG_SW
pop ecx
test eax, eax
jz .exit_fail
mov dword [edi + ecx + NVM_QUEUE_ENTRY.cq_ptr], eax
push ecx
stdcall memset, eax, 0, sizeof.CQ_ENTRY * CQ_ENTRIES
stdcall memsetdz, eax, sizeof.CQ_ENTRY * CQ_ENTRIES / 4
pop ecx
mov dword [edi + ecx + NVM_QUEUE_ENTRY.phase_tag], CQ_PHASE_TAG
add ecx, sizeof.NVM_QUEUE_ENTRY
@ -1173,7 +1173,7 @@ proc nvme_init stdcall, pci:dword
mov edi, eax
;stdcall memcpy, eax, test_string, 50
invoke GetPhysAddr
stdcall nvme_io_rw, [pci], 1, [esi + pcidev.nsid], eax, 0, 0, 1, NVM_CMD_READ
stdcall nvme_io_rw, [pci], 1, [esi + pcidev.nsid], eax, 0, 0, 0, 1, NVM_CMD_READ
DEBUGF DBG_INFO, "%s\n", edi
DEBUGF DBG_INFO, "nvme%u: Successfully initialized driver\n", [esi + pcidev.num]
xor eax, eax