[POWERPC] clean up pseries hcall interfaces
Our pseries hcall interfaces are out of control: plpar_hcall_norets plpar_hcall plpar_hcall_8arg_2ret plpar_hcall_4out plpar_hcall_7arg_7ret plpar_hcall_9arg_9ret Create 3 interfaces to cover all cases: plpar_hcall_norets: 7 arguments no returns plpar_hcall: 6 arguments 4 returns plpar_hcall9: 9 arguments 9 returns There are only 2 cases in the kernel that need plpar_hcall9, hopefully we can keep it that way. Pass in a buffer to stash return parameters so we avoid the &dummy1, &dummy2 madness. Signed-off-by: Anton Blanchard <anton@samba.org> -- Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:

committed by
Paul Mackerras

parent
57cad8084e
commit
b9377ffc3a
@@ -182,8 +182,14 @@ static unsigned int h_get_ppp(unsigned long *entitled,
|
||||
unsigned long *resource)
|
||||
{
|
||||
unsigned long rc;
|
||||
rc = plpar_hcall_4out(H_GET_PPP, 0, 0, 0, 0, entitled, unallocated,
|
||||
aggregation, resource);
|
||||
unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
|
||||
|
||||
rc = plpar_hcall(H_GET_PPP, retbuf);
|
||||
|
||||
*entitled = retbuf[0];
|
||||
*unallocated = retbuf[1];
|
||||
*aggregation = retbuf[2];
|
||||
*resource = retbuf[3];
|
||||
|
||||
log_plpar_hcall_return(rc, "H_GET_PPP");
|
||||
|
||||
@@ -193,8 +199,12 @@ static unsigned int h_get_ppp(unsigned long *entitled,
|
||||
static void h_pic(unsigned long *pool_idle_time, unsigned long *num_procs)
|
||||
{
|
||||
unsigned long rc;
|
||||
unsigned long dummy;
|
||||
rc = plpar_hcall(H_PIC, 0, 0, 0, 0, pool_idle_time, num_procs, &dummy);
|
||||
unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
|
||||
|
||||
rc = plpar_hcall(H_PIC, retbuf);
|
||||
|
||||
*pool_idle_time = retbuf[0];
|
||||
*num_procs = retbuf[1];
|
||||
|
||||
if (rc != H_AUTHORITY)
|
||||
log_plpar_hcall_return(rc, "H_PIC");
|
||||
|
Reference in New Issue
Block a user