Content-type: text/html Man page of SCF_Card_reset

SCF_Card_reset

Section: Smartcard Library Functions (3SMARTCARD)
Updated: 28 Feb 2001
Index Return to Main Contents
 

NAME

SCF_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 listeners 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. Otherwise, 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 represented 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 TYPEATTRIBUTE VALUE
Interface StabilityEvolving
MT-LevelMT-Safe

 

SEE ALSO

libsmartcard(3LIB), SCF_Card_getInfo(3SMARTCARD), SCF_Card_lock(3SMARTCARD), SCF_Terminal_addEventListener(3SMARTCARD), SCF_Terminal_getCard(3SMARTCARD), attributes(5)


 

Index

NAME
SYNOPSIS
PARAMETERS
DESCRIPTION
RETURN VALUES
ERRORS
EXAMPLES
ATTRIBUTES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:38:33 GMT, October 02, 2010