Kernel Functions for Drivers csx_RegisterClient(9F)
NAME
csx_RegisterClient - register a client
SYNOPSIS
#include
int32_t csx_RegisterClient(client_handle_t *ch, client_reg_t *cr);
INTERFACE LEVEL
Solaris DDI Specific (Solaris DDI)PARAMETERS
ch Pointer to a client_handle_t structure.
mc Pointer to a client_reg_t structure.
DESCRIPTION
This function registers a client with Card Services and returns a unique client handle for the client. The clienthandle must be passed to csx_DeregisterClient(9F) when the
client terminates. STRUCTURE MEMBERSThe structure members of client_reg_t are:
uint32_t Attributes;
uint32_t EventMask;
event_callback_args_t event_callback_args;
uint32_t Version; /* CS version to expect */
csfunction_t *event_handler;
ddi_iblock_cookie_t *iblk_cookie; /* event iblk cookie */
ddi_idevice_cookie_t *idev_cookie; /* event idev cookie */
dev_info_t *dip; /* client's dip */
char driver_name[MODMAXNAMELEN];
The fields are defined as follows:Attributes This field is bit-mapped and defined
as follows:INFO_MEM_CLIENT
Memory client device driver.SunOS 5.11 Last change: 19 Jul 1996 1
Kernel Functions for Drivers csx_RegisterClient(9F)
INFO_MTD_CLIENT
Memory Technology Driver client.INFO_IO_CLIENT
IO client device driver.INFO_CARD_SHARE
Generate artificialCS_EVENT_CARD_INSERTION and
CS_EVENT_REGISTRATION_COMPLETE
events.INFO_CARD_EXCL
Generate artificialCS_EVENT_CARD_INSERTION and
CS_EVENT_REGISTRATION_COMPLETE
events.INFO_MEM_CLIENT
INFO_MTD_CLIENT
INFO_IO_CLIENT
These bits are mutually exclusive (that is, only one bit may be set), but one of the bits must be set.INFO_CARD_SHARE
INFO_CARD_EXCL
If either of these bits is set, the client will receive aCS_EVENT_REGISTRATION_COMPLETE
event when Card Services has completed its internal client registration processing and after a sucessful call tocsx_RequestSocketMask(9F).
Also, if either of these bits is set, and if a card of thetype that the client can con-
trol is currently inserted inSunOS 5.11 Last change: 19 Jul 1996 2
Kernel Functions for Drivers csx_RegisterClient(9F)
the socket (and after a suc-
cessful call tocsx_RequestSocketMask(9F)),
the client will receive an artificialCS_EVENT_CARD_INSERTION
event.Event Mask This field is bit-mapped and speci-
fies the client's global event mask.Card Services performs event notifi-
cation based on this field. Seecsx_event_handler(9E) for valid event
definitions and for additional infor-
mation about handling events.event_callback_args The event_callback_args_t structure
members are:void *client_data;
The client_data field may be used to
provide data available to the eventhandler (see csx_event_handler(9E)).
Typically, this is the client driver's soft state pointer. Version This field contains the specific Card Services version number that the client expects to use. Typically, theclient will use the CS_VERSION macro
to specify to Card Services which version of Card Services the client expects.event_handler The client event callback handler
entry point is passed in theevent_handler field.
iblk_cookie These fields must be used by the
idev_cookie client to set up mutexes that are
used in the client's event callback handler when handling high priority events.SunOS 5.11 Last change: 19 Jul 1996 3
Kernel Functions for Drivers csx_RegisterClient(9F)
dip The client must set this field with a pointer to the client's dip.driver_name The client must copy a driver-unique
name into this member. This name must be identical across all instances of the driver.RETURN VALUES
CS_SUCCESS Successful operation.
CS_BAD_ATTRIBUTE No client type or more than one
client type specified.CS_OUT_OF_RESOURCE Card Services is unable to regis-
ter client.CS_BAD_VERSION Card Services version is incompa-
tible with client.CS_BAD_HANDLE Client has already registered for
this socket.CS_UNSUPPORTED_FUNCTION No PCMCIA hardware installed.
CONTEXT
This function may be called from user or kernel context.SEE ALSO
csx_DeregisterClient(9F), csx_RequestSocketMask(9F)
PC Card 95 Standard, PCMCIA/JEIDA
SunOS 5.11 Last change: 19 Jul 1996 4