Eine aufbereitete Darstellung der Quelle

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

Benutzer

Quelle  arm64-stub.c   Sprache: C

 

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2013, 2014 Linaro Ltd;  <roy.franz@linaro.org>
 *
 * This file implements the EFI boot stub for the arm64 kernel.
 * Adapted from ARM version by Mark Salter <msalter@redhat.com>
 */



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

#include "efistub.h"

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;

 if (image->image_base != _text) {
  efi_err("FIRMWARE BUG: efi_loaded_image_t::image_base has bogus value\n");
  image->image_base = _text;
 }

 if (!IS_ALIGNED((u64)_text, SEGMENT_ALIGN))
  efi_err("FIRMWARE BUG: kernel image not aligned on %dk boundary\n",
   SEGMENT_ALIGN >> 10);

 kernel_size = _edata - _text;
 kernel_codesize = __inittext_end - _text;
 kernel_memsize = kernel_size + (_end - _edata);
 *reserve_size = kernel_memsize;
 *image_addr = (unsigned long)_text;

 return efi_kaslr_relocate_kernel(image_addr, reserve_addr, reserve_size,
      kernel_size, kernel_codesize, kernel_memsize,
      efi_kaslr_get_phys_seed(image_handle));
}

asmlinkage void primary_entry(void);

unsigned long primary_entry_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 (char *)primary_entry - _text;
}

void efi_icache_sync(unsigned long start, unsigned long end)
{
 caches_clean_inval_pou(start, end);
}

Messung V0.5 in Prozent
C=96 H=80 G=88

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-10-02) ¤

*© 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=1126864
#Domains=1897691