Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/riscv/kernel/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  efi-header.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2020 Western Digital Corporation or its affiliates.
 * Adapted from arch/arm64/kernel/efi-header.S
 */


#include <linux/pe.h>
#include <linux/sizes.h>
#include <asm/set_memory.h>

 .macro __EFI_PE_HEADER
 .long IMAGE_NT_SIGNATURE
coff_header:
#ifdef CONFIG_64BIT
 .short IMAGE_FILE_MACHINE_RISCV64  // Machine
#else
 .short IMAGE_FILE_MACHINE_RISCV32  // Machine
#endif
 .short section_count    // NumberOfSections
 .long 0      // TimeDateStamp
 .long 0     // PointerToSymbolTable
 .long 0     // NumberOfSymbols
 .short section_table - optional_header  // SizeOfOptionalHeader
 .short IMAGE_FILE_DEBUG_STRIPPED | \
  IMAGE_FILE_EXECUTABLE_IMAGE | \
  IMAGE_FILE_LINE_NUMS_STRIPPED  // Characteristics

optional_header:
#ifdef CONFIG_64BIT
 .short IMAGE_NT_OPTIONAL_HDR64_MAGIC  // PE32+ format
#else
 .short IMAGE_NT_OPTIONAL_HDR32_MAGIC  // PE32 format
#endif
 .byte 0x02     // MajorLinkerVersion
 .byte 0x14     // MinorLinkerVersion
 .long __pecoff_text_end - efi_header_end // SizeOfCode
#ifdef __clang__
 .long   __pecoff_data_virt_size   // SizeOfInitializedData
#else
 .long __pecoff_data_virt_end - __pecoff_text_end // SizeOfInitializedData
#endif
 .long 0     // SizeOfUninitializedData
 .long __efistub_efi_pe_entry - _start  // AddressOfEntryPoint
 .long efi_header_end - _start   // BaseOfCode
#ifdef CONFIG_32BIT
 .long  __pecoff_text_end - _start  // BaseOfData
#endif

extra_header_fields:
 .quad 0     // ImageBase
 .long PECOFF_SECTION_ALIGNMENT  // SectionAlignment
 .long PECOFF_FILE_ALIGNMENT   // FileAlignment
 .short 0     // MajorOperatingSystemVersion
 .short 0     // MinorOperatingSystemVersion
 .short LINUX_EFISTUB_MAJOR_VERSION  // MajorImageVersion
 .short LINUX_EFISTUB_MINOR_VERSION  // MinorImageVersion
 .short 0     // MajorSubsystemVersion
 .short 0     // MinorSubsystemVersion
 .long 0     // Win32VersionValue

 .long _end - _start    // SizeOfImage

 // Everything before the kernel image is considered part of the header
 .long efi_header_end - _start   // SizeOfHeaders
 .long 0     // CheckSum
 .short IMAGE_SUBSYSTEM_EFI_APPLICATION  // Subsystem
 .short IMAGE_DLLCHARACTERISTICS_NX_COMPAT // DllCharacteristics
 .quad 0     // SizeOfStackReserve
 .quad 0     // SizeOfStackCommit
 .quad 0     // SizeOfHeapReserve
 .quad 0     // SizeOfHeapCommit
 .long 0     // LoaderFlags
 .long (section_table - .) / 8   // NumberOfRvaAndSizes

 .quad 0     // ExportTable
 .quad 0     // ImportTable
 .quad 0     // ResourceTable
 .quad 0     // ExceptionTable
 .quad 0     // CertificationTable
 .quad 0     // BaseRelocationTable

 // Section table
section_table:
 .ascii ".text\0\0\0"
 .long __pecoff_text_end - efi_header_end // VirtualSize
 .long efi_header_end - _start   // VirtualAddress
 .long __pecoff_text_end - efi_header_end // SizeOfRawData
 .long efi_header_end - _start   // PointerToRawData

 .long 0     // PointerToRelocations
 .long 0     // PointerToLineNumbers
 .short 0     // NumberOfRelocations
 .short 0     // NumberOfLineNumbers
 .long IMAGE_SCN_CNT_CODE | \
  IMAGE_SCN_MEM_READ | \
  IMAGE_SCN_MEM_EXECUTE   // Characteristics

 .ascii ".data\0\0\0"
#ifdef __clang__
 .long   __pecoff_data_virt_size   // VirtualSize
#else
 .long __pecoff_data_virt_end - __pecoff_text_end // VirtualSize
#endif
 .long __pecoff_text_end - _start  // VirtualAddress
#ifdef __clang__
 .long   __pecoff_data_raw_size   // SizeOfRawData
#else
 .long __pecoff_data_raw_end - __pecoff_text_end // SizeOfRawData
#endif
 .long __pecoff_text_end - _start  // PointerToRawData

 .long 0     // PointerToRelocations
 .long 0     // PointerToLineNumbers
 .short 0     // NumberOfRelocations
 .short 0     // NumberOfLineNumbers
 .long IMAGE_SCN_CNT_INITIALIZED_DATA | \
  IMAGE_SCN_MEM_READ | \
  IMAGE_SCN_MEM_WRITE   // Characteristics

 .set section_count, (. - section_table) / 40

 .balign 0x1000
efi_header_end:
 .endm

Messung V0.5
C=99 H=100 G=99

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.