No description
Find a file
Josh Gao 7c738cdb53 adb: add IOVector.
An IOVector is a collection of immutable reference counted blocks which
can have its head detached at an arbitrary index. This is extremely
useful for implementing packet-framed protocols like adb on top of a
stream protocol like TCP: a stream reader can read blocks, append them
to the end of the IOVector, and then pull packets off of the front.
This also lends itself naturally towards scatter/gather I/O, which will
enable us to read data from disk and send it across the wire with a
theoretical minimum number of copies in USB, and one extra copy over
TCP.

Since this is basically a generalization of std::deque<Range>, delete
Range and replace its uses with IOVector.

Test: adb_test
Test: wine adb_test.exe
Change-Id: I06561ad0bb25a3a51b378b61d257b5b04b41d9c4
2018-05-23 11:26:04 -07:00
adb adb: add IOVector. 2018-05-23 11:26:04 -07:00
adf Merge "Add OWNERS." 2017-12-07 23:21:26 +00:00
base Mark as recovery_available: true 2018-05-15 09:47:04 +09:00
bootstat bootstat: test reboot rescueparty 2018-05-07 10:10:18 -07:00
cpio Possible null pointer miss on realloc 2017-03-23 22:41:14 +01:00
debuggerd Merge "debuggerd: fix CrasherTest.seccomp_crash_oom." 2018-05-19 02:14:33 +00:00
demangle Remove the 'optional' tag from demangle_fuzzer 2018-05-04 15:59:07 -05:00
diagnose_usb Copy adb/OWNERS to diagnose_usb/OWNERS. 2018-03-05 15:47:43 -08:00
fastboot fastboot: better temporary file errors. 2018-05-21 23:02:26 -07:00
fs_mgr Adds /dev/block/by-name/<partition> symlinks 2018-05-19 07:57:35 +08:00
gatekeeperd resolve merge conflicts of 0dd4b6aa3 to stage-aosp-master 2017-09-15 16:50:34 +09:00
healthd healthd: Add elsk as OWNERS 2018-05-03 12:25:00 -07:00
include Move android_filesystem_config.h => fs_config.h 2017-08-03 17:20:27 +00:00
init Merge "Property: Log errno for socket connect" 2018-05-22 17:37:23 +00:00
libappfuse bpfmt. 2018-02-16 17:58:14 -08:00
libasyncio Merge "Make libasyncio headers usable from C" 2018-03-06 19:35:21 +00:00
libbacktrace Merge "Mark as recovery_available: true" 2018-05-22 05:16:20 +00:00
libbinderwrapper Make libbinderwrapper available in /vendor partition 2018-04-06 08:41:21 +09:00
libcrypto_utils Mark the modules as VNDK in Android.bp 2017-09-14 08:35:16 +00:00
libcutils Mark as recovery_available: true 2018-05-15 09:47:04 +09:00
libdiskconfig Rename target.linux[_x86[_64]] to target.linux_glibc[_x86[_64]] 2017-10-02 10:44:29 -07:00
libgrallocusage Use -Werror in system/core 2017-11-01 11:32:55 -07:00
libion libion: cleanup logging 2018-03-07 10:56:06 -08:00
libkeyutils Add test_suites lines. 2018-04-27 16:12:06 -07:00
liblog Merge "Work around b/24465209, do not use clang lld" 2018-05-23 17:17:14 +00:00
libmemtrack Add OWNERS. 2017-12-07 13:30:03 -08:00
libmemunreachable Document using libmemunreachable on an app 2018-05-17 16:17:28 -07:00
libmetricslogger Add support for logging complex events from C++. 2018-05-08 10:27:09 +01:00
libnativebridge bpfmt. 2018-02-16 17:58:14 -08:00
libnativeloader bpfmt. 2018-02-16 17:58:14 -08:00
libnetutils Add OWNERS. 2017-12-07 13:30:03 -08:00
libpackagelistparser Mark as recovery_available: true 2018-05-15 09:47:04 +09:00
libpixelflinger MIPS[64]: codeflinger: Fix build due to unused variable warnings 2017-11-06 16:38:49 +01:00
libprocessgroup libprocessgroup: remove legacy C string handling and build for host 2018-02-27 14:12:19 -08:00
libprocinfo libprocinfo: fix mac build. 2018-05-15 12:51:57 -07:00
libqtaguid Redirect qtaguid native call to netd fwmark client 2017-11-09 18:02:22 -08:00
libsparse libsparse: Use 'size_t' for the 'len' parameter in callbacks. 2018-04-25 10:29:22 -07:00
libstats Add OWNERS file for libstats/ 2018-05-21 10:12:49 -07:00
libsuspend Add force_suspend function 2018-01-19 12:30:39 -08:00
libsync Add missing @addtogroup tags. 2018-04-13 14:49:41 -07:00
libsystem Mark as recovery_available: true 2018-05-15 09:47:04 +09:00
libsysutils Include iface index in the netlink event 2018-03-07 11:39:52 +09:00
libunwindstack Fix error messages handling. 2018-05-21 13:26:58 -07:00
libusbhost Remove urb request size maximum. 2018-02-07 16:12:14 -08:00
libutils Mark as recovery_available: true 2018-05-15 09:47:04 +09:00
libvndksupport bpfmt. 2018-02-16 17:58:14 -08:00
libziparchive Make ziparchive-tests run standalone. 2018-04-25 12:50:17 -07:00
llkd llkd: bootstat: propagate detailed livelock canonical boot reason 2018-04-18 14:02:16 -07:00
lmkd lmkd: Do not set soft_limit_in_bytes on high-end devices 2018-05-22 10:25:38 -07:00
logcat Add event log tag for hidden API access logging. 2018-05-08 10:26:36 +01:00
logd Remove more bogus <stdbool.h> #includes from C++. 2018-05-08 13:00:06 -07:00
logwrapper Remove misleading comment. 2018-04-23 21:50:43 -07:00
mkbootimg Add fastboot --os-version and --os-patch-level. 2018-04-09 18:37:39 +00:00
property_service Mark as recovery_available: true 2018-05-15 09:47:04 +09:00
qemu_pipe Add OWNERS. 2017-12-07 13:30:03 -08:00
reboot reboot: only pause indefinitely for non-shutdown operations 2017-09-29 16:29:52 +00:00
rootdir Merge "Always use versioned VNDK directory" 2018-05-22 04:04:07 +00:00
run-as run-as: Keep supplementary groups. 2017-09-29 15:34:23 -04:00
sdcard Remove FUSE logic; it's only a sdcardfs wrapper. 2018-01-12 15:41:55 -07:00
shell_and_utilities Update shell and utilities docs. 2018-05-03 11:02:07 -07:00
storaged Merge "storaged: lower capabilities in init" 2018-04-12 15:55:26 +00:00
toolbox Compile toolbox's newfs_msdos for the host 2018-05-02 13:14:51 -07:00
trusty bpfmt. 2018-02-16 17:58:14 -08:00
usbd bpfmt. 2018-02-16 17:58:14 -08:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
.clang-format-2 Only allow short functions in class definitions. 2017-03-28 12:31:37 -07:00
.clang-format-4 Only allow short functions in class definitions. 2017-03-28 12:31:37 -07:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
Android.bp Export android_filesystem_config.h as a filegroup 2017-01-17 18:20:28 -08:00
Android.mk Remove the simulator target from all makefiles. 2011-07-11 22:12:32 -07:00
CleanSpec.mk Add VNDK version for namespace configuration files 2017-12-13 10:31:04 +09:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
NOTICE Fix omission in NOTICE file. 2013-07-30 13:56:55 -07:00
OWNERS Add ek and lorenzo to OWNERS for system/core netlink code. 2018-03-05 19:18:02 +09:00
platform_tools_tool_version.mk Fix warning on the build servers 2017-05-25 12:35:40 -07:00
PREUPLOAD.cfg Add a PREUPLOAD.cfg file to run git-clang-format on every commit 2017-03-08 16:51:26 +08:00