summary refs log tree commit diff
path: root/data_model
Commit message (Collapse)AuthorAge
* data_model: add offset, copy_to_volatile_slice, Copy to VolatileSliceZach Reizner2018-07-20
| | | | | | | | | | | | | | These methods are convenient for safely doing complex copies between `VolatileSlice`s. TEST=cargo test -p data_model BUG=None Change-Id: I02f446953c24ef5cbb2cebd306344b1e13556bd7 Reviewed-on: https://chromium-review.googlesource.com/1102153 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
* volatile_memory: Fix usize/u64 confusion in doc testDylan Reid2018-02-05
| | | | | | | | | | | | | | VolatileMemory::size() now returns a u64, fix the doctest so it compares the returned value with a u64. BUG=none TEST=cargo test --all -- --test-threads=1 Change-Id: If1ae94d83bfc1f2f995fd71bfdede324c162ab4e Signed-off-by: Dylan Reid <dgreid@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/902777 Reviewed-by: Stephen Barber <smbarber@chromium.org> Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
* crosvm: change GuestAddress to always be a u64Sonny Rao2018-02-01
| | | | | | | | | | | | | | | We want to be able to run 64-bit ARM kernels using a 32-bit version of crosvm, to make it more consistent use a u64 to represent GuestAddress. BUG=chromium:797868 TEST=./build_test passes on all architectures TEST=crosvm runs on caroline Change-Id: I43bf993592caf46891e3e5e05258ab70b6bf3045 Signed-off-by: Sonny Rao <sonnyrao@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/896398 Reviewed-by: Dylan Reid <dgreid@chromium.org>
* data_model: add basic methods functions for using DataInit typesZach Reizner2018-01-25
| | | | | | | | | | | | | | These functions are very useful C-style type casting of byte buffers to structs in a safe manner for types that implement DataInit. BUG=None TEST=None Change-Id: I4c8e1b9f7f13da5a39b65f224b65f09f31d56f1c Reviewed-on: https://chromium-review.googlesource.com/869354 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
* data_model: add copy functions for copying slices in VolatileSlice'sZach Reizner2017-09-01
| | | | | | | | | | | | | | | | These copy functions are functionally similar to read_from and write_to, but have stronger guarantees because they are copying to/from concrete slices. In particular, the volatile access pattern is specified and the copy operation never returns an error. TEST=cargo test BUG=chromium:738638 Change-Id: Ie10152e10bc8a36058f5d5001ff392ff8975ee36 Reviewed-on: https://chromium-review.googlesource.com/599043 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
* crosvm: refactor and expand vm control socket IPCZach Reizner2017-08-25
| | | | | | | | | | | | | | | | This CL adds VM request capabilities to the control socket. These requests include the basic exit as well as the essential ioeventfd and irqfd requests. For virtio wayland, the register/unregister device memory request was added. TEST=cargo test BUG=chromium:738638 Change-Id: I0cbf62d85a299cf454bcf6924a4e1d52d5b7183f Reviewed-on: https://chromium-review.googlesource.com/602593 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
* data_model: add volatile_memory module for volatile accessZach Reizner2017-06-27
| | | | | | | | | | | | | | This includes both VolatileRef, for accessing DataInit, and VolatileSlice, for accessing bulk raw memory. BUG=None TEST=cargo test Change-Id: I356c7e6f05361fa711dc91555f68e4323667884a Reviewed-on: https://chromium-review.googlesource.com/547050 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org>
* data_model: add unsigned endian typesZach Reizner2017-06-27
| | | | | | | | | | | | | | These types are just like normal unsigned primitives, except their endian is explicit. TEST=cargo test BUG=None Change-Id: I3d0a7f7ccbf276e2cfdb34310f173df193c70c79 Reviewed-on: https://chromium-review.googlesource.com/544692 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
* Add data_model with DataInit traitDylan Reid2017-06-26
The data_model crate is created to hold the DataInit trait. Types implementing this unsafe trait must guarantee that the type can be initialized with random data and the resulting object will be valid. Change-Id: Id6314d114805ec502adabe50a8bd6aa42fdb2c52 Signed-off-by: Dylan Reid <dgreid@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/541681 Reviewed-by: Zach Reizner <zachr@chromium.org>