cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

lib.c (1621B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 *  The NFC Controller Interface is the communication protocol between an
      4 *  NFC Controller (NFCC) and a Device Host (DH).
      5 *
      6 *  Copyright (C) 2011 Texas Instruments, Inc.
      7 *
      8 *  Written by Ilan Elias <ilane@ti.com>
      9 *
     10 *  Acknowledgements:
     11 *  This file is based on lib.c, which was written
     12 *  by Maxim Krasnyansky.
     13 */
     14
     15#include <linux/module.h>
     16#include <linux/kernel.h>
     17#include <linux/types.h>
     18#include <linux/errno.h>
     19
     20#include <net/nfc/nci.h>
     21#include <net/nfc/nci_core.h>
     22
     23/* NCI status codes to Unix errno mapping */
     24int nci_to_errno(__u8 code)
     25{
     26	switch (code) {
     27	case NCI_STATUS_OK:
     28		return 0;
     29
     30	case NCI_STATUS_REJECTED:
     31		return -EBUSY;
     32
     33	case NCI_STATUS_RF_FRAME_CORRUPTED:
     34		return -EBADMSG;
     35
     36	case NCI_STATUS_NOT_INITIALIZED:
     37		return -EHOSTDOWN;
     38
     39	case NCI_STATUS_SYNTAX_ERROR:
     40	case NCI_STATUS_SEMANTIC_ERROR:
     41	case NCI_STATUS_INVALID_PARAM:
     42	case NCI_STATUS_RF_PROTOCOL_ERROR:
     43	case NCI_STATUS_NFCEE_PROTOCOL_ERROR:
     44		return -EPROTO;
     45
     46	case NCI_STATUS_UNKNOWN_GID:
     47	case NCI_STATUS_UNKNOWN_OID:
     48		return -EBADRQC;
     49
     50	case NCI_STATUS_MESSAGE_SIZE_EXCEEDED:
     51		return -EMSGSIZE;
     52
     53	case NCI_STATUS_DISCOVERY_ALREADY_STARTED:
     54		return -EALREADY;
     55
     56	case NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED:
     57	case NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED:
     58		return -ECONNREFUSED;
     59
     60	case NCI_STATUS_RF_TRANSMISSION_ERROR:
     61	case NCI_STATUS_NFCEE_TRANSMISSION_ERROR:
     62		return -ECOMM;
     63
     64	case NCI_STATUS_RF_TIMEOUT_ERROR:
     65	case NCI_STATUS_NFCEE_TIMEOUT_ERROR:
     66		return -ETIMEDOUT;
     67
     68	case NCI_STATUS_FAILED:
     69	default:
     70		return -ENOSYS;
     71	}
     72}
     73EXPORT_SYMBOL(nci_to_errno);