svn commit: r278727 - in stable/10/sys: arm/allwinner arm/allwinner/a20 arm/arm arm/at91 arm/broadcom/bcm2835 arm/cavium/cns11xx arm/freescale/imx arm/freescale/vybrid arm/include arm/lpc arm/mv ar...
Ian Lepore
ian at FreeBSD.org
Fri Feb 13 22:32:07 UTC 2015
Author: ian
Date: Fri Feb 13 22:32:02 2015
New Revision: 278727
URL: https://svnweb.freebsd.org/changeset/base/278727
Log:
MFC r277454, r277460, r277465, r277466, r277467, r277469, r277470, r277471,
r277472, r277473, r277474, r277475, r277476, r277477, r277478, r277479,
r277480, r277512, r277516:
Add inline implementations of arm bus_space_read/write_N().
Revise the arm bus_space implementation to avoid dereferencing the tag on
every operation to retrieve the bs_cookie value almost nothing actually uses.
Use the explicit member initializer style to init the bus_space struct.
Use arm/bus_space-v6.c for all armv6 systems
Consolidate many identical implementations of bus_space to a single
common tag and implementation shared by armv4 and armv6.
Micro-optimize the new arm inline bus_space implementation by grouping all
the data the inline functions access together at the start of the bus_space
struct so that they all fit in a single cache line.
Added:
stable/10/sys/arm/arm/bus_space_base.c
- copied, changed from r277472, head/sys/arm/arm/bus_space_base.c
Deleted:
stable/10/sys/arm/arm/bus_space-v6.c
stable/10/sys/arm/lpc/lpc_space.c
stable/10/sys/arm/mv/bus_space.c
stable/10/sys/arm/samsung/s3c2xx0/s3c2xx0_space.c
stable/10/sys/arm/versatile/bus_space.c
stable/10/sys/arm/versatile/versatile_pci_bus_space.c
stable/10/sys/arm/versatile/versatile_pci_bus_space.h
stable/10/sys/arm/xilinx/zy7_bus_space.c
stable/10/sys/arm/xscale/i80321/obio_space.c
stable/10/sys/arm/xscale/i8134x/obio_space.c
Modified:
stable/10/sys/arm/allwinner/a20/files.a20
stable/10/sys/arm/allwinner/files.a10
stable/10/sys/arm/arm/bus_space_asm_generic.S
stable/10/sys/arm/arm/bus_space_generic.c
stable/10/sys/arm/at91/at91.c
stable/10/sys/arm/at91/files.at91
stable/10/sys/arm/broadcom/bcm2835/files.bcm2835
stable/10/sys/arm/cavium/cns11xx/econa.c
stable/10/sys/arm/cavium/cns11xx/files.econa
stable/10/sys/arm/freescale/imx/files.imx51
stable/10/sys/arm/freescale/imx/files.imx53
stable/10/sys/arm/freescale/imx/files.imx6
stable/10/sys/arm/freescale/vybrid/files.vybrid
stable/10/sys/arm/include/bus.h
stable/10/sys/arm/lpc/files.lpc
stable/10/sys/arm/mv/files.mv
stable/10/sys/arm/rockchip/files.rk30xx
stable/10/sys/arm/samsung/exynos/files.exynos5
stable/10/sys/arm/samsung/s3c2xx0/files.s3c2xx0
stable/10/sys/arm/samsung/s3c2xx0/s3c24x0.c
stable/10/sys/arm/samsung/s3c2xx0/s3c2xx0var.h
stable/10/sys/arm/samsung/s3c2xx0/uart_cpu_s3c2410.c
stable/10/sys/arm/ti/files.ti
stable/10/sys/arm/versatile/files.versatile
stable/10/sys/arm/versatile/versatile_pci.c
stable/10/sys/arm/xilinx/files.zynq7
stable/10/sys/arm/xscale/i80321/ep80219_machdep.c
stable/10/sys/arm/xscale/i80321/files.ep80219
stable/10/sys/arm/xscale/i80321/files.i80219
stable/10/sys/arm/xscale/i80321/files.i80321
stable/10/sys/arm/xscale/i80321/files.iq31244
stable/10/sys/arm/xscale/i80321/i80321_space.c
stable/10/sys/arm/xscale/i80321/iq31244_machdep.c
stable/10/sys/arm/xscale/i80321/obio.c
stable/10/sys/arm/xscale/i80321/obiovar.h
stable/10/sys/arm/xscale/i80321/uart_cpu_i80321.c
stable/10/sys/arm/xscale/i8134x/crb_machdep.c
stable/10/sys/arm/xscale/i8134x/files.i81342
stable/10/sys/arm/xscale/i8134x/i81342_space.c
stable/10/sys/arm/xscale/i8134x/obio.c
stable/10/sys/arm/xscale/i8134x/obiovar.h
stable/10/sys/arm/xscale/i8134x/uart_cpu_i81342.c
stable/10/sys/arm/xscale/ixp425/avila_ata.c
stable/10/sys/arm/xscale/ixp425/cambria_exp_space.c
stable/10/sys/arm/xscale/ixp425/ixp425_a4x_space.c
stable/10/sys/arm/xscale/ixp425/ixp425_pci_space.c
stable/10/sys/arm/xscale/ixp425/ixp425_space.c
stable/10/sys/arm/xscale/pxa/pxa_space.c
stable/10/sys/dev/usb/controller/ehci_ixp4xx.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/arm/allwinner/a20/files.a20
==============================================================================
--- stable/10/sys/arm/allwinner/a20/files.a20 Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/allwinner/a20/files.a20 Fri Feb 13 22:32:02 2015 (r278727)
@@ -17,7 +17,7 @@ arm/allwinner/a10_ehci.c optional ehci
arm/allwinner/if_emac.c optional emac
arm/allwinner/a10_wdog.c standard
arm/allwinner/timer.c standard
-arm/arm/bus_space-v6.c standard
-arm/allwinner/a10_common.c standard
+arm/arm/bus_space_base.c standard
+arm/allwinner/a10_common.c standard
arm/allwinner/a10_machdep.c standard
arm/allwinner/a20/a20_mp.c optional smp
Modified: stable/10/sys/arm/allwinner/files.a10
==============================================================================
--- stable/10/sys/arm/allwinner/files.a10 Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/allwinner/files.a10 Fri Feb 13 22:32:02 2015 (r278727)
@@ -19,5 +19,5 @@ arm/allwinner/a20/a20_cpu_cfg.c standar
arm/allwinner/aintc.c standard
arm/allwinner/if_emac.c optional emac
arm/allwinner/timer.c standard
-arm/arm/bus_space-v6.c standard
-#arm/allwinner/console.c standard
+arm/arm/bus_space_base.c standard
+#arm/allwinner/console.c standard
Modified: stable/10/sys/arm/arm/bus_space_asm_generic.S
==============================================================================
--- stable/10/sys/arm/arm/bus_space_asm_generic.S Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/arm/bus_space_asm_generic.S Fri Feb 13 22:32:02 2015 (r278727)
@@ -52,10 +52,10 @@ ENTRY(generic_bs_r_1)
RET
END(generic_bs_r_1)
-ENTRY(generic_armv4_bs_r_2)
+ENTRY(generic_bs_r_2)
ldrh r0, [r1, r2]
RET
-END(generic_armv4_bs_r_2)
+END(generic_bs_r_2)
ENTRY(generic_bs_r_4)
ldr r0, [r1, r2]
@@ -71,10 +71,10 @@ ENTRY(generic_bs_w_1)
RET
END(generic_bs_w_1)
-ENTRY(generic_armv4_bs_w_2)
+ENTRY(generic_bs_w_2)
strh r3, [r1, r2]
RET
-END(generic_armv4_bs_w_2)
+END(generic_bs_w_2)
ENTRY(generic_bs_w_4)
str r3, [r1, r2]
@@ -100,7 +100,7 @@ ENTRY(generic_bs_rm_1)
RET
END(generic_bs_rm_1)
-ENTRY(generic_armv4_bs_rm_2)
+ENTRY(generic_bs_rm_2)
add r0, r1, r2
mov r1, r3
ldr r2, [sp, #0]
@@ -113,7 +113,7 @@ ENTRY(generic_armv4_bs_rm_2)
bne 1b
RET
-END(generic_armv4_bs_rm_2)
+END(generic_bs_rm_2)
ENTRY(generic_bs_rm_4)
add r0, r1, r2
@@ -149,7 +149,7 @@ ENTRY(generic_bs_wm_1)
RET
END(generic_bs_wm_1)
-ENTRY(generic_armv4_bs_wm_2)
+ENTRY(generic_bs_wm_2)
add r0, r1, r2
mov r1, r3
ldr r2, [sp, #0]
@@ -162,7 +162,7 @@ ENTRY(generic_armv4_bs_wm_2)
bne 1b
RET
-END(generic_armv4_bs_wm_2)
+END(generic_bs_wm_2)
ENTRY(generic_bs_wm_4)
add r0, r1, r2
@@ -198,7 +198,7 @@ ENTRY(generic_bs_rr_1)
RET
END(generic_bs_rr_1)
-ENTRY(generic_armv4_bs_rr_2)
+ENTRY(generic_bs_rr_2)
add r0, r1, r2
mov r1, r3
ldr r2, [sp, #0]
@@ -211,7 +211,7 @@ ENTRY(generic_armv4_bs_rr_2)
bne 1b
RET
-END(generic_armv4_bs_rr_2)
+END(generic_bs_rr_2)
ENTRY(generic_bs_rr_4)
add r0, r1, r2
@@ -247,7 +247,7 @@ ENTRY(generic_bs_wr_1)
RET
END(generic_bs_wr_1)
-ENTRY(generic_armv4_bs_wr_2)
+ENTRY(generic_bs_wr_2)
add r0, r1, r2
mov r1, r3
ldr r2, [sp, #0]
@@ -260,7 +260,7 @@ ENTRY(generic_armv4_bs_wr_2)
bne 1b
RET
-END(generic_armv4_bs_wr_2)
+END(generic_bs_wr_2)
ENTRY(generic_bs_wr_4)
add r0, r1, r2
@@ -295,7 +295,7 @@ ENTRY(generic_bs_sr_1)
RET
END(generic_bs_sr_1)
-ENTRY(generic_armv4_bs_sr_2)
+ENTRY(generic_bs_sr_2)
add r0, r1, r2
mov r1, r3
ldr r2, [sp, #0]
@@ -307,7 +307,7 @@ ENTRY(generic_armv4_bs_sr_2)
bne 1b
RET
-END(generic_armv4_bs_sr_2)
+END(generic_bs_sr_2)
ENTRY(generic_bs_sr_4)
add r0, r1, r2
@@ -327,7 +327,7 @@ END(generic_bs_sr_4)
* copy region
*/
-ENTRY(generic_armv4_bs_c_2)
+ENTRY(generic_bs_c_2)
add r0, r1, r2
ldr r2, [sp, #0]
add r1, r2, r3
@@ -356,5 +356,5 @@ ENTRY(generic_armv4_bs_c_2)
bne 3b
RET
-END(generic_armv4_bs_c_2)
+END(generic_bs_c_2)
Copied and modified: stable/10/sys/arm/arm/bus_space_base.c (from r277472, head/sys/arm/arm/bus_space_base.c)
==============================================================================
--- head/sys/arm/arm/bus_space_base.c Wed Jan 21 03:44:29 2015 (r277472, copy source)
+++ stable/10/sys/arm/arm/bus_space_base.c Fri Feb 13 22:32:02 2015 (r278727)
@@ -45,7 +45,7 @@ bs_protos(generic);
* The bus space tag. This is constant for all instances, so
* we never have to explicitly "create" it.
*/
-static struct bus_space arm_base_tag = {
+static struct bus_space arm_base_bus_space __aligned(CACHE_LINE_SIZE) = {
/* privdata is whatever the implementer wants; unused in base tag */
.bs_privdata = NULL,
@@ -153,5 +153,7 @@ static struct bus_space arm_base_tag = {
};
#ifdef FDT
-bus_space_tag_t fdtbus_bs_tag = &arm_base_tag;
+bus_space_tag_t fdtbus_bs_tag = &arm_base_bus_space;
#endif
+
+bus_space_tag_t arm_base_bs_tag = &arm_base_bus_space;
Modified: stable/10/sys/arm/arm/bus_space_generic.c
==============================================================================
--- stable/10/sys/arm/arm/bus_space_generic.c Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/arm/bus_space_generic.c Fri Feb 13 22:32:02 2015 (r278727)
@@ -53,11 +53,18 @@ __FBSDID("$FreeBSD$");
#include <machine/cpufunc.h>
#include <machine/devmap.h>
+void
+generic_bs_unimplemented(void)
+{
+
+ panic("unimplemented bus_space function called");
+}
+
/* Prototypes for all the bus_space structure functions */
bs_protos(generic);
int
-generic_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int flags,
+generic_bs_map(bus_space_tag_t t, bus_addr_t bpa, bus_size_t size, int flags,
bus_space_handle_t *bshp)
{
void *va;
@@ -74,7 +81,7 @@ generic_bs_map(void *t, bus_addr_t bpa,
}
int
-generic_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend, bus_size_t size,
+generic_bs_alloc(bus_space_tag_t t, bus_addr_t rstart, bus_addr_t rend, bus_size_t size,
bus_size_t alignment, bus_size_t boundary, int flags, bus_addr_t *bpap,
bus_space_handle_t *bshp)
{
@@ -84,21 +91,21 @@ generic_bs_alloc(void *t, bus_addr_t rst
void
-generic_bs_unmap(void *t, bus_space_handle_t h, bus_size_t size)
+generic_bs_unmap(bus_space_tag_t t, bus_space_handle_t h, bus_size_t size)
{
pmap_unmapdev((vm_offset_t)h, size);
}
void
-generic_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size)
+generic_bs_free(bus_space_tag_t t, bus_space_handle_t bsh, bus_size_t size)
{
panic("generic_bs_free(): not implemented");
}
int
-generic_bs_subregion(void *t, bus_space_handle_t bsh, bus_size_t offset,
+generic_bs_subregion(bus_space_tag_t t, bus_space_handle_t bsh, bus_size_t offset,
bus_size_t size, bus_space_handle_t *nbshp)
{
@@ -107,7 +114,7 @@ generic_bs_subregion(void *t, bus_space_
}
void
-generic_bs_barrier(void *t, bus_space_handle_t bsh, bus_size_t offset,
+generic_bs_barrier(bus_space_tag_t t, bus_space_handle_t bsh, bus_size_t offset,
bus_size_t len, int flags)
{
Modified: stable/10/sys/arm/at91/at91.c
==============================================================================
--- stable/10/sys/arm/at91/at91.c Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/at91/at91.c Fri Feb 13 22:32:02 2015 (r278727)
@@ -55,7 +55,7 @@ __FBSDID("$FreeBSD$");
uint32_t at91_master_clock;
static int
-at91_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int flags,
+at91_bs_map(bus_space_tag_t tag, bus_addr_t bpa, bus_size_t size, int flags,
bus_space_handle_t *bshp)
{
vm_paddr_t pa, endpa;
@@ -77,23 +77,18 @@ at91_bs_map(void *t, bus_addr_t bpa, bus
}
static void
-at91_bs_unmap(void *t, bus_space_handle_t h, bus_size_t size)
+at91_bs_unmap(bus_space_tag_t tag, bus_space_handle_t h, bus_size_t size)
{
- vm_offset_t va, endva;
+ vm_offset_t va;
- if (t == 0)
- return;
- va = trunc_page((vm_offset_t)t);
+ va = (vm_offset_t)h;
if (va >= AT91_BASE && va <= AT91_BASE + 0xff00000)
return;
- endva = round_page((vm_offset_t)t + size);
-
- /* Free the kernel virtual mapping. */
- kva_free(va, endva - va);
+ pmap_unmapdev(va, size);
}
static int
-at91_bs_subregion(void *t, bus_space_handle_t bsh, bus_size_t offset,
+at91_bs_subregion(bus_space_tag_t tag, bus_space_handle_t bsh, bus_size_t offset,
bus_size_t size, bus_space_handle_t *nbshp)
{
@@ -102,7 +97,7 @@ at91_bs_subregion(void *t, bus_space_han
}
static void
-at91_barrier(void *t, bus_space_handle_t bsh, bus_size_t size, bus_size_t b,
+at91_barrier(bus_space_tag_t tag, bus_space_handle_t bsh, bus_size_t size, bus_size_t b,
int a)
{
}
@@ -121,113 +116,112 @@ bus_dma_get_range_nb(void)
}
bs_protos(generic);
-bs_protos(generic_armv4);
struct bus_space at91_bs_tag = {
- /* cookie */
- (void *) 0,
+ /* privdata is whatever the implementer wants; unused in base tag */
+ .bs_privdata = NULL,
/* mapping/unmapping */
- at91_bs_map,
- at91_bs_unmap,
- at91_bs_subregion,
+ .bs_map = at91_bs_map,
+ .bs_unmap = at91_bs_unmap,
+ .bs_subregion = at91_bs_subregion,
/* allocation/deallocation */
- NULL,
- NULL,
+ .bs_alloc = generic_bs_alloc,
+ .bs_free = generic_bs_free,
/* barrier */
- at91_barrier,
+ .bs_barrier = at91_barrier,
/* read (single) */
- generic_bs_r_1,
- generic_armv4_bs_r_2,
- generic_bs_r_4,
- NULL,
+ .bs_r_1 = NULL, /* Use inline code in bus.h */
+ .bs_r_2 = NULL, /* Use inline code in bus.h */
+ .bs_r_4 = NULL, /* Use inline code in bus.h */
+ .bs_r_8 = NULL, /* Use inline code in bus.h */
/* read multiple */
- generic_bs_rm_1,
- generic_armv4_bs_rm_2,
- generic_bs_rm_4,
- NULL,
+ .bs_rm_1 = generic_bs_rm_1,
+ .bs_rm_2 = generic_bs_rm_2,
+ .bs_rm_4 = generic_bs_rm_4,
+ .bs_rm_8 = BS_UNIMPLEMENTED,
/* read region */
- generic_bs_rr_1,
- generic_armv4_bs_rr_2,
- generic_bs_rr_4,
- NULL,
+ .bs_rr_1 = generic_bs_rr_1,
+ .bs_rr_2 = generic_bs_rr_2,
+ .bs_rr_4 = generic_bs_rr_4,
+ .bs_rr_8 = BS_UNIMPLEMENTED,
/* write (single) */
- generic_bs_w_1,
- generic_armv4_bs_w_2,
- generic_bs_w_4,
- NULL,
+ .bs_w_1 = NULL, /* Use inline code in bus.h */
+ .bs_w_2 = NULL, /* Use inline code in bus.h */
+ .bs_w_4 = NULL, /* Use inline code in bus.h */
+ .bs_w_8 = NULL, /* Use inline code in bus.h */
/* write multiple */
- generic_bs_wm_1,
- generic_armv4_bs_wm_2,
- generic_bs_wm_4,
- NULL,
+ .bs_wm_1 = generic_bs_wm_1,
+ .bs_wm_2 = generic_bs_wm_2,
+ .bs_wm_4 = generic_bs_wm_4,
+ .bs_wm_8 = BS_UNIMPLEMENTED,
/* write region */
- NULL,
- generic_armv4_bs_wr_2,
- generic_bs_wr_4,
- NULL,
+ .bs_wr_1 = generic_bs_wr_1,
+ .bs_wr_2 = generic_bs_wr_2,
+ .bs_wr_4 = generic_bs_wr_4,
+ .bs_wr_8 = BS_UNIMPLEMENTED,
/* set multiple */
- NULL,
- NULL,
- NULL,
- NULL,
+ .bs_sm_1 = BS_UNIMPLEMENTED,
+ .bs_sm_2 = BS_UNIMPLEMENTED,
+ .bs_sm_4 = BS_UNIMPLEMENTED,
+ .bs_sm_8 = BS_UNIMPLEMENTED,
/* set region */
- NULL,
- generic_armv4_bs_sr_2,
- generic_bs_sr_4,
- NULL,
+ .bs_sr_1 = generic_bs_sr_1,
+ .bs_sr_2 = generic_bs_sr_2,
+ .bs_sr_4 = generic_bs_sr_4,
+ .bs_sr_8 = BS_UNIMPLEMENTED,
/* copy */
- NULL,
- generic_armv4_bs_c_2,
- NULL,
- NULL,
-
- /* read (single) stream */
- generic_bs_r_1,
- generic_armv4_bs_r_2,
- generic_bs_r_4,
- NULL,
+ .bs_c_1 = BS_UNIMPLEMENTED,
+ .bs_c_2 = generic_bs_c_2,
+ .bs_c_4 = BS_UNIMPLEMENTED,
+ .bs_c_8 = BS_UNIMPLEMENTED,
+
+ /* read stream (single) */
+ .bs_r_1_s = NULL, /* Use inline code in bus.h */
+ .bs_r_2_s = NULL, /* Use inline code in bus.h */
+ .bs_r_4_s = NULL, /* Use inline code in bus.h */
+ .bs_r_8_s = NULL, /* Use inline code in bus.h */
/* read multiple stream */
- generic_bs_rm_1,
- generic_armv4_bs_rm_2,
- generic_bs_rm_4,
- NULL,
+ .bs_rm_1_s = generic_bs_rm_1,
+ .bs_rm_2_s = generic_bs_rm_2,
+ .bs_rm_4_s = generic_bs_rm_4,
+ .bs_rm_8_s = BS_UNIMPLEMENTED,
/* read region stream */
- generic_bs_rr_1,
- generic_armv4_bs_rr_2,
- generic_bs_rr_4,
- NULL,
-
- /* write (single) stream */
- generic_bs_w_1,
- generic_armv4_bs_w_2,
- generic_bs_w_4,
- NULL,
+ .bs_rr_1_s = generic_bs_rr_1,
+ .bs_rr_2_s = generic_bs_rr_2,
+ .bs_rr_4_s = generic_bs_rr_4,
+ .bs_rr_8_s = BS_UNIMPLEMENTED,
+
+ /* write stream (single) */
+ .bs_w_1_s = NULL, /* Use inline code in bus.h */
+ .bs_w_2_s = NULL, /* Use inline code in bus.h */
+ .bs_w_4_s = NULL, /* Use inline code in bus.h */
+ .bs_w_8_s = NULL, /* Use inline code in bus.h */
/* write multiple stream */
- generic_bs_wm_1,
- generic_armv4_bs_wm_2,
- generic_bs_wm_4,
- NULL,
+ .bs_wm_1_s = generic_bs_wm_1,
+ .bs_wm_2_s = generic_bs_wm_2,
+ .bs_wm_4_s = generic_bs_wm_4,
+ .bs_wm_8_s = BS_UNIMPLEMENTED,
/* write region stream */
- NULL,
- generic_armv4_bs_wr_2,
- generic_bs_wr_4,
- NULL,
+ .bs_wr_1_s = generic_bs_wr_1,
+ .bs_wr_2_s = generic_bs_wr_2,
+ .bs_wr_4_s = generic_bs_wr_4,
+ .bs_wr_8_s = BS_UNIMPLEMENTED,
};
#ifndef FDT
Modified: stable/10/sys/arm/at91/files.at91
==============================================================================
--- stable/10/sys/arm/at91/files.at91 Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/at91/files.at91 Fri Feb 13 22:32:02 2015 (r278727)
@@ -1,4 +1,5 @@
# $FreeBSD$
+arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_arm9.S standard
arm/at91/at91_machdep.c standard
arm/at91/at91_aic.c standard
Modified: stable/10/sys/arm/broadcom/bcm2835/files.bcm2835
==============================================================================
--- stable/10/sys/arm/broadcom/bcm2835/files.bcm2835 Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/broadcom/bcm2835/files.bcm2835 Fri Feb 13 22:32:02 2015 (r278727)
@@ -16,7 +16,7 @@ arm/broadcom/bcm2835/bcm2835_systimer.c
arm/broadcom/bcm2835/bcm2835_wdog.c standard
dev/usb/controller/dwc_otg_fdt.c optional dwcotg
-arm/arm/bus_space-v6.c standard
+arm/arm/bus_space_base.c standard
arm/arm/bus_space_generic.c standard
arm/arm/bus_space_asm_generic.S standard
arm/arm/cpufunc_asm_arm11.S standard
Modified: stable/10/sys/arm/cavium/cns11xx/econa.c
==============================================================================
--- stable/10/sys/arm/cavium/cns11xx/econa.c Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/cavium/cns11xx/econa.c Fri Feb 13 22:32:02 2015 (r278727)
@@ -56,117 +56,7 @@ unsigned int CPU_clock = 200000000;
unsigned int AHB_clock;
unsigned int APB_clock;
-bs_protos(generic);
-bs_protos(generic_armv4);
-
-struct bus_space econa_bs_tag = {
- /* cookie */
- (void *) 0,
-
- /* mapping/unmapping */
- generic_bs_map,
- generic_bs_unmap,
- generic_bs_subregion,
-
- /* allocation/deallocation */
- generic_bs_alloc,
- generic_bs_free,
-
- /* barrier */
- generic_bs_barrier,
-
- /* read (single) */
- generic_bs_r_1,
- generic_armv4_bs_r_2,
- generic_bs_r_4,
- NULL,
-
- /* read multiple */
- generic_bs_rm_1,
- generic_armv4_bs_rm_2,
- generic_bs_rm_4,
- NULL,
-
- /* read region */
- generic_bs_rr_1,
- generic_armv4_bs_rr_2,
- generic_bs_rr_4,
- NULL,
-
- /* write (single) */
- generic_bs_w_1,
- generic_armv4_bs_w_2,
- generic_bs_w_4,
- NULL,
-
- /* write multiple */
- generic_bs_wm_1,
- generic_armv4_bs_wm_2,
- generic_bs_wm_4,
- NULL,
-
- /* write region */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* set multiple */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* set region */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* copy */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* read (single) stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* read multiple stream */
- NULL,
- generic_armv4_bs_rm_2,
- NULL,
- NULL,
-
- /* read region stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* write (single) stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* write multiple stream */
- NULL,
- generic_armv4_bs_wm_2,
- NULL,
- NULL,
-
- /* write region stream */
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-bus_space_tag_t obio_tag = &econa_bs_tag;
+bus_space_tag_t obio_tag;
static int
econa_probe(device_t dev)
@@ -465,8 +355,10 @@ econa_attach(device_t dev)
struct econa_softc *sc = device_get_softc(dev);
int i;
+ obio_tag = arm_base_bs_tag;
+
econa_softc = sc;
- sc->ec_st = &econa_bs_tag;
+ sc->ec_st = arm_base_bs_tag;
sc->ec_sh = ECONA_IO_BASE;
sc->dev = dev;
if (bus_space_subregion(sc->ec_st, sc->ec_sh, ECONA_PIC_BASE,
@@ -548,7 +440,7 @@ econa_alloc_resource(device_t dev, devic
rle->res = rman_reserve_resource(&sc->ec_mem_rman,
start, end, count, flags, child);
if (rle->res != NULL) {
- rman_set_bustag(rle->res, &econa_bs_tag);
+ rman_set_bustag(rle->res, arm_base_bs_tag);
rman_set_bushandle(rle->res, start);
}
break;
Modified: stable/10/sys/arm/cavium/cns11xx/files.econa
==============================================================================
--- stable/10/sys/arm/cavium/cns11xx/files.econa Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/cavium/cns11xx/files.econa Fri Feb 13 22:32:02 2015 (r278727)
@@ -6,6 +6,7 @@ arm/cavium/cns11xx/timer.c standard
arm/cavium/cns11xx/uart_bus_ec.c optional uart
arm/cavium/cns11xx/uart_cpu_ec.c optional uart
dev/uart/uart_dev_ns8250.c optional uart
+arm/arm/bus_space_base.c standard
arm/arm/bus_space_generic.c standard
arm/cavium/cns11xx/ehci_ebus.c optional ehci
arm/cavium/cns11xx/ohci_ec.c optional ohci
Modified: stable/10/sys/arm/freescale/imx/files.imx51
==============================================================================
--- stable/10/sys/arm/freescale/imx/files.imx51 Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/freescale/imx/files.imx51 Fri Feb 13 22:32:02 2015 (r278727)
@@ -10,7 +10,7 @@ kern/kern_clocksource.c standard
arm/freescale/imx/imx_common.c standard
arm/freescale/imx/imx_machdep.c standard
arm/freescale/imx/imx51_machdep.c standard
-arm/arm/bus_space-v6.c standard
+arm/arm/bus_space_base.c standard
# Dummy serial console
#arm/freescale/imx/console.c standard
Modified: stable/10/sys/arm/freescale/imx/files.imx53
==============================================================================
--- stable/10/sys/arm/freescale/imx/files.imx53 Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/freescale/imx/files.imx53 Fri Feb 13 22:32:02 2015 (r278727)
@@ -10,7 +10,7 @@ kern/kern_clocksource.c standard
arm/freescale/imx/imx_common.c standard
arm/freescale/imx/imx_machdep.c standard
arm/freescale/imx/imx53_machdep.c standard
-arm/arm/bus_space-v6.c standard
+arm/arm/bus_space_base.c standard
# Special serial console for debuging early boot code
#arm/freescale/imx/console.c standard
Modified: stable/10/sys/arm/freescale/imx/files.imx6
==============================================================================
--- stable/10/sys/arm/freescale/imx/files.imx6 Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/freescale/imx/files.imx6 Fri Feb 13 22:32:02 2015 (r278727)
@@ -15,7 +15,7 @@ kern/kern_clocksource.c standard
#
arm/arm/gic.c standard
arm/arm/pl310.c standard
-arm/arm/bus_space-v6.c standard
+arm/arm/bus_space_base.c standard
arm/arm/mpcore_timer.c standard
arm/freescale/fsl_ocotp.c standard
arm/freescale/imx/imx6_anatop.c standard
Modified: stable/10/sys/arm/freescale/vybrid/files.vybrid
==============================================================================
--- stable/10/sys/arm/freescale/vybrid/files.vybrid Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/freescale/vybrid/files.vybrid Fri Feb 13 22:32:02 2015 (r278727)
@@ -9,7 +9,7 @@ arm/arm/cpufunc_asm_arm10.S standard
arm/arm/cpufunc_asm_arm11.S standard
arm/arm/cpufunc_asm_armv7.S standard
-arm/arm/bus_space-v6.c standard
+arm/arm/bus_space_base.c standard
arm/arm/gic.c standard
arm/arm/mpcore_timer.c standard
Modified: stable/10/sys/arm/include/bus.h
==============================================================================
--- stable/10/sys/arm/include/bus.h Fri Feb 13 22:08:19 2015 (r278726)
+++ stable/10/sys/arm/include/bus.h Fri Feb 13 22:32:02 2015 (r278727)
@@ -79,172 +79,180 @@
#define BUS_SPACE_MAP_LINEAR 0x02
#define BUS_SPACE_MAP_PREFETCHABLE 0x04
+/*
+ * Bus space for ARM.
+ *
+ * The functions used most often are grouped together at the beginning to ensure
+ * that all the data fits into a single cache line. The inline implementations
+ * of single read/write access these values a lot.
+ */
struct bus_space {
- /* cookie */
- void *bs_cookie;
+ /* Read/write single and barrier: the most commonly used functions. */
+ uint8_t (*bs_r_1)(bus_space_tag_t, bus_space_handle_t, bus_size_t);
+ uint32_t (*bs_r_4)(bus_space_tag_t, bus_space_handle_t, bus_size_t);
+ void (*bs_w_1)(bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint8_t);
+ void (*bs_w_4)(bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint32_t);
+ void (*bs_barrier)(bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, bus_size_t, int);
+
+ /* Backlink to parent (if copied), and implementation private data. */
+ struct bus_space *bs_parent;
+ void *bs_privdata;
/* mapping/unmapping */
- int (*bs_map) (void *, bus_addr_t, bus_size_t,
+ int (*bs_map) (bus_space_tag_t, bus_addr_t, bus_size_t,
int, bus_space_handle_t *);
- void (*bs_unmap) (void *, bus_space_handle_t, bus_size_t);
- int (*bs_subregion) (void *, bus_space_handle_t,
+ void (*bs_unmap) (bus_space_tag_t, bus_space_handle_t, bus_size_t);
+ int (*bs_subregion) (bus_space_tag_t, bus_space_handle_t,
bus_size_t, bus_size_t, bus_space_handle_t *);
/* allocation/deallocation */
- int (*bs_alloc) (void *, bus_addr_t, bus_addr_t,
+ int (*bs_alloc) (bus_space_tag_t, bus_addr_t, bus_addr_t,
bus_size_t, bus_size_t, bus_size_t, int,
bus_addr_t *, bus_space_handle_t *);
- void (*bs_free) (void *, bus_space_handle_t,
+ void (*bs_free) (bus_space_tag_t, bus_space_handle_t,
bus_size_t);
- /* get kernel virtual address */
- /* barrier */
- void (*bs_barrier) (void *, bus_space_handle_t,
- bus_size_t, bus_size_t, int);
-
- /* read (single) */
- u_int8_t (*bs_r_1) (void *, bus_space_handle_t, bus_size_t);
- u_int16_t (*bs_r_2) (void *, bus_space_handle_t, bus_size_t);
- u_int32_t (*bs_r_4) (void *, bus_space_handle_t, bus_size_t);
- u_int64_t (*bs_r_8) (void *, bus_space_handle_t, bus_size_t);
+ /* Read single, the less commonly used functions. */
+ uint16_t (*bs_r_2) (bus_space_tag_t, bus_space_handle_t, bus_size_t);
+ uint64_t (*bs_r_8) (bus_space_tag_t, bus_space_handle_t, bus_size_t);
/* read multiple */
- void (*bs_rm_1) (void *, bus_space_handle_t, bus_size_t,
- u_int8_t *, bus_size_t);
- void (*bs_rm_2) (void *, bus_space_handle_t, bus_size_t,
- u_int16_t *, bus_size_t);
- void (*bs_rm_4) (void *, bus_space_handle_t,
- bus_size_t, u_int32_t *, bus_size_t);
- void (*bs_rm_8) (void *, bus_space_handle_t,
- bus_size_t, u_int64_t *, bus_size_t);
+ void (*bs_rm_1) (bus_space_tag_t, bus_space_handle_t, bus_size_t,
+ uint8_t *, bus_size_t);
+ void (*bs_rm_2) (bus_space_tag_t, bus_space_handle_t, bus_size_t,
+ uint16_t *, bus_size_t);
+ void (*bs_rm_4) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint32_t *, bus_size_t);
+ void (*bs_rm_8) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint64_t *, bus_size_t);
/* read region */
- void (*bs_rr_1) (void *, bus_space_handle_t,
- bus_size_t, u_int8_t *, bus_size_t);
- void (*bs_rr_2) (void *, bus_space_handle_t,
- bus_size_t, u_int16_t *, bus_size_t);
- void (*bs_rr_4) (void *, bus_space_handle_t,
- bus_size_t, u_int32_t *, bus_size_t);
- void (*bs_rr_8) (void *, bus_space_handle_t,
- bus_size_t, u_int64_t *, bus_size_t);
+ void (*bs_rr_1) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint8_t *, bus_size_t);
+ void (*bs_rr_2) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint16_t *, bus_size_t);
+ void (*bs_rr_4) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint32_t *, bus_size_t);
+ void (*bs_rr_8) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint64_t *, bus_size_t);
- /* write (single) */
- void (*bs_w_1) (void *, bus_space_handle_t,
- bus_size_t, u_int8_t);
- void (*bs_w_2) (void *, bus_space_handle_t,
- bus_size_t, u_int16_t);
- void (*bs_w_4) (void *, bus_space_handle_t,
- bus_size_t, u_int32_t);
- void (*bs_w_8) (void *, bus_space_handle_t,
- bus_size_t, u_int64_t);
+ /* Write single, the less commonly used functions. */
+ void (*bs_w_2) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint16_t);
+ void (*bs_w_8) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint64_t);
/* write multiple */
- void (*bs_wm_1) (void *, bus_space_handle_t,
- bus_size_t, const u_int8_t *, bus_size_t);
- void (*bs_wm_2) (void *, bus_space_handle_t,
- bus_size_t, const u_int16_t *, bus_size_t);
- void (*bs_wm_4) (void *, bus_space_handle_t,
- bus_size_t, const u_int32_t *, bus_size_t);
- void (*bs_wm_8) (void *, bus_space_handle_t,
- bus_size_t, const u_int64_t *, bus_size_t);
+ void (*bs_wm_1) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint8_t *, bus_size_t);
+ void (*bs_wm_2) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint16_t *, bus_size_t);
+ void (*bs_wm_4) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint32_t *, bus_size_t);
+ void (*bs_wm_8) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint64_t *, bus_size_t);
/* write region */
- void (*bs_wr_1) (void *, bus_space_handle_t,
- bus_size_t, const u_int8_t *, bus_size_t);
- void (*bs_wr_2) (void *, bus_space_handle_t,
- bus_size_t, const u_int16_t *, bus_size_t);
- void (*bs_wr_4) (void *, bus_space_handle_t,
- bus_size_t, const u_int32_t *, bus_size_t);
- void (*bs_wr_8) (void *, bus_space_handle_t,
- bus_size_t, const u_int64_t *, bus_size_t);
+ void (*bs_wr_1) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint8_t *, bus_size_t);
+ void (*bs_wr_2) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint16_t *, bus_size_t);
+ void (*bs_wr_4) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint32_t *, bus_size_t);
+ void (*bs_wr_8) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint64_t *, bus_size_t);
/* set multiple */
- void (*bs_sm_1) (void *, bus_space_handle_t,
- bus_size_t, u_int8_t, bus_size_t);
- void (*bs_sm_2) (void *, bus_space_handle_t,
- bus_size_t, u_int16_t, bus_size_t);
- void (*bs_sm_4) (void *, bus_space_handle_t,
- bus_size_t, u_int32_t, bus_size_t);
- void (*bs_sm_8) (void *, bus_space_handle_t,
- bus_size_t, u_int64_t, bus_size_t);
+ void (*bs_sm_1) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint8_t, bus_size_t);
+ void (*bs_sm_2) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint16_t, bus_size_t);
+ void (*bs_sm_4) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint32_t, bus_size_t);
+ void (*bs_sm_8) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint64_t, bus_size_t);
/* set region */
- void (*bs_sr_1) (void *, bus_space_handle_t,
- bus_size_t, u_int8_t, bus_size_t);
- void (*bs_sr_2) (void *, bus_space_handle_t,
- bus_size_t, u_int16_t, bus_size_t);
- void (*bs_sr_4) (void *, bus_space_handle_t,
- bus_size_t, u_int32_t, bus_size_t);
- void (*bs_sr_8) (void *, bus_space_handle_t,
- bus_size_t, u_int64_t, bus_size_t);
+ void (*bs_sr_1) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint8_t, bus_size_t);
+ void (*bs_sr_2) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint16_t, bus_size_t);
+ void (*bs_sr_4) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint32_t, bus_size_t);
+ void (*bs_sr_8) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint64_t, bus_size_t);
/* copy */
- void (*bs_c_1) (void *, bus_space_handle_t, bus_size_t,
+ void (*bs_c_1) (bus_space_tag_t, bus_space_handle_t, bus_size_t,
bus_space_handle_t, bus_size_t, bus_size_t);
- void (*bs_c_2) (void *, bus_space_handle_t, bus_size_t,
+ void (*bs_c_2) (bus_space_tag_t, bus_space_handle_t, bus_size_t,
bus_space_handle_t, bus_size_t, bus_size_t);
- void (*bs_c_4) (void *, bus_space_handle_t, bus_size_t,
+ void (*bs_c_4) (bus_space_tag_t, bus_space_handle_t, bus_size_t,
bus_space_handle_t, bus_size_t, bus_size_t);
- void (*bs_c_8) (void *, bus_space_handle_t, bus_size_t,
+ void (*bs_c_8) (bus_space_tag_t, bus_space_handle_t, bus_size_t,
bus_space_handle_t, bus_size_t, bus_size_t);
/* read stream (single) */
- u_int8_t (*bs_r_1_s) (void *, bus_space_handle_t, bus_size_t);
- u_int16_t (*bs_r_2_s) (void *, bus_space_handle_t, bus_size_t);
- u_int32_t (*bs_r_4_s) (void *, bus_space_handle_t, bus_size_t);
- u_int64_t (*bs_r_8_s) (void *, bus_space_handle_t, bus_size_t);
+ uint8_t (*bs_r_1_s) (bus_space_tag_t, bus_space_handle_t, bus_size_t);
+ uint16_t (*bs_r_2_s) (bus_space_tag_t, bus_space_handle_t, bus_size_t);
+ uint32_t (*bs_r_4_s) (bus_space_tag_t, bus_space_handle_t, bus_size_t);
+ uint64_t (*bs_r_8_s) (bus_space_tag_t, bus_space_handle_t, bus_size_t);
/* read multiple stream */
- void (*bs_rm_1_s) (void *, bus_space_handle_t, bus_size_t,
- u_int8_t *, bus_size_t);
- void (*bs_rm_2_s) (void *, bus_space_handle_t, bus_size_t,
- u_int16_t *, bus_size_t);
- void (*bs_rm_4_s) (void *, bus_space_handle_t,
- bus_size_t, u_int32_t *, bus_size_t);
- void (*bs_rm_8_s) (void *, bus_space_handle_t,
- bus_size_t, u_int64_t *, bus_size_t);
+ void (*bs_rm_1_s) (bus_space_tag_t, bus_space_handle_t, bus_size_t,
+ uint8_t *, bus_size_t);
+ void (*bs_rm_2_s) (bus_space_tag_t, bus_space_handle_t, bus_size_t,
+ uint16_t *, bus_size_t);
+ void (*bs_rm_4_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint32_t *, bus_size_t);
+ void (*bs_rm_8_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint64_t *, bus_size_t);
/* read region stream */
- void (*bs_rr_1_s) (void *, bus_space_handle_t,
- bus_size_t, u_int8_t *, bus_size_t);
- void (*bs_rr_2_s) (void *, bus_space_handle_t,
- bus_size_t, u_int16_t *, bus_size_t);
- void (*bs_rr_4_s) (void *, bus_space_handle_t,
- bus_size_t, u_int32_t *, bus_size_t);
- void (*bs_rr_8_s) (void *, bus_space_handle_t,
- bus_size_t, u_int64_t *, bus_size_t);
+ void (*bs_rr_1_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint8_t *, bus_size_t);
+ void (*bs_rr_2_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint16_t *, bus_size_t);
+ void (*bs_rr_4_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint32_t *, bus_size_t);
+ void (*bs_rr_8_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint64_t *, bus_size_t);
/* write stream (single) */
- void (*bs_w_1_s) (void *, bus_space_handle_t,
- bus_size_t, u_int8_t);
- void (*bs_w_2_s) (void *, bus_space_handle_t,
- bus_size_t, u_int16_t);
- void (*bs_w_4_s) (void *, bus_space_handle_t,
- bus_size_t, u_int32_t);
- void (*bs_w_8_s) (void *, bus_space_handle_t,
- bus_size_t, u_int64_t);
+ void (*bs_w_1_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint8_t);
+ void (*bs_w_2_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint16_t);
+ void (*bs_w_4_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint32_t);
+ void (*bs_w_8_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, uint64_t);
/* write multiple stream */
- void (*bs_wm_1_s) (void *, bus_space_handle_t,
- bus_size_t, const u_int8_t *, bus_size_t);
- void (*bs_wm_2_s) (void *, bus_space_handle_t,
- bus_size_t, const u_int16_t *, bus_size_t);
- void (*bs_wm_4_s) (void *, bus_space_handle_t,
- bus_size_t, const u_int32_t *, bus_size_t);
- void (*bs_wm_8_s) (void *, bus_space_handle_t,
- bus_size_t, const u_int64_t *, bus_size_t);
+ void (*bs_wm_1_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint8_t *, bus_size_t);
+ void (*bs_wm_2_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint16_t *, bus_size_t);
+ void (*bs_wm_4_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint32_t *, bus_size_t);
+ void (*bs_wm_8_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint64_t *, bus_size_t);
/* write region stream */
- void (*bs_wr_1_s) (void *, bus_space_handle_t,
- bus_size_t, const u_int8_t *, bus_size_t);
- void (*bs_wr_2_s) (void *, bus_space_handle_t,
- bus_size_t, const u_int16_t *, bus_size_t);
- void (*bs_wr_4_s) (void *, bus_space_handle_t,
- bus_size_t, const u_int32_t *, bus_size_t);
- void (*bs_wr_8_s) (void *, bus_space_handle_t,
- bus_size_t, const u_int64_t *, bus_size_t);
+ void (*bs_wr_1_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint8_t *, bus_size_t);
+ void (*bs_wr_2_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint16_t *, bus_size_t);
+ void (*bs_wr_4_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint32_t *, bus_size_t);
+ void (*bs_wr_8_s) (bus_space_tag_t, bus_space_handle_t,
+ bus_size_t, const uint64_t *, bus_size_t);
};
+extern bus_space_tag_t arm_base_bs_tag;
/*
* Utility macros; INTERNAL USE ONLY.
@@ -252,51 +260,69 @@ struct bus_space {
#define __bs_c(a,b) __CONCAT(a,b)
#define __bs_opname(op,size) __bs_c(__bs_c(__bs_c(bs_,op),_),size)
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-stable-10
mailing list