static INLINE IMG_BOOL NoChildren(HANDLE_DATA *psHandleData) { PVR_ASSERT(psHandleData->sChildren.hParent == psHandleData->hHandle); return HandleListIsEmpty(psHandleData->hHandle, &psHandleData->sChildren); }
static INLINE IMG_BOOL NoChildren(PVRSRV_HANDLE_BASE *psBase, struct sHandle *psHandle) { PVR_ASSERT(psHandle->sChildren.hParent == HANDLE_PTR_TO_HANDLE(psBase, psHandle)); return HandleListIsEmpty(HANDLE_PTR_TO_INDEX(psBase, psHandle), &psHandle->sChildren); }
static inline void HandleListRemove(struct PVRSRV_HANDLE_BASE *psBase, u32 ui32EntryIndex, struct sHandleList *psEntry, size_t uiEntryOffset, size_t uiParentOffset) { if (!HandleListIsEmpty(ui32EntryIndex, psEntry)) { struct sHandleList *psPrev = LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, psEntry->ui32Prev, HANDLE_TO_INDEX(psBase, psEntry-> hParent), uiParentOffset, uiEntryOffset); struct sHandleList *psNext = LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, psEntry->ui32Next, HANDLE_TO_INDEX(psBase, psEntry-> hParent), uiParentOffset, uiEntryOffset); PVR_ASSERT(psEntry->hParent != NULL); psPrev->ui32Next = psEntry->ui32Next; psNext->ui32Prev = psEntry->ui32Prev; HandleListInit(ui32EntryIndex, psEntry, NULL); } }
static inline IMG_BOOL NoParent(struct PVRSRV_HANDLE_BASE *psBase, struct sHandle *psHandle) { if (HandleListIsEmpty (HANDLE_PTR_TO_INDEX(psBase, psHandle), &psHandle->sSiblings)) { PVR_ASSERT(psHandle->sSiblings.hParent == NULL); return IMG_TRUE; } else { PVR_ASSERT(psHandle->sSiblings.hParent != NULL); } return IMG_FALSE; }
static INLINE PVRSRV_ERROR HandleListRemove(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE hEntry, HANDLE_LIST *psEntry, IMG_SIZE_T uiEntryOffset, IMG_SIZE_T uiParentOffset) { if (psBase == IMG_NULL || psEntry == IMG_NULL) { return PVRSRV_ERROR_INVALID_PARAMS; } if (!HandleListIsEmpty(hEntry, psEntry)) { HANDLE_LIST *psPrev; HANDLE_LIST *psNext; psPrev = GetHandleListFromHandleAndOffset(psBase, psEntry->hPrev, psEntry->hParent, uiParentOffset, uiEntryOffset); if (psPrev == IMG_NULL) { return PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE; } psNext = GetHandleListFromHandleAndOffset(psBase, psEntry->hNext, psEntry->hParent, uiParentOffset, uiEntryOffset); if (psNext == IMG_NULL) { return PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE; } /* * The list head is on the list, and we don't want to * remove it. */ PVR_ASSERT(psEntry->hParent != IMG_NULL); psPrev->hNext = psEntry->hNext; psNext->hPrev = psEntry->hPrev; HandleListInit(hEntry, psEntry, IMG_NULL); } return PVRSRV_OK; }
static INLINE IMG_BOOL NoParent(HANDLE_DATA *psHandleData) { if (HandleListIsEmpty(psHandleData->hHandle, &psHandleData->sSiblings)) { PVR_ASSERT(psHandleData->sSiblings.hParent == IMG_NULL); return IMG_TRUE; } else { PVR_ASSERT(psHandleData->sSiblings.hParent != IMG_NULL); } return IMG_FALSE; }
static INLINE IMG_VOID HandleListRemove(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32EntryIndex, struct sHandleList *psEntry, IMG_SIZE_T uiEntryOffset, IMG_SIZE_T uiParentOffset) { if (!HandleListIsEmpty(ui32EntryIndex, psEntry)) { struct sHandleList *psPrev = LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, psEntry->ui32Prev, HANDLE_TO_INDEX(psBase, psEntry->hParent), uiParentOffset, uiEntryOffset); struct sHandleList *psNext = LIST_PTR_FROM_INDEX_AND_OFFSET(psBase, psEntry->ui32Next, HANDLE_TO_INDEX(psBase, psEntry->hParent), uiParentOffset, uiEntryOffset); PVR_ASSERT(psEntry->hParent != IMG_NULL); psPrev->ui32Next = psEntry->ui32Next; psNext->ui32Prev = psEntry->ui32Prev; HandleListInit(ui32EntryIndex, psEntry, IMG_NULL); } }