This patch introduces a new binder_fd_array object,
that allows us to support one or more file descriptors
embedded in a buffer that is scatter-gathered.
Change-Id: I273d7e00807eda4defc5c94c4bd86e4812e2c7a8
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: 5b3e17679b
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
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: 34b8f97791
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>
flat_binder_object is used for both handling
binder objects and file descriptors, even though
the two are mostly independent. Since we'll
have more fixup objects in binder in the future,
instead of extending flat_binder_object again,
split out file descriptors to their own object
while retaining backwards compatibility to
existing user-space clients. All binder objects
just share a header.
Change-Id: Ife64444979fba493c1865d2e4f4213ec26d03720
Signed-off-by: Martijn Coenen <maco@google.com>
Git-commit: d8e0aca03a
Git-repo: https://git.linaro.org/kernel/linux-linaro-stable
[neeraju@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
The Android binder code has been "stable" for many years now. No matter
what comes in the future, we are going to have to support this API, so
might as well move it to the "real" part of the kernel as there's no
real work that needs to be done to the existing code.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>