Lines Matching +full:sub +full:- +full:node
3 * Module Name: utdelete - object deletion and reference count utilities
11 * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp.
28 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
104 * re-exports any such software from a foreign destination, Licensee shall
105 * ensure that the distribution and export/re-export of the software is in
108 * any of its subsidiaries will export/re-export any technical data, process,
130 * 3. Neither the names of the above-listed copyright holders nor the names
178 * PARAMETERS: Object - Object to be deleted
183 * updated (All reference counts, including sub-objects!)
211 switch (Object->Common.Type) in AcpiUtDeleteInternalObj()
216 Object, Object->String.Pointer)); in AcpiUtDeleteInternalObj()
220 if (!(Object->Common.Flags & AOPOBJ_STATIC_POINTER)) in AcpiUtDeleteInternalObj()
224 ObjPointer = Object->String.Pointer; in AcpiUtDeleteInternalObj()
231 Object, Object->Buffer.Pointer)); in AcpiUtDeleteInternalObj()
235 if (!(Object->Common.Flags & AOPOBJ_STATIC_POINTER)) in AcpiUtDeleteInternalObj()
239 ObjPointer = Object->Buffer.Pointer; in AcpiUtDeleteInternalObj()
246 Object->Package.Count)); in AcpiUtDeleteInternalObj()
255 ObjPointer = Object->Package.Elements; in AcpiUtDeleteInternalObj()
264 if (Object->Device.GpeBlock) in AcpiUtDeleteInternalObj()
266 (void) AcpiEvDeleteGpeBlock (Object->Device.GpeBlock); in AcpiUtDeleteInternalObj()
269 /*lint -fallthrough */ in AcpiUtDeleteInternalObj()
276 HandlerDesc = Object->CommonNotify.Handler; in AcpiUtDeleteInternalObj()
279 NextDesc = HandlerDesc->AddressSpace.Next; in AcpiUtDeleteInternalObj()
289 Object, Object->Mutex.OsMutex)); in AcpiUtDeleteInternalObj()
298 AcpiOsDeleteMutex (Object->Mutex.OsMutex); in AcpiUtDeleteInternalObj()
304 AcpiOsDeleteMutex (Object->Mutex.OsMutex); in AcpiUtDeleteInternalObj()
312 Object, Object->Event.OsSemaphore)); in AcpiUtDeleteInternalObj()
314 (void) AcpiOsDeleteSemaphore (Object->Event.OsSemaphore); in AcpiUtDeleteInternalObj()
315 Object->Event.OsSemaphore = NULL; in AcpiUtDeleteInternalObj()
325 if (Object->Method.Mutex) in AcpiUtDeleteInternalObj()
327 AcpiOsDeleteMutex (Object->Method.Mutex->Mutex.OsMutex); in AcpiUtDeleteInternalObj()
328 AcpiUtDeleteObjectDesc (Object->Method.Mutex); in AcpiUtDeleteInternalObj()
329 Object->Method.Mutex = NULL; in AcpiUtDeleteInternalObj()
332 if (Object->Method.Node) in AcpiUtDeleteInternalObj()
334 Object->Method.Node = NULL; in AcpiUtDeleteInternalObj()
347 if (!(Object->Region.Node->Flags & ANOBJ_TEMPORARY)) in AcpiUtDeleteInternalObj()
349 AcpiUtRemoveAddressRange (Object->Region.SpaceId, in AcpiUtDeleteInternalObj()
350 Object->Region.Node); in AcpiUtDeleteInternalObj()
358 * default handlers -- and therefore, we created the context object in AcpiUtDeleteInternalObj()
361 HandlerDesc = Object->Region.Handler; in AcpiUtDeleteInternalObj()
364 NextDesc = HandlerDesc->AddressSpace.RegionList; in AcpiUtDeleteInternalObj()
366 LastObjPtr = &HandlerDesc->AddressSpace.RegionList; in AcpiUtDeleteInternalObj()
374 *LastObjPtr = NextDesc->Region.Next; in AcpiUtDeleteInternalObj()
380 LastObjPtr = &NextDesc->Region.Next; in AcpiUtDeleteInternalObj()
381 NextDesc = NextDesc->Region.Next; in AcpiUtDeleteInternalObj()
394 if (HandlerDesc->AddressSpace.HandlerFlags & in AcpiUtDeleteInternalObj()
399 if (HandlerDesc->AddressSpace.Setup) in AcpiUtDeleteInternalObj()
401 (void) HandlerDesc->AddressSpace.Setup (Object, in AcpiUtDeleteInternalObj()
403 HandlerDesc->AddressSpace.Context, in AcpiUtDeleteInternalObj()
404 &SecondDesc->Extra.RegionContext); in AcpiUtDeleteInternalObj()
469 * PARAMETERS: ObjList - Pointer to the list to be deleted
488 /* Walk the null-terminated internal list */ in AcpiUtDeleteInternalObjectList()
506 * PARAMETERS: Object - Object whose ref count is to be updated
507 * Action - What to do (REF_INCREMENT or REF_DECREMENT)
538 OriginalCount = Object->Common.ReferenceCount; in AcpiUtUpdateRefCount()
547 Object->Common.ReferenceCount = NewCount; in AcpiUtUpdateRefCount()
561 Object, Object->Common.Type, in AcpiUtUpdateRefCount()
567 /* The current reference count must be non-zero */ in AcpiUtUpdateRefCount()
571 NewCount = OriginalCount - 1; in AcpiUtUpdateRefCount()
572 Object->Common.ReferenceCount = NewCount; in AcpiUtUpdateRefCount()
586 ACPI_GET_FUNCTION_NAME, Object, Object->Common.Type, NewCount)); in AcpiUtUpdateRefCount()
612 NewCount, Object, Object->Common.Type)); in AcpiUtUpdateRefCount()
621 * PARAMETERS: Object - Increment ref count for this object
622 * and all sub-objects
623 * Action - Either REF_INCREMENT or REF_DECREMENT
630 * 1) An object is attached to a Node (namespace object)
634 * 1) An object is detached from an Node
666 * All sub-objects must have their reference count incremented in AcpiUtUpdateObjectReference()
669 switch (Object->Common.Type) in AcpiUtUpdateObjectReference()
681 PrevObject = Object->CommonNotify.NotifyList[i]; in AcpiUtUpdateObjectReference()
684 NextObject = PrevObject->Notify.Next[i]; in AcpiUtUpdateObjectReference()
693 * We must update all the sub-objects of the package, in AcpiUtUpdateObjectReference()
694 * each of whom may have their own sub-objects. in AcpiUtUpdateObjectReference()
696 for (i = 0; i < Object->Package.Count; i++) in AcpiUtUpdateObjectReference()
702 NextObject = Object->Package.Elements[i]; in AcpiUtUpdateObjectReference()
708 switch (NextObject->Common.Type) in AcpiUtUpdateObjectReference()
714 * For these very simple sub-objects, we can just in AcpiUtUpdateObjectReference()
723 * For complex sub-objects, push them onto the stack in AcpiUtUpdateObjectReference()
740 NextObject = Object->BufferField.BufferObj; in AcpiUtUpdateObjectReference()
745 NextObject = Object->Field.RegionObj; in AcpiUtUpdateObjectReference()
750 NextObject = Object->BankField.BankObj; in AcpiUtUpdateObjectReference()
752 Object->BankField.RegionObj, Action, &StateList); in AcpiUtUpdateObjectReference()
761 NextObject = Object->IndexField.IndexObj; in AcpiUtUpdateObjectReference()
763 Object->IndexField.DataObj, Action, &StateList); in AcpiUtUpdateObjectReference()
776 if ((Object->Reference.Class == ACPI_REFCLASS_INDEX) || in AcpiUtUpdateObjectReference()
777 (Object->Reference.Class== ACPI_REFCLASS_NAME)) in AcpiUtUpdateObjectReference()
779 NextObject = Object->Reference.Object; in AcpiUtUpdateObjectReference()
791 * happen after we update the sub-objects in case this causes the in AcpiUtUpdateObjectReference()
807 Object = State->Update.Object; in AcpiUtUpdateObjectReference()
836 * PARAMETERS: Object - Object whose reference count is to be
862 Object, Object->Common.ReferenceCount)); in AcpiUtAddReference()
875 * PARAMETERS: Object - Object whose ref count will be decremented
911 ACPI_GET_FUNCTION_NAME, Object, Object->Common.ReferenceCount)); in AcpiUtRemoveReference()