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

Quelle  head.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * arch/alpha/kernel/head.S
 *
 * initial boot stuff.. At this point, the bootloader has already
 * switched into OSF/1 PAL-code, and loaded us at the correct address
 * (START_ADDR).  So there isn't much left for us to do: just set up
 * the kernel global pointer and jump to the kernel entry-point.
 */


#include <linux/init.h>
#include <asm/asm-offsets.h>
#include <asm/pal.h>
#include <asm/setup.h>

__HEAD
.globl _stext
 .set noreorder
 .globl __start
 .ent __start
_stext:
__start:
 .prologue 0
 br $27,1f
1: ldgp $29,0($27)
 /* We need to get current_task_info loaded up...  */
 lda $8,init_thread_union
 /* ... and find our stack ... */
 lda $30,0x4000 - SIZEOF_PT_REGS($8)
 /* ... and then we can start the kernel.  */
 jsr $26,start_kernel
 call_pal PAL_halt
 .end __start

#ifdef CONFIG_SMP
 .align 3
 .globl __smp_callin
 .ent __smp_callin
 /* On entry here from SRM console, the HWPCB of the per-cpu
   slot for this processor has been loaded.  We've arranged
   for the UNIQUE value for this process to contain the PCBB
   of the target idle task.  */

__smp_callin:
 .prologue 1
 ldgp $29,0($27) # First order of business, load the GP.

 call_pal PAL_rduniq # Grab the target PCBB.
 mov $0,$16  # Install it.
 call_pal PAL_swpctx

 lda $8,0x3fff # Find "current".
 bic $30,$8,$8
 
 jsr $26,smp_callin
 call_pal PAL_halt
 .end __smp_callin
#endif /* CONFIG_SMP */

 #
 # The following two functions are needed for supporting SRM PALcode
 # on the PC164 (at least), since that PALcode manages the interrupt
 # masking, and we cannot duplicate the effort without causing problems
 #

 .align 3
 .globl cserve_ena
 .ent cserve_ena
cserve_ena:
 .prologue 0
 bis $16,$16,$17
 lda $16,52($31)
 call_pal PAL_cserve
 ret ($26)
 .end cserve_ena

 .align 3
 .globl cserve_dis
 .ent cserve_dis
cserve_dis:
 .prologue 0
 bis $16,$16,$17
 lda $16,53($31)
 call_pal PAL_cserve
 ret ($26)
 .end cserve_dis

 #
 # It is handy, on occasion, to make halt actually just loop. 
 # Putting it here means we dont have to recompile the whole
 # kernel.
 #

 .align 3
 .globl halt
 .ent halt
halt:
 .prologue 0
 call_pal PAL_halt
 .end halt

Messung V0.5
C=94 H=100 G=96

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© 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.