summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/include/machine/bus.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@oarcorp.com>2012-03-07 16:44:23 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2012-03-07 16:44:23 -0600
commit1a91c05070ecd9b92a7111b63f3eace9ebdbd4e8 (patch)
tree1b7620aa23abc160bb4d3c18aee42228c2a48a42 /rtemsbsd/include/machine/bus.h
parentInitial version. (diff)
downloadrtems-libbsd-1a91c05070ecd9b92a7111b63f3eace9ebdbd4e8.tar.bz2
Preserve Sebastian's directory structure under rtemsbsd to minimize changes
Diffstat (limited to 'rtemsbsd/include/machine/bus.h')
-rw-r--r--rtemsbsd/include/machine/bus.h781
1 files changed, 0 insertions, 781 deletions
diff --git a/rtemsbsd/include/machine/bus.h b/rtemsbsd/include/machine/bus.h
deleted file mode 100644
index 3e01ce4a..00000000
--- a/rtemsbsd/include/machine/bus.h
+++ /dev/null
@@ -1,781 +0,0 @@
-/**
- * @file
- *
- * @ingroup rtems_bsd_machine
- *
- * @brief TODO.
- *
- * File origin from FreeBSD 'sys/amd64/include/bus.h'.
- */
-
-/*-
- * Copyright (c) 2009, 2010 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Obere Lagerstr. 30
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * Copyright (c) KATO Takenori, 1999.
- *
- * All rights reserved. Unpublished rights reserved under the copyright
- * laws of Japan.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer as
- * the first lines of this file unmodified.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*-
- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
- * NASA Ames Research Center.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the NetBSD
- * Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*-
- * Copyright (c) 1996 Charles M. Hannum. All rights reserved.
- * Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Christopher G. Demetriou
- * for the NetBSD Project.
- * 4. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _RTEMS_BSD_MACHINE_BUS_H_
-#define _RTEMS_BSD_MACHINE_BUS_H_
-
-#ifndef _RTEMS_BSD_MACHINE_RTEMS_BSD_CONFIG_H_
-#error "the header file <rtems/freebsd/machine/rtems-bsd-config.h> must be included first"
-#endif
-
-/*
- * Bus address alignment.
- */
-#define BUS_SPACE_ALIGNED_POINTER(p, t) ALIGNED_POINTER(p, t)
-
-/*
- * Bus address maxima.
- */
-#define BUS_SPACE_MAXADDR_24BIT 0xffffffU
-#define BUS_SPACE_MAXADDR_32BIT 0xffffffffU
-#define BUS_SPACE_MAXADDR 0xffffffffU
-#define BUS_SPACE_MAXSIZE_24BIT 0xffffffU
-#define BUS_SPACE_MAXSIZE_32BIT 0xffffffffU
-#define BUS_SPACE_MAXSIZE 0xffffffffU
-
-/*
- * Bus access.
- */
-#define BUS_SPACE_UNRESTRICTED (~0U)
-
-/*
- * Bus read/write barrier method.
- */
-#define BUS_SPACE_BARRIER_READ 0x01 /* force read barrier */
-#define BUS_SPACE_BARRIER_WRITE 0x02 /* force write barrier */
-
-/*
- * Bus address and size types
- */
-typedef unsigned int bus_addr_t;
-typedef unsigned int bus_size_t;
-
-/*
- * Access methods for bus resources and address space.
- */
-typedef int bus_space_tag_t;
-typedef unsigned int bus_space_handle_t;
-
-/*
- * Map a region of device bus space into CPU virtual address space.
- */
-
-static __inline int
-bus_space_map(bus_space_tag_t t __unused, bus_addr_t addr,
- bus_size_t size __unused, int flags __unused,
- bus_space_handle_t *bshp)
-{
- *bshp = addr;
- return (0);
-}
-
-/*
- * Unmap a region of device bus space.
- */
-static __inline void
-bus_space_unmap(bus_space_tag_t bst __unused, bus_space_handle_t bsh __unused,
- bus_size_t size __unused)
-{
- /* Do nothing */
-}
-
-
-/*
- * Get a new handle for a subregion of an already-mapped area of bus space.
- */
-static __inline int
-bus_space_subregion(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, bus_size_t size, bus_space_handle_t *nbshp)
-{
- *nbshp = bsh + ofs;
- return (0);
-}
-
-
-/*
- * Allocate a region of memory that is accessible to devices in bus space.
- */
-int
-bus_space_alloc(bus_space_tag_t bst __unused, bus_addr_t rstart, bus_addr_t rend,
- bus_size_t size, bus_size_t align, bus_size_t boundary, int flags,
- bus_addr_t *addrp, bus_space_handle_t *bshp);
-
-
-/*
- * Free a region of bus space accessible memory.
- */
-void
-bus_space_free(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t size);
-
-
-static __inline void
-bus_space_barrier(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs,
- bus_size_t size, int flags)
-{
- /* Do nothing */
-}
-
-
-/*
- * Read 1 unit of data from bus space described by the tag, handle and ofs
- * tuple. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes. The
- * data is returned.
- */
-static __inline uint8_t
-bus_space_read_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs)
-{
- uint8_t __volatile *bsp = (uint8_t __volatile *)(bsh + ofs);
- return (*bsp);
-}
-
-static __inline uint16_t
-bus_space_read_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs)
-{
- uint16_t __volatile *bsp = (uint16_t __volatile *)(bsh + ofs);
- return (*bsp);
-}
-
-static __inline uint32_t
-bus_space_read_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs)
-{
- uint32_t __volatile *bsp = (uint32_t __volatile *)(bsh + ofs);
- return (*bsp);
-}
-
-static __inline uint64_t
-bus_space_read_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs)
-{
- uint64_t __volatile *bsp = (uint64_t __volatile *)(bsh + ofs);
- return (*bsp);
-}
-
-
-/*
- * Write 1 unit of data to bus space described by the tag, handle and ofs
- * tuple. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes. The
- * data is passed by value.
- */
-static __inline void
-bus_space_write_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs,
- uint8_t val)
-{
- uint8_t __volatile *bsp = (uint8_t __volatile *)(bsh + ofs);
- *bsp = val;
-}
-
-static __inline void
-bus_space_write_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs,
- uint16_t val)
-{
- uint16_t __volatile *bsp = (uint16_t __volatile *)(bsh + ofs);
- *bsp = val;
-}
-
-static __inline void
-bus_space_write_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs,
- uint32_t val)
-{
- uint32_t __volatile *bsp = (uint32_t __volatile *)(bsh + ofs);
- *bsp = val;
-}
-
-static __inline void
-bus_space_write_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh, bus_size_t ofs,
- uint64_t val)
-{
- uint64_t __volatile *bsp = (uint64_t __volatile *)(bsh + ofs);
- *bsp = val;
-}
-
-
-/*
- * Read count units of data from bus space described by the tag, handle and
- * ofs tuple. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes. The
- * data is returned in the buffer passed by reference.
- */
-static __inline void
-bus_space_read_multi_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint8_t *bufp, bus_size_t count)
-{
- uint8_t __volatile *bsp = (uint8_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bufp++ = *bsp;
- }
-}
-
-static __inline void
-bus_space_read_multi_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint16_t *bufp, bus_size_t count)
-{
- uint16_t __volatile *bsp = (uint16_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bufp++ = *bsp;
- }
-}
-
-static __inline void
-bus_space_read_multi_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint32_t *bufp, bus_size_t count)
-{
- uint32_t __volatile *bsp = (uint32_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bufp++ = *bsp;
- }
-}
-
-static __inline void
-bus_space_read_multi_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint64_t *bufp, bus_size_t count)
-{
- uint64_t __volatile *bsp = (uint64_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bufp++ = *bsp;
- }
-}
-
-
-/*
- * Write count units of data to bus space described by the tag, handle and
- * ofs tuple. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes. The
- * data is read from the buffer passed by reference.
- */
-static __inline void
-bus_space_write_multi_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, const uint8_t *bufp, bus_size_t count)
-{
- uint8_t __volatile *bsp = (uint8_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bsp = *bufp++;
- }
-}
-
-static __inline void
-bus_space_write_multi_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, const uint16_t *bufp, bus_size_t count)
-{
- uint16_t __volatile *bsp = (uint16_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bsp = *bufp++;
- }
-}
-
-static __inline void
-bus_space_write_multi_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, const uint32_t *bufp, bus_size_t count)
-{
- uint32_t __volatile *bsp = (uint32_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bsp = *bufp++;
- }
-}
-
-static __inline void
-bus_space_write_multi_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, const uint64_t *bufp, bus_size_t count)
-{
- uint64_t __volatile *bsp = (uint64_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bsp = *bufp++;
- }
-}
-
-
-/*
- * Read count units of data from bus space described by the tag, handle and
- * ofs tuple. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes. The
- * data is written to the buffer passed by reference and read from successive
- * bus space addresses. Access is unordered.
- */
-static __inline void
-bus_space_read_region_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint8_t *bufp, bus_size_t count)
-{
- while (count-- > 0) {
- uint8_t __volatile *bsp = (uint8_t __volatile *)(bsh + ofs);
- *bufp++ = *bsp;
- ofs += 1;
- }
-}
-
-static __inline void
-bus_space_read_region_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint16_t *bufp, bus_size_t count)
-{
- while (count-- > 0) {
- uint16_t __volatile *bsp = (uint16_t __volatile *)(bsh + ofs);
- *bufp++ = *bsp;
- ofs += 2;
- }
-}
-
-static __inline void
-bus_space_read_region_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint32_t *bufp, bus_size_t count)
-{
- while (count-- > 0) {
- uint32_t __volatile *bsp = (uint32_t __volatile *)(bsh + ofs);
- *bufp++ = *bsp;
- ofs += 4;
- }
-}
-
-static __inline void
-bus_space_read_region_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint64_t *bufp, bus_size_t count)
-{
- while (count-- > 0) {
- uint64_t __volatile *bsp = (uint64_t __volatile *)(bsh + ofs);
- *bufp++ = *bsp;
- ofs += 8;
- }
-}
-
-
-/*
- * Write count units of data from bus space described by the tag, handle and
- * ofs tuple. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes. The
- * data is read from the buffer passed by reference and written to successive
- * bus space addresses. Access is unordered.
- */
-static __inline void
-bus_space_write_region_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, const uint8_t *bufp, bus_size_t count)
-{
- while (count-- > 0) {
- uint8_t __volatile *bsp = (uint8_t __volatile *)(bsh + ofs);
- *bsp = *bufp++;
- ofs += 1;
- }
-}
-
-static __inline void
-bus_space_write_region_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, const uint16_t *bufp, bus_size_t count)
-{
- while (count-- > 0) {
- uint16_t __volatile *bsp = (uint16_t __volatile *)(bsh + ofs);
- *bsp = *bufp++;
- ofs += 2;
- }
-}
-
-static __inline void
-bus_space_write_region_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, const uint32_t *bufp, bus_size_t count)
-{
- while (count-- > 0) {
- uint32_t __volatile *bsp = (uint32_t __volatile *)(bsh + ofs);
- *bsp = *bufp++;
- ofs += 4;
- }
-}
-
-static __inline void
-bus_space_write_region_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, const uint64_t *bufp, bus_size_t count)
-{
- while (count-- > 0) {
- uint64_t __volatile *bsp = (uint64_t __volatile *)(bsh + ofs);
- *bsp = *bufp++;
- ofs += 8;
- }
-}
-
-
-/*
- * Write count units of data from bus space described by the tag, handle and
- * ofs tuple. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes. The
- * data is passed by value. Writes are unordered.
- */
-static __inline void
-bus_space_set_multi_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint8_t val, bus_size_t count)
-{
- uint8_t __volatile *bsp = (uint8_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bsp = val;
- }
-}
-
-static __inline void
-bus_space_set_multi_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint16_t val, bus_size_t count)
-{
- uint16_t __volatile *bsp = (uint16_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bsp = val;
- }
-}
-
-static __inline void
-bus_space_set_multi_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint32_t val, bus_size_t count)
-{
- uint32_t __volatile *bsp = (uint32_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bsp = val;
- }
-}
-
-static __inline void
-bus_space_set_multi_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint64_t val, bus_size_t count)
-{
- uint64_t __volatile *bsp = (uint64_t __volatile *)(bsh + ofs);
- while (count-- > 0) {
- *bsp = val;
- }
-}
-
-
-/*
- * Write count units of data from bus space described by the tag, handle and
- * ofs tuple. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes. The
- * data is passed by value and written to successive bus space addresses.
- * Writes are unordered.
- */
-static __inline void
-bus_space_set_region_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint8_t val, bus_size_t count)
-{
- while (count-- > 0) {
- uint8_t __volatile *bsp = (uint8_t __volatile *)(bsh + ofs);
- *bsp = val;
- ofs += 1;
- }
-}
-
-static __inline void
-bus_space_set_region_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint16_t val, bus_size_t count)
-{
- while (count-- > 0) {
- uint16_t __volatile *bsp = (uint16_t __volatile *)(bsh + ofs);
- *bsp = val;
- ofs += 2;
- }
-}
-
-static __inline void
-bus_space_set_region_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint32_t val, bus_size_t count)
-{
- while (count-- > 0) {
- uint32_t __volatile *bsp = (uint32_t __volatile *)(bsh + ofs);
- *bsp = val;
- ofs += 4;
- }
-}
-
-static __inline void
-bus_space_set_region_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh,
- bus_size_t ofs, uint64_t val, bus_size_t count)
-{
- while (count-- > 0) {
- uint64_t __volatile *bsp = (uint64_t __volatile *)(bsh + ofs);
- *bsp = val;
- ofs += 8;
- }
-}
-
-
-/*
- * Copy count units of data from bus space described by the tag and the first
- * handle and ofs pair to bus space described by the tag and the second handle
- * and ofs pair. A unit of data can be 1 byte, 2 bytes, 4 bytes or 8 bytes.
- * The data is read from successive bus space addresses and also written to
- * successive bus space addresses. Both reads and writes are unordered.
- */
-static __inline void
-bus_space_copy_region_1(bus_space_tag_t bst __unused, bus_space_handle_t bsh1,
- bus_size_t ofs1, bus_space_handle_t bsh2, bus_size_t ofs2, bus_size_t count)
-{
- bus_addr_t dst = bsh1 + ofs1;
- bus_addr_t src = bsh2 + ofs2;
- uint8_t __volatile *dstp = (uint8_t __volatile *) dst;
- uint8_t __volatile *srcp = (uint8_t __volatile *) src;
- if (dst > src) {
- src += count - 1;
- dst += count - 1;
- while (count-- > 0) {
- *dstp = *srcp;
- src -= 1;
- dst -= 1;
- }
- } else {
- while (count-- > 0) {
- *dstp = *srcp;
- src += 1;
- dst += 1;
- }
- }
-}
-
-static __inline void
-bus_space_copy_region_2(bus_space_tag_t bst __unused, bus_space_handle_t bsh1,
- bus_size_t ofs1, bus_space_handle_t bsh2, bus_size_t ofs2, bus_size_t count)
-{
- bus_addr_t dst = bsh1 + ofs1;
- bus_addr_t src = bsh2 + ofs2;
- uint16_t __volatile *dstp = (uint16_t __volatile *) dst;
- uint16_t __volatile *srcp = (uint16_t __volatile *) src;
- if (dst > src) {
- src += (count - 1) << 1;
- dst += (count - 1) << 1;
- while (count-- > 0) {
- *dstp = *srcp;
- src -= 2;
- dst -= 2;
- }
- } else {
- while (count-- > 0) {
- *dstp = *srcp;
- src += 2;
- dst += 2;
- }
- }
-}
-
-static __inline void
-bus_space_copy_region_4(bus_space_tag_t bst __unused, bus_space_handle_t bsh1,
- bus_size_t ofs1, bus_space_handle_t bsh2, bus_size_t ofs2, bus_size_t count)
-{
- bus_addr_t dst = bsh1 + ofs1;
- bus_addr_t src = bsh2 + ofs2;
- uint32_t __volatile *dstp = (uint32_t __volatile *) dst;
- uint32_t __volatile *srcp = (uint32_t __volatile *) src;
- if (dst > src) {
- src += (count - 1) << 2;
- dst += (count - 1) << 2;
- while (count-- > 0) {
- *dstp = *srcp;
- src -= 4;
- dst -= 4;
- }
- } else {
- while (count-- > 0) {
- *dstp = *srcp;
- src += 4;
- dst += 4;
- }
- }
-}
-
-static __inline void
-bus_space_copy_region_8(bus_space_tag_t bst __unused, bus_space_handle_t bsh1,
- bus_size_t ofs1, bus_space_handle_t bsh2, bus_size_t ofs2, bus_size_t count)
-{
- bus_addr_t dst = bsh1 + ofs1;
- bus_addr_t src = bsh2 + ofs2;
- uint64_t __volatile *dstp = (uint64_t __volatile *) dst;
- uint64_t __volatile *srcp = (uint64_t __volatile *) src;
- if (dst > src) {
- src += (count - 1) << 3;
- dst += (count - 1) << 3;
- while (count-- > 0) {
- *dstp = *srcp;
- src -= 8;
- dst -= 8;
- }
- } else {
- while (count-- > 0) {
- *dstp = *srcp;
- src += 8;
- dst += 8;
- }
- }
-}
-
-
-/*
- * Stream accesses are the same as normal accesses on RTEMS; there are no
- * supported bus systems with an endianess different from the host one.
- */
-#define bus_space_read_stream_1(t, h, o) \
- bus_space_read_1(t, h, o)
-#define bus_space_read_stream_2(t, h, o) \
- bus_space_read_2(t, h, o)
-#define bus_space_read_stream_4(t, h, o) \
- bus_space_read_4(t, h, o)
-#define bus_space_read_stream_8(t, h, o) \
- bus_space_read_8(t, h, o)
-
-#define bus_space_read_multi_stream_1(t, h, o, a, c) \
- bus_space_read_multi_1(t, h, o, a, c)
-#define bus_space_read_multi_stream_2(t, h, o, a, c) \
- bus_space_read_multi_2(t, h, o, a, c)
-#define bus_space_read_multi_stream_4(t, h, o, a, c) \
- bus_space_read_multi_4(t, h, o, a, c)
-#define bus_space_read_multi_stream_8(t, h, o, a, c) \
- bus_space_read_multi_8(t, h, o, a, c)
-
-#define bus_space_write_stream_1(t, h, o, v) \
- bus_space_write_1(t, h, o, v)
-#define bus_space_write_stream_2(t, h, o, v) \
- bus_space_write_2(t, h, o, v)
-#define bus_space_write_stream_4(t, h, o, v) \
- bus_space_write_4(t, h, o, v)
-#define bus_space_write_stream_8(t, h, o, v) \
- bus_space_write_8(t, h, o, v)
-
-#define bus_space_write_multi_stream_1(t, h, o, a, c) \
- bus_space_write_multi_1(t, h, o, a, c)
-#define bus_space_write_multi_stream_2(t, h, o, a, c) \
- bus_space_write_multi_2(t, h, o, a, c)
-#define bus_space_write_multi_stream_4(t, h, o, a, c) \
- bus_space_write_multi_4(t, h, o, a, c)
-#define bus_space_write_multi_stream_8(t, h, o, a, c) \
- bus_space_write_multi_8(t, h, o, a, c)
-
-#define bus_space_set_multi_stream_1(t, h, o, v, c) \
- bus_space_set_multi_1(t, h, o, v, c)
-#define bus_space_set_multi_stream_2(t, h, o, v, c) \
- bus_space_set_multi_2(t, h, o, v, c)
-#define bus_space_set_multi_stream_4(t, h, o, v, c) \
- bus_space_set_multi_4(t, h, o, v, c)
-#define bus_space_set_multi_stream_8(t, h, o, v, c) \
- bus_space_set_multi_8(t, h, o, v, c)
-
-#define bus_space_read_region_stream_1(t, h, o, a, c) \
- bus_space_read_region_1(t, h, o, a, c)
-#define bus_space_read_region_stream_2(t, h, o, a, c) \
- bus_space_read_region_2(t, h, o, a, c)
-#define bus_space_read_region_stream_4(t, h, o, a, c) \
- bus_space_read_region_4(t, h, o, a, c)
-#define bus_space_read_region_stream_8(t, h, o, a, c) \
- bus_space_read_region_8(t, h, o, a, c)
-
-#define bus_space_write_region_stream_1(t, h, o, a, c) \
- bus_space_write_region_1(t, h, o, a, c)
-#define bus_space_write_region_stream_2(t, h, o, a, c) \
- bus_space_write_region_2(t, h, o, a, c)
-#define bus_space_write_region_stream_4(t, h, o, a, c) \
- bus_space_write_region_4(t, h, o, a, c)
-#define bus_space_write_region_stream_8(t, h, o, a, c) \
- bus_space_write_region_8(t, h, o, a, c)
-
-#define bus_space_set_region_stream_1(t, h, o, v, c) \
- bus_space_set_region_1(t, h, o, v, c)
-#define bus_space_set_region_stream_2(t, h, o, v, c) \
- bus_space_set_region_2(t, h, o, v, c)
-#define bus_space_set_region_stream_4(t, h, o, v, c) \
- bus_space_set_region_4(t, h, o, v, c)
-#define bus_space_set_region_stream_8(t, h, o, v, c) \
- bus_space_set_region_8(t, h, o, v, c)
-
-#define bus_space_copy_region_stream_1(t, h1, o1, h2, o2, c) \
- bus_space_copy_region_1(t, h1, o1, h2, o2, c)
-#define bus_space_copy_region_stream_2(t, h1, o1, h2, o2, c) \
- bus_space_copy_region_2(t, h1, o1, h2, o2, c)
-#define bus_space_copy_region_stream_4(t, h1, o1, h2, o2, c) \
- bus_space_copy_region_4(t, h1, o1, h2, o2, c)
-#define bus_space_copy_region_stream_8(t, h1, o1, h2, o2, c) \
- bus_space_copy_region_8(t, h1, o1, h2, o2, c)
-
-#include <rtems/freebsd/machine/bus_dma.h>
-
-#endif /* _RTEMS_BSD_MACHINE_BUS_H_ */