3f181281abb2553180524890d1bb0bdeb9c55166 |
|
03-May-2017 |
Martijn Coenen <maco@google.com> |
Add support for min scheduling policy to node. The binder driver has always supported setting a min nice value for transactions. It looks like this was always set to an out-of-range value (0x7f); correct this to use a value of 0 by default (which corresponds to nice 0). Additionally, the new driver supports setting a minimum scheduler *policy* as well, by reserving 2 bits for the scheduler policy in the flat_binder_object structure. Add APIs to set this policy on a server object, and set them properly when passing the object into the driver. Bug: 37293077 Test: verified /d/binder output Change-Id: I1206320c37e89efd523e342b5d56179e403eac50
/system/libhwbinder/Binder.cpp
|
5c6fe25870c611f1b0c36f034414037f91201b6d |
|
18-Jan-2017 |
Martijn Coenen <maco@google.com> |
Reduce libhwbinder API surface (1/?). Removed in this round: - All Vector'ed read/write methods - Reading/writing dup native_handles - Blob/ashmem support - Special binder transactions (ping, dump, interface) - Various unused helpers. Obvious remaining items that require more work: - writeString16()/writeCString() and read variants - writeInterface() / enforceInterface() Test: hidl_test Change-Id: Ica2bbbdee469f12c797d9f3feff6046b2337de6a
/system/libhwbinder/Binder.cpp
|
a2ce3b82c4a30cc677c536a013a62d5405062bb9 |
|
12-Jan-2017 |
Yifan Hong <elsk@google.com> |
BpRefBase -> BpHwRefBase. Test: mma Test: croot && make Bug: 33554989 Change-Id: I75bacd2a6b959658615b06fcebad9d24b3666a58
/system/libhwbinder/Binder.cpp
|
1e118d2b86540f7a7d840ec1510337da49f1446c |
|
12-Jan-2017 |
Yifan Hong <elsk@google.com> |
BpBinder -> BpHwBinder. Test: mma Test: croot && make Bug: 33554989 Change-Id: I484c9e2e30f12ac3352aabecdf5b30fcf090a191
/system/libhwbinder/Binder.cpp
|
dde40f31347a51aa7249cb192f97276c30d984f5 |
|
12-Jan-2017 |
Yifan Hong <elsk@google.com> |
BBinder -> BHwBinder. Test: mma Test: croot && make Bug: 33554989 Change-Id: Ia1356012d0cc1aef56884bfbd1a6af2a2504ab23
/system/libhwbinder/Binder.cpp
|
f75a23d54cc9e5f7b6b976e65b6ec346178f306d |
|
01-Aug-2016 |
Martijn Coenen <maco@google.com> |
Move android::hidl to android::hardware. Also moved Status and PersistableBundle out of their respective 'binder' and 'os' namespaces. Bug: 30507513 Change-Id: I8822070049a9c1b1b89753aaeb148b05b2aa851d
/system/libhwbinder/Binder.cpp
|
79c2f4d38c83ac8fe4c9c77e98e04f310016e7a6 |
|
20-May-2016 |
Martijn Coenen <maco@google.com> |
Callback support for libhwbinder. One of the prime differences between HIDL and Binder is that HIDL allows the server implementation to do a synchronous callback into the client with response data. This callback allows the server to respond with data that is anywhere - on the stack, the heap or globals - without worrying about the lifetime of the data, since it can immediately clean up (if necessary) when the callback returns. So we go from a chain like this: IPCThreadState::executeCommand() // Execute BR_TRANSACTION BBinder::transact() ServerStub::onTransact() Server::some_method() // Do work, copy data, and return to ServerStub // serialize data, and return to BBinder // return to IPCThreadState IPCThreadState::sendReply() // done to a chain like this: IPCThreadState::executeCommand () // Execute BR_TRANSACTION BBinder::transact () ServerStub::onTransact() Server::some_method() // Do work, send reply ServerStub::TransactCallback(reply) // Serialize data (until we get scatter-gather) BBinder::TransactCallback(serialized_reply) IPCThreadState::sendReply(serialized_reply) // send reply over binder, return to BBinder // return to ServerStub // return to Server, server can clean up // return to ServerStub // return to BBinder // return to IPCThreadState // IPCThreadState cleanup // done To support this, the transact() and onTransact() methods must support a callback argument, which is added here. On the proxy side, this callback argument for transact() can be ignored for now; after all, once the client side gets a reply, the data is now in the reply Parcel, and the lifetime of that Parcel is controlled by the Proxy itself. So it can simply wait for transact() to return, at which point the reply Parcel is filled. In the existing Binder model, it would then deserialize the reply Parcel into arguments that the client had passed in, and then the Parcel will go out of scope and gets cleaned up. In HIDL, we deseralize, call the *client* callback, and then the Parcel goes out of scope and gets cleaned up. This will change when we get scatter-gather support, but this allows us to work with the callback-model before that. Change-Id: If59ee37f68376bc232f3ecbfbe789f7f4d522003
/system/libhwbinder/Binder.cpp
|
dcdc2fe124989c5c5a6d886699bde5ce6f86fa62 |
|
20-May-2016 |
Martijn Coenen <maco@google.com> |
Remove unused classes in hwbinder. * IMemory * IPermissionController * IResultReceiver * MemoryBase * MemoryDealer * MemoryHeapBase Change-Id: I269a28f430175b02894e6d7f5e57b905b23f1a6c
/system/libhwbinder/Binder.cpp
|
e01f4f2b38beb5799dece8742eef5d70d131dbd3 |
|
12-May-2016 |
Martijn Coenen <maco@google.com> |
Move hwbinder to the android::hidl namespace. This should prevent clashes if projects do want to link in both libbinder and libhwbinder. Also had to pull in Static.h from frameworks/native/include/private/binder, as that was not part of the history we pulled from frameworks/native. Change-Id: Ib7379e61229c3e68478f9c5530875292e1d51ded
/system/libhwbinder/Binder.cpp
|
4080edcfb5810a4a1817c03740f5f1bb19815ae1 |
|
04-May-2016 |
Martijn Coenen <maco@google.com> |
Make libhwbinder build. - Moved Android.mk to root - Changed module name to libhwbinder - Updated all references to include/binder to include/hwbinder - Removed services that we know will certainly not exist in hwbinder: * AppOps * BatteryStats * MediaResourceMonitor * ProcessInfoService * PermissionCache - Removed tests (we'll have new ones). Change-Id: Ie8cc7d3a36032ad42c02b46655f0e015033d232c
/system/libhwbinder/Binder.cpp
|
2df29d10aae53b2c532315ff35a8a77962ec6d9c |
|
15-Oct-2015 |
Dianne Hackborn <hackbod@google.com> |
Temporary hack to get rid of new virtuals. Seems like it breaks some prebuilt binaries. Change-Id: Ia5e35beb4538364b2ab3618fbf21b2e9c9ee2363
/system/libhwbinder/Binder.cpp
|
7ce4c3b483bf1ca7f537cfb06fbbe2ba76933a2b |
|
08-Oct-2015 |
Dianne Hackborn <hackbod@google.com> |
Add new "shell command" feature to Binder objects. IBinder has a new common interface for sending shell commands to it. This can be implemented by system services to provide a shell interface to the service, without needing to have separate shell java code. Also add a new "cmd" command line tool, which invokes the shell command method on a system service. This is much like dumpsys, but for shell commands. Change-Id: I95dc80c881a28cefb76957ad4d4fd9b3ed9630df
/system/libhwbinder/Binder.cpp
|
e20d6f4a895e4493df51134985766c958027c34c |
|
19-Aug-2015 |
Bailey Forrest <bcf@google.com> |
binder: Change from C11 <stdatomic.h> to C++11 <atomic>. Change-Id: Ib831a9ccfcc7089940d37883d860574359c270e2
/system/libhwbinder/Binder.cpp
|
d29ab953df865efe141fdaf65e850b498cf63037 |
|
20-Nov-2014 |
Dan Albert <danalbert@google.com> |
C++11 compatibility. * Explicit conversion for atomic_uintptr_t initialization. * Fix string literal concatenation to not be a UD literal. * Use __typeof__ instead of typeof (should become decltype once this actually moves to C++11). Bug: 18466763 Change-Id: I4eedddfb945a2a703ed27317cb6e2b3041b1ebfc
/system/libhwbinder/Binder.cpp
|
8f64ec796481c00f07deb24c0a6f39fdabcf0e11 |
|
11-Sep-2014 |
Hans Boehm <hboehm@google.com> |
Work around C11 const atomic restrictions. Cast away the const qualifier in BBinder::findObject. C11, unlike C++11, does not allow loads from const atomics. This is widely regarded as a bug (see WG14 DR 459). This is a hack to work around it until it's officially fixed in the spec. load_const_atomic was adapted from commit 1e8587a479fd8b1ce9b594298a93f517816e8f15 I don't think we want to dignify this by putting it into a header file. Bug:17067219 Change-Id: Icbfcbda2722e6f80d2bb065a0bb3ec7634bcacb2
/system/libhwbinder/Binder.cpp
|
4f2667f11dc6a1dd67b7a3ff141ecdae7bb1b30b |
|
19-Aug-2014 |
Hans Boehm <hboehm@google.com> |
Fix CAS argument type. Gcc apparently doesn't check; clang does. Bug:17067219 Change-Id: I184084a5063131dbc857c63f97e70e78a05e1a76
/system/libhwbinder/Binder.cpp
|
99c620ac79b2407ddaaf2acdc413cceac4a859f1 |
|
13-Aug-2014 |
Hans Boehm <hboehm@google.com> |
Revert "Revert "Revert "Revert "Remove incorrect android_atomic_...64 use."""" After fixing b/16874785. This reverts commit f010a05c7e9a23b6083294aff4a8183ab01f686e. Change-Id: I1645ca5d6f60595bf5d388913665ce4b8780b26d
/system/libhwbinder/Binder.cpp
|
0e1e368b8aa48be3179b1ff27fa6aeb5fb77883b |
|
09-Aug-2014 |
Hans Boehm <hboehm@google.com> |
Revert "Revert "Revert "Remove incorrect android_atomic_...64 use.""" This reverts commit 66629e0de532376fa3ef43175ad05eccd21114da. Change-Id: Ic298b345d0e500d18e4297b00e755ce3340f13fb
/system/libhwbinder/Binder.cpp
|
52be6ceb70c5d207ebbb4f66bd86a1cf3e97dff6 |
|
08-Aug-2014 |
Hans Boehm <hboehm@google.com> |
Revert "Revert "Remove incorrect android_atomic_...64 use."" This reverts commit 9dc5c269f74ac76f62515e3d9558e67c6e63067d. Adds a stdint.h include in case stdatomic.h stops including that. Change-Id: If3dd1db1f1132c0f2dc1efb0a44617d3f36d7cfb
/system/libhwbinder/Binder.cpp
|
7aadd8d5d50efb4626e4627ad5de019c3a192a8e |
|
07-Aug-2014 |
Hans Boehm <hboehm@google.com> |
Revert "Remove incorrect android_atomic_...64 use." This reverts commit 88b7541d682a6ad402eff15e58c9c792497096d7. Change-Id: Ie701c308451a3697bb167aff119318b932133f90
/system/libhwbinder/Binder.cpp
|
636e577167b621b844e840e6f3aa525977383c7c |
|
23-Jul-2014 |
Hans Boehm <hboehm@google.com> |
Remove incorrect android_atomic_...64 use. Change the mExtras field in Binder.h to be a stdatomic.h atomic value, and replace references to it with proper stdatomic.h calls. This removes one of a small number of remaining 64 bit android_atomic references. It also replaces the erroneously non-atomic read accesses to mExtras. It would be better if this used the C++11 <atomic> facility, but we don't quite have that yet. Bug: 16513433 Change-Id: Ibabb88d05025187ee1ce6c7f1aa670b133a547f8
/system/libhwbinder/Binder.cpp
|
f04879896beb41f2455017ace482283bc2ef321c |
|
06-Feb-2014 |
Colin Cross <ccross@android.com> |
binder: fix all warnings Fix warnings related to casting pointers to ints, using %d or %ld to print size_t/ssize_t, and unused parameters. Change-Id: I7a13ba83d402952989c1f795cd9e880a95b98d9e
/system/libhwbinder/Binder.cpp
|
4ca5bafb8da8e2316464be178f32a170b494300b |
|
05-Nov-2013 |
Serban Constantinescu <serban.constantinescu@arm.com> |
Binder: Make binder portable Changes include - Binder attempts to cast pointers to a int datatype which is not sufficient on a 64-bit platform. - This patch introduces new read/write functions into Parcel that allow pointers to be written using the uintptr_t datatype for compile-time data type size selection. - Change access specifier for the methods above. - Binder uses the 64bit android_atomic_release_cas64 (aka cmpxchg) Change-Id: I595280541e0ba1d19c94b2ca2127bf9d96efabf1 Signed-off-by: Matthew Leach <matthew.leach@arm.com> Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
/system/libhwbinder/Binder.cpp
|
86a50a691c3e60a47a4b69e8fb7db1c3ae83d205 |
|
09-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Add callback hack to find out when to reload system properties. Every IBinder object can accept a new transaction to tell it that it might want to reload system properties, and in the process anyone can register a callback to be executed when this happens. Use this to reload the trace property. This is very much ONLY for debugging. Change-Id: I55c67c46f8f3fa9073bef0dfaab4577ed1d47eb4
/system/libhwbinder/Binder.cpp
|
d8e1916f8b99dbe958d7cf285f0e87589531c1d8 |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
/system/libhwbinder/Binder.cpp
|
87957f7b91fbf83dbb417e5f0bab9ee54818fdd0 |
|
06-May-2010 |
Dan Egnor <egnor@google.com> |
Make static versions of libutils and libbinder. Fix some small static-initialization-order issues (and a static- initializers-missing issue) that result from doing so. The static libraries don't actually get used for anything real at the moment -- they're used for perf tests of bug 2660235. Bug: 2660235 Change-Id: Iee2f38f79cc93b395e8d0a5a144ed92461f5ada0
/system/libhwbinder/Binder.cpp
|
a6286c36406f6bb21b53d92dc165c603365b358b |
|
23-May-2009 |
Mathias Agopian <mathias@google.com> |
some work to try to reduce the code size of some native libraries - make sure that all binder Bn classes define a ctor and dtor in their respective library. This avoids duplication of the ctor/dtor in libraries where these objects are instantiated. This is also cleaner, should we want these ctor/dtor to do something one day. - same change as above for some Bp classes and various other non-binder classes - moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere. - improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere - IBinder::getInterfaceDescriptor() now returns a "const String16&" instead of String16, which saves calls to String16 and ~String16 - implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called. The cache makes BpBinder bigger, so we need to figure out if we need this method at all.
/system/libhwbinder/Binder.cpp
|
164757037f944dae1eb5f76176570b2e43a37b55 |
|
20-May-2009 |
Mathias Agopian <mathias@google.com> |
move libbinder's header files under includes/binder
/system/libhwbinder/Binder.cpp
|
7922fa29f3a18386b6eb4cb19e8c582d9f751345 |
|
19-May-2009 |
Mathias Agopian <mathias@google.com> |
checkpoint: split libutils into libutils + libbinder
/system/libhwbinder/Binder.cpp
|