Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  riscv-stub.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2020 Western Digital Corporation or its affiliates.
 */


#include <linux/efi.h>

#include <asm/efi.h>
#include <asm/sections.h>
#include <linux/unaligned.h>

#include "efistub.h"

unsigned long stext_offset(void)
{
 /*
 * When built as part of the kernel, the EFI stub cannot branch to the
 * kernel proper via the image header, as the PE/COFF header is
 * strictly not part of the in-memory presentation of the image, only
 * of the file representation. So instead, we need to jump to the
 * actual entrypoint in the .text region of the image.
 */

 return _start_kernel - _start;
}

efi_status_t handle_kernel_image(unsigned long *image_addr,
     unsigned long *image_size,
     unsigned long *reserve_addr,
     unsigned long *reserve_size,
     efi_loaded_image_t *image,
     efi_handle_t image_handle)
{
 unsigned long kernel_size, kernel_codesize, kernel_memsize;
 efi_status_t status;

 kernel_size = _edata - _start;
 kernel_codesize = __init_text_end - _start;
 kernel_memsize = kernel_size + (_end - _edata);
 *image_addr = (unsigned long)_start;
 *image_size = kernel_memsize;
 *reserve_size = *image_size;

 status = efi_kaslr_relocate_kernel(image_addr,
        reserve_addr, reserve_size,
        kernel_size, kernel_codesize, kernel_memsize,
        efi_kaslr_get_phys_seed(image_handle));
 if (status != EFI_SUCCESS) {
  efi_err("Failed to relocate kernel\n");
  *image_size = 0;
 }

 return status;
}

void efi_icache_sync(unsigned long start, unsigned long end)
{
 asm volatile ("fence.i" ::: "memory");
}

Messung V0.5 in Prozent
C=96 H=94 G=94

¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet am  2026-06-07) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002