videobuf-vmalloc.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * helper functions for vmalloc capture buffers
  3. *
  4. * The functions expect the hardware being able to scatter gatter
  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. #include <media/videobuf-core.h>
  16. /* --------------------------------------------------------------------- */
  17. struct videbuf_vmalloc_memory
  18. {
  19. u32 magic;
  20. void *vmalloc;
  21. /* remap_vmalloc_range seems to need to run after mmap() on some cases */
  22. struct vm_area_struct *vma;
  23. };
  24. void videobuf_queue_vmalloc_init(struct videobuf_queue* q,
  25. struct videobuf_queue_ops *ops,
  26. void *dev,
  27. spinlock_t *irqlock,
  28. enum v4l2_buf_type type,
  29. enum v4l2_field field,
  30. unsigned int msize,
  31. void *priv);
  32. void *videobuf_to_vmalloc (struct videobuf_buffer *buf);
  33. void videobuf_vmalloc_free (struct videobuf_buffer *buf);