summaryrefslogtreecommitdiffstats
path: root/nci
diff options
context:
space:
mode:
authorMartijn Coenen <maco@google.com>2014-07-30 11:33:34 -0700
committerMartijn Coenen <maco@google.com>2014-09-15 14:10:43 -0700
commit31208d3ee36f583fd998c89508a3e93bb550cb29 (patch)
tree62d02723b7386a94b31f9b6bba0ffd5fb132c91f /nci
parentd0393d4d0f421623fb52328fda5ab6a3d93a1a84 (diff)
downloadandroid_packages_apps_Nfc-31208d3ee36f583fd998c89508a3e93bb550cb29.tar.gz
android_packages_apps_Nfc-31208d3ee36f583fd998c89508a3e93bb550cb29.tar.bz2
android_packages_apps_Nfc-31208d3ee36f583fd998c89508a3e93bb550cb29.zip
Support for AID prefix registration.
Bug: 16517161 Change-Id: I8bc58ac0e9fb6684a7ee22d712dbbd91279d4c30
Diffstat (limited to 'nci')
-rw-r--r--nci/jni/RoutingManager.cpp13
-rw-r--r--nci/jni/RoutingManager.h13
2 files changed, 25 insertions, 1 deletions
diff --git a/nci/jni/RoutingManager.cpp b/nci/jni/RoutingManager.cpp
index 3002458e..e0ff131c 100644
--- a/nci/jni/RoutingManager.cpp
+++ b/nci/jni/RoutingManager.cpp
@@ -34,7 +34,8 @@ extern "C"
const JNINativeMethod RoutingManager::sMethods [] =
{
{"doGetDefaultRouteDestination", "()I", (void*) RoutingManager::com_android_nfc_cardemulation_doGetDefaultRouteDestination},
- {"doGetDefaultOffHostRouteDestination", "()I", (void*) RoutingManager::com_android_nfc_cardemulation_doGetDefaultOffHostRouteDestination}
+ {"doGetDefaultOffHostRouteDestination", "()I", (void*) RoutingManager::com_android_nfc_cardemulation_doGetDefaultOffHostRouteDestination},
+ {"doGetAidMatchingMode", "()I", (void*) RoutingManager::com_android_nfc_cardemulation_doGetAidMatchingMode}
};
RoutingManager::RoutingManager ()
@@ -62,6 +63,11 @@ RoutingManager::RoutingManager ()
else
mOffHostEe = 0xf4;
+ if (GetNumValue("AID_MATCHING_MODE", &num, sizeof(num)))
+ mAidMatchingMode = num;
+ else
+ mAidMatchingMode = AID_MATCHING_EXACT_ONLY;
+
ALOGD("%s: mOffHostEe=0x%02X", fn, mOffHostEe);
memset (&mEeInfo, 0, sizeof(mEeInfo));
@@ -523,3 +529,8 @@ int RoutingManager::com_android_nfc_cardemulation_doGetDefaultOffHostRouteDestin
{
return getInstance().mOffHostEe;
}
+
+int RoutingManager::com_android_nfc_cardemulation_doGetAidMatchingMode (JNIEnv*)
+{
+ return getInstance().mAidMatchingMode;
+}
diff --git a/nci/jni/RoutingManager.h b/nci/jni/RoutingManager.h
index 32ce54dd..65ea3edb 100644
--- a/nci/jni/RoutingManager.h
+++ b/nci/jni/RoutingManager.h
@@ -48,10 +48,22 @@ private:
void handleData (const UINT8* data, UINT32 dataLen, tNFA_STATUS status);
void notifyActivated ();
void notifyDeactivated ();
+
+ // See AidRoutingManager.java for corresponding
+ // AID_MATCHING_ constants
+
+ // Every routing table entry is matched exact (BCM20793)
+ static const int AID_MATCHING_EXACT_ONLY = 0x00;
+ // Every routing table entry can be matched either exact or prefix
+ static const int AID_MATCHING_EXACT_OR_PREFIX = 0x01;
+ // Every routing table entry is matched as a prefix
+ static const int AID_MATCHING_PREFIX_ONLY = 0x02;
+
static void nfaEeCallback (tNFA_EE_EVT event, tNFA_EE_CBACK_DATA* eventData);
static void stackCallback (UINT8 event, tNFA_CONN_EVT_DATA* eventData);
static int com_android_nfc_cardemulation_doGetDefaultRouteDestination (JNIEnv* e);
static int com_android_nfc_cardemulation_doGetDefaultOffHostRouteDestination (JNIEnv* e);
+ static int com_android_nfc_cardemulation_doGetAidMatchingMode (JNIEnv* e);
std::vector<UINT8> mRxDataBuffer;
@@ -60,6 +72,7 @@ private:
int mDefaultEe;
int mOffHostEe;
int mActiveSe;
+ int mAidMatchingMode;
bool mReceivedEeInfo;
tNFA_EE_DISCOVER_REQ mEeInfo;
tNFA_TECHNOLOGY_MASK mSeTechMask;