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

Reply via email to