Date: Mon, 4 Jun 2012 02:25:11 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r236533 - in projects/altix2/sys: kern sys Message-ID: <201206040225.q542PBna098977@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206040225.q542PBna098977>