include: Add sim ops for session based sim access

ISIM and newer AID's require opening a logical channel to read
their EF's. This requires new driver API's to discover AID's,
open/close a channel, and reading the EF's from an opened channel.

This functionality was moved from the simauth module.
This commit is contained in:
James Prestwood 2017-11-03 15:34:41 -07:00 committed by Denis Kenzior
parent 8de7ccadfc
commit 3cd91409ee
1 changed files with 26 additions and 0 deletions

View File

@ -121,6 +121,14 @@ typedef void (*ofono_sim_lock_unlock_cb_t)(const struct ofono_error *error,
typedef void (*ofono_query_facility_lock_cb_t)(const struct ofono_error *error,
ofono_bool_t status, void *data);
typedef void (*ofono_sim_list_apps_cb_t)(const struct ofono_error *error,
const unsigned char *dataobj,
int len, void *data);
typedef void (*ofono_sim_open_channel_cb_t)(const struct ofono_error *error,
int session_id, void *data);
typedef void (*ofono_sim_close_channel_cb_t)(const struct ofono_error *error,
void *data);
struct ofono_sim_driver {
const char *name;
int (*probe)(struct ofono_sim *sim, unsigned int vendor, void *data);
@ -173,6 +181,24 @@ struct ofono_sim_driver {
void (*query_facility_lock)(struct ofono_sim *sim,
enum ofono_sim_password_type lock,
ofono_query_facility_lock_cb_t cb, void *data);
void (*list_apps)(struct ofono_sim *sim,
ofono_sim_list_apps_cb_t cb, void *data);
void (*open_channel)(struct ofono_sim *sim, const unsigned char *aid,
ofono_sim_open_channel_cb_t cb, void *data);
void (*close_channel)(struct ofono_sim *sim, int session_id,
ofono_sim_close_channel_cb_t cb, void *data);
void (*session_read_binary)(struct ofono_sim *sim, int session,
int fileid, int start, int length,
const unsigned char *path, unsigned int path_len,
ofono_sim_read_cb_t cb, void *data);
void (*session_read_record)(struct ofono_sim *sim, int session_id,
int fileid, int record, int length,
const unsigned char *path, unsigned int path_len,
ofono_sim_read_cb_t cb, void *data);
void (*session_read_info)(struct ofono_sim *sim, int session_id,
int fileid, const unsigned char *path,
unsigned int path_len, ofono_sim_file_info_cb_t cb,
void *data);
};
int ofono_sim_driver_register(const struct ofono_sim_driver *d);