IoLibMmioBuffer.c revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
4632N/A I/O Library MMIO Buffer Functions. 4632N/A Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR> 4632N/A This program and the accompanying materials 4632N/A are licensed and made available under the terms and conditions of the BSD License 4632N/A which accompanies this distribution. The full text of the license may be found at 4632N/A THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 4632N/A WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 4632N/A Copy data from MMIO region to system memory by using 8-bit access. 4632N/A Copy data from MMIO region specified by starting address StartAddress 4632N/A to system memory specified by Buffer by using 8-bit access. The total 4632N/A number of byte to be copied is specified by Length. Buffer is returned. 4632N/A If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). 4632N/A If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). 4632N/A @param StartAddress Starting address for the MMIO region to be copied from. 4632N/A @param Length Size in bytes of the copy. 4632N/A @param Buffer Pointer to a system memory buffer receiving the data read. 4632N/A Copy data from MMIO region to system memory by using 16-bit access. 4632N/A Copy data from MMIO region specified by starting address StartAddress 4632N/A to system memory specified by Buffer by using 16-bit access. The total 4632N/A number of byte to be copied is specified by Length. Buffer is returned. 4632N/A If StartAddress is not aligned on a 16-bit boundary, then ASSERT(). 4632N/A If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). 4632N/A If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). 4632N/A If Length is not aligned on a 16-bit boundary, then ASSERT(). 4632N/A If Buffer is not aligned on a 16-bit boundary, then ASSERT(). 4632N/A @param StartAddress Starting address for the MMIO region to be copied from. 4632N/A @param Length Size in bytes of the copy. 4632N/A @param Buffer Pointer to a system memory buffer receiving the data read. 4632N/A Copy data from MMIO region to system memory by using 32-bit access. 4632N/A Copy data from MMIO region specified by starting address StartAddress 4632N/A to system memory specified by Buffer by using 32-bit access. The total 4632N/A number of byte to be copied is specified by Length. Buffer is returned. 4632N/A If StartAddress is not aligned on a 32-bit boundary, then ASSERT(). 4632N/A If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). 4632N/A If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). 4632N/A If Length is not aligned on a 32-bit boundary, then ASSERT(). 4632N/A If Buffer is not aligned on a 32-bit boundary, then ASSERT(). 4632N/A @param StartAddress Starting address for the MMIO region to be copied from. 4632N/A @param Length Size in bytes of the copy. 4632N/A @param Buffer Pointer to a system memory buffer receiving the data read. Copy data from MMIO region to system memory by using 64-bit access. Copy data from MMIO region specified by starting address StartAddress to system memory specified by Buffer by using 64-bit access. The total number of byte to be copied is specified by Length. Buffer is returned. If StartAddress is not aligned on a 64-bit boundary, then ASSERT(). If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). If Length is not aligned on a 64-bit boundary, then ASSERT(). If Buffer is not aligned on a 64-bit boundary, then ASSERT(). @param StartAddress Starting address for the MMIO region to be copied from. @param Length Size in bytes of the copy. @param Buffer Pointer to a system memory buffer receiving the data read. Copy data from system memory to MMIO region by using 8-bit access. Copy data from system memory specified by Buffer to MMIO region specified by starting address StartAddress by using 8-bit access. The total number of byte to be copied is specified by Length. Buffer is returned. If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). If Length is greater than (MAX_ADDRESS -Buffer + 1), then ASSERT(). @param StartAddress Starting address for the MMIO region to be copied to. @param Length Size in bytes of the copy. @param Buffer Pointer to a system memory buffer containing the data to write. Copy data from system memory to MMIO region by using 16-bit access. Copy data from system memory specified by Buffer to MMIO region specified by starting address StartAddress by using 16-bit access. The total number of byte to be copied is specified by Length. Buffer is returned. If StartAddress is not aligned on a 16-bit boundary, then ASSERT(). If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). If Length is greater than (MAX_ADDRESS -Buffer + 1), then ASSERT(). If Length is not aligned on a 16-bit boundary, then ASSERT(). If Buffer is not aligned on a 16-bit boundary, then ASSERT(). @param StartAddress Starting address for the MMIO region to be copied to. @param Length Size in bytes of the copy. @param Buffer Pointer to a system memory buffer containing the data to write. Copy data from system memory to MMIO region by using 32-bit access. Copy data from system memory specified by Buffer to MMIO region specified by starting address StartAddress by using 32-bit access. The total number of byte to be copied is specified by Length. Buffer is returned. If StartAddress is not aligned on a 32-bit boundary, then ASSERT(). If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). If Length is greater than (MAX_ADDRESS -Buffer + 1), then ASSERT(). If Length is not aligned on a 32-bit boundary, then ASSERT(). If Buffer is not aligned on a 32-bit boundary, then ASSERT(). @param StartAddress Starting address for the MMIO region to be copied to. @param Length Size in bytes of the copy. @param Buffer Pointer to a system memory buffer containing the data to write. Copy data from system memory to MMIO region by using 64-bit access. Copy data from system memory specified by Buffer to MMIO region specified by starting address StartAddress by using 64-bit access. The total number of byte to be copied is specified by Length. Buffer is returned. If StartAddress is not aligned on a 64-bit boundary, then ASSERT(). If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). If Length is greater than (MAX_ADDRESS -Buffer + 1), then ASSERT(). If Length is not aligned on a 64-bit boundary, then ASSERT(). If Buffer is not aligned on a 64-bit boundary, then ASSERT(). @param StartAddress Starting address for the MMIO region to be copied to. @param Length Size in bytes of the copy. @param Buffer Pointer to a system memory buffer containing the data to write.