SCF_Card_reset(3SMARTCARD)Smartcard Library FunctionSCF_Card_reset(3SMARTCARD)NAMESCF_Card_reset - perform a reset of a smartcard
SYNOPSIS
cc [ flag... ] file... -lsmartcard [ library...]
#include <smartcard/scf.h>
SCF_Status_t SCF_Card_reset(SCF_Card_t card);
PARAMETERS
card The card (from SCF_Terminal_getCard(3SMARTCARD)) to be
reset
DESCRIPTION
The SCF_Card_reset() function causes the specified smartcard to be
reset by the terminal.
A card can be reset only if it has not been locked (with
SCF_Card_lock(3SMARTCARD)) by another client. A client wishing to reset
a card should either first call SCF_Card_lock() to obtain the card
lock, or be prepared to retry the reset operation if it fails because
another client holds the card lock.
When the card is reset, any SCF_Card_t object representing the card
will continue to remain valid after the reset. When the reset occurs,
an SCF_EVENT_CARDRESET event will be sent to all registered event lis‐
teners for the terminal (assuming they registered for this event). This
is the only notification of a reset provided to SCF clients. When a
client receives this event, it should be prepared to reinitialize any
state on the card that might have been interrupted by the reset. New
information about the card (for example, ATR, if it changed) can also
be available from SCF_Card_getInfo(3SMARTCARD).
RETURN VALUES
If the card is successfully reset, SCF_STATUS_SUCCESS is returned. Oth‐
erwise, the status of the card remains unchanged and an error value is
returned.
ERRORS
The SCF_Card_reset() function will fail if:
SCF_STATUS_BADHANDLE The specified card has been closed or is
invalid.
SCF_STATUS_CARDLOCKED The card cannot be reset because another client
holds a lock on the card.
SCF_STATUS_CARDREMOVED The card cannot be reset because the card rep‐
resented by the SCF_Card_t has been removed.
SCF_STATUS_COMMERROR The connection to the server was lost.
SCF_STATUS_FAILED An internal error occured.
EXAMPLES
Example 1: Reset a card.
SCF_Status_t status;
SCF_Card_t myCard;
/* (...call SCF_Terminal_getCard to open myCard...) */
status = SCF_Card_lock(myCard, SCF_TIMEOUT_MAX);
if (status != SCF_STATUS_SUCCESS) exit(1);
status = SCF_Card_reset(myCard);
if (status != SCF_STATUS_SUCCESS) exit(1);
status = SCF_Card_unlock(myCard);
if (status != SCF_STATUS_SUCCESS) exit(1);
/* ... */
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Evolving │
├─────────────────────────────┼─────────────────────────────┤
│MT-Level │MT-Safe │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOlibsmartcard(3LIB), SCF_Card_getInfo(3SMARTCARD), SCF_Card_lock(3SMART‐
CARD), SCF_Terminal_addEventListener(3SMARTCARD), SCF_Terminal_get‐
Card(3SMARTCARD), attributes(5)SunOS 5.10 28 Feb 2001 SCF_Card_reset(3SMARTCARD)