| /* |
| * Copyright (C) 2017 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package android.hardware.nfc@1.1; |
| |
| import @1.0::NfcEvent; |
| |
| enum NfcEvent : @1.0::NfcEvent { |
| /** In case of an error, HCI network needs to be re-initialized */ |
| HCI_NETWORK_RESET = 7 |
| }; |
| |
| enum Constant : uint8_t { |
| UNSUPPORTED_CONFIG = 0xFF, |
| }; |
| |
| /** |
| * Vendor Specific Proprietary Protocol & Discovery Configuration. |
| * Set to UNSUPPORTED_CONFIG if not supported. |
| * discovery* fields map to "RF Technology and Mode" in NCI Spec |
| * protocol* fields map to "RF protocols" in NCI Spec |
| */ |
| struct ProtocolDiscoveryConfig { |
| uint8_t protocol18092Active; |
| uint8_t protocolBPrime; |
| uint8_t protocolDual; |
| uint8_t protocol15693; |
| uint8_t protocolKovio; |
| uint8_t protocolMifare; |
| uint8_t discoveryPollKovio; |
| uint8_t discoveryPollBPrime; |
| uint8_t discoveryListenBPrime; |
| }; |
| |
| /* Presence Check Algorithm as per ISO/IEC 14443-4 */ |
| enum PresenceCheckAlgorithm : uint8_t { |
| /** Lets the stack select an algorithm */ |
| DEFAULT = 0, |
| /** ISO-DEP protocol's empty I-block */ |
| I_BLOCK = 1, |
| /** |
| * Type - 4 tag protocol iso-dep nak presence check command is sent waiting for |
| * response and notification. |
| */ |
| ISO_DEP_NAK = 2 |
| }; |
| |
| struct NfcConfig { |
| /** If true, NFCC is using bail out mode for either Type A or Type B poll. */ |
| bool nfaPollBailOutMode; |
| |
| PresenceCheckAlgorithm presenceCheckAlgorithm; |
| |
| ProtocolDiscoveryConfig nfaProprietaryCfg; |
| |
| /** Default off-host route. 0x00 if there aren't any. Refer to NCI spec. */ |
| uint8_t defaultOffHostRoute; |
| |
| /** |
| * Default off-host route for Felica. 0x00 if there aren't any. Refer to |
| * NCI spec. |
| */ |
| uint8_t defaultOffHostRouteFelica; |
| |
| /** Default system code route. 0x00 if there aren't any. Refer NCI spec */ |
| uint8_t defaultSystemCodeRoute; |
| |
| /** Default power state for system code route. 0x00 if there aren't any. Refer NCI spec */ |
| uint8_t defaultSystemCodePowerState; |
| |
| /** |
| * Default route for all remaining protocols and technology which haven't |
| * been configured. |
| * Device Host(0x00) is the default. Refer to NCI spec. |
| * */ |
| uint8_t defaultRoute; |
| |
| /** Pipe ID for eSE. 0x00 if there aren't any. */ |
| uint8_t offHostESEPipeId; |
| |
| /** Pipe ID for UICC. 0x00 if there aren't any. */ |
| uint8_t offHostSIMPipeId; |
| |
| /** Extended APDU length for ISO_DEP. If not supported default length is 261 */ |
| uint32_t maxIsoDepTransceiveLength; |
| |
| /** list of white listed host ids, as per ETSI TS 102 622 */ |
| vec<uint8_t> hostWhitelist; |
| }; |