X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fmedia%2Fvideo-buf.h;h=3c17bdf0b79039fa7e0a6db4ee7ab31c0ca292d0;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=41e9e58c434edcd5942a012e9ecea6e2957f5b25;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/include/media/video-buf.h b/include/media/video-buf.h index 41e9e58c4..3c17bdf0b 100644 --- a/include/media/video-buf.h +++ b/include/media/video-buf.h @@ -18,6 +18,8 @@ #include +#define UNSET (-1U) + /* --------------------------------------------------------------------- */ /* @@ -34,8 +36,6 @@ struct scatterlist* videobuf_vmalloc_to_sg(unsigned char *virt, int nr_pages); */ struct scatterlist* videobuf_pages_to_sg(struct page **pages, int nr_pages, int offset); -int videobuf_lock(struct page **pages, int nr_pages); -int videobuf_unlock(struct page **pages, int nr_pages); /* --------------------------------------------------------------------- */ @@ -59,6 +59,8 @@ int videobuf_unlock(struct page **pages, int nr_pages); */ struct videobuf_dmabuf { + u32 magic; + /* for userland buffer */ int offset; struct page **pages; @@ -76,6 +78,7 @@ struct videobuf_dmabuf { int direction; }; +void videobuf_dma_init(struct videobuf_dmabuf *dma); int videobuf_dma_init_user(struct videobuf_dmabuf *dma, int direction, unsigned long data, unsigned long size); int videobuf_dma_init_kernel(struct videobuf_dmabuf *dma, int direction, @@ -134,12 +137,14 @@ enum videobuf_state { struct videobuf_buffer { unsigned int i; + u32 magic; /* info about the buffer */ unsigned int width; unsigned int height; unsigned int bytesperline; /* use only if != 0 */ unsigned long size; + unsigned int input; enum v4l2_field field; enum videobuf_state state; struct videobuf_dmabuf dma; @@ -174,9 +179,10 @@ struct videobuf_queue { struct pci_dev *pci; enum v4l2_buf_type type; + unsigned int inputs; /* for V4L2_BUF_FLAG_INPUT */ unsigned int msize; enum v4l2_field field; - enum v4l2_field last; /* for field=V4L2_FIELD_ALTERNATE */ + enum v4l2_field last; /* for field=V4L2_FIELD_ALTERNATE */ struct videobuf_buffer *bufs[VIDEO_MAX_FRAME]; struct videobuf_queue_ops *ops; @@ -220,10 +226,10 @@ 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 *data, size_t count, loff_t *ppos, + char __user *data, size_t count, loff_t *ppos, int vbihack); ssize_t videobuf_read_one(struct file *file, struct videobuf_queue *q, - char *data, size_t count, loff_t *ppos); + char __user *data, size_t count, loff_t *ppos); unsigned int videobuf_poll_stream(struct file *file, struct videobuf_queue *q, poll_table *wait);