You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
413 lines
9.2 KiB
413 lines
9.2 KiB
/*
|
|
* Copyright (C) 2010-2014 NXP Semiconductors
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
/*
|
|
* ESE Status Values - Function Return Codes
|
|
*/
|
|
|
|
#ifndef PHESESTATUS_H
|
|
#define PHESESTATUS_H
|
|
|
|
#include <phEseTypes.h>
|
|
|
|
/* Internally required by PHESESTVAL. */
|
|
#define PHESESTSHL8 (8U)
|
|
/* Required by PHESESTVAL. */
|
|
#define PHESESTBLOWER ((ESESTATUS)(0x00FFU))
|
|
|
|
/*
|
|
* ESE Status Composition Macro
|
|
*
|
|
* This is the macro which must be used to compose status values.
|
|
*
|
|
* phEseCompID Component ID, as defined in phEseCompId.h .
|
|
* phEseStatus Status values, as defined in phEseStatus.h .
|
|
*
|
|
* The macro is not required for the ESESTATUS_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.:
|
|
* ESESTATUS status = PHESESTVAL(phEseCompID, phEseStatus); ...
|
|
* if (status == PHESESTVAL(phEseCompID, phEseStatus)) ...
|
|
*/
|
|
#define PHESESTVAL(phEseCompID, phEseStatus) \
|
|
(((phEseStatus) == (ESESTATUS_SUCCESS)) \
|
|
? (ESESTATUS_SUCCESS) \
|
|
: ((((ESESTATUS)(phEseStatus)) & (PHESESTBLOWER)) | \
|
|
(((uint16_t)(phEseCompID)) << (PHESESTSHL8))))
|
|
|
|
/*
|
|
* PHESESTATUS
|
|
* Get grp_retval from Status Code
|
|
*/
|
|
#define PHESESTATUS(phEseStatus) ((phEseStatus)&0x00FFU)
|
|
#define PHESECID(phEseStatus) (((phEseStatus)&0xFF00U) >> 8)
|
|
|
|
/*
|
|
* Status Codes
|
|
*
|
|
* Generic Status codes for the ESE 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 ESESTATUS_SUCCESS (0x0000)
|
|
|
|
/*
|
|
* The function indicates successful completion
|
|
*/
|
|
#define ESESTATUS_OK (ESESTATUS_SUCCESS)
|
|
|
|
/*
|
|
* At least one parameter could not be properly interpreted
|
|
*/
|
|
#define ESESTATUS_INVALID_PARAMETER (0x0001)
|
|
|
|
/*
|
|
* Invalid buffer provided by application
|
|
* */
|
|
#define ESESTATUS_INVALID_BUFFER (0x0002)
|
|
|
|
/*
|
|
* The buffer provided by the caller is too small
|
|
*/
|
|
#define ESESTATUS_BUFFER_TOO_SMALL (0x0003)
|
|
|
|
/*
|
|
* Invalid class byte provided by application
|
|
* */
|
|
#define ESESTATUS_INVALID_CLA (0x0004)
|
|
|
|
/*
|
|
* Invalid command pdu type provided by application
|
|
* */
|
|
#define ESESTATUS_INVALID_CPDU_TYPE (0x0005)
|
|
|
|
/*
|
|
* Invalid command LE type provided by application
|
|
* */
|
|
#define ESESTATUS_INVALID_LE_TYPE (0x0007)
|
|
|
|
/*
|
|
* Device specifier/handle value is invalid for the operation
|
|
*/
|
|
#define ESESTATUS_INVALID_DEVICE (0x0006)
|
|
|
|
/*
|
|
* The function executed successfully but could have returned
|
|
* more information than space provided by the caller
|
|
*/
|
|
#define ESESTATUS_MORE_FRAME (0x0008)
|
|
|
|
/*
|
|
* No response from the remote device received: Time-out
|
|
*/
|
|
#define ESESTATUS_LAST_FRAME (0x0009)
|
|
|
|
/*
|
|
* CRC Error during data transaction with the device
|
|
*/
|
|
#define ESESTATUS_CRC_ERROR (0x000A)
|
|
|
|
/*
|
|
* SOF Error during data transaction with the device
|
|
*/
|
|
#define ESESTATUS_SOF_ERROR (0x000B)
|
|
|
|
/*
|
|
* Not enough resources Memory, Timer etc(e.g. allocation failed.)
|
|
*/
|
|
#define ESESTATUS_INSUFFICIENT_RESOURCES (0x000C)
|
|
|
|
/*
|
|
* A non-blocking function returns this immediately to indicate
|
|
* that an internal operation is in progress
|
|
*/
|
|
#define ESESTATUS_PENDING (0x000D)
|
|
|
|
/*
|
|
* A board communication error occurred
|
|
* (e.g. Configuration went wrong)
|
|
*/
|
|
#define ESESTATUS_BOARD_COMMUNICATION_ERROR (0x000F)
|
|
|
|
/*
|
|
* Invalid State of the particular state machine
|
|
*/
|
|
#define ESESTATUS_INVALID_STATE (0x0011)
|
|
|
|
/*
|
|
* This Layer is Not initialized, hence initialization required.
|
|
*/
|
|
#define ESESTATUS_NOT_INITIALISED (0x0031)
|
|
|
|
/*
|
|
* The Layer is already initialized, hence initialization repeated.
|
|
*/
|
|
#define ESESTATUS_ALREADY_INITIALISED (0x0032)
|
|
|
|
/*
|
|
* Feature not supported
|
|
*/
|
|
#define ESESTATUS_FEATURE_NOT_SUPPORTED (0x0033)
|
|
|
|
/*
|
|
*/
|
|
#define ESESTATUS_PARITY_ERROR (0x0034)
|
|
|
|
/* The Registration command has failed because the user wants to register on
|
|
* an element for which he is already registered
|
|
*/
|
|
#define ESESTATUS_ALREADY_REGISTERED (0x0035)
|
|
|
|
/* Chained frame is being sent */
|
|
#define ESESTATUS_CHAINED_FRAME (0x0036)
|
|
|
|
/*
|
|
* Single frame is sent
|
|
*/
|
|
#define ESESTATUS_SINGLE_FRAME (0x0037)
|
|
|
|
/*
|
|
* A DESELECT event has occurred
|
|
*/
|
|
#define ESESTATUS_DESELECTED (0x0038)
|
|
|
|
/*
|
|
* A RELEASE event has occurred
|
|
*/
|
|
#define ESESTATUS_RELEASED (0x0039)
|
|
|
|
/*
|
|
* The operation is currently not possible or not allowed
|
|
*/
|
|
#define ESESTATUS_NOT_ALLOWED (0x003A)
|
|
|
|
/*
|
|
* Other indicaated error sent by JCOP.
|
|
*/
|
|
#define ESESTATUS_OTHER_ERROR (0x003C)
|
|
/*
|
|
* The system is busy with the firmware download operation.
|
|
*/
|
|
#define ESESTATUS_DWNLD_BUSY (0x006E)
|
|
|
|
/*
|
|
* The system is busy with the previous operation.
|
|
*/
|
|
#define ESESTATUS_BUSY (0x006F)
|
|
|
|
/* NDEF Mapping error codes */
|
|
|
|
/* The remote device (type) is not valid for this request. */
|
|
#define ESESTATUS_INVALID_REMOTE_DEVICE (0x001D)
|
|
|
|
/* Read operation failed */
|
|
#define ESESTATUS_READ_FAILED (0x0014)
|
|
|
|
/*
|
|
* Write operation failed
|
|
*/
|
|
#define ESESTATUS_WRITE_FAILED (0x0015)
|
|
|
|
/* Non Ndef Compliant */
|
|
#define ESESTATUS_NO_NDEF_SUPPORT (0x0016)
|
|
|
|
/* resend the frame with seq_counter 0*/
|
|
#define ESESTATUS_RESET_SEQ_COUNTER_FRAME_RESEND (0x001A)
|
|
|
|
/* Incorrect number of bytes received from the card*/
|
|
#define ESESTATUS_INVALID_RECEIVE_LENGTH (0x001B)
|
|
|
|
/* The data format/composition is not understood/correct. */
|
|
#define ESESTATUS_INVALID_FORMAT (0x001C)
|
|
|
|
/* There is not sufficient storage available. */
|
|
#define ESESTATUS_INSUFFICIENT_STORAGE (0x001F)
|
|
|
|
/* The last command would be re-sent */
|
|
#define ESESTATUS_FRAME_RESEND (0x0023)
|
|
|
|
/* The write timeout error */
|
|
#define ESESTATUS_WRITE_TIMEOUT (0x0024)
|
|
|
|
/*
|
|
* Response Time out for the control message(ESEC not responded)
|
|
*/
|
|
#define ESESTATUS_RESPONSE_TIMEOUT (0x0025)
|
|
|
|
/*
|
|
* Resend the last R Frame
|
|
*/
|
|
#define ESESTATUS_FRAME_RESEND_R_FRAME (0x0026)
|
|
|
|
/*
|
|
* Send next chained frame
|
|
*/
|
|
#define ESESTATUS_SEND_NEXT_FRAME (0x0027)
|
|
|
|
/*
|
|
* Protocol revovery started
|
|
*/
|
|
#define ESESTATUS_REVOCERY_STARTED (0x0028)
|
|
|
|
/*
|
|
* Single Target Detected
|
|
*/
|
|
#define ESESTATUS_SEND_R_FRAME (0x0029)
|
|
|
|
/*
|
|
* Resend the RNAK
|
|
*/
|
|
|
|
#define ESESTATUS_FRAME_RESEND_RNAK (0x0030)
|
|
|
|
/*
|
|
* Resend the last R Frame
|
|
*/
|
|
#define ESESTATUS_FRAME_SEND_R_FRAME (0x003B)
|
|
|
|
/*
|
|
* Unknown error Status Codes
|
|
*/
|
|
#define ESESTATUS_UNKNOWN_ERROR (0x00FE)
|
|
|
|
/*
|
|
* Status code for failure
|
|
*/
|
|
#define ESESTATUS_FAILED (0x00FF)
|
|
|
|
/*
|
|
* The function/command has been aborted
|
|
*/
|
|
#define ESESTATUS_CMD_ABORTED (0x0002)
|
|
|
|
/*
|
|
* No target found after poll
|
|
*/
|
|
#define ESESTATUS_NO_TARGET_FOUND (0x000A)
|
|
|
|
/* Attempt to disconnect a not connected remote device. */
|
|
#define ESESTATUS_NO_DEVICE_CONNECTED (0x000B)
|
|
|
|
/* requesting a resynchronization */
|
|
#define ESESTATUS_RESYNCH_REQ (0x000E)
|
|
|
|
/*
|
|
* acknowledging resynchronization
|
|
*/
|
|
#define ESESTATUS_RESYNCH_RES (0x0010)
|
|
|
|
/*
|
|
* S-block offering a maximum size of the information field
|
|
*/
|
|
#define ESESTATUS_IFS_REQ (0x001E)
|
|
|
|
/* S-block offering a maximum size of the information field */
|
|
#define ESESTATUS_IFS_RES (0x0017)
|
|
|
|
/* S-block requesting a chain abortion */
|
|
#define ESESTATUS_ABORT_REQ (0x00F0)
|
|
|
|
/*S-block acknowledging the chain abortion*/
|
|
#define ESESTATUS_ABORT_RES (0x00F2)
|
|
|
|
/* S-block requesting a waiting time extension*/
|
|
#define ESESTATUS_WTX_REQ (0x00F5)
|
|
|
|
/* S-block acknowledging the waiting time extension */
|
|
#define ESESTATUS_WTX_RES (0x00F6)
|
|
|
|
/* S-block interface reset request */
|
|
#define ESESTATUS_RESET_REQ (0x00F7)
|
|
|
|
/* S-block interface reset response */
|
|
#define ESESTATUS_RESET_RES (0x00F8)
|
|
|
|
/* S-block requesting a end of apdu transfer*/
|
|
#define ESESTATUS_END_APDU_REQ (0x00F9)
|
|
|
|
/* S-block acknowledging end of apdu transfer*/
|
|
#define ESESTATUS_END_APDU_RES (0x00FA)
|
|
|
|
/*
|
|
* Shutdown in progress, cannot handle the request at this time.
|
|
*/
|
|
#define ESESTATUS_SHUTDOWN (0x0091)
|
|
|
|
/*
|
|
* Target is no more in RF field
|
|
*/
|
|
#define ESESTATUS_TARGET_LOST (0x0092)
|
|
|
|
/*
|
|
* Request is rejected
|
|
*/
|
|
#define ESESTATUS_REJECTED (0x0093)
|
|
|
|
/*
|
|
* Target is not connected
|
|
*/
|
|
#define ESESTATUS_TARGET_NOT_CONNECTED (0x0094)
|
|
|
|
/*
|
|
* Invalid handle for the operation
|
|
*/
|
|
#define ESESTATUS_INVALID_HANDLE (0x0095)
|
|
|
|
/*
|
|
* Process aborted
|
|
*/
|
|
#define ESESTATUS_ABORTED (0x0096)
|
|
|
|
/*
|
|
* Requested command is not supported
|
|
*/
|
|
#define ESESTATUS_COMMAND_NOT_SUPPORTED (0x0097)
|
|
|
|
/*
|
|
* Tag is not NDEF compilant
|
|
*/
|
|
#define ESESTATUS_NON_NDEF_COMPLIANT (0x0098)
|
|
|
|
/*
|
|
* Not enough memory available to complete the requested operation
|
|
*/
|
|
#define ESESTATUS_NOT_ENOUGH_MEMORY (0x001F)
|
|
|
|
/*
|
|
* Indicates incoming connection
|
|
*/
|
|
#define ESESTATUS_INCOMING_CONNECTION (0x0045)
|
|
|
|
/*
|
|
* Indicates Connection was successful
|
|
*/
|
|
#define ESESTATUS_CONNECTION_SUCCESS (0x0046)
|
|
|
|
/*
|
|
* Indicates Connection failed
|
|
*/
|
|
#define ESESTATUS_CONNECTION_FAILED (0x0047)
|
|
|
|
#endif /* PHESESTATUS_H */
|