Lines Matching refs:card
184 pcsc_card_t *card; in pcsc_card_alloc() local
186 if ((card = malloc(sizeof (*card))) == NULL) { in pcsc_card_alloc()
189 card->pcc_hdl = hdl; in pcsc_card_alloc()
190 card->pcc_fd = -1; in pcsc_card_alloc()
191 list_link_init(&card->pcc_link); in pcsc_card_alloc()
198 card->pcc_namelen = strlen(reader) + 2; in pcsc_card_alloc()
199 if ((card->pcc_name = malloc(card->pcc_namelen)) == NULL) { in pcsc_card_alloc()
200 free(card); in pcsc_card_alloc()
203 bcopy(reader, card->pcc_name, card->pcc_namelen - 1); in pcsc_card_alloc()
204 card->pcc_name[card->pcc_namelen - 1] = '\0'; in pcsc_card_alloc()
210 list_insert_tail(&hdl->pcsc_cards, card); in pcsc_card_alloc()
212 return (card); in pcsc_card_alloc()
216 pcsc_card_free(pcsc_card_t *card) in pcsc_card_free() argument
218 if (card == NULL) { in pcsc_card_free()
222 if (card->pcc_fd >= 0) { in pcsc_card_free()
223 (void) close(card->pcc_fd); in pcsc_card_free()
229 pcsc_hdl_t *hdl = card->pcc_hdl; in pcsc_card_free()
230 list_remove(&hdl->pcsc_cards, card); in pcsc_card_free()
232 free(card->pcc_name); in pcsc_card_free()
233 free(card); in pcsc_card_free()
311 pcsc_card_t *card; in SCardReleaseContext() local
312 while ((card = list_head(&hdl->pcsc_cards)) != NULL) { in SCardReleaseContext()
313 pcsc_card_free(card); in SCardReleaseContext()
512 pcsc_card_t *card; in SCardConnect() local
539 if ((card = pcsc_card_alloc(hdl, reader)) == NULL) { in SCardConnect()
540 pcsc_card_free(card); in SCardConnect()
544 if ((card->pcc_fd = open(reader, O_RDWR)) < 0) { in SCardConnect()
545 pcsc_card_free(card); in SCardConnect()
554 if ((ret = uccid_status_helper(card->pcc_fd, prots, &ucs)) != 0) { in SCardConnect()
555 pcsc_card_free(card); in SCardConnect()
560 *iccp = card; in SCardConnect()
572 pcsc_card_t *card = arg; in SCardStatus() local
573 pcsc_hdl_t *hdl = card->pcc_hdl; in SCardStatus()
584 if (ioctl(card->pcc_fd, UCCID_CMD_STATUS, &ucs) != 0) { in SCardStatus()
661 if (rlen < card->pcc_namelen) { in SCardStatus()
662 *readerlenp = card->pcc_namelen; in SCardStatus()
674 if ((ubuf = pcsc_mem_alloc(hdl, card->pcc_namelen)) == in SCardStatus()
688 bcopy(card->pcc_name, ubuf, card->pcc_namelen); in SCardStatus()
698 pcsc_card_t *card = arg; in SCardDisconnect() local
713 if (ioctl(card->pcc_fd, UCCID_CMD_TXN_BEGIN, &txnbegin) != 0) { in SCardDisconnect()
741 if (ioctl(card->pcc_fd, UCCID_CMD_TXN_END, &txnend) != 0) { in SCardDisconnect()
759 if (close(card->pcc_fd) != 0) { in SCardDisconnect()
762 card->pcc_fd = -1; in SCardDisconnect()
764 pcsc_card_free(card); in SCardDisconnect()
772 pcsc_card_t *card = arg; in SCardBeginTransaction() local
774 if (card == NULL) { in SCardBeginTransaction()
790 if (ioctl(card->pcc_fd, UCCID_CMD_TXN_BEGIN, &txn) != 0) { in SCardBeginTransaction()
821 pcsc_card_t *card = arg; in SCardEndTransaction() local
823 if (card == NULL) { in SCardEndTransaction()
843 if (ioctl(card->pcc_fd, UCCID_CMD_TXN_END, &txn) != 0) { in SCardEndTransaction()
862 pcsc_card_t *card = arg; in SCardReconnect() local
865 if (card == NULL) { in SCardReconnect()
890 if ((ret = uccid_status_helper(card->pcc_fd, prots, &ucs)) != 0) in SCardReconnect()
904 pcsc_card_t *card = arg; in SCardTransmit() local
906 if (card == NULL) { in SCardTransmit()
920 ret = write(card->pcc_fd, sendbuf, sendlen); in SCardTransmit()
944 ret = read(card->pcc_fd, recvbuf, *recvlenp); in SCardTransmit()
953 if (ioctl(card->pcc_fd, FIONREAD, &len) != 0) { in SCardTransmit()