@@ -162,79 +162,75 @@ static void vidtv_psi_set_sec_len(struct vidtv_psi_table_header *h, u16 new_len)
162162 * manage the continuity_counter
163163 * add stuffing (i.e. padding bytes) after the CRC
164164 */
165- static u32 vidtv_psi_ts_psi_write_into (struct psi_write_args args )
165+ static u32 vidtv_psi_ts_psi_write_into (struct psi_write_args * args )
166166{
167-
168- u32 nbytes_past_boundary = (args .dest_offset % TS_PACKET_LEN );
167+ struct vidtv_mpeg_ts ts_header = {
168+ .sync_byte = TS_SYNC_BYTE ,
169+ .bitfield = cpu_to_be16 ((args -> new_psi_section << 14 ) | args -> pid ),
170+ .scrambling = 0 ,
171+ .payload = 1 ,
172+ .adaptation_field = 0 , /* no adaptation field */
173+ };
174+ u32 nbytes_past_boundary = (args -> dest_offset % TS_PACKET_LEN );
169175 bool aligned = (nbytes_past_boundary == 0 );
170- struct vidtv_mpeg_ts ts_header = {};
171- u32 remaining_len = args .len ;
176+ u32 remaining_len = args -> len ;
172177 u32 payload_write_len = 0 ;
173178 u32 payload_offset = 0 ;
174179 u32 nbytes = 0 ;
175180
176- const u16 PAYLOAD_START = args .new_psi_section ;
177-
178- if (!args .crc && !args .is_crc )
181+ if (!args -> crc && !args -> is_crc )
179182 pr_warn_ratelimited ("Missing CRC for chunk\n" );
180183
181- if (args . crc )
182- * args . crc = dvb_crc32 (* args . crc , args . from , args . len );
184+ if (args -> crc )
185+ * args -> crc = dvb_crc32 (* args -> crc , args -> from , args -> len );
183186
184- if (args . new_psi_section && !aligned ) {
187+ if (args -> new_psi_section && !aligned ) {
185188 pr_warn_ratelimited ("Cannot write a new PSI section in a misaligned buffer\n" );
186189
187190 /* forcibly align and hope for the best */
188- nbytes += vidtv_memset (args . dest_buf ,
189- args . dest_offset + nbytes ,
190- args . dest_buf_sz ,
191+ nbytes += vidtv_memset (args -> dest_buf ,
192+ args -> dest_offset + nbytes ,
193+ args -> dest_buf_sz ,
191194 TS_FILL_BYTE ,
192195 TS_PACKET_LEN - nbytes_past_boundary );
193196 }
194197
195198 while (remaining_len ) {
196- nbytes_past_boundary = (args . dest_offset + nbytes ) % TS_PACKET_LEN ;
199+ nbytes_past_boundary = (args -> dest_offset + nbytes ) % TS_PACKET_LEN ;
197200 aligned = (nbytes_past_boundary == 0 );
198201
199202 if (aligned ) {
200203 /* if at a packet boundary, write a new TS header */
201- ts_header .sync_byte = TS_SYNC_BYTE ;
202- ts_header .bitfield = cpu_to_be16 ((PAYLOAD_START << 14 ) | args .pid );
203- ts_header .scrambling = 0 ;
204- ts_header .continuity_counter = * args .continuity_counter ;
205- ts_header .payload = 1 ;
206- /* no adaptation field */
207- ts_header .adaptation_field = 0 ;
208-
209- /* copy the header */
210- nbytes += vidtv_memcpy (args .dest_buf ,
211- args .dest_offset + nbytes ,
212- args .dest_buf_sz ,
204+ ts_header .continuity_counter = * args -> continuity_counter ;
205+
206+ nbytes += vidtv_memcpy (args -> dest_buf ,
207+ args -> dest_offset + nbytes ,
208+ args -> dest_buf_sz ,
213209 & ts_header ,
214210 sizeof (ts_header ));
215211 /*
216212 * This will trigger a discontinuity if the buffer is full,
217213 * effectively dropping the packet.
218214 */
219- vidtv_ts_inc_cc (args . continuity_counter );
215+ vidtv_ts_inc_cc (args -> continuity_counter );
220216 }
221217
222218 /* write the pointer_field in the first byte of the payload */
223- if (args . new_psi_section )
224- nbytes += vidtv_memset (args . dest_buf ,
225- args . dest_offset + nbytes ,
226- args . dest_buf_sz ,
219+ if (args -> new_psi_section )
220+ nbytes += vidtv_memset (args -> dest_buf ,
221+ args -> dest_offset + nbytes ,
222+ args -> dest_buf_sz ,
227223 0x0 ,
228224 1 );
229225
230226 /* write as much of the payload as possible */
231- nbytes_past_boundary = (args . dest_offset + nbytes ) % TS_PACKET_LEN ;
227+ nbytes_past_boundary = (args -> dest_offset + nbytes ) % TS_PACKET_LEN ;
232228 payload_write_len = min (TS_PACKET_LEN - nbytes_past_boundary , remaining_len );
233229
234- nbytes += vidtv_memcpy (args . dest_buf ,
235- args . dest_offset + nbytes ,
236- args . dest_buf_sz ,
237- args . from + payload_offset ,
230+ nbytes += vidtv_memcpy (args -> dest_buf ,
231+ args -> dest_offset + nbytes ,
232+ args -> dest_buf_sz ,
233+ args -> from + payload_offset ,
238234 payload_write_len );
239235
240236 /* 'payload_write_len' written from a total of 'len' requested*/
@@ -246,12 +242,12 @@ static u32 vidtv_psi_ts_psi_write_into(struct psi_write_args args)
246242 * fill the rest of the packet if there is any remaining space unused
247243 */
248244
249- nbytes_past_boundary = (args . dest_offset + nbytes ) % TS_PACKET_LEN ;
245+ nbytes_past_boundary = (args -> dest_offset + nbytes ) % TS_PACKET_LEN ;
250246
251- if (args . is_crc )
252- nbytes += vidtv_memset (args . dest_buf ,
253- args . dest_offset + nbytes ,
254- args . dest_buf_sz ,
247+ if (args -> is_crc )
248+ nbytes += vidtv_memset (args -> dest_buf ,
249+ args -> dest_offset + nbytes ,
250+ args -> dest_buf_sz ,
255251 TS_FILL_BYTE ,
256252 TS_PACKET_LEN - nbytes_past_boundary );
257253
@@ -275,7 +271,7 @@ static u32 table_section_crc32_write_into(struct crc32_write_args args)
275271 psi_args .is_crc = true;
276272 psi_args .dest_buf_sz = args .dest_buf_sz ;
277273
278- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
274+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
279275
280276 return nbytes ;
281277}
@@ -662,7 +658,7 @@ static u32 vidtv_psi_desc_write_into(struct desc_write_args args)
662658 psi_args .dest_buf_sz = args .dest_buf_sz ;
663659 psi_args .crc = args .crc ;
664660
665- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
661+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
666662
667663 switch (args .desc -> type ) {
668664 case SERVICE_DESCRIPTOR :
@@ -671,33 +667,33 @@ static u32 vidtv_psi_desc_write_into(struct desc_write_args args)
671667 sizeof_field (struct vidtv_psi_desc_service , provider_name_len );
672668 psi_args .from = & ((struct vidtv_psi_desc_service * )args .desc )-> service_type ;
673669
674- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
670+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
675671
676672 psi_args .dest_offset = args .dest_offset + nbytes ;
677673 psi_args .len = ((struct vidtv_psi_desc_service * )args .desc )-> provider_name_len ;
678674 psi_args .from = ((struct vidtv_psi_desc_service * )args .desc )-> provider_name ;
679675
680- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
676+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
681677
682678 psi_args .dest_offset = args .dest_offset + nbytes ;
683679 psi_args .len = sizeof_field (struct vidtv_psi_desc_service , service_name_len );
684680 psi_args .from = & ((struct vidtv_psi_desc_service * )args .desc )-> service_name_len ;
685681
686- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
682+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
687683
688684 psi_args .dest_offset = args .dest_offset + nbytes ;
689685 psi_args .len = ((struct vidtv_psi_desc_service * )args .desc )-> service_name_len ;
690686 psi_args .from = ((struct vidtv_psi_desc_service * )args .desc )-> service_name ;
691687
692- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
688+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
693689 break ;
694690
695691 case NETWORK_NAME_DESCRIPTOR :
696692 psi_args .dest_offset = args .dest_offset + nbytes ;
697693 psi_args .len = args .desc -> length ;
698694 psi_args .from = ((struct vidtv_psi_desc_network_name * )args .desc )-> network_name ;
699695
700- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
696+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
701697 break ;
702698
703699 case SERVICE_LIST_DESCRIPTOR :
@@ -708,7 +704,7 @@ static u32 vidtv_psi_desc_write_into(struct desc_write_args args)
708704 sizeof (struct vidtv_psi_desc_service_list_entry * );
709705 psi_args .from = serv_list_entry ;
710706
711- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
707+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
712708
713709 serv_list_entry = serv_list_entry -> next ;
714710 }
@@ -720,32 +716,32 @@ static u32 vidtv_psi_desc_write_into(struct desc_write_args args)
720716 psi_args .from = ((struct vidtv_psi_desc_short_event * )
721717 args .desc )-> iso_language_code ;
722718
723- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
719+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
724720
725721 psi_args .dest_offset = args .dest_offset + nbytes ;
726722 psi_args .len = sizeof_field (struct vidtv_psi_desc_short_event , event_name_len );
727723 psi_args .from = & ((struct vidtv_psi_desc_short_event * )
728724 args .desc )-> event_name_len ;
729725
730- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
726+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
731727
732728 psi_args .dest_offset = args .dest_offset + nbytes ;
733729 psi_args .len = ((struct vidtv_psi_desc_short_event * )args .desc )-> event_name_len ;
734730 psi_args .from = ((struct vidtv_psi_desc_short_event * )args .desc )-> event_name ;
735731
736- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
732+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
737733
738734 psi_args .dest_offset = args .dest_offset + nbytes ;
739735 psi_args .len = sizeof_field (struct vidtv_psi_desc_short_event , text_len );
740736 psi_args .from = & ((struct vidtv_psi_desc_short_event * )args .desc )-> text_len ;
741737
742- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
738+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
743739
744740 psi_args .dest_offset = args .dest_offset + nbytes ;
745741 psi_args .len = ((struct vidtv_psi_desc_short_event * )args .desc )-> text_len ;
746742 psi_args .from = ((struct vidtv_psi_desc_short_event * )args .desc )-> text ;
747743
748- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
744+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
749745
750746 break ;
751747
@@ -755,7 +751,7 @@ static u32 vidtv_psi_desc_write_into(struct desc_write_args args)
755751 psi_args .len = args .desc -> length ;
756752 psi_args .from = & args .desc -> data ;
757753
758- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
754+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
759755 break ;
760756 }
761757
@@ -780,7 +776,7 @@ vidtv_psi_table_header_write_into(struct header_write_args args)
780776 psi_args .dest_buf_sz = args .dest_buf_sz ;
781777 psi_args .crc = args .crc ;
782778
783- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
779+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
784780
785781 return nbytes ;
786782}
@@ -1014,7 +1010,7 @@ u32 vidtv_psi_pat_write_into(struct vidtv_psi_pat_write_args args)
10141010 sizeof (struct vidtv_psi_table_pat_program * );
10151011 psi_args .dest_offset = args .offset + nbytes ;
10161012
1017- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1013+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
10181014
10191015 p = p -> next ;
10201016 }
@@ -1207,7 +1203,7 @@ u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_write_args args)
12071203 psi_args .dest_buf_sz = args .buf_sz ;
12081204 psi_args .crc = & crc ;
12091205
1210- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1206+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
12111207
12121208 while (table_descriptor ) {
12131209 /* write the descriptors, if any */
@@ -1232,7 +1228,7 @@ u32 vidtv_psi_pmt_write_into(struct vidtv_psi_pmt_write_args args)
12321228 sizeof_field (struct vidtv_psi_table_pmt_stream , bitfield2 );
12331229 psi_args .dest_offset = args .offset + nbytes ;
12341230
1235- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1231+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
12361232
12371233 stream_descriptor = stream -> descriptor ;
12381234
@@ -1360,7 +1356,7 @@ u32 vidtv_psi_sdt_write_into(struct vidtv_psi_sdt_write_args args)
13601356 psi_args .crc = & crc ;
13611357
13621358 /* copy u16 network_id + u8 reserved)*/
1363- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1359+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
13641360
13651361 while (service ) {
13661362 /* copy the services, if any */
@@ -1371,7 +1367,7 @@ u32 vidtv_psi_sdt_write_into(struct vidtv_psi_sdt_write_args args)
13711367 sizeof (struct vidtv_psi_table_sdt_service * );
13721368 psi_args .dest_offset = args .offset + nbytes ;
13731369
1374- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1370+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
13751371
13761372 service_desc = service -> descriptor ;
13771373
@@ -1694,7 +1690,7 @@ u32 vidtv_psi_nit_write_into(struct vidtv_psi_nit_write_args args)
16941690 psi_args .dest_buf_sz = args .buf_sz ;
16951691 psi_args .crc = & crc ;
16961692
1697- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1693+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
16981694
16991695 while (table_descriptor ) {
17001696 /* write the descriptors, if any */
@@ -1718,7 +1714,7 @@ u32 vidtv_psi_nit_write_into(struct vidtv_psi_nit_write_args args)
17181714 psi_args .dest_offset = args .offset + nbytes ;
17191715 psi_args .pid = VIDTV_NIT_PID ;
17201716
1721- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1717+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
17221718
17231719 while (transport ) {
17241720 /* write the transport sections, if any */
@@ -1728,7 +1724,7 @@ u32 vidtv_psi_nit_write_into(struct vidtv_psi_nit_write_args args)
17281724 sizeof_field (struct vidtv_psi_table_transport , bitfield );
17291725 psi_args .dest_offset = args .offset + nbytes ;
17301726
1731- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1727+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
17321728
17331729 transport_descriptor = transport -> descriptor ;
17341730
@@ -1907,7 +1903,7 @@ u32 vidtv_psi_eit_write_into(struct vidtv_psi_eit_write_args args)
19071903 psi_args .dest_buf_sz = args .buf_sz ;
19081904 psi_args .crc = & crc ;
19091905
1910- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1906+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
19111907
19121908 while (event ) {
19131909 /* copy the events, if any */
@@ -1918,7 +1914,7 @@ u32 vidtv_psi_eit_write_into(struct vidtv_psi_eit_write_args args)
19181914 sizeof (struct vidtv_psi_table_eit_event * );
19191915 psi_args .dest_offset = args .offset + nbytes ;
19201916
1921- nbytes += vidtv_psi_ts_psi_write_into (psi_args );
1917+ nbytes += vidtv_psi_ts_psi_write_into (& psi_args );
19221918
19231919 event_descriptor = event -> descriptor ;
19241920
0 commit comments