android: binder: support for scatter-gather.
Previously all data passed over binder needed to be serialized, with the exception of Binder objects and file descriptors. This patchs adds support for scatter-gathering raw memory buffers into a binder transaction, avoiding the need to first serialize them into a Parcel. To remain backwards compatibile with existing binder clients, it introduces two new command ioctls for this purpose - BC_TRANSACTION_SG and BC_REPLY_SG. These commands may only be used with the new binder_transaction_data_sg structure, which adds a field for the total size of the buffers we are scatter-gathering. Because memory buffers may contain pointers to other buffers, we allow callers to specify a parent buffer and an offset into it, to indicate this is a location pointing to the buffer that we are fixing up. The kernel will then take care of fixing up the pointer to that buffer as well. Change-Id: Ia9bb2c588d932b6627a04baf4a62a09ae6aca087 Signed-off-by:Martijn Coenen <maco@google.com> Git-commit: 34b8f977 Git-repo: https://git.linaro.org/kernel/linux-linaro-stable [tsoni@codeaurora.org: Fixed 32 bit compilation] Signed-off-by:
Neeraj Upadhyay <neeraju@codeaurora.org> Signed-off-by:
Trilok Soni <tsoni@codeaurora.org>
Loading
Please register or sign in to comment