diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-01-12 11:27:31 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-01-12 11:27:31 -0600 |
commit | 0382f6435357ec41be496702aa8d27bd6e1bf4c3 (patch) | |
tree | 4adfc3c8fdd0018205a5508f1abead37b884f639 /src/message-waiting.c | |
parent | 2b231c3f8487f51ee0691e2e97ef1207bbf79e0d (diff) | |
download | ofono-0382f6435357ec41be496702aa8d27bd6e1bf4c3.tar.bz2 |
Refactor: Rename & Restructure cphs_support
- Rename to cphs_service_table to be more inline with the specification.
- Since the spec allows arbitrary length service tables, use an unsigned
char * return instead of a short.
- Use bit_field function instead of defining an enum
Diffstat (limited to 'src/message-waiting.c')
-rw-r--r-- | src/message-waiting.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/message-waiting.c b/src/message-waiting.c index 05d05edb..3ac5553a 100644 --- a/src/message-waiting.c +++ b/src/message-waiting.c @@ -895,6 +895,8 @@ void ofono_message_waiting_register(struct ofono_message_waiting *mw) sim_atom = __ofono_modem_find_atom(modem, OFONO_ATOM_TYPE_SIM); if (sim_atom) { + const unsigned char *st; + /* Assume that if sim atom exists, it is ready */ mw->sim = __ofono_atom_get_data(sim_atom); @@ -906,9 +908,13 @@ void ofono_message_waiting_register(struct ofono_message_waiting *mw) OFONO_SIM_FILE_STRUCTURE_FIXED, mw_mbi_read_cb, mw); - if ((ofono_sim_get_cphs_support(mw->sim) & - OFONO_SIM_CPHS_ST_MAILBOX_NUMBERS_MASK) == - OFONO_SIM_CPHS_ST_MAILBOX_NUMBERS_MASK) { + st = ofono_sim_get_cphs_service_table(mw->sim); + + /* + * Mailbox numbers located in Byte 1, bits 6 & 5, + * Check for Activated & Allocated + */ + if (st && bit_field(st[0], 5, 2) == 3) { ofono_sim_read(mw->sim, SIM_EF_CPHS_MWIS_FILEID, OFONO_SIM_FILE_STRUCTURE_TRANSPARENT, mw_cphs_mwis_read_cb, mw); |