JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 3: Extended Library Functions     Oracle Solaris 10 1/13 Information Library
search filter icon
search icon

Document Information

Preface

Extended Library Functions - Part 1

Extended Library Functions - Part 2

Extended Library Functions - Part 3

Extended Library Functions - Part 4

Extended Library Functions - Part 5

pool_value_get_type(3POOL)

pool_value_get_uint64(3POOL)

pool_value_set_bool(3POOL)

pool_value_set_double(3POOL)

pool_value_set_int64(3POOL)

pool_value_set_name(3POOL)

pool_value_set_string(3POOL)

pool_value_set_uint64(3POOL)

pool_version(3POOL)

pool_walk_components(3POOL)

pool_walk_pools(3POOL)

pool_walk_properties(3POOL)

pool_walk_resources(3POOL)

pow(3M)

powf(3M)

powl(3M)

ppc_file_start(3TECLA)

ppc_literal_escapes(3TECLA)

printDmiAttributeValues(3DMI)

printDmiDataUnion(3DMI)

printDmiString(3DMI)

Privilege(3PERL)

Project(3PERL)

project_walk(3PROJECT)

ptree_add_node(3PICLTREE)

ptree_add_prop(3PICLTREE)

ptree_add_row_to_table(3PICLTREE)

ptree_create_and_add_node(3PICLTREE)

ptree_create_and_add_prop(3PICLTREE)

ptree_create_node(3PICLTREE)

ptree_create_prop(3PICLTREE)

ptree_create_table(3PICLTREE)

ptree_delete_node(3PICLTREE)

ptree_delete_prop(3PICLTREE)

ptree_destroy_node(3PICLTREE)

ptree_destroy_prop(3PICLTREE)

ptree_find_node(3PICLTREE)

ptree_get_first_prop(3PICLTREE)

ptree_get_frutree_parent(3PICLTREE)

ptree_get_next_by_col(3PICLTREE)

ptree_get_next_by_row(3PICLTREE)

ptree_get_next_prop(3PICLTREE)

ptree_get_node_by_path(3PICLTREE)

ptree_get_prop_by_name(3PICLTREE)

ptree_get_propinfo(3PICLTREE)

ptree_get_propinfo_by_name(3PICLTREE)

ptree_get_propval(3PICLTREE)

ptree_get_propval_by_name(3PICLTREE)

ptree_get_root(3PICLTREE)

ptree_init_propinfo(3PICLTREE)

ptree_post_event(3PICLTREE)

ptree_register_handler(3PICLTREE)

ptree_unregister_handler(3PICLTREE)

ptree_update_propval(3PICLTREE)

ptree_update_propval_by_name(3PICLTREE)

ptree_walk_tree_by_class(3PICLTREE)

rd_delete(3EXT)

rd_errstr(3EXT)

rd_event_addr(3EXT)

rd_event_enable(3EXT)

rd_event_getmsg(3EXT)

rd_init(3EXT)

rd_loadobj_iter(3EXT)

rd_log(3EXT)

rd_new(3EXT)

rd_objpad_enable(3EXT)

rd_plt_resolution(3EXT)

rd_reset(3EXT)

read_vtoc(3EXT)

reg_ci_callback(3DMI)

regexpr(3GEN)

remainder(3M)

remainderf(3M)

remainderl(3M)

remquo(3M)

remquof(3M)

remquol(3M)

rint(3M)

rintf(3M)

rintl(3M)

rmdirp(3GEN)

round(3M)

roundf(3M)

roundl(3M)

rsm_create_localmemory_handle(3RSM)

rsm_free_interconnect_topology(3RSM)

rsm_free_localmemory_handle(3RSM)

rsm_get_controller(3RSM)

rsm_get_controller_attr(3RSM)

rsm_get_interconnect_topology(3RSM)

rsm_get_segmentid_range(3RSM)

rsm_intr_signal_post(3RSM)

rsm_intr_signal_wait(3RSM)

rsm_intr_signal_wait_pollfd(3RSM)

rsm_memseg_export_create(3RSM)

rsm_memseg_export_destroy(3RSM)

rsm_memseg_export_publish(3RSM)

rsm_memseg_export_rebind(3RSM)

