svn commit: r236533 - in projects/altix2/sys: kern sys
Marcel Moolenaar
marcel at FreeBSD.org
Mon Jun 4 02:25:12 UTC 2012
Author: marcel
Date: Mon Jun 4 02:25:11 2012
New Revision: 236533
URL: http://svn.freebsd.org/changeset/base/236533
Log:
o Add busdma_md_load_phys for supporting CAM's physical addressing.
o Fix prototypes for _load_mbuf & _load_uio.
o Dummy-implement _load_phys & _load_uio, like _load_linear.
Modified:
projects/altix2/sys/kern/subr_busdma.c
projects/altix2/sys/sys/busdma.h
Modified: projects/altix2/sys/kern/subr_busdma.c
==============================================================================
--- projects/altix2/sys/kern/subr_busdma.c Sun Jun 3 23:48:04 2012 (r236532)
+++ projects/altix2/sys/kern/subr_busdma.c Mon Jun 4 02:25:11 2012 (r236533)
@@ -341,8 +341,29 @@ busdma_md_load_linear(struct busdma_md *
busdma_callback_f cb, void *arg, u_int flags)
{
- printf("XXX: %s: md=%p, buf=%p, len=%lx\n", __func__,
- md, buf, (u_long)len);
+ printf("XXX: %s: md=%p, buf=%p, len=%lx\n", __func__, md,
+ buf, (u_long)len);
+ (*cb)(arg, md, ENOSYS);
+ return (0);
+}
+
+int
+busdma_md_load_phys(struct busdma_md *md, vm_paddr_t buf, size_t len,
+ busdma_callback_f cb, void *arg, u_int flags)
+{
+
+ printf("XXX: %s: md=%p, buf=%#jx, len=%lx\n", __func__, md,
+ (uintmax_t)buf, (u_long)len);
+ (*cb)(arg, md, ENOSYS);
+ return (0);
+}
+
+int
+busdma_md_load_uio(struct busdma_md *md, struct uio *uio,
+ busdma_callback_f cb, void *arg, u_int flags)
+{
+
+ printf("XXX: %s: md=%p, uio=%p\n", __func__, md, uio);
(*cb)(arg, md, ENOSYS);
return (0);
}
Modified: projects/altix2/sys/sys/busdma.h
==============================================================================
--- projects/altix2/sys/sys/busdma.h Sun Jun 3 23:48:04 2012 (r236532)
+++ projects/altix2/sys/sys/busdma.h Mon Jun 4 02:25:11 2012 (r236533)
@@ -93,14 +93,21 @@ int busdma_tag_destroy(busdma_tag_t tag)
/*
*
*/
+struct mbuf;
+struct uio;
+
typedef void (*busdma_callback_f)(void *, busdma_md_t, int);
int busdma_md_create(busdma_tag_t tag, u_int flags, busdma_md_t *md_p);
int busdma_md_destroy(busdma_md_t md);
int busdma_md_load_linear(busdma_md_t md, void *buf, size_t size,
busdma_callback_f cb, void *arg, u_int flags);
-int busdma_md_load_mbuf(busdma_md_t md, void *buf, size_t size);
-int busdma_md_load_uio(busdma_md_t md, void *buf, size_t size);
+int busdma_md_load_mbuf(busdma_md_t md, struct mbuf *mbuf,
+ busdma_callback_f cb, void *arg, u_int flags);
+int busdma_md_load_phys(busdma_md_t md, vm_paddr_t buf, size_t size,
+ busdma_callback_f cb, void *arg, u_int flags);
+int busdma_md_load_uio(busdma_md_t md, struct uio *uio,
+ busdma_callback_f cb, void *arg, u_int flags);
int busdma_md_unload(busdma_md_t md);
u_int busdma_md_get_nsegs(busdma_md_t md);
bus_addr_t busdma_md_get_busaddr(busdma_md_t md, u_int idx);
More information about the svn-src-projects
mailing list