blob: 40baece1d63c58857fec021d4b65a864819635e0 [file] [log] [blame]
/*
* Copyright (c) 2011 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
* 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.
*/
/*
* This file was originally distributed by Qualcomm Atheros, Inc.
* under proprietary terms before Copyright ownership was assigned
* to the Linux Foundation.
*/
/**
* @ingroup adf_os_public
* @file adf_os_io.h
* This file abstracts I/O operations.
*/
#ifndef _ADF_OS_IO_H
#define _ADF_OS_IO_H
#include <adf_os_io_pvt.h>
/**
* @brief Read an 8-bit register value
*
* @param[in] osdev platform device object
* @param[in] addr register addr
*
* @return An 8-bit register value.
*/
#define adf_os_reg_read8(osdev, addr) __adf_os_reg_read8(osdev, addr)
/**
* @brief Read a 16-bit register value
*
* @param[in] osdev platform device object
* @param[in] addr register addr
*
* @return A 16-bit register value.
*/
#define adf_os_reg_read16(osdev, addr) __adf_os_reg_read16(osdev, addr)
/**
* @brief Read a 32-bit register value
*
* @param[in] osdev platform device object
* @param[in] addr register addr
*
* @return A 32-bit register value.
*/
#define adf_os_reg_read32(osdev, addr) __adf_os_reg_read32(osdev, addr)
/**
* @brief Read a 64-bit register value
*
* @param[in] osdev platform device object
* @param[in] addr register addr
*
* @return A 64-bit register value.
*/
#define adf_os_reg_read64(osdev, addr) __adf_os_reg_read64(osdev, addr)
/**
* @brief Write an 8-bit value into register
*
* @param[in] osdev platform device object
* @param[in] addr register addr
* @param[in] b the 8-bit value to be written
*/
#define adf_os_reg_write8(osdev, addr, b) __adf_os_reg_write8(osdev, addr, b)
/**
* @brief Write a 16-bit value into register
*
* @param[in] osdev platform device object
* @param[in] addr register addr
* @param[in] w the 16-bit value to be written
*/
#define adf_os_reg_write16(osdev, addr, w) __adf_os_reg_write16(osdev, addr, w)
/**
* @brief Write a 32-bit value into register
*
* @param[in] osdev platform device object
* @param[in] addr register addr
* @param[in] l the 32-bit value to be written
*/
#define adf_os_reg_write32(osdev, addr, l) __adf_os_reg_write32(osdev, addr, l)
/**
* @brief Write a 64-bit value into register
*
* @param[in] osdev platform device object
* @param[in] addr register addr
* @param[in] q the 64-bit value to be written
*/
#define adf_os_reg_write64(osdev, addr, q) __adf_os_reg_write64(osdev, addr, q)
/**
* @brief io remaps a physical address to a i/o address
*
* @param[in] addr physical address
* @param[in] size size of memeory to be remaped
*/
#define adf_os_ioremap(addr, size) __adf_os_ioremap(addr, size)
/**
* @brief Convert a 16-bit value from network byte order to host byte order
*/
#define adf_os_ntohs(x) __adf_os_ntohs(x)
/**
* @brief Convert a 32-bit value from network byte order to host byte order
*/
#define adf_os_ntohl(x) __adf_os_ntohl(x)
/**
* @brief Convert a 16-bit value from host byte order to network byte order
*/
#define adf_os_htons(x) __adf_os_htons(x)
/**
* @brief Convert a 32-bit value from host byte order to network byte order
*/
#define adf_os_htonl(x) __adf_os_htonl(x)
/**
* @brief Convert a 16-bit value from CPU byte order to big-endian byte order
*/
#define adf_os_cpu_to_be16(x) __adf_os_cpu_to_be16(x)
/**
* @brief Convert a 32-bit value from CPU byte order to big-endian byte order
*/
#define adf_os_cpu_to_be32(x) __adf_os_cpu_to_be32(x)
/**
* @brief Convert a 64-bit value from CPU byte order to big-endian byte order
*/
#define adf_os_cpu_to_be64(x) __adf_os_cpu_to_be64(x)
/**
* @brief Convert a 16-bit value from CPU byte order to little-endian byte order
*/
#define adf_os_cpu_to_le16(x) __adf_os_cpu_to_le16(x)
/**
* @brief Convert a 32-bit value from CPU byte order to little-endian byte order
*/
#define adf_os_cpu_to_le32(x) __adf_os_cpu_to_le32(x)
/**
* @brief Convert a 64-bit value from CPU byte order to little-endian byte order
*/
#define adf_os_cpu_to_le64(x) __adf_os_cpu_to_le64(x)
/**
* @brief Convert a 16-bit value from big-endian byte order to CPU byte order
*/
#define adf_os_be16_to_cpu(x) __adf_os_be16_to_cpu(x)
/**
* @brief Convert a 32-bit value from big-endian byte order to CPU byte order
*/
#define adf_os_be32_to_cpu(x) __adf_os_be32_to_cpu(x)
/**
* @brief Convert a 64-bit value from big-endian byte order to CPU byte order
*/
#define adf_os_be64_to_cpu(x) __adf_os_be64_to_cpu(x)
/**
* @brief Convert a 16-bit value from little-endian byte order to CPU byte order
*/
#define adf_os_le16_to_cpu(x) __adf_os_le16_to_cpu(x)
/**
* @brief Convert a 32-bit value from little-endian byte order to CPU byte order
*/
#define adf_os_le32_to_cpu(x) __adf_os_le32_to_cpu(x)
/**
* @brief Convert a 64-bit value from little-endian byte order to CPU byte order
*/
#define adf_os_le64_to_cpu(x) __adf_os_le64_to_cpu(x)
#endif