Lines Matching refs:cookie

164 	struct powerpc_isa_dma_cookie *cookie;
187 cookiesize = sizeof(*cookie);
224 * Allocate our cookie.
232 cookie = (struct powerpc_isa_dma_cookie *)cookiestore;
233 cookie->id_flags = cookieflags;
234 map->_dm_cookie = cookie;
262 struct powerpc_isa_dma_cookie *cookie = map->_dm_cookie;
267 if (cookie->id_flags & ID_HAS_BOUNCE)
270 size_t cookiesize = sizeof(*cookie);
271 if (cookie->id_flags & ID_MIGHT_NEED_BOUNCE)
274 kmem_intr_free(cookie, cookiesize);
285 struct powerpc_isa_dma_cookie *cookie = map->_dm_cookie;
301 if (error == 0 || (cookie->id_flags & ID_MIGHT_NEED_BOUNCE) == 0)
313 if ((cookie->id_flags & ID_HAS_BOUNCE) == 0) {
323 cookie->id_origbuf = buf;
324 cookie->id_origbuflen = buflen;
325 cookie->id_buftype = ID_BUFTYPE_LINEAR;
326 error = _bus_dmamap_load(t, map, cookie->id_bouncebuf, buflen,
339 cookie->id_flags |= ID_IS_BOUNCING;
350 struct powerpc_isa_dma_cookie *cookie = map->_dm_cookie;
372 if (error == 0 || (cookie->id_flags & ID_MIGHT_NEED_BOUNCE) == 0)
384 if ((cookie->id_flags & ID_HAS_BOUNCE) == 0) {
395 cookie->id_origbuf = m0;
396 cookie->id_origbuflen = m0->m_pkthdr.len; /* not really used */
397 cookie->id_buftype = ID_BUFTYPE_MBUF;
398 error = _bus_dmamap_load(t, map, cookie->id_bouncebuf,
411 cookie->id_flags |= ID_IS_BOUNCING;
444 struct powerpc_isa_dma_cookie *cookie = map->_dm_cookie;
450 if ((cookie->id_flags & ID_HAS_BOUNCE) &&
454 cookie->id_flags &= ~ID_IS_BOUNCING;
455 cookie->id_buftype = ID_BUFTYPE_INVALID;
470 struct powerpc_isa_dma_cookie *cookie = map->_dm_cookie;
491 if ((cookie->id_flags & ID_IS_BOUNCING) == 0)
494 switch (cookie->id_buftype) {
504 memcpy((char *)cookie->id_bouncebuf + offset,
505 (char *)cookie->id_origbuf + offset, len);
512 memcpy((char *)cookie->id_origbuf + offset,
513 (char *)cookie->id_bouncebuf + offset, len);
523 struct mbuf *m, *m0 = cookie->id_origbuf;
535 (char *)cookie->id_bouncebuf + offset);
559 (char *)cookie->id_bouncebuf + offset,
587 printf("unknown buffer type %d\n", cookie->id_buftype);
626 struct powerpc_isa_dma_cookie *cookie = map->_dm_cookie;
629 cookie->id_bouncebuflen = round_page(size);
630 error = _isa_bus_dmamem_alloc(t, cookie->id_bouncebuflen,
631 PAGE_SIZE, map->_dm_boundary, cookie->id_bouncesegs,
632 map->_dm_segcnt, &cookie->id_nbouncesegs, flags);
635 error = _bus_dmamem_map(t, cookie->id_bouncesegs,
636 cookie->id_nbouncesegs, cookie->id_bouncebuflen,
637 (void **)&cookie->id_bouncebuf, flags);
641 _bus_dmamem_free(t, cookie->id_bouncesegs,
642 cookie->id_nbouncesegs);
643 cookie->id_bouncebuflen = 0;
644 cookie->id_nbouncesegs = 0;
646 cookie->id_flags |= ID_HAS_BOUNCE;
656 struct powerpc_isa_dma_cookie *cookie = map->_dm_cookie;
660 _bus_dmamem_unmap(t, cookie->id_bouncebuf,
661 cookie->id_bouncebuflen);
662 _bus_dmamem_free(t, cookie->id_bouncesegs,
663 cookie->id_nbouncesegs);
664 cookie->id_bouncebuflen = 0;
665 cookie->id_nbouncesegs = 0;
666 cookie->id_flags &= ~ID_HAS_BOUNCE;