Writing Device Drivers
    
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 )