Writing Device Drivers
    
Numbers and Symbols
 
 64–bit device drivers ( Index Term Link ) ( Index Term Link )
    
A
 
 add_drv command, description ( Index Term Link )
 
 address spaces, description ( Index Term Link )
 
 aphysio() function, description ( Index Term Link )
 
 aread() entry point, asynchronous data transfers ( Index Term Link )
 
 ASSERT(9F) macro ( Index Term Link )
 
 associating kernel memory with user applications ( Index Term Link )
 
 asynchronous communication drivers, testing ( Index Term Link )
 
 asynchronous data transfer, character drivers ( Index Term Link )
 
 asynchronous data transfers, block drivers ( Index Term Link )
 
 attach() entry point
  description ( Index Term Link )
  network drivers ( Index Term Link )
 
 auto-request sense mode ( Index Term Link )
 
 autoconfiguration
  of block devices ( Index Term Link )
  of character devices ( Index Term Link )
  overview ( Index Term Link )
  routines ( Index Term Link )
  of SCSI HBA drivers ( Index Term Link )
  of SCSI target drivers ( Index Term Link )
 
 autoshutdown threshold ( Index Term Link )
 
 autovectored interrupts ( Index Term Link )
 
 awrite() entry point, asynchronous data transfers ( Index Term Link )
    
B
 
 binary compatibility
  description ( Index Term Link )
  potential problems ( Index Term Link )
 
 binding a driver to a device, description ( Index Term Link )
 
 biodone() function, description ( Index Term Link )
 
 block driver
  autoconfiguration of ( Index Term Link )
  buf structure ( Index Term Link )
  cb_ops structure ( Index Term Link )
  overview ( Index Term Link )
  slice number ( Index Term Link )
 
 block driver entry points ( Index Term Link )
  close() function ( Index Term Link )
  open() function ( Index Term Link )
  strategy() function ( Index Term Link )
 
 buf structure
  changes ( Index Term Link )
  description ( Index Term Link )
 
 buffer allocation, DMA ( Index Term Link )
 
 buffered I/O functions, table ( Index Term Link )
 
 burst sizes, DMA ( Index Term Link )
 
 bus
  architectures ( Index Term Link )
  PCI architectures ( Index Term Link )
  SBus architecture ( Index Term Link )
  SCSI ( Index Term Link )
 
 bus-master DMA ( Index Term Link ) ( Index Term Link )
 
 bus nexus device drivers, description ( Index Term Link )
 
 byte ordering ( Index Term Link )
 
 byte-stream I/O ( Index Term Link )
    
C
 
 cache, description ( Index Term Link )
 
 callback functions
  description ( Index Term Link )
  example ( Index Term Link )
 
 cb_ops structure, description ( Index Term Link )
 
 character device driver
  aphysio() function ( Index Term Link )
  autoconfiguration ( Index Term Link )
  cb_ops structure ( Index Term Link )
  close() entry point ( Index Term Link )
  data transfers ( Index Term Link )
  device polling ( Index Term Link )
  entry points for ( Index Term Link )
  I/O control mechanism ( Index Term Link )
  memory mapping ( Index Term Link )
  minphys() function ( Index Term Link )
  open() entry point ( Index Term Link )
  overview ( Index Term Link )
  physio() function ( Index Term Link )
  strategy() entry point ( Index Term Link )
 
 cloning SCSI HBA driver ( Index Term Link )
 
 close() entry point
  block drivers ( Index Term Link )
  description ( Index Term Link )
 
 cmn_err() function
  debugging ( Index Term Link )
  description ( Index Term Link )
  example ( Index Term Link )
 
 compatible property, description ( Index Term Link )
 
 compiling and linking a driver ( Index Term Link )
 
 condition variable functions
  cv_broadcast() ( Index Term Link )
  cv_destroy() ( Index Term Link )
  cv_init() ( Index Term Link )
  cv_timedwait() ( Index Term Link )
  cv_timedwait_sig() ( Index Term Link )
  cv_wait() ( Index Term Link )
  cv_wait_sig() ( Index Term Link )
  table ( Index Term Link )
 
 condition variables
  and mutex locks ( Index Term Link )
  routines ( Index Term Link )
 
 .conf files
  See hardware configuration files
 
 configuration entry points
  attach() function ( Index Term Link )
  detach() function ( Index Term Link )
  getinfo() function ( Index Term Link )
 
 configuration files, hardware
  See hardware configuration files
 
 context management
  See device context management
 
 context of device driver ( Index Term Link )
 
 cookies
  DMA ( Index Term Link )
  iblock ( Index Term Link )
 
 copying data
  copyin() function ( Index Term Link )
  copyout() function ( Index Term Link )
 
 crash dumps, saving ( Index Term Link )
 
 crash(1M) command ( Index Term Link )
 
 csi_arq_status structure, changes ( Index Term Link )
 
 cv_timedwait() function, changes ( Index Term Link )
 
 cv_timedwait_sig() function, changes ( Index Term Link )
    
