Commit 45dc76aa authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Linus Torvalds

[PATCH] ppc64 iSeries: header file white space cleanups

This patch just contains white space and comment cleanups in the iSeries
headers files.  There are no semantic changes.
Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 0e3e4a1c
...@@ -16,19 +16,13 @@ ...@@ -16,19 +16,13 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
/*
//=========================================================================== * This file contains the "hypervisor call" interface which is used to
// * drive the hypervisor from the OS.
// This file contains the "hypervisor call" interface which is used to */
// drive the hypervisor from the OS.
//
//===========================================================================
#ifndef _HVCALL_H #ifndef _HVCALL_H
#define _HVCALL_H #define _HVCALL_H
//-------------------------------------------------------------------
// Standard Includes
//-------------------------------------------------------------------
#include <asm/iSeries/HvCallSc.h> #include <asm/iSeries/HvCallSc.h>
#include <asm/iSeries/HvTypes.h> #include <asm/iSeries/HvTypes.h>
#include <asm/paca.h> #include <asm/paca.h>
...@@ -76,9 +70,9 @@ enum HvCall_VaryOffChunkRc ...@@ -76,9 +70,9 @@ enum HvCall_VaryOffChunkRc
*/ */
/* Type of yield for HvCallBaseYieldProcessor */ /* Type of yield for HvCallBaseYieldProcessor */
#define HvCall_YieldTimed 0 // Yield until specified time (tb) #define HvCall_YieldTimed 0 /* Yield until specified time (tb) */
#define HvCall_YieldToActive 1 // Yield until all active procs have run #define HvCall_YieldToActive 1 /* Yield until all active procs have run */
#define HvCall_YieldToProc 2 // Yield until the specified processor has run #define HvCall_YieldToProc 2 /* Yield until the specified processor has run */
/* interrupt masks for setEnabledInterrupts */ /* interrupt masks for setEnabledInterrupts */
#define HvCall_MaskIPI 0x00000001 #define HvCall_MaskIPI 0x00000001
...@@ -125,71 +119,65 @@ enum HvCall_VaryOffChunkRc ...@@ -125,71 +119,65 @@ enum HvCall_VaryOffChunkRc
#define HvCallCcSetDABR HvCallCc + 7 #define HvCallCcSetDABR HvCallCc + 7
//=====================================================================================
static inline void HvCall_setVirtualDecr(void) static inline void HvCall_setVirtualDecr(void)
{ {
/* Ignore any error return codes - most likely means that the target value for the /*
* LP has been increased and this vary off would bring us below the new target. */ * Ignore any error return codes - most likely means that the
* target value for the LP has been increased and this vary off
* would bring us below the new target.
*/
HvCall0(HvCallBaseSetVirtualDecr); HvCall0(HvCallBaseSetVirtualDecr);
} }
//=====================================================================
static inline void HvCall_yieldProcessor(unsigned typeOfYield, u64 yieldParm) static inline void HvCall_yieldProcessor(unsigned typeOfYield, u64 yieldParm)
{ {
HvCall2( HvCallBaseYieldProcessor, typeOfYield, yieldParm ); HvCall2(HvCallBaseYieldProcessor, typeOfYield, yieldParm);
} }
//=====================================================================
static inline void HvCall_setEnabledInterrupts(u64 enabledInterrupts) static inline void HvCall_setEnabledInterrupts(u64 enabledInterrupts)
{ {
HvCall1(HvCallBaseSetEnabledInterrupts,enabledInterrupts); HvCall1(HvCallBaseSetEnabledInterrupts, enabledInterrupts);
} }
//=====================================================================
static inline void HvCall_clearLogBuffer(HvLpIndex lpindex) static inline void HvCall_clearLogBuffer(HvLpIndex lpindex)
{ {
HvCall1(HvCallBaseClearLogBuffer,lpindex); HvCall1(HvCallBaseClearLogBuffer, lpindex);
} }
//=====================================================================
static inline u32 HvCall_getLogBufferCodePage(HvLpIndex lpindex) static inline u32 HvCall_getLogBufferCodePage(HvLpIndex lpindex)
{ {
u32 retVal = HvCall1(HvCallBaseGetLogBufferCodePage,lpindex); u32 retVal = HvCall1(HvCallBaseGetLogBufferCodePage, lpindex);
return retVal; return retVal;
} }
//=====================================================================
static inline int HvCall_getLogBufferFormat(HvLpIndex lpindex) static inline int HvCall_getLogBufferFormat(HvLpIndex lpindex)
{ {
int retVal = HvCall1(HvCallBaseGetLogBufferFormat,lpindex); int retVal = HvCall1(HvCallBaseGetLogBufferFormat, lpindex);
return retVal; return retVal;
} }
//=====================================================================
static inline u32 HvCall_getLogBufferLength(HvLpIndex lpindex) static inline u32 HvCall_getLogBufferLength(HvLpIndex lpindex)
{ {
u32 retVal = HvCall1(HvCallBaseGetLogBufferLength,lpindex); u32 retVal = HvCall1(HvCallBaseGetLogBufferLength, lpindex);
return retVal; return retVal;
} }
//=====================================================================
static inline void HvCall_setLogBufferFormatAndCodepage(int format, u32 codePage) static inline void HvCall_setLogBufferFormatAndCodepage(int format, u32 codePage)
{ {
HvCall2(HvCallBaseSetLogBufferFormatAndCodePage,format, codePage); HvCall2(HvCallBaseSetLogBufferFormatAndCodePage, format, codePage);
} }
//===================================================================== extern int HvCall_readLogBuffer(HvLpIndex lpindex, void *buffer, u64 bufLen);
int HvCall_readLogBuffer(HvLpIndex lpindex, void *buffer, u64 bufLen); extern void HvCall_writeLogBuffer(const void *buffer, u64 bufLen);
void HvCall_writeLogBuffer(const void *buffer, u64 bufLen);
//===================================================================== static inline void HvCall_sendIPI(struct paca_struct *targetPaca)
static inline void HvCall_sendIPI(struct paca_struct * targetPaca)
{ {
HvCall1( HvCallBaseSendIPI, targetPaca->paca_index ); HvCall1(HvCallBaseSendIPI, targetPaca->paca_index);
} }
//=====================================================================
static inline void HvCall_terminateMachineSrc(void) static inline void HvCall_terminateMachineSrc(void)
{ {
HvCall0( HvCallBaseTerminateMachineSrc ); HvCall0(HvCallBaseTerminateMachineSrc);
} }
static inline void HvCall_setDABR(unsigned long val) static inline void HvCall_setDABR(unsigned long val)
......
...@@ -16,28 +16,17 @@ ...@@ -16,28 +16,17 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
/*
//===================================================================================== * This file contains the "hypervisor call" interface which is used to
// * drive the hypervisor from the OS.
// This file contains the "hypervisor call" interface which is used to */
// drive the hypervisor from the OS.
//
//=====================================================================================
#ifndef _HVCALLCFG_H #ifndef _HVCALLCFG_H
#define _HVCALLCFG_H #define _HVCALLCFG_H
//-------------------------------------------------------------------
// Standard Includes
//-------------------------------------------------------------------
#include <asm/iSeries/HvCallSc.h> #include <asm/iSeries/HvCallSc.h>
#include <asm/iSeries/HvTypes.h> #include <asm/iSeries/HvTypes.h>
//------------------------------------------------------------------------------------- enum HvCallCfg_ReqQual {
// Constants
//-------------------------------------------------------------------------------------
enum HvCallCfg_ReqQual
{
HvCallCfg_Cur = 0, HvCallCfg_Cur = 0,
HvCallCfg_Init = 1, HvCallCfg_Init = 1,
HvCallCfg_Max = 2, HvCallCfg_Max = 2,
...@@ -78,96 +67,101 @@ enum HvCallCfg_ReqQual ...@@ -78,96 +67,101 @@ enum HvCallCfg_ReqQual
#define HvCallCfgGetLpExecutionMode HvCallCfg + 31 #define HvCallCfgGetLpExecutionMode HvCallCfg + 31
#define HvCallCfgGetHostingLpIndex HvCallCfg + 32 #define HvCallCfgGetHostingLpIndex HvCallCfg + 32
//====================================================================
static inline HvLpIndex HvCallCfg_getLps(void) static inline HvLpIndex HvCallCfg_getLps(void)
{ {
HvLpIndex retVal = HvCall0(HvCallCfgGetLps); HvLpIndex retVal = HvCall0(HvCallCfgGetLps);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//====================================================================
static inline int HvCallCfg_isBusDedicated(u64 busIndex) static inline int HvCallCfg_isBusDedicated(u64 busIndex)
{ {
int retVal = HvCall1(HvCallCfgIsBusDedicated,busIndex); int retVal = HvCall1(HvCallCfgIsBusDedicated,busIndex);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//====================================================================
static inline HvLpIndex HvCallCfg_getBusOwner(u64 busIndex) static inline HvLpIndex HvCallCfg_getBusOwner(u64 busIndex)
{ {
HvLpIndex retVal = HvCall1(HvCallCfgGetBusOwner,busIndex); HvLpIndex retVal = HvCall1(HvCallCfgGetBusOwner,busIndex);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//====================================================================
static inline HvLpIndexMap HvCallCfg_getBusAllocation(u64 busIndex) static inline HvLpIndexMap HvCallCfg_getBusAllocation(u64 busIndex)
{ {
HvLpIndexMap retVal = HvCall1(HvCallCfgGetBusAllocation,busIndex); HvLpIndexMap retVal = HvCall1(HvCallCfgGetBusAllocation,busIndex);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//====================================================================
static inline HvLpIndexMap HvCallCfg_getActiveLpMap(void) static inline HvLpIndexMap HvCallCfg_getActiveLpMap(void)
{ {
HvLpIndexMap retVal = HvCall0(HvCallCfgGetActiveLpMap); HvLpIndexMap retVal = HvCall0(HvCallCfgGetActiveLpMap);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//====================================================================
static inline HvLpVirtualLanIndexMap HvCallCfg_getVirtualLanIndexMap(HvLpIndex lp) static inline HvLpVirtualLanIndexMap HvCallCfg_getVirtualLanIndexMap(
HvLpIndex lp)
{ {
// This is a new function in V5R1 so calls to this on older /*
// hypervisors will return -1 * This is a new function in V5R1 so calls to this on older
* hypervisors will return -1
*/
u64 retVal = HvCall1(HvCallCfgGetVirtualLanIndexMap, lp); u64 retVal = HvCall1(HvCallCfgGetVirtualLanIndexMap, lp);
if(retVal == -1) if (retVal == -1)
retVal = 0; retVal = 0;
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//===================================================================
static inline u64 HvCallCfg_getSystemMsChunks(void) static inline u64 HvCallCfg_getSystemMsChunks(void)
{ {
u64 retVal = HvCall0(HvCallCfgGetSystemMsChunks); u64 retVal = HvCall0(HvCallCfgGetSystemMsChunks);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//===================================================================
static inline u64 HvCallCfg_getMsChunks(HvLpIndex lp,enum HvCallCfg_ReqQual qual) static inline u64 HvCallCfg_getMsChunks(HvLpIndex lp,
enum HvCallCfg_ReqQual qual)
{ {
u64 retVal = HvCall2(HvCallCfgGetMsChunks,lp,qual); u64 retVal = HvCall2(HvCallCfgGetMsChunks,lp,qual);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//===================================================================
static inline u64 HvCallCfg_getMinRuntimeMsChunks(HvLpIndex lp) static inline u64 HvCallCfg_getMinRuntimeMsChunks(HvLpIndex lp)
{ {
// NOTE: This function was added in v5r1 so older hypervisors will return a -1 value /*
u64 retVal = HvCall1(HvCallCfgGetMinRuntimeMsChunks,lp); * NOTE: This function was added in v5r1 so older hypervisors
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); * will return a -1 value
return retVal; */
return HvCall1(HvCallCfgGetMinRuntimeMsChunks, lp);
} }
//===================================================================
static inline u64 HvCallCfg_setMinRuntimeMsChunks(u64 chunks) static inline u64 HvCallCfg_setMinRuntimeMsChunks(u64 chunks)
{ {
u64 retVal = HvCall1(HvCallCfgSetMinRuntimeMsChunks,chunks); u64 retVal = HvCall1(HvCallCfgSetMinRuntimeMsChunks,chunks);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//===================================================================
static inline u64 HvCallCfg_getSystemPhysicalProcessors(void) static inline u64 HvCallCfg_getSystemPhysicalProcessors(void)
{ {
u64 retVal = HvCall0(HvCallCfgGetSystemPhysicalProcessors); u64 retVal = HvCall0(HvCallCfgGetSystemPhysicalProcessors);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//===================================================================
static inline u64 HvCallCfg_getPhysicalProcessors(HvLpIndex lp,enum HvCallCfg_ReqQual qual) static inline u64 HvCallCfg_getPhysicalProcessors(HvLpIndex lp,
enum HvCallCfg_ReqQual qual)
{ {
u64 retVal = HvCall2(HvCallCfgGetPhysicalProcessors,lp,qual); u64 retVal = HvCall2(HvCallCfgGetPhysicalProcessors,lp,qual);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//===================================================================
static inline u64 HvCallCfg_getConfiguredBusUnitsForInterruptProc(HvLpIndex lp, static inline u64 HvCallCfg_getConfiguredBusUnitsForInterruptProc(HvLpIndex lp,
u16 hvLogicalProcIndex) u16 hvLogicalProcIndex)
{ {
...@@ -176,7 +170,7 @@ static inline u64 HvCallCfg_getConfiguredBusUnitsForInterruptProc(HvLpIndex lp, ...@@ -176,7 +170,7 @@ static inline u64 HvCallCfg_getConfiguredBusUnitsForInterruptProc(HvLpIndex lp,
return retVal; return retVal;
} }
//==================================================================
static inline HvLpSharedPoolIndex HvCallCfg_getSharedPoolIndex(HvLpIndex lp) static inline HvLpSharedPoolIndex HvCallCfg_getSharedPoolIndex(HvLpIndex lp)
{ {
HvLpSharedPoolIndex retVal = HvLpSharedPoolIndex retVal =
...@@ -185,15 +179,16 @@ static inline HvLpSharedPoolIndex HvCallCfg_getSharedPoolIndex(HvLpIndex lp) ...@@ -185,15 +179,16 @@ static inline HvLpSharedPoolIndex HvCallCfg_getSharedPoolIndex(HvLpIndex lp)
return retVal; return retVal;
} }
//==================================================================
static inline u64 HvCallCfg_getSharedProcUnits(HvLpIndex lp,enum HvCallCfg_ReqQual qual) static inline u64 HvCallCfg_getSharedProcUnits(HvLpIndex lp,
enum HvCallCfg_ReqQual qual)
{ {
u64 retVal = HvCall2(HvCallCfgGetSharedProcUnits,lp,qual); u64 retVal = HvCall2(HvCallCfgGetSharedProcUnits,lp,qual);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//==================================================================
static inline u64 HvCallCfg_getNumProcsInSharedPool(HvLpSharedPoolIndex sPI) static inline u64 HvCallCfg_getNumProcsInSharedPool(HvLpSharedPoolIndex sPI)
{ {
u16 retVal = HvCall1(HvCallCfgGetNumProcsInSharedPool,sPI); u16 retVal = HvCall1(HvCallCfgGetNumProcsInSharedPool,sPI);
...@@ -201,13 +196,12 @@ static inline u64 HvCallCfg_getNumProcsInSharedPool(HvLpSharedPoolIndex sPI) ...@@ -201,13 +196,12 @@ static inline u64 HvCallCfg_getNumProcsInSharedPool(HvLpSharedPoolIndex sPI)
return retVal; return retVal;
} }
//==================================================================
static inline HvLpIndex HvCallCfg_getHostingLpIndex(HvLpIndex lp) static inline HvLpIndex HvCallCfg_getHostingLpIndex(HvLpIndex lp)
{ {
u64 retVal = HvCall1(HvCallCfgGetHostingLpIndex,lp); u64 retVal = HvCall1(HvCallCfgGetHostingLpIndex,lp);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
#endif /* _HVCALLCFG_H */ #endif /* _HVCALLCFG_H */
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
/* /*
* This file contains the "hypervisor call" interface which is used to * This file contains the "hypervisor call" interface which is used to
* drive the hypervisor from the OS. * drive the hypervisor from the OS.
...@@ -24,9 +23,6 @@ ...@@ -24,9 +23,6 @@
#ifndef _HVCALLEVENT_H #ifndef _HVCALLEVENT_H
#define _HVCALLEVENT_H #define _HVCALLEVENT_H
/*
* Standard Includes
*/
#include <asm/iSeries/HvCallSc.h> #include <asm/iSeries/HvCallSc.h>
#include <asm/iSeries/HvTypes.h> #include <asm/iSeries/HvTypes.h>
#include <asm/abs_addr.h> #include <asm/abs_addr.h>
...@@ -85,13 +81,13 @@ typedef u64 HvLpDma_Rc; ...@@ -85,13 +81,13 @@ typedef u64 HvLpDma_Rc;
static inline void HvCallEvent_getOverflowLpEvents(u8 queueIndex) static inline void HvCallEvent_getOverflowLpEvents(u8 queueIndex)
{ {
HvCall1(HvCallEventGetOverflowLpEvents,queueIndex); HvCall1(HvCallEventGetOverflowLpEvents, queueIndex);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
} }
static inline void HvCallEvent_setInterLpQueueIndex(u8 queueIndex) static inline void HvCallEvent_setInterLpQueueIndex(u8 queueIndex)
{ {
HvCall1(HvCallEventSetInterLpQueueIndex,queueIndex); HvCall1(HvCallEventSetInterLpQueueIndex, queueIndex);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
} }
...@@ -138,7 +134,7 @@ static inline HvLpEvent_Rc HvCallEvent_signalLpEventFast(HvLpIndex targetLp, ...@@ -138,7 +134,7 @@ static inline HvLpEvent_Rc HvCallEvent_signalLpEventFast(HvLpIndex targetLp,
{ {
HvLpEvent_Rc retVal; HvLpEvent_Rc retVal;
// Pack the misc bits into a single Dword to pass to PLIC /* Pack the misc bits into a single Dword to pass to PLIC */
union { union {
struct HvCallEvent_PackedParms parms; struct HvCallEvent_PackedParms parms;
u64 dword; u64 dword;
...@@ -225,7 +221,7 @@ static inline HvLpDma_Rc HvCallEvent_dmaBufList(HvLpEvent_Type type, ...@@ -225,7 +221,7 @@ static inline HvLpDma_Rc HvCallEvent_dmaBufList(HvLpEvent_Type type,
u64 localBufList, u64 remoteBufList, u32 transferLength) u64 localBufList, u64 remoteBufList, u32 transferLength)
{ {
HvLpDma_Rc retVal; HvLpDma_Rc retVal;
// Pack the misc bits into a single Dword to pass to PLIC /* Pack the misc bits into a single Dword to pass to PLIC */
union { union {
struct HvCallEvent_PackedDmaParms parms; struct HvCallEvent_PackedDmaParms parms;
u64 dword; u64 dword;
...@@ -257,7 +253,7 @@ static inline HvLpDma_Rc HvCallEvent_dmaSingle(HvLpEvent_Type type, ...@@ -257,7 +253,7 @@ static inline HvLpDma_Rc HvCallEvent_dmaSingle(HvLpEvent_Type type,
u64 localAddrOrTce, u64 remoteAddrOrTce, u32 transferLength) u64 localAddrOrTce, u64 remoteAddrOrTce, u32 transferLength)
{ {
HvLpDma_Rc retVal; HvLpDma_Rc retVal;
// Pack the misc bits into a single Dword to pass to PLIC /* Pack the misc bits into a single Dword to pass to PLIC */
union { union {
struct HvCallEvent_PackedDmaParms parms; struct HvCallEvent_PackedDmaParms parms;
u64 dword; u64 dword;
...@@ -280,7 +276,7 @@ static inline HvLpDma_Rc HvCallEvent_dmaSingle(HvLpEvent_Type type, ...@@ -280,7 +276,7 @@ static inline HvLpDma_Rc HvCallEvent_dmaSingle(HvLpEvent_Type type,
return retVal; return retVal;
} }
static inline HvLpDma_Rc HvCallEvent_dmaToSp(void* local, u32 remote, static inline HvLpDma_Rc HvCallEvent_dmaToSp(void *local, u32 remote,
u32 length, HvLpDma_Direction dir) u32 length, HvLpDma_Direction dir)
{ {
u64 abs_addr; u64 abs_addr;
...@@ -293,5 +289,4 @@ static inline HvLpDma_Rc HvCallEvent_dmaToSp(void* local, u32 remote, ...@@ -293,5 +289,4 @@ static inline HvLpDma_Rc HvCallEvent_dmaToSp(void* local, u32 remote,
return retVal; return retVal;
} }
#endif /* _HVCALLEVENT_H */ #endif /* _HVCALLEVENT_H */
...@@ -19,21 +19,15 @@ ...@@ -19,21 +19,15 @@
#ifndef _HVCALLHPT_H #ifndef _HVCALLHPT_H
#define _HVCALLHPT_H #define _HVCALLHPT_H
//============================================================================ /*
// * This file contains the "hypervisor call" interface which is used to
// This file contains the "hypervisor call" interface which is used to * drive the hypervisor from the OS.
// drive the hypervisor from the OS. */
//
//============================================================================
#include <asm/iSeries/HvCallSc.h> #include <asm/iSeries/HvCallSc.h>
#include <asm/iSeries/HvTypes.h> #include <asm/iSeries/HvTypes.h>
#include <asm/mmu.h> #include <asm/mmu.h>
//-----------------------------------------------------------------------------
// Constants
//-----------------------------------------------------------------------------
#define HvCallHptGetHptAddress HvCallHpt + 0 #define HvCallHptGetHptAddress HvCallHpt + 0
#define HvCallHptGetHptPages HvCallHpt + 1 #define HvCallHptGetHptPages HvCallHpt + 1
#define HvCallHptSetPp HvCallHpt + 5 #define HvCallHptSetPp HvCallHpt + 5
...@@ -47,81 +41,76 @@ ...@@ -47,81 +41,76 @@
#define HvCallHptInvalidateSetSwBitsGet HvCallHpt + 18 #define HvCallHptInvalidateSetSwBitsGet HvCallHpt + 18
//============================================================================
static inline u64 HvCallHpt_getHptAddress(void) static inline u64 HvCallHpt_getHptAddress(void)
{ {
u64 retval = HvCall0(HvCallHptGetHptAddress); u64 retval = HvCall0(HvCallHptGetHptAddress);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retval; return retval;
} }
//============================================================================
static inline u64 HvCallHpt_getHptPages(void) static inline u64 HvCallHpt_getHptPages(void)
{ {
u64 retval = HvCall0(HvCallHptGetHptPages); u64 retval = HvCall0(HvCallHptGetHptPages);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retval; return retval;
} }
//=============================================================================
static inline void HvCallHpt_setPp(u32 hpteIndex, u8 value) static inline void HvCallHpt_setPp(u32 hpteIndex, u8 value)
{ {
HvCall2( HvCallHptSetPp, hpteIndex, value ); HvCall2(HvCallHptSetPp, hpteIndex, value);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
} }
//=============================================================================
static inline void HvCallHpt_setSwBits(u32 hpteIndex, u8 bitson, u8 bitsoff ) static inline void HvCallHpt_setSwBits(u32 hpteIndex, u8 bitson, u8 bitsoff)
{ {
HvCall3( HvCallHptSetSwBits, hpteIndex, bitson, bitsoff ); HvCall3(HvCallHptSetSwBits, hpteIndex, bitson, bitsoff);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
} }
//=============================================================================
static inline void HvCallHpt_invalidateNoSyncICache(u32 hpteIndex)
static inline void HvCallHpt_invalidateNoSyncICache(u32 hpteIndex)
{ {
HvCall1( HvCallHptInvalidateNoSyncICache, hpteIndex ); HvCall1(HvCallHptInvalidateNoSyncICache, hpteIndex);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
} }
//=============================================================================
static inline u64 HvCallHpt_invalidateSetSwBitsGet(u32 hpteIndex, u8 bitson, u8 bitsoff )
static inline u64 HvCallHpt_invalidateSetSwBitsGet(u32 hpteIndex, u8 bitson,
u8 bitsoff)
{ {
u64 compressedStatus; u64 compressedStatus;
compressedStatus = HvCall4( HvCallHptInvalidateSetSwBitsGet, hpteIndex, bitson, bitsoff, 1 );
HvCall1( HvCallHptInvalidateNoSyncICache, hpteIndex ); compressedStatus = HvCall4(HvCallHptInvalidateSetSwBitsGet,
hpteIndex, bitson, bitsoff, 1);
HvCall1(HvCallHptInvalidateNoSyncICache, hpteIndex);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return compressedStatus; return compressedStatus;
} }
//=============================================================================
static inline u64 HvCallHpt_findValid( HPTE *hpte, u64 vpn ) static inline u64 HvCallHpt_findValid(HPTE *hpte, u64 vpn)
{ {
u64 retIndex = HvCall3Ret16( HvCallHptFindValid, hpte, vpn, 0, 0 ); u64 retIndex = HvCall3Ret16( HvCallHptFindValid, hpte, vpn, 0, 0 );
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retIndex; return retIndex;
} }
//=============================================================================
static inline u64 HvCallHpt_findNextValid( HPTE *hpte, u32 hpteIndex, u8 bitson, u8 bitsoff ) static inline u64 HvCallHpt_findNextValid(HPTE *hpte, u32 hpteIndex,
u8 bitson, u8 bitsoff)
{ {
u64 retIndex = HvCall3Ret16( HvCallHptFindNextValid, hpte, hpteIndex, bitson, bitsoff ); u64 retIndex = HvCall3Ret16( HvCallHptFindNextValid, hpte, hpteIndex, bitson, bitsoff );
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retIndex; return retIndex;
} }
//=============================================================================
static inline void HvCallHpt_get( HPTE *hpte, u32 hpteIndex ) static inline void HvCallHpt_get(HPTE *hpte, u32 hpteIndex)
{ {
HvCall2Ret16( HvCallHptGet, hpte, hpteIndex, 0 ); HvCall2Ret16(HvCallHptGet, hpte, hpteIndex, 0);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
} }
//============================================================================
static inline void HvCallHpt_addValidate( u32 hpteIndex,
u32 hBit,
HPTE *hpte )
static inline void HvCallHpt_addValidate(u32 hpteIndex, u32 hBit, HPTE *hpte)
{ {
HvCall4( HvCallHptAddValidate, hpteIndex, HvCall4(HvCallHptAddValidate, hpteIndex, hBit, (*((u64 *)hpte)),
hBit, (*((u64 *)hpte)), (*(((u64 *)hpte)+1)) ); (*(((u64 *)hpte)+1)));
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
} }
//=============================================================================
#endif /* _HVCALLHPT_H */ #endif /* _HVCALLHPT_H */
This diff is collapsed.
...@@ -30,22 +30,22 @@ ...@@ -30,22 +30,22 @@
#define HvCallSm 0x8007000000000000ul #define HvCallSm 0x8007000000000000ul
#define HvCallXm 0x8009000000000000ul #define HvCallXm 0x8009000000000000ul
u64 HvCall0( u64 ); u64 HvCall0(u64);
u64 HvCall1( u64, u64 ); u64 HvCall1(u64, u64);
u64 HvCall2( u64, u64, u64 ); u64 HvCall2(u64, u64, u64);
u64 HvCall3( u64, u64, u64, u64 ); u64 HvCall3(u64, u64, u64, u64);
u64 HvCall4( u64, u64, u64, u64, u64 ); u64 HvCall4(u64, u64, u64, u64, u64);
u64 HvCall5( u64, u64, u64, u64, u64, u64 ); u64 HvCall5(u64, u64, u64, u64, u64, u64);
u64 HvCall6( u64, u64, u64, u64, u64, u64, u64 ); u64 HvCall6(u64, u64, u64, u64, u64, u64, u64);
u64 HvCall7( u64, u64, u64, u64, u64, u64, u64, u64 ); u64 HvCall7(u64, u64, u64, u64, u64, u64, u64, u64);
u64 HvCall0Ret16( u64, void * ); u64 HvCall0Ret16(u64, void *);
u64 HvCall1Ret16( u64, void *, u64 ); u64 HvCall1Ret16(u64, void *, u64);
u64 HvCall2Ret16( u64, void *, u64, u64 ); u64 HvCall2Ret16(u64, void *, u64, u64);
u64 HvCall3Ret16( u64, void *, u64, u64, u64 ); u64 HvCall3Ret16(u64, void *, u64, u64, u64);
u64 HvCall4Ret16( u64, void *, u64, u64, u64, u64 ); u64 HvCall4Ret16(u64, void *, u64, u64, u64, u64);
u64 HvCall5Ret16( u64, void *, u64, u64, u64, u64, u64 ); u64 HvCall5Ret16(u64, void *, u64, u64, u64, u64, u64);
u64 HvCall6Ret16( u64, void *, u64, u64, u64, u64, u64, u64 ); u64 HvCall6Ret16(u64, void *, u64, u64, u64, u64, u64, u64);
u64 HvCall7Ret16( u64, void *, u64, u64 ,u64 ,u64 ,u64 ,u64 ,u64 ); u64 HvCall7Ret16(u64, void *, u64, u64 ,u64 ,u64 ,u64 ,u64 ,u64);
#endif /* _HVCALLSC_H */ #endif /* _HVCALLSC_H */
...@@ -19,34 +19,23 @@ ...@@ -19,34 +19,23 @@
#ifndef _HVCALLSM_H #ifndef _HVCALLSM_H
#define _HVCALLSM_H #define _HVCALLSM_H
//============================================================================ /*
// * This file contains the "hypervisor call" interface which is used to
// This file contains the "hypervisor call" interface which is used to * drive the hypervisor from the OS.
// drive the hypervisor from the OS. */
//
//============================================================================
//-------------------------------------------------------------------
// Standard Includes
//-------------------------------------------------------------------
#include <asm/iSeries/HvCallSc.h> #include <asm/iSeries/HvCallSc.h>
#include <asm/iSeries/HvTypes.h> #include <asm/iSeries/HvTypes.h>
//-----------------------------------------------------------------------------
// Constants
//-----------------------------------------------------------------------------
#define HvCallSmGet64BitsOfAccessMap HvCallSm + 11 #define HvCallSmGet64BitsOfAccessMap HvCallSm + 11
static inline u64 HvCallSm_get64BitsOfAccessMap(HvLpIndex lpIndex,
//============================================================================ u64 indexIntoBitMap)
static inline u64 HvCallSm_get64BitsOfAccessMap(
HvLpIndex lpIndex, u64 indexIntoBitMap )
{ {
u64 retval = HvCall2(HvCallSmGet64BitsOfAccessMap, lpIndex, u64 retval = HvCall2(HvCallSmGet64BitsOfAccessMap, lpIndex,
indexIntoBitMap ); indexIntoBitMap );
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retval; return retval;
} }
//============================================================================
#endif /* _HVCALLSM_H */ #endif /* _HVCALLSM_H */
//============================================================================ /*
// Header File Id * This file contains the "hypervisor call" interface which is used to
// Name______________: HvCallXm.H * drive the hypervisor from SLIC.
// */
// Description_______:
//
// This file contains the "hypervisor call" interface which is used to
// drive the hypervisor from SLIC.
//
//============================================================================
#ifndef _HVCALLXM_H #ifndef _HVCALLXM_H
#define _HVCALLXM_H #define _HVCALLXM_H
//-------------------------------------------------------------------
// Forward declarations
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// Standard Includes
//-------------------------------------------------------------------
#include <asm/iSeries/HvCallSc.h> #include <asm/iSeries/HvCallSc.h>
#include <asm/iSeries/HvTypes.h> #include <asm/iSeries/HvTypes.h>
//-----------------------------------------------------------------------------
// Constants
//-----------------------------------------------------------------------------
#define HvCallXmGetTceTableParms HvCallXm + 0 #define HvCallXmGetTceTableParms HvCallXm + 0
#define HvCallXmTestBus HvCallXm + 1 #define HvCallXmTestBus HvCallXm + 1
#define HvCallXmConnectBusUnit HvCallXm + 2 #define HvCallXmConnectBusUnit HvCallXm + 2
...@@ -33,47 +16,46 @@ ...@@ -33,47 +16,46 @@
#define HvCallXmSetTce HvCallXm + 11 #define HvCallXmSetTce HvCallXm + 11
#define HvCallXmSetTces HvCallXm + 13 #define HvCallXmSetTces HvCallXm + 13
//============================================================================
static inline void HvCallXm_getTceTableParms(u64 cb) static inline void HvCallXm_getTceTableParms(u64 cb)
{ {
HvCall1(HvCallXmGetTceTableParms, cb); HvCall1(HvCallXmGetTceTableParms, cb);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
} }
//============================================================================
static inline u64 HvCallXm_setTce(u64 tceTableToken, u64 tceOffset, u64 tce) static inline u64 HvCallXm_setTce(u64 tceTableToken, u64 tceOffset, u64 tce)
{ {
u64 retval = HvCall3(HvCallXmSetTce, tceTableToken, tceOffset, tce ); u64 retval = HvCall3(HvCallXmSetTce, tceTableToken, tceOffset, tce );
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retval; return retval;
} }
//============================================================================
static inline u64 HvCallXm_setTces(u64 tceTableToken, u64 tceOffset, u64 numTces, u64 tce1, u64 tce2, u64 tce3, u64 tce4) static inline u64 HvCallXm_setTces(u64 tceTableToken, u64 tceOffset,
u64 numTces, u64 tce1, u64 tce2, u64 tce3, u64 tce4)
{ {
u64 retval = HvCall7(HvCallXmSetTces, tceTableToken, tceOffset, numTces, u64 retval = HvCall7(HvCallXmSetTces, tceTableToken, tceOffset, numTces,
tce1, tce2, tce3, tce4 ); tce1, tce2, tce3, tce4 );
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retval; return retval;
} }
//=============================================================================
static inline u64 HvCallXm_testBus(u16 busNumber) static inline u64 HvCallXm_testBus(u16 busNumber)
{ {
u64 retVal = HvCall1(HvCallXmTestBus, busNumber); u64 retVal = HvCall1(HvCallXmTestBus, busNumber);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//=====================================================================================
static inline u64 HvCallXm_testBusUnit(u16 busNumber, u8 subBusNumber, u8 deviceId) static inline u64 HvCallXm_testBusUnit(u16 busNumber, u8 subBusNumber,
u8 deviceId)
{ {
u64 busUnitNumber = (subBusNumber << 8) | deviceId; u64 busUnitNumber = (subBusNumber << 8) | deviceId;
u64 retVal = HvCall2(HvCallXmTestBusUnit, busNumber, busUnitNumber); u64 retVal = HvCall2(HvCallXmTestBusUnit, busNumber, busUnitNumber);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//=====================================================================================
static inline u64 HvCallXm_connectBusUnit(u16 busNumber, u8 subBusNumber, u8 deviceId, static inline u64 HvCallXm_connectBusUnit(u16 busNumber, u8 subBusNumber,
u64 interruptToken) u8 deviceId, u64 interruptToken)
{ {
u64 busUnitNumber = (subBusNumber << 8) | deviceId; u64 busUnitNumber = (subBusNumber << 8) | deviceId;
u64 queueIndex = 0; // HvLpConfig::mapDsaToQueueIndex(HvLpDSA(busNumber, xBoard, xCard)); u64 queueIndex = 0; // HvLpConfig::mapDsaToQueueIndex(HvLpDSA(busNumber, xBoard, xCard));
...@@ -83,13 +65,12 @@ static inline u64 HvCallXm_connectBusUnit(u16 busNumber, u8 subBusNumber, u8 dev ...@@ -83,13 +65,12 @@ static inline u64 HvCallXm_connectBusUnit(u16 busNumber, u8 subBusNumber, u8 dev
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//=====================================================================================
static inline u64 HvCallXm_loadTod(void) static inline u64 HvCallXm_loadTod(void)
{ {
u64 retVal = HvCall0(HvCallXmLoadTod); u64 retVal = HvCall0(HvCallXmLoadTod);
// getPaca()->adjustHmtForNoOfSpinLocksHeld(); // getPaca()->adjustHmtForNoOfSpinLocksHeld();
return retVal; return retVal;
} }
//=====================================================================================
#endif /* _HVCALLXM_H */ #endif /* _HVCALLXM_H */
This diff is collapsed.
...@@ -17,11 +17,8 @@ ...@@ -17,11 +17,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
//====================================================================== /* This file contains the class for HV events in the system. */
//
// This file contains the class for HV events in the system.
//
//=====================================================================
#ifndef _HVLPEVENT_H #ifndef _HVLPEVENT_H
#define _HVLPEVENT_H #define _HVLPEVENT_H
...@@ -30,69 +27,70 @@ ...@@ -30,69 +27,70 @@
#include <asm/iSeries/HvTypes.h> #include <asm/iSeries/HvTypes.h>
#include <asm/iSeries/HvCallEvent.h> #include <asm/iSeries/HvCallEvent.h>
//===================================================================== /*
// * HvLpEvent is the structure for Lp Event messages passed between
// HvLpEvent is the structure for Lp Event messages passed between * partitions through PLIC.
// partitions through PLIC. */
//
//===================================================================== struct HvEventFlags {
u8 xValid:1; /* Indicates a valid request x00-x00 */
struct HvEventFlags u8 xRsvd1:4; /* Reserved ... */
{ u8 xAckType:1; /* Immediate or deferred ... */
u8 xValid:1; // Indicates a valid request x00-x00 u8 xAckInd:1; /* Indicates if ACK required ... */
u8 xRsvd1:4; // Reserved ... u8 xFunction:1; /* Interrupt or Acknowledge ... */
u8 xAckType:1; // Immediate or deferred ...
u8 xAckInd:1; // Indicates if ACK required ...
u8 xFunction:1; // Interrupt or Acknowledge ...
}; };
struct HvLpEvent struct HvLpEvent {
{ struct HvEventFlags xFlags; /* Event flags x00-x00 */
struct HvEventFlags xFlags; // Event flags x00-x00 u8 xType; /* Type of message x01-x01 */
u8 xType; // Type of message x01-x01 u16 xSubtype; /* Subtype for event x02-x03 */
u16 xSubtype; // Subtype for event x02-x03 u8 xSourceLp; /* Source LP x04-x04 */
u8 xSourceLp; // Source LP x04-x04 u8 xTargetLp; /* Target LP x05-x05 */
u8 xTargetLp; // Target LP x05-x05 u8 xSizeMinus1; /* Size of Derived class - 1 x06-x06 */
u8 xSizeMinus1; // Size of Derived class - 1 x06-x06 u8 xRc; /* RC for Ack flows x07-x07 */
u8 xRc; // RC for Ack flows x07-x07 u16 xSourceInstanceId; /* Source sides instance id x08-x09 */
u16 xSourceInstanceId; // Source sides instance id x08-x09 u16 xTargetInstanceId; /* Target sides instance id x0A-x0B */
u16 xTargetInstanceId; // Target sides instance id x0A-x0B
union { union {
u32 xSubtypeData; // Data usable by the subtype x0C-x0F u32 xSubtypeData; /* Data usable by the subtype x0C-x0F */
u16 xSubtypeDataShort[2]; // Data as 2 shorts u16 xSubtypeDataShort[2]; /* Data as 2 shorts */
u8 xSubtypeDataChar[4]; // Data as 4 chars u8 xSubtypeDataChar[4]; /* Data as 4 chars */
} x; } x;
u64 xCorrelationToken; // Unique value for source/type x10-x17 u64 xCorrelationToken; /* Unique value for source/type x10-x17 */
}; };
// Lp Event handler function
typedef void (*LpEventHandler)(struct HvLpEvent *, struct pt_regs *); typedef void (*LpEventHandler)(struct HvLpEvent *, struct pt_regs *);
// Register a handler for an event type /* Register a handler for an event type - returns 0 on success */
// returns 0 on success extern int HvLpEvent_registerHandler(HvLpEvent_Type eventType,
extern int HvLpEvent_registerHandler( HvLpEvent_Type eventType, LpEventHandler hdlr); LpEventHandler hdlr);
// Unregister a handler for an event type /*
// This call will sleep until the handler being removed is guaranteed to * Unregister a handler for an event type
// be no longer executing on any CPU. Do not call with locks held. *
// * This call will sleep until the handler being removed is guaranteed to
// returns 0 on success * be no longer executing on any CPU. Do not call with locks held.
// Unregister will fail if there are any paths open for the type *
extern int HvLpEvent_unregisterHandler( HvLpEvent_Type eventType ); * returns 0 on success
* Unregister will fail if there are any paths open for the type
// Open an Lp Event Path for an event type */
// returns 0 on success extern int HvLpEvent_unregisterHandler(HvLpEvent_Type eventType);
// openPath will fail if there is no handler registered for the event type.
// The lpIndex specified is the partition index for the target partition
// (for VirtualIo, VirtualLan and SessionMgr) other types specify zero)
extern int HvLpEvent_openPath( HvLpEvent_Type eventType, HvLpIndex lpIndex );
/*
* Open an Lp Event Path for an event type
* returns 0 on success
* openPath will fail if there is no handler registered for the event type.
* The lpIndex specified is the partition index for the target partition
* (for VirtualIo, VirtualLan and SessionMgr) other types specify zero)
*/
extern int HvLpEvent_openPath(HvLpEvent_Type eventType, HvLpIndex lpIndex);
// Close an Lp Event Path for a type and partition /*
// returns 0 on sucess * Close an Lp Event Path for a type and partition
extern int HvLpEvent_closePath( HvLpEvent_Type eventType, HvLpIndex lpIndex ); * returns 0 on sucess
*/
extern int HvLpEvent_closePath(HvLpEvent_Type eventType, HvLpIndex lpIndex);
#define HvLpEvent_Type_Hypervisor 0 #define HvLpEvent_Type_Hypervisor 0
#define HvLpEvent_Type_MachineFac 1 #define HvLpEvent_Type_MachineFac 1
...@@ -141,4 +139,4 @@ extern int HvLpEvent_closePath( HvLpEvent_Type eventType, HvLpIndex lpIndex ); ...@@ -141,4 +139,4 @@ extern int HvLpEvent_closePath( HvLpEvent_Type eventType, HvLpIndex lpIndex );
#define HvLpDma_Rc_InvalidAddress 4 #define HvLpDma_Rc_InvalidAddress 4
#define HvLpDma_Rc_InvalidLength 5 #define HvLpDma_Rc_InvalidLength 5
#endif // _HVLPEVENT_H #endif /* _HVLPEVENT_H */
...@@ -19,47 +19,43 @@ ...@@ -19,47 +19,43 @@
#ifndef _HVRELEASEDATA_H #ifndef _HVRELEASEDATA_H
#define _HVRELEASEDATA_H #define _HVRELEASEDATA_H
//============================================================================= /*
// * This control block contains the critical information about the
// This control block contains the critical information about the * release so that it can be changed in the future (ie, the virtual
// release so that it can be changed in the future (ie, the virtual * address of the OS's NACA).
// address of the OS's NACA). */
//
#include <asm/types.h> #include <asm/types.h>
#include <asm/naca.h> #include <asm/naca.h>
//============================================================================= /*
// * When we IPL a secondary partition, we will check if if the
// When we IPL a secondary partition, we will check if if the * secondary xMinPlicVrmIndex > the primary xVrmIndex.
// secondary xMinPlicVrmIndex > the primary xVrmIndex. * If it is then this tells PLIC that this secondary is not
// If it is then this tells PLIC that this secondary is not * supported running on this "old" of a level of PLIC.
// supported running on this "old" of a level of PLIC. *
// * Likewise, we will compare the primary xMinSlicVrmIndex to
// Likewise, we will compare the primary xMinSlicVrmIndex to * the secondary xVrmIndex.
// the secondary xVrmIndex. * If the primary xMinSlicVrmDelta > secondary xVrmDelta then we
// If the primary xMinSlicVrmDelta > secondary xVrmDelta then we * know that this PLIC does not support running an OS "that old".
// know that this PLIC does not support running an OS "that old". */
//
//=============================================================================
struct HvReleaseData struct HvReleaseData {
{ u32 xDesc; /* Descriptor "HvRD" ebcdic x00-x03 */
u32 xDesc; // Descriptor "HvRD" ebcdic x00-x03 u16 xSize; /* Size of this control block x04-x05 */
u16 xSize; // Size of this control block x04-x05 u16 xVpdAreasPtrOffset; /* Offset in NACA of ItVpdAreas x06-x07 */
u16 xVpdAreasPtrOffset; // Offset in NACA of ItVpdAreas x06-x07 struct naca_struct *xSlicNacaAddr; /* Virt addr of SLIC NACA x08-x0F */
struct naca_struct * xSlicNacaAddr; // Virt addr of SLIC NACA x08-x0F u32 xMsNucDataOffset; /* Offset of Linux Mapping Data x10-x13 */
u32 xMsNucDataOffset; // Offset of Linux Mapping Data x10-x13 u32 xRsvd1; /* Reserved x14-x17 */
u32 xRsvd1; // Reserved x14-x17 u16 xTagsMode:1; /* 0 == tags active, 1 == tags inactive */
u16 xTagsMode:1; // 0 == tags active, 1 == tags inactive u16 xAddressSize:1; /* 0 == 64-bit, 1 == 32-bit */
u16 xAddressSize:1; // 0 == 64-bit, 1 == 32-bit u16 xNoSharedProcs:1; /* 0 == shared procs, 1 == no shared */
u16 xNoSharedProcs:1; // 0 == shared procs, 1 == no shared u16 xNoHMT:1; /* 0 == allow HMT, 1 == no HMT */
u16 xNoHMT:1; // 0 == allow HMT, 1 == no HMT u16 xRsvd2:12; /* Reserved x18-x19 */
u16 xRsvd2:12; // Reserved x18-x19 u16 xVrmIndex; /* VRM Index of OS image x1A-x1B */
u16 xVrmIndex; // VRM Index of OS image x1A-x1B u16 xMinSupportedPlicVrmIndex; /* Min PLIC level (soft) x1C-x1D */
u16 xMinSupportedPlicVrmIndex;// Min PLIC level (soft) x1C-x1D u16 xMinCompatablePlicVrmIndex; /* Min PLIC levelP (hard) x1E-x1F */
u16 xMinCompatablePlicVrmIndex;// Min PLIC levelP (hard) x1E-x1F char xVrmName[12]; /* Displayable name x20-x2B */
char xVrmName[12]; // Displayable name x20-x2B char xRsvd3[20]; /* Reserved x2C-x3F */
char xRsvd3[20]; // Reserved x2C-x3F
}; };
#endif /* _HVRELEASEDATA_H */ #endif /* _HVRELEASEDATA_H */
...@@ -19,23 +19,12 @@ ...@@ -19,23 +19,12 @@
#ifndef _HVTYPES_H #ifndef _HVTYPES_H
#define _HVTYPES_H #define _HVTYPES_H
//=========================================================================== /*
// Header File Id * General typedefs for the hypervisor.
// Name______________: HvTypes.H */
//
// Description_______:
//
// General typedefs for the hypervisor.
//
// Declared Class(es):
//
//===========================================================================
#include <asm/types.h> #include <asm/types.h>
//-------------------------------------------------------------------
// Typedefs
//-------------------------------------------------------------------
typedef u8 HvLpIndex; typedef u8 HvLpIndex;
typedef u16 HvLpInstanceId; typedef u16 HvLpInstanceId;
typedef u64 HvLpTOD; typedef u64 HvLpTOD;
...@@ -51,17 +40,17 @@ typedef u64 HvIoToken; ...@@ -51,17 +40,17 @@ typedef u64 HvIoToken;
typedef u8 HvLpName[8]; typedef u8 HvLpName[8];
typedef u32 HvIoId; typedef u32 HvIoId;
typedef u64 HvRealMemoryIndex; typedef u64 HvRealMemoryIndex;
typedef u32 HvLpIndexMap; // Must hold HvMaxArchitectedLps bits!!! typedef u32 HvLpIndexMap; /* Must hold HvMaxArchitectedLps bits!!! */
typedef u16 HvLpVrmIndex; typedef u16 HvLpVrmIndex;
typedef u32 HvXmGenerationId; typedef u32 HvXmGenerationId;
typedef u8 HvLpBusPool; typedef u8 HvLpBusPool;
typedef u8 HvLpSharedPoolIndex; typedef u8 HvLpSharedPoolIndex;
typedef u16 HvLpSharedProcUnitsX100; typedef u16 HvLpSharedProcUnitsX100;
typedef u8 HvLpVirtualLanIndex; typedef u8 HvLpVirtualLanIndex;
typedef u16 HvLpVirtualLanIndexMap; // Must hold HvMaxArchitectedVirtualLans bits!!! typedef u16 HvLpVirtualLanIndexMap; /* Must hold HvMaxArchitectedVirtualLans bits!!! */
typedef u16 HvBusNumber; // Hypervisor Bus Number typedef u16 HvBusNumber; /* Hypervisor Bus Number */
typedef u8 HvSubBusNumber; // Hypervisor SubBus Number typedef u8 HvSubBusNumber; /* Hypervisor SubBus Number */
typedef u8 HvAgentId; // Hypervisor DevFn typedef u8 HvAgentId; /* Hypervisor DevFn */
#define HVMAXARCHITECTEDLPS 32 #define HVMAXARCHITECTEDLPS 32
...@@ -69,8 +58,8 @@ typedef u8 HvAgentId; // Hypervisor DevFn ...@@ -69,8 +58,8 @@ typedef u8 HvAgentId; // Hypervisor DevFn
#define HVMAXARCHITECTEDVIRTUALDISKS 32 #define HVMAXARCHITECTEDVIRTUALDISKS 32
#define HVMAXARCHITECTEDVIRTUALCDROMS 8 #define HVMAXARCHITECTEDVIRTUALCDROMS 8
#define HVMAXARCHITECTEDVIRTUALTAPES 8 #define HVMAXARCHITECTEDVIRTUALTAPES 8
#define HVCHUNKSIZE 256 * 1024 #define HVCHUNKSIZE (256 * 1024)
#define HVPAGESIZE 4 * 1024 #define HVPAGESIZE (4 * 1024)
#define HVLPMINMEGSPRIMARY 256 #define HVLPMINMEGSPRIMARY 256
#define HVLPMINMEGSSECONDARY 64 #define HVLPMINMEGSSECONDARY 64
#define HVCHUNKSPERMEG 4 #define HVCHUNKSPERMEG 4
...@@ -81,12 +70,11 @@ typedef u8 HvAgentId; // Hypervisor DevFn ...@@ -81,12 +70,11 @@ typedef u8 HvAgentId; // Hypervisor DevFn
#define HvMaxArchitectedVirtualLans ((HvLpVirtualLanIndex)16) #define HvMaxArchitectedVirtualLans ((HvLpVirtualLanIndex)16)
#define HvLpIndexInvalid ((HvLpIndex)0xff) #define HvLpIndexInvalid ((HvLpIndex)0xff)
//-------------------------------------------------------------------- /*
// Enums for the sub-components under PLIC * Enums for the sub-components under PLIC
// Used in HvCall and HvPrimaryCall * Used in HvCall and HvPrimaryCall
//-------------------------------------------------------------------- */
enum HvCallCompIds enum HvCallCompIds {
{
HvCallCompId = 0, HvCallCompId = 0,
HvCallCpuCtlsCompId = 1, HvCallCpuCtlsCompId = 1,
HvCallCfgCompId = 2, HvCallCfgCompId = 2,
......
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