@@ -266,16 +266,16 @@ mod tests {
266
266
let vq = MockSplitQueue :: new ( m, 16 ) ;
267
267
let mut q = vq. create_queue ( m) ;
268
268
269
- assert_eq ! ( vq. used( ) . idx( ) . load( ) , 0 ) ;
269
+ assert_eq ! ( u16 :: from_le ( vq. used( ) . idx( ) . load( ) ) , 0 ) ;
270
270
271
271
// index too large
272
272
assert ! ( q. add_used( 16 , 0x1000 ) . is_err( ) ) ;
273
- assert_eq ! ( vq. used( ) . idx( ) . load( ) , 0 ) ;
273
+ assert_eq ! ( u16 :: from_le ( vq. used( ) . idx( ) . load( ) ) , 0 ) ;
274
274
275
275
// should be ok
276
276
q. add_used ( 1 , 0x1000 ) . unwrap ( ) ;
277
277
assert_eq ! ( q. state. next_used, Wrapping ( 1 ) ) ;
278
- assert_eq ! ( vq. used( ) . idx( ) . load( ) , 1 ) ;
278
+ assert_eq ! ( u16 :: from_le ( vq. used( ) . idx( ) . load( ) ) , 1 ) ;
279
279
280
280
let x = vq. used ( ) . ring ( ) . ref_at ( 0 ) . load ( ) ;
281
281
assert_eq ! ( x. id( ) , 1 ) ;
@@ -334,8 +334,11 @@ mod tests {
334
334
assert_eq ! ( q. needs_notification( ) . unwrap( ) , true ) ;
335
335
}
336
336
337
- m. write_obj :: < u16 > ( 4 , avail_addr. unchecked_add ( 4 + qsize as u64 * 2 ) )
338
- . unwrap ( ) ;
337
+ m. write_obj :: < u16 > (
338
+ u16:: to_le ( 4 ) ,
339
+ avail_addr. unchecked_add ( 4 + qsize as u64 * 2 ) ,
340
+ )
341
+ . unwrap ( ) ;
339
342
q. state . set_event_idx ( true ) ;
340
343
341
344
// Incrementing up to this value causes an `u16` to wrap back to 0.
@@ -383,26 +386,28 @@ mod tests {
383
386
assert_eq ! ( q. state. event_idx_enabled, false ) ;
384
387
385
388
q. enable_notification ( ) . unwrap ( ) ;
386
- let v = m. read_obj :: < u16 > ( used_addr) . unwrap ( ) ;
389
+ let v = m. read_obj :: < u16 > ( used_addr) . map ( u16 :: from_le ) . unwrap ( ) ;
387
390
assert_eq ! ( v, 0 ) ;
388
391
389
392
q. disable_notification ( ) . unwrap ( ) ;
390
- let v = m. read_obj :: < u16 > ( used_addr) . unwrap ( ) ;
393
+ let v = m. read_obj :: < u16 > ( used_addr) . map ( u16 :: from_le ) . unwrap ( ) ;
391
394
assert_eq ! ( v, VIRTQ_USED_F_NO_NOTIFY ) ;
392
395
393
396
q. enable_notification ( ) . unwrap ( ) ;
394
- let v = m. read_obj :: < u16 > ( used_addr) . unwrap ( ) ;
397
+ let v = m. read_obj :: < u16 > ( used_addr) . map ( u16 :: from_le ) . unwrap ( ) ;
395
398
assert_eq ! ( v, 0 ) ;
396
399
397
400
q. set_event_idx ( true ) ;
398
401
let avail_addr = vq. avail_addr ( ) ;
399
- m. write_obj :: < u16 > ( 2 , avail_addr. unchecked_add ( 2 ) ) . unwrap ( ) ;
402
+ m. write_obj :: < u16 > ( u16:: to_le ( 2 ) , avail_addr. unchecked_add ( 2 ) )
403
+ . unwrap ( ) ;
400
404
401
405
assert_eq ! ( q. enable_notification( ) . unwrap( ) , true ) ;
402
406
q. state . next_avail = Wrapping ( 2 ) ;
403
407
assert_eq ! ( q. enable_notification( ) . unwrap( ) , false ) ;
404
408
405
- m. write_obj :: < u16 > ( 8 , avail_addr. unchecked_add ( 2 ) ) . unwrap ( ) ;
409
+ m. write_obj :: < u16 > ( u16:: to_le ( 8 ) , avail_addr. unchecked_add ( 2 ) )
410
+ . unwrap ( ) ;
406
411
407
412
assert_eq ! ( q. enable_notification( ) . unwrap( ) , true ) ;
408
413
q. state . next_avail = Wrapping ( 8 ) ;
@@ -430,13 +435,13 @@ mod tests {
430
435
vq. desc_table ( ) . store ( i, desc) ;
431
436
}
432
437
433
- vq. avail ( ) . ring ( ) . ref_at ( 0 ) . store ( 0 ) ;
434
- vq. avail ( ) . ring ( ) . ref_at ( 1 ) . store ( 2 ) ;
435
- vq. avail ( ) . ring ( ) . ref_at ( 2 ) . store ( 5 ) ;
436
- vq. avail ( ) . ring ( ) . ref_at ( 3 ) . store ( 7 ) ;
437
- vq. avail ( ) . ring ( ) . ref_at ( 4 ) . store ( 9 ) ;
438
+ vq. avail ( ) . ring ( ) . ref_at ( 0 ) . store ( u16 :: to_le ( 0 ) ) ;
439
+ vq. avail ( ) . ring ( ) . ref_at ( 1 ) . store ( u16 :: to_le ( 2 ) ) ;
440
+ vq. avail ( ) . ring ( ) . ref_at ( 2 ) . store ( u16 :: to_le ( 5 ) ) ;
441
+ vq. avail ( ) . ring ( ) . ref_at ( 3 ) . store ( u16 :: to_le ( 7 ) ) ;
442
+ vq. avail ( ) . ring ( ) . ref_at ( 4 ) . store ( u16 :: to_le ( 9 ) ) ;
438
443
// Let the device know it can consume chains with the index < 2.
439
- vq. avail ( ) . idx ( ) . store ( 2 ) ;
444
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 2 ) ) ;
440
445
// No descriptor chains are consumed at this point.
441
446
assert_eq ! ( q. next_avail( ) , 0 ) ;
442
447
@@ -461,7 +466,7 @@ mod tests {
461
466
// The next chain that can be consumed should have index 2.
462
467
assert_eq ! ( q. next_avail( ) , 2 ) ;
463
468
// Let the device know it can consume one more chain.
464
- vq. avail ( ) . idx ( ) . store ( 3 ) ;
469
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 3 ) ) ;
465
470
i = 0 ;
466
471
467
472
loop {
@@ -476,7 +481,7 @@ mod tests {
476
481
// ring. Ideally this should be done on a separate thread.
477
482
// Because of this update, the loop should be iterated again to consume the new
478
483
// available descriptor chains.
479
- vq. avail ( ) . idx ( ) . store ( 4 ) ;
484
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 4 ) ) ;
480
485
if !q. enable_notification ( ) . unwrap ( ) {
481
486
break ;
482
487
}
@@ -487,7 +492,7 @@ mod tests {
487
492
488
493
// Set an `idx` that is bigger than the number of entries added in the ring.
489
494
// This is an allowed scenario, but the indexes of the chain will have unexpected values.
490
- vq. avail ( ) . idx ( ) . store ( 7 ) ;
495
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 7 ) ) ;
491
496
loop {
492
497
q. disable_notification ( ) . unwrap ( ) ;
493
498
@@ -525,11 +530,11 @@ mod tests {
525
530
vq. desc_table ( ) . store ( i, desc) ;
526
531
}
527
532
528
- vq. avail ( ) . ring ( ) . ref_at ( 0 ) . store ( 0 ) ;
529
- vq. avail ( ) . ring ( ) . ref_at ( 1 ) . store ( 2 ) ;
530
- vq. avail ( ) . ring ( ) . ref_at ( 2 ) . store ( 5 ) ;
533
+ vq. avail ( ) . ring ( ) . ref_at ( 0 ) . store ( u16 :: to_le ( 0 ) ) ;
534
+ vq. avail ( ) . ring ( ) . ref_at ( 1 ) . store ( u16 :: to_le ( 2 ) ) ;
535
+ vq. avail ( ) . ring ( ) . ref_at ( 2 ) . store ( u16 :: to_le ( 5 ) ) ;
531
536
// Let the device know it can consume chains with the index < 2.
532
- vq. avail ( ) . idx ( ) . store ( 3 ) ;
537
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 3 ) ) ;
533
538
// No descriptor chains are consumed at this point.
534
539
assert_eq ! ( q. next_avail( ) , 0 ) ;
535
540
@@ -552,7 +557,7 @@ mod tests {
552
557
553
558
// Decrement `idx` which should be forbidden. We don't enforce this thing, but we should
554
559
// test that we don't panic in case the driver decrements it.
555
- vq. avail ( ) . idx ( ) . store ( 1 ) ;
560
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 1 ) ) ;
556
561
557
562
loop {
558
563
q. disable_notification ( ) . unwrap ( ) ;
0 commit comments