blob: a99f29b93611f6040d1ba03ac649db7181930846 [file] [log] [blame]
Stephen Rothwell45dc76a2005-06-21 17:15:33 -07001/*
2 * This file contains the "hypervisor call" interface which is used to
3 * drive the hypervisor from SLIC.
4 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07005#ifndef _HVCALLXM_H
6#define _HVCALLXM_H
7
Linus Torvalds1da177e2005-04-16 15:20:36 -07008#include <asm/iSeries/HvCallSc.h>
9#include <asm/iSeries/HvTypes.h>
10
Linus Torvalds1da177e2005-04-16 15:20:36 -070011#define HvCallXmGetTceTableParms HvCallXm + 0
12#define HvCallXmTestBus HvCallXm + 1
13#define HvCallXmConnectBusUnit HvCallXm + 2
14#define HvCallXmLoadTod HvCallXm + 8
15#define HvCallXmTestBusUnit HvCallXm + 9
16#define HvCallXmSetTce HvCallXm + 11
17#define HvCallXmSetTces HvCallXm + 13
18
Stephen Rothwell45dc76a2005-06-21 17:15:33 -070019static inline void HvCallXm_getTceTableParms(u64 cb)
Linus Torvalds1da177e2005-04-16 15:20:36 -070020{
21 HvCall1(HvCallXmGetTceTableParms, cb);
22 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
23}
Stephen Rothwell45dc76a2005-06-21 17:15:33 -070024
25static inline u64 HvCallXm_setTce(u64 tceTableToken, u64 tceOffset, u64 tce)
26{
Linus Torvalds1da177e2005-04-16 15:20:36 -070027 u64 retval = HvCall3(HvCallXmSetTce, tceTableToken, tceOffset, tce );
28 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
29 return retval;
30}
Stephen Rothwell45dc76a2005-06-21 17:15:33 -070031
32static inline u64 HvCallXm_setTces(u64 tceTableToken, u64 tceOffset,
33 u64 numTces, u64 tce1, u64 tce2, u64 tce3, u64 tce4)
34{
Linus Torvalds1da177e2005-04-16 15:20:36 -070035 u64 retval = HvCall7(HvCallXmSetTces, tceTableToken, tceOffset, numTces,
36 tce1, tce2, tce3, tce4 );
37 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
38 return retval;
39}
Stephen Rothwell45dc76a2005-06-21 17:15:33 -070040
41static inline u64 HvCallXm_testBus(u16 busNumber)
Linus Torvalds1da177e2005-04-16 15:20:36 -070042{
43 u64 retVal = HvCall1(HvCallXmTestBus, busNumber);
44 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
45 return retVal;
46}
Stephen Rothwell45dc76a2005-06-21 17:15:33 -070047
48static inline u64 HvCallXm_testBusUnit(u16 busNumber, u8 subBusNumber,
49 u8 deviceId)
Linus Torvalds1da177e2005-04-16 15:20:36 -070050{
51 u64 busUnitNumber = (subBusNumber << 8) | deviceId;
52 u64 retVal = HvCall2(HvCallXmTestBusUnit, busNumber, busUnitNumber);
53 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
54 return retVal;
55}
Stephen Rothwell45dc76a2005-06-21 17:15:33 -070056
57static inline u64 HvCallXm_connectBusUnit(u16 busNumber, u8 subBusNumber,
58 u8 deviceId, u64 interruptToken)
Linus Torvalds1da177e2005-04-16 15:20:36 -070059{
60 u64 busUnitNumber = (subBusNumber << 8) | deviceId;
61 u64 queueIndex = 0; // HvLpConfig::mapDsaToQueueIndex(HvLpDSA(busNumber, xBoard, xCard));
62
63 u64 retVal = HvCall5(HvCallXmConnectBusUnit, busNumber, busUnitNumber,
64 interruptToken, 0, queueIndex);
65 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
66 return retVal;
67}
Stephen Rothwell45dc76a2005-06-21 17:15:33 -070068
69static inline u64 HvCallXm_loadTod(void)
Linus Torvalds1da177e2005-04-16 15:20:36 -070070{
71 u64 retVal = HvCall0(HvCallXmLoadTod);
72 // getPaca()->adjustHmtForNoOfSpinLocksHeld();
73 return retVal;
74}
Linus Torvalds1da177e2005-04-16 15:20:36 -070075
76#endif /* _HVCALLXM_H */