blob: e9ffd1611e8c62ffd923c1d95a7c150243399d1e [file] [log] [blame]
/*
* 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;
};