qcacmn: Add qdf_status_from_os_return()

It is sometimes useful to reverse map an errno into a QDF_STATUS. For
this purpose, introduce qdf_status_from_os_return(), the logical inverse
operation of qdf_status_to_os_return().

Change-Id: I053f43867ef603c2654eca64fe76c7bd313e14e4
CRs-Fixed: 2242664
This commit is contained in:
Dustin Brown
2018-05-15 16:31:38 -07:00
committed by nshrivas
parent a487539d7d
commit b7871f64ad
2 changed files with 61 additions and 0 deletions

View File

@@ -128,6 +128,17 @@ static inline int qdf_status_to_os_return(QDF_STATUS status)
return __qdf_status_to_os_return(status); return __qdf_status_to_os_return(status);
} }
/**
* qdf_status_from_os_return() - map OS specific return code to a QDF_STATUS
* @rc: the input return code to map
*
* Return: QDF_STATUS
*/
static inline QDF_STATUS qdf_status_from_os_return(int rc)
{
return __qdf_status_from_os_return(rc);
}
/** /**
* qdf_set_bit() - set bit in address * qdf_set_bit() - set bit in address
* @nr: bit number to be set * @nr: bit number to be set

View File

@@ -150,6 +150,56 @@ static inline int __qdf_status_to_os_return(QDF_STATUS status)
} }
} }
static inline QDF_STATUS __qdf_status_from_os_return(int rc)
{
switch (rc) {
case 0:
return QDF_STATUS_SUCCESS;
case -ENOMEM:
return QDF_STATUS_E_NOMEM;
case -EAGAIN:
return QDF_STATUS_E_AGAIN;
case -EINVAL:
return QDF_STATUS_E_INVAL;
case -EFAULT:
return QDF_STATUS_E_FAULT;
case -EALREADY:
return QDF_STATUS_E_ALREADY;
case -EBADMSG:
return QDF_STATUS_E_BADMSG;
case -EBUSY:
return QDF_STATUS_E_BUSY;
case -ECANCELED:
return QDF_STATUS_E_CANCELED;
case -ECONNABORTED:
return QDF_STATUS_E_ABORTED;
case -EPERM:
return QDF_STATUS_E_PERM;
case -EEXIST:
return QDF_STATUS_E_EXISTS;
case -ENOENT:
return QDF_STATUS_E_NOENT;
case -E2BIG:
return QDF_STATUS_E_E2BIG;
case -ENOSPC:
return QDF_STATUS_E_NOSPC;
case -EADDRNOTAVAIL:
return QDF_STATUS_E_ADDRNOTAVAIL;
case -ENXIO:
return QDF_STATUS_E_ENXIO;
case -ENETDOWN:
return QDF_STATUS_E_NETDOWN;
case -EIO:
return QDF_STATUS_E_IO;
case -ENETRESET:
return QDF_STATUS_E_NETRESET;
case -EINPROGRESS:
return QDF_STATUS_E_PENDING;
default:
return QDF_STATUS_E_PERM;
}
}
/** /**
* __qdf_set_bit() - set bit in address * __qdf_set_bit() - set bit in address
* @nr: bit number to be set * @nr: bit number to be set