2 * arch/ppc64/kernel/pSeries_hvCall.S
5 * This file contains the generic code to perform a call to the
6 * pSeries LPAR hypervisor.
7 * NOTE: this file will go away when we move to inline this work.
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version
12 * 2 of the License, or (at your option) any later version.
14 #include <linux/config.h>
15 #include <linux/sys.h>
16 #include <asm/unistd.h>
17 #include <asm/errno.h>
18 #include <asm/processor.h>
20 #include <asm/cache.h>
24 * hcall interface to pSeries LPAR
26 #define HSC .long 0x44000022
28 /* long plpar_hcall(unsigned long opcode, R3
29 unsigned long arg1, R4
30 unsigned long arg2, R5
31 unsigned long arg3, R6
32 unsigned long arg4, R7
33 unsigned long *out1, R8
34 unsigned long *out2, R9
35 unsigned long *out3); R10
44 std r8,-8(r1) /* Save out ptrs. */
48 HSC /* invoke the hypervisor */
50 ld r10,-8(r1) /* Fetch r4-r7 ret args. */
60 blr /* return r3 = status */
63 /* Simple interface with no output values (other than status) */
64 _GLOBAL(plpar_hcall_norets)
67 HSC /* invoke the hypervisor */
70 blr /* return r3 = status */