linux/include/media/videobuf-vmalloc.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * helper functions for vmalloc capture buffers
   4 *
   5 * The functions expect the hardware being able to scatter gather
   6 * (i.e. the buffers are not linear in physical memory, but fragmented
   7 * into PAGE_SIZE chunks).  They also assume the driver does not need
   8 * to touch the video data.
   9 *
  10 * (c) 2007 Mauro Carvalho Chehab, <mchehab@kernel.org>
  11 */
  12#ifndef _VIDEOBUF_VMALLOC_H
  13#define _VIDEOBUF_VMALLOC_H
  14
  15#include <media/videobuf-core.h>
  16
  17/* --------------------------------------------------------------------- */
  18
  19struct videobuf_vmalloc_memory {
  20        u32                 magic;
  21
  22        void                *vaddr;
  23
  24        /* remap_vmalloc_range seems to need to run
  25         * after mmap() on some cases */
  26        struct vm_area_struct *vma;
  27};
  28
  29void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
  30                         const struct videobuf_queue_ops *ops,
  31                         struct device *dev,
  32                         spinlock_t *irqlock,
  33                         enum v4l2_buf_type type,
  34                         enum v4l2_field field,
  35                         unsigned int msize,
  36                         void *priv,
  37                         struct mutex *ext_lock);
  38
  39void *videobuf_to_vmalloc(struct videobuf_buffer *buf);
  40
  41void videobuf_vmalloc_free(struct videobuf_buffer *buf);
  42
  43#endif
  44