summaryrefslogtreecommitdiff
path: root/ipc/kdbus/node.h
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-08 01:01:14 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-08 01:01:14 -0300
commite5fd91f1ef340da553f7a79da9540c3db711c937 (patch)
treeb11842027dc6641da63f4bcc524f8678263304a3 /ipc/kdbus/node.h
parent2a9b0348e685a63d97486f6749622b61e9e3292f (diff)
Linux-libre 4.2-gnu
Diffstat (limited to 'ipc/kdbus/node.h')
-rw-r--r--ipc/kdbus/node.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/ipc/kdbus/node.h b/ipc/kdbus/node.h
index 970e02b08..16c6fd574 100644
--- a/ipc/kdbus/node.h
+++ b/ipc/kdbus/node.h
@@ -32,6 +32,7 @@ typedef void (*kdbus_node_free_t) (struct kdbus_node *node);
typedef void (*kdbus_node_release_t) (struct kdbus_node *node, bool was_active);
struct kdbus_node {
+ struct mutex lock;
atomic_t refcnt;
atomic_t active;
wait_queue_head_t waitq;
@@ -49,10 +50,9 @@ struct kdbus_node {
unsigned int hash;
unsigned int id;
struct kdbus_node *parent; /* may be NULL */
-
- /* valid iff active */
- struct mutex lock;
struct rb_node rb;
+
+ /* dynamic list of children */
struct rb_root children;
};
@@ -72,6 +72,7 @@ bool kdbus_node_is_active(struct kdbus_node *node);
bool kdbus_node_is_deactivated(struct kdbus_node *node);
bool kdbus_node_activate(struct kdbus_node *node);
void kdbus_node_deactivate(struct kdbus_node *node);
+void kdbus_node_drain(struct kdbus_node *node);
bool kdbus_node_acquire(struct kdbus_node *node);
void kdbus_node_release(struct kdbus_node *node);