Hi Lucas,

On 01/04/2011 07:06 AM, Lucas De Marchi wrote:
> ---
>  include/sim.h |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/include/sim.h b/include/sim.h
> index 7860e24..bf4aaf9 100644
> --- a/include/sim.h
> +++ b/include/sim.h
> @@ -77,6 +77,11 @@ enum ofono_sim_state {
>       OFONO_SIM_STATE_READY,
>  };
>  
> +struct ofono_sim_pin_retry {
> +     enum ofono_sim_password_type id;
> +     int val;
> +};
> +
>  typedef void (*ofono_sim_file_info_cb_t)(const struct ofono_error *error,
>                                       int filelength,
>                                       enum ofono_sim_file_structure structure,
> @@ -108,6 +113,10 @@ typedef void (*ofono_sim_passwd_cb_t)(const struct 
> ofono_error *error,
>                                       enum ofono_sim_password_type type,
>                                       void *data);
>  
> +typedef void (*ofono_sim_pin_retries_cb_t)(const struct ofono_error *error,
> +                                             GSList *pin_retries,

One of the restrictions on the public ofono API is that we cannot use G*
types.  We can solve this in several ways:

- Use an array of ints with the size always being
OFONO_SIM_PASSWORD_INVALID.  The integer value contains the number of
retries or -1 if unknown / unsupported.

- Use an int length, struct ofono_sim_pin_retry *retries elements.  This
is similar to the approach taken in e.g. voicecall ofono_call_list_cb_t
or netreg ofono_netreg_operator_list_cb_t

> +                                             void *data);
> +
>  typedef void (*ofono_sim_lock_unlock_cb_t)(const struct ofono_error *error,
>                                       void *data);
>  
> @@ -144,6 +153,8 @@ struct ofono_sim_driver {
>                       ofono_sim_passwd_cb_t cb, void *data);
>       void (*send_passwd)(struct ofono_sim *sim, const char *passwd,
>                       ofono_sim_lock_unlock_cb_t cb, void *data);
> +     void (*query_pin_retries)(struct ofono_sim *sim,
> +                             ofono_sim_pin_retries_cb_t cb, void *data);
>       void (*reset_passwd)(struct ofono_sim *sim, const char *puk,
>                       const char *passwd,
>                       ofono_sim_lock_unlock_cb_t cb, void *data);

Regards,
-Denis
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to