diff options
author | James Prestwood <james.prestwood@linux.intel.com> | 2017-11-03 15:34:41 -0700 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2017-11-03 17:37:40 -0500 |
commit | 3cd91409ee58b313eb6b27a93d90fda46fac3f4e (patch) | |
tree | 03a14986638d4e207c78e2d35ddda0e32e3cbfd9 /include | |
parent | 8de7ccadfccc1ab3d07824a6d1862ca243289dc5 (diff) | |
download | ofono-3cd91409ee58b313eb6b27a93d90fda46fac3f4e.tar.gz |
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.
Diffstat (limited to 'include')
-rw-r--r-- | include/sim.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/sim.h b/include/sim.h index 0c91ce26..e10941fc 100644 --- a/include/sim.h +++ b/include/sim.h @@ -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); |