summaryrefslogtreecommitdiff
path: root/common/queue_policies.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/queue_policies.c')
-rw-r--r--common/queue_policies.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/common/queue_policies.c b/common/queue_policies.c
new file mode 100644
index 0000000000..130dee52f0
--- /dev/null
+++ b/common/queue_policies.c
@@ -0,0 +1,28 @@
+/* Copyright 2015 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * Queue policies.
+ */
+#include "queue_policies.h"
+#include "util.h"
+
+#include <stddef.h>
+
+void queue_add_direct(struct queue_policy const *policy, size_t count)
+{
+ struct queue_policy_direct const *direct =
+ DOWNCAST(policy, struct queue_policy_direct, policy);
+
+ if (count && direct->consumer->ops->written)
+ direct->consumer->ops->written(direct->consumer, count);
+}
+
+void queue_remove_direct(struct queue_policy const *policy, size_t count)
+{
+ struct queue_policy_direct const *direct =
+ DOWNCAST(policy, struct queue_policy_direct, policy);
+
+ if (count && direct->producer->ops->read)
+ direct->producer->ops->read(direct->producer, count);
+}