| 461 | } |
| 462 | |
| 463 | fn read_config(&self, offset: u64, data: &mut [u8]) { |
| 464 | match offset { |
| 465 | 0 if data.len() == 8 => LittleEndian::write_u64(data, self.cid), |
| 466 | 0 if data.len() == 4 => LittleEndian::write_u32(data, (self.cid & 0xffff_ffff) as u32), |
| 467 | 4 if data.len() == 4 => { |
| 468 | LittleEndian::write_u32(data, ((self.cid >> 32) & 0xffff_ffff) as u32); |
| 469 | } |
| 470 | _ => warn!( |
| 471 | "vsock: virtio-vsock received invalid read request of {} bytes at offset {}", |
| 472 | data.len(), |
| 473 | offset |
| 474 | ), |
| 475 | } |
| 476 | } |
| 477 | |
| 478 | fn activate(&mut self, context: crate::device::ActivationContext) -> ActivateResult { |
| 479 | let crate::device::ActivationContext { |