blob: f96e27392eeefdd8a6db63ab1db4e59631c5a445 [file] [log] [blame]
/*
* Copyright (c) 2014-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#include "linux/errno.h"
#include "qdf_module.h"
#include "qdf_status.h"
int qdf_status_to_os_return(QDF_STATUS status)
{
switch (status) {
case QDF_STATUS_SUCCESS:
return 0;
case QDF_STATUS_E_RESOURCES:
return -EBUSY;
case QDF_STATUS_E_NOMEM:
return -ENOMEM;
case QDF_STATUS_E_AGAIN:
return -EAGAIN;
case QDF_STATUS_E_INVAL:
return -EINVAL;
case QDF_STATUS_E_FAULT:
return -EFAULT;
case QDF_STATUS_E_ALREADY:
return -EALREADY;
case QDF_STATUS_E_BADMSG:
return -EBADMSG;
case QDF_STATUS_E_BUSY:
return -EBUSY;
case QDF_STATUS_E_CANCELED:
return -ECANCELED;
case QDF_STATUS_E_ABORTED:
return -ECONNABORTED;
case QDF_STATUS_E_PERM:
return -EPERM;
case QDF_STATUS_E_EXISTS:
return -EEXIST;
case QDF_STATUS_E_NOENT:
return -ENOENT;
case QDF_STATUS_E_E2BIG:
return -E2BIG;
case QDF_STATUS_E_NOSPC:
return -ENOSPC;
case QDF_STATUS_E_ADDRNOTAVAIL:
return -EADDRNOTAVAIL;
case QDF_STATUS_E_ENXIO:
return -ENXIO;
case QDF_STATUS_E_NETDOWN:
return -ENETDOWN;
case QDF_STATUS_E_IO:
return -EIO;
case QDF_STATUS_E_NETRESET:
return -ENETRESET;
case QDF_STATUS_E_PENDING:
return -EINPROGRESS;
case QDF_STATUS_E_TIMEOUT:
return -ETIMEDOUT;
default:
return -EPERM;
}
}
qdf_export_symbol(qdf_status_to_os_return);
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;
case -ETIMEDOUT:
return QDF_STATUS_E_TIMEOUT;
default:
return QDF_STATUS_E_PERM;
}
}
qdf_export_symbol(qdf_status_from_os_return);