summary refs log tree commit diff
path: root/devices/src/usb/xhci/ring_buffer.rs
diff options
context:
space:
mode:
authorJingkui Wang <jkwang@google.com>2019-04-09 14:30:21 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-05-25 02:31:16 -0700
commit6c1e23eee3065b3f3d6fc4fb992ac9884dbabf68 (patch)
tree63514ac56b73078479bc662a8f9514b05e11cc85 /devices/src/usb/xhci/ring_buffer.rs
parenta27f3a74d3c54fe944489f54432862144a8868b3 (diff)
downloadcrosvm-6c1e23eee3065b3f3d6fc4fb992ac9884dbabf68.tar
crosvm-6c1e23eee3065b3f3d6fc4fb992ac9884dbabf68.tar.gz
crosvm-6c1e23eee3065b3f3d6fc4fb992ac9884dbabf68.tar.bz2
crosvm-6c1e23eee3065b3f3d6fc4fb992ac9884dbabf68.tar.lz
crosvm-6c1e23eee3065b3f3d6fc4fb992ac9884dbabf68.tar.xz
crosvm-6c1e23eee3065b3f3d6fc4fb992ac9884dbabf68.tar.zst
crosvm-6c1e23eee3065b3f3d6fc4fb992ac9884dbabf68.zip
crosvm: update xhci abi to use new bit_field features
We don't need schema anymore. Will use bool and custom enums.

BUG=None
TEST=local build and run crosvm

Change-Id: I1396916878f2903b17a75f375aee4eec1ced0583
Signed-off-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1564780
Tested-by: kokoro <noreply+kokoro@google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'devices/src/usb/xhci/ring_buffer.rs')
-rw-r--r--devices/src/usb/xhci/ring_buffer.rs26
1 files changed, 13 insertions, 13 deletions
diff --git a/devices/src/usb/xhci/ring_buffer.rs b/devices/src/usb/xhci/ring_buffer.rs
index 72c9ec0..a178ebb 100644
--- a/devices/src/usb/xhci/ring_buffer.rs
+++ b/devices/src/usb/xhci/ring_buffer.rs
@@ -67,14 +67,14 @@ impl RingBuffer {
     pub fn dequeue_transfer_descriptor(&mut self) -> Result<Option<TransferDescriptor>> {
         let mut td: TransferDescriptor = TransferDescriptor::new();
         while let Some(addressed_trb) = self.get_current_trb()? {
-            if let Ok(TrbType::Link) = addressed_trb.trb.trb_type() {
+            if let Ok(TrbType::Link) = addressed_trb.trb.get_trb_type() {
                 let link_trb = addressed_trb
                     .trb
                     .cast::<LinkTrb>()
                     .map_err(Error::CastTrb)?;
                 self.dequeue_pointer = GuestAddress(link_trb.get_ring_segment_pointer());
                 self.consumer_cycle_state =
-                    self.consumer_cycle_state != link_trb.get_toggle_cycle_bit();
+                    self.consumer_cycle_state != link_trb.get_toggle_cycle();
                 continue;
             }
 
@@ -131,7 +131,7 @@ impl RingBuffer {
         usb_debug!("{}: trb read from memory {:?}", self.name.as_str(), trb);
         // If cycle bit of trb does not equal consumer cycle state, the ring is empty.
         // This trb is invalid.
-        if trb.get_cycle_bit() != self.consumer_cycle_state {
+        if trb.get_cycle() != self.consumer_cycle_state {
             usb_debug!(
                 "cycle bit does not match, self cycle {}",
                 self.consumer_cycle_state
@@ -163,9 +163,9 @@ mod test {
         //  trb 2  |   trb 4  |   trb 6
         //  l trb  -   l trb  -   l trb to 0x100
         let mut trb = NormalTrb::new();
-        trb.set_trb_type(TrbType::Normal as u8);
+        trb.set_trb_type(TrbType::Normal);
         trb.set_data_buffer(1);
-        trb.set_chain(1);
+        trb.set_chain(true);
         gm.write_obj_at_addr(trb.clone(), GuestAddress(0x100))
             .unwrap();
 
@@ -174,7 +174,7 @@ mod test {
             .unwrap();
 
         let mut ltrb = LinkTrb::new();
-        ltrb.set_trb_type(TrbType::Link as u8);
+        ltrb.set_trb_type(TrbType::Link);
         ltrb.set_ring_segment_pointer(0x200);
         gm.write_obj_at_addr(ltrb, GuestAddress(0x100 + 2 * trb_size))
             .unwrap();
@@ -184,7 +184,7 @@ mod test {
 
         // Chain bit is false.
         trb.set_data_buffer(4);
-        trb.set_chain(0);
+        trb.set_chain(false);
         gm.write_obj_at_addr(trb, GuestAddress(0x200 + 1 * trb_size))
             .unwrap();
 
@@ -193,12 +193,12 @@ mod test {
             .unwrap();
 
         trb.set_data_buffer(5);
-        trb.set_chain(1);
+        trb.set_chain(true);
         gm.write_obj_at_addr(trb, GuestAddress(0x300)).unwrap();
 
         // Chain bit is false.
         trb.set_data_buffer(6);
-        trb.set_chain(0);
+        trb.set_chain(false);
         gm.write_obj_at_addr(trb, GuestAddress(0x300 + 1 * trb_size))
             .unwrap();
 
@@ -237,9 +237,9 @@ mod test {
         let mut transfer_ring = RingBuffer::new(String::new(), gm.clone());
 
         let mut trb = NormalTrb::new();
-        trb.set_trb_type(TrbType::Normal as u8);
+        trb.set_trb_type(TrbType::Normal);
         trb.set_data_buffer(1);
-        trb.set_chain(1);
+        trb.set_chain(true);
         gm.write_obj_at_addr(trb.clone(), GuestAddress(0x100))
             .unwrap();
 
@@ -248,9 +248,9 @@ mod test {
             .unwrap();
 
         let mut ltrb = LinkTrb::new();
-        ltrb.set_trb_type(TrbType::Link as u8);
+        ltrb.set_trb_type(TrbType::Link);
         ltrb.set_ring_segment_pointer(0x200);
-        ltrb.set_toggle_cycle(1);
+        ltrb.set_toggle_cycle(true);
         gm.write_obj_at_addr(ltrb, GuestAddress(0x100 + 2 * trb_size))
             .unwrap();