/* * 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 /* 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 */