removed const in sc_card_driver (caused win32 crash)
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@918 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
b75ea0a0b2
commit
9631ef3636
|
@ -22,7 +22,7 @@
|
|||
#include "log.h"
|
||||
|
||||
static struct sc_card_operations default_ops;
|
||||
static const struct sc_card_driver default_drv = {
|
||||
static struct sc_card_driver default_drv = {
|
||||
"Default driver for unknown cards",
|
||||
"default",
|
||||
&default_ops
|
||||
|
@ -90,7 +90,7 @@ static int autodetect_class(struct sc_card *card)
|
|||
return 0;
|
||||
}
|
||||
if (rbuf[0] == 0x00 && rbuf[1] == 0x00) {
|
||||
const struct sc_card_driver *drv;
|
||||
struct sc_card_driver *drv;
|
||||
if (card->ctx->debug >= 2)
|
||||
debug(card->ctx, "SELECT FILE seems to return Schlumberger 'flex stuff\n");
|
||||
drv = sc_get_flex_driver();
|
||||
|
@ -114,9 +114,9 @@ static int default_init(struct sc_card *card)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct sc_card_driver * sc_get_driver(void)
|
||||
static struct sc_card_driver * sc_get_driver(void)
|
||||
{
|
||||
const struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
|
||||
default_ops = *iso_drv->ops;
|
||||
default_ops.match_card = default_match_card;
|
||||
|
@ -127,7 +127,7 @@ static const struct sc_card_driver * sc_get_driver(void)
|
|||
}
|
||||
|
||||
#if 1
|
||||
const struct sc_card_driver * sc_get_default_driver(void)
|
||||
struct sc_card_driver * sc_get_default_driver(void)
|
||||
{
|
||||
return sc_get_driver();
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include <string.h>
|
||||
|
||||
static struct sc_card_operations emv_ops;
|
||||
static const struct sc_card_driver emv_drv = {
|
||||
static struct sc_card_driver emv_drv = {
|
||||
"EMV compatible cards",
|
||||
"emv",
|
||||
&emv_ops
|
||||
|
@ -127,7 +127,7 @@ static int emv_select_file(struct sc_card *card, const struct sc_path *path,
|
|||
struct sc_file **file)
|
||||
{
|
||||
int r;
|
||||
const struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
const struct sc_card_operations *ops = iso_drv->ops;
|
||||
|
||||
r = ops->select_file(card, path, file);
|
||||
|
@ -140,9 +140,9 @@ static int emv_select_file(struct sc_card *card, const struct sc_path *path,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct sc_card_driver * sc_get_driver(void)
|
||||
static struct sc_card_driver * sc_get_driver(void)
|
||||
{
|
||||
const struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
|
||||
emv_ops = *iso_drv->ops;
|
||||
emv_ops.match_card = emv_match_card;
|
||||
|
@ -154,7 +154,7 @@ static const struct sc_card_driver * sc_get_driver(void)
|
|||
}
|
||||
|
||||
#if 1
|
||||
const struct sc_card_driver * sc_get_emv_driver(void)
|
||||
struct sc_card_driver * sc_get_emv_driver(void)
|
||||
{
|
||||
return sc_get_driver();
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
static const struct sc_card_operations *iso_ops = NULL;
|
||||
|
||||
struct sc_card_operations etoken_ops;
|
||||
const struct sc_card_driver etoken_drv = {
|
||||
struct sc_card_driver etoken_drv = {
|
||||
"Aladdin eToken PRO",
|
||||
"etoken",
|
||||
&etoken_ops
|
||||
|
@ -822,7 +822,7 @@ etoken_pin_cmd(struct sc_card *card, struct sc_pin_cmd_data *data,
|
|||
|
||||
/* eToken R2 supports WRITE_BINARY, PRO Tokens support UPDATE_BINARY */
|
||||
|
||||
static const struct sc_card_driver * sc_get_driver(void)
|
||||
static struct sc_card_driver * sc_get_driver(void)
|
||||
{
|
||||
if (iso_ops == NULL)
|
||||
iso_ops = sc_get_iso7816_driver()->ops;
|
||||
|
@ -847,7 +847,7 @@ static const struct sc_card_driver * sc_get_driver(void)
|
|||
}
|
||||
|
||||
#if 1
|
||||
const struct sc_card_driver * sc_get_etoken_driver(void)
|
||||
struct sc_card_driver * sc_get_etoken_driver(void)
|
||||
{
|
||||
return sc_get_driver();
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ struct flex_private_data {
|
|||
|
||||
static struct sc_card_operations flex_ops;
|
||||
static struct sc_card_operations *iso_ops;
|
||||
static const struct sc_card_driver flex_drv = {
|
||||
static struct sc_card_driver flex_drv = {
|
||||
"Schlumberger Multiflex/Cryptoflex",
|
||||
"flex",
|
||||
&flex_ops
|
||||
|
@ -854,7 +854,7 @@ static int flex_pin_cmd(struct sc_card *card, struct sc_pin_cmd_data *data,
|
|||
return iso_ops->pin_cmd(card, data, NULL);
|
||||
}
|
||||
|
||||
static const struct sc_card_driver * sc_get_driver(void)
|
||||
static struct sc_card_driver * sc_get_driver(void)
|
||||
{
|
||||
if (iso_ops == NULL)
|
||||
iso_ops = sc_get_iso7816_driver()->ops;
|
||||
|
@ -876,7 +876,7 @@ static const struct sc_card_driver * sc_get_driver(void)
|
|||
}
|
||||
|
||||
#if 1
|
||||
const struct sc_card_driver * sc_get_flex_driver(void)
|
||||
struct sc_card_driver * sc_get_flex_driver(void)
|
||||
{
|
||||
return sc_get_driver();
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ static struct atrinfo {
|
|||
* Driver and card ops structures
|
||||
*/
|
||||
static struct sc_card_operations gpk_ops, *iso_ops;
|
||||
static const struct sc_card_driver gpk_drv = {
|
||||
static struct sc_card_driver gpk_drv = {
|
||||
"Gemplus GPK driver",
|
||||
"gpk",
|
||||
&gpk_ops
|
||||
|
@ -1762,11 +1762,11 @@ gpk_pin_cmd(sc_card_t *card, struct sc_pin_cmd_data *data, int *tries_left)
|
|||
/*
|
||||
* Initialize the driver struct
|
||||
*/
|
||||
static const struct sc_card_driver *
|
||||
static struct sc_card_driver *
|
||||
sc_get_driver()
|
||||
{
|
||||
if (gpk_ops.match_card == NULL) {
|
||||
const struct sc_card_driver *iso_drv;
|
||||
struct sc_card_driver *iso_drv;
|
||||
|
||||
iso_drv = sc_get_iso7816_driver();
|
||||
iso_ops = iso_drv->ops;
|
||||
|
@ -1791,7 +1791,7 @@ sc_get_driver()
|
|||
return &gpk_drv;
|
||||
}
|
||||
|
||||
const struct sc_card_driver *
|
||||
struct sc_card_driver *
|
||||
sc_get_gpk_driver()
|
||||
{
|
||||
return sc_get_driver();
|
||||
|
|
|
@ -38,7 +38,7 @@ static const char *mcrd_atrs[] = {
|
|||
};
|
||||
|
||||
static struct sc_card_operations mcrd_ops;
|
||||
static const struct sc_card_driver mcrd_drv = {
|
||||
static struct sc_card_driver mcrd_drv = {
|
||||
"MICARDO 2 cards",
|
||||
"mcrd",
|
||||
&mcrd_ops
|
||||
|
@ -1142,9 +1142,9 @@ static int mcrd_compute_signature(struct sc_card *card,
|
|||
|
||||
|
||||
/* Driver binding stuff */
|
||||
static const struct sc_card_driver * sc_get_driver(void)
|
||||
static struct sc_card_driver * sc_get_driver(void)
|
||||
{
|
||||
const struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
|
||||
mcrd_ops = *iso_drv->ops;
|
||||
mcrd_ops.match_card = mcrd_match_card;
|
||||
|
@ -1159,7 +1159,7 @@ static const struct sc_card_driver * sc_get_driver(void)
|
|||
return &mcrd_drv;
|
||||
}
|
||||
|
||||
const struct sc_card_driver * sc_get_mcrd_driver(void)
|
||||
struct sc_card_driver * sc_get_mcrd_driver(void)
|
||||
{
|
||||
return sc_get_driver();
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ struct miocos_priv_data {
|
|||
#define DRVDATA(card) ((struct miocos_priv_data *) ((card)->drv_data))
|
||||
|
||||
static struct sc_card_operations miocos_ops;
|
||||
static const struct sc_card_driver miocos_drv = {
|
||||
static struct sc_card_driver miocos_drv = {
|
||||
"MioCOS 1.1 cards",
|
||||
"miocos",
|
||||
&miocos_ops
|
||||
|
@ -487,9 +487,9 @@ static int miocos_card_ctl(struct sc_card *card, unsigned long cmd,
|
|||
}
|
||||
|
||||
|
||||
static const struct sc_card_driver * sc_get_driver(void)
|
||||
static struct sc_card_driver * sc_get_driver(void)
|
||||
{
|
||||
const struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
|
||||
miocos_ops = *iso_drv->ops;
|
||||
miocos_ops.match_card = miocos_match_card;
|
||||
|
@ -508,7 +508,7 @@ static const struct sc_card_driver * sc_get_driver(void)
|
|||
}
|
||||
|
||||
#if 1
|
||||
const struct sc_card_driver * sc_get_miocos_driver(void)
|
||||
struct sc_card_driver * sc_get_miocos_driver(void)
|
||||
{
|
||||
return sc_get_driver();
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ struct setcos_priv_data {
|
|||
#define DRVDATA(card) ((struct setcos_priv_data *) ((card)->drv_data))
|
||||
|
||||
static struct sc_card_operations setcos_ops;
|
||||
static const struct sc_card_driver setcos_drv = {
|
||||
static struct sc_card_driver setcos_drv = {
|
||||
"Setec smartcards",
|
||||
"setcos",
|
||||
&setcos_ops
|
||||
|
@ -361,9 +361,9 @@ static int setcos_list_files(struct sc_card *card, u8 *buf, size_t buflen)
|
|||
return apdu.resplen;
|
||||
}
|
||||
|
||||
static const struct sc_card_driver * sc_get_driver(void)
|
||||
static struct sc_card_driver * sc_get_driver(void)
|
||||
{
|
||||
const struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
|
||||
setcos_ops = *iso_drv->ops;
|
||||
setcos_ops.match_card = setcos_match_card;
|
||||
|
@ -380,7 +380,7 @@ static const struct sc_card_driver * sc_get_driver(void)
|
|||
}
|
||||
|
||||
#if 1
|
||||
const struct sc_card_driver * sc_get_setcos_driver(void)
|
||||
struct sc_card_driver * sc_get_setcos_driver(void)
|
||||
{
|
||||
return sc_get_driver();
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ static const char *tcos_atrs[] = {
|
|||
};
|
||||
|
||||
static struct sc_card_operations tcos_ops;
|
||||
static const struct sc_card_driver tcos_drv = {
|
||||
static struct sc_card_driver tcos_drv = {
|
||||
"TCOS 2.0 cards",
|
||||
"tcos",
|
||||
&tcos_ops
|
||||
|
@ -716,9 +716,9 @@ static int tcos_card_ctl(struct sc_card *card, unsigned long cmd, void *ptr)
|
|||
|
||||
|
||||
/* Driver binding stuff */
|
||||
static const struct sc_card_driver * sc_get_driver(void)
|
||||
static struct sc_card_driver * sc_get_driver(void)
|
||||
{
|
||||
const struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
|
||||
|
||||
tcos_ops = *iso_drv->ops;
|
||||
tcos_ops.match_card = tcos_match_card;
|
||||
|
@ -738,7 +738,7 @@ static const struct sc_card_driver * sc_get_driver(void)
|
|||
return &tcos_drv;
|
||||
}
|
||||
|
||||
const struct sc_card_driver * sc_get_tcos_driver(void)
|
||||
struct sc_card_driver * sc_get_tcos_driver(void)
|
||||
{
|
||||
return sc_get_driver();
|
||||
}
|
||||
|
|
|
@ -323,7 +323,7 @@ int sc_connect_card(struct sc_reader *reader, int slot_id,
|
|||
struct sc_card *card;
|
||||
struct sc_context *ctx = reader->ctx;
|
||||
struct sc_slot_info *slot = _sc_get_slot_info(reader, slot_id);
|
||||
const struct sc_card_driver *driver;
|
||||
struct sc_card_driver *driver;
|
||||
int i, r = 0, connected = 0;
|
||||
|
||||
assert(card_out != NULL);
|
||||
|
@ -374,7 +374,7 @@ int sc_connect_card(struct sc_reader *reader, int slot_id,
|
|||
}
|
||||
}
|
||||
} else for (i = 0; ctx->card_drivers[i] != NULL; i++) {
|
||||
const struct sc_card_driver *drv = ctx->card_drivers[i];
|
||||
struct sc_card_driver *drv = ctx->card_drivers[i];
|
||||
const struct sc_card_operations *ops = drv->ops;
|
||||
int r;
|
||||
|
||||
|
|
|
@ -887,7 +887,7 @@ static struct sc_card_operations iso_ops = {
|
|||
NULL,
|
||||
};
|
||||
|
||||
static const struct sc_card_driver iso_driver = {
|
||||
static struct sc_card_driver iso_driver = {
|
||||
"ISO 7816 reference driver",
|
||||
"iso7816",
|
||||
&iso_ops
|
||||
|
@ -898,7 +898,7 @@ static int no_match(struct sc_card *card)
|
|||
return 0;
|
||||
}
|
||||
|
||||
const struct sc_card_driver * sc_get_iso7816_driver(void)
|
||||
struct sc_card_driver * sc_get_iso7816_driver(void)
|
||||
{
|
||||
if (iso_ops.match_card == NULL) {
|
||||
memset(&iso_ops, 0, sizeof(iso_ops));
|
||||
|
|
|
@ -427,7 +427,7 @@ struct sc_card {
|
|||
|
||||
int lock_count;
|
||||
|
||||
const struct sc_card_driver *driver;
|
||||
struct sc_card_driver *driver;
|
||||
struct sc_card_operations *ops;
|
||||
void *drv_data;
|
||||
|
||||
|
@ -791,16 +791,17 @@ extern const char *sc_get_version(void);
|
|||
extern const struct sc_reader_driver *sc_get_pcsc_driver(void);
|
||||
extern const struct sc_reader_driver *sc_get_ctapi_driver(void);
|
||||
|
||||
extern const struct sc_card_driver *sc_get_iso7816_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_emv_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_setcos_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_miocos_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_flex_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_gpk_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_tcos_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_default_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_etoken_driver(void);
|
||||
extern const struct sc_card_driver *sc_get_mcrd_driver(void);
|
||||
extern struct sc_card_driver *sc_get_iso7816_driver(void);
|
||||
extern struct sc_card_driver *sc_get_emv_driver(void);
|
||||
extern struct sc_card_driver *sc_get_setcos_driver(void);
|
||||
extern struct sc_card_driver *sc_get_miocos_driver(void);
|
||||
extern struct sc_card_driver *sc_get_flex_driver(void);
|
||||
extern struct sc_card_driver *sc_get_gpk_driver(void);
|
||||
extern struct sc_card_driver *sc_get_tcos_driver(void);
|
||||
extern struct sc_card_driver *sc_get_default_driver(void);
|
||||
extern struct sc_card_driver *sc_get_etoken_driver(void);
|
||||
extern struct sc_card_driver *sc_get_mcrd_driver(void);
|
||||
extern struct sc_card_driver *sc_get_belpic_driver(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue