200 lines
4.9 KiB
C
200 lines
4.9 KiB
C
/*
|
|
* Copyright 2012-2019 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.
|
|
*/
|
|
|
|
/*
|
|
* UWB Status Values - Function Return Codes
|
|
*/
|
|
|
|
#ifndef PHUWBSTATUS_H
|
|
#define PHUWBSTATUS_H
|
|
|
|
#include <phUwbTypes.h>
|
|
#include <uci_defs.h>
|
|
|
|
/* Internally required by PHUWBSTVAL. */
|
|
#define PHUWBSTSHL8 (8U)
|
|
/* Required by PHUWBSTVAL. */
|
|
#define PHUWBSTBLOWER ((tHAL_UWB_STATUS)(0x00FFU))
|
|
|
|
/*
|
|
* UWB Status Composition Macro
|
|
*
|
|
* This is the macro which must be used to compose status values.
|
|
*
|
|
* phUwbCompID Component ID, as defined in phUwbCompId.h .
|
|
* phUwbStatus Status values, as defined in phUwbStatus.h .
|
|
*
|
|
* The macro is not required for the UWBSTATUS_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.:
|
|
* tHAL_UWB_STATUS status = PHUWBSTVAL(phUwbCompID, phUwbStatus); ...
|
|
* if (status == PHUWBSTVAL(phUwbCompID, phUwbStatus)) ...
|
|
*/
|
|
#define PHUWBSTVAL(phUwbCompID, phUwbStatus) \
|
|
(((phUwbStatus) == (UWBSTATUS_SUCCESS)) \
|
|
? (UWBSTATUS_SUCCESS) \
|
|
: ((((tHAL_UWB_STATUS)(phUwbStatus)) & (PHUWBSTBLOWER)) | \
|
|
(((uint16_t)(phUwbCompID)) << (PHUWBSTSHL8))))
|
|
|
|
/*
|
|
* PHUWBSTATUS
|
|
* Get grp_retval from Status Code
|
|
*/
|
|
#define PHUWBSTATUS(phUwbStatus) ((phUwbStatus)&0x00FFU)
|
|
#define PHUWBCID(phUwbStatus) (((phUwbStatus)&0xFF00U) >> 8)
|
|
|
|
/*
|
|
* Status Codes
|
|
*
|
|
* Generic Status codes for the UWB 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 UWBSTATUS_SUCCESS UCI_STATUS_OK
|
|
|
|
/*
|
|
* The function indicates successful completion
|
|
*/
|
|
#define UWBSTATUS_OK (UCI_STATUS_OK)
|
|
|
|
|
|
/*
|
|
* Device specifier/handle value is invalid for the operation
|
|
*/
|
|
#define UWBSTATUS_INVALID_DEVICE (0x0001)
|
|
|
|
/*
|
|
* A non-blocking function returns this immediately to indicate
|
|
* that an internal operation is in progress
|
|
*/
|
|
#define UWBSTATUS_PENDING (0x0002)
|
|
|
|
/*
|
|
* A board communication error occurred
|
|
* (e.g. Configuration went wrong)
|
|
*/
|
|
#define UWBSTATUS_BOARD_COMMUNICATION_ERROR (0x0003)
|
|
|
|
/*
|
|
* At least one parameter could not be properly interpreted
|
|
*/
|
|
#define UWBSTATUS_INVALID_PARAMETER (UCI_STATUS_INVALID_PARAM)
|
|
|
|
/*
|
|
* Not enough resources Memory, Timer etc(e.g. allocation failed.)
|
|
*/
|
|
#define UWBSTATUS_INSUFFICIENT_RESOURCES (0x0005)
|
|
|
|
/*
|
|
* Invalid State of the particular state machine
|
|
*/
|
|
#define UWBSTATUS_INVALID_STATE (0x0006)
|
|
|
|
/*
|
|
* This Layer is Not initialized, hence initialization required.
|
|
*/
|
|
#define UWBSTATUS_NOT_INITIALISED (0x0007)
|
|
|
|
/*
|
|
* The Layer is already initialized, hence initialization repeated.
|
|
*/
|
|
#define UWBSTATUS_ALREADY_INITIALISED (0x0008)
|
|
|
|
/*
|
|
* The operation is currently not possible or not allowed
|
|
*/
|
|
#define UWBSTATUS_NOT_ALLOWED (0x0009)
|
|
|
|
/*
|
|
* FW version error while performing FW download,
|
|
* FW major version mismatch (cannot downgrade FW major version) or FW version
|
|
* already upto date
|
|
* User may be trying to flash Mobile FW on top of Infra FW, which is not
|
|
* allowed
|
|
* Download appropriate version of FW
|
|
*/
|
|
#define UWBSTATUS_FW_VERSION_ERROR (0x000A)
|
|
|
|
/*
|
|
* The system is busy with the previous operation.
|
|
*/
|
|
#define UWBSTATUS_BUSY (0x000B)
|
|
|
|
/* NDEF Mapping error codes */
|
|
|
|
/* Read operation failed */
|
|
#define UWBSTATUS_READ_FAILED (0x000C)
|
|
|
|
/*
|
|
* Write operation failed
|
|
*/
|
|
#define UWBSTATUS_WRITE_FAILED (0x000D)
|
|
|
|
/*
|
|
* Response Time out for the control message(UWBC not responded)
|
|
*/
|
|
#define UWBSTATUS_RESPONSE_TIMEOUT (0x000E)
|
|
|
|
/*
|
|
* The function/command has been aborted
|
|
*/
|
|
#define UWBSTATUS_CMD_ABORTED (0x000F)
|
|
|
|
/*
|
|
* Shutdown in progress, cannot handle the request at this time.
|
|
*/
|
|
#define UWBSTATUS_SHUTDOWN (0x0010)
|
|
|
|
/*
|
|
* Invalid handle for the operation
|
|
*/
|
|
#define UWBSTATUS_INVALID_HANDLE (0x0011)
|
|
|
|
/*
|
|
* Requested command is not supported
|
|
*/
|
|
#define UWBSTATUS_COMMAND_NOT_SUPPORTED (0x0012)
|
|
|
|
/*
|
|
* Requested Retransmit command
|
|
*/
|
|
#define UWBSTATUS_COMMAND_RETRANSMIT (0x0013)
|
|
|
|
/*
|
|
* File Not Found error
|
|
*/
|
|
#define UWBSTATUS_FILE_NOT_FOUND (0x0014)
|
|
|
|
/*
|
|
* Invalid Command Length
|
|
*/
|
|
#define UWBSTATUS_INVALID_COMMAND_LENGTH (0x0015)
|
|
|
|
/*
|
|
* Status code for failure
|
|
*/
|
|
#define UWBSTATUS_FAILED (0x00FF)
|
|
|
|
#endif /* PHUWBSTATUS_H */
|