|  | /* | 
|  | * videobuf2-memops.h - generic memory handling routines for videobuf2 | 
|  | * | 
|  | * Copyright (C) 2010 Samsung Electronics | 
|  | * | 
|  | * Author: Pawel Osciak <pawel@osciak.com> | 
|  | *	   Marek Szyprowski <m.szyprowski@samsung.com> | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or modify | 
|  | * it under the terms of the GNU General Public License as published by | 
|  | * the Free Software Foundation. | 
|  | */ | 
|  |  | 
|  | #ifndef _MEDIA_VIDEOBUF2_MEMOPS_H | 
|  | #define _MEDIA_VIDEOBUF2_MEMOPS_H | 
|  |  | 
|  | #include <media/videobuf2-v4l2.h> | 
|  | #include <linux/mm.h> | 
|  | #include <linux/refcount.h> | 
|  |  | 
|  | /** | 
|  | * struct vb2_vmarea_handler - common vma refcount tracking handler. | 
|  | * | 
|  | * @refcount:	pointer to &refcount_t entry in the buffer. | 
|  | * @put:	callback to function that decreases buffer refcount. | 
|  | * @arg:	argument for @put callback. | 
|  | */ | 
|  | struct vb2_vmarea_handler { | 
|  | refcount_t		*refcount; | 
|  | void			(*put)(void *arg); | 
|  | void			*arg; | 
|  | }; | 
|  |  | 
|  | extern const struct vm_operations_struct vb2_common_vm_ops; | 
|  |  | 
|  | struct frame_vector *vb2_create_framevec(unsigned long start, | 
|  | unsigned long length, | 
|  | bool write); | 
|  | void vb2_destroy_framevec(struct frame_vector *vec); | 
|  |  | 
|  | #endif |