xref: /titanic_41/usr/src/man/man9f/csx_GetStatus.9f (revision 49d3bc91e27cd871b950d56c01398fa2f2e12ab4)
te
Copyright (c) 1996, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
csx_GetStatus 9F "19 Jul 1996" "SunOS 5.11" "Kernel Functions for Drivers"
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

Solaris DDI Specific (Solaris 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 Solaris, 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 a Solaris-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