1*7eba2f3bSAndroid Build Coastguard Workerlittle_endian_packets 2*7eba2f3bSAndroid Build Coastguard Worker 3*7eba2f3bSAndroid Build Coastguard Worker/// Packet specification for [NCI] NFC Controller Interface Technical 4*7eba2f3bSAndroid Build Coastguard Worker/// Specification Version 2.2 5*7eba2f3bSAndroid Build Coastguard Worker 6*7eba2f3bSAndroid Build Coastguard Workerenum PacketBoundaryFlag : 1 { 7*7eba2f3bSAndroid Build Coastguard Worker COMPLETE_OR_FINAL = 0, 8*7eba2f3bSAndroid Build Coastguard Worker INCOMPLETE = 1, 9*7eba2f3bSAndroid Build Coastguard Worker} 10*7eba2f3bSAndroid Build Coastguard Worker 11*7eba2f3bSAndroid Build Coastguard Workerenum MessageType : 3 { 12*7eba2f3bSAndroid Build Coastguard Worker DATA = 0, 13*7eba2f3bSAndroid Build Coastguard Worker COMMAND = 1, 14*7eba2f3bSAndroid Build Coastguard Worker RESPONSE = 2, 15*7eba2f3bSAndroid Build Coastguard Worker NOTIFICATION = 3, 16*7eba2f3bSAndroid Build Coastguard Worker} 17*7eba2f3bSAndroid Build Coastguard Worker 18*7eba2f3bSAndroid Build Coastguard Workerenum GroupId : 4 { 19*7eba2f3bSAndroid Build Coastguard Worker CORE = 0x0, 20*7eba2f3bSAndroid Build Coastguard Worker RF_MANAGEMENT = 0x1, 21*7eba2f3bSAndroid Build Coastguard Worker NFCEE_MANAGEMENT = 0x2, 22*7eba2f3bSAndroid Build Coastguard Worker NFCC_MANAGEMENT = 0x3, 23*7eba2f3bSAndroid Build Coastguard Worker TEST_MANAGEMENT = 0x4, 24*7eba2f3bSAndroid Build Coastguard Worker PROPRIETARY = 0xF, 25*7eba2f3bSAndroid Build Coastguard Worker} 26*7eba2f3bSAndroid Build Coastguard Worker 27*7eba2f3bSAndroid Build Coastguard Workerenum CoreOpcodeId : 6 { 28*7eba2f3bSAndroid Build Coastguard Worker RESET = 0x0, 29*7eba2f3bSAndroid Build Coastguard Worker INIT = 0x1, 30*7eba2f3bSAndroid Build Coastguard Worker SET_CONFIG = 0x2, 31*7eba2f3bSAndroid Build Coastguard Worker GET_CONFIG = 0x3, 32*7eba2f3bSAndroid Build Coastguard Worker CONN_CREATE = 0x4, 33*7eba2f3bSAndroid Build Coastguard Worker CONN_CLOSE = 0x5, 34*7eba2f3bSAndroid Build Coastguard Worker CONN_CREDITS = 0x6, 35*7eba2f3bSAndroid Build Coastguard Worker GENERIC_ERROR = 0x7, 36*7eba2f3bSAndroid Build Coastguard Worker INTERFACE_ERROR = 0x8, 37*7eba2f3bSAndroid Build Coastguard Worker SET_POWER_SUB_STATE = 0x9, 38*7eba2f3bSAndroid Build Coastguard Worker RFU = 0xa..0x3f, 39*7eba2f3bSAndroid Build Coastguard Worker} 40*7eba2f3bSAndroid Build Coastguard Worker 41*7eba2f3bSAndroid Build Coastguard Workerenum RfOpcodeId : 6 { 42*7eba2f3bSAndroid Build Coastguard Worker DISCOVER_MAP = 0x0, 43*7eba2f3bSAndroid Build Coastguard Worker SET_LISTEN_MODE_ROUTING = 0x1, 44*7eba2f3bSAndroid Build Coastguard Worker GET_LISTEN_MODE_ROUTING = 0x2, 45*7eba2f3bSAndroid Build Coastguard Worker DISCOVER = 0x3, 46*7eba2f3bSAndroid Build Coastguard Worker DISCOVER_SELECT = 0x4, 47*7eba2f3bSAndroid Build Coastguard Worker INTF_ACTIVATED = 0x5, 48*7eba2f3bSAndroid Build Coastguard Worker DEACTIVATE = 0x6, 49*7eba2f3bSAndroid Build Coastguard Worker FIELD_INFO = 0x7, 50*7eba2f3bSAndroid Build Coastguard Worker T3T_POLLING = 0x8, 51*7eba2f3bSAndroid Build Coastguard Worker NFCEE_ACTION = 0x9, 52*7eba2f3bSAndroid Build Coastguard Worker NFCEE_DISCOVERY_REQ = 0xa, 53*7eba2f3bSAndroid Build Coastguard Worker PARAMETER_UPDATE = 0xb, 54*7eba2f3bSAndroid Build Coastguard Worker INTF_EXT_START = 0xc, 55*7eba2f3bSAndroid Build Coastguard Worker INTF_EXT_STOP = 0xd, 56*7eba2f3bSAndroid Build Coastguard Worker EXT_AGG_ABORT = 0xe, 57*7eba2f3bSAndroid Build Coastguard Worker NDEF_ABORT = 0xf, 58*7eba2f3bSAndroid Build Coastguard Worker ISO_DEP_NAK_PRESENCE = 0x10, 59*7eba2f3bSAndroid Build Coastguard Worker SET_FORCED_NFCEE_ROUTING_CMD = 0x11, 60*7eba2f3bSAndroid Build Coastguard Worker RFU = 0x12..0x3f, 61*7eba2f3bSAndroid Build Coastguard Worker} 62*7eba2f3bSAndroid Build Coastguard Worker 63*7eba2f3bSAndroid Build Coastguard Workerenum NfceeOpcodeId : 6 { 64*7eba2f3bSAndroid Build Coastguard Worker DISCOVER = 0x0, 65*7eba2f3bSAndroid Build Coastguard Worker MODE_SET = 0x1, 66*7eba2f3bSAndroid Build Coastguard Worker STATUS = 0x2, 67*7eba2f3bSAndroid Build Coastguard Worker POWER_AND_LINK_CNTRL = 0x3, 68*7eba2f3bSAndroid Build Coastguard Worker RFU = 0x4..0x3f, 69*7eba2f3bSAndroid Build Coastguard Worker} 70*7eba2f3bSAndroid Build Coastguard Worker 71*7eba2f3bSAndroid Build Coastguard Workerenum ProprietaryOpcodeId : 6 { 72*7eba2f3bSAndroid Build Coastguard Worker ANDROID = 0xC, 73*7eba2f3bSAndroid Build Coastguard Worker} 74*7eba2f3bSAndroid Build Coastguard Worker 75*7eba2f3bSAndroid Build Coastguard Workerenum AndroidSubOpcodeId : 8 { 76*7eba2f3bSAndroid Build Coastguard Worker GET_CAPS = 0x0, 77*7eba2f3bSAndroid Build Coastguard Worker PASSIVE_OBSERVE_MODE = 0x2, 78*7eba2f3bSAndroid Build Coastguard Worker POLLING_FRAME = 0x3, 79*7eba2f3bSAndroid Build Coastguard Worker QUERY_PASSIVE_OBSERVE_MODE = 0x4, 80*7eba2f3bSAndroid Build Coastguard Worker} 81*7eba2f3bSAndroid Build Coastguard Worker 82*7eba2f3bSAndroid Build Coastguard Workerenum Status : 8 { 83*7eba2f3bSAndroid Build Coastguard Worker OK = 0x00, 84*7eba2f3bSAndroid Build Coastguard Worker REJECTED = 0x01, 85*7eba2f3bSAndroid Build Coastguard Worker FAILED = 0x03, 86*7eba2f3bSAndroid Build Coastguard Worker NOT_INITIALIZED = 0x04, 87*7eba2f3bSAndroid Build Coastguard Worker SYNTAX_ERROR = 0x05, 88*7eba2f3bSAndroid Build Coastguard Worker SEMANTIC_ERROR = 0x06, 89*7eba2f3bSAndroid Build Coastguard Worker INVALID_PARAM = 0x09, 90*7eba2f3bSAndroid Build Coastguard Worker MESSAGE_SIZE_EXCEEDED = 0x0A, 91*7eba2f3bSAndroid Build Coastguard Worker OK_1_BIT = 0x11, 92*7eba2f3bSAndroid Build Coastguard Worker OK_2_BIT = 0x12, 93*7eba2f3bSAndroid Build Coastguard Worker OK_3_BIT = 0x13, 94*7eba2f3bSAndroid Build Coastguard Worker OK_4_BIT = 0x14, 95*7eba2f3bSAndroid Build Coastguard Worker OK_5_BIT = 0x15, 96*7eba2f3bSAndroid Build Coastguard Worker OK_6_BIT = 0x16, 97*7eba2f3bSAndroid Build Coastguard Worker OK_7_BIT = 0x17, 98*7eba2f3bSAndroid Build Coastguard Worker DISCOVERY_ALREADY_STARTED = 0xA0, 99*7eba2f3bSAndroid Build Coastguard Worker DISCOVERY_TARGET_ACTIVATION_FAILED = 0xA1, 100*7eba2f3bSAndroid Build Coastguard Worker DISCOVERY_TEAR_DOWN = 0xA2, 101*7eba2f3bSAndroid Build Coastguard Worker RF_FRAME_CORRUPTED = 0x02, 102*7eba2f3bSAndroid Build Coastguard Worker RF_TRANSMISSION_EXCEPTION = 0xB0, 103*7eba2f3bSAndroid Build Coastguard Worker RF_PROTOCOL_EXCEPTION = 0xB1, 104*7eba2f3bSAndroid Build Coastguard Worker RF_TIMEOUT_EXCEPTION = 0xB2, 105*7eba2f3bSAndroid Build Coastguard Worker RF_UNEXPECTED_DATA = 0xB3, 106*7eba2f3bSAndroid Build Coastguard Worker NFCEE_INTERFACE_ACTIVATION_FAILED = 0xC0, 107*7eba2f3bSAndroid Build Coastguard Worker NFCEE_TRANSMISSION_ERROR = 0xC1, 108*7eba2f3bSAndroid Build Coastguard Worker NFCEE_PROTOCOL_ERROR = 0xC2, 109*7eba2f3bSAndroid Build Coastguard Worker NFCEE_TIMEOUT_ERROR = 0xC3, 110*7eba2f3bSAndroid Build Coastguard Worker} 111*7eba2f3bSAndroid Build Coastguard Worker 112*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 4: Conn ID 113*7eba2f3bSAndroid Build Coastguard Workerenum ConnId : 4 { 114*7eba2f3bSAndroid Build Coastguard Worker STATIC_RF = 0x0, 115*7eba2f3bSAndroid Build Coastguard Worker STATIC_HCI = 0x1, 116*7eba2f3bSAndroid Build Coastguard Worker DYNAMIC = 0x2 .. 0xf, 117*7eba2f3bSAndroid Build Coastguard Worker} 118*7eba2f3bSAndroid Build Coastguard Worker 119*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 67: RF Discovery ID 120*7eba2f3bSAndroid Build Coastguard Workerenum RfDiscoveryId : 8 { 121*7eba2f3bSAndroid Build Coastguard Worker ID = 0x01 .. 0xfe, 122*7eba2f3bSAndroid Build Coastguard Worker RFU = .., 123*7eba2f3bSAndroid Build Coastguard Worker} 124*7eba2f3bSAndroid Build Coastguard Worker 125*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 116: NFCEE IDs 126*7eba2f3bSAndroid Build Coastguard Workerenum NfceeId : 8 { 127*7eba2f3bSAndroid Build Coastguard Worker DH = 0x00, 128*7eba2f3bSAndroid Build Coastguard Worker HCI_NETWORK = 0x01, 129*7eba2f3bSAndroid Build Coastguard Worker NFCEE = 0x10 .. 0x7f, 130*7eba2f3bSAndroid Build Coastguard Worker HCI_NFCEE = 0x80 .. 0xfe, 131*7eba2f3bSAndroid Build Coastguard Worker} 132*7eba2f3bSAndroid Build Coastguard Worker 133*7eba2f3bSAndroid Build Coastguard Worker// Generic format for NCI packet headers. 134*7eba2f3bSAndroid Build Coastguard Worker// The Control and Data packets differ in the reserved fields 135*7eba2f3bSAndroid Build Coastguard Worker// but the framing information is the same. 136*7eba2f3bSAndroid Build Coastguard Workerpacket PacketHeader { 137*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 4, 138*7eba2f3bSAndroid Build Coastguard Worker pbf : PacketBoundaryFlag, 139*7eba2f3bSAndroid Build Coastguard Worker mt : MessageType, 140*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 8, 141*7eba2f3bSAndroid Build Coastguard Worker payload_length : 8, 142*7eba2f3bSAndroid Build Coastguard Worker} 143*7eba2f3bSAndroid Build Coastguard Worker 144*7eba2f3bSAndroid Build Coastguard Worker// Pre-framed NCI control packet. The framing information is ignored 145*7eba2f3bSAndroid Build Coastguard Worker// including the payload length. 146*7eba2f3bSAndroid Build Coastguard Workerpacket ControlPacket { 147*7eba2f3bSAndroid Build Coastguard Worker gid : GroupId, 148*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 1, 149*7eba2f3bSAndroid Build Coastguard Worker mt : MessageType, 150*7eba2f3bSAndroid Build Coastguard Worker _payload_, 151*7eba2f3bSAndroid Build Coastguard Worker} 152*7eba2f3bSAndroid Build Coastguard Worker 153*7eba2f3bSAndroid Build Coastguard Worker// Pre-framed NCI data packet. The framing information is ignored 154*7eba2f3bSAndroid Build Coastguard Worker// including the payload length. 155*7eba2f3bSAndroid Build Coastguard Workerpacket DataPacket { 156*7eba2f3bSAndroid Build Coastguard Worker conn_id : ConnId, 157*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 1, 158*7eba2f3bSAndroid Build Coastguard Worker mt : MessageType, 159*7eba2f3bSAndroid Build Coastguard Worker cr : 2, 160*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 6, 161*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 8, 162*7eba2f3bSAndroid Build Coastguard Worker _payload_, 163*7eba2f3bSAndroid Build Coastguard Worker} 164*7eba2f3bSAndroid Build Coastguard Worker 165*7eba2f3bSAndroid Build Coastguard Workerpacket CorePacket : ControlPacket (gid = CORE) { 166*7eba2f3bSAndroid Build Coastguard Worker oid : CoreOpcodeId, 167*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 2, 168*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 8, 169*7eba2f3bSAndroid Build Coastguard Worker _payload_, 170*7eba2f3bSAndroid Build Coastguard Worker} 171*7eba2f3bSAndroid Build Coastguard Worker 172*7eba2f3bSAndroid Build Coastguard Workerenum ResetType : 8 { 173*7eba2f3bSAndroid Build Coastguard Worker KEEP_CONFIG = 0, 174*7eba2f3bSAndroid Build Coastguard Worker RESET_CONFIG = 1, 175*7eba2f3bSAndroid Build Coastguard Worker} 176*7eba2f3bSAndroid Build Coastguard Worker 177*7eba2f3bSAndroid Build Coastguard Workerpacket CoreResetCommand : CorePacket (mt = COMMAND, oid = RESET) { 178*7eba2f3bSAndroid Build Coastguard Worker reset_type : ResetType 179*7eba2f3bSAndroid Build Coastguard Worker} 180*7eba2f3bSAndroid Build Coastguard Worker 181*7eba2f3bSAndroid Build Coastguard Workerpacket CoreResetResponse : CorePacket (mt = RESPONSE, oid = RESET) { 182*7eba2f3bSAndroid Build Coastguard Worker status : Status 183*7eba2f3bSAndroid Build Coastguard Worker} 184*7eba2f3bSAndroid Build Coastguard Worker 185*7eba2f3bSAndroid Build Coastguard Workerenum ResetTrigger : 8 { 186*7eba2f3bSAndroid Build Coastguard Worker UNRECOVERABLE_ERROR = 0, 187*7eba2f3bSAndroid Build Coastguard Worker POWER_ON = 1, 188*7eba2f3bSAndroid Build Coastguard Worker RESET_COMMAND = 2, 189*7eba2f3bSAndroid Build Coastguard Worker} 190*7eba2f3bSAndroid Build Coastguard Worker 191*7eba2f3bSAndroid Build Coastguard Workerenum ConfigStatus : 8 { 192*7eba2f3bSAndroid Build Coastguard Worker CONFIG_KEPT = 0x00, 193*7eba2f3bSAndroid Build Coastguard Worker CONFIG_RESET = 0x01, 194*7eba2f3bSAndroid Build Coastguard Worker} 195*7eba2f3bSAndroid Build Coastguard Worker 196*7eba2f3bSAndroid Build Coastguard Workerenum NciVersion : 8 { 197*7eba2f3bSAndroid Build Coastguard Worker VERSION_1_0 = 0x10, 198*7eba2f3bSAndroid Build Coastguard Worker VERSION_1_1 = 0x11, 199*7eba2f3bSAndroid Build Coastguard Worker VERSION_2_0 = 0x20, 200*7eba2f3bSAndroid Build Coastguard Worker VERSION_2_1 = 0x21, 201*7eba2f3bSAndroid Build Coastguard Worker VERSION_2_2 = 0x22, 202*7eba2f3bSAndroid Build Coastguard Worker} 203*7eba2f3bSAndroid Build Coastguard Worker 204*7eba2f3bSAndroid Build Coastguard Workerpacket CoreResetNotification : CorePacket (mt = NOTIFICATION, oid = RESET) { 205*7eba2f3bSAndroid Build Coastguard Worker trigger : ResetTrigger, 206*7eba2f3bSAndroid Build Coastguard Worker config_status : ConfigStatus, 207*7eba2f3bSAndroid Build Coastguard Worker nci_version : NciVersion, 208*7eba2f3bSAndroid Build Coastguard Worker manufacturer_id: 8, 209*7eba2f3bSAndroid Build Coastguard Worker _size_(manufacturer_specific_information) : 8, 210*7eba2f3bSAndroid Build Coastguard Worker manufacturer_specific_information : 8[], 211*7eba2f3bSAndroid Build Coastguard Worker} 212*7eba2f3bSAndroid Build Coastguard Worker 213*7eba2f3bSAndroid Build Coastguard Workerstruct FeatureEnable { 214*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 16, 215*7eba2f3bSAndroid Build Coastguard Worker} 216*7eba2f3bSAndroid Build Coastguard Worker 217*7eba2f3bSAndroid Build Coastguard Workerpacket CoreInitCommand : CorePacket (mt = COMMAND, oid = INIT) { 218*7eba2f3bSAndroid Build Coastguard Worker feature_enable : FeatureEnable, 219*7eba2f3bSAndroid Build Coastguard Worker} 220*7eba2f3bSAndroid Build Coastguard Worker 221*7eba2f3bSAndroid Build Coastguard Workerenum FeatureFlag : 1 { 222*7eba2f3bSAndroid Build Coastguard Worker DISABLED = 0, 223*7eba2f3bSAndroid Build Coastguard Worker ENABLED = 1, 224*7eba2f3bSAndroid Build Coastguard Worker} 225*7eba2f3bSAndroid Build Coastguard Worker 226*7eba2f3bSAndroid Build Coastguard Workerenum DiscoveryConfigurationMode : 2 { 227*7eba2f3bSAndroid Build Coastguard Worker DH_ONLY = 0x0, 228*7eba2f3bSAndroid Build Coastguard Worker DH_AND_NFCEE = 0x1, 229*7eba2f3bSAndroid Build Coastguard Worker} 230*7eba2f3bSAndroid Build Coastguard Worker 231*7eba2f3bSAndroid Build Coastguard Workerstruct NfccFeatures { 232*7eba2f3bSAndroid Build Coastguard Worker discovery_frequency_configuration : FeatureFlag, 233*7eba2f3bSAndroid Build Coastguard Worker discovery_configuration_mode : DiscoveryConfigurationMode, 234*7eba2f3bSAndroid Build Coastguard Worker hci_network_support : FeatureFlag, 235*7eba2f3bSAndroid Build Coastguard Worker active_communication_mode : FeatureFlag, 236*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 3, 237*7eba2f3bSAndroid Build Coastguard Worker _reserved_: 1, 238*7eba2f3bSAndroid Build Coastguard Worker technology_based_routing : FeatureFlag, 239*7eba2f3bSAndroid Build Coastguard Worker protocol_based_routing : FeatureFlag, 240*7eba2f3bSAndroid Build Coastguard Worker aid_based_routing : FeatureFlag, 241*7eba2f3bSAndroid Build Coastguard Worker system_code_based_routing : FeatureFlag, 242*7eba2f3bSAndroid Build Coastguard Worker apdu_pattern_based_routing : FeatureFlag, 243*7eba2f3bSAndroid Build Coastguard Worker forced_nfcee_routing : FeatureFlag, 244*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 1, 245*7eba2f3bSAndroid Build Coastguard Worker battery_off_state : FeatureFlag, 246*7eba2f3bSAndroid Build Coastguard Worker switched_off_state : FeatureFlag, 247*7eba2f3bSAndroid Build Coastguard Worker switched_on_substates : FeatureFlag, 248*7eba2f3bSAndroid Build Coastguard Worker rf_configuration_in_switched_off_state: FeatureFlag, 249*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 4, 250*7eba2f3bSAndroid Build Coastguard Worker proprietary_capabilities: 8, 251*7eba2f3bSAndroid Build Coastguard Worker} 252*7eba2f3bSAndroid Build Coastguard Worker 253*7eba2f3bSAndroid Build Coastguard Workerenum RfInterfaceType : 8 { 254*7eba2f3bSAndroid Build Coastguard Worker NFCEE_DIRECT = 0x00, 255*7eba2f3bSAndroid Build Coastguard Worker FRAME = 0x01, 256*7eba2f3bSAndroid Build Coastguard Worker ISO_DEP = 0x02, 257*7eba2f3bSAndroid Build Coastguard Worker NFC_DEP = 0x03, 258*7eba2f3bSAndroid Build Coastguard Worker NDEF = 0x06, 259*7eba2f3bSAndroid Build Coastguard Worker PROPRIETARY = 0x80..0xfe, 260*7eba2f3bSAndroid Build Coastguard Worker} 261*7eba2f3bSAndroid Build Coastguard Worker 262*7eba2f3bSAndroid Build Coastguard Workerenum RfInterfaceExtensionType : 8 { 263*7eba2f3bSAndroid Build Coastguard Worker FRAME_AGGREGATED = 0x00, 264*7eba2f3bSAndroid Build Coastguard Worker LLCP_SYMMETRY = 0x01, 265*7eba2f3bSAndroid Build Coastguard Worker} 266*7eba2f3bSAndroid Build Coastguard Worker 267*7eba2f3bSAndroid Build Coastguard Workerstruct RfInterface { 268*7eba2f3bSAndroid Build Coastguard Worker interface : RfInterfaceType, 269*7eba2f3bSAndroid Build Coastguard Worker _count_(extensions) : 8, 270*7eba2f3bSAndroid Build Coastguard Worker extensions : RfInterfaceExtensionType[], 271*7eba2f3bSAndroid Build Coastguard Worker} 272*7eba2f3bSAndroid Build Coastguard Worker 273*7eba2f3bSAndroid Build Coastguard Workerpacket CoreInitResponse : CorePacket (mt = RESPONSE, oid = INIT) { 274*7eba2f3bSAndroid Build Coastguard Worker status : Status, 275*7eba2f3bSAndroid Build Coastguard Worker nfcc_features : NfccFeatures, 276*7eba2f3bSAndroid Build Coastguard Worker max_logical_connections : 8, 277*7eba2f3bSAndroid Build Coastguard Worker max_routing_table_size : 16, 278*7eba2f3bSAndroid Build Coastguard Worker max_control_packet_payload_size : 8, 279*7eba2f3bSAndroid Build Coastguard Worker max_data_packet_payload_size : 8, 280*7eba2f3bSAndroid Build Coastguard Worker number_of_credits : 8, 281*7eba2f3bSAndroid Build Coastguard Worker max_nfcv_rf_frame_size : 16, 282*7eba2f3bSAndroid Build Coastguard Worker _count_(supported_rf_interfaces) : 8, 283*7eba2f3bSAndroid Build Coastguard Worker supported_rf_interfaces: RfInterface[], 284*7eba2f3bSAndroid Build Coastguard Worker} 285*7eba2f3bSAndroid Build Coastguard Worker 286*7eba2f3bSAndroid Build Coastguard Workerenum ConfigParameterId : 8 { 287*7eba2f3bSAndroid Build Coastguard Worker TOTAL_DURATION = 0x00, 288*7eba2f3bSAndroid Build Coastguard Worker CON_DISCOVERY_PARAM = 0x02, 289*7eba2f3bSAndroid Build Coastguard Worker POWER_STATE = 0x03, 290*7eba2f3bSAndroid Build Coastguard Worker PA_BAIL_OUT = 0x08, 291*7eba2f3bSAndroid Build Coastguard Worker PA_DEVICES_LIMIT = 0x09, 292*7eba2f3bSAndroid Build Coastguard Worker PB_AFI = 0x10, 293*7eba2f3bSAndroid Build Coastguard Worker PB_BAIL_OUT = 0x11, 294*7eba2f3bSAndroid Build Coastguard Worker PB_ATTRIB_PARAM1 = 0x12, 295*7eba2f3bSAndroid Build Coastguard Worker PB_SENSB_REQ_PARAM = 0x13, 296*7eba2f3bSAndroid Build Coastguard Worker PB_DEVICES_LIMIT = 0x14, 297*7eba2f3bSAndroid Build Coastguard Worker PF_BIT_RATE = 0x18, 298*7eba2f3bSAndroid Build Coastguard Worker PF_BAIL_OUT = 0x19, 299*7eba2f3bSAndroid Build Coastguard Worker PF_DEVICES_LIMIT = 0x1A, 300*7eba2f3bSAndroid Build Coastguard Worker PI_B_H_INFO = 0x20, 301*7eba2f3bSAndroid Build Coastguard Worker PI_BIT_RATE = 0x21, 302*7eba2f3bSAndroid Build Coastguard Worker PN_NFC_DEP_PSL = 0x28, 303*7eba2f3bSAndroid Build Coastguard Worker PN_ATR_REQ_GEN_BYTES = 0x29, 304*7eba2f3bSAndroid Build Coastguard Worker PN_ATR_REQ_CONFIG = 0x2A, 305*7eba2f3bSAndroid Build Coastguard Worker PV_DEVICES_LIMIT = 0x2F, 306*7eba2f3bSAndroid Build Coastguard Worker LA_BIT_FRAME_SDD = 0x30, 307*7eba2f3bSAndroid Build Coastguard Worker LA_PLATFORM_CONFIG = 0x31, 308*7eba2f3bSAndroid Build Coastguard Worker LA_SEL_INFO = 0x32, 309*7eba2f3bSAndroid Build Coastguard Worker LA_NFCID1 = 0x33, 310*7eba2f3bSAndroid Build Coastguard Worker LB_SENSB_INFO = 0x38, 311*7eba2f3bSAndroid Build Coastguard Worker LB_NFCID0 = 0x39, 312*7eba2f3bSAndroid Build Coastguard Worker LB_APPLICATION_DATA = 0x3A, 313*7eba2f3bSAndroid Build Coastguard Worker LB_SFGI = 0x3B, 314*7eba2f3bSAndroid Build Coastguard Worker LB_FWI_ADC_FO = 0x3C, 315*7eba2f3bSAndroid Build Coastguard Worker LB_BIT_RATE = 0x3E, 316*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_1 = 0x40, 317*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_2 = 0x41, 318*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_3 = 0x42, 319*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_4 = 0x43, 320*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_5 = 0x44, 321*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_6 = 0x45, 322*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_7 = 0x46, 323*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_8 = 0x47, 324*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_9 = 0x48, 325*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_10 = 0x49, 326*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_11 = 0x4A, 327*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_12 = 0x4B, 328*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_13 = 0x4C, 329*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_14 = 0x4D, 330*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_15 = 0x4E, 331*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_IDENTIFIERS_16 = 0x4F, 332*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_PMM_DEFAULT = 0x51, // deprecated in 2.2 333*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_MAX = 0x52, 334*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_FLAGS = 0x53, 335*7eba2f3bSAndroid Build Coastguard Worker LF_T3T_RD_ALLOWED = 0x55, 336*7eba2f3bSAndroid Build Coastguard Worker LF_PROTOCOL_TYPE = 0x50, 337*7eba2f3bSAndroid Build Coastguard Worker LI_A_RATS_TB1 = 0x58, 338*7eba2f3bSAndroid Build Coastguard Worker LI_A_HIST_BY = 0x59, 339*7eba2f3bSAndroid Build Coastguard Worker LI_B_H_INFO_RESP = 0x5A, 340*7eba2f3bSAndroid Build Coastguard Worker LI_A_BIT_RATE = 0x5B, 341*7eba2f3bSAndroid Build Coastguard Worker LI_A_RATS_TC1 = 0x5C, 342*7eba2f3bSAndroid Build Coastguard Worker LN_WT = 0x60, 343*7eba2f3bSAndroid Build Coastguard Worker LN_ATR_RES_GEN_BYTES = 0x61, 344*7eba2f3bSAndroid Build Coastguard Worker LN_ATR_RES_CONFIG = 0x62, 345*7eba2f3bSAndroid Build Coastguard Worker PACM_BIT_RATE = 0x68, 346*7eba2f3bSAndroid Build Coastguard Worker RF_FIELD_INFO = 0x80, 347*7eba2f3bSAndroid Build Coastguard Worker RF_NFCEE_ACTION = 0x81, 348*7eba2f3bSAndroid Build Coastguard Worker NFCDEP_OP = 0x82, 349*7eba2f3bSAndroid Build Coastguard Worker LLCP_VERSION = 0x83, 350*7eba2f3bSAndroid Build Coastguard Worker NFCC_CONFIG_CONTROL = 0x85, 351*7eba2f3bSAndroid Build Coastguard Worker PROP0 = 0xa0, 352*7eba2f3bSAndroid Build Coastguard Worker PROP1 = 0xa1, 353*7eba2f3bSAndroid Build Coastguard Worker PROP2 = 0xa2, 354*7eba2f3bSAndroid Build Coastguard Worker PROP3 = 0xa3, 355*7eba2f3bSAndroid Build Coastguard Worker PROP4 = 0xa4, 356*7eba2f3bSAndroid Build Coastguard Worker PROP5 = 0xa5, 357*7eba2f3bSAndroid Build Coastguard Worker RFU = .., 358*7eba2f3bSAndroid Build Coastguard Worker} 359*7eba2f3bSAndroid Build Coastguard Worker 360*7eba2f3bSAndroid Build Coastguard Workerstruct ConfigParameter { 361*7eba2f3bSAndroid Build Coastguard Worker id : ConfigParameterId, 362*7eba2f3bSAndroid Build Coastguard Worker _size_(value) : 8, 363*7eba2f3bSAndroid Build Coastguard Worker value : 8[], 364*7eba2f3bSAndroid Build Coastguard Worker} 365*7eba2f3bSAndroid Build Coastguard Worker 366*7eba2f3bSAndroid Build Coastguard Workerpacket CoreSetConfigCommand : CorePacket (mt = COMMAND, oid = SET_CONFIG) { 367*7eba2f3bSAndroid Build Coastguard Worker _count_(parameters) : 8, 368*7eba2f3bSAndroid Build Coastguard Worker parameters : ConfigParameter[], 369*7eba2f3bSAndroid Build Coastguard Worker} 370*7eba2f3bSAndroid Build Coastguard Worker 371*7eba2f3bSAndroid Build Coastguard Workerpacket CoreSetConfigResponse : CorePacket (mt = RESPONSE, oid = SET_CONFIG) { 372*7eba2f3bSAndroid Build Coastguard Worker status : Status, 373*7eba2f3bSAndroid Build Coastguard Worker _count_(parameters) : 8, 374*7eba2f3bSAndroid Build Coastguard Worker parameters : ConfigParameterId[], 375*7eba2f3bSAndroid Build Coastguard Worker} 376*7eba2f3bSAndroid Build Coastguard Worker 377*7eba2f3bSAndroid Build Coastguard Workerpacket CoreGetConfigCommand : CorePacket (mt = COMMAND, oid = GET_CONFIG) { 378*7eba2f3bSAndroid Build Coastguard Worker _count_(parameters) : 8, 379*7eba2f3bSAndroid Build Coastguard Worker parameters : ConfigParameterId[], 380*7eba2f3bSAndroid Build Coastguard Worker} 381*7eba2f3bSAndroid Build Coastguard Worker 382*7eba2f3bSAndroid Build Coastguard Workerpacket CoreGetConfigResponse : CorePacket (mt = RESPONSE, oid = GET_CONFIG) { 383*7eba2f3bSAndroid Build Coastguard Worker status : Status, 384*7eba2f3bSAndroid Build Coastguard Worker _count_(parameters) : 8, 385*7eba2f3bSAndroid Build Coastguard Worker parameters : ConfigParameter[], 386*7eba2f3bSAndroid Build Coastguard Worker} 387*7eba2f3bSAndroid Build Coastguard Worker 388*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 133: RF Protocols 389*7eba2f3bSAndroid Build Coastguard Workerenum RfProtocolType : 8 { 390*7eba2f3bSAndroid Build Coastguard Worker UNDETERMINED = 0x00, 391*7eba2f3bSAndroid Build Coastguard Worker T1T = 0x01, 392*7eba2f3bSAndroid Build Coastguard Worker T2T = 0x02, 393*7eba2f3bSAndroid Build Coastguard Worker T3T = 0x03, 394*7eba2f3bSAndroid Build Coastguard Worker ISO_DEP = 0x04, 395*7eba2f3bSAndroid Build Coastguard Worker NFC_DEP = 0x05, 396*7eba2f3bSAndroid Build Coastguard Worker T5T = 0x06, 397*7eba2f3bSAndroid Build Coastguard Worker NDEF = 0x07, 398*7eba2f3bSAndroid Build Coastguard Worker} 399*7eba2f3bSAndroid Build Coastguard Worker 400*7eba2f3bSAndroid Build Coastguard Workerenum NfceeProtocolType : 8 { 401*7eba2f3bSAndroid Build Coastguard Worker APDU = 0x00, 402*7eba2f3bSAndroid Build Coastguard Worker RFU = 0x01, 403*7eba2f3bSAndroid Build Coastguard Worker T3CS = 0x02, 404*7eba2f3bSAndroid Build Coastguard Worker TRANSPARENT = 0x04, 405*7eba2f3bSAndroid Build Coastguard Worker} 406*7eba2f3bSAndroid Build Coastguard Worker 407*7eba2f3bSAndroid Build Coastguard Workerenum DestinationType : 8 { 408*7eba2f3bSAndroid Build Coastguard Worker NFCC_LOOPBACK = 0x01, 409*7eba2f3bSAndroid Build Coastguard Worker REMOTE_NFC_ENDPOINT = 0x02, 410*7eba2f3bSAndroid Build Coastguard Worker NFCEE = 0x03, 411*7eba2f3bSAndroid Build Coastguard Worker} 412*7eba2f3bSAndroid Build Coastguard Worker 413*7eba2f3bSAndroid Build Coastguard Workerenum DestinationSpecificParameterId : 8 { 414*7eba2f3bSAndroid Build Coastguard Worker RF_DISCOVERY = 0x00, 415*7eba2f3bSAndroid Build Coastguard Worker NFCEE = 0x01, 416*7eba2f3bSAndroid Build Coastguard Worker} 417*7eba2f3bSAndroid Build Coastguard Worker 418*7eba2f3bSAndroid Build Coastguard Workerstruct DestinationSpecificParameter { 419*7eba2f3bSAndroid Build Coastguard Worker id : DestinationSpecificParameterId, 420*7eba2f3bSAndroid Build Coastguard Worker _size_(value) : 8, 421*7eba2f3bSAndroid Build Coastguard Worker value : 8[], 422*7eba2f3bSAndroid Build Coastguard Worker} 423*7eba2f3bSAndroid Build Coastguard Worker 424*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCreateCommand : CorePacket (mt = COMMAND, oid = CONN_CREATE) { 425*7eba2f3bSAndroid Build Coastguard Worker destination_type : DestinationType, 426*7eba2f3bSAndroid Build Coastguard Worker _count_(parameters) : 8, 427*7eba2f3bSAndroid Build Coastguard Worker parameters : DestinationSpecificParameter[], 428*7eba2f3bSAndroid Build Coastguard Worker} 429*7eba2f3bSAndroid Build Coastguard Worker 430*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCreateResponse : CorePacket (mt = RESPONSE, oid = CONN_CREATE) { 431*7eba2f3bSAndroid Build Coastguard Worker status : Status, 432*7eba2f3bSAndroid Build Coastguard Worker max_data_packet_payload_size : 8, 433*7eba2f3bSAndroid Build Coastguard Worker initial_number_of_credits : 8, 434*7eba2f3bSAndroid Build Coastguard Worker conn_id : ConnId, 435*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 4, 436*7eba2f3bSAndroid Build Coastguard Worker} 437*7eba2f3bSAndroid Build Coastguard Worker 438*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCloseCommand : CorePacket (mt = COMMAND, oid = CONN_CLOSE) { 439*7eba2f3bSAndroid Build Coastguard Worker conn_id : ConnId, 440*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 4, 441*7eba2f3bSAndroid Build Coastguard Worker} 442*7eba2f3bSAndroid Build Coastguard Worker 443*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCloseResponse : CorePacket (mt = RESPONSE, oid = CONN_CLOSE) { 444*7eba2f3bSAndroid Build Coastguard Worker status : Status, 445*7eba2f3bSAndroid Build Coastguard Worker} 446*7eba2f3bSAndroid Build Coastguard Worker 447*7eba2f3bSAndroid Build Coastguard Workerstruct ConnectionCredits { 448*7eba2f3bSAndroid Build Coastguard Worker conn_id : ConnId, 449*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 4, 450*7eba2f3bSAndroid Build Coastguard Worker credits : 8, 451*7eba2f3bSAndroid Build Coastguard Worker} 452*7eba2f3bSAndroid Build Coastguard Worker 453*7eba2f3bSAndroid Build Coastguard Workerpacket CoreConnCreditsNotification : CorePacket (mt = NOTIFICATION, oid = CONN_CREDITS) { 454*7eba2f3bSAndroid Build Coastguard Worker _count_(connections) : 8, 455*7eba2f3bSAndroid Build Coastguard Worker connections : ConnectionCredits[] 456*7eba2f3bSAndroid Build Coastguard Worker} 457*7eba2f3bSAndroid Build Coastguard Worker 458*7eba2f3bSAndroid Build Coastguard Workerenum PowerState : 8 { 459*7eba2f3bSAndroid Build Coastguard Worker SWITCHED_ON_STATE = 0x00, 460*7eba2f3bSAndroid Build Coastguard Worker SWITCHED_ON_SUBSTATE_1 = 0x01, 461*7eba2f3bSAndroid Build Coastguard Worker SWITCHED_ON_SUBSTATE_2 = 0x02, 462*7eba2f3bSAndroid Build Coastguard Worker SWITCHED_ON_SUBSTATE_3 = 0x03, 463*7eba2f3bSAndroid Build Coastguard Worker} 464*7eba2f3bSAndroid Build Coastguard Worker 465*7eba2f3bSAndroid Build Coastguard Workerpacket CoreSetPowerSubStateCommand : CorePacket (mt = COMMAND, oid = SET_POWER_SUB_STATE) { 466*7eba2f3bSAndroid Build Coastguard Worker power_state : PowerState, 467*7eba2f3bSAndroid Build Coastguard Worker} 468*7eba2f3bSAndroid Build Coastguard Worker 469*7eba2f3bSAndroid Build Coastguard Workerpacket CoreSetPowerSubStateResponse : CorePacket (mt = RESPONSE, oid = SET_POWER_SUB_STATE) { 470*7eba2f3bSAndroid Build Coastguard Worker status : Status, 471*7eba2f3bSAndroid Build Coastguard Worker} 472*7eba2f3bSAndroid Build Coastguard Worker 473*7eba2f3bSAndroid Build Coastguard Workerpacket RfPacket : ControlPacket (gid = RF_MANAGEMENT) { 474*7eba2f3bSAndroid Build Coastguard Worker oid : RfOpcodeId, 475*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 2, 476*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 8, 477*7eba2f3bSAndroid Build Coastguard Worker _payload_, 478*7eba2f3bSAndroid Build Coastguard Worker} 479*7eba2f3bSAndroid Build Coastguard Worker 480*7eba2f3bSAndroid Build Coastguard Workerstruct MappingConfigurationMode { 481*7eba2f3bSAndroid Build Coastguard Worker listen_mode : FeatureFlag, 482*7eba2f3bSAndroid Build Coastguard Worker poll_mode : FeatureFlag, 483*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 6, 484*7eba2f3bSAndroid Build Coastguard Worker} 485*7eba2f3bSAndroid Build Coastguard Worker 486*7eba2f3bSAndroid Build Coastguard Workerstruct MappingConfiguration { 487*7eba2f3bSAndroid Build Coastguard Worker rf_protocol : RfProtocolType, 488*7eba2f3bSAndroid Build Coastguard Worker mode : MappingConfigurationMode, 489*7eba2f3bSAndroid Build Coastguard Worker rf_interface : RfInterfaceType, 490*7eba2f3bSAndroid Build Coastguard Worker} 491*7eba2f3bSAndroid Build Coastguard Worker 492*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverMapCommand : RfPacket (mt = COMMAND, oid = DISCOVER_MAP) { 493*7eba2f3bSAndroid Build Coastguard Worker _count_(mapping_configurations) : 8, 494*7eba2f3bSAndroid Build Coastguard Worker mapping_configurations : MappingConfiguration[], 495*7eba2f3bSAndroid Build Coastguard Worker} 496*7eba2f3bSAndroid Build Coastguard Worker 497*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverMapResponse : RfPacket (mt = RESPONSE, oid = DISCOVER_MAP) { 498*7eba2f3bSAndroid Build Coastguard Worker status : Status, 499*7eba2f3bSAndroid Build Coastguard Worker} 500*7eba2f3bSAndroid Build Coastguard Worker 501*7eba2f3bSAndroid Build Coastguard Workerenum ListenModeRoutingEntryType : 4 { 502*7eba2f3bSAndroid Build Coastguard Worker TECHNOLOGY_BASED_ROUTING = 0x0, 503*7eba2f3bSAndroid Build Coastguard Worker PROTOCOL_BASED_ROUTING = 0x1, 504*7eba2f3bSAndroid Build Coastguard Worker AID_BASED_ROUTING = 0x2, 505*7eba2f3bSAndroid Build Coastguard Worker SYSTEM_CODE_BASED_ROUTING = 0x3, 506*7eba2f3bSAndroid Build Coastguard Worker APDU_PATTERN_BASED_ROUTING = 0x4, 507*7eba2f3bSAndroid Build Coastguard Worker} 508*7eba2f3bSAndroid Build Coastguard Worker 509*7eba2f3bSAndroid Build Coastguard Workerstruct ListenModeRoutingEntry { 510*7eba2f3bSAndroid Build Coastguard Worker type : ListenModeRoutingEntryType, 511*7eba2f3bSAndroid Build Coastguard Worker match_longer_aids : FeatureFlag, 512*7eba2f3bSAndroid Build Coastguard Worker match_shorter_aids : FeatureFlag, 513*7eba2f3bSAndroid Build Coastguard Worker routing_blocked_for_unsupported_power_modes : FeatureFlag, 514*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 1, 515*7eba2f3bSAndroid Build Coastguard Worker _size_(value) : 8, 516*7eba2f3bSAndroid Build Coastguard Worker value : 8[], 517*7eba2f3bSAndroid Build Coastguard Worker} 518*7eba2f3bSAndroid Build Coastguard Worker 519*7eba2f3bSAndroid Build Coastguard Workerpacket RfSetListenModeRoutingCommand : RfPacket (mt = COMMAND, oid = SET_LISTEN_MODE_ROUTING) { 520*7eba2f3bSAndroid Build Coastguard Worker more_to_follow : 8, 521*7eba2f3bSAndroid Build Coastguard Worker _count_(routing_entries) : 8, 522*7eba2f3bSAndroid Build Coastguard Worker routing_entries : ListenModeRoutingEntry[], 523*7eba2f3bSAndroid Build Coastguard Worker} 524*7eba2f3bSAndroid Build Coastguard Worker 525*7eba2f3bSAndroid Build Coastguard Workerpacket RfSetListenModeRoutingResponse : RfPacket (mt = RESPONSE, oid = SET_LISTEN_MODE_ROUTING) { 526*7eba2f3bSAndroid Build Coastguard Worker status : Status, 527*7eba2f3bSAndroid Build Coastguard Worker} 528*7eba2f3bSAndroid Build Coastguard Worker 529*7eba2f3bSAndroid Build Coastguard Workerpacket RfGetListenModeRoutingCommand : RfPacket (mt = COMMAND, oid = GET_LISTEN_MODE_ROUTING) { 530*7eba2f3bSAndroid Build Coastguard Worker} 531*7eba2f3bSAndroid Build Coastguard Worker 532*7eba2f3bSAndroid Build Coastguard Workerpacket RfGetListenModeRoutingResponse : RfPacket (mt = RESPONSE, oid = GET_LISTEN_MODE_ROUTING) { 533*7eba2f3bSAndroid Build Coastguard Worker status : Status, 534*7eba2f3bSAndroid Build Coastguard Worker more_to_follow : 8, 535*7eba2f3bSAndroid Build Coastguard Worker _count_(routing_entries) : 8, 536*7eba2f3bSAndroid Build Coastguard Worker routing_entries : ListenModeRoutingEntry[], 537*7eba2f3bSAndroid Build Coastguard Worker} 538*7eba2f3bSAndroid Build Coastguard Worker 539*7eba2f3bSAndroid Build Coastguard Workerenum RfTechnologyAndMode : 8 { 540*7eba2f3bSAndroid Build Coastguard Worker NFC_A_PASSIVE_POLL_MODE = 0x00, 541*7eba2f3bSAndroid Build Coastguard Worker NFC_B_PASSIVE_POLL_MODE = 0x01, 542*7eba2f3bSAndroid Build Coastguard Worker NFC_F_PASSIVE_POLL_MODE = 0x02, 543*7eba2f3bSAndroid Build Coastguard Worker NFC_ACTIVE_POLL_MODE = 0x03, 544*7eba2f3bSAndroid Build Coastguard Worker NFC_V_PASSIVE_POLL_MODE = 0x06, 545*7eba2f3bSAndroid Build Coastguard Worker PROPRIETARY_POLL_MODE = 0x70 .. 0x7f, 546*7eba2f3bSAndroid Build Coastguard Worker NFC_A_PASSIVE_LISTEN_MODE = 0x80, 547*7eba2f3bSAndroid Build Coastguard Worker NFC_B_PASSIVE_LISTEN_MODE = 0x81, 548*7eba2f3bSAndroid Build Coastguard Worker NFC_F_PASSIVE_LISTEN_MODE = 0x82, 549*7eba2f3bSAndroid Build Coastguard Worker NFC_ACTIVE_LISTEN_MODE = 0x83, 550*7eba2f3bSAndroid Build Coastguard Worker PROPRIETARY_LISTEN_MODE = 0xf0 .. 0xff, 551*7eba2f3bSAndroid Build Coastguard Worker} 552*7eba2f3bSAndroid Build Coastguard Worker 553*7eba2f3bSAndroid Build Coastguard Workerstruct DiscoverConfiguration { 554*7eba2f3bSAndroid Build Coastguard Worker technology_and_mode : RfTechnologyAndMode, 555*7eba2f3bSAndroid Build Coastguard Worker discovery_frequency : 8, 556*7eba2f3bSAndroid Build Coastguard Worker} 557*7eba2f3bSAndroid Build Coastguard Worker 558*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverCommand : RfPacket (mt = COMMAND, oid = DISCOVER) { 559*7eba2f3bSAndroid Build Coastguard Worker _count_(configurations) : 8, 560*7eba2f3bSAndroid Build Coastguard Worker configurations : DiscoverConfiguration[], 561*7eba2f3bSAndroid Build Coastguard Worker} 562*7eba2f3bSAndroid Build Coastguard Worker 563*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverResponse : RfPacket (mt = RESPONSE, oid = DISCOVER) { 564*7eba2f3bSAndroid Build Coastguard Worker status : Status, 565*7eba2f3bSAndroid Build Coastguard Worker} 566*7eba2f3bSAndroid Build Coastguard Worker 567*7eba2f3bSAndroid Build Coastguard Workerenum DiscoverNotificationType : 8 { 568*7eba2f3bSAndroid Build Coastguard Worker LAST_NOTIFICATION = 0x0, 569*7eba2f3bSAndroid Build Coastguard Worker OUT_OF_RESOURCES = 0x1, 570*7eba2f3bSAndroid Build Coastguard Worker MORE_NOTIFICATIONS = 0x2, 571*7eba2f3bSAndroid Build Coastguard Worker} 572*7eba2f3bSAndroid Build Coastguard Worker 573*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverNotification : RfPacket (mt = NOTIFICATION, oid = DISCOVER) { 574*7eba2f3bSAndroid Build Coastguard Worker rf_discovery_id : RfDiscoveryId, 575*7eba2f3bSAndroid Build Coastguard Worker rf_protocol : RfProtocolType, 576*7eba2f3bSAndroid Build Coastguard Worker rf_technology_and_mode : RfTechnologyAndMode, 577*7eba2f3bSAndroid Build Coastguard Worker _size_(rf_technology_specific_parameters) : 8, 578*7eba2f3bSAndroid Build Coastguard Worker rf_technology_specific_parameters : 8[], 579*7eba2f3bSAndroid Build Coastguard Worker notification_type : DiscoverNotificationType, 580*7eba2f3bSAndroid Build Coastguard Worker} 581*7eba2f3bSAndroid Build Coastguard Worker 582*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 68: Specific Parameters for NFC-A Poll Mode 583*7eba2f3bSAndroid Build Coastguard Workerpacket NfcAPollModeTechnologySpecificParameters { 584*7eba2f3bSAndroid Build Coastguard Worker sens_res : 16, 585*7eba2f3bSAndroid Build Coastguard Worker _size_(nfcid1) : 8, 586*7eba2f3bSAndroid Build Coastguard Worker nfcid1 : 8[], 587*7eba2f3bSAndroid Build Coastguard Worker _fixed_ = 1 : 8, 588*7eba2f3bSAndroid Build Coastguard Worker sel_res : 8, 589*7eba2f3bSAndroid Build Coastguard Worker _fixed_ = 0 : 8, 590*7eba2f3bSAndroid Build Coastguard Worker} 591*7eba2f3bSAndroid Build Coastguard Worker 592*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 69: Specific Parameters for NFC-A Listen Mode 593*7eba2f3bSAndroid Build Coastguard Workerpacket NfcAListenModeTechnologySpecificParameters { 594*7eba2f3bSAndroid Build Coastguard Worker} 595*7eba2f3bSAndroid Build Coastguard Worker 596*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 70: Specific Parameters for NFC-B Poll Mode 597*7eba2f3bSAndroid Build Coastguard Workerpacket NfcBPollModeTechnologySpecificParameters { 598*7eba2f3bSAndroid Build Coastguard Worker _size_(sensb_res) : 8, 599*7eba2f3bSAndroid Build Coastguard Worker sensb_res : 8[], 600*7eba2f3bSAndroid Build Coastguard Worker} 601*7eba2f3bSAndroid Build Coastguard Worker 602*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 71: Specific Parameters for NFC-B Listen Mode 603*7eba2f3bSAndroid Build Coastguard Workerpacket NfcBListenModeTechnologySpecificParameters { 604*7eba2f3bSAndroid Build Coastguard Worker sensb_cmd : 8, 605*7eba2f3bSAndroid Build Coastguard Worker} 606*7eba2f3bSAndroid Build Coastguard Worker 607*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 72: Specific Parameters for NFC-F Poll Mode 608*7eba2f3bSAndroid Build Coastguard Workerpacket NfcFPollModeTechnologySpecificParameters { 609*7eba2f3bSAndroid Build Coastguard Worker bit_rate : 8, 610*7eba2f3bSAndroid Build Coastguard Worker _size_(sensf_res) : 8, 611*7eba2f3bSAndroid Build Coastguard Worker sensf_res : 8[], 612*7eba2f3bSAndroid Build Coastguard Worker} 613*7eba2f3bSAndroid Build Coastguard Worker 614*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 73: Specific Parameters for NFC-F Listen Mode 615*7eba2f3bSAndroid Build Coastguard Workerpacket NfcFListenModeTechnologySpecificParameters { 616*7eba2f3bSAndroid Build Coastguard Worker _size_(local_nfcid2) : 8, 617*7eba2f3bSAndroid Build Coastguard Worker local_nfcid2 : 8[], 618*7eba2f3bSAndroid Build Coastguard Worker} 619*7eba2f3bSAndroid Build Coastguard Worker 620*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 74: Specific Parameters for NFC-V Poll Mode 621*7eba2f3bSAndroid Build Coastguard Workerpacket NfcVPollModeTechnologySpecificParameters { 622*7eba2f3bSAndroid Build Coastguard Worker res_flag : 8, 623*7eba2f3bSAndroid Build Coastguard Worker dsfid : 8, 624*7eba2f3bSAndroid Build Coastguard Worker uid : 8[8], 625*7eba2f3bSAndroid Build Coastguard Worker} 626*7eba2f3bSAndroid Build Coastguard Worker 627*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 77: Control Messages to select a Discovered Target 628*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverSelectCommand : RfPacket (mt = COMMAND, oid = DISCOVER_SELECT) { 629*7eba2f3bSAndroid Build Coastguard Worker rf_discovery_id : RfDiscoveryId, 630*7eba2f3bSAndroid Build Coastguard Worker rf_protocol : RfProtocolType, 631*7eba2f3bSAndroid Build Coastguard Worker rf_interface : RfInterfaceType, 632*7eba2f3bSAndroid Build Coastguard Worker} 633*7eba2f3bSAndroid Build Coastguard Worker 634*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 77: Control Messages to select a Discovered Target 635*7eba2f3bSAndroid Build Coastguard Workerpacket RfDiscoverSelectResponse : RfPacket (mt = RESPONSE, oid = DISCOVER_SELECT) { 636*7eba2f3bSAndroid Build Coastguard Worker status : Status, 637*7eba2f3bSAndroid Build Coastguard Worker} 638*7eba2f3bSAndroid Build Coastguard Worker 639*7eba2f3bSAndroid Build Coastguard Workerenum BitRate : 8 { 640*7eba2f3bSAndroid Build Coastguard Worker BIT_RATE_106_KBIT_S = 0x00, 641*7eba2f3bSAndroid Build Coastguard Worker BIT_RATE_212_KBIT_S = 0x01, 642*7eba2f3bSAndroid Build Coastguard Worker BIT_RATE_424_KBIT_S = 0x02, 643*7eba2f3bSAndroid Build Coastguard Worker BIT_RATE_848_KBIT_S = 0x03, 644*7eba2f3bSAndroid Build Coastguard Worker BIT_RATE_1695_KBIT_S = 0x04, 645*7eba2f3bSAndroid Build Coastguard Worker BIT_RATE_3390_KBIT_S = 0x05, 646*7eba2f3bSAndroid Build Coastguard Worker BIT_RATE_6780_KBIT_S = 0x06, 647*7eba2f3bSAndroid Build Coastguard Worker BIT_RATE_26_KBIT_S = 0x20, 648*7eba2f3bSAndroid Build Coastguard Worker} 649*7eba2f3bSAndroid Build Coastguard Worker 650*7eba2f3bSAndroid Build Coastguard Workerpacket RfIntfActivatedNotification : RfPacket (mt = NOTIFICATION, oid = INTF_ACTIVATED) { 651*7eba2f3bSAndroid Build Coastguard Worker rf_discovery_id : RfDiscoveryId, 652*7eba2f3bSAndroid Build Coastguard Worker rf_interface : RfInterfaceType, 653*7eba2f3bSAndroid Build Coastguard Worker rf_protocol : RfProtocolType, 654*7eba2f3bSAndroid Build Coastguard Worker activation_rf_technology_and_mode : RfTechnologyAndMode, 655*7eba2f3bSAndroid Build Coastguard Worker max_data_packet_payload_size : 8, 656*7eba2f3bSAndroid Build Coastguard Worker initial_number_of_credits : 8, 657*7eba2f3bSAndroid Build Coastguard Worker _size_(rf_technology_specific_parameters) : 8, 658*7eba2f3bSAndroid Build Coastguard Worker rf_technology_specific_parameters : 8[], 659*7eba2f3bSAndroid Build Coastguard Worker data_exchange_rf_technology_and_mode : RfTechnologyAndMode, 660*7eba2f3bSAndroid Build Coastguard Worker data_exchange_transmit_bit_rate : BitRate, 661*7eba2f3bSAndroid Build Coastguard Worker data_exchange_receive_bit_rate : BitRate, 662*7eba2f3bSAndroid Build Coastguard Worker _size_(activation_parameters) : 8, 663*7eba2f3bSAndroid Build Coastguard Worker activation_parameters : 8[], 664*7eba2f3bSAndroid Build Coastguard Worker} 665*7eba2f3bSAndroid Build Coastguard Worker 666*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 95: Activation Parameters for NFC-A/ISO-DEP Poll Mode 667*7eba2f3bSAndroid Build Coastguard Workerpacket NfcAIsoDepPollModeActivationParameters { 668*7eba2f3bSAndroid Build Coastguard Worker _size_(rats_response) : 8, 669*7eba2f3bSAndroid Build Coastguard Worker rats_response : 8[], 670*7eba2f3bSAndroid Build Coastguard Worker} 671*7eba2f3bSAndroid Build Coastguard Worker 672*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 96: Activation Parameters for NFC-B/ISO-DEP Poll Mode 673*7eba2f3bSAndroid Build Coastguard Workerpacket NfcBIsoDepPollModeActivationParameters { 674*7eba2f3bSAndroid Build Coastguard Worker _size_(attrib_response) : 8, 675*7eba2f3bSAndroid Build Coastguard Worker attrib_response : 8[], 676*7eba2f3bSAndroid Build Coastguard Worker} 677*7eba2f3bSAndroid Build Coastguard Worker 678*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 98: Activation Parameters for NFC-A/ISO-DEP Listen Mode 679*7eba2f3bSAndroid Build Coastguard Workerpacket NfcAIsoDepListenModeActivationParameters { 680*7eba2f3bSAndroid Build Coastguard Worker param : 8, 681*7eba2f3bSAndroid Build Coastguard Worker} 682*7eba2f3bSAndroid Build Coastguard Worker 683*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 99: Activation Parameters for NFC-B/ISO-DEP Listen Mode 684*7eba2f3bSAndroid Build Coastguard Workerpacket NfcBIsoDepListenModeActivationParameters { 685*7eba2f3bSAndroid Build Coastguard Worker _size_(attrib_command) : 8, 686*7eba2f3bSAndroid Build Coastguard Worker attrib_command : 8[], 687*7eba2f3bSAndroid Build Coastguard Worker} 688*7eba2f3bSAndroid Build Coastguard Worker 689*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 102: Activation Parameters for NFC-DEP Poll Mode 690*7eba2f3bSAndroid Build Coastguard Workerpacket NfcDepPollModeActivationParameters { 691*7eba2f3bSAndroid Build Coastguard Worker _size_(atr_res) : 8, 692*7eba2f3bSAndroid Build Coastguard Worker atr_res : 8[], 693*7eba2f3bSAndroid Build Coastguard Worker data_exchange_length_reduction : 8, 694*7eba2f3bSAndroid Build Coastguard Worker} 695*7eba2f3bSAndroid Build Coastguard Worker 696*7eba2f3bSAndroid Build Coastguard Worker/// [NCI] Table 103: Activation Parameters for NFC-DEP Listen Mode 697*7eba2f3bSAndroid Build Coastguard Workerpacket NfcDepListenModeActivationParameters { 698*7eba2f3bSAndroid Build Coastguard Worker _size_(atr_req) : 8, 699*7eba2f3bSAndroid Build Coastguard Worker atr_req : 8[], 700*7eba2f3bSAndroid Build Coastguard Worker data_exchange_length_reduction : 8, 701*7eba2f3bSAndroid Build Coastguard Worker} 702*7eba2f3bSAndroid Build Coastguard Worker 703*7eba2f3bSAndroid Build Coastguard Workerenum DeactivationType : 8 { 704*7eba2f3bSAndroid Build Coastguard Worker IDLE_MODE = 0x00, 705*7eba2f3bSAndroid Build Coastguard Worker SLEEP_MODE = 0x01, 706*7eba2f3bSAndroid Build Coastguard Worker SLEEP_AF_MODE = 0x02, 707*7eba2f3bSAndroid Build Coastguard Worker DISCOVERY = 0x03, 708*7eba2f3bSAndroid Build Coastguard Worker} 709*7eba2f3bSAndroid Build Coastguard Worker 710*7eba2f3bSAndroid Build Coastguard Workerenum DeactivationReason : 8 { 711*7eba2f3bSAndroid Build Coastguard Worker DH_REQUEST = 0x00, 712*7eba2f3bSAndroid Build Coastguard Worker ENDPOINT_REQUEST = 0x01, 713*7eba2f3bSAndroid Build Coastguard Worker RF_LINK_LOSS = 0x02, 714*7eba2f3bSAndroid Build Coastguard Worker NFC_B_BAD_AFI = 0x03, 715*7eba2f3bSAndroid Build Coastguard Worker DH_REQUEST_FAILED = 0x04, 716*7eba2f3bSAndroid Build Coastguard Worker} 717*7eba2f3bSAndroid Build Coastguard Worker 718*7eba2f3bSAndroid Build Coastguard Workerpacket RfDeactivateCommand : RfPacket (mt = COMMAND, oid = DEACTIVATE) { 719*7eba2f3bSAndroid Build Coastguard Worker deactivation_type : DeactivationType, 720*7eba2f3bSAndroid Build Coastguard Worker} 721*7eba2f3bSAndroid Build Coastguard Worker 722*7eba2f3bSAndroid Build Coastguard Workerpacket RfDeactivateResponse : RfPacket (mt = RESPONSE, oid = DEACTIVATE) { 723*7eba2f3bSAndroid Build Coastguard Worker status : Status, 724*7eba2f3bSAndroid Build Coastguard Worker} 725*7eba2f3bSAndroid Build Coastguard Worker 726*7eba2f3bSAndroid Build Coastguard Workerpacket RfDeactivateNotification : RfPacket (mt = NOTIFICATION, oid = DEACTIVATE) { 727*7eba2f3bSAndroid Build Coastguard Worker deactivation_type : DeactivationType, 728*7eba2f3bSAndroid Build Coastguard Worker deactivation_reason : DeactivationReason, 729*7eba2f3bSAndroid Build Coastguard Worker} 730*7eba2f3bSAndroid Build Coastguard Worker 731*7eba2f3bSAndroid Build Coastguard Workerenum RfFieldStatus : 8 { 732*7eba2f3bSAndroid Build Coastguard Worker NO_FIELD_DETECTED = 0, 733*7eba2f3bSAndroid Build Coastguard Worker FIELD_DETECTED = 1, 734*7eba2f3bSAndroid Build Coastguard Worker} 735*7eba2f3bSAndroid Build Coastguard Worker 736*7eba2f3bSAndroid Build Coastguard Workerpacket RfFieldInfoNotification : RfPacket (mt = NOTIFICATION, oid = FIELD_INFO) { 737*7eba2f3bSAndroid Build Coastguard Worker rf_field_status: RfFieldStatus, 738*7eba2f3bSAndroid Build Coastguard Worker} 739*7eba2f3bSAndroid Build Coastguard Worker 740*7eba2f3bSAndroid Build Coastguard Worker 741*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 85: TLV Coding for RF Discovery Request from NFCEE 742*7eba2f3bSAndroid Build Coastguard Workerenum InformationEntryType : 8 { 743*7eba2f3bSAndroid Build Coastguard Worker ADD_DISCOVERY_REQUEST = 0x00, 744*7eba2f3bSAndroid Build Coastguard Worker REMOVE_DISCOVERY_REQUEST = 0x01, 745*7eba2f3bSAndroid Build Coastguard Worker} 746*7eba2f3bSAndroid Build Coastguard Worker 747*7eba2f3bSAndroid Build Coastguard Workerstruct InformationEntry { 748*7eba2f3bSAndroid Build Coastguard Worker type : InformationEntryType, 749*7eba2f3bSAndroid Build Coastguard Worker _fixed_ = 3 : 8, 750*7eba2f3bSAndroid Build Coastguard Worker nfcee_id : NfceeId, 751*7eba2f3bSAndroid Build Coastguard Worker rf_technology_and_mode : RfTechnologyAndMode, 752*7eba2f3bSAndroid Build Coastguard Worker rf_protocol : RfProtocolType, 753*7eba2f3bSAndroid Build Coastguard Worker} 754*7eba2f3bSAndroid Build Coastguard Worker 755*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 84: Notification for RF Discovery Request from NFCEE 756*7eba2f3bSAndroid Build Coastguard Workerpacket RfNfceeDiscoveryReqNotification : RfPacket (mt = NOTIFICATION, oid = NFCEE_DISCOVERY_REQ) { 757*7eba2f3bSAndroid Build Coastguard Worker _count_ (information_entries) : 8, 758*7eba2f3bSAndroid Build Coastguard Worker information_entries : InformationEntry[], 759*7eba2f3bSAndroid Build Coastguard Worker} 760*7eba2f3bSAndroid Build Coastguard Worker 761*7eba2f3bSAndroid Build Coastguard Workerpacket NfceePacket : ControlPacket (gid = NFCEE_MANAGEMENT) { 762*7eba2f3bSAndroid Build Coastguard Worker oid : NfceeOpcodeId, 763*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 2, 764*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 8, 765*7eba2f3bSAndroid Build Coastguard Worker _payload_, 766*7eba2f3bSAndroid Build Coastguard Worker} 767*7eba2f3bSAndroid Build Coastguard Worker 768*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeDiscoverCommand : NfceePacket (mt = COMMAND, oid = DISCOVER) { 769*7eba2f3bSAndroid Build Coastguard Worker} 770*7eba2f3bSAndroid Build Coastguard Worker 771*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeDiscoverResponse : NfceePacket (mt = RESPONSE, oid = DISCOVER) { 772*7eba2f3bSAndroid Build Coastguard Worker status : Status, 773*7eba2f3bSAndroid Build Coastguard Worker number_of_nfcees : 8, 774*7eba2f3bSAndroid Build Coastguard Worker} 775*7eba2f3bSAndroid Build Coastguard Worker 776*7eba2f3bSAndroid Build Coastguard Workerenum NfceeStatus : 8 { 777*7eba2f3bSAndroid Build Coastguard Worker ENABLED = 0x00, 778*7eba2f3bSAndroid Build Coastguard Worker DISABLED = 0x01, 779*7eba2f3bSAndroid Build Coastguard Worker UNRESPONSIVE = 0x02, 780*7eba2f3bSAndroid Build Coastguard Worker} 781*7eba2f3bSAndroid Build Coastguard Worker 782*7eba2f3bSAndroid Build Coastguard Worker// [NCI] Table 118: TLV Coding for NFCEE Discovery 783*7eba2f3bSAndroid Build Coastguard Workerenum NfceeInformationType : 8 { 784*7eba2f3bSAndroid Build Coastguard Worker HARDWARE_IDENTIFICATION = 0x00, 785*7eba2f3bSAndroid Build Coastguard Worker ATR_BYTES = 0x01, 786*7eba2f3bSAndroid Build Coastguard Worker T3T_COMMAND_SET_INTERFACE_SUPPLEMENTARY_INFORMATION = 0x02, 787*7eba2f3bSAndroid Build Coastguard Worker HOST_ID = 0x03, 788*7eba2f3bSAndroid Build Coastguard Worker NDEF_STORAGE = 0x04, 789*7eba2f3bSAndroid Build Coastguard Worker} 790*7eba2f3bSAndroid Build Coastguard Worker 791*7eba2f3bSAndroid Build Coastguard Workerstruct NfceeInformation { 792*7eba2f3bSAndroid Build Coastguard Worker type : NfceeInformationType, 793*7eba2f3bSAndroid Build Coastguard Worker _size_(value) : 8, 794*7eba2f3bSAndroid Build Coastguard Worker value : 8[], 795*7eba2f3bSAndroid Build Coastguard Worker} 796*7eba2f3bSAndroid Build Coastguard Worker 797*7eba2f3bSAndroid Build Coastguard Workerenum NfceeSupplyPower : 8 { 798*7eba2f3bSAndroid Build Coastguard Worker NFCC_HAS_NO_CONTROL = 0x00, 799*7eba2f3bSAndroid Build Coastguard Worker NFCC_HAS_CONTROL = 0x01, 800*7eba2f3bSAndroid Build Coastguard Worker} 801*7eba2f3bSAndroid Build Coastguard Worker 802*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeDiscoverNotification : NfceePacket (mt = NOTIFICATION, oid = DISCOVER) { 803*7eba2f3bSAndroid Build Coastguard Worker nfcee_id : NfceeId, 804*7eba2f3bSAndroid Build Coastguard Worker nfcee_status : NfceeStatus, 805*7eba2f3bSAndroid Build Coastguard Worker _count_(supported_nfcee_protocols) : 8, 806*7eba2f3bSAndroid Build Coastguard Worker supported_nfcee_protocols : NfceeProtocolType[], 807*7eba2f3bSAndroid Build Coastguard Worker _count_(nfcee_information) : 8, 808*7eba2f3bSAndroid Build Coastguard Worker nfcee_information : NfceeInformation[], 809*7eba2f3bSAndroid Build Coastguard Worker nfcee_supply_power : NfceeSupplyPower, 810*7eba2f3bSAndroid Build Coastguard Worker} 811*7eba2f3bSAndroid Build Coastguard Worker 812*7eba2f3bSAndroid Build Coastguard Workerenum NfceeMode : 8 { 813*7eba2f3bSAndroid Build Coastguard Worker DISABLE = 0x00, 814*7eba2f3bSAndroid Build Coastguard Worker ENABLE = 0x01, 815*7eba2f3bSAndroid Build Coastguard Worker} 816*7eba2f3bSAndroid Build Coastguard Worker 817*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeModeSetCommand : NfceePacket (mt = COMMAND, oid = MODE_SET) { 818*7eba2f3bSAndroid Build Coastguard Worker nfcee_id : NfceeId, 819*7eba2f3bSAndroid Build Coastguard Worker nfcee_mode : NfceeMode, 820*7eba2f3bSAndroid Build Coastguard Worker} 821*7eba2f3bSAndroid Build Coastguard Worker 822*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeModeSetResponse : NfceePacket (mt = RESPONSE, oid = MODE_SET) { 823*7eba2f3bSAndroid Build Coastguard Worker status : Status, 824*7eba2f3bSAndroid Build Coastguard Worker} 825*7eba2f3bSAndroid Build Coastguard Worker 826*7eba2f3bSAndroid Build Coastguard Workerpacket NfceeModeSetNotification : NfceePacket (mt = NOTIFICATION, oid = MODE_SET) { 827*7eba2f3bSAndroid Build Coastguard Worker status : Status, 828*7eba2f3bSAndroid Build Coastguard Worker} 829*7eba2f3bSAndroid Build Coastguard Worker 830*7eba2f3bSAndroid Build Coastguard Workerpacket ProprietaryPacket : ControlPacket (gid = PROPRIETARY) { 831*7eba2f3bSAndroid Build Coastguard Worker oid : ProprietaryOpcodeId, 832*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 2, 833*7eba2f3bSAndroid Build Coastguard Worker _reserved_ : 8, 834*7eba2f3bSAndroid Build Coastguard Worker _payload_, 835*7eba2f3bSAndroid Build Coastguard Worker} 836*7eba2f3bSAndroid Build Coastguard Worker 837*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidPacket : ProprietaryPacket (oid = ANDROID) { 838*7eba2f3bSAndroid Build Coastguard Worker android_sub_oid: AndroidSubOpcodeId, 839*7eba2f3bSAndroid Build Coastguard Worker _payload_, 840*7eba2f3bSAndroid Build Coastguard Worker} 841*7eba2f3bSAndroid Build Coastguard Worker 842*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidGetCapsCommand : AndroidPacket (mt = COMMAND, android_sub_oid = GET_CAPS) { 843*7eba2f3bSAndroid Build Coastguard Worker} 844*7eba2f3bSAndroid Build Coastguard Worker 845*7eba2f3bSAndroid Build Coastguard Workerenum CapTlvType: 8 { 846*7eba2f3bSAndroid Build Coastguard Worker PASSIVE_OBSERVER_MODE = 0x00, 847*7eba2f3bSAndroid Build Coastguard Worker POLLING_FRAME_NOTIFICATION = 0x01, 848*7eba2f3bSAndroid Build Coastguard Worker POWER_SAVING_MODE = 0x02, 849*7eba2f3bSAndroid Build Coastguard Worker} 850*7eba2f3bSAndroid Build Coastguard Worker 851*7eba2f3bSAndroid Build Coastguard Workerstruct CapTlv { 852*7eba2f3bSAndroid Build Coastguard Worker t: CapTlvType, 853*7eba2f3bSAndroid Build Coastguard Worker _count_(v): 8, 854*7eba2f3bSAndroid Build Coastguard Worker v: 8[], 855*7eba2f3bSAndroid Build Coastguard Worker} 856*7eba2f3bSAndroid Build Coastguard Worker 857*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidGetCapsResponse : AndroidPacket (mt = RESPONSE, android_sub_oid = GET_CAPS) { 858*7eba2f3bSAndroid Build Coastguard Worker status: Status, 859*7eba2f3bSAndroid Build Coastguard Worker android_version: 16, 860*7eba2f3bSAndroid Build Coastguard Worker _count_(tlvs): 8, 861*7eba2f3bSAndroid Build Coastguard Worker tlvs: CapTlv[], 862*7eba2f3bSAndroid Build Coastguard Worker} 863*7eba2f3bSAndroid Build Coastguard Worker 864*7eba2f3bSAndroid Build Coastguard Workerenum PassiveObserveMode : 8 { 865*7eba2f3bSAndroid Build Coastguard Worker DISABLE = 0x0, 866*7eba2f3bSAndroid Build Coastguard Worker ENABLE = 0x1, 867*7eba2f3bSAndroid Build Coastguard Worker} 868*7eba2f3bSAndroid Build Coastguard Worker 869*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidPassiveObserveModeCommand : AndroidPacket(mt = COMMAND, android_sub_oid = PASSIVE_OBSERVE_MODE) { 870*7eba2f3bSAndroid Build Coastguard Worker passive_observe_mode: PassiveObserveMode, 871*7eba2f3bSAndroid Build Coastguard Worker} 872*7eba2f3bSAndroid Build Coastguard Worker 873*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidPassiveObserveModeResponse : AndroidPacket(mt = RESPONSE, android_sub_oid = PASSIVE_OBSERVE_MODE) { 874*7eba2f3bSAndroid Build Coastguard Worker status: Status, 875*7eba2f3bSAndroid Build Coastguard Worker} 876*7eba2f3bSAndroid Build Coastguard Worker 877*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidQueryPassiveObserveModeCommand : AndroidPacket(mt = COMMAND, android_sub_oid = QUERY_PASSIVE_OBSERVE_MODE) { 878*7eba2f3bSAndroid Build Coastguard Worker} 879*7eba2f3bSAndroid Build Coastguard Worker 880*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidQueryPassiveObserveModeResponse : AndroidPacket(mt = RESPONSE, android_sub_oid = QUERY_PASSIVE_OBSERVE_MODE) { 881*7eba2f3bSAndroid Build Coastguard Worker status: Status, 882*7eba2f3bSAndroid Build Coastguard Worker passive_observe_mode: PassiveObserveMode, 883*7eba2f3bSAndroid Build Coastguard Worker} 884*7eba2f3bSAndroid Build Coastguard Worker 885*7eba2f3bSAndroid Build Coastguard Workerenum PollingFrameType : 8 { 886*7eba2f3bSAndroid Build Coastguard Worker REMOTE_FIELD = 0x0, 887*7eba2f3bSAndroid Build Coastguard Worker REQA = 0x1, 888*7eba2f3bSAndroid Build Coastguard Worker REQB = 0x2, 889*7eba2f3bSAndroid Build Coastguard Worker REQF = 0x3, 890*7eba2f3bSAndroid Build Coastguard Worker WUPA = 0x4, 891*7eba2f3bSAndroid Build Coastguard Worker WUPB = 0x5, 892*7eba2f3bSAndroid Build Coastguard Worker WUPF = 0x6, 893*7eba2f3bSAndroid Build Coastguard Worker UNKNOWN = 0x7, 894*7eba2f3bSAndroid Build Coastguard Worker REQV = 0x8, 895*7eba2f3bSAndroid Build Coastguard Worker WUPV = 0x9, 896*7eba2f3bSAndroid Build Coastguard Worker} 897*7eba2f3bSAndroid Build Coastguard Worker 898*7eba2f3bSAndroid Build Coastguard Workerstruct PollingFrame { 899*7eba2f3bSAndroid Build Coastguard Worker frame_type: PollingFrameType, 900*7eba2f3bSAndroid Build Coastguard Worker flags: 8, 901*7eba2f3bSAndroid Build Coastguard Worker _size_(_payload_): 8, 902*7eba2f3bSAndroid Build Coastguard Worker // The timestamp is encoded in big-endian byte order, 903*7eba2f3bSAndroid Build Coastguard Worker // whereas other NCI definitions are little-endian. 904*7eba2f3bSAndroid Build Coastguard Worker timestamp: 8[4], 905*7eba2f3bSAndroid Build Coastguard Worker gain: 8, 906*7eba2f3bSAndroid Build Coastguard Worker _payload_: [+5], 907*7eba2f3bSAndroid Build Coastguard Worker} 908*7eba2f3bSAndroid Build Coastguard Worker 909*7eba2f3bSAndroid Build Coastguard Workerpacket AndroidPollingLoopNotification : AndroidPacket(mt = NOTIFICATION, android_sub_oid = POLLING_FRAME) { 910*7eba2f3bSAndroid Build Coastguard Worker polling_frames: PollingFrame[], 911*7eba2f3bSAndroid Build Coastguard Worker} 912