summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJames Prestwood <james.prestwood@linux.intel.com>2017-11-03 15:34:41 -0700
committerDenis Kenzior <denkenz@gmail.com>2017-11-03 17:37:40 -0500
commit3cd91409ee58b313eb6b27a93d90fda46fac3f4e (patch)
tree03a14986638d4e207c78e2d35ddda0e32e3cbfd9 /include
parent8de7ccadfccc1ab3d07824a6d1862ca243289dc5 (diff)
downloadofono-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.h26
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);