CSX_MODIFYCONFIGURATION(9F)                     Kernel Functions for Drivers
NAME
       csx_ModifyConfiguration - modify socket and PC Card Configuration
       Register
SYNOPSIS
       #include <sys/pccard.h>       
int32_t csx_ModifyConfiguration(
client_handle_t ch, 
modify_config_t *mc);
INTERFACE LEVEL
       illumos 
DDI Specific (illumos 
DDI)PARAMETERS
       ch              Client handle returned from 
csx_RegisterClient(9F).       
mc              Pointer to a 
modify_config_t structure.
DESCRIPTION
       This function allows a socket and 
PC Card configuration to be
       modified.  This function can only modify a configuration requested
       via 
csx_RequestConfiguration(9F).
STRUCTURE MEMBERS
       The structure members of 
modify_config_t are:
         uint32_t     Socket;        /* socket number */
         uint32_t     Attributes;    /* attributes to modify */
         uint32_t     Vpp1;          /* Vpp1 value */
         uint32_t     Vpp2;          /* Vpp2 value */
       The fields are defined as follows:       
Socket                      Not used in illumos, 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:                      
CONF_ENABLE_IRQ_STEERING                                                  Enable IRQ steering. Set
                                                  to connect the 
PC Card                                                  
IREQ line to a previously
                                                  selected system interrupt.                      
CONF_IRQ_CHANGE_VALID                                                  IRQ change valid. Set to
                                                  request the 
IRQ steering
                                                  enable to be changed.                      
CONF_VPP1_CHANGE_VALID                                                  Vpp1 change valid. These
                                                  bits are set to request a
                                                  change to the
                                                  corresponding voltage
                                                  level for the 
PC Card.                      
CONF_VPP2_CHANGE_VALID                                                  Vpp2 change valid. These
                                                  bits are set to request a
                                                  change to the
                                                  corresponding voltage
                                                  level for the 
PC Card.                      
CONF_VSOVERRIDE                                                  Override VS pins. For Low
                                                  Voltage keyed cards, must
                                                  be set if a client desires
                                                  to apply a voltage
                                                  inappropriate for this
                                                  card to any pin. After
                                                  card insertion and prior
                                                  to the first                                                  
csx_RequestConfiguration(9F)                                                  call for this client, the
                                                  voltage levels applied to
                                                  the card will be those
                                                  specified by the Card
                                                  Interface Specification.
                                                  (See 
WARNINGS.)       
Vpp1, 
Vpp2                      Represent voltages expressed in tenths of a volt.
                      Values from 
0 to 
25.5 volts may be set. To be valid,
                      the exact voltage must be available from the system.
                      To be compliant with the 
PC Card 95 Standard,                      PCMCIA/JEIDA, systems must always support 
5.0 volts
                      for both 
Vcc and 
Vpp. (See 
WARNINGS.)
RETURN VALUES
       CS_SUCCESS                                   Successful operation.       
CS_BAD_HANDLE                                   Client handle is invalid or                                   
csx_RequestConfiguration(9F) not done.       
CS_BAD_SOCKET                                   Error getting/setting socket hardware
                                   parameters.       
CS_BAD_VPP                                   Requested 
Vpp is not available on socket.       
CS_NO_CARD                                   No 
PC Card in socket.       
CS_UNSUPPORTED_FUNCTION                                   No 
PCMCIA hardware installed.
CONTEXT
       This function may be called from user or kernel context.
SEE ALSO
       csx_RegisterClient(9F), 
csx_ReleaseConfiguration(9F),       
csx_ReleaseIO(9F), 
csx_ReleaseIRQ(9F), 
csx_RequestConfiguration(9F),       
csx_RequestIO(9F), 
csx_RequestIRQ(9F)       PC Card 95 Standard, PCMCIA/JEIDAWARNINGS
           1.     
CONF_VSOVERRIDE is provided for clients that have a need
                  to override the information provided in the CIS. The
                  client must exercise caution when setting this as it
                  overrides any voltage level protection provided by Card
                  Services.
           2.     Using 
csx_ModifyConfiguration() to set 
Vpp to 
0 volts may
                  result in the loss of a 
PC Card's state. Any client
                  setting 
Vpp to 
0 volts is responsible for insuring that
                  the 
PC Card's state is restored when power is re-applied
                  to the card.
NOTES
       Mapped 
IO addresses can only be changed by first releasing the
       current configuration and 
IO resources with       
csx_ReleaseConfiguration(9F) and 
csx_ReleaseIO(9F), requesting new 
IO       resources and a new configuration with 
csx_RequestIO(9F), followed by       
csx_RequestConfiguration(9F).       
IRQ priority can only be changed by first releasing the current
       configuration and 
IRQ resources with 
csx_ReleaseConfiguration(9F) and       
csx_ReleaseIRQ(9F), requesting new 
IRQ resources and a new
       configuration with 
csx_RequestIRQ(9F), followed by       
csx_RequestConfiguration(9F).       
Vcc can not be changed using 
csx_ModifyConfiguration(). 
Vcc may be
       changed by first invoking 
csx_ReleaseConfiguration(9F), followed by       
csx_RequestConfiguration(9F) with a new 
Vcc value.
                                July 19, 1996    CSX_MODIFYCONFIGURATION(9F)