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 */