- Mar 02, 2021
-
-
Slava Monich authored
Support for passing object references over the bridge
-
Slava Monich authored
Sometimes servicemanager fails to add a name right after startup.
-
Slava Monich authored
Allows to use different source and destination names.
-
Slava Monich authored
GBinderProxyObject automatically creates proxies for the remote objects found in the transaction payload.
-
- Feb 22, 2021
-
-
Slava Monich authored
In case if looper threads get stuck in read, libgbinder may block indefinitely in exit. To prevent that, join looper thread with a timeout and if it expires, close the binder file descriptors to unblock all blocking reads.
-
- Feb 21, 2021
-
-
Slava Monich authored
According to comments in the Android sources, unrefs must be processed only after clearing the incoming command queue.
-
Slava Monich authored
The driver sends us back one of three transaction completion messages BR_TRANSACTION_COMPLETE, BR_DEAD_REPLY or BR_FAILED_REPLY after the target has finished processing BC_REPLY. It's especially important when the reply carries an object reference. That gives the other side a chance to reference that object before we drop our reference to it (which may be the last one, which would cause the object to be freed and its handle invalidated).
-
Slava Monich authored
-
Slava Monich authored
-
Slava Monich authored
This transaction flag doesn't make sense for replies and is probably just ignored but let's not confuse kernel.
-
Slava Monich authored
-
Slava Monich authored
-
Slava Monich authored
Otherwise all kinds of race conditions are possible, e.g. with GBinderServiceManager and its gbinder_servicemanager_died() callback.
-
Slava Monich authored
That's done by calling test_binder_exit_wait(). Not doing so occasionally breaks the next unit test.
-
Slava Monich authored
It's always zero, just leave it as is.
-
Slava Monich authored
-
Slava Monich authored
Only affects debug build.
-
- Feb 09, 2021
-
-
Slava Monich authored
-
- Jan 29, 2021
-
-
Slava Monich authored
-
Slava Monich authored
-
Slava Monich authored
Add GBinderBridge
-
Slava Monich authored
-
- Jan 27, 2021
-
-
Slava Monich authored
It acts as a proxy between two binder devices. This version works for binder transactions which only pass serialized data back and forth. Passing remote object references is not yet supported.
-
Slava Monich authored
This more or less ensures that responses get handled by the right thread and allows to simulate more sophisticated test cases.
-
- Jan 26, 2021
-
-
Slava Monich authored
If there's no data, buffer may be NULL.
-
- Jan 21, 2021
-
-
Slava Monich authored
-
Slava Monich authored
Fix a threading issue + assorted changes
-
Slava Monich authored
-
- Jan 20, 2021
-
-
Slava Monich authored
Make sure that transaction handlers don't get invoked on a worker thread. It was possible in cases if an incoming transaction arrives while we are waiting for response from an asynchronous call to servicemanager (which is actually a synchronous call made on a worker thread). Invoking callbacks on a worker thread would completely break libgbinder's synchronization model. It was a pretty unlikely scenario, though.
-
- Jan 19, 2021
-
-
Slava Monich authored
-
- Jan 12, 2021
-
-
Slava Monich authored
GBinderFds - native_handle_t GBinderHidlHandle - struct hidl_handle GBinderHidlMemory - struct hidl_memory
-
Slava Monich authored
Except for one-way transactions where it would meaningless.
-
- Dec 23, 2020
-
-
Slava Monich authored
-
Slava Monich authored
-
Slava Monich authored
For better compile time diagnostics.
-
Slava Monich authored
Also made ServiceManagerAidl a GBinderLocalObject-derived class to prepare for possibly making it (deriving classes from GBinderLocalObject) a public functionality.
-
Slava Monich authored
-
Slava Monich authored
It's something I've always had in mind. It's still an internal API but it's quite likely that at some point it will be made public. For now it's only going to be used by unit tests.
-
Slava Monich authored
-
Slava Monich authored
Fix random unit text failures
-