crosvm/sys_util
Chirantan Ekbote bf67203f97 sys_util: Add ReadWriteAtVolatile trait and *vectored functions
Add the FileReadWriteAtVolatile trait, which is basically the same as
the FileReadWriteVolatile trait but additionally takes an offest.  This
is only useful for types that are seekable and can allow concurrent
operations on the same underlying type.

Also add `*_vectored` versions of all the functions.  These match the
`*_vectored` functions in the standard library and can reduce the number
of system calls needed to read or write a whole buffer.

Implement both traits for `&mut T` if `T` implements them.

Change the trait implementation for `File` to a macro so that we can
also implement it for `GuestMemory`.

BUG=b:136128319
TEST=unit tests

Change-Id: I3d8eb7bba17fe3247e18649b1b04e21a91a841e2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1724229
Auto-Submit: Chirantan Ekbote <chirantan@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2019-10-07 19:00:34 +00:00
..
poll_token_derive edition: Remove extern crate lines 2019-04-15 02:06:08 -07:00
src sys_util: Add ReadWriteAtVolatile trait and *vectored functions 2019-10-07 19:00:34 +00:00
Cargo.toml tempfile: Unify the two tempdir implementations 2019-07-11 16:15:38 -07:00