@@ -255,16 +255,16 @@ mod tests {
255
255
let vq = MockSplitQueue :: new ( m, 16 ) ;
256
256
let mut q = vq. create_queue ( m) ;
257
257
258
- assert_eq ! ( vq. used( ) . idx( ) . load( ) , 0 ) ;
258
+ assert_eq ! ( u16 :: from_le ( vq. used( ) . idx( ) . load( ) ) , 0 ) ;
259
259
260
260
// index too large
261
261
assert ! ( q. add_used( 16 , 0x1000 ) . is_err( ) ) ;
262
- assert_eq ! ( vq. used( ) . idx( ) . load( ) , 0 ) ;
262
+ assert_eq ! ( u16 :: from_le ( vq. used( ) . idx( ) . load( ) ) , 0 ) ;
263
263
264
264
// should be ok
265
265
q. add_used ( 1 , 0x1000 ) . unwrap ( ) ;
266
266
assert_eq ! ( q. state. next_used, Wrapping ( 1 ) ) ;
267
- assert_eq ! ( vq. used( ) . idx( ) . load( ) , 1 ) ;
267
+ assert_eq ! ( u16 :: from_le ( vq. used( ) . idx( ) . load( ) ) , 1 ) ;
268
268
269
269
let x = vq. used ( ) . ring ( ) . ref_at ( 0 ) . load ( ) ;
270
270
assert_eq ! ( x. id( ) , 1 ) ;
@@ -323,8 +323,11 @@ mod tests {
323
323
assert_eq ! ( q. needs_notification( ) . unwrap( ) , true ) ;
324
324
}
325
325
326
- m. write_obj :: < u16 > ( 4 , avail_addr. unchecked_add ( 4 + qsize as u64 * 2 ) )
327
- . unwrap ( ) ;
326
+ m. write_obj :: < u16 > (
327
+ u16:: to_le ( 4 ) ,
328
+ avail_addr. unchecked_add ( 4 + qsize as u64 * 2 ) ,
329
+ )
330
+ . unwrap ( ) ;
328
331
q. state . set_event_idx ( true ) ;
329
332
330
333
// Incrementing up to this value causes an `u16` to wrap back to 0.
@@ -372,26 +375,28 @@ mod tests {
372
375
assert_eq ! ( q. state. event_idx_enabled, false ) ;
373
376
374
377
q. enable_notification ( ) . unwrap ( ) ;
375
- let v = m. read_obj :: < u16 > ( used_addr) . unwrap ( ) ;
378
+ let v = m. read_obj :: < u16 > ( used_addr) . map ( u16 :: from_le ) . unwrap ( ) ;
376
379
assert_eq ! ( v, 0 ) ;
377
380
378
381
q. disable_notification ( ) . unwrap ( ) ;
379
- let v = m. read_obj :: < u16 > ( used_addr) . unwrap ( ) ;
382
+ let v = m. read_obj :: < u16 > ( used_addr) . map ( u16 :: from_le ) . unwrap ( ) ;
380
383
assert_eq ! ( v, VIRTQ_USED_F_NO_NOTIFY ) ;
381
384
382
385
q. enable_notification ( ) . unwrap ( ) ;
383
- let v = m. read_obj :: < u16 > ( used_addr) . unwrap ( ) ;
386
+ let v = m. read_obj :: < u16 > ( used_addr) . map ( u16 :: from_le ) . unwrap ( ) ;
384
387
assert_eq ! ( v, 0 ) ;
385
388
386
389
q. set_event_idx ( true ) ;
387
390
let avail_addr = vq. avail_addr ( ) ;
388
- m. write_obj :: < u16 > ( 2 , avail_addr. unchecked_add ( 2 ) ) . unwrap ( ) ;
391
+ m. write_obj :: < u16 > ( u16:: to_le ( 2 ) , avail_addr. unchecked_add ( 2 ) )
392
+ . unwrap ( ) ;
389
393
390
394
assert_eq ! ( q. enable_notification( ) . unwrap( ) , true ) ;
391
395
q. state . next_avail = Wrapping ( 2 ) ;
392
396
assert_eq ! ( q. enable_notification( ) . unwrap( ) , false ) ;
393
397
394
- m. write_obj :: < u16 > ( 8 , avail_addr. unchecked_add ( 2 ) ) . unwrap ( ) ;
398
+ m. write_obj :: < u16 > ( u16:: to_le ( 8 ) , avail_addr. unchecked_add ( 2 ) )
399
+ . unwrap ( ) ;
395
400
396
401
assert_eq ! ( q. enable_notification( ) . unwrap( ) , true ) ;
397
402
q. state . next_avail = Wrapping ( 8 ) ;
@@ -419,13 +424,13 @@ mod tests {
419
424
vq. desc_table ( ) . store ( i, desc) ;
420
425
}
421
426
422
- vq. avail ( ) . ring ( ) . ref_at ( 0 ) . store ( 0 ) ;
423
- vq. avail ( ) . ring ( ) . ref_at ( 1 ) . store ( 2 ) ;
424
- vq. avail ( ) . ring ( ) . ref_at ( 2 ) . store ( 5 ) ;
425
- vq. avail ( ) . ring ( ) . ref_at ( 3 ) . store ( 7 ) ;
426
- vq. avail ( ) . ring ( ) . ref_at ( 4 ) . store ( 9 ) ;
427
+ vq. avail ( ) . ring ( ) . ref_at ( 0 ) . store ( u16 :: to_le ( 0 ) ) ;
428
+ vq. avail ( ) . ring ( ) . ref_at ( 1 ) . store ( u16 :: to_le ( 2 ) ) ;
429
+ vq. avail ( ) . ring ( ) . ref_at ( 2 ) . store ( u16 :: to_le ( 5 ) ) ;
430
+ vq. avail ( ) . ring ( ) . ref_at ( 3 ) . store ( u16 :: to_le ( 7 ) ) ;
431
+ vq. avail ( ) . ring ( ) . ref_at ( 4 ) . store ( u16 :: to_le ( 9 ) ) ;
427
432
// Let the device know it can consume chains with the index < 2.
428
- vq. avail ( ) . idx ( ) . store ( 2 ) ;
433
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 2 ) ) ;
429
434
// No descriptor chains are consumed at this point.
430
435
assert_eq ! ( q. next_avail( ) , 0 ) ;
431
436
@@ -450,7 +455,7 @@ mod tests {
450
455
// The next chain that can be consumed should have index 2.
451
456
assert_eq ! ( q. next_avail( ) , 2 ) ;
452
457
// Let the device know it can consume one more chain.
453
- vq. avail ( ) . idx ( ) . store ( 3 ) ;
458
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 3 ) ) ;
454
459
i = 0 ;
455
460
456
461
loop {
@@ -465,7 +470,7 @@ mod tests {
465
470
// ring. Ideally this should be done on a separate thread.
466
471
// Because of this update, the loop should be iterated again to consume the new
467
472
// available descriptor chains.
468
- vq. avail ( ) . idx ( ) . store ( 4 ) ;
473
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 4 ) ) ;
469
474
if !q. enable_notification ( ) . unwrap ( ) {
470
475
break ;
471
476
}
@@ -476,7 +481,7 @@ mod tests {
476
481
477
482
// Set an `idx` that is bigger than the number of entries added in the ring.
478
483
// This is an allowed scenario, but the indexes of the chain will have unexpected values.
479
- vq. avail ( ) . idx ( ) . store ( 7 ) ;
484
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 7 ) ) ;
480
485
loop {
481
486
q. disable_notification ( ) . unwrap ( ) ;
482
487
@@ -514,11 +519,11 @@ mod tests {
514
519
vq. desc_table ( ) . store ( i, desc) ;
515
520
}
516
521
517
- vq. avail ( ) . ring ( ) . ref_at ( 0 ) . store ( 0 ) ;
518
- vq. avail ( ) . ring ( ) . ref_at ( 1 ) . store ( 2 ) ;
519
- vq. avail ( ) . ring ( ) . ref_at ( 2 ) . store ( 5 ) ;
522
+ vq. avail ( ) . ring ( ) . ref_at ( 0 ) . store ( u16 :: to_le ( 0 ) ) ;
523
+ vq. avail ( ) . ring ( ) . ref_at ( 1 ) . store ( u16 :: to_le ( 2 ) ) ;
524
+ vq. avail ( ) . ring ( ) . ref_at ( 2 ) . store ( u16 :: to_le ( 5 ) ) ;
520
525
// Let the device know it can consume chains with the index < 2.
521
- vq. avail ( ) . idx ( ) . store ( 3 ) ;
526
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 3 ) ) ;
522
527
// No descriptor chains are consumed at this point.
523
528
assert_eq ! ( q. next_avail( ) , 0 ) ;
524
529
@@ -541,7 +546,7 @@ mod tests {
541
546
542
547
// Decrement `idx` which should be forbidden. We don't enforce this thing, but we should
543
548
// test that we don't panic in case the driver decrements it.
544
- vq. avail ( ) . idx ( ) . store ( 1 ) ;
549
+ vq. avail ( ) . idx ( ) . store ( u16 :: to_le ( 1 ) ) ;
545
550
546
551
loop {
547
552
q. disable_notification ( ) . unwrap ( ) ;
0 commit comments