D
 
 data alignment for SPARC ( Index Term Link )
 
 data corruption
  detecting ( Index Term Link )
  malignant, definition of ( Index Term Link )
  misleading, definition of ( Index Term Link )
  of control data ( Index Term Link )
  of device management data ( Index Term Link )
  of received data ( Index Term Link )
 
 data sharing
  using devmap() ( Index Term Link )
  using ioctl() ( Index Term Link )
  using mmap() ( Index Term Link )
 
 data storage classes ( Index Term Link )
 
 data structures
  dev_ops structure ( Index Term Link )
  GLD ( Index Term Link ) ( Index Term Link )
  modldrv structure ( Index Term Link )
 
 data structures, displaying with mdb ( Index Term Link )
 
 data transfers, character drivers ( Index Term Link )
 
 DDI-compliant drivers
  byte ordering ( Index Term Link )
  compliance testing ( Index Term Link )
 
 DDI data structures
  buf structure ( Index Term Link )
  ddi_dma_attr structure ( Index Term Link )
  ddi_dma_cookie structure ( Index Term Link )
 
 DDI/DKI
  design considerations ( Index Term Link )
  and disk performance ( Index Term Link )
  overview ( Index Term Link )
  purpose in kernel ( Index Term Link )
 
 ddi_dma_attr structure ( Index Term Link )
 
 DDI function tables
  alternate access mechanisms ( Index Term Link )
  deprecated device access functions ( Index Term Link )
  deprecated DMA functions ( Index Term Link )
  deprecated memory allocation functions ( Index Term Link )
  deprecated power management functions ( Index Term Link )
  deprecated programmed I/O functions ( Index Term Link )
  deprecated property functions ( Index Term Link )
  deprecated time-related functions ( Index Term Link )
  deprecated user application kernel functions ( Index Term Link )
  deprecated user process information functions ( Index Term Link )
  deprecated virtual memory functions ( Index Term Link )
  dev_info_t functions ( Index Term Link )
  dev_t functions ( Index Term Link )
  device access functions ( Index Term Link )
  device ID functions ( Index Term Link )
  DMA functions ( Index Term Link )
  kernel logging functions ( Index Term Link )
  memory allocation functions ( Index Term Link )
  power management functions ( Index Term Link )
  printing functions ( Index Term Link )
  property functions ( Index Term Link )
  software state functions ( Index Term Link )
  system global state functions ( Index Term Link )
  time-related functions ( Index Term Link )
  user application kernel functions ( Index Term Link )
  user process information functions ( Index Term Link )
  user space access functions ( Index Term Link )
  virtual memory functions ( Index Term Link )
 
 DDI functions
  ddi_add_intr() function ( Index Term Link )
  ddi_create_minor_node() function ( Index Term Link )
  ddi_device_copy() function ( Index Term Link )
  ddi_device_zero() function ( Index Term Link )
  ddi_dma_getwin() function ( Index Term Link )
  ddi_dma_mem_alloc() function ( Index Term Link )
  ddi_dma_nextseg() function ( Index Term Link )
  ddi_driver_major() function ( Index Term Link ) ( Index Term Link )
  ddi_enter_critical() ( Index Term Link )
  ddi_get_cred() function ( Index Term Link ) ( Index Term Link )
  ddi_get_driver_private() function ( Index Term Link ) ( Index Term Link )
  ddi_get_instance() function ( Index Term Link )
  ddi_get_lbolt() function ( Index Term Link )
  ddi_get_pid() function ( Index Term Link )
  ddi_get_time() function ( Index Term Link )
  ddi_getX() ( Index Term Link )
  ddi_log_sysevent() function ( Index Term Link ) ( Index Term Link )
  ddi_model_convert_from() function ( Index Term Link )
  ddi_prop_get_int() ( Index Term Link )
  ddi_prop_lookup() function ( Index Term Link )
  ddi_prop_op() ( Index Term Link )
  ddi_putX() ( Index Term Link )
  ddi_regs_map_setup() function ( Index Term Link )
  ddi_removing_power() function ( Index Term Link )
  ddi_rep_getX() ( Index Term Link )
  ddi_rep_putX() ( Index Term Link )
  ddi_set_driver_private() function ( Index Term Link )
  ddi_umem_alloc() ( Index Term Link )
  ddi_umem_alloc() function ( Index Term Link )
  ddi_umem_free() function ( Index Term Link )
  delay() function ( Index Term Link )
  timeout() function ( Index Term Link )
  uiomove() example ( Index Term Link )
  uiomove() function ( Index Term Link )
 
 DDI_INFO_DEVT2DEVINFO ( Index Term Link )
 
 DDI_INFO_DEVT2INSTANCE ( Index Term Link )
 
 DDI_RESUME, detach() function ( Index Term Link )
 
 DDI_SUSPEND, detach() function ( Index Term Link )
 
 debugging ( Index Term Link )
  ASSERT(9F) macro ( Index Term Link )
  booting an alternate kernel ( Index Term Link )
  coding hints ( Index Term Link )
  conditional compilation ( Index Term Link )
  displaying data structures ( Index Term Link )
  /etc/system file ( Index Term Link )
  kadb (kernel debugger) ( Index Term Link )
  kmem_flags ( Index Term Link )
  machine configuration ( Index Term Link )
  macros ( Index Term Link )
  mdb (modular debugger) ( Index Term Link )
  moddebug ( Index Term Link )
  output pager (kadb) ( Index Term Link )
  post-mortem ( Index Term Link )
  preparing for disasters ( Index Term Link )
  setting breakpoints in kadb ( Index Term Link )
  setting conditional breakpoints ( Index Term Link )
  setting up a tip(1) connection ( Index Term Link )
  setting up IA test system ( Index Term Link )
  setting up SPARC test system ( Index Term Link )
  thread macros ( Index Term Link )
  tools ( Index Term Link )
  using the SPARC PROM for device debugging ( Index Term Link )
  writing mdb commands ( Index Term Link )
 
 delay() function, changes ( Index Term Link )
 
 dependency ( Index Term Link )
 
 deprecated functions
  See functions
 
 dest_adcent argument, ddi_device_copy(), changes ( Index Term Link )
 
 detach() entry point, description ( Index Term Link )
 
 detecting kernel memory leaks with mdb ( Index Term Link )
 
 dev_advcnt argument, ddi_device_zero(), changes ( Index Term Link )
 
 dev_datasz argument, ddi_device_copy(), changes ( Index Term Link )
 
 dev_datasz argument, ddi_device_zero(), changes ( Index Term Link )
 
 dev_ops structure, description ( Index Term Link )
 
 devfsadm(1M) command ( Index Term Link )
 
 device access function tables, deprecated functions ( Index Term Link )
 
 device access functions
  block drivers ( Index Term Link )
  character drivers ( Index Term Link )
  table ( Index Term Link )
 
 device configuration, entry points ( Index Term Link )
 
 device context management ( Index Term Link )
  entry points ( Index Term Link )
  model ( Index Term Link )
  operation ( Index Term Link )
 
 device-dependency, power.conf entry ( Index Term Link )
 
 device-dependency-property, power.conf entry ( Index Term Link )
 
 /device directory, displaying the device tree ( Index Term Link )
 
 device driver
  See also loading drivers
  64-bit drivers ( Index Term Link ) ( Index Term Link )
  aliases ( Index Term Link )
  binding to device node ( Index Term Link )
  block driver ( Index Term Link )
  context ( Index Term Link )
  debugging ( Index Term Link )
   coding hints ( Index Term Link )
   setting up a tip(1) connection ( Index Term Link )
   tools ( Index Term Link )
   using the PROM ( Index Term Link )
  definition ( Index Term Link )
  entry points ( Index Term Link )
  error handling ( Index Term Link )
  header files ( Index Term Link ) ( Index Term Link )
  loadable interface ( Index Term Link )
  modifying information with update_drv() ( Index Term Link )
  modifying permissions ( Index Term Link )
  module configuration ( Index Term Link ) ( Index Term Link )
  network driver ( Index Term Link )
  overview ( Index Term Link )
  packaging ( Index Term Link )
  printing messages ( Index Term Link )
  purpose in kernel ( Index Term Link )
  source files ( Index Term Link ) ( Index Term Link )
  standard character driver ( Index Term Link )
  testing ( Index Term Link )
  types of ( Index Term Link )
 
 device ID functions, table ( Index Term Link )
 
 device information
  binding a driver to a device ( Index Term Link )
  Nblocks property ( Index Term Link )
  self-identifying ( Index Term Link )
  tree structure ( Index Term Link ) ( Index Term Link )
 
 device interrupts
  See interrupts and interrupt handling
 
 device macros (kadb) ( Index Term Link )
 
 device memory
  D_DEVMAP flag in cb_ops ( Index Term Link )
  mapping ( Index Term Link ) ( Index Term Link )
 
 device number, description ( Index Term Link )
 
 device polling
  in character drivers ( Index Term Link )
  chpoll() function ( Index Term Link )
  poll() function ( Index Term Link )
 
 device power management
  components ( Index Term Link )
  definition of ( Index Term Link )
  dependency ( Index Term Link )
  entry points ( Index Term Link )
  interfaces ( Index Term Link )
  model ( Index Term Link )
  pm_busy_component() function ( Index Term Link )
  pm_idle_component() function ( Index Term Link )
  power() function ( Index Term Link )
  power levels ( Index Term Link )
  state transitions ( Index Term Link )
 
 device registers, mapping ( Index Term Link )
 
 device state in power management ( Index Term Link )
 
 device tree
  displaying ( Index Term Link )
  navigating, in debugger ( Index Term Link )
  overview ( Index Term Link )
  purpose in kernel ( Index Term Link )
 
 /devices directory, description ( Index Term Link )
 
 devmap_ entry points
  devmap_access() function ( Index Term Link ) ( Index Term Link )
  devmap_contextmgt()function ( Index Term Link )
  devmap_dup() function ( Index Term Link )
  devmap() function ( Index Term Link )
  devmap_map() function ( Index Term Link )
  devmap_unmap() function ( Index Term Link )
 
 devmap_ functions
  devmap_devmem_setup() function ( Index Term Link )
  devmap_load() function ( Index Term Link )
  devmap_umem_setup() function ( Index Term Link )
  devmap_unload() function ( Index Term Link )
 
 disaster recovery ( Index Term Link )
 
 disk
  I/O controls ( Index Term Link )
  performance ( Index Term Link )
 
 disk drivers, testing, testing ( Index Term Link )
 
 displaying data structures with mdb ( Index Term Link )
 
 DKI
  See DDI/DKI
 
 DL_CLDLS, DLPI symbols ( Index Term Link )
 
 DL_ETHER
  Ethernet V2 packet processing ( Index Term Link )
  GLD support ( Index Term Link ) ( Index Term Link )
  ISO 8802-3 (IEEE 802.3) packet processing ( Index Term Link )
  network statistics ( Index Term Link )
 
 DL_FDDI
  GLD support ( Index Term Link ) ( Index Term Link )
  SNAP processing ( Index Term Link )
 
 DL_STYLE1, DLPI symbols ( Index Term Link )
 
 DL_STYLE2, DLPI symbols ( Index Term Link )
 
 DL_TPR
  GLD support ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  SNAP processing ( Index Term Link )
  source routing ( Index Term Link )
 
 DL_VERSION_2, DLPI symbols ( Index Term Link )
 
 DLIOCRAW, ioctl() function ( Index Term Link )
 
 DLPI primitives ( Index Term Link )
  DL_ATTACH_REQ ( Index Term Link ) ( Index Term Link )
  DL_BIND_REQ ( Index Term Link ) ( Index Term Link )
  DL_DETACH_REQ ( Index Term Link ) ( Index Term Link )
  DL_DISABMULTI_REQ ( Index Term Link ) ( Index Term Link )
  DL_ENABMULTI_REQ ( Index Term Link ) ( Index Term Link )
  DL_GET_STATISTICS_ACK ( Index Term Link ) ( Index Term Link )
  DL_GET_STATISTICS_REQ ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  DL_INFO_ACK ( Index Term Link )
  DL_INFO_REQ ( Index Term Link )
  DL_PHYS_ADDR_ACK ( Index Term Link )
  DL_PHYS_ADDR_REQ ( Index Term Link )
  DL_PROMISCOFF_REQ ( Index Term Link ) ( Index Term Link )
  DL_PROMISCON_REQ ( Index Term Link ) ( Index Term Link )
  DL_SET_PHYS_ADDR_REQ ( Index Term Link ) ( Index Term Link )
  DL_UNATTACHED_REQ ( Index Term Link )
  DL_UNBIND_REQ ( Index Term Link ) ( Index Term Link )
  DL_UNITDATA_IND ( Index Term Link )
  DL_UNITDATA_REQ ( Index Term Link )
 
 DLPI providers ( Index Term Link )
 
 DLPI symbols
  DL_CLDLS ( Index Term Link )
  DL_STYLE1 ( Index Term Link )
  DL_STYLE2 ( Index Term Link )
  DL_VERSION_2 ( Index Term Link )
 
 DMA
  buffer allocation ( Index Term Link )
  burst sizes ( Index Term Link )
  callbacks ( Index Term Link )
  cookie ( Index Term Link ) ( Index Term Link )
  freeing handle ( Index Term Link )
  freeing resources ( Index Term Link )
  handle ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  object ( Index Term Link )
  object locking ( Index Term Link )
  operations ( Index Term Link )
  physical addresses ( Index Term Link )
  private buffer allocation ( Index Term Link )
  register structure ( Index Term Link )
  resource allocation ( Index Term Link )
  restrictions ( Index Term Link )
  transfers ( Index Term Link ) ( Index Term Link )
  virtual addresses ( Index Term Link )
  windows ( Index Term Link ) ( Index Term Link )
 
 driver binding name, description ( Index Term Link )
 
 driver.conf files
  See hardware configuration files
 
 driver entry points, attach() function ( Index Term Link )
 
 driver module entry points
  See entry points
 
 drv_getparm() function, changes ( Index Term Link )
 
 drv_usecwait(9F) ( Index Term Link )
 
 dump() entry point, block drivers ( Index Term Link )
 
 DVMA
  SBus slots supporting ( Index Term Link )
  virtual addresses ( Index Term Link )
 
 dynamic memory allocation, description ( Index Term Link )
    
