Commit 70417740 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] ppc64: add hcall interface

From: Anton Blanchard <anton@samba.org>

add hcall interface
parent a62f6a53
...@@ -67,3 +67,39 @@ _GLOBAL(plpar_hcall_norets) ...@@ -67,3 +67,39 @@ _GLOBAL(plpar_hcall_norets)
ld r0,-8(r1) ld r0,-8(r1)
mtcrf 0xff,r0 mtcrf 0xff,r0
blr /* return r3 = status */ blr /* return r3 = status */
/* long plpar_hcall_8arg_2ret(unsigned long opcode, R3
unsigned long arg1, R4
unsigned long arg2, R5
unsigned long arg3, R6
unsigned long arg4, R7
unsigned long arg5, R8
unsigned long arg6, R9
unsigned long arg7, R10
unsigned long arg8, 112(R1)
unsigned long *out1); 120(R1)
*/
.text
_GLOBAL(plpar_hcall_8arg_2ret)
mfcr r0
ld r11, 112(r1) /* put arg8 and out1 in R11 and R12 */
ld r12, 120(r1)
std r0,-8(r1)
stdu r1,-32(r1)
std r12,-8(r1) /* Save out ptr */
HSC /* invoke the hypervisor */
ld r10,-8(r1) /* Fetch r4 ret arg */
std r4,0(r10)
ld r1,0(r1)
ld r0,-8(r1)
mtcrf 0xff,r0
blr /* return r3 = status */
...@@ -103,3 +103,21 @@ long plpar_hcall(unsigned long opcode, ...@@ -103,3 +103,21 @@ long plpar_hcall(unsigned long opcode,
* other than status. Slightly more efficient. * other than status. Slightly more efficient.
*/ */
long plpar_hcall_norets(unsigned long opcode, ...); long plpar_hcall_norets(unsigned long opcode, ...);
/*
* Special hcall interface for ibmveth support.
* Takes 8 input parms. Returns a rc and stores the
* R4 return value in *out1.
*/
long plpar_hcall_8arg_2ret(unsigned long opcode,
unsigned long arg1,
unsigned long arg2,
unsigned long arg3,
unsigned long arg4,
unsigned long arg5,
unsigned long arg6,
unsigned long arg7,
unsigned long arg8,
unsigned long *out1);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment