Skip Navigation Links | |
Exit Print View | |
man pages section 9: DDI and DKI Kernel Functions Oracle Solaris 11.1 Information Library |
csx_AccessConfigurationRegister(9F)
csx_Parse_CISTPL_BYTEORDER(9F)
csx_Parse_CISTPL_CFTABLE_ENTRY(9F)
csx_Parse_CISTPL_DEVICEGEO(9F)
csx_Parse_CISTPL_DEVICEGEO_A(9F)
csx_Parse_CISTPL_DEVICE_OA(9F)
csx_Parse_CISTPL_DEVICE_OC(9F)
csx_Parse_CISTPL_LINKTARGET(9F)
csx_Parse_CISTPL_LONGLINK_A(9F)
csx_Parse_CISTPL_LONGLINK_C(9F)
csx_Parse_CISTPL_LONGLINK_MFC(9F)
ddi_get_soft_iblock_cookie(9F)
ddi_intr_get_supported_types(9F)
ddi_prop_lookup_byte_array(9F)
ddi_prop_lookup_int64_array(9F)
ddi_prop_lookup_string_array(9F)
ddi_prop_update_byte_array(9F)
ddi_prop_update_int64_array(9F)
ddi_prop_update_string_array(9F)
ldi_prop_lookup_byte_array(9F)
ldi_prop_lookup_int64_array(9F)
ldi_prop_lookup_string_array(9F)
mac_prop_info_set_default_link_flowctrl(9F)
mac_prop_info_set_default_str(9F)
mac_prop_info_set_default_uint8(9F)
mac_prop_info_set_range_uint32(9F)
net_event_notify_unregister(9F)
net_instance_notify_register(9F)
net_instance_notify_unregister(9F)
net_instance_protocol_unregister(9F)
net_protocol_notify_register(9F)
nvlist_lookup_boolean_array(9F)
nvlist_lookup_boolean_value(9F)
nvlist_lookup_nvlist_array(9F)
nvlist_lookup_string_array(9F)
nvlist_lookup_uint16_array(9F)
nvlist_lookup_uint32_array(9F)
nvlist_lookup_uint64_array(9F)
nvpair_value_boolean_array(9F)
pci_plist_lookup_int16_array(9F)
pci_plist_lookup_int32_array(9F)
pci_plist_lookup_int64_array(9F)
pci_plist_lookup_int8_array(9F)
pci_plist_lookup_string_array(9F)
pci_plist_lookup_uint16_array(9F)
pci_plist_lookup_uint32_array(9F)
pci_plist_lookup_uint64_array(9F)
pci_plist_lookup_uint8_array(9F)
scsi_get_device_type_scsi_options(9F)
scsi_get_device_type_string(9F)
scsi_sense_cmdspecific_uint64(9F)
usb_get_current_frame_number(9F)
usb_get_max_pkts_per_isoc_request(9F)
usb_pipe_get_max_bulk_transfer_size(9F)
usb_pipe_stop_intr_polling(9F)
usb_pipe_stop_isoc_polling(9F)
- obtain DDI information
#include <sys/pccard.h> int32_t csx_CS_DDI_Info(cs_ddi_info_t *cdi);
Solaris DDI Specific (Solaris DDI)
Pointer to a cs_ddi_info_t structure.
This function is a Solaris-specific extension that is used by clients that need to provide the xx_getinfo driver entry point (see getinfo(9E)). It provides a method for clients to obtain DDI information based on their socket number and client driver name.
The structure members of cs_ddi_info_t are:
uint32_t Socket; /* socket number */ char* driver_name; /* unique driver name */ dev_info_t *dip; /* dip */ int32_t instance; /* instance */
The fields are defined as follows:
This field must be set to the physical socket number that the client is interested in getting information about.
This field must be set to a string containing the name of the client driver to get information about.
If csx_CS_DDI_Info() is used in a client's xx_getinfo function, then the client will typically extract the Socket value from the *arg argument and it must set the driver_name field to the same string used with csx_RegisterClient(9F).
If the driver_name is found on the Socket, the csx_CS_DDI_Info() function returns both the dev_info pointer and the instance fields for the requested driver instance.
Successful operation.
Client not found on Socket.
No PCMCIA hardware installed.
This function may be called from user or kernel context.
Example 1 : Using csx_CS_DDI_Info
The following example shows how a client might call the csx_CS_DDI_Info() in the client's xx_getinfo function to return the dip or the instance number:
static int pcepp_getinfo(dev_info_t *dip, ddi_info_cmd_t cmd, void *arg, void **result) { int error = DDI_SUCCESS; pcepp_state_t *pps; cs_ddi_info_t cs_ddi_info; switch (cmd) { case DDI_INFO_DEVT2DEVINFO: cs_ddi_info.Socket = getminor((dev_t)arg) & 0x3f; cs_ddi_info.driver_name = pcepp_name; if (csx_CS_DDI_Info(&cs_ddi_info) != CS_SUCCESS) return (DDI_FAILURE); if (!(pps = ddi_get_soft_state(pcepp_soft_state_p, cs_ddi_info.instance))) { *result = NULL; } else { *result = pps->dip; } break; case DDI_INFO_DEVT2INSTANCE: cs_ddi_info.Socket = getminor((dev_t)arg) & 0x3f; cs_ddi_info.driver_name = pcepp_name; if (csx_CS_DDI_Info(&cs_ddi_info) != CS_SUCCESS) return (DDI_FAILURE); *result = (void *)cs_ddi_info.instance; break; default: error = DDI_FAILURE; break; } return (error); }
getinfo(9E), csx_RegisterClient(9F), ddi_get_instance(9F)
PC Card 95 Standard, PCMCIA/JEIDA