CSX_GETSTATUS(9F)       Kernel Functions for Drivers       CSX_GETSTATUS(9F)
NAME
       csx_GetStatus - return the current status of a PC Card and its socket
SYNOPSIS
       #include <sys/pccard.h>       
int32_t csx_GetStatus(
client_handle_t ch, 
get_status_t *gs);
INTERFACE LEVEL
       illumos 
DDI Specific (illumos 
DDI)PARAMETERS
       ch              Client handle returned from 
csx_RegisterClient(9F).       
gs              Pointer to a 
get_status_t structure.
DESCRIPTION
       This function returns the current status of a 
PC Card and its socket.
STRUCTURE MEMBERS
       The structure members of 
get_status_t are:
         uint32_t     Socket;          /* socket number*/
         uint32_t     CardState;       /* "live" card status for this client*/
         uint32_t     SocketState;     /* latched socket values */
         uint32_t     raw_CardState;   /* raw live card status */
       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.       
CardState                         The 
CardState field is the bit-mapped output data
                         returned from Card Services. The bits identify what
                         Card Services thinks the current state of the
                         installed 
PC Card is. The bits are:                         
CS_STATUS_WRITE_PROTECTED                             Card is write protected                         
CS_STATUS_CARD_LOCKED                             Card is locked                         
CS_STATUS_EJECTION_REQUEST                             Ejection request in progress                         
CS_STATUS_INSERTION_REQUEST                             Insertion request in progress                         
CS_STATUS_BATTERY_DEAD                             Card battery is dead                         
CS_STATUS_BATTERY_DEAD                             Card battery is dead (
BVD1)                         
CS_STATUS_BATTERY_LOW                             Card battery is low (
BVD2)                         
CS_STATUS_CARD_READY                             Card is READY                         
CS_STATUS_CARD_INSERTED                             Card is inserted                         
CS_STATUS_REQ_ATTN                             Extended status attention request                         
CS_STATUS_RES_EVT1                             Extended status reserved event status                         
CS_STATUS_RES_EVT2                             Extended status reserved event status                          
CS_STATUS_RES_EVT3                             Extended status reserved event status                         
CS_STATUS_VCC_50                             5.0 Volts Vcc Indicated                         
CS_STATUS_VCC_33                             3.3 Volts Vcc Indicated                         
CS_STATUS_VCC_XX                             X.X Volts Vcc Indicated
                         The state of the 
CS_STATUS_CARD_INSERTED bit
                         indicates whether the 
PC Card associated with this
                         driver instance, not just any card, is inserted in
                         the socket. If an 
I/O card is installed in the
                         specified socket, card state is returned from the                         
PRR (Pin Replacement Register) and the 
ESR                         (Extended Status Register) (if present). If certain
                         state bits are not present in the 
PRR or 
ESR, a
                         simulated state bit value is returned as defined
                         below:                         
CS_STATUS_WRITE_PROTECTED                                                      Not write protected                         
CS_STATUS_BATTERY_DEAD                                                      Power good                         
PCS_STATUS_BATTERY_LOW                                                      Power good                         
CS_STATUS_CARD_READY                                                      Ready                         
CS_STATUS_REQ_ATTN                                                      Not set                         
CS_STATUS_RES_EVT1                                                      Not set                         
CS_STATUS_RES_EVT2                                                      Not set                         
CS_STATUS_RES_EVT3                                                      Not set       
SocketState                         The 
SocketState field is a bit-map of the current
                         card and socket state.  The bits are:                         
CS_SOCK_STATUS_WRITE_PROTECT_CHANGE                             Write Protect                         
ECS_SOCK_STATUS_CARD_LOCK_CHANGE                             Card Lock Change                         
CS_SOCK_STATUS_EJECTION_PENDING                             Ejection Request                         
CS_SOCK_STATUS_INSERTION_PENDING                             Insertion Request                         
CS_SOCK_STATUS_BATTERY_DEAD_CHANGE                             Battery Dead                         
CS_SOCK_STATUS_BATTERY_LOW_CHANGE                             Battery Low                         
CS_SOCK_STATUS_CARD_READY_CHANGE                             Ready Change                         
CS_SOCK_STATUS_CARD_INSERTION_CHANGE                             Card is inserted
                              The state reported in the SocketState field
                             may be different from the state reported in the
                             CardState field. Clients should normally depend
                             only on the state reported in the CardState
                             field.
                             The state reported in the 
SocketState field may
                             be different from the state reported in the                             
CardState field. Clients should normally depend
                             only on the state reported in the 
CardState                             field.       
raw_CardState                         The 
raw_CardState field is an illumos-specific
                         extension that allows the client to determine if
                         any card is inserted in the socket. The bit
                         definitions in the 
raw_CardState field are
                         identical to those in the 
CardState field with the
                         exception that the 
CS_STATUS_CARD_INSERTED bit in
                         the 
raw_CardState field is set whenever any card is
                         inserted into the socket.
RETURN VALUES
       CS_SUCCESS                                   Successful operation.       
CS_BAD_HANDLE                                   Client handle is invalid.       
CS_BAD_SOCKET                                   Error getting socket state.       
CS_UNSUPPORTED_FUNCTION                                   No 
PCMCIA hardware installed.       
CS_NO_CARD will not be returned if there is no 
PC Card present in the
       socket.
CONTEXT
       This function may be called from user or kernel context.
SEE ALSO
       csx_RegisterClient(9F)       PC Card 95 Standard, PCMCIA/JEIDA                                July 19, 1996              CSX_GETSTATUS(9F)