2019-06-03 07:44:50 +02:00
// SPDX-License-Identifier: GPL-2.0-only
2011-09-18 11:19:35 +03:00
/*
* The NFC Controller Interface is the communication protocol between an
* NFC Controller ( NFCC ) and a Device Host ( DH ) .
*
* Copyright ( C ) 2011 Texas Instruments , Inc .
*
* Written by Ilan Elias < ilane @ ti . com >
*
* Acknowledgements :
* This file is based on lib . c , which was written
* by Maxim Krasnyansky .
*/
# include <linux/module.h>
# include <linux/kernel.h>
# include <linux/types.h>
# include <linux/errno.h>
# include <net/nfc/nci.h>
2012-05-07 12:31:25 +02:00
# include <net/nfc/nci_core.h>
2011-09-18 11:19:35 +03:00
/* NCI status codes to Unix errno mapping */
int nci_to_errno ( __u8 code )
{
switch ( code ) {
case NCI_STATUS_OK :
return 0 ;
case NCI_STATUS_REJECTED :
return - EBUSY ;
2011-11-09 12:09:14 +02:00
case NCI_STATUS_RF_FRAME_CORRUPTED :
2011-09-18 11:19:35 +03:00
return - EBADMSG ;
case NCI_STATUS_NOT_INITIALIZED :
return - EHOSTDOWN ;
case NCI_STATUS_SYNTAX_ERROR :
case NCI_STATUS_SEMANTIC_ERROR :
case NCI_STATUS_INVALID_PARAM :
case NCI_STATUS_RF_PROTOCOL_ERROR :
case NCI_STATUS_NFCEE_PROTOCOL_ERROR :
return - EPROTO ;
case NCI_STATUS_UNKNOWN_GID :
case NCI_STATUS_UNKNOWN_OID :
return - EBADRQC ;
case NCI_STATUS_MESSAGE_SIZE_EXCEEDED :
return - EMSGSIZE ;
case NCI_STATUS_DISCOVERY_ALREADY_STARTED :
return - EALREADY ;
case NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED :
case NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED :
return - ECONNREFUSED ;
case NCI_STATUS_RF_TRANSMISSION_ERROR :
case NCI_STATUS_NFCEE_TRANSMISSION_ERROR :
return - ECOMM ;
case NCI_STATUS_RF_TIMEOUT_ERROR :
case NCI_STATUS_NFCEE_TIMEOUT_ERROR :
return - ETIMEDOUT ;
case NCI_STATUS_FAILED :
default :
return - ENOSYS ;
}
}
EXPORT_SYMBOL ( nci_to_errno ) ;