rsm_memseg_export_republish(3RSM)

rsm_memseg_export_unpublish(3RSM)

rsm_memseg_get_pollfd(3RSM)

rsm_memseg_import_close_barrier(3RSM)

rsm_memseg_import_connect(3RSM)

rsm_memseg_import_destroy_barrier(3RSM)

rsm_memseg_import_disconnect(3RSM)

rsm_memseg_import_get16(3RSM)

rsm_memseg_import_get32(3RSM)

rsm_memseg_import_get(3RSM)

rsm_memseg_import_get64(3RSM)

rsm_memseg_import_get8(3RSM)

rsm_memseg_import_get_mode(3RSM)

rsm_memseg_import_getv(3RSM)

rsm_memseg_import_init_barrier(3RSM)

rsm_memseg_import_map(3RSM)

rsm_memseg_import_open_barrier(3RSM)

rsm_memseg_import_order_barrier(3RSM)

rsm_memseg_import_put16(3RSM)

rsm_memseg_import_put32(3RSM)

rsm_memseg_import_put(3RSM)

rsm_memseg_import_put64(3RSM)

rsm_memseg_import_put8(3RSM)

rsm_memseg_import_putv(3RSM)

rsm_memseg_import_set_mode(3RSM)

rsm_memseg_import_unmap(3RSM)

rsm_memseg_release_pollfd(3RSM)

rsm_release_controller(3RSM)

rtld_audit(3EXT)

rtld_db(3EXT)

sbcleartos(3TSOL)

sbltos(3TSOL)

sbsltos(3TSOL)

scalb(3M)

scalbf(3M)

scalbl(3M)

scalbln(3M)

scalblnf(3M)

scalblnl(3M)

scalbn(3M)

scalbnf(3M)

scalbnl(3M)

SCF_Card_close(3SMARTCARD)

SCF_Card_exchangeAPDU(3SMARTCARD)

SCF_Card_freeInfo(3SMARTCARD)

SCF_Card_getInfo(3SMARTCARD)

SCF_Card_lock(3SMARTCARD)

SCF_Card_reset(3SMARTCARD)

SCF_Card_unlock(3SMARTCARD)

SCF_Card_waitForCardRemoved(3SMARTCARD)

scf_entry_add_value(3SCF)

scf_entry_create(3SCF)

scf_entry_destroy(3SCF)

scf_entry_destroy_children(3SCF)

scf_entry_handle(3SCF)

scf_entry_reset(3SCF)

scf_error(3SCF)

scf_handle_bind(3SCF)

scf_handle_create(3SCF)

scf_handle_decode_fmri(3SCF)

scf_handle_decorate(3SCF)

scf_handle_destroy(3SCF)

scf_handle_get_scope(3SCF)

scf_handle_unbind(3SCF)

scf_instance_add_pg(3SCF)

scf_instance_create(3SCF)

scf_instance_delete(3SCF)

scf_instance_destroy(3SCF)

scf_instance_get_name(3SCF)

scf_instance_get_parent(3SCF)

scf_instance_get_pg(3SCF)

scf_instance_get_pg_composed(3SCF)

scf_instance_get_snapshot(3SCF)

scf_instance_handle(3SCF)

scf_instance_to_fmri(3SCF)

scf_iter_create(3SCF)

scf_iter_destroy(3SCF)

scf_iter_handle(3SCF)

scf_iter_handle_scopes(3SCF)

scf_iter_instance_pgs(3SCF)

scf_iter_instance_pgs_composed(3SCF)

scf_iter_instance_pgs_typed(3SCF)

scf_iter_instance_pgs_typed_composed(3SCF)

scf_iter_instance_snapshots(3SCF)

scf_iter_next_instance(3SCF)

scf_iter_next_pg(3SCF)

scf_iter_next_property(3SCF)

scf_iter_next_scope(3SCF)

scf_iter_next_service(3SCF)

scf_iter_next_snapshot(3SCF)

scf_iter_next_value(3SCF)

scf_iter_pg_properties(3SCF)

scf_iter_property_values(3SCF)

scf_iter_reset(3SCF)

scf_iter_scope_services(3SCF)

