ReactOS 0.4.17-dev-1190-g4c812f4
shareable.h File Reference
#include <uacpi/types.h>
#include <uacpi/platform/atomic.h>
Include dependency graph for shareable.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uacpi_shareable
 

Macros

#define UACPI_SHAREABLE_BUGGED_REFCOUNT   0xFFFFFFFF
 

Functions

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

Macro Definition Documentation

◆ UACPI_SHAREABLE_BUGGED_REFCOUNT

#define UACPI_SHAREABLE_BUGGED_REFCOUNT   0xFFFFFFFF

Definition at line 8 of file shareable.h.

Function Documentation

◆ uacpi_bugged_shareable()

static uacpi_bool uacpi_bugged_shareable ( uacpi_handle  handle)
inlinestatic

Definition at line 29 of file shareable.h.

30{
31 struct uacpi_shareable *shareable = handle;
32
35
36 return uacpi_atomic_load32(&shareable->reference_count) ==
38}
#define uacpi_atomic_load32(ptr)
Definition: atomic.h:322
#define uacpi_unlikely(expr)
Definition: compiler.h:88
static void uacpi_make_shareable_bugged(uacpi_handle handle)
Definition: shareable.h:20
#define UACPI_SHAREABLE_BUGGED_REFCOUNT
Definition: shareable.h:8
uacpi_u32 reference_count
Definition: shareable.h:11

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()

static void uacpi_make_shareable_bugged ( uacpi_handle  handle)
inlinestatic

Definition at line 20 of file shareable.h.

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

Referenced by make_chain_bugged(), and uacpi_bugged_shareable().

◆ uacpi_shareable_init()

◆ uacpi_shareable_ref()

◆ uacpi_shareable_refcount()

static uacpi_u32 uacpi_shareable_refcount ( uacpi_handle  handle)
inlinestatic

Definition at line 74 of file shareable.h.

75{
76 struct uacpi_shareable *shareable = handle;
77 return uacpi_atomic_load32(&shareable->reference_count);
78}

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

◆ uacpi_shareable_unref()

static uacpi_u32 uacpi_shareable_unref ( uacpi_handle  handle)
inlinestatic

Definition at line 50 of file shareable.h.

51{
52 struct uacpi_shareable *shareable = handle;
53
56
57 return uacpi_atomic_dec32(&shareable->reference_count) + 1;
58}
#define uacpi_atomic_dec32(ptr)
Definition: atomic.h:335

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()

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