E
 
 entry points
  attach() function ( Index Term Link )
  for block drivers ( Index Term Link ) ( Index Term Link )
  for character drivers ( Index Term Link ) ( Index Term Link )
  definition ( Index Term Link )
  detach() function ( Index Term Link ) ( Index Term Link )
  for device power management ( Index Term Link )
  device context management ( Index Term Link )
  for device configuration ( Index Term Link )
  for network drivers ( Index Term Link )
  ioctl() function ( Index Term Link )
  power() function ( Index Term Link )
  probe() function ( Index Term Link )
  SCSA HBA summary ( Index Term Link )
  system power management ( Index Term Link )
 
 error handling ( Index Term Link )
 
 error messages, printing ( Index Term Link ) ( Index Term Link )
 
 /etc/system file ( Index Term Link )
 
 /etc/power.conf file, device dependencies ( Index Term Link )
 
 Ethernet V2
  See DL_ETHER
 
 events, description ( Index Term Link )
 
 exporting device memory to user applications ( Index Term Link )
 
 external registers ( Index Term Link )
    
F
 
 faults, latent fault, definition of ( Index Term Link )
 
 fibre distributed data interface
  See DL_FDDI
 
 file system I/O ( Index Term Link )
 
 _fini() entry point
  example ( Index Term Link )
  required implementation ( Index Term Link )
 
 first-party DMA ( Index Term Link ) ( Index Term Link )
 
 flags argument, ddi_dma_mem_alloc(), changes ( Index Term Link )
 
 flow of control for power management ( Index Term Link )
 
 function tables
  alternate access mechanisms ( Index Term Link )
  buffered I/O functions ( Index Term Link )
  condition variable functions ( Index Term Link )
  deprecated device access functions ( Index Term Link )
  deprecated DMA functions ( Index Term Link )
  deprecated memory allocation functions ( Index Term Link )
  deprecated power management functions ( Index Term Link )
  deprecated programmed I/O functions ( Index Term Link )
  deprecated property functions ( Index Term Link )
  deprecated SCSI functions ( Index Term Link )
  deprecated time-related functions ( Index Term Link )
  deprecated user application kernel functions ( Index Term Link )
  deprecated user process information functions ( Index Term Link )
  deprecated user space access functions ( Index Term Link )
  deprecated virtual memory functions ( Index Term Link )
  dev_info_t functions ( Index Term Link )
  dev_t functions ( Index Term Link )
  device access functions ( Index Term Link )
  device ID functions ( Index Term Link )
  DMA functions ( Index Term Link )
  interrupt functions ( Index Term Link )
  kernel logging functions ( Index Term Link )
  kernel statistics functions ( Index Term Link )
  kernel thread functions ( Index Term Link )
  loadable module functions ( Index Term Link )
  memory allocation functions ( Index Term Link )
  power management functions ( Index Term Link )
  programmed I/O functions ( Index Term Link )
  property functions ( Index Term Link )
  resource map functions ( Index Term Link )
  SCSI functions ( Index Term Link )
  software state functions ( Index Term Link )
  system global state functions ( Index Term Link )
  time-related functions ( Index Term Link )
  user application kernel functions ( Index Term Link )
  user process event functions ( Index Term Link )
  user process information functions ( Index Term Link )
  user space access functions ( Index Term Link )
  utility functions ( Index Term Link )
  virtual memory functions ( Index Term Link )
 
 functions
  See also condition variable functions
  See also DDI functions
  See also device power management
  See also individual functions
  gld_intr() function ( Index Term Link )
  gld_mac_alloc() function ( Index Term Link )
  gld_mac_free() function ( Index Term Link )
  gld_recv() function ( Index Term Link )
  gld_register() function ( Index Term Link )
  gld_sched() function ( Index Term Link )
  gld_unregister() function ( Index Term Link )
    
G
 
 generic device name, description ( Index Term Link )
 
 getinfo() entry point, description ( Index Term Link )
 
 getinfo() entry point, network driver ( Index Term Link )
 
 getmajor() function, description ( Index Term Link )
 
 getrbuf() function, changes ( Index Term Link )
 
 getting major numbers, example ( Index Term Link )
 
 GLD
  definition ( Index Term Link )
  device types supported by ( Index Term Link )
 
 GLD data structures
  gld_mac_info ( Index Term Link )
  gld_stats ( Index Term Link )
 
 gld(9E) entry point, network driver ( Index Term Link )
 
 GLD entry points
  gldm_get_stats() ( Index Term Link )
  gldm_intr() ( Index Term Link )
  gldm_ioctl() ( Index Term Link )
  gldm_reset() ( Index Term Link )
  gldm_send() ( Index Term Link )
  gldm_set_mac_addr() ( Index Term Link )
  gldm_set_multicast() ( Index Term Link )
  gldm_set_promiscuous() ( Index Term Link )
  gldm_start() ( Index Term Link )
  gldm_stop() ( Index Term Link )
 
 gld(9F) function
  network driver ( Index Term Link ) ( Index Term Link )
 
 GLD ioctl functions ( Index Term Link )
 
 gld_mac_info structure
  description ( Index Term Link )
  GLD arguments ( Index Term Link )
  network driver ( Index Term Link )
  network drivers ( Index Term Link )
  used in gld_intr() function ( Index Term Link )
 
 GLD network statistics ( Index Term Link )
 
 GLD service routines
  gld_intr() function ( Index Term Link )
  gld_mac_alloc() function ( Index Term Link )
  gld_mac_free() function ( Index Term Link )
  gld_recv() function ( Index Term Link )
  gld_register() function ( Index Term Link )
  gld_sched() function ( Index Term Link )
  gld_unregister() function ( Index Term Link )
 
 gld_stats structure, network driver ( Index Term Link )
 
 GLD symbols
  GLD_BADARG ( Index Term Link )
  GLD_FAILURE ( Index Term Link )
  GLD_MAC_PROMISC_MULTI ( Index Term Link )
  GLD_MAC_PROMISC_NONE ( Index Term Link )
  GLD_MAC_PROMISC_PHYS ( Index Term Link )
  GLD_MULTI_DISABLE ( Index Term Link )
  GLD_MULTI_ENABLE ( Index Term Link )
  GLD_NOLINK ( Index Term Link )
  GLD_NORESOURCES ( Index Term Link )
  GLD_NOTSUPPORTED ( Index Term Link )
  GLD_SUCCESS ( Index Term Link )
 
 gldm_get_stats(), description ( Index Term Link )
 
 gldm_private structure, members ( Index Term Link )
 
 graphics devices, device context management of ( Index Term Link )
    
H
 
 handle, DMA ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 hardware configuration files ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  PCI devices ( Index Term Link )
  SBus devices ( Index Term Link )
  SCSI target devices ( Index Term Link )
  where to place ( Index Term Link )
 
 hardware context ( Index Term Link )
 
 hardware state in power management ( Index Term Link )
 
 HBA driver
  See SCSI HBA driver
 
 header files for device drivers ( Index Term Link ) ( Index Term Link )
 
 host bus adapter transport layer ( Index Term Link )
 
 hot-plug
  See hotplugging
 
 hotpluggable drivers
  See hotplugging
 
 hotplugging ( Index Term Link )
  and SCSI HBA driver ( Index Term Link ) ( Index Term Link )
    
I
 
 I/O
  asynchronous data transfers ( Index Term Link ) ( Index Term Link )
  byte stream ( Index Term Link )
  disk controls ( Index Term Link )
  DMA transfers ( Index Term Link )
  file system structure ( Index Term Link )
  miscellaneous control of ( Index Term Link )
  multiplexing ( Index Term Link )
  programmed transfers ( Index Term Link )
  scatter/gather structures ( Index Term Link )
  synchronous data transfers ( Index Term Link ) ( Index Term Link )
 
 IA processor
  byte ordering ( Index Term Link )
  data alignment ( Index Term Link )
  floating point operations ( Index Term Link )
 
 iblock cookie ( Index Term Link )
 
 IEEE 802.3
  See DL_ETHER
 
 IEEE 802.5
  See DL_TPR
 
 ILP32
  use in devmap() ( Index Term Link )
  use in ioctl() ( Index Term Link )
  use in mmap() ( Index Term Link )
 
 ILP64, use in mmap() ( Index Term Link )
 
 _info() entry point
  example ( Index Term Link )
  required implementation ( Index Term Link )
 
 _init() entry point
  example ( Index Term Link )
  required implementation ( Index Term Link )
 
 instance numbers ( Index Term Link )
 
 internal mode registers ( Index Term Link )
 
 internal sequencing logic ( Index Term Link )
 
 interrupt functions, table ( Index Term Link )
 
 interrupt handlers, responsibilities of ( Index Term Link )
 
 interrupt handling
  ddi_add_intr() function ( Index Term Link )
  gld_intr() function ( Index Term Link )
  high-level interrupts ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  overview ( Index Term Link )
  registering an interrupt handler ( Index Term Link )
  software interrupts ( Index Term Link ) ( Index Term Link )
 
 interrupt property, definition ( Index Term Link )
 
 interrupts
  common problems with ( Index Term Link )
  description of ( Index Term Link )
  for network drivers ( Index Term Link )
  interrupt numbers ( Index Term Link )
  priority levels ( Index Term Link )
  specification ( Index Term Link )
  stuck interrupt ( Index Term Link )
  types of ( Index Term Link )
 
 ioctl() function
  character drivers ( Index Term Link )
  commands ( Index Term Link )
  DLIOCRAW ( Index Term Link )
 
 iovec structure, example ( Index Term Link )
 
 ISO 8802–3
  See DL_ETHER
 
 ISO 9314–2
  See DL_TPR
    
K
 
 kadb ( Index Term Link )
  breakpoints ( Index Term Link )
  commands ( Index Term Link )
  conditional breakpoints ( Index Term Link )
  device macros ( Index Term Link )
  display and control commands ( Index Term Link )
  exiting ( Index Term Link )
  macros ( Index Term Link )
  output pager ( Index Term Link )
  register identifiers ( Index Term Link )
  starting ( Index Term Link )
 
 kernel
  debugger
   See kadb
  device tree ( Index Term Link )
  memory
   allocation ( Index Term Link )
   associating with user applications ( Index Term Link )
   detecting leaks with mdb ( Index Term Link )
  module directory ( Index Term Link )
  overview ( Index Term Link )
 
 kernel logging functions, table ( Index Term Link )
 
 kernel statistics functions, table ( Index Term Link )
 
 kernel thread functions, table ( Index Term Link )
 
 kmem_alloc(), description ( Index Term Link )
 
 kmem_flags ( Index Term Link )
 
 kstat(9S) structure, network driver ( Index Term Link )
    
