Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F165323441
D41028.id124688.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D41028.id124688.diff
View Options
diff --git a/sys/kern/subr_bus_dma.c b/sys/kern/subr_bus_dma.c
--- a/sys/kern/subr_bus_dma.c
+++ b/sys/kern/subr_bus_dma.c
@@ -583,6 +583,10 @@
error = _bus_dmamap_load_mbuf_sg(dmat, map, mem->u.md_mbuf,
NULL, &nsegs, flags);
break;
+ case MEMDESC_VMPAGES:
+ error = _bus_dmamap_load_ma(dmat, map, mem->u.md_ma,
+ mem->md_len, mem->md_offset, flags, NULL, &nsegs);
+ break;
}
nsegs++;
diff --git a/sys/sys/memdesc.h b/sys/sys/memdesc.h
--- a/sys/sys/memdesc.h
+++ b/sys/sys/memdesc.h
@@ -35,6 +35,7 @@
struct bus_dma_segment;
struct uio;
struct mbuf;
+struct vm_page;
union ccb;
/*
@@ -49,11 +50,15 @@
struct bio *md_bio;
struct uio *md_uio;
struct mbuf *md_mbuf;
+ struct vm_page **md_ma;
} u;
union { /* type specific data. */
- size_t md_len; /* VADDR, PADDR */
+ size_t md_len; /* VADDR, PADDR, VMPAGES */
int md_nseg; /* VLIST, PLIST */
};
+ union {
+ uint32_t md_offset; /* VMPAGES */
+ };
uint32_t md_type; /* Type of memory. */
};
@@ -64,6 +69,7 @@
#define MEMDESC_BIO 5 /* Pointer to a bio (block io). */
#define MEMDESC_UIO 6 /* Pointer to a uio (any io). */
#define MEMDESC_MBUF 7 /* Pointer to a mbuf (network io). */
+#define MEMDESC_VMPAGES 8 /* Pointer to array of VM pages. */
static inline struct memdesc
memdesc_vaddr(void *vaddr, size_t len)
@@ -146,6 +152,19 @@
return (mem);
}
+static inline struct memdesc
+memdesc_vmpages(struct vm_page **ma, size_t len, u_int ma_offset)
+{
+ struct memdesc mem;
+
+ mem.u.md_ma = ma;
+ mem.md_len = len;
+ mem.md_type = MEMDESC_VMPAGES;
+ mem.md_offset = ma_offset;
+
+ return (mem);
+}
+
struct memdesc memdesc_ccb(union ccb *ccb);
#endif /* _SYS_MEMDESC_H_ */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Aug 8, 3:41 PM (18 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36238562
Default Alt Text
D41028.id124688.diff (1 KB)
Attached To
Mode
D41028: memdesc: Add a MEMDESC_VMPAGES descriptor type.
Attached
Detach File
Event Timeline
Log In to Comment