X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fmedia%2Fvideo-buf.h;h=3c17bdf0b79039fa7e0a6db4ee7ab31c0ca292d0;hb=9e1bf581d67d87a1d7fc0ea500729e3a03643a26;hp=ae6da6de98ded4600c7e502fe6b16265dc0bc612;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/include/media/video-buf.h b/include/media/video-buf.h index ae6da6de9..3c17bdf0b 100644 --- a/include/media/video-buf.h +++ b/include/media/video-buf.h @@ -1,6 +1,4 @@ /* - * $Id: video-buf.h,v 1.9 2004/11/07 13:17:15 kraxel Exp $ - * * generic helper functions for video4linux capture buffers, to handle * memory management and PCI DMA. Right now bttv + saa7134 use it. * @@ -9,7 +7,7 @@ * into PAGE_SIZE chunks). They also assume the driver does not need * to touch the video data (thus it is probably not useful for USB as * data often must be uncompressed by the drivers). - * + * * (c) 2001,02 Gerd Knorr * * This program is free software; you can redistribute it and/or modify @@ -102,7 +100,7 @@ int videobuf_dma_free(struct videobuf_dmabuf *dma); * functions, additionally some commonly used fields for v4l buffers * (width, height, lists, waitqueue) are in there. That struct should * be used as first element in the drivers buffer struct. - * + * * about the mmap helpers (videobuf_mmap_*): * * The mmaper function allows to map any subset of contingous buffers. @@ -121,6 +119,7 @@ struct videobuf_queue; struct videobuf_mapping { unsigned int count; + int highmem_ok; unsigned long start; unsigned long end; struct videobuf_queue *q; @@ -166,15 +165,12 @@ struct videobuf_buffer { }; struct videobuf_queue_ops { - int (*buf_setup)(struct videobuf_queue *q, + int (*buf_setup)(struct file *file, unsigned int *count, unsigned int *size); - int (*buf_prepare)(struct videobuf_queue *q, - struct videobuf_buffer *vb, + int (*buf_prepare)(struct file *file,struct videobuf_buffer *vb, enum v4l2_field field); - void (*buf_queue)(struct videobuf_queue *q, - struct videobuf_buffer *vb); - void (*buf_release)(struct videobuf_queue *q, - struct videobuf_buffer *vb); + void (*buf_queue)(struct file *file,struct videobuf_buffer *vb); + void (*buf_release)(struct file *file,struct videobuf_buffer *vb); }; struct videobuf_queue { @@ -198,9 +194,6 @@ struct videobuf_queue { unsigned int reading; unsigned int read_off; struct videobuf_buffer *read_buf; - - /* driver private data */ - void *priv_data; }; void* videobuf_alloc(unsigned int size); @@ -210,46 +203,43 @@ int videobuf_iolock(struct pci_dev *pci, struct videobuf_buffer *vb, void videobuf_queue_init(struct videobuf_queue *q, struct videobuf_queue_ops *ops, - struct pci_dev *pci, - spinlock_t *irqlock, + struct pci_dev *pci, spinlock_t *irqlock, enum v4l2_buf_type type, enum v4l2_field field, - unsigned int msize, - void *priv); + unsigned int msize); int videobuf_queue_is_busy(struct videobuf_queue *q); -void videobuf_queue_cancel(struct videobuf_queue *q); +void videobuf_queue_cancel(struct file *file, struct videobuf_queue *q); enum v4l2_field videobuf_next_field(struct videobuf_queue *q); void videobuf_status(struct v4l2_buffer *b, struct videobuf_buffer *vb, enum v4l2_buf_type type); -int videobuf_reqbufs(struct videobuf_queue *q, +int videobuf_reqbufs(struct file *file, struct videobuf_queue *q, struct v4l2_requestbuffers *req); int videobuf_querybuf(struct videobuf_queue *q, struct v4l2_buffer *b); -int videobuf_qbuf(struct videobuf_queue *q, +int videobuf_qbuf(struct file *file, struct videobuf_queue *q, struct v4l2_buffer *b); -int videobuf_dqbuf(struct videobuf_queue *q, - struct v4l2_buffer *b, int nonblocking); -int videobuf_streamon(struct videobuf_queue *q); -int videobuf_streamoff(struct videobuf_queue *q); - -int videobuf_read_start(struct videobuf_queue *q); -void videobuf_read_stop(struct videobuf_queue *q); -ssize_t videobuf_read_stream(struct videobuf_queue *q, +int videobuf_dqbuf(struct file *file, struct videobuf_queue *q, + struct v4l2_buffer *b); +int videobuf_streamon(struct file *file, struct videobuf_queue *q); +int videobuf_streamoff(struct file *file, struct videobuf_queue *q); + +int videobuf_read_start(struct file *file, struct videobuf_queue *q); +void videobuf_read_stop(struct file *file, struct videobuf_queue *q); +ssize_t videobuf_read_stream(struct file *file, struct videobuf_queue *q, char __user *data, size_t count, loff_t *ppos, - int vbihack, int nonblocking); -ssize_t videobuf_read_one(struct videobuf_queue *q, - char __user *data, size_t count, loff_t *ppos, - int nonblocking); + int vbihack); +ssize_t videobuf_read_one(struct file *file, struct videobuf_queue *q, + char __user *data, size_t count, loff_t *ppos); unsigned int videobuf_poll_stream(struct file *file, struct videobuf_queue *q, poll_table *wait); -int videobuf_mmap_setup(struct videobuf_queue *q, +int videobuf_mmap_setup(struct file *file, struct videobuf_queue *q, unsigned int bcount, unsigned int bsize, enum v4l2_memory memory); -int videobuf_mmap_free(struct videobuf_queue *q); -int videobuf_mmap_mapper(struct videobuf_queue *q, - struct vm_area_struct *vma); +int videobuf_mmap_free(struct file *file, struct videobuf_queue *q); +int videobuf_mmap_mapper(struct vm_area_struct *vma, + struct videobuf_queue *q); /* --------------------------------------------------------------------- */