Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.30 47 lines 1.1 kB view raw
1/* 2 * sie64a.S - low level sie call 3 * 4 * Copyright IBM Corp. 2008 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License (version 2 only) 8 * as published by the Free Software Foundation. 9 * 10 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> 11 */ 12 13#include <linux/errno.h> 14#include <asm/asm-offsets.h> 15 16SP_R5 = 5 * 8 # offset into stackframe 17SP_R6 = 6 * 8 18 19/* 20 * sie64a calling convention: 21 * %r2 pointer to sie control block 22 * %r3 guest register save area 23 */ 24 .globl sie64a 25sie64a: 26 lgr %r5,%r3 27 stmg %r5,%r14,SP_R5(%r15) # save register on entry 28 lgr %r14,%r2 # pointer to sie control block 29 lmg %r0,%r13,0(%r3) # load guest gprs 0-13 30sie_inst: 31 sie 0(%r14) 32 lg %r14,SP_R5(%r15) 33 stmg %r0,%r13,0(%r14) # save guest gprs 0-13 34 lghi %r2,0 35 lmg %r6,%r14,SP_R6(%r15) 36 br %r14 37 38sie_err: 39 lg %r14,SP_R5(%r15) 40 stmg %r0,%r13,0(%r14) # save guest gprs 0-13 41 lghi %r2,-EFAULT 42 lmg %r6,%r14,SP_R6(%r15) 43 br %r14 44 45 .section __ex_table,"a" 46 .quad sie_inst,sie_err 47 .previous