question: private void rdp_decoding_r ( char [ ] [ ] g_data , int disks , int stripe_unit_size , int w , int k ) { int off , p ; int packet_size = stripe_unit_size / w ; int i = 0 ; System . arraycopy ( g_data [ 0 ] , 0 , g_data [ k ] , 0 , stripe_unit_size ) ; for ( i = 2 ; i < ( disks + 2 ) ; i ++ ) { if ( i == k ) continue ; for ( p = 0 ; p < w ; p ++ ) { for ( off = 0 ; off < packet_size ; off ++ ) { g_data [ k ] [ p * packet_size + off ] ^= g_data [ i ] [ p * packet_size + off ] ; } } } }
target:  rdp decoding according r and d checkouts. k:  the first error disk in g_data