Refactor: call id allocation / release

This commit is contained in:
Denis Kenzior 2009-12-04 16:20:40 -06:00
parent 8e02b1a67f
commit c7ac706de1
2 changed files with 10 additions and 5 deletions

View File

@ -98,7 +98,7 @@ struct ofono_property {
void *value; void *value;
}; };
unsigned int __ofono_modem_alloc_callid(struct ofono_modem *modem) unsigned int __ofono_modem_callid_next(struct ofono_modem *modem)
{ {
unsigned int i; unsigned int i;
@ -106,14 +106,18 @@ unsigned int __ofono_modem_alloc_callid(struct ofono_modem *modem)
if (modem->call_ids & (0x1 << i)) if (modem->call_ids & (0x1 << i))
continue; continue;
modem->call_ids |= (0x1 << i);
return i; return i;
} }
return 0; return 0;
} }
void __ofono_modem_release_callid(struct ofono_modem *modem, int id) void __ofono_modem_callid_hold(struct ofono_modem *modem, int id)
{
modem->call_ids |= (0x1 << id);
}
void __ofono_modem_callid_release(struct ofono_modem *modem, int id)
{ {
modem->call_ids &= ~(0x1 << id); modem->call_ids &= ~(0x1 << id);
} }

View File

@ -90,8 +90,9 @@ void __ofono_plugin_cleanup(void);
#include <ofono/modem.h> #include <ofono/modem.h>
unsigned int __ofono_modem_alloc_callid(struct ofono_modem *modem); unsigned int __ofono_modem_callid_next(struct ofono_modem *modem);
void __ofono_modem_release_callid(struct ofono_modem *modem, int id); void __ofono_modem_callid_hold(struct ofono_modem *modem, int id);
void __ofono_modem_callid_release(struct ofono_modem *modem, int id);
struct ofono_atom; struct ofono_atom;