Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /* cif.S: PROM entry/exit assembler trampolines.
0003  *
0004  * Copyright (C) 1996, 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
0005  * Copyright (C) 2005, 2006 David S. Miller <davem@davemloft.net>
0006  */
0007 
0008 #include <asm/pstate.h>
0009 #include <asm/cpudata.h>
0010 #include <asm/thread_info.h>
0011 
0012     .text
0013     .globl  prom_cif_direct
0014 prom_cif_direct:
0015     save    %sp, -192, %sp
0016     sethi   %hi(p1275buf), %o1
0017     or  %o1, %lo(p1275buf), %o1
0018     ldx [%o1 + 0x0008], %l2 ! prom_cif_handler
0019     mov %g4, %l0
0020     mov %g5, %l1
0021     mov %g6, %l3
0022     call    %l2
0023      mov    %i0, %o0        ! prom_args
0024     mov %l0, %g4
0025     mov %l1, %g5
0026     mov %l3, %g6
0027     ret
0028      restore
0029 
0030     .globl  prom_cif_callback
0031 prom_cif_callback:
0032     sethi   %hi(p1275buf), %o1
0033     or  %o1, %lo(p1275buf), %o1
0034     save    %sp, -192, %sp
0035     TRAP_LOAD_THREAD_REG(%g6, %g1)
0036     LOAD_PER_CPU_BASE(%g5, %g6, %g4, %g3, %o0)
0037     ldx [%g6 + TI_TASK], %g4
0038     call    prom_world
0039      mov    0, %o0
0040     ldx [%i1 + 0x000], %l2
0041     call    %l2
0042      mov    %i0, %o0
0043     mov %o0, %l1
0044     call    prom_world
0045      mov    1, %o0
0046     ret
0047      restore %l1, 0, %o0
0048