L
 
 latent fault, definition of ( Index Term Link )
 
 leaf devices, description ( Index Term Link )
 
 length argument, ddi_dma_mem_alloc(), changes ( Index Term Link )
 
 libdevinfo(), displaying the device tree ( Index Term Link )
 
 linking a driver ( Index Term Link )
 
 lint command, 64–bit environment ( Index Term Link )
 
 loading drivers
  add_drv command ( Index Term Link )
  compiling a driver ( Index Term Link )
  hardware configuration file ( Index Term Link )
  linking a driver ( Index Term Link )
 
 loading modules ( Index Term Link ) ( Index Term Link )
 
 locking primitives, types of ( Index Term Link )
 
 locks
  mutex ( Index Term Link )
  readers/writer ( Index Term Link )
  scheme for ( Index Term Link )
 
 LP64
  use in devmap() ( Index Term Link )
  use in ioctl() ( Index Term Link )
    
M
 
 M_ERROR ( Index Term Link )
 
 macros ( Index Term Link )
  device macros ( Index Term Link )
  kadb debugger ( Index Term Link )
  thread macros ( Index Term Link )
 
 major numbers
  description ( Index Term Link )
  example ( Index Term Link )
 
 makedevice() function, description ( Index Term Link )
 
 mapsize argument, rmallocmap(), changes ( Index Term Link )
 
 mdb ( Index Term Link )
  commands ( Index Term Link )
 
 mdb
  detecting kernel memory leaks ( Index Term Link )
 
 mdb
  displaying data structures ( Index Term Link )
  getting started ( Index Term Link )
  navigating device tree with ( Index Term Link )
  retrieving soft state information ( Index Term Link )
 
 mdb
  writing commands ( Index Term Link )
 
 memory allocation, description ( Index Term Link )
 
 memory allocation functions, table ( Index Term Link )
 
 memory leaks, detecting with mdb ( Index Term Link )
 
 memory management unit, description ( Index Term Link )
 
 memory mapping
  device context management of ( Index Term Link )
  device memory management ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 memory model
  SPARC ( Index Term Link )
  store buffers ( Index Term Link )
 
 minor device node ( Index Term Link )
  modifying permissions of ( Index Term Link )
 
 minor numbers, description ( Index Term Link )
 
 minphys() function, description ( Index Term Link )
 
 mmap() function, driver notification ( Index Term Link )
 
 moddebug kernel variable ( Index Term Link )
 
 moddebug kernel variable ( Index Term Link )
 
 modinfo(1M) command ( Index Term Link )
 
 modldrv structure, description ( Index Term Link )
 
 modlinkage structure, description ( Index Term Link )
 
 modload(1M) command ( Index Term Link )
 
 modular debugger
  See mdb
 
 module directory ( Index Term Link )
 
 module functions, table of loadable module functions ( Index Term Link )
 
 module_info structure, network drivers ( Index Term Link )
 
 modunload command, description ( Index Term Link )
 
 modunload(1M) command ( Index Term Link )
 
 mount() function, block drivers ( Index Term Link )
 
 multiplexing I/O ( Index Term Link )
 
 multiprocessor considerations ( Index Term Link )
 
 multithreading
  and condition variables ( Index Term Link )
  D_MP flag in cb_ops structure ( Index Term Link )
  execution environment ( Index Term Link )
  and locking primitives ( Index Term Link )
  thread synchronization ( Index Term Link )
 
 mutex
  functions ( Index Term Link )
  locks ( Index Term Link )
  related panics ( Index Term Link )
  routines ( Index Term Link )
 
 mutex_owned() function, example ( Index Term Link )
 
 mutual-exclusion locks
  See mutex
    
N
 
 name property, description ( Index Term Link )
 
 name-value pairs ( Index Term Link )
 
 Nblocks property
  required definition ( Index Term Link )
  use in block device drivers ( Index Term Link )
 
 nblocks property, use in block device drivers ( Index Term Link )
 
 nbytes argument, uiomove(), changes ( Index Term Link )
 
 network drivers
  testing ( Index Term Link )
  using GLD ( Index Term Link )
 
 network statistics
  DL_ETHER ( Index Term Link )
  gld_stats ( Index Term Link )
  gldm_get_stats() ( Index Term Link )
  kstat ( Index Term Link )
 
 nexus
  See bus nexus device drivers
 
 no-involuntary-power-cycles property ( Index Term Link )
 
 normal interrupts ( Index Term Link )
 
 nvlist_alloc structure, description ( Index Term Link )
    
O
 
 object locking ( Index Term Link )
 
 open() entry point
  block drivers ( Index Term Link )
  character drivers ( Index Term Link )
  network drivers ( Index Term Link )
 
 output pager (kadb debugger) ( Index Term Link )
    
