1 | /* |
2 | * videobuf2-memops.h - generic memory handling routines for videobuf2 |
3 | * |
4 | * Copyright (C) 2010 Samsung Electronics |
5 | * |
6 | * Author: Pawel Osciak <pawel@osciak.com> |
7 | * Marek Szyprowski <m.szyprowski@samsung.com> |
8 | * |
9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License as published by |
11 | * the Free Software Foundation. |
12 | */ |
13 | |
14 | #ifndef _MEDIA_VIDEOBUF2_MEMOPS_H |
15 | #define _MEDIA_VIDEOBUF2_MEMOPS_H |
16 | |
17 | #include <media/videobuf2-v4l2.h> |
18 | #include <linux/mm.h> |
19 | #include <linux/refcount.h> |
20 | |
21 | /** |
22 | * struct vb2_vmarea_handler - common vma refcount tracking handler. |
23 | * |
24 | * @refcount: pointer to &refcount_t entry in the buffer. |
25 | * @put: callback to function that decreases buffer refcount. |
26 | * @arg: argument for @put callback. |
27 | */ |
28 | struct vb2_vmarea_handler { |
29 | refcount_t *refcount; |
30 | void (*put)(void *arg); |
31 | void *arg; |
32 | }; |
33 | |
34 | extern const struct vm_operations_struct vb2_common_vm_ops; |
35 | |
36 | struct frame_vector *vb2_create_framevec(unsigned long start, |
37 | unsigned long length, |
38 | bool write); |
39 | void vb2_destroy_framevec(struct frame_vector *vec); |
40 | |
41 | #endif |
42 | |