1 /* 2 * Copyright (c) 2014-2019 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 #include "linux/errno.h" 20 #include "qdf_module.h" 21 #include "qdf_status.h" 22 23 int qdf_status_to_os_return(QDF_STATUS status) 24 { 25 switch (status) { 26 case QDF_STATUS_SUCCESS: 27 return 0; 28 case QDF_STATUS_E_RESOURCES: 29 return -EBUSY; 30 case QDF_STATUS_E_NOMEM: 31 return -ENOMEM; 32 case QDF_STATUS_E_AGAIN: 33 return -EAGAIN; 34 case QDF_STATUS_E_INVAL: 35 return -EINVAL; 36 case QDF_STATUS_E_FAULT: 37 return -EFAULT; 38 case QDF_STATUS_E_ALREADY: 39 return -EALREADY; 40 case QDF_STATUS_E_BADMSG: 41 return -EBADMSG; 42 case QDF_STATUS_E_BUSY: 43 return -EBUSY; 44 case QDF_STATUS_E_CANCELED: 45 return -ECANCELED; 46 case QDF_STATUS_E_ABORTED: 47 return -ECONNABORTED; 48 case QDF_STATUS_E_PERM: 49 return -EPERM; 50 case QDF_STATUS_E_EXISTS: 51 return -EEXIST; 52 case QDF_STATUS_E_NOENT: 53 return -ENOENT; 54 case QDF_STATUS_E_E2BIG: 55 return -E2BIG; 56 case QDF_STATUS_E_NOSPC: 57 return -ENOSPC; 58 case QDF_STATUS_E_ADDRNOTAVAIL: 59 return -EADDRNOTAVAIL; 60 case QDF_STATUS_E_ENXIO: 61 return -ENXIO; 62 case QDF_STATUS_E_NETDOWN: 63 return -ENETDOWN; 64 case QDF_STATUS_E_IO: 65 return -EIO; 66 case QDF_STATUS_E_NETRESET: 67 return -ENETRESET; 68 case QDF_STATUS_E_PENDING: 69 return -EINPROGRESS; 70 case QDF_STATUS_E_TIMEOUT: 71 return -ETIMEDOUT; 72 default: 73 return -EPERM; 74 } 75 } 76 qdf_export_symbol(qdf_status_to_os_return); 77 78 QDF_STATUS qdf_status_from_os_return(int rc) 79 { 80 switch (rc) { 81 case 0: 82 return QDF_STATUS_SUCCESS; 83 case -ENOMEM: 84 return QDF_STATUS_E_NOMEM; 85 case -EAGAIN: 86 return QDF_STATUS_E_AGAIN; 87 case -EINVAL: 88 return QDF_STATUS_E_INVAL; 89 case -EFAULT: 90 return QDF_STATUS_E_FAULT; 91 case -EALREADY: 92 return QDF_STATUS_E_ALREADY; 93 case -EBADMSG: 94 return QDF_STATUS_E_BADMSG; 95 case -EBUSY: 96 return QDF_STATUS_E_BUSY; 97 case -ECANCELED: 98 return QDF_STATUS_E_CANCELED; 99 case -ECONNABORTED: 100 return QDF_STATUS_E_ABORTED; 101 case -EPERM: 102 return QDF_STATUS_E_PERM; 103 case -EEXIST: 104 return QDF_STATUS_E_EXISTS; 105 case -ENOENT: 106 return QDF_STATUS_E_NOENT; 107 case -E2BIG: 108 return QDF_STATUS_E_E2BIG; 109 case -ENOSPC: 110 return QDF_STATUS_E_NOSPC; 111 case -EADDRNOTAVAIL: 112 return QDF_STATUS_E_ADDRNOTAVAIL; 113 case -ENXIO: 114 return QDF_STATUS_E_ENXIO; 115 case -ENETDOWN: 116 return QDF_STATUS_E_NETDOWN; 117 case -EIO: 118 return QDF_STATUS_E_IO; 119 case -ENETRESET: 120 return QDF_STATUS_E_NETRESET; 121 case -EINPROGRESS: 122 return QDF_STATUS_E_PENDING; 123 case -ETIMEDOUT: 124 return QDF_STATUS_E_TIMEOUT; 125 default: 126 return QDF_STATUS_E_PERM; 127 } 128 } 129 qdf_export_symbol(qdf_status_from_os_return); 130 131