ReactOS 0.4.16-dev-1946-g52006dd
shareable.c File Reference
Include dependency graph for shareable.c:

Go to the source code of this file.

Macros

#define BUGGED_REFCOUNT   0xFFFFFFFF
 

Functions

void uacpi_shareable_init (uacpi_handle handle)
 
uacpi_bool uacpi_bugged_shareable (uacpi_handle handle)
 
void uacpi_make_shareable_bugged (uacpi_handle handle)
 
uacpi_u32 uacpi_shareable_ref (uacpi_handle handle)
 
uacpi_u32 uacpi_shareable_unref (uacpi_handle handle)
 
void uacpi_shareable_unref_and_delete_if_last (uacpi_handle handle, void(*do_free)(uacpi_handle))
 
uacpi_u32 uacpi_shareable_refcount (uacpi_handle handle)
 

Macro Definition Documentation

◆ BUGGED_REFCOUNT

#define BUGGED_REFCOUNT   0xFFFFFFFF

Definition at line 7 of file shareable.c.

Function Documentation

◆ uacpi_bugged_shareable()

uacpi_bool uacpi_bugged_shareable ( uacpi_handle  handle)

Definition at line 15 of file shareable.c.

16{
17 struct uacpi_shareable *shareable = handle;
18
19 if (uacpi_unlikely(shareable->reference_count == 0))
21
23}
#define uacpi_atomic_load32(ptr)
Definition: atomic.h:104
#define uacpi_unlikely(expr)
Definition: compiler.h:58
void uacpi_make_shareable_bugged(uacpi_handle handle)
Definition: shareable.c:25
#define BUGGED_REFCOUNT
Definition: shareable.c:7
uacpi_u32 reference_count
Definition: shareable.h:6

Referenced by uacpi_object_attach_child(), uacpi_object_detach_child(), uacpi_object_unref(), uacpi_shareable_ref(), uacpi_shareable_unref(), and uacpi_shareable_unref_and_delete_if_last().

◆ uacpi_make_shareable_bugged()

void uacpi_make_shareable_bugged ( uacpi_handle  handle)

Definition at line 25 of file shareable.c.

26{
27 struct uacpi_shareable *shareable = handle;
29}
#define uacpi_atomic_store32(ptr, value)
Definition: atomic.h:109

Referenced by make_chain_bugged(), and uacpi_bugged_shareable().

◆ uacpi_shareable_init()

◆ uacpi_shareable_ref()

◆ uacpi_shareable_refcount()

uacpi_u32 uacpi_shareable_refcount ( uacpi_handle  handle)

Definition at line 65 of file shareable.c.

66{
67 struct uacpi_shareable *shareable = handle;
68 return uacpi_atomic_load32(&shareable->reference_count);
69}

Referenced by free_chain(), uacpi_object_attach_child(), uacpi_object_detach_child(), and uacpi_object_unref().

◆ uacpi_shareable_unref()

uacpi_u32 uacpi_shareable_unref ( uacpi_handle  handle)

Definition at line 41 of file shareable.c.

42{
43 struct uacpi_shareable *shareable = handle;
44
46 return BUGGED_REFCOUNT;
47
48 return uacpi_atomic_dec32(&shareable->reference_count) + 1;
49}
#define uacpi_atomic_dec32(ptr)
Definition: atomic.h:117

Referenced by free_plain_no_recurse(), uacpi_object_unref(), uacpi_shareable_unref_and_delete_if_last(), unref_chain_no_recurse(), and unref_plain_no_recurse().

◆ uacpi_shareable_unref_and_delete_if_last()

void uacpi_shareable_unref_and_delete_if_last ( uacpi_handle  handle,
void(*)(uacpi_handle do_free 
)