Changed back to ipmIntConnect rather than devConnectInterruptVME. cast to (long) rather than (int) fixes compile errors on 64-bit Linux

This commit is contained in:
MarkRivers
2011-07-11 15:14:19 +00:00
parent 29fa983a7d
commit 6ecbdeb10a
+13 -8
View File
@@ -50,6 +50,10 @@
/* Fixed detecting encoder logic wrong bug */
/* 2.4 Bugs fix Jim Chen 24/06/2011 */
/* Fixed wrong ioc shell command function name */
/* 2.5 Changes for 64bit Linux Jim Chen 07/07/2011 */
/* Changed the cast modifier for "this" pointer in ipmIntConnect */
/* function by (long) rather than (int) to suit 64bit Linux */
/* build. */
/* */
/********************************************************************************/
@@ -75,7 +79,7 @@
#include "HytecMotorDriver.h"
static void ISR_8601(void* pDrv);
static void ISR_8601(int pDrv);
static void intQueuedTask( void *pDrv );
#define MAX_MESSAGES 100 /* maximum number of messages */
@@ -187,12 +191,13 @@ asynStatus HytecMotorController::SetupCard()
return asynError;
}
/* Setup Interrupts. THIS SEEMS NOT RIGHT. 8601 HAS 4 AXIS AND EACH ONE HAS A VECTOR SO 4 ISRs ARE NEEDED?????????????? */
st = devConnectInterruptVME(
this->vector,
ISR_8601,
this);
/* Setup Interrupts. */
st=ipmIntConnect(this->ip_carrier,
this->ipslot,
this->vector,
&ISR_8601,
(long)this);
/* If Interrupts NOT Setup OK */
if (st!=OK)
{
@@ -489,7 +494,7 @@ asynStatus HytecMotorController::writeFloat64(asynUser *pasynUser, epicsFloat64
}
// ISR8601 Routines to handle interrupts
static void ISR_8601(void* pDrv)
static void ISR_8601(int pDrv)
{
HytecMotorController *pController = (HytecMotorController*) pDrv;
HytecMotorAxis * pAxis;