xref: /haiku/headers/os/drivers/USB_rle.h (revision 47000651b51af4a131172d6944af93f46d8634e1)
11501c2bfSNiels Sascha Reedijk /*
2*47000651SAxel Dörfler  * Copyright 2009, Haiku Inc. All Rights Reserved.
3*47000651SAxel Dörfler  * Distributed under the terms of the MIT License.
41501c2bfSNiels Sascha Reedijk  */
51501c2bfSNiels Sascha Reedijk #ifndef _USB_RLE_H
61501c2bfSNiels Sascha Reedijk #define _USB_RLE_H
71501c2bfSNiels Sascha Reedijk 
8*47000651SAxel Dörfler 
9*47000651SAxel Dörfler #include <SupportDefs.h>
10*47000651SAxel Dörfler 
111501c2bfSNiels Sascha Reedijk 
121501c2bfSNiels Sascha Reedijk struct _usbd_param_hdr;
131501c2bfSNiels Sascha Reedijk 
141501c2bfSNiels Sascha Reedijk 
15*47000651SAxel Dörfler /* Run length encoding for isochronous in transfers */
161501c2bfSNiels Sascha Reedijk 
171501c2bfSNiels Sascha Reedijk #define RLE_GOOD       1
181501c2bfSNiels Sascha Reedijk #define RLE_BAD        2
191501c2bfSNiels Sascha Reedijk #define RLE_MISSING    3
201501c2bfSNiels Sascha Reedijk #define RLE_UNKNOWN    4
211501c2bfSNiels Sascha Reedijk 
22*47000651SAxel Dörfler /* data buffer state */
231501c2bfSNiels Sascha Reedijk typedef struct rle {
241501c2bfSNiels Sascha Reedijk 	uint16	rle_status;
251501c2bfSNiels Sascha Reedijk 	uint16	sample_count;
261501c2bfSNiels Sascha Reedijk } rle;
271501c2bfSNiels Sascha Reedijk 
281501c2bfSNiels Sascha Reedijk typedef struct rlea {
291501c2bfSNiels Sascha Reedijk 	uint16	length;
301501c2bfSNiels Sascha Reedijk 	uint16	num_valid;
311501c2bfSNiels Sascha Reedijk 	rle		rles[1];
321501c2bfSNiels Sascha Reedijk } rlea;
331501c2bfSNiels Sascha Reedijk 
341501c2bfSNiels Sascha Reedijk 
35*47000651SAxel Dörfler #endif	/* _USB_RLE_H */
36