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
 |