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:
@@ -128,6 +128,17 @@ static inline int qdf_status_to_os_return(QDF_STATUS 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
|
||||
* @nr: bit number to be set
|
||||
|
@@ -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
|
||||
* @nr: bit number to be set
|
||||
|
Reference in New Issue
Block a user