1 //============================================================================
3 // Name______________: HvCallXm.H
7 // This file contains the "hypervisor call" interface which is used to
8 // drive the hypervisor from SLIC.
10 //============================================================================
14 //-------------------------------------------------------------------
15 // Forward declarations
16 //-------------------------------------------------------------------
18 //-------------------------------------------------------------------
20 //-------------------------------------------------------------------
21 #include <asm/iSeries/HvCallSc.h>
22 #include <asm/iSeries/HvTypes.h>
24 //-----------------------------------------------------------------------------
26 //-----------------------------------------------------------------------------
28 #define HvCallXmGetTceTableParms HvCallXm + 0
29 #define HvCallXmTestBus HvCallXm + 1
30 #define HvCallXmConnectBusUnit HvCallXm + 2
31 #define HvCallXmLoadTod HvCallXm + 8
32 #define HvCallXmTestBusUnit HvCallXm + 9
33 #define HvCallXmSetTce HvCallXm + 11
34 #define HvCallXmSetTces HvCallXm + 13
38 //============================================================================
39 static inline void HvCallXm_getTceTableParms(u64 cb)
41 HvCall1(HvCallXmGetTceTableParms, cb);
42 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
44 //============================================================================
45 static inline u64 HvCallXm_setTce(u64 tceTableToken, u64 tceOffset, u64 tce)
47 u64 retval = HvCall3(HvCallXmSetTce, tceTableToken, tceOffset, tce );
48 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
51 //============================================================================
52 static inline u64 HvCallXm_setTces(u64 tceTableToken, u64 tceOffset, u64 numTces, u64 tce1, u64 tce2, u64 tce3, u64 tce4)
54 u64 retval = HvCall7(HvCallXmSetTces, tceTableToken, tceOffset, numTces,
55 tce1, tce2, tce3, tce4 );
56 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
59 //=============================================================================
60 static inline u64 HvCallXm_testBus(u16 busNumber)
62 u64 retVal = HvCall1(HvCallXmTestBus, busNumber);
63 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
66 //=====================================================================================
67 static inline u64 HvCallXm_testBusUnit(u16 busNumber, u8 subBusNumber, u8 deviceId)
69 u64 busUnitNumber = (subBusNumber << 8) | deviceId;
70 u64 retVal = HvCall2(HvCallXmTestBusUnit, busNumber, busUnitNumber);
71 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
74 //=====================================================================================
75 static inline u64 HvCallXm_connectBusUnit(u16 busNumber, u8 subBusNumber, u8 deviceId,
78 u64 busUnitNumber = (subBusNumber << 8) | deviceId;
79 u64 queueIndex = 0; // HvLpConfig::mapDsaToQueueIndex(HvLpDSA(busNumber, xBoard, xCard));
81 u64 retVal = HvCall5(HvCallXmConnectBusUnit, busNumber, busUnitNumber,
82 interruptToken, 0, queueIndex);
83 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
86 //=====================================================================================
87 static inline u64 HvCallXm_loadTod(void)
89 u64 retVal = HvCall0(HvCallXmLoadTod);
90 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
93 //=====================================================================================
95 #endif /* _HVCALLXM_H */