- Mar 31, 2021
-
-
Slava Monich authored
-
Slava Monich authored
Drop use of g_main_context_invoke_full
-
Slava Monich authored
Replaced it with gbinder_idle_callback_invoke_later(), which should work nicely with non-GLib event loops.
-
Slava Monich authored
-
Slava Monich authored
Non-cancellable callback mechanism, similar to g_main_context_invoke_full() but not requiring GMainContext and GLib event loop.
-
- Mar 02, 2021
-
-
Slava Monich authored
-
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
-