tuple(9S)
NAME
tuple - card information structure (CIS) access structure
SYNOPSIS
#include <sys/pccard.h>
INTERFACE LEVEL
Solaris DDI Specific (Solaris DDI)
DESCRIPTION
The tuple_t structure is the basic data structure provided
by card services to manage PC card information. A PC card
provides identification and configuration information
through its card information structure (CIS). A PC card
driver accesses a PC card's CIS through various card ser-
vices functions.
The CIS information allows PC cards to be self-identifying:
the CIS provides information to the system so that it can
identify the proper PC card driver for the PC card, and pro-
vides configuration information so that the driver can allo-
cate appropriate resources to configure the PC card for
proper operation in the system.
The CIS information is contained on the PC card in a linked
list of tuple data structures called a CIS chain. Each tuple
has a one-byte type and a one-byte link, an offset to the
next tuple in the list. A PC card can have one or more CIS
chains.
A multi-function PC card that complies with the PC Card 95
MultiFunction Metaformat specification will have one or more
global CIS chains that collectively are referred to as the
global CIS. These PC Cards will also have one or more per-
function CIS chains. Each per-function collection of CIS
chains is referred to as a function-specific CIS.
To examine a PC card's CIS, first a PC card driver must
locate the desired tuple by calling csx_GetFirstTuple(9F).
Once the first tuple is located, subsequent tuples may be
located by calling csx_GetNextTuple(9F). See
csx_GetFirstTuple(9F). The linked list of tuples may be
inspected one by one, or the driver may narrow the search by
requesting only tuples of a particular type.
Once a tuple has been located, the PC card driver may
inspect the tuple data. The most convenient way to do this
for standard tuples is by calling one of the number of
tuple-parsing utility functions; for custom tuples, the
driver may get access to the raw tuple data by calling
csx_GetTupleData(9F).
Solaris PC card drivers do not need to be concerned with
which CIS chain a tuple appears in. On a multi-function PC
card, the client will get the tuples from the global CIS
followed by the tuples in the function-specific CIS. The
caller will not get any tuples from a function-specific CIS
that does not belong to the caller's function.
STRUCTURE MEMBERS
The structure members of tuple_t are:
uint32_t Socket; /* socket number */
uint32_t Attributes; /* tuple attributes */
cisdata_t DesiredTuple; /* tuple to search for */
cisdata_t TupleOffset; /* tuple data offset */
cisdata_t TupleDataMax; /* max tuple data size */
cisdata_t TupleDataLen; /* actual tuple data length */
cisdata_t TupleData[CIS_MAX_TUPLE_DATA_LEN];
/* body tuple data */
cisdata_t TupleCode; /* tuple type code */
cisdata_t TupleLink; /* tuple link */
The fields are defined as follows:
Socket
Not used in Solaris, but for portability with
other card services implementations, it should be
set to the logical socket number.
Attributes
This field is bit-mapped. The following bits are
defined:
TUPLE_RETURN_LINK
Return link tuples if set.
TUPLE_RETURN_IGNORED_TUPLES
Return ignored tuples if set. Ignored
tuples are those tuples in a multi-function
PC card's global CIS chain that are dupli-
cates of the same tuples in a function-
specific CIS chain.
TUPLE_RETURN_NAME
Return tuple name string using the
csx_ParseTuple(9F) function if set.
DesiredTuple
This field is the requested tuple type code to be
returned when calling csx_GetFirstTuple(9F) or
csx_GetNextTuple(9F). RETURN_FIRST_TUPLE is used
to return the first tuple regardless of tuple
type. RETURN_NEXT_TUPLE is used to return the
next tuple regardless of tuple type.
TupleOffset
This field allows partial tuple information to be
retrieved, starting at the specified offset
within the tuple. This field must only be set
before calling csx_GetTupleData(9F).
TupleDataMax
This field is the size of the tuple data buffer
that card services uses to return raw tuple data
from csx_GetTupleData(9F). It can be larger than
the number of bytes in the tuple data body. Card
services ignores any value placed here by the
client.
TupleDataLen
This field is the actual size of the tuple data
body. It represents the number of tuple data body
bytes returned by csx_GetTupleData(9F).
TupleData
This field is an array of bytes containing the
raw tuple data body contents returned by
csx_GetTupleData(9F).
TupleCode
This field is the tuple type code and is returned
by csx_GetFirstTuple(9F) or csx_GetNextTuple(9F)
when a tuple matching the DesiredTuple field is
returned.
TupleLink
This field is the tuple link, the offset to the
next tuple, and is returned by
csx_GetFirstTuple(9F) or csx_GetNextTuple(9F)
when a tuple matching the DesiredTuple field is
returned.
SEE ALSO
csx_GetFirstTuple(9F), csx_GetTupleData(9F),
csx_ParseTuple(9F), csx_Parse_CISTPL_BATTERY(9F),
csx_Parse_CISTPL_BYTEORDER(9F),
csx_Parse_CISTPL_CFTABLE_ENTRY(9F),
csx_Parse_CISTPL_CONFIG(9F), csx_Parse_CISTPL_DATE(9F),
csx_Parse_CISTPL_DEVICE(9F), csx_Parse_CISTPL_FUNCE(9F),
csx_Parse_CISTPL_FUNCID(9F), csx_Parse_CISTPL_JEDEC_C(9F),
csx_Parse_CISTPL_MANFID(9F), csx_Parse_CISTPL_SPCL(9F),
csx_Parse_CISTPL_VERS_1(9F), csx_Parse_CISTPL_VERS_2(9F)
PC Card 95 Standard, PCMCIA/JEIDA
Man(1) output converted with
man2html