mirror of https://gitee.com/openkylin/qemu.git
56 lines
1.9 KiB
C
56 lines
1.9 KiB
C
|
/*
|
||
|
* This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
|
||
|
* See the COPYING.LIB file in the top-level directory.
|
||
|
*/
|
||
|
|
||
|
#ifndef VREADER_H
|
||
|
#define VREADER_H 1
|
||
|
|
||
|
#include "eventt.h"
|
||
|
#include "vreadert.h"
|
||
|
#include "vcardt.h"
|
||
|
|
||
|
/*
|
||
|
* calls for reader front end
|
||
|
*/
|
||
|
VReaderStatus vreader_power_on(VReader *reader, unsigned char *atr, int *len);
|
||
|
VReaderStatus vreader_power_off(VReader *reader);
|
||
|
VReaderStatus vreader_xfr_bytes(VReader *reader, unsigned char *send_buf,
|
||
|
int send_buf_len, unsigned char *receive_buf,
|
||
|
int *receive_buf_len);
|
||
|
|
||
|
/* constructor */
|
||
|
VReader *vreader_new(const char *readerName, VReaderEmul *emul_private,
|
||
|
VReaderEmulFree private_free);
|
||
|
/* get a new reference to a reader */
|
||
|
VReader *vreader_reference(VReader *reader);
|
||
|
/* "destructor" (readers are reference counted) */
|
||
|
void vreader_free(VReader *reader);
|
||
|
|
||
|
/* accessors */
|
||
|
VReaderEmul *vreader_get_private(VReader *);
|
||
|
VReaderStatus vreader_card_is_present(VReader *reader);
|
||
|
void vreader_queue_card_event(VReader *reader);
|
||
|
const char *vreader_get_name(VReader *reader);
|
||
|
vreader_id_t vreader_get_id(VReader *reader);
|
||
|
VReaderStatus vreader_set_id(VReader *reader, vreader_id_t id);
|
||
|
|
||
|
/* list operations */
|
||
|
VReaderList *vreader_get_reader_list(void);
|
||
|
void vreader_list_delete(VReaderList *list);
|
||
|
VReader *vreader_list_get_reader(VReaderListEntry *entry);
|
||
|
VReaderListEntry *vreader_list_get_first(VReaderList *list);
|
||
|
VReaderListEntry *vreader_list_get_next(VReaderListEntry *list);
|
||
|
VReader *vreader_get_reader_by_id(vreader_id_t id);
|
||
|
VReader *vreader_get_reader_by_name(const char *name);
|
||
|
|
||
|
/*
|
||
|
* list tools for vcard_emul
|
||
|
*/
|
||
|
void vreader_init(void);
|
||
|
VReaderStatus vreader_add_reader(VReader *reader);
|
||
|
VReaderStatus vreader_remove_reader(VReader *reader);
|
||
|
VReaderStatus vreader_insert_card(VReader *reader, VCard *card);
|
||
|
|
||
|
#endif
|