chore: sync repo
This commit is contained in:
parent
d1927d8180
commit
aaf6fbccdf
2
.github/workflows/analyze.yml
vendored
2
.github/workflows/analyze.yml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
||||||
|
|
||||||
- name: Run shellcheck
|
- name: Run shellcheck
|
||||||
run: |
|
run: |
|
||||||
shellcheck ./releasetools/cdimage.sh ./releasetools/floppyimage.sh ./releasetools/hdimage.sh ./releasetools/image.defaults ./releasetools/image.functions
|
shellcheck ./releasetools/cdimage.sh ./releasetools/floppyimage.sh ./releasetools/hdimage.sh ./releasetools/image.defaults ./releasetools/image.functions ./tools/version.sh
|
||||||
|
|
||||||
- name: Run CppCheck
|
- name: Run CppCheck
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -3,6 +3,8 @@ TARGET = BOOTIA32.EFI
|
||||||
BOOTIA32_EFI_SRCS = bootia32.asm \
|
BOOTIA32_EFI_SRCS = bootia32.asm \
|
||||||
uefi.inc \
|
uefi.inc \
|
||||||
logger.inc \
|
logger.inc \
|
||||||
|
memory.inc \
|
||||||
|
fs.inc \
|
||||||
../common/const.inc \
|
../common/const.inc \
|
||||||
../common/macro.inc
|
../common/macro.inc
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
include 'uefi.inc'
|
include 'uefi.inc'
|
||||||
include '../../kernel/sys/bootinfo.inc'
|
include '../../kernel/sys/bootinfo.inc'
|
||||||
include 'logger.inc'
|
include 'logger.inc'
|
||||||
|
include 'memory.inc'
|
||||||
|
include 'fs.inc'
|
||||||
|
|
||||||
section '.text' code executable readable
|
section '.text' code executable readable
|
||||||
|
|
||||||
|
@ -33,26 +35,20 @@ efimain:
|
||||||
mov ebx, [eax + EFI_SYSTEM_TABLE.BootServices]
|
mov ebx, [eax + EFI_SYSTEM_TABLE.BootServices]
|
||||||
mov [pBootServices], ebx
|
mov [pBootServices], ebx
|
||||||
|
|
||||||
mov ecx, [ebx + EFI_BOOT_SERVICES.AllocatePool]
|
|
||||||
mov [fnAllocatePool], ecx
|
|
||||||
|
|
||||||
mov ecx, [ebx + EFI_BOOT_SERVICES.FreePool]
|
|
||||||
mov [fnFreePool], ecx
|
|
||||||
|
|
||||||
mov ecx, [ebx + EFI_BOOT_SERVICES.GetMemoryMap]
|
|
||||||
mov [fnGetMemoryMap], ecx
|
|
||||||
|
|
||||||
mov ecx, [ebx + EFI_BOOT_SERVICES.OpenProtocol]
|
mov ecx, [ebx + EFI_BOOT_SERVICES.OpenProtocol]
|
||||||
mov [fnOpenProtocol], ecx
|
mov [fnOpenProtocol], ecx
|
||||||
|
|
||||||
mov ecx, [ebx + EFI_BOOT_SERVICES.Exit]
|
mov ecx, [ebx + EFI_BOOT_SERVICES.Exit]
|
||||||
mov [fnExit], ecx
|
mov [fnExit], ecx
|
||||||
|
|
||||||
|
call efi_memory_init
|
||||||
call efi_log_init
|
call efi_log_init
|
||||||
|
|
||||||
mov esi, szHelloMsg
|
mov esi, szHelloMsg
|
||||||
call efi_log
|
call efi_log
|
||||||
|
|
||||||
|
call efi_fs_init
|
||||||
|
|
||||||
; #=======================#
|
; #=======================#
|
||||||
; search and load kernel
|
; search and load kernel
|
||||||
; openVolume()
|
; openVolume()
|
||||||
|
@ -93,9 +89,6 @@ pSystemTable dd ?
|
||||||
|
|
||||||
;; Variable: pBootServices
|
;; Variable: pBootServices
|
||||||
pBootServices dd ?
|
pBootServices dd ?
|
||||||
fnAllocatePool dd ?
|
|
||||||
fnFreePool dd ?
|
|
||||||
fnGetMemoryMap dd ?
|
|
||||||
fnOpenProtocol dd ?
|
fnOpenProtocol dd ?
|
||||||
fnCloseProtocol dd ?
|
fnCloseProtocol dd ?
|
||||||
fnExit dd ?
|
fnExit dd ?
|
||||||
|
|
29
boot/efi/fs.inc
Normal file
29
boot/efi/fs.inc
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
;; File: fs.inc
|
||||||
|
|
||||||
|
section '.text' code executable readable
|
||||||
|
|
||||||
|
efi_fs_init:
|
||||||
|
|
||||||
|
; OpenProtocol(EFI_HANDLE Handle, EFI_GUID *proto, VOID **Interface, EFI_HANDLE AgentHandle, UINT32 Attrs)
|
||||||
|
push 0
|
||||||
|
push [hImage]
|
||||||
|
push pLoadedImage
|
||||||
|
push aFSProtoGUID
|
||||||
|
push [hImage]
|
||||||
|
call [fnOpenProtocol]
|
||||||
|
add esp, 20
|
||||||
|
|
||||||
|
or eax, eax
|
||||||
|
jnz .error
|
||||||
|
ret
|
||||||
|
.error:
|
||||||
|
mov esi, szErrTmp
|
||||||
|
call efi_log
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
|
section '.data' data readable writeable
|
||||||
|
|
||||||
|
szErrTmp du "Can't OpenProtocol(Simple fs)", 0
|
||||||
|
aFSProtoGUID db EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID
|
||||||
|
pLoadedImage dd 0
|
|
@ -1,3 +1,5 @@
|
||||||
|
;; File: logger.inc
|
||||||
|
|
||||||
section '.text' code executable readable
|
section '.text' code executable readable
|
||||||
|
|
||||||
;; Function: efi_log_init
|
;; Function: efi_log_init
|
||||||
|
|
25
boot/efi/memory.inc
Normal file
25
boot/efi/memory.inc
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
;; File: memory.inc
|
||||||
|
|
||||||
|
section '.text' code executable readable
|
||||||
|
|
||||||
|
efi_memory_init:
|
||||||
|
mov eax, [pBootServices]
|
||||||
|
mov ecx, [eax + EFI_BOOT_SERVICES.AllocatePool]
|
||||||
|
mov [fnAllocatePool], ecx
|
||||||
|
|
||||||
|
mov ecx, [eax + EFI_BOOT_SERVICES.FreePool]
|
||||||
|
mov [fnFreePool], ecx
|
||||||
|
|
||||||
|
mov ecx, [eax + EFI_BOOT_SERVICES.GetMemoryMap]
|
||||||
|
mov [fnGetMemoryMap], ecx
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
|
section '.data' data readable writeable
|
||||||
|
|
||||||
|
;; Variable: fnAllocatePool
|
||||||
|
fnAllocatePool dd ?
|
||||||
|
;; Variable: fnFreePool
|
||||||
|
fnFreePool dd ?
|
||||||
|
;; Variable: fnGetMemoryMap
|
||||||
|
fnGetMemoryMap dd ?
|
|
@ -364,7 +364,8 @@ EFI_LOAD_FILE2_PROTOCOL equ EFI_LOAD_FILE_PROTOCOL
|
||||||
;; ========================================================================
|
;; ========================================================================
|
||||||
;; EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
|
;; EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
|
||||||
;; ========================================================================
|
;; ========================================================================
|
||||||
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID equ 0x0964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b
|
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID equ 0x022, 0x5b, 0x4e, 0x96, 0x59, 0x64, 0xd2, 0x11, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b
|
||||||
|
;EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID equ 0x0964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b
|
||||||
|
|
||||||
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION = 0x00010000
|
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION = 0x00010000
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
vers="$(git describe --abbrev=4 --match='v[0-9]*' HEAD 2>/dev/null)"
|
vers="$(git describe --abbrev=4 --match='v[0-9]*' HEAD 2>/dev/null)"
|
||||||
|
|
||||||
if [ ! -n "$vers" ]; then
|
if [ -z "$vers" ]; then
|
||||||
vers="0.0"
|
vers="0.0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
major="$(echo -n "${vers}" | cut -d. -f1)"
|
major="$(printf "%s" "${vers}" | cut -d. -f1)"
|
||||||
minor="$(echo -n "${vers}" | cut -d. -f1)"
|
minor="$(printf "%s" "${vers}" | cut -d. -f1)"
|
||||||
|
|
||||||
commit="$(git rev-parse --short HEAD)"
|
commit="$(git rev-parse --short HEAD)"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue