From 55790aa09a8f92d437ea06b3ef2c74465612fa8b Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 26 Oct 2014 18:46:50 +0100 Subject: sim: Prepare infrastructure for protocols != T=0 and other drivers --- include/osmocom/sim/sim.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'include/osmocom/sim') diff --git a/include/osmocom/sim/sim.h b/include/osmocom/sim/sim.h index 4c47afc4..d68d7c2c 100644 --- a/include/osmocom/sim/sim.h +++ b/include/osmocom/sim/sim.h @@ -320,10 +320,22 @@ struct msgb *osim_new_apdumsg(uint8_t cla, uint8_t ins, uint8_t p1, struct osim_reader_ops; +enum osim_proto { + OSIM_PROTO_T0 = 0, + OSIM_PROTO_T1 = 1, +}; + +enum osim_reader_driver { + OSIM_READER_DRV_PCSC = 0, + OSIM_READER_DRV_OPENCT = 1, + OSIM_READER_DRV_SERIAL = 2, +}; + struct osim_reader_hdl { /*! \brief member in global list of readers */ struct llist_head list; struct osim_reader_ops *ops; + uint32_t proto_supported; void *priv; /*! \brief current card, if any */ struct osim_card_hdl *card; @@ -336,6 +348,8 @@ struct osim_card_hdl { struct osim_reader_hdl *reader; /*! \brief card profile */ struct osim_card_profile *prof; + /*! \brief card protocol */ + enum osim_proto proto; /*! \brief list of channels for this card */ struct llist_head channels; @@ -351,6 +365,7 @@ struct osim_chan_hdl { /* reader.c */ int osim_transceive_apdu(struct osim_chan_hdl *st, struct msgb *amsg); -struct osim_reader_hdl *osim_reader_open(int idx, const char *name, void *ctx); -struct osim_card_hdl *osim_card_open(struct osim_reader_hdl *rh); +struct osim_reader_hdl *osim_reader_open(enum osim_reader_driver drv, int idx, + const char *name, void *ctx); +struct osim_card_hdl *osim_card_open(struct osim_reader_hdl *rh, enum osim_proto proto); #endif /* _OSMOCOM_SIM_H */ -- cgit v1.2.3