CSX_PARSE_CISTPL_CONFIG(9F)                     Kernel Functions for Drivers
NAME
       csx_Parse_CISTPL_CONFIG - parse Configuration tuple
SYNOPSIS
       #include <sys/pccard.h>       
int32_t csx_Parse_CISTPL_CONFIG(
client_handle_t ch, 
tuple_t *tu,            
cistpl_config_t *cc);
INTERFACE LEVEL
       illumos 
DDI Specific (illumos 
DDI)PARAMETERS
       ch             Client handle returned from 
csx_RegisterClient(9F).       
tu             Pointer to a 
tuple_t structure (see 
tuple(9S)) returned by a
             call to 
csx_GetFirstTuple(9F) or 
csx_GetNextTuple(9F).       
cc             Pointer to a 
cistpl_config_t structure which contains the
             parsed 
CISTPL_CONFIG tuple information upon return from this
             function.
DESCRIPTION
       This function parses the Configuration tuple, 
CISTPL_CONFIG, into a
       form usable by 
PC Card drivers. The 
CISTPL_CONFIG tuple is used to
       describe the general characteristics of 16-bit 
PC Cards containing       
I/O devices or using custom interfaces. It may also describe 
PC       Cards, including Memory Only cards, which exceed nominal power supply
       specifications, or which need descriptions of their power
       requirements or other information.
STRUCTURE MEMBERS
       The structure members of 
cistpl_config_t are:
         uint32_t     present;     /* register present flags */
         uint32_t     nr;          /* number of config registers found */
         uint32_t     hr;          /* highest config register index found */
         uint32_t     regs[CISTPL_CONFIG_MAX_CONFIG_REGS];    /* reg offsets */
         uint32_t     base;        /* base offset of config registers */
         uint32_t     last;        /* last config index */
       The fields are defined as follows:       
present                  This field indicates which configuration registers are
                  present on the 
PC Card.                  
CONFIG_OPTION_REG_PRESENT                                                Configuration Option
                                                Register present                  
CONFIG_STATUS_REG_PRESENT                                                Configuration Status
                                                Register present                  
CONFIG_PINREPL_REG_PRESENT                                                Pin Replacement Register
                                                present                  
CONFIG_COPY_REG_PRESENT                                                Copy Register present                  
CONFIG_EXSTAT_REG_PRESENT                                                Extended Status Register
                                                present                  
CONFIG_IOBASE0_REG_PRESENT                                                IO Base 0 Register present                  
CONFIG_IOBASE1_REG_PRESENT                                                IO Base 1 Register present                  
CONFIG_IOBASE2_REG_PRESENT                                                IO Base2 Register present                  
CONFIG_IOBASE3_REG_PRESENT                                                IO Base3 Register present                  
CONFIG_IOLIMIT_REG_PRESENT                                                IO Limit Register present       
nr                  This field specifies the number of configuration registers
                  that are present on the 
PC Card.       
hr                  This field specifies the highest configuration register
                  number that is present on the 
PC Card.       
regs                  This array contains the offset from the start of Attribute
                  Memory space for each configuration register that is
                  present on the 
PC Card. If a configuration register is not
                  present on the 
PC Card, the value in the corresponding
                  entry in the 
regs array is undefined.       
base                  This field contains the offset from the start of Attribute
                  Memory space to the base of the 
PC Card configuration
                  register space.       
last                  This field contains the value of the last valid
                  configuration index for this 
PC Card.
RETURN VALUES
       CS_SUCCESS                                  Successful operation.       
CS_BAD_HANDLE                                  Client handle is invalid.       
CS_UNKNOWN_TUPLE                                  Parser does not know how to parse tuple.       
CS_NO_CARD                                  No 
PC Card in socket.       
CS_NO_CIS                                  No Card Information Structure (CIS) on 
PC                                  Card.       
CS_UNSUPPORTED_FUNCTION                                  No 
PCMCIA hardware installed.
CONTEXT
       This function may be called from user or kernel context.
SEE ALSO
       csx_GetFirstTuple(9F), 
csx_GetTupleData(9F),       
csx_Parse_CISTPL_CFTABLE_ENTRY(9F), 
csx_RegisterClient(9F),       
csx_ValidateCIS(9F), 
tuple(9S)       PC Card 95 Standard, PCMCIA/JEIDANOTES
       PC Card drivers should not attempt to use configurations beyond the
       "last" member in the 
cistpl_config_t structure.
                              December 20, 1996  CSX_PARSE_CISTPL_CONFIG(9F)