|
The 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.
-
INFO_MTD_CLIENT
- Memory Technology Driver client.
-
INFO_IO_CLIENT
-
IO client device driver.
-
INFO_CARD_SHARE
- Generate artificial CS_EVENT_CARD_INSERTION and CS_EVENT_REGISTRATION_COMPLETE events.
-
INFO_CARD_EXCL
- Generate artificial CS_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 a CS_EVENT_REGISTRATION_COMPLETE event when Card Services has completed its internal client registration processing and after a sucessful
call to csx_RequestSocketMask(9F).
Also, if either of these bits is set, and if a card of the type that the client can control is currently inserted in the socket (and after a successful call to csx_RequestSocketMask(9F)), the client will receive an artificial CS_EVENT_CARD_INSERTION
event.
-
Event Mask
- This field is bit-mapped and specifies the client's global event mask. Card Services performs event
notification based on this field. See csx_event_handler(9E)
for valid event definitions and for additional information about handling events.
-
event_callback_args
- The event_callback_args_t structure members are:
The client_data field may be used to provide data available to the event handler (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, the client 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 the event_handler field.
-
iblk_cookie
-
idev_cookie
- These fields must be used by the client to set up mutexes that are used in the client's
event callback handler when handling high priority events.
-
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.
|