P
 
 packaging ( Index Term Link )
 
 packet processing
  Ethernet V2 ( Index Term Link )
  ISO 8802-3 (IEEE 802.3) ( Index Term Link )
 
 panic ( Index Term Link )
 
 partial store ordering ( Index Term Link )
 
 PCI bus ( Index Term Link )
  configuration address space ( Index Term Link )
  configuration base address registers ( Index Term Link )
  hardware configuration files ( Index Term Link )
  I/O address space ( Index Term Link )
  memory address space ( Index Term Link )
 
 PCI configuration function tables, deprecated programmed I/O functions ( Index Term Link )
 
 PCI configuration functions, table of alternate access mechanisms ( Index Term Link )
 
 PCI devices ( Index Term Link )
 
 physical DMA ( Index Term Link )
 
 physio() function, description ( Index Term Link )
 
 post-mortem degugging ( Index Term Link )
 
 power.conf file
  See /etc/power.conf file
 
 power cycle ( Index Term Link )
 
 power management
  See also device power management
  See also system power management
  flow of control ( Index Term Link )
 
 power management function tables, deprecated functions ( Index Term Link )
 
 power management functions, table ( Index Term Link )
 
 print() entry point, block drivers ( Index Term Link )
 
 printing functions, table ( Index Term Link )
 
 printing messages ( Index Term Link )
 
 probe() entry point
  description ( Index Term Link )
  SCSI target drivers ( Index Term Link )
 
 processor issues
  IA ( Index Term Link )
  SPARC ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
 
 programmed I/O ( Index Term Link )
  use of DDI routines ( Index Term Link )
 
 programmed I/O functions, table ( Index Term Link )
 
 PROM commands ( Index Term Link )
 
 prop_op() entry point, description ( Index Term Link )
 
 properties
  32– and 64–bit ( Index Term Link )
  class property ( Index Term Link )
  ddi_prop_op ( Index Term Link )
  device node name property ( Index Term Link )
  Nblocks property ( Index Term Link )
  nblocks property ( Index Term Link )
  no-involuntary-power-cycles ( Index Term Link )
  overview ( Index Term Link ) ( Index Term Link )
  pm-hardware-state property ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  prtconf ( Index Term Link )
  reg property ( Index Term Link )
  removable-media ( Index Term Link )
  reporting device properties ( Index Term Link )
  SCSI HBA properties ( Index Term Link )
  SCSI target driver ( Index Term Link )
  Size property ( Index Term Link )
  size property ( Index Term Link )
  types of ( Index Term Link )
 
 prtconf command
  display of properties ( Index Term Link )
  displaying the device tree ( Index Term Link )
 
 pseudo device driver ( Index Term Link )
 
 putnext ( Index Term Link )
    
Q
 
 queuing ( Index Term Link )
    
R
 
 read() entry point, synchronous data transfers ( Index Term Link )
 
 readers/writer locks ( Index Term Link )
 
 real_length argument, ddi_dma_mem_alloc(), changes ( Index Term Link )
 
 reg property ( Index Term Link )
 
 register structure, DMA ( Index Term Link )
 
 removable-media ( Index Term Link )
 
 resource map functions, table ( Index Term Link )
 
 rmallocmap() function, changes ( Index Term Link )
 
 rmallocmap_wait() function, changes ( Index Term Link )
    
S
 
 S_IFCHR ( Index Term Link )
 
 SAP, definition of ( Index Term Link )
 
 saving crash dumps ( Index Term Link )
 
 SBus
  address bits ( Index Term Link )
  geographical addressing ( Index Term Link )
  hardware configuration files ( Index Term Link )
  physical address space ( Index Term Link )
  slots supporting DVMA ( Index Term Link )
 
 scatter-gather
  DMA engines ( Index Term Link )
  I/O ( Index Term Link )
 
 SCSA ( Index Term Link ) ( Index Term Link )
  global data definitions ( Index Term Link )
  HBA transport layer ( Index Term Link )
  interfaces ( Index Term Link )
 
 SCSI
  architecture ( Index Term Link )
  bus ( Index Term Link )
 
 scsi_ functions
  scsi_alloc_consistent_buf()function ( Index Term Link )
  scsi_destroy_pkt() function ( Index Term Link )
  scsi_dmafree() function ( Index Term Link )
  scsi_free_consistent_buf() function ( Index Term Link )
  scsi_ifgetcap() function ( Index Term Link )
  scsi_ifsetcap() function ( Index Term Link )
  scsi_init_pkt() function ( Index Term Link )
  scsi_probe() ( Index Term Link )
  scsi_setup_cdb() function ( Index Term Link )
  scsi_sync_pkt() function ( Index Term Link ) ( Index Term Link )
  scsi_transport() function ( Index Term Link )
  scsi_unprobe() ( Index Term Link )
  summary ( Index Term Link )
 
 scsi_ structures
  scsi_address structure ( Index Term Link )
  scsi_device structure ( Index Term Link )
  scsi_hba_tran structure ( Index Term Link )
  scsi_pkt structure ( Index Term Link )
 
 scsi_alloc_consistent_buf() function, changes ( Index Term Link )
 
 scsi_device structure ( Index Term Link )
 
 SCSI functions
  deprecated functions ( Index Term Link )
  table ( Index Term Link )
 
 scsi_hba_ functions
  scsi_hba_attach_setup() function ( Index Term Link )
  scsi_hba_lookup_capstr() function ( Index Term Link )
  scsi_hba_pkt_alloc() ( Index Term Link )
 
 scsi_hba_ functions, scsi_hba_pkt_free() function ( Index Term Link )
 
 scsi_hba_ functions
  scsi_hba_probe() ( Index Term Link )
  summary list ( Index Term Link )
 
 SCSI HBA driver
  abort and reset management ( Index Term Link )
  autoconfiguration ( Index Term Link )
  capability management ( Index Term Link )
  cloning ( Index Term Link )
  command state structure ( Index Term Link )
  command timeout ( Index Term Link )
  command transport ( Index Term Link )
  configuration properties ( Index Term Link )
  data structures ( Index Term Link )
  DMA resources ( Index Term Link )
  driver instance initialization ( Index Term Link )
  entry points summary ( Index Term Link )
  header files ( Index Term Link )
  and hotplugging ( Index Term Link ) ( Index Term Link )
  initializing a transport structure ( Index Term Link )
  installation ( Index Term Link )
  interrupt handling ( Index Term Link )
  module initialization ( Index Term Link )
  overview ( Index Term Link ) ( Index Term Link )
  properties ( Index Term Link )
  resource allocation ( Index Term Link )
 
 SCSI HBA driver entry points
  by category ( Index Term Link )
  tran_abort() function ( Index Term Link )
  tran_dmafree() ( Index Term Link )
  tran_getcap() function ( Index Term Link )
  tran_init_pkt() ( Index Term Link )
  tran_reset() function ( Index Term Link )
  tran_reset_notify() function ( Index Term Link )
  tran_setcap() function ( Index Term Link )
  tran_start() function ( Index Term Link )
  tran_sync_pkt() function ( Index Term Link )
  tran_tgt_free() ( Index Term Link )
  tran_tgt_init() ( Index Term Link )
  tran_tgt_probe() ( Index Term Link )
 
 scsi_hba_tran structures, scsi_pkt structure ( Index Term Link )
 
 scsi_pkt structure ( Index Term Link )
  changes ( Index Term Link )
 
 SCSI target driver
  auto-request sense mode ( Index Term Link )
  autoconfiguration of ( Index Term Link )
  building a command ( Index Term Link )
  callback routine ( Index Term Link )
  data structures ( Index Term Link )
  initializing a command descriptor block ( Index Term Link )
  overview ( Index Term Link )
  properties ( Index Term Link ) ( Index Term Link ) ( Index Term Link )
  resource allocation ( Index Term Link )
  reusing packets ( Index Term Link )
  SCSI routines ( Index Term Link )
  transporting a command ( Index Term Link )
 
 segmap() entry point
  description ( Index Term Link )
  driver notification ( Index Term Link )
 
 self-identifying devices ( Index Term Link )
 
 serviceability
  add new device ( Index Term Link )
  detect faulty device ( Index Term Link )
  perform periodic ``heath checks'' ( Index Term Link )
  remove faulty device ( Index Term Link )
  report faults ( Index Term Link )
 
 Size property ( Index Term Link )
 
 size property ( Index Term Link )
 
 slice number for block devices ( Index Term Link )
 
 SNAP
  definition of ( Index Term Link )
  DL_FDDI ( Index Term Link )
  DL_TPR ( Index Term Link )
 
 snoop command, network drivers ( Index Term Link )
 
 soft interrupts ( Index Term Link )
 
 soft state information, retrieving in mdb ( Index Term Link )
 
 Solaris kernel
  See kernel
 
 source compatibility, description ( Index Term Link )
 
 source files for device drivers ( Index Term Link ) ( Index Term Link )
 
 SPARC processor
  byte ordering ( Index Term Link )
  data alignment ( Index Term Link )
  floating point operations ( Index Term Link )
  multiply and divide instructions ( Index Term Link )
  register windows ( Index Term Link )
  structure member alignment ( Index Term Link )
 
 special files, description ( Index Term Link )
 
 src_advcnt argument, ddi_device_copy(), changes ( Index Term Link )
 
 state structure ( Index Term Link ) ( Index Term Link )
 
 storage classes, driver data ( Index Term Link )
 
 store buffers ( Index Term Link )
 
 strategy() entry point
  block drivers ( Index Term Link )
  character drivers ( Index Term Link )
 
 streams ( Index Term Link )
 
 STREAMS
  cb_ops structure ( Index Term Link )
  drivers ( Index Term Link )
  support for network driver ( Index Term Link )
 
 Style 1 DLPI provider ( Index Term Link )
 
 Style 2 DLPI provider ( Index Term Link )
 
 synchronous data transfer, description ( Index Term Link )
 
 synchronous data transfers ( Index Term Link )
 
 system call, description ( Index Term Link )
 
 system global state functions, table ( Index Term Link )
 
 system power management
  description ( Index Term Link )
  entry points ( Index Term Link )
  model ( Index Term Link )
  policy ( Index Term Link )
  saving hardware state ( Index Term Link )
    
T
 
 tagged queuing ( Index Term Link )
 
 tape drivers, testing ( Index Term Link )
 
 testing
  asynchronous communication drivers ( Index Term Link )
  configurations ( Index Term Link )
  DDI compliance ( Index Term Link )
  device drivers ( Index Term Link )
  disk drivers ( Index Term Link )
  functionality ( Index Term Link )
  installation and packaging ( Index Term Link )
  network drivers ( Index Term Link )
  tape drivers ( Index Term Link )
 
 third-party DMA ( Index Term Link ) ( Index Term Link )
 
 thread macros (kadb) ( Index Term Link )
 
 thread synchronization
  condition variables ( Index Term Link )
  mutex_init ( Index Term Link )
  mutex locks ( Index Term Link )
  per instance mutex ( Index Term Link )
  readers/writer locks ( Index Term Link )
 
 threads, preemption of ( Index Term Link )
 
 ticks argument, delay(), changes ( Index Term Link )
 
 ticks argument, timeout(), changes ( Index Term Link )
 
 time-related function tables, deprecated functions ( Index Term Link )
 
 time-related functions, table ( Index Term Link )
 
 timeout argument, cv_timedwait(), changes ( Index Term Link )
 
 timeout() function, changes ( Index Term Link )
 
 tip(1) connection ( Index Term Link )
 
 total store ordering ( Index Term Link )
 
 tran_abort() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_destroy_pkt() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_dmafree() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_getcap() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_init_pkt() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_reset() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_reset_notify() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_setcap() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_start() entry point, SCSI HBA drivers ( Index Term Link )
 
 tran_sync_pkt() entry point, SCSI HBA drivers ( Index Term Link )
    
U
 
 uiomove() function
  changes ( Index Term Link )
  example ( Index Term Link )
 
 unloading drivers ( Index Term Link )
 
 untagged queuing ( Index Term Link )
 
 update_drv() function, description ( Index Term Link )
 
 user application kernel function tables, deprecated functions ( Index Term Link )
 
 user application kernel functions, table ( Index Term Link )
 
 user process event functions, table ( Index Term Link )
 
 user process information function tables, deprecated functions ( Index Term Link )
 
 user process information functions, table ( Index Term Link )
 
 user space access functions
  table of deprecated functions ( Index Term Link )
  table of functions ( Index Term Link )
 
 utility functions, table ( Index Term Link )
    
V
 
 virtual addresses, description ( Index Term Link )
 
 virtual DMA ( Index Term Link )
 
 virtual memory
  address spaces ( Index Term Link )
  memory management unit (MMU) ( Index Term Link )
 
 virtual memory function tables, deprecated functions ( Index Term Link )
 
 virtual memory functions, table ( Index Term Link )
 
 volatile keyword ( Index Term Link ) ( Index Term Link )
    
W
 
 windows, DMA ( Index Term Link )
 
 wput ( Index Term Link )
 
 write() function
  synchronous data transfers ( Index Term Link )
  user address example ( Index Term Link )