Citron/src/core/hle
Zephyron a5d62fa4ec nvnflinger: Implement reference counting for binder objects
Implements proper reference counting for binder objects based on the official
documentation. This adds both weak and strong reference counting support to
the IBinder interface and its implementations (BufferQueueProducer and
BufferQueueConsumer).

The implementation follows the documented behavior where:
- type 0 affects weak references
- type 1 affects strong references
- During initialization: {addval=1, type=0} followed by {addval=1, type=1}
- For onFirstRef: {addval=1, type=1}
- For onLastStrongRef: {addval=-1, type=1}

Reference counters are implemented using std::atomic to ensure thread safety.

REFS: switchbrew.org/wiki/Nvnflinger_services#AdjustRefcount
2025-01-26 14:21:36 +10:00
..
kernel Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
service nvnflinger: Implement reference counting for binder objects 2025-01-26 14:21:36 +10:00
api_version.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
ipc.h Revert incorrect copyright attribution for non-contributed files 2025-01-14 15:33:24 +10:00
result.h Revert "core/hle: Reorganize ErrorModule enum numerically" 2025-01-25 18:24:30 +10:00