Hi Andrew, > Make every plugin generate a sim inserted event on start. For devices > with removable SIM card, the event should be emitted after the > plugin detects it. > --- > +unsigned int ofono_sim_add_removed_watch(struct ofono_sim *sim, > + ofono_sim_ready_notify_cb_t cb, > + void *data, ofono_destroy_func destroy); > + > +void ofono_sim_remove_removed_watch(struct ofono_sim *sim, unsigned int
So let us refactor the existing SIM ready events and the SIM removed events into a single set of watch functions with a state enum. e.g. something like enum ofono_sim_state { OFONO_SIM_STATE_NOT_PRESENT, OFONO_SIM_STATE_INSERTED, OFONO_SIM_STATE_READY, }; > id); + > int ofono_sim_get_ready(struct ofono_sim *sim); > -void ofono_sim_set_ready(struct ofono_sim *sim); > + > +void ofono_sim_inserted(struct ofono_sim *sim); > +void ofono_sim_removed(struct ofono_sim *sim); Lets make these into a single function with a ofono_bool_t parameter. > +void ofono_sim_proactive_command_notify(struct ofono_sim *sim, > + int length, const guint8 *pdu); Can you send this part in a separate patch? And this belongs on a separate stk atom. > +void ofono_sim_inserted(struct ofono_sim *sim) > +{ > + sim->inserted = TRUE; > + > + /* Perform SIM initialization according to 3GPP 31.102 Section 5.1.1.2 > + * The assumption here is that if sim manager is being initialized, > + * then sim commands are implemented, and the sim manager is then > + * responsible for checking the PIN, reading the IMSI and signaling > + * SIM ready condition. > + * > + * The procedure according to 31.102 is roughly: > + * Read EFecc > + * Read EFli and EFpl > + * SIM Pin check > + * Request SIM phase (only in 51.011) > + * Read EFust > + * Read EFest > + * Read IMSI > + * > + * At this point we signal the SIM ready condition and allow > + * arbitrary files to be written or read, assuming their presence > + * in the EFust > + */ > + sim_determine_phase(sim); > +} The only other issue here is that you have to wait for the sim atom to register before you start the initialization process. > +void ofono_sim_proactive_command_notify(struct ofono_sim *sim, > + int length, const guint8 *pdu) > +{ > +} > + This belongs on a separate stk atom. Regards, -Denis _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono