/*
* Copyright (C) 2015 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.
*/
/*
* NFC Status Values - Function Return Codes
*/
#ifndef PHNFCSTATUS_H
#define PHNFCSTATUS_H
#include <phNfcTypes.h>
/* Internally required by PHNFCSTVAL. */
#define PHNFCSTSHL8 (8U)
/* Required by PHNFCSTVAL. */
#define PHNFCSTBLOWER ((NFCSTATUS)(0x00FFU))
/*
* NFC Status Composition Macro
*
* This is the macro which must be used to compose status values.
*
* phNfcCompID Component ID, as defined in phNfcCompId.h .
* phNfcStatus Status values, as defined in phNfcStatus.h .
*
* The macro is not required for the NFCSTATUS_SUCCESS value.
* This is the only return value to be used directly.
* For all other values it shall be used in assignment and conditional statements, e.g.:
* NFCSTATUS status = PHNFCSTVAL(phNfcCompID, phNfcStatus); ...
* if (status == PHNFCSTVAL(phNfcCompID, phNfcStatus)) ...
*/
#define PHNFCSTVAL(phNfcCompID, phNfcStatus) \
( ((phNfcStatus) == (NFCSTATUS_SUCCESS)) ? (NFCSTATUS_SUCCESS) : \
( (((NFCSTATUS)(phNfcStatus)) & (PHNFCSTBLOWER)) | \
(((uint16_t)(phNfcCompID)) << (PHNFCSTSHL8)) ) )
/*
* PHNFCSTATUS
* Get grp_retval from Status Code
*/
#define PHNFCSTATUS(phNfcStatus) ((phNfcStatus) & 0x00FFU)
#define PHNFCCID(phNfcStatus) (((phNfcStatus) & 0xFF00U)>>8)
/*
* Status Codes
*
* Generic Status codes for the NFC components. Combined with the Component ID
* they build the value (status) returned by each function.
* Example:
* grp_comp_id "Component ID" - e.g. 0x10, plus
* status code as listed in this file - e.g. 0x03
* result in a status value of 0x0003.
*/
/*
* The function indicates successful completion
*/
#define NFCSTATUS_SUCCESS (0x0000)
/*
* The function indicates successful completion
*/
#define NFCSTATUS_OK (NFCSTATUS_SUCCESS)
/*
* At least one parameter could not be properly interpreted
*/
#define NFCSTATUS_INVALID_PARAMETER (0x0001)
/*
* The buffer provided by the caller is too small
*/
#define NFCSTATUS_BUFFER_TOO_SMALL (0x0003)
/*
* Device specifier/handle value is invalid for the operation
*/
#define NFCSTATUS_INVALID_DEVICE (0x0006)
/*
* The function executed successfully but could have returned
* more information than space provided by the caller
*/
#define NFCSTATUS_MORE_INFORMATION (0x0008)
/*
* No response from the remote device received: Time-out
*/
#define NFCSTATUS_RF_TIMEOUT (0x0009)
/*
* RF Error during data transaction with the remote device
*/
#define NFCSTATUS_RF_ERROR (0x000A)
/*
* Not enough resources Memory, Timer etc(e.g. allocation failed.)
*/
#define NFCSTATUS_INSUFFICIENT_RESOURCES (0x000C)
/*
* A non-blocking function returns this immediately to indicate
* that an internal operation is in progress
*/
#define NFCSTATUS_PENDING (0x000D)
/*
* A board communication error occurred
* (e.g. Configuration went wrong)
*/
#define NFCSTATUS_BOARD_COMMUNICATION_ERROR (0x000F)
/*
* Invalid State of the particular state machine
*/
#define NFCSTATUS_INVALID_STATE (0x0011)
/*
* This Layer is Not initialized, hence initialization required.
*/
#define NFCSTATUS_NOT_INITIALISED (0x0031)
/*
* The Layer is already initialized, hence initialization repeated.
*/
#define NFCSTATUS_ALREADY_INITIALISED (0x0032)
/*
* Feature not supported
*/
#define NFCSTATUS_FEATURE_NOT_SUPPORTED (0x0033)
/* The Unregistration command has failed because the user wants to unregister on
* an element for which he was not registered
*/
#define NFCSTATUS_NOT_REGISTERED (0x0034)
/* The Registration command has failed because the user wants to register on
* an element for which he is already registered
*/
#define NFCSTATUS_ALREADY_REGISTERED (0x0035)
/* Single Tag with Multiple
Protocol support detected */
#define NFCSTATUS_MULTIPLE_PROTOCOLS (0x0036)
/*
* Feature not supported
*/
#define NFCSTATUS_MULTIPLE_TAGS (0x0037)
/*
* A DESELECT event has occurred
*/
#define NFCSTATUS_DESELECTED (0x0038)
/*
* A RELEASE event has occurred
*/
#define NFCSTATUS_RELEASED (0x0039)
/*
* The operation is currently not possible or not allowed
*/
#define NFCSTATUS_NOT_ALLOWED (0x003A)
/*
* The system is busy with the previous operation.
*/
#define NFCSTATUS_BUSY (0x006F)
/* NDEF Mapping error codes */
/* The remote device (type) is not valid for this request. */
#define NFCSTATUS_INVALID_REMOTE_DEVICE (0x001D)
/* Read operation failed */
#define NFCSTATUS_READ_FAILED (0x0014)
/*
* Write operation failed
*/
#define NFCSTATUS_WRITE_FAILED (0x0015)
/* Non Ndef Compliant */
#define NFCSTATUS_NO_NDEF_SUPPORT (0x0016)
/* Could not proceed further with the write operation: reached card EOF*/
#define NFCSTATUS_EOF_NDEF_CONTAINER_REACHED (0x001A)
/* Incorrect number of bytes received from the card*/
#define NFCSTATUS_INVALID_RECEIVE_LENGTH (0x001B)
/* The data format/composition is not understood/correct. */
#define NFCSTATUS_INVALID_FORMAT (0x001C)
/* There is not sufficient storage available. */
#define NFCSTATUS_INSUFFICIENT_STORAGE (0x001F)
/* The Ndef Format procedure has failed. */
#define NFCSTATUS_FORMAT_ERROR (0x0023)
/* The NCI Cedit error */
#define NFCSTATUS_CREDIT_TIMEOUT (0x0024)
/*
* Response Time out for the control message(NFCC not responded)
*/
#define NFCSTATUS_RESPONSE_TIMEOUT (0x0025)
/*
* Device is already connected
*/
#define NFCSTATUS_ALREADY_CONNECTED (0x0026)
/*
* Device is already connected
*/
#define NFCSTATUS_ANOTHER_DEVICE_CONNECTED (0x0027)
/*
* Single Target Detected and Activated
*/
#define NFCSTATUS_SINGLE_TAG_ACTIVATED (0x0028)
/*
* Single Target Detected
*/
#define NFCSTATUS_SINGLE_TAG_DISCOVERED (0x0029)
/*
* Secure element Detected and Activated
*/
#define NFCSTATUS_SECURE_ELEMENT_ACTIVATED (0x0028)
/*
* Unknown error Status Codes
*/
#define NFCSTATUS_UNKNOWN_ERROR (0x00FE)
/*
* Status code for failure
*/
#define NFCSTATUS_FAILED (0x00FF)
/*
* The function/command has been aborted
*/
#define NFCSTATUS_CMD_ABORTED (0x0002)
/*
* No target found after poll
*/
#define NFCSTATUS_NO_TARGET_FOUND (0x000A)
/* Attempt to disconnect a not connected remote device. */
#define NFCSTATUS_NO_DEVICE_CONNECTED (0x000B)
/* External RF field detected. */
#define NFCSTATUS_EXTERNAL_RF_DETECTED (0x000E)
/* Message is not allowed by the state machine
* (e.g. configuration went wrong)
*/
#define NFCSTATUS_MSG_NOT_ALLOWED_BY_FSM (0x0010)
/*
* No access has been granted
*/
#define NFCSTATUS_ACCESS_DENIED (0x001E)
/* No registry node matches the specified input data. */
#define NFCSTATUS_NODE_NOT_FOUND (0x0017)
/* The current module is busy ; one might retry later */
#define NFCSTATUS_SMX_BAD_STATE (0x00F0)
/* The Abort mechanism has failed for unexpected reason: user can try again*/
#define NFCSTATUS_ABORT_FAILED (0x00F2)
/* The Registration command has failed because the user wants to register as target
* on a operating mode not supported
*/
#define NFCSTATUS_REG_OPMODE_NOT_SUPPORTED (0x00F5)
/*
* Shutdown in progress, cannot handle the request at this time.
*/
#define NFCSTATUS_SHUTDOWN (0x0091)
/*
* Target is no more in RF field
*/
#define NFCSTATUS_TARGET_LOST (0x0092)
/*
* Request is rejected
*/
#define NFCSTATUS_REJECTED (0x0093)
/*
* Target is not connected
*/
#define NFCSTATUS_TARGET_NOT_CONNECTED (0x0094)
/*
* Invalid handle for the operation
*/
#define NFCSTATUS_INVALID_HANDLE (0x0095)
/*
* Process aborted
*/
#define NFCSTATUS_ABORTED (0x0096)
/*
* Requested command is not supported
*/
#define NFCSTATUS_COMMAND_NOT_SUPPORTED (0x0097)
/*
* Tag is not NDEF compliant
*/
#define NFCSTATUS_NON_NDEF_COMPLIANT (0x0098)
/*
* Not enough memory available to complete the requested operation
*/
#define NFCSTATUS_NOT_ENOUGH_MEMORY (0x001F)
/*
* Indicates incoming connection
*/
#define NFCSTATUS_INCOMING_CONNECTION (0x0045)
/*
* Indicates Connection was successful
*/
#define NFCSTATUS_CONNECTION_SUCCESS (0x0046)
/*
* Indicates Connection failed
*/
#define NFCSTATUS_CONNECTION_FAILED (0x0047)
#endif /* PHNFCSTATUS_H */