| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * helper functions for vmalloc capture buffers | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-07-16 21:27:49 -03:00
										 |  |  |  * The functions expect the hardware being able to scatter gather | 
					
						
							| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  |  * (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@infradead.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 | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2008-04-13 15:10:00 -03:00
										 |  |  | #ifndef _VIDEOBUF_VMALLOC_H
 | 
					
						
							|  |  |  | #define _VIDEOBUF_VMALLOC_H
 | 
					
						
							| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <media/videobuf-core.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* --------------------------------------------------------------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-17 04:01:04 -03:00
										 |  |  | struct videobuf_vmalloc_memory { | 
					
						
							| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  | 	u32                 magic; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-11 10:36:34 -03:00
										 |  |  | 	void                *vaddr; | 
					
						
							| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-17 04:01:04 -03:00
										 |  |  | 	/* remap_vmalloc_range seems to need to run
 | 
					
						
							|  |  |  | 	 * after mmap() on some cases */ | 
					
						
							| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  | 	struct vm_area_struct *vma; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-17 04:01:04 -03:00
										 |  |  | void videobuf_queue_vmalloc_init(struct videobuf_queue *q, | 
					
						
							| 
									
										
										
										
											2009-11-17 19:43:41 -03:00
										 |  |  | 			 const struct videobuf_queue_ops *ops, | 
					
						
							| 
									
										
										
										
											2009-11-23 14:29:35 -03:00
										 |  |  | 			 struct device *dev, | 
					
						
							| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  | 			 spinlock_t *irqlock, | 
					
						
							|  |  |  | 			 enum v4l2_buf_type type, | 
					
						
							|  |  |  | 			 enum v4l2_field field, | 
					
						
							|  |  |  | 			 unsigned int msize, | 
					
						
							| 
									
										
										
										
											2010-09-20 17:39:46 -03:00
										 |  |  | 			 void *priv, | 
					
						
							|  |  |  | 			 struct mutex *ext_lock); | 
					
						
							| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-17 04:01:04 -03:00
										 |  |  | void *videobuf_to_vmalloc(struct videobuf_buffer *buf); | 
					
						
							| 
									
										
										
										
											2007-08-02 23:31:33 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-17 04:01:04 -03:00
										 |  |  | void videobuf_vmalloc_free(struct videobuf_buffer *buf); | 
					
						
							| 
									
										
										
										
											2008-04-13 15:10:00 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 |