/****************************************************************************** * * Copyright 2018 NXP * * 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 /* 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) typedef enum { ESESTATUS_SUCCESS = (0x0000), ESESTATUS_FAILED = (0x0001), ESESTATUS_IOCTL_FAILED = -1, ESESTATUS_INVALID_BUFFER = (0x0002), ESESTATUS_BUFFER_TOO_SMALL = (0x0003), ESESTATUS_INVALID_CLA = (0x0004), ESESTATUS_INVALID_CPDU_TYPE = (0x0005), ESESTATUS_INVALID_LE_TYPE = (0x0007), ESESTATUS_INVALID_DEVICE = (0x0006), ESESTATUS_MORE_FRAME = (0x0008), ESESTATUS_LAST_FRAME = (0x0009), ESESTATUS_CRC_ERROR = (0x000A), ESESTATUS_SOF_ERROR = (0x000B), ESESTATUS_INSUFFICIENT_RESOURCES = (0x000C), ESESTATUS_PENDING = (0x000D), ESESTATUS_BOARD_COMMUNICATION_ERROR = (0x000F), ESESTATUS_INVALID_STATE = (0x0011), ESESTATUS_NOT_INITIALISED = (0x0031), ESESTATUS_ALREADY_INITIALISED = (0x0032), ESESTATUS_FEATURE_NOT_SUPPORTED = (0x0033), ESESTATUS_PARITY_ERROR = (0x0034), ESESTATUS_ALREADY_REGISTERED = (0x0035), ESESTATUS_CHAINED_FRAME = (0x0036), ESESTATUS_SINGLE_FRAME = (0x0037), ESESTATUS_DESELECTED = (0x0038), ESESTATUS_RELEASED = (0x0039), ESESTATUS_NOT_ALLOWED = (0x003A), ESESTATUS_OTHER_ERROR = (0x003C), ESESTATUS_DWNLD_BUSY = (0x006E), ESESTATUS_BUSY = (0x006F), ESESTATUS_INVALID_REMOTE_DEVICE = (0x001D), ESESTATUS_READ_FAILED = (0x0014), ESESTATUS_WRITE_FAILED = (0x0015), ESESTATUS_NO_NDEF_SUPPORT = (0x0016), ESESTATUS_RESET_SEQ_COUNTER_FRAME_RESEND = (0x001A), ESESTATUS_INVALID_RECEIVE_LENGTH = (0x001B), ESESTATUS_INVALID_FORMAT = (0x001C), ESESTATUS_INSUFFICIENT_STORAGE = (0x001F), ESESTATUS_FRAME_RESEND = (0x0023), ESESTATUS_WRITE_TIMEOUT = (0x0024), ESESTATUS_RESPONSE_TIMEOUT = (0x0025), ESESTATUS_FRAME_RESEND_R_FRAME = (0x0026), ESESTATUS_SEND_NEXT_FRAME = (0x0027), ESESTATUS_REVOCERY_STARTED = (0x0028), ESESTATUS_SEND_R_FRAME = (0x0029), ESESTATUS_FRAME_RESEND_RNAK = (0x0030), ESESTATUS_FRAME_SEND_R_FRAME = (0x003B), ESESTATUS_UNKNOWN_ERROR = (0x00FE), ESESTATUS_INVALID_PARAMETER = (0x00FF), ESESTATUS_CMD_ABORTED = (0x0002), ESESTATUS_NO_TARGET_FOUND = (0x000A), ESESTATUS_NO_DEVICE_CONNECTED = (0x000B), ESESTATUS_RESYNCH_REQ = (0x000E), ESESTATUS_RESYNCH_RES = (0x0010), ESESTATUS_IFS_REQ = (0x001E), ESESTATUS_IFS_RES = (0x0017), ESESTATUS_ABORT_REQ = (0x00F0), ESESTATUS_ABORT_RES = (0x00F2), ESESTATUS_WTX_REQ = (0x00F5), ESESTATUS_WTX_RES = (0x00F6), ESESTATUS_RESET_REQ = (0x00F7), ESESTATUS_RESET_RES = (0x00F8), ESESTATUS_END_APDU_REQ = (0x00F9), ESESTATUS_END_APDU_RES = (0x00FA), ESESTATUS_SHUTDOWN = (0x0091), ESESTATUS_TARGET_LOST = (0x0092), ESESTATUS_REJECTED = (0x0093), ESESTATUS_TARGET_NOT_CONNECTED = (0x0094), ESESTATUS_INVALID_HANDLE = (0x0095), ESESTATUS_ABORTED = (0x0096), ESESTATUS_COMMAND_NOT_SUPPORTED = (0x0097), ESESTATUS_NON_NDEF_COMPLIANT = (0x0098), ESESTATUS_NOT_ENOUGH_MEMORY = (0x001F), ESESTATUS_INCOMING_CONNECTION = (0x0045), ESESTATUS_CONNECTION_SUCCESS = (0x0046), ESESTATUS_CONNECTION_FAILED = (0x0047), } ESESTATUS; #endif /* PHESESTATUS_H */