summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2011-06-25 22:46:24 +0200
committerSylvain Munaut <tnt@246tNt.com>2011-06-25 22:46:24 +0200
commitbd3629e4e6fe8d5ef958031178c22829c93d1491 (patch)
treea3360acf776af8dd2c53cd529d45e2068f2d7eb4 /src/target/firmware/layer1
parent402634a0cf58e8273185b008f9775e8353f3d7d2 (diff)
fw/l1a: Add a message to safely count the length of a txqueue
(that is by locking) Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Diffstat (limited to 'src/target/firmware/layer1')
-rw-r--r--src/target/firmware/layer1/async.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/target/firmware/layer1/async.c b/src/target/firmware/layer1/async.c
index e5c80c7c..c07b0b5a 100644
--- a/src/target/firmware/layer1/async.c
+++ b/src/target/firmware/layer1/async.c
@@ -59,6 +59,21 @@ void l1a_meas_msgb_set(struct msgb *msg)
local_irq_restore(flags);
}
+/* safely count messages in the L1S TX queue */
+int l1a_txq_msgb_count(struct llist_head *queue)
+{
+ unsigned long flags;
+ int num = 0;
+ struct llist_head *le;
+
+ local_firq_save(flags);
+ llist_for_each(le, queue)
+ num++;
+ local_irq_restore(flags);
+
+ return num;
+}
+
/* safely flush all pending msgb */
void l1a_txq_msgb_flush(struct llist_head *queue)
{