diff options
Diffstat (limited to 'drivers/atmodem/atutil.c')
-rw-r--r-- | drivers/atmodem/atutil.c | 20 |
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); +} + |