videobuf-vmalloc.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * helper functions for vmalloc capture buffers
  3. *
  4. * The functions expect the hardware being able to scatter gather
  5. * (i.e. the buffers are not linear in physical memory, but fragmented
  6. * into PAGE_SIZE chunks). They also assume the driver does not need
  7. * to touch the video data.
  8. *
  9. * (c) 2007 Mauro Carvalho Chehab, <mchehab@infradead.org>
  10. *
  11. * This program is free software; you can redistribute it and/or modify
  12. * it under the terms of the GNU General Public License as published by
  13. * the Free Software Foundation; either version 2
  14. */
  15. #ifndef _VIDEOBUF_VMALLOC_H
  16. #define _VIDEOBUF_VMALLOC_H
  17. #include <media/videobuf-core.h>
  18. /* --------------------------------------------------------------------- */
  19. struct videobuf_vmalloc_memory {
  20. u32 magic;
  21. void *vaddr;
  22. /* remap_vmalloc_range seems to need to run
  23. * after mmap() on some cases */
  24. struct vm_area_struct *vma;
  25. };
  26. void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
  27. const struct videobuf_queue_ops *ops,
  28. struct device *dev,
  29. spinlock_t *irqlock,
  30. enum v4l2_buf_type type,
  31. enum v4l2_field field,
  32. unsigned int msize,
  33. void *priv,
  34. struct mutex *ext_lock);
  35. void *videobuf_to_vmalloc(struct videobuf_buffer *buf);
  36. void videobuf_vmalloc_free(struct videobuf_buffer *buf);
  37. #endif