~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/media/dvb_vb2.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/media/dvb_vb2.h (Version linux-6.12-rc7) and /include/media/dvb_vb2.h (Version linux-4.14.336)


  1 /*                                                  1 
  2  * SPDX-License-Identifier: GPL-2.0               
  3  *                                                
  4  * dvb-vb2.h - DVB driver helper framework for    
  5  *                                                
  6  * Copyright (C) 2015 Samsung Electronics         
  7  *                                                
  8  * Author: jh1009.sung@samsung.com                
  9  *                                                
 10  * This program is free software; you can redi    
 11  * it under the terms of the GNU General Publi    
 12  * the Free Software Foundation.                  
 13  */                                               
 14                                                   
 15 #ifndef _DVB_VB2_H                                
 16 #define _DVB_VB2_H                                
 17                                                   
 18 #include <linux/mutex.h>                          
 19 #include <linux/poll.h>                           
 20 #include <linux/dvb/dmx.h>                        
 21 #include <media/videobuf2-core.h>                 
 22 #include <media/videobuf2-dma-contig.h>           
 23 #include <media/videobuf2-vmalloc.h>              
 24                                                   
 25 /**                                               
 26  * enum dvb_buf_type - types of Digital TV mem    
 27  *                                                
 28  * @DVB_BUF_TYPE_CAPTURE: buffer is filled by     
 29  *                        with a received Digi    
 30  */                                               
 31 enum dvb_buf_type {                               
 32         DVB_BUF_TYPE_CAPTURE        = 1,          
 33 };                                                
 34                                                   
 35 /**                                               
 36  * enum dvb_vb2_states - states to control VB2    
 37  * @DVB_VB2_STATE_NONE:                           
 38  *      VB2 engine not initialized yet, init f    
 39  * @DVB_VB2_STATE_INIT:                           
 40  *      VB2 engine initialized.                   
 41  * @DVB_VB2_STATE_REQBUFS:                        
 42  *      Buffers were requested                    
 43  * @DVB_VB2_STATE_STREAMON:                       
 44  *      VB2 is streaming. Callers should not c    
 45  *      they should use dvb_vb2_is_streaming()    
 46  *                                                
 47  * Note:                                          
 48  *                                                
 49  * Callers should not touch at the state machi    
 50  * is handled inside dvb_vb2.c.                   
 51  */                                               
 52 enum dvb_vb2_states {                             
 53         DVB_VB2_STATE_NONE      = 0x0,            
 54         DVB_VB2_STATE_INIT      = 0x1,            
 55         DVB_VB2_STATE_REQBUFS   = 0x2,            
 56         DVB_VB2_STATE_STREAMON  = 0x4,            
 57 };                                                
 58                                                   
 59 #define DVB_VB2_NAME_MAX (20)                     
 60                                                   
 61 /**                                               
 62  * struct dvb_buffer - video buffer informatio    
 63  *                                                
 64  * @vb:         embedded struct &vb2_buffer.      
 65  * @list:       list of &struct dvb_buffer.       
 66  */                                               
 67 struct dvb_buffer {                               
 68         struct vb2_buffer       vb;               
 69         struct list_head        list;             
 70 };                                                
 71                                                   
 72 /**                                               
 73  * struct dvb_vb2_ctx - control struct for VB2    
 74  * @vb_q:       pointer to &struct vb2_queue w    
 75  * @mutex:      mutex to serialize vb2 operati    
 76  *              vb2 core %wait_prepare and %wa    
 77  * @slock:      spin lock used to protect buff    
 78  * @dvb_q:      List of buffers that are not f    
 79  * @buf:        Pointer to the buffer that are    
 80  * @offset:     index to the next position at     
 81  * @remain:     How many bytes are left to be     
 82  * @state:      bitmask of buffer states as de    
 83  * @buf_siz:    size of each VB2 buffer.          
 84  * @buf_cnt:    number of VB2 buffers.            
 85  * @nonblocking:                                  
 86  *              If different than zero, device    
 87  *              mode.                             
 88  * @flags:      buffer flags as defined by &en    
 89  *              Filled only at &DMX_DQBUF. &DM    
 90  * @count:      monotonic counter for filled b    
 91  *              data stream loses. Filled only    
 92  *              zero this field.                  
 93  *                                                
 94  * @name:       name of the device type. Curre    
 95  *              "dvr" or "demux_filter".          
 96  */                                               
 97 struct dvb_vb2_ctx {                              
 98         struct vb2_queue        vb_q;             
 99         struct mutex            mutex;            
100         spinlock_t              slock;            
101         struct list_head        dvb_q;            
102         struct dvb_buffer       *buf;             
103         int     offset;                           
104         int     remain;                           
105         int     state;                            
106         int     buf_siz;                          
107         int     buf_cnt;                          
108         int     nonblocking;                      
109                                                   
110         enum dmx_buffer_flags flags;              
111         u32     count;                            
112                                                   
113         char    name[DVB_VB2_NAME_MAX + 1];       
114 };                                                
115                                                   
116 #ifndef CONFIG_DVB_MMAP                           
117 static inline int dvb_vb2_init(struct dvb_vb2_    
118                                const char *nam    
119 {                                                 
120         return 0;                                 
121 };                                                
122 static inline int dvb_vb2_release(struct dvb_v    
123 {                                                 
124         return 0;                                 
125 };                                                
126 #define dvb_vb2_is_streaming(ctx) (0)             
127 #define dvb_vb2_fill_buffer(ctx, file, wait, f    
128                                                   
129 static inline __poll_t dvb_vb2_poll(struct dvb    
130                                     struct fil    
131                                     poll_table    
132 {                                                 
133         return 0;                                 
134 }                                                 
135 #else                                             
136 /**                                               
137  * dvb_vb2_init - initializes VB2 handler         
138  *                                                
139  * @ctx:        control struct for VB2 handler    
140  * @name:       name for the VB2 handler          
141  * @non_blocking:                                 
142  *              if not zero, it means that the    
143  */                                               
144 int dvb_vb2_init(struct dvb_vb2_ctx *ctx, cons    
145                                                   
146 /**                                               
147  * dvb_vb2_release - Releases the VB2 handler     
148  *      put @ctx at DVB_VB2_STATE_NONE state.     
149  * @ctx:        control struct for VB2 handler    
150  */                                               
151 int dvb_vb2_release(struct dvb_vb2_ctx *ctx);     
152                                                   
153 /**                                               
154  * dvb_vb2_is_streaming - checks if the VB2 ha    
155  * @ctx:        control struct for VB2 handler    
156  *                                                
157  * Return: 0 if not streaming, 1 otherwise.       
158  */                                               
159 int dvb_vb2_is_streaming(struct dvb_vb2_ctx *c    
160                                                   
161 /**                                               
162  * dvb_vb2_fill_buffer - fills a VB2 buffer       
163  * @ctx:        control struct for VB2 handler    
164  * @src:        place where the data is stored    
165  * @len:        number of bytes to be copied f    
166  * @buffer_flags:                                 
167  *              pointer to buffer flags as def    
168  *              can be NULL.                      
169  */                                               
170 int dvb_vb2_fill_buffer(struct dvb_vb2_ctx *ct    
171                         const unsigned char *s    
172                         enum dmx_buffer_flags     
173                                                   
174 /**                                               
175  * dvb_vb2_poll - Wrapper to vb2_core_streamon    
176  *      buffer handling.                          
177  *                                                
178  * @ctx:        control struct for VB2 handler    
179  * @file:       &struct file argument passed t    
180  *              file operation handler.           
181  * @wait:       &poll_table wait argument pass    
182  *              file operation handler.           
183  *                                                
184  * Implements poll syscall() logic.               
185  */                                               
186 __poll_t dvb_vb2_poll(struct dvb_vb2_ctx *ctx,    
187                       poll_table *wait);          
188 #endif                                            
189                                                   
190 /**                                               
191  * dvb_vb2_stream_on() - Wrapper to vb2_core_s    
192  *      buffer handling.                          
193  *                                                
194  * @ctx:        control struct for VB2 handler    
195  *                                                
196  * Starts dvb streaming                           
197  */                                               
198 int dvb_vb2_stream_on(struct dvb_vb2_ctx *ctx)    
199 /**                                               
200  * dvb_vb2_stream_off() - Wrapper to vb2_core_    
201  *      buffer handling.                          
202  *                                                
203  * @ctx:        control struct for VB2 handler    
204  *                                                
205  * Stops dvb streaming                            
206  */                                               
207 int dvb_vb2_stream_off(struct dvb_vb2_ctx *ctx    
208                                                   
209 /**                                               
210  * dvb_vb2_reqbufs() - Wrapper to vb2_core_req    
211  *      buffer handling.                          
212  *                                                
213  * @ctx:        control struct for VB2 handler    
214  * @req:        &struct dmx_requestbuffers pas    
215  *              order to handle &DMX_REQBUFS.     
216  *                                                
217  * Initiate streaming by requesting a number o    
218  * free previously requested buffers, is ``req    
219  */                                               
220 int dvb_vb2_reqbufs(struct dvb_vb2_ctx *ctx, s    
221                                                   
222 /**                                               
223  * dvb_vb2_querybuf() - Wrapper to vb2_core_qu    
224  *      buffer handling.                          
225  *                                                
226  * @ctx:        control struct for VB2 handler    
227  * @b:          &struct dmx_buffer passed from    
228  *              order to handle &DMX_QUERYBUF.    
229  *                                                
230  *                                                
231  */                                               
232 int dvb_vb2_querybuf(struct dvb_vb2_ctx *ctx,     
233                                                   
234 /**                                               
235  * dvb_vb2_expbuf() - Wrapper to vb2_core_expb    
236  *      buffer handling.                          
237  *                                                
238  * @ctx:        control struct for VB2 handler    
239  * @exp:        &struct dmx_exportbuffer passe    
240  *              order to handle &DMX_EXPBUF.      
241  *                                                
242  * Export a buffer as a file descriptor.          
243  */                                               
244 int dvb_vb2_expbuf(struct dvb_vb2_ctx *ctx, st    
245                                                   
246 /**                                               
247  * dvb_vb2_qbuf() - Wrapper to vb2_core_qbuf()    
248  *                                                
249  * @ctx:        control struct for VB2 handler    
250  * @b:          &struct dmx_buffer passed from    
251  *              order to handle &DMX_QBUF.        
252  *                                                
253  * Queue a Digital TV buffer as requested by u    
254  */                                               
255 int dvb_vb2_qbuf(struct dvb_vb2_ctx *ctx, stru    
256                                                   
257 /**                                               
258  * dvb_vb2_dqbuf() - Wrapper to vb2_core_dqbuf    
259  *      buffer handling.                          
260  *                                                
261  * @ctx:        control struct for VB2 handler    
262  * @b:          &struct dmx_buffer passed from    
263  *              order to handle &DMX_DQBUF.       
264  *                                                
265  * Dequeue a Digital TV buffer to the userspac    
266  */                                               
267 int dvb_vb2_dqbuf(struct dvb_vb2_ctx *ctx, str    
268                                                   
269 /**                                               
270  * dvb_vb2_mmap() - Wrapper to vb2_mmap() for     
271  *                                                
272  * @ctx:        control struct for VB2 handler    
273  * @vma:        pointer to &struct vm_area_str    
274  *              to the mmap file operation han    
275  *                                                
276  * map Digital TV video buffers into applicati    
277  */                                               
278 int dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, stru    
279                                                   
280 #endif /* _DVB_VB2_H */                           
281                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php