forked from Qortal/Brooklyn
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.
73 lines
1.6 KiB
73 lines
1.6 KiB
// SPDX-License-Identifier: GPL-2.0-only |
|
/* |
|
* 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 <[email protected]> |
|
* |
|
* 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> |
|
#include <net/nfc/nci_core.h> |
|
|
|
/* 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; |
|
|
|
case NCI_STATUS_RF_FRAME_CORRUPTED: |
|
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);
|
|
|