47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * helper functions for vmalloc capture buffers
 | |
|  *
 | |
|  * The functions expect the hardware being able to scatter gather
 | |
|  * (i.e. the buffers are not linear in physical memory, but fragmented
 | |
|  * into PAGE_SIZE chunks).  They also assume the driver does not need
 | |
|  * to touch the video data.
 | |
|  *
 | |
|  * (c) 2007 Mauro Carvalho Chehab, <mchehab@kernel.org>
 | |
|  *
 | |
|  * 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; either version 2
 | |
|  */
 | |
| #ifndef _VIDEOBUF_VMALLOC_H
 | |
| #define _VIDEOBUF_VMALLOC_H
 | |
| 
 | |
| #include <media/videobuf-core.h>
 | |
| 
 | |
| /* --------------------------------------------------------------------- */
 | |
| 
 | |
| struct videobuf_vmalloc_memory {
 | |
| 	u32                 magic;
 | |
| 
 | |
| 	void                *vaddr;
 | |
| 
 | |
| 	/* remap_vmalloc_range seems to need to run
 | |
| 	 * after mmap() on some cases */
 | |
| 	struct vm_area_struct *vma;
 | |
| };
 | |
| 
 | |
| void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
 | |
| 			 const struct videobuf_queue_ops *ops,
 | |
| 			 struct device *dev,
 | |
| 			 spinlock_t *irqlock,
 | |
| 			 enum v4l2_buf_type type,
 | |
| 			 enum v4l2_field field,
 | |
| 			 unsigned int msize,
 | |
| 			 void *priv,
 | |
| 			 struct mutex *ext_lock);
 | |
| 
 | |
| void *videobuf_to_vmalloc(struct videobuf_buffer *buf);
 | |
| 
 | |
| void videobuf_vmalloc_free(struct videobuf_buffer *buf);
 | |
| 
 | |
| #endif
 | 
