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

Quelle  opal-calls.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright (c) 2016 IBM Corporation.
 */


#include "ppc_asm.h"
#include "../include/asm/opal-api.h"

 .text

 .globl opal_kentry
opal_kentry:
 /* r3 is the fdt ptr */
 mtctr r4
 li r4, 0
 li r5, 0
 li r6, 0
 li r7, 0
 LOAD_REG_ADDR(r11, opal)
 ld r8,0(r11)
 ld r9,8(r11)
 bctr

#define OPAL_CALL(name, token)    \
 .globl name;     \
name:       \
 li r0, token;    \
 b opal_call;

opal_call:
 mflr r11
 std r11,16(r1)
 mfcr r12
 stw r12,8(r1)
 mr r13,r2

 /* Set opal return address */
 LOAD_REG_ADDR(r11, opal_return)
 mtlr r11
 mfmsr r12

 /* switch to BE when we enter OPAL */
 li r11,MSR_LE
 andc r12,r12,r11
 mtspr SPRN_HSRR1,r12

 /* load the opal call entry point and base */
 LOAD_REG_ADDR(r11, opal)
 ld r12,8(r11)
 ld r2,0(r11)
 mtspr SPRN_HSRR0,r12
 hrfid

opal_return:
 FIXUP_ENDIAN
 mr r2,r13;
 lwz r11,8(r1);
 ld r12,16(r1)
 mtcr r11;
 mtlr r12
 blr

OPAL_CALL(opal_console_write,   OPAL_CONSOLE_WRITE);
OPAL_CALL(opal_console_read,   OPAL_CONSOLE_READ);
OPAL_CALL(opal_console_write_buffer_space, OPAL_CONSOLE_WRITE_BUFFER_SPACE);
OPAL_CALL(opal_poll_events,   OPAL_POLL_EVENTS);
OPAL_CALL(opal_console_flush,   OPAL_CONSOLE_FLUSH);

Messung V0.5
C=92 H=100 G=95

¤ Dauer der Verarbeitung: 0.0 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.