scf_iter_service_instances(3SCF)

scf_iter_service_pgs(3SCF)

scf_iter_service_pgs_typed(3SCF)

scf_iter_snaplevel_pgs(3SCF)

scf_iter_snaplevel_pgs_typed(3SCF)

scf_limit(3SCF)

scf_myname(3SCF)

scf_pg_create(3SCF)

scf_pg_delete(3SCF)

scf_pg_destroy(3SCF)

scf_pg_get_flags(3SCF)

scf_pg_get_name(3SCF)

scf_pg_get_parent_instance(3SCF)

scf_pg_get_parent_service(3SCF)

scf_pg_get_parent_snaplevel(3SCF)

scf_pg_get_property(3SCF)

scf_pg_get_type(3SCF)

scf_pg_get_underlying_pg(3SCF)

scf_pg_handle(3SCF)

scf_pg_to_fmri(3SCF)

scf_pg_update(3SCF)

scf_property_create(3SCF)

scf_property_destroy(3SCF)

scf_property_get_name(3SCF)

scf_property_get_value(3SCF)

scf_property_handle(3SCF)

scf_property_is_type(3SCF)

scf_property_to_fmri(3SCF)

scf_property_type(3SCF)

scf_scope_add_service(3SCF)

scf_scope_create(3SCF)

scf_scope_destroy(3SCF)

scf_scope_get_name(3SCF)

scf_scope_get_service(3SCF)

scf_scope_handle(3SCF)

scf_scope_to_fmri(3SCF)

scf_service_add_instance(3SCF)

scf_service_add_pg(3SCF)

scf_service_create(3SCF)

scf_service_delete(3SCF)

scf_service_destroy(3SCF)

scf_service_get_instance(3SCF)

scf_service_get_name(3SCF)

scf_service_get_parent(3SCF)

scf_service_get_pg(3SCF)

scf_service_handle(3SCF)

scf_service_to_fmri(3SCF)

SCF_Session_close(3SMARTCARD)

SCF_Session_freeInfo(3SMARTCARD)

SCF_Session_getInfo(3SMARTCARD)

SCF_Session_getSession(3SMARTCARD)

SCF_Session_getTerminal(3SMARTCARD)

scf_simple_app_props_free(3SCF)

scf_simple_app_props_get(3SCF)

scf_simple_app_props_next(3SCF)

scf_simple_app_props_search(3SCF)

scf_simple_prop_free(3SCF)

scf_simple_prop_get(3SCF)

scf_simple_prop_name(3SCF)

scf_simple_prop_next_astring(3SCF)

scf_simple_prop_next_boolean(3SCF)

scf_simple_prop_next_count(3SCF)

scf_simple_prop_next_integer(3SCF)

scf_simple_prop_next_opaque(3SCF)

scf_simple_prop_next_reset(3SCF)

scf_simple_prop_next_time(3SCF)

scf_simple_prop_next_ustring(3SCF)

scf_simple_prop_numvalues(3SCF)

scf_simple_prop_pgname(3SCF)

scf_simple_prop_type(3SCF)

scf_simple_walk_instances(3SCF)

scf_snaplevel_create(3SCF)

scf_snaplevel_destroy(3SCF)

scf_snaplevel_get_instance_name(3SCF)

scf_snaplevel_get_next_snaplevel(3SCF)

scf_snaplevel_get_parent(3SCF)

scf_snaplevel_get_pg(3SCF)

scf_snaplevel_get_scope_name(3SCF)

scf_snaplevel_get_service_name(3SCF)

scf_snaplevel_handle(3SCF)

scf_snapshot_create(3SCF)

scf_snapshot_destroy(3SCF)

scf_snapshot_get_base_snaplevel(3SCF)

scf_snapshot_get_name(3SCF)

scf_snapshot_get_parent(3SCF)

scf_snapshot_handle(3SCF)

scf_snapshot_update(3SCF)

scf_strerror(3SCF)

SCF_strerror(3SMARTCARD)

SCF_Terminal_addEventListener(3SMARTCARD)

SCF_Terminal_close(3SMARTCARD)

SCF_Terminal_freeInfo(3SMARTCARD)

SCF_Terminal_getCard(3SMARTCARD)

