aboutsummaryrefslogtreecommitdiff
path: root/sys/arm
diff options
context:
space:
mode:
authorScott Long <scottl@FreeBSD.org>2020-09-14 05:58:12 +0000
committerScott Long <scottl@FreeBSD.org>2020-09-14 05:58:12 +0000
commit74c781ed913dc866ec596e3a7875e5b0c76f7e22 (patch)
tree1604f8bdd0adc7691f3a39cd1afac4f0583b8b82 /sys/arm
parent7c9b0046d420a1b979961122ca4bd21efbb2978f (diff)
downloadsrc-74c781ed913dc866ec596e3a7875e5b0c76f7e22.tar.gz
src-74c781ed913dc866ec596e3a7875e5b0c76f7e22.zip
Refine the busdma template interface. Provide tools for filling in fields
that can be extended, but also ensure compile-time type checking. Refactor common code out of arch-specific implementations. Move the mpr and mps drivers to this new API. The template type remains visible to the consumer so that it can be allocated on the stack, but should be considered opaque.
Notes
Notes: svn path=/head/; revision=365706
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/busdma_machdep.c33
1 files changed, 1 insertions, 32 deletions
diff --git a/sys/arm/arm/busdma_machdep.c b/sys/arm/arm/busdma_machdep.c
index 25af44c17e6e..7d978ca0163d 100644
--- a/sys/arm/arm/busdma_machdep.c
+++ b/sys/arm/arm/busdma_machdep.c
@@ -577,38 +577,7 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment,
}
void
-bus_dma_template_init(bus_dma_tag_template_t *t, bus_dma_tag_t parent)
-{
-
- if (t == NULL)
- return;
-
- t->parent = parent;
- t->alignment = 1;
- t->boundary = 0;
- t->lowaddr = t->highaddr = BUS_SPACE_MAXADDR;
- t->maxsize = t->maxsegsize = BUS_SPACE_MAXSIZE;
- t->nsegments = BUS_SPACE_UNRESTRICTED;
- t->lockfunc = NULL;
- t->lockfuncarg = NULL;
- t->flags = 0;
-}
-
-int
-bus_dma_template_tag(bus_dma_tag_template_t *t, bus_dma_tag_t *dmat)
-{
-
- if (t == NULL || dmat == NULL)
- return (EINVAL);
-
- return (bus_dma_tag_create(t->parent, t->alignment, t->boundary,
- t->lowaddr, t->highaddr, NULL, NULL, t->maxsize,
- t->nsegments, t->maxsegsize, t->flags, t->lockfunc, t->lockfuncarg,
- dmat));
-}
-
-void
-bus_dma_template_clone(bus_dma_tag_template_t *t, bus_dma_tag_t dmat)
+bus_dma_template_clone(bus_dma_template_t *t, bus_dma_tag_t dmat)
{
if (t == NULL || dmat == NULL)