IMG_VOID ServerSyncUnref(SERVER_SYNC_PRIMITIVE *psSync) { IMG_UINT32 ui32RefCount; OSLockAcquire(psSync->hLock); ui32RefCount = --psSync->ui32RefCount; OSLockRelease(psSync->hLock); if (ui32RefCount == 0) { SYNC_REFCOUNT_PRINT("%s: Server sync %p, refcount = %d", __FUNCTION__, psSync, ui32RefCount); /* Remove the sync from the global list */ OSLockAcquire(g_hListLock); dllist_remove_node(&psSync->sNode); OSLockRelease(g_hListLock); OSLockDestroy(psSync->hLock); SyncPrimFree(psSync->psSync); OSFreeMem(psSync); } else { SYNC_REFCOUNT_PRINT("%s: Server sync %p, refcount = %d", __FUNCTION__, psSync, ui32RefCount); } }
static IMG_VOID _SyncPrimitiveBlockUnref(SYNC_PRIMITIVE_BLOCK *psSyncBlk) { IMG_UINT32 ui32RefCount; OSLockAcquire(psSyncBlk->hLock); ui32RefCount = --psSyncBlk->ui32RefCount; OSLockRelease(psSyncBlk->hLock); if (ui32RefCount == 0) { PVRSRV_DEVICE_NODE *psDevNode = psSyncBlk->psDevNode; SYNC_REFCOUNT_PRINT("%s: Sync block %p, refcount = %d (remove)", __FUNCTION__, psSyncBlk, ui32RefCount); _SyncConnectionRemoveBlock(psSyncBlk); OSLockDestroy(psSyncBlk->hLock); DevmemUnexport(psSyncBlk->psMemDesc, &psSyncBlk->sExportCookie); DevmemReleaseCpuVirtAddr(psSyncBlk->psMemDesc); psDevNode->pfnFreeUFOBlock(psDevNode, psSyncBlk->psMemDesc); OSFreeMem(psSyncBlk); } else { SYNC_REFCOUNT_PRINT("%s: Sync block %p, refcount = %d", __FUNCTION__, psSyncBlk, ui32RefCount); } }
static IMG_VOID _ServerSyncUnref(SERVER_SYNC_PRIMITIVE *psSync) { if (--psSync->ui32RefCount == 0) { SYNC_REFCOUNT_PRINT("%s: Server sync %p, refcount = %d", __FUNCTION__, psSync, psSync->ui32RefCount); SyncPrimFree(psSync->psSync); OSFreeMem(psSync); } else { SYNC_REFCOUNT_PRINT("%s: Server sync %p, refcount = %d", __FUNCTION__, psSync, psSync->ui32RefCount); } }
static IMG_VOID _ServerSyncRef(SERVER_SYNC_PRIMITIVE *psSync) { psSync->ui32RefCount++; SYNC_REFCOUNT_PRINT("%s: Server sync %p, refcount = %d", __FUNCTION__, psSync, psSync->ui32RefCount); }
static IMG_VOID _SyncPrimitiveBlockRef(SYNC_PRIMITIVE_BLOCK *psSyncBlk) { psSyncBlk->ui32RefCount++; SYNC_REFCOUNT_PRINT("%s: Sync block %p, refcount = %d", __FUNCTION__, psSyncBlk, psSyncBlk->ui32RefCount); }
IMG_VOID ServerSyncRef(SERVER_SYNC_PRIMITIVE *psSync) { IMG_UINT32 ui32RefCount; OSLockAcquire(psSync->hLock); ui32RefCount = ++psSync->ui32RefCount; OSLockRelease(psSync->hLock); SYNC_REFCOUNT_PRINT("%s: Server sync %p, refcount = %d", __FUNCTION__, psSync, ui32RefCount); }
static IMG_VOID _SyncPrimitiveBlockRef(SYNC_PRIMITIVE_BLOCK *psSyncBlk) { IMG_UINT32 ui32RefCount; OSLockAcquire(psSyncBlk->hLock); ui32RefCount = ++psSyncBlk->ui32RefCount; OSLockRelease(psSyncBlk->hLock); SYNC_REFCOUNT_PRINT("%s: Sync block %p, refcount = %d", __FUNCTION__, psSyncBlk, ui32RefCount); }
static IMG_VOID _SyncConnectionRef(SYNC_CONNECTION_DATA *psSyncConnectionData) { IMG_UINT32 ui32RefCount; OSLockAcquire(psSyncConnectionData->hLock); ui32RefCount = ++psSyncConnectionData->ui32RefCount; OSLockRelease(psSyncConnectionData->hLock); SYNC_REFCOUNT_PRINT("%s: Sync connection %p, refcount = %d", __FUNCTION__, psSyncConnectionData, ui32RefCount); }
static IMG_VOID _SyncConnectionUnref(SYNC_CONNECTION_DATA *psSyncConnectionData) { IMG_UINT32 ui32RefCount; OSLockAcquire(psSyncConnectionData->hLock); ui32RefCount = --psSyncConnectionData->ui32RefCount; OSLockRelease(psSyncConnectionData->hLock); if (ui32RefCount == 0) { SYNC_REFCOUNT_PRINT("%s: Sync connection %p, refcount = %d", __FUNCTION__, psSyncConnectionData, ui32RefCount); PVR_ASSERT(dllist_is_empty(&psSyncConnectionData->sListHead)); OSLockDestroy(psSyncConnectionData->hLock); OSFreeMem(psSyncConnectionData); } else { SYNC_REFCOUNT_PRINT("%s: Sync connection %p, refcount = %d", __FUNCTION__, psSyncConnectionData, ui32RefCount); } }