@@ -6,6 +6,20 @@ use crate::class_prelude::*;
6
6
use crate :: device:: { UsbDevice , UsbDeviceBuilder , UsbVidPid } ;
7
7
use crate :: descriptor;
8
8
9
+ #[ cfg( feature = "test-class-highspeed" ) ]
10
+ mod sizes {
11
+ pub const BUFFER : usize = 1024 ;
12
+ pub const BULK_ENDPOINT : u16 = 512 ;
13
+ pub const INTERRUPT_ENDPOINT : u16 = 1024 ;
14
+ }
15
+
16
+ #[ cfg( not( feature = "test-class-highspeed" ) ) ]
17
+ mod sizes {
18
+ pub const BUFFER : usize = 256 ;
19
+ pub const BULK_ENDPOINT : u16 = 64 ;
20
+ pub const INTERRUPT_ENDPOINT : u16 = 31 ;
21
+ }
22
+
9
23
/// Test USB class for testing USB driver implementations. Supports various endpoint types and
10
24
/// requests for testing USB peripheral drivers on actual hardware.
11
25
pub struct TestClass < ' a , B : UsbBus > {
@@ -15,9 +29,9 @@ pub struct TestClass<'a, B: UsbBus> {
15
29
ep_bulk_out : EndpointOut < ' a , B > ,
16
30
ep_interrupt_in : EndpointIn < ' a , B > ,
17
31
ep_interrupt_out : EndpointOut < ' a , B > ,
18
- control_buf : [ u8 ; 256 ] ,
19
- bulk_buf : [ u8 ; 256 ] ,
20
- interrupt_buf : [ u8 ; 256 ] ,
32
+ control_buf : [ u8 ; sizes :: BUFFER ] ,
33
+ bulk_buf : [ u8 ; sizes :: BUFFER ] ,
34
+ interrupt_buf : [ u8 ; sizes :: BUFFER ] ,
21
35
len : usize ,
22
36
i : usize ,
23
37
bench : bool ,
@@ -43,19 +57,20 @@ pub const REQ_UNKNOWN: u8 = 42;
43
57
44
58
pub const LONG_DATA : & ' static [ u8 ] = & [ 0x17 ; 257 ] ;
45
59
60
+
46
61
impl < B : UsbBus > TestClass < ' _ , B > {
47
62
/// Creates a new TestClass.
48
63
pub fn new ( alloc : & UsbBusAllocator < B > ) -> TestClass < ' _ , B > {
49
64
TestClass {
50
65
custom_string : alloc. string ( ) ,
51
66
iface : alloc. interface ( ) ,
52
- ep_bulk_in : alloc. bulk ( 64 ) ,
53
- ep_bulk_out : alloc. bulk ( 64 ) ,
54
- ep_interrupt_in : alloc. interrupt ( 31 , 1 ) ,
55
- ep_interrupt_out : alloc. interrupt ( 31 , 1 ) ,
56
- control_buf : [ 0 ; 256 ] ,
57
- bulk_buf : [ 0 ; 256 ] ,
58
- interrupt_buf : [ 0 ; 256 ] ,
67
+ ep_bulk_in : alloc. bulk ( sizes :: BULK_ENDPOINT ) ,
68
+ ep_bulk_out : alloc. bulk ( sizes :: BULK_ENDPOINT ) ,
69
+ ep_interrupt_in : alloc. interrupt ( sizes :: INTERRUPT_ENDPOINT , 1 ) ,
70
+ ep_interrupt_out : alloc. interrupt ( sizes :: INTERRUPT_ENDPOINT , 1 ) ,
71
+ control_buf : [ 0 ; sizes :: BUFFER ] ,
72
+ bulk_buf : [ 0 ; sizes :: BUFFER ] ,
73
+ interrupt_buf : [ 0 ; sizes :: BUFFER ] ,
59
74
len : 0 ,
60
75
i : 0 ,
61
76
bench : false ,
0 commit comments