binder_proc_dec_tmpref(9)
π binder_proc_dec_tmpref(9) β like, the kernel API manual, bestie π
okay so welcome to the binder_proc_dec_tmpref page from the Kernel API Manual β yes that's the manual name, we're being fancy today β¨ grab a strawberry π and let's get into it.
β¨ NAME β¨
binder_proc_dec_tmpref β literally just decrements proc->tmp_ref. that's the whole job. no cap. π
π¦ SYNOPSIS π¦
void binder_proc_dec_tmpref (struct binder_proc *proc );
πΈ ARGUMENTS πΈ
procβ the proc you wanna decrement, bestie. that's the one. π«Ά
π DESCRIPTION π
so here's the vibe check π β a binder_proc needs to be kept alive while it's being used to create or handle a transaction. like, you can't just let it dip mid-transaction, that would be giving chaos energy π
proc->tmp_ref gets incremented when:
- a new transaction is being created, or
- the
binder_procis currently in-use by threads that are being released
and then when you're done with the binder_proc, you call this function to decrement the counter and free the proc if appropriate π₯
"if appropriate" means: proc has been released, all threads have been released, and it's not currently in-use to process a transaction. all three, bestie. no shortcuts. β
π SEE ALSO π
Kernel file ./drivers/android/binder.c β and honestly the whole extended friend group π§:
binder_proc_lock(9)binder_proc_unlock(9)binder_inner_proc_lock(9)binder_inner_proc_unlock(9)binder_node_lock(9)binder_node_unlock(9)binder_node_inner_lock(9)binder_node_inner_unlock(9)binder_worklist_empty(9)binder_enqueue_work_ilocked(9)binder_enqueue_deferred_thread_work_ilocked(9)binder_enqueue_thread_work_ilocked(9)binder_enqueue_thread_work(9)binder_dequeue_work(9)binder_select_thread_ilocked(9)binder_wakeup_thread_ilocked(9)binder_inc_node_tmpref(9)binder_dec_node_tmpref(9)binder_get_ref_for_node_olocked(9)binder_inc_ref_olocked(9)binder_dec_ref_olocked(9)binder_get_node_from_ref(9)binder_free_ref(9)binder_update_ref_for_handle(9)binder_dec_ref_for_handle(9)binder_inc_ref_for_node(9)binder_thread_dec_tmpref(9)binder_get_txn_from(9)binder_get_txn_from_and_acq_inner(9)binder_free_txn_fixups(9)binder_cleanup_transaction(9)binder_get_object(9)binder_validate_ptr(9)binder_validate_fixup(9)struct binder_task_work_cb(9)binder_do_fd_close(9)binder_deferred_fd_close(9)struct binder_ptr_fixup(9)struct binder_sg_copy(9)binder_do_deferred_txn_copies(9)binder_cleanup_deferred_txn_lists(9)binder_defer_copy(9)binder_add_fixup(9)binder_can_update_transaction(9)binder_find_outdated_transaction_ilocked(9)binder_proc_transaction(9)binder_get_node_refs_for_txn(9)binder_netlink_report(9)binder_free_buf(9)binder_apply_fd_fixups(9)print_next_binder_node_ilocked(9)
like, the whole binder.c cinematic universe fr fr π
and that's the page, diva π this cutie lives under ./drivers/android, dated October 2026, and it's filed under binder_proc_dec_tmpref(9) in the Kernel API Manual β mwah, slay, see you in the next transaction ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms