#include <linux/pe.h>
#include <linux/sizes.h>
.macro efi_signature_nop
#ifdef CONFIG_EFI
.L_head:
ccmp x18, #0, #0xd, pl
#else
nop
#endif
.endm
.macro __EFI_PE_HEADER
#ifdef CONFIG_EFI
.set .Lpe_header_offset, . - .L_head
.long IMAGE_NT_SIGNATURE
.short IMAGE_FILE_MACHINE_ARM64
.short .Lsection_count
.long 0
.long 0
.long 0
.short .Lsection_table - .Loptional_header
.short IMAGE_FILE_DEBUG_STRIPPED | \
IMAGE_FILE_EXECUTABLE_IMAGE | \
IMAGE_FILE_LINE_NUMS_STRIPPED
.Loptional_header:
.short IMAGE_NT_OPTIONAL_HDR64_MAGIC
.byte 0x02
.byte 0x14
.long __initdata_begin - .Lefi_header_end
.long __pecoff_data_size
.long 0
.long __efistub_efi_pe_entry - .L_head
.long .Lefi_header_end - .L_head
.quad 0
.long SEGMENT_ALIGN
.long PECOFF_FILE_ALIGNMENT
.short 0
.short 0
.short LINUX_EFISTUB_MAJOR_VERSION
.short LINUX_EFISTUB_MINOR_VERSION
.short 0
.short 0
.long 0
.long _end - .L_head
.long .Lefi_header_end - .L_head
.long 0
.short IMAGE_SUBSYSTEM_EFI_APPLICATION
.short IMAGE_DLLCHARACTERISTICS_NX_COMPAT
.quad 0
.quad 0
.quad 0
.quad 0
.long 0
.long (.Lsection_table - .) / 8
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
#if defined(CONFIG_DEBUG_EFI) || defined(CONFIG_ARM64_BTI_KERNEL)
.long .Lefi_debug_table - .L_head
.long .Lefi_debug_table_size
__INITRODATA
.align 2
.Lefi_debug_table:
#ifdef CONFIG_DEBUG_EFI
.long 0
.long 0
.short 0
.short 0
.long IMAGE_DEBUG_TYPE_CODEVIEW
.long .Lefi_debug_entry_size
.long 0
.long .Lefi_debug_entry - .L_head
#endif
#ifdef CONFIG_ARM64_BTI_KERNEL
.long 0
.long 0
.short 0
.short 0
.long IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS
.long 4
.long 0
.long .Lefi_dll_characteristics_ex - .L_head
#endif
.set .Lefi_debug_table_size, . - .Lefi_debug_table
.previous
#endif
.Lsection_table:
.ascii ".text\0\0\0"
.long __initdata_begin - .Lefi_header_end
.long .Lefi_header_end - .L_head
.long __initdata_begin - .Lefi_header_end
.long .Lefi_header_end - .L_head
.long 0
.long 0
.short 0
.short 0
.long IMAGE_SCN_CNT_CODE | \
IMAGE_SCN_MEM_READ | \
IMAGE_SCN_MEM_EXECUTE
.ascii ".data\0\0\0"
.long __pecoff_data_size
.long __initdata_begin - .L_head
.long __pecoff_data_rawsize
.long __initdata_begin - .L_head
.long 0
.long 0
.short 0
.short 0
.long IMAGE_SCN_CNT_INITIALIZED_DATA | \
IMAGE_SCN_MEM_READ | \
IMAGE_SCN_MEM_WRITE
.set .Lsection_count, (. - .Lsection_table) / 40
#ifdef CONFIG_DEBUG_EFI
.Lefi_debug_entry:
.ascii "NB10"
.long 0
.long 0
.long 0
.asciz VMLINUX_PATH
.set .Lefi_debug_entry_size, . - .Lefi_debug_entry
#endif
#ifdef CONFIG_ARM64_BTI_KERNEL
.Lefi_dll_characteristics_ex:
.long IMAGE_DLLCHARACTERISTICS_EX_FORWARD_CFI_COMPAT
#endif
.balign SEGMENT_ALIGN
.Lefi_header_end:
#else
.set .Lpe_header_offset, 0x0
#endif
.endm