[Pcsclite-cvs-commit] r1657 - trunk/Drivers/ocfBridge
Ludovic Rousseau
rousseau at costa.debian.org
Mon Sep 19 07:12:13 UTC 2005
Author: rousseau
Date: 2005-09-19 07:12:11 +0000 (Mon, 19 Sep 2005)
New Revision: 1657
Modified:
trunk/Drivers/ocfBridge/Makefile
trunk/Drivers/ocfBridge/OCFPCSC1.cpp
trunk/Drivers/ocfBridge/OCFPCSC1.h
trunk/Drivers/ocfBridge/PcscExceptions.cpp
Log:
patch to work on 64-bits architectures
Thanks to Tomas Gustavsson for the patch. See thread
http://archives.neohapsis.com/archives/dev/muscle/2005-q3/0231.html
Modified: trunk/Drivers/ocfBridge/Makefile
===================================================================
--- trunk/Drivers/ocfBridge/Makefile 2005-09-15 12:25:15 UTC (rev 1656)
+++ trunk/Drivers/ocfBridge/Makefile 2005-09-19 07:12:11 UTC (rev 1657)
@@ -1,12 +1,12 @@
CC = c++
LD = ld
OBJS := $(patsubst %.cpp,%.o,$(wildcard *.cpp))
-JDK_HOME = /System/Library/Frameworks/JavaVM.framework
-PCSC_HDRS = -I/usr/local/pcsc/include
-PCSC_LIBS = -L/usr/local/pcsc/lib -lpcsclite
-INCLUDE = -I$(JDK_HOME)/Headers -I$(JDK_HOME)/include/genunix $(PCSC_HDRS)
-LIBNAME = libOCFPCSC1.jnilib
-PREFIX = /usr/local/pcsc
+#JDK_HOME = /usr/local/java
+PCSC_HDRS = `pkg-config --cflags libpcsclite`
+PCSC_LIBS = `pkg-config --libs libpcsclite`
+INCLUDE = -I$(JDK_HOME)/include -I$(JDK_HOME)/include/linux $(PCSC_HDRS)
+LIBNAME = libOCFPCSC1.so
+CPPFLAGS = -fPIC -Wall -DHAVE_PTHREAD_H -DCK_GENERIC $(INCLUDE)
all: $(LIBNAME)
@@ -17,7 +17,4 @@
cp -f *.so /usr/local/pcsc/lib
$(LIBNAME): $(OBJS)
- cc $(OBJS) $(PCSC_LIBS) -dynamiclib -install_name $(PREFIX)/lib/$(LIBNAME) -o $@
-
-$(patsubst %.cpp,%.o,$(wildcard *.cpp)) : %.o : %.cpp
- $(CC) $(CFLAGS) -c $< $(INCLUDE) $(DEFS)
+ $(CC) $(OBJS) $(PCSC_LIBS) -shared -o $@
Modified: trunk/Drivers/ocfBridge/OCFPCSC1.cpp
===================================================================
--- trunk/Drivers/ocfBridge/OCFPCSC1.cpp 2005-09-15 12:25:15 UTC (rev 1656)
+++ trunk/Drivers/ocfBridge/OCFPCSC1.cpp 2005-09-19 07:12:11 UTC (rev 1657)
@@ -71,7 +71,7 @@
* Method: SCardEstablishContext
* Signature: (I)I
*/
-JNIEXPORT jint JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardEstablishContext
+JNIEXPORT jlong JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardEstablishContext
(JNIEnv *env, jobject obj, jint scope) {
CONTEXT_INFO cInfo;
@@ -92,7 +92,7 @@
*/
addContext(cInfo);
- return (jint)cInfo.context;
+ return cInfo.context;
}
@@ -102,11 +102,11 @@
* Signature: (I)V
*/
JNIEXPORT void JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardReleaseContext
- (JNIEnv *env, jobject obj, jint context) {
+ (JNIEnv *env, jobject obj, jlong context) {
long returnCode;
- if (isContextAvailable((long)context) < 0) {
+ if (isContextAvailable(context) < 0) {
throwPcscException(env, obj, "SCardReleaseContext", "tried to release a non-existing context",0);
return;
}
@@ -114,7 +114,7 @@
/* delete the context from the internal table */
removeContext(context);
- returnCode = SCardReleaseContext((SCARDCONTEXT)context);
+ returnCode = SCardReleaseContext(context);
if (returnCode != SCARD_S_SUCCESS) {
throwPcscException(env, obj, "SCardReleaseContext", "PC/SC Error SCardReleaseContext", returnCode);
return;
@@ -128,25 +128,25 @@
* Method: SCardConnect
* Signature: (ILjava/lang/String;IILjava/lang/Integer;)I
*/
-JNIEXPORT jint JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardConnect
- (JNIEnv *env, jobject obj, jint context, jstring jReader,
+JNIEXPORT jlong JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardConnect
+ (JNIEnv *env, jobject obj, jlong context, jstring jReader,
jint jShareMode, jint jPreferredProtocol, jobject jActiveProtocol) {
const char *readerUTF;
long cardHandle;
DWORD activeProtocol;
- int cPos;
+ int cPos;
long returnCode;
CONTEXT_INFO cInfo;
/* check if context exists */
- if (cPos = isContextAvailable((long)context) < 0) {
+ if ((cPos = isContextAvailable(context)) < 0) {
throwPcscException(env, obj, "SCardConnect", "PC/SC Wrapper Error: context not in table", 0);
return 0;
}
// get contextInformationRecord
- cInfo = getContextInfoViaContext((SCARDCONTEXT)context);
+ cInfo = getContextInfoViaContext(context);
if (cInfo.context == 0) {
throwPcscException(env, obj, "SCardConnect", "PC/SC Wrapper Error: couldn't get context information record", 0);
return 0;
@@ -156,12 +156,12 @@
readerUTF = env->GetStringUTFChars(jReader, NULL);
/* get a connection to the card */
- returnCode = SCardConnect( (SCARDCONTEXT)context,
- readerUTF,
- (DWORD)jShareMode,
- (DWORD)jPreferredProtocol,
- (LPSCARDHANDLE)&cardHandle,
- (DWORD *)&activeProtocol);
+ returnCode = SCardConnect(context,
+ readerUTF,
+ (DWORD)jShareMode,
+ (DWORD)jPreferredProtocol,
+ (LPSCARDHANDLE)&cardHandle,
+ (DWORD *)&activeProtocol);
/* release the readers friendly name */
env->ReleaseStringUTFChars(jReader, readerUTF);
@@ -191,7 +191,7 @@
* Signature: (IIIILjava/lang/Integer;)V
*/
JNIEXPORT void JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardReconnect
- (JNIEnv *env, jobject obj, jint card, jint shareMode,
+ (JNIEnv *env, jobject obj, jlong card, jint shareMode,
jint preferredProtocols, jint initialization, jobject jActiveProtocoll) {
long returnCode;
@@ -199,7 +199,7 @@
CONTEXT_INFO cInfo;
// get the existing context informations
- cInfo = getContextInfoViaCardHandle((SCARDHANDLE)card);
+ cInfo = getContextInfoViaCardHandle(card);
if (cInfo.context == 0) {
throwPcscException(env, obj, "SCardReconnect", "PC/SC Wrapper Error: couldn't get context information record", 0);
return;
@@ -237,19 +237,19 @@
* Signature: (II)V
*/
JNIEXPORT void JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardDisconnect
- (JNIEnv *env, jobject obj, jint card, jint disposition) {
+ (JNIEnv *env, jobject obj, jlong card, jint disposition) {
long returnCode;
CONTEXT_INFO cInfo;
// get the contextInfo from the table
- cInfo = getContextInfoViaCardHandle((SCARDHANDLE)card);
+ cInfo = getContextInfoViaCardHandle(card);
if (cInfo.context == 0) {
throwPcscException(env, obj, "SCardDisconnect", "PC/SC Wrapper Error: couldn't get context information record", 0);
return;
}
- returnCode = SCardDisconnect((SCARDHANDLE)card, (DWORD)disposition);
+ returnCode = SCardDisconnect(card, (DWORD)disposition);
if ((returnCode != SCARD_S_SUCCESS) && (returnCode != SCARD_W_REMOVED_CARD)) {
throwPcscException(env, obj, "SCardDisconnect", "PC/SC Error SCardDisconnect", returnCode);
return;
@@ -274,7 +274,7 @@
* Signature: (II[Lcom/ibm/opencard/terminal/pcsc10/PcscReaderState;)V
*/
JNIEXPORT void JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardGetStatusChange
- (JNIEnv *env, jobject obj, jint context, jint timeout, jobjectArray jReaderState) {
+ (JNIEnv *env, jobject obj, jlong context, jint timeout, jobjectArray jReaderState) {
SCARD_READERSTATE *readerState;
int numReaderState;
@@ -343,7 +343,7 @@
/* set the response timeout to 1000ms */
- returnCode = SCardGetStatusChange((SCARDCONTEXT)context, 1000, readerState, numReaderState);
+ returnCode = SCardGetStatusChange(context, 1000, readerState, numReaderState);
if (returnCode != SCARD_S_SUCCESS) {
free(readerState);
throwPcscException(env, obj, "SCardGetStatusChange", "error executing SCardGetStatusChange", returnCode);
@@ -419,7 +419,7 @@
* Signature: (II)[B
*/
JNIEXPORT jbyteArray JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardGetAttrib
- (JNIEnv *env, jobject obj, jint card, jint attrId) {
+ (JNIEnv *env, jobject obj, jlong card, jint attrId) {
long returnCode;
DWORD lenAttr;
@@ -465,7 +465,7 @@
* Signature: (II[B)[B
*/
JNIEXPORT jbyteArray JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardControl
- (JNIEnv *env, jobject obj, jint jCardHandle, jint jControlCode, jbyteArray jInBuffer) {
+ (JNIEnv *env, jobject obj, jlong jCardHandle, jint jControlCode, jbyteArray jInBuffer) {
LONG returnCode;
DWORD lenInBuffer;
@@ -584,7 +584,7 @@
int ii;
int jj;
int numNames;
- for (ii=0, numNames=0; ii<lenReaderList; ) {
+ for (ii=0, numNames=0; ii<(signed)lenReaderList; ) {
numNames++;
ii += strlen(&readerList[ii])+1;
if (strlen(&readerList[ii]) == 0)
@@ -641,7 +641,7 @@
* Signature: (I[B)[B
*/
JNIEXPORT jbyteArray JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardTransmit
- (JNIEnv *env, jobject obj, jint jCard, jbyteArray jSendBuf) {
+ (JNIEnv *env, jobject obj, jlong jCard, jbyteArray jSendBuf) {
SCARD_IO_REQUEST sendPci;
SCARD_IO_REQUEST recvPci;
@@ -658,7 +658,7 @@
CONTEXT_INFO cInfo;
// get the contextInfo from the table (checks the active protocol of the card connection)
- cInfo = getContextInfoViaCardHandle((SCARDHANDLE)jCard);
+ cInfo = getContextInfoViaCardHandle(jCard);
if (cInfo.context == 0) {
throwPcscException(env, obj, "SCardTransmit", "PC/SC Wrapper Error: couldn't get context information record", 0);
return NULL;
@@ -705,9 +705,9 @@
lenRecvBuf = sizeof(tmpRecvBuf);
/* transmit the data */
- returnCode = SCardTransmit((SCARDHANDLE)jCard,
- (LPSCARD_IO_REQUEST)&sendPci,(LPCBYTE)ptrSendBuf, lenSendBuf,
- (LPSCARD_IO_REQUEST)&recvPci,(LPBYTE)tmpRecvBuf,&lenRecvBuf);
+ returnCode = SCardTransmit(jCard,
+ (LPSCARD_IO_REQUEST)&sendPci,(LPCBYTE)ptrSendBuf, lenSendBuf,
+ (LPSCARD_IO_REQUEST)&recvPci,(LPBYTE)tmpRecvBuf,&lenRecvBuf);
if (returnCode != SCARD_S_SUCCESS) {
throwPcscException(env, obj, "SCardTransmit", "error occurred with SCardTransmit", returnCode);
Modified: trunk/Drivers/ocfBridge/OCFPCSC1.h
===================================================================
--- trunk/Drivers/ocfBridge/OCFPCSC1.h 2005-09-15 12:25:15 UTC (rev 1656)
+++ trunk/Drivers/ocfBridge/OCFPCSC1.h 2005-09-19 07:12:11 UTC (rev 1657)
@@ -28,7 +28,7 @@
* Method: SCardEstablishContext
* Signature: (I)I
*/
-JNIEXPORT jint JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardEstablishContext
+JNIEXPORT jlong JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardEstablishContext
(JNIEnv *, jobject, jint);
/*
@@ -37,15 +37,15 @@
* Signature: (I)V
*/
JNIEXPORT void JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardReleaseContext
- (JNIEnv *, jobject, jint);
+ (JNIEnv *, jobject, jlong);
/*
* Class: com_ibm_opencard_terminal_pcsc10_OCFPCSC1
* Method: SCardConnect
* Signature: (ILjava/lang/String;IILjava/lang/Integer;)I
*/
-JNIEXPORT jint JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardConnect
- (JNIEnv *, jobject, jint, jstring, jint, jint, jobject);
+JNIEXPORT jlong JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardConnect
+ (JNIEnv *, jobject, jlong, jstring, jint, jint, jobject);
/*
* Class: com_ibm_opencard_terminal_pcsc10_OCFPCSC1
@@ -53,7 +53,7 @@
* Signature: (IIIILjava/lang/Integer;)V
*/
JNIEXPORT void JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardReconnect
- (JNIEnv *, jobject, jint, jint, jint, jint, jobject);
+ (JNIEnv *, jobject, jlong, jint, jint, jint, jobject);
/*
* Class: com_ibm_opencard_terminal_pcsc10_OCFPCSC1
@@ -61,7 +61,7 @@
* Signature: (II)V
*/
JNIEXPORT void JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardDisconnect
- (JNIEnv *, jobject, jint, jint);
+ (JNIEnv *, jobject, jlong, jint);
/*
* Class: com_ibm_opencard_terminal_pcsc10_OCFPCSC1
@@ -69,7 +69,7 @@
* Signature: (II[Lcom/ibm/opencard/terminal/pcsc10/PcscReaderState;)V
*/
JNIEXPORT void JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardGetStatusChange
- (JNIEnv *, jobject, jint, jint, jobjectArray);
+ (JNIEnv *, jobject, jlong, jint, jobjectArray);
/*
* Class: com_ibm_opencard_terminal_pcsc10_OCFPCSC1
@@ -77,7 +77,7 @@
* Signature: (II)[B
*/
JNIEXPORT jbyteArray JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardGetAttrib
- (JNIEnv *, jobject, jint, jint);
+ (JNIEnv *, jobject, jlong, jint);
/*
* Class: com_ibm_opencard_terminal_pcsc10_OCFPCSC1
@@ -85,7 +85,7 @@
* Signature: (II[B)[B
*/
JNIEXPORT jbyteArray JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardControl
- (JNIEnv *, jobject, jint, jint, jbyteArray);
+ (JNIEnv *, jobject, jlong, jint, jbyteArray);
/*
* Class: com_ibm_opencard_terminal_pcsc10_OCFPCSC1
@@ -93,7 +93,7 @@
* Signature: (I[B)[B
*/
JNIEXPORT jbyteArray JNICALL Java_com_ibm_opencard_terminal_pcsc10_OCFPCSC1_SCardTransmit
- (JNIEnv *, jobject, jint, jbyteArray);
+ (JNIEnv *, jobject, jlong, jbyteArray);
#ifdef __cplusplus
}
Modified: trunk/Drivers/ocfBridge/PcscExceptions.cpp
===================================================================
--- trunk/Drivers/ocfBridge/PcscExceptions.cpp 2005-09-15 12:25:15 UTC (rev 1656)
+++ trunk/Drivers/ocfBridge/PcscExceptions.cpp 2005-09-19 07:12:11 UTC (rev 1657)
@@ -77,7 +77,7 @@
/* allocate enough bufferspace for the complete exception message */
completeMsg = (char *)malloc(strlen(method) + strlen(msg) + 50);
sprintf(completeMsg, "PCSC Exception in method %s: %s\n" \
- "return code = %8.8x\n", method, msg,returnCode);
+ "return code = %8.8lx\n", method, msg,returnCode);
if ((exceptionMsg = env->NewStringUTF(completeMsg)) == NULL) {
free(completeMsg);
More information about the Pcsclite-cvs-commit
mailing list