summaryrefslogtreecommitdiffstats
path: root/drivers/atmodem/atutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/atmodem/atutil.c')
-rw-r--r--drivers/atmodem/atutil.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/atmodem/atutil.c b/drivers/atmodem/atutil.c
index 578522f6..26d0c259 100644
--- a/drivers/atmodem/atutil.c
+++ b/drivers/atmodem/atutil.c
@@ -81,3 +81,23 @@ gint at_util_call_compare(gconstpointer a, gconstpointer b)
return 0;
}
+unsigned int at_util_alloc_next_id(unsigned int *id_list)
+{
+ unsigned int i;
+
+ for (i = 1; i < sizeof(unsigned int) * 8; i++) {
+ if (*id_list & (1 << i))
+ continue;
+
+ *id_list |= (1 << i);
+ return i;
+ }
+
+ return 0;
+}
+
+void at_util_release_id(unsigned int *id_list, unsigned int id)
+{
+ *id_list &= ~(1 << id);
+}
+