SCF_Terminal_getInfo(3SMARTCARD)

SCF_Terminal_removeEventListener(3SMARTCARD)

SCF_Terminal_updateEventListener(3SMARTCARD)

SCF_Terminal_waitForCardAbsent(3SMARTCARD)

SCF_Terminal_waitForCardPresent(3SMARTCARD)

scf_transaction_commit(3SCF)

scf_transaction_create(3SCF)

scf_transaction_destroy(3SCF)

scf_transaction_destroy_children(3SCF)

scf_transaction_handle(3SCF)

scf_transaction_property_change(3SCF)

scf_transaction_property_change_type(3SCF)

scf_transaction_property_delete(3SCF)

scf_transaction_property_new(3SCF)

scf_transaction_reset(3SCF)

scf_transaction_reset_all(3SCF)

scf_transaction_start(3SCF)

scf_type_base_type(3SCF)

scf_value_base_type(3SCF)

scf_value_create(3SCF)

scf_value_destroy(3SCF)

scf_value_get_as_string(3SCF)

scf_value_get_as_string_typed(3SCF)

scf_value_get_astring(3SCF)

scf_value_get_boolean(3SCF)

scf_value_get_count(3SCF)

scf_value_get_integer(3SCF)

scf_value_get_opaque(3SCF)

scf_value_get_time(3SCF)

scf_value_get_ustring(3SCF)

scf_value_handle(3SCF)

scf_value_is_type(3SCF)

scf_value_reset(3SCF)

scf_value_set_astring(3SCF)

scf_value_set_boolean(3SCF)

scf_value_set_count(3SCF)

scf_value_set_from_string(3SCF)

scf_value_set_integer(3SCF)

scf_value_set_opaque(3SCF)

scf_value_set_time(3SCF)

scf_value_set_ustring(3SCF)

scf_value_type(3SCF)

sendfile(3EXT)

sendfilev(3EXT)

setac(3BSM)

setauclass(3BSM)

setauevent(3BSM)

setauthattr(3SECDB)

setauuser(3BSM)

setexecattr(3SECDB)

setflabel(3TSOL)

setprofattr(3SECDB)

setproject(3PROJECT)

setprojent(3PROJECT)

setuserattr(3SECDB)

sha1(3EXT)

SHA1Final(3EXT)

SHA1Init(3EXT)

SHA1Update(3EXT)

sha2(3EXT)

SHA256Final(3EXT)

SHA256Init(3EXT)

SHA256Update(3EXT)

SHA2Final(3EXT)

SHA2Init(3EXT)

SHA2Update(3EXT)

SHA384Final(3EXT)

SHA384Init(3EXT)

SHA384Update(3EXT)

SHA512Final(3EXT)

SHA512Init(3EXT)

SHA512Update(3EXT)

signbit(3M)

significand(3M)

significandf(3M)

significandl(3M)

Extended Library Functions - Part 6

SCF_Session_getInfo

, SCF_Terminal_getInfo

, SCF_Card_getInfo

- retrieve information about a session, terminal, or card

Synopsis

cc [ flag… ] file-lsmartcard [ library…] 
#include <smartcard/scf.h>

SCF_Status_t SCF_Session_getInfo(SCF_Session_t session, const char *name,
     void *value);
SCF_Status_t SCF_Terminal_getInfo(SCF_Terminal_t terminal,
     const char *name, void *value);
SCF_Status_t SCF_Card_getInfo(SCF_Card_t card, const char *name,
     void *value);

Parameters

card

An object that was returned from SCF_Terminal_getCard(3SMARTCARD).

name

The name of a property for which a value is to be returned. The name is case-sensitive.

session

An object that was returned from SCF_Session_getSession(3SMARTCARD).

terminal

An object that was returned from SCF_Session_getTerminal(3SMARTCARD).

value

The value of the property. The actual type of the value depends on what property was being queried.

Description

These functions obtain information about a session, terminal, or card. The information returned represents the current state of the object and can change between calls.

Each call allocates new storage for the returned result. This storage is tracked internally and is deallocated when the object is closed. An application repeatedly asking for information can cause memory bloat until the object is closed. The application can optionally call SCF_Session_freeInfo(3SMARTCARD), SCF_Terminal_freeInfo(3SMARTCARD), or SCF_Card_freeInfo(3SMARTCARD) to cause immediate deallocation of the value. Applications must not use other means such asfree(3C) to deallocate the memory.

Applications must not access values that have been deallocated. For example, accessing a Card's ATR after the card has been closed results in undefined behavior.

For a session, the valid property names and value types are:

terminalnames (pointer to char **)

The list of terminal names that can currently be used in this session. The returned value is an array of char *, each element of the list is a pointer to a terminal name. The end of the array is denoted by a null pointer. The first element of the list is the default terminal for the session, which will be used when SCF_Session_getTerminal() is called with a null pointer for the terminal name.

For a terminal, the standard property names and value types are as follows. Some terminal drivers can define additional driver-specific properties.

name (pointer to char *)

The name of the terminal. If the default terminal was used (a null pointer was passed to SCF_Session_getTerminal()), the value will contain the actual name of the default terminal. For example, “MyInternalCardReader”.

type (pointer to char *)

The type of the terminal. For example, “SunISCRI”.

devname (pointer to char *)

Information about how the device is attached to the system. This can be a UNIX device name (for example, “/dev/scmi2c0”) or some other terminal-specific string describing its relation to the system.

For a card, the valid property names and value types are:

type (pointer to char *)

The type of the smartcard, as recognized by the framework (For example, “Cyberflex”). If the framework does not recognize the card type, “UnknownCard” is returned.

atr (pointer to struct SCF_BinaryData_t *)

The Answer To Reset (ATR) data returned by the card when it was last inserted or reset. The structure member length denotes how many bytes are in the ATR. The structure member data is a pointer to the actual ATR bytes.

Return Values

Upon success, SCF_STATUS_SUCCESS is returned and value will contain the requested information. Otherwise, an error value is returned and value remains unaltered.

Errors

These functions will fail if:

SCF_STATUS_BADARGS

Either name or value is a null pointer.

SCF_STATUS_BADHANDLE

The session, terminal, or card has been closed or is invalid.

SCF_STATUS_FAILED

An internal error occurred.

SCF_STATUS_UNKNOWNPROPERTY

The property specified by name was not found.

Examples

Example 1 Simple string information.

SCF_Status_t status;
SCF_Terminal_t myTerminal;
const char *myName, *myType;

/* (...call SCF_Session_getTerminal to open myTerminal...) */

status = SCF_Terminal_getInfo(myTerminal, "name", &myName);
if (status != SCF_STATUS_SUCCESS) exit(1);
status = SCF_Terminal_getInfo(myTerminal, "type", &myType);
if (status != SCF_STATUS_SUCCESS) exit(1);

printf("The terminal called %s is a %s\n", myName, myType);

Example 2 Display the names of all terminals available in the session.

SCF_Status_t status;
SCF_Session_t mySession;
const char **myList;  /* Technically "const char * const *". */
int i;

/* (...call SCF_Session_getSession to open mySession...) */

status = SCF_Session_getInfo(mySession, "terminalnames", &myList);
if (status != SCF_STATUS_SUCCESS) exit(1);

printf("The following terminals are available:\n");
for (i=0; myList[i] != NULL; i++) {
    printf("%d: %s\n", i, myList[i]);
}

Example 3 Display the card's ATR.

SCF_Status_t status;
SCF_Card_t myCard;
struct SCF_BinaryData_t *myATR;
int i;

/* (...call SCF_Terminal_getCard to open myCard...) */

status = SCF_Card_getInfo(myCard, "atr", &myATR);
if (status != SCF_STATUS_SUCCESS) exit(1);

printf("The card's ATR is: 0x");
for(i=0; i < myATR->length; i++) {
    printf("%02.2x", myATR->data[i]);
}
printf("\n");

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Evolving
MT-Level
MT-Safe

See Also

libsmartcard(3LIB), SCF_Session_freeInfo(3SMARTCARD), SCF_Session_getSession(3SMARTCARD), SCF_Session_getTerminal(3SMARTCARD), SCF_Terminal_getCard(3SMARTCARD), attributes(5)