Tomas Gustavsson wrote:
> The Java side of OCF is easy to modify (if you know some java).
[...]
> When this is done, you can build a new ocf jar and run.
Thanks! I managed to do it, after some trying. Now the card reader
works like a dream in my 64-bit Debian.
Here is the diff, in case someone else needs to do this very same
thing.
-- Naked
diff -ru pcsc-wrapper-src.old/src/com/ibm/opencard/terminal/pcsc10/OCFPCSC1.java pcsc-wrapper-src.new/src/com/ibm/opencard/terminal/pcsc10/OCFPCSC1.java
--- pcsc-wrapper-src.old/src/com/ibm/opencard/terminal/pcsc10/OCFPCSC1.java 1999-12-02 17:00:17.000000000 +0200
+++ pcsc-wrapper-src.new/src/com/ibm/opencard/terminal/pcsc10/OCFPCSC1.java 2005-11-04 00:04:54.000000000 +0200
@@ -81,38 +81,38 @@
throws PcscException;
/* returns the context */
- public native synchronized int SCardEstablishContext(int scope)
+ public native synchronized long SCardEstablishContext(int scope)
throws PcscException;
- public native synchronized void SCardReleaseContext(int context)
+ public native synchronized void SCardReleaseContext(long context)
throws PcscException;
/* returns the SCARDHANDLE */
- public native synchronized int SCardConnect(int context, String reader,
+ public native synchronized long SCardConnect(long context, String reader,
int shareMode, int preferredProtocol, Integer activeProtocol)
throws PcscException;
- public native synchronized void SCardReconnect(int card, int shareMode,
+ public native synchronized void SCardReconnect(long card, int shareMode,
int preferredProtocoll, int initialization, Integer activeProtocol)
throws PcscException;
- public native synchronized void SCardDisconnect(int card, int disposition)
+ public native synchronized void SCardDisconnect(long card, int disposition)
throws PcscException;
- public native synchronized void SCardGetStatusChange(int context, int timeout, PcscReaderState[] readerState)
+ public native synchronized void SCardGetStatusChange(long context, int timeout, PcscReaderState[] readerState)
throws PcscException;
/* returns the AttributeBuffer */
- public native synchronized byte[] SCardGetAttrib(int card, int attrId)
+ public native synchronized byte[] SCardGetAttrib(long card, int attrId)
throws PcscException;
/* returns the count of received bytes in OutBuffer */
- public native synchronized byte[] SCardControl(int card, int controlCode, byte[] inBuffer)
+ public native synchronized byte[] SCardControl(long card, int controlCode, byte[] inBuffer)
throws PcscException;
/* returns the receiveBuffer */
/* the DLL has to manage the special behaviour of the T0/T1 protocol */
- public native synchronized byte[] SCardTransmit(int card, byte[] sendBuffer)
+ public native synchronized byte[] SCardTransmit(long card, byte[] sendBuffer)
throws PcscException;
/* is called by the native methods to trace via OCF trace mechanism */
diff -ru pcsc-wrapper-src.old/src/com/ibm/opencard/terminal/pcsc10/Pcsc10CardTerminal.java pcsc-wrapper-src.new/src/com/ibm/opencard/terminal/pcsc10/Pcsc10CardTerminal.java
--- pcsc-wrapper-src.old/src/com/ibm/opencard/terminal/pcsc10/Pcsc10CardTerminal.java 1999-12-02 17:00:17.000000000 +0200
+++ pcsc-wrapper-src.new/src/com/ibm/opencard/terminal/pcsc10/Pcsc10CardTerminal.java 2005-11-04 00:08:39.000000000 +0200
@@ -73,7 +73,7 @@
private OCFPCSC1 pcsc;
/** The context to the PCSC ResourceManager */
- private int context = 0;
+ private long context = 0;
/** The state of this card terminal. */
private boolean closed;
@@ -82,7 +82,7 @@
private boolean cardInserted;
/** The cardHandle */
- private int cardHandle = 0;
+ private long cardHandle = 0;
/* states returned by SCardGetStatusChange */
private static final int SCARD_STATE_MUTE=0x200;
@@ -339,7 +339,7 @@
}
/** get card handle */
- private int getCardHandle() {
+ private long getCardHandle() {
return cardHandle;
}
diff -ru pcsc-wrapper-src.old/src/com/ibm/opencard/terminal/Pcsc10LockableTerminal.java pcsc-wrapper-src.new/src/com/ibm/opencard/terminal/Pcsc10LockableTerminal.java
--- pcsc-wrapper-src.old/src/com/ibm/opencard/terminal/Pcsc10LockableTerminal.java 1999-12-02 17:00:17.000000000 +0200
+++ pcsc-wrapper-src.new/src/com/ibm/opencard/terminal/Pcsc10LockableTerminal.java 2005-11-04 00:07:49.000000000 +0200
@@ -75,7 +75,7 @@
private OCFPCSC1 pcsc;
/** The context to the PCSC ResourceManager */
- private int context = 0;
+ private long context = 0;
/** The state of this card terminal. */
private boolean closed;
@@ -87,7 +87,7 @@
private boolean cardInserted;
/** The cardHandle */
- private int cardHandle = 0;
+ private long cardHandle = 0;
/* states returned by SCardGetStatusChange */
private static final int SCARD_STATE_MUTE=0x200;
@@ -418,7 +418,7 @@
}
/** get card handle */
- private int getCardHandle() {
+ private long getCardHandle() {
return cardHandle;
}
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle