ddi_fm_dma_err_get man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]


       ddi_fm_acc_err_get,  ddi_fm_dma_err_get	-  get the error status for an
       access or DMA handle

       #include <sys/ndifma.h>

       void ddi_fm_acc_err_get(ddi_acc_handle_t acc_handle,
	    ddi_fm_error_t *error_status, int version);

       void ddi_fm_dma_err_get(ddi_dma_handle_t dma_handle,
	    ddi_fm_error_t *error_status, int version);

       Solaris DDI specific (Solaris DDI)

		       Data access handle obtained from	 a  previous  call  to
		       ddi_regs_map_setup(9F),	ddi_dma_mem_alloc(9F), or to a
		       similar function.

		       DMA  handle  obtained   from   a	  previous   call   to
		       ddi_dma_mem_alloc(9F) or one of its derivatives.

		       Pointer to where the error status for the access or DMA
		       handle should be returned.

		       Version number of  ddi_fm_error_t.  The	driver	should
		       always set this to DDI_FME_VERSION.

       The  ddi_fm_dma_err_get() and ddi_fm_acc_err_get() functions return the
       error status for a DMA or access handle respectively. If	 a  fault  has
       occurred	 that  affects the resource mapped by the supplied handle, the
       supplied error_status structure is updated to reflect error information
       captured	 during	 error handling by a bus or other device driver in the
       I/O data path.

       If an error is indicated for an access  handle,	the  driver  might  no
       longer  be  able	 to  access  the mapped registers or memory using pro‐
       grammed I/O through the handle. Typically, this might occur  after  the
       device  has  failed  to respond to an I/O access - in the case of a bus
       error, for instance, or a timeout. The effect of programmed I/O	access
       made at the time of a fault is undefined. Read access via ddi_get8(9F),
       for  example,  can  return  random  values,  while  write  access   via
       ddi_put8(9F)  might  or	might not have an effect. It is possible, how‐
       ever, that the error might be transient. In that case, the  driver  can
       attempt	to  recover  by	 calling ddi_fm_acc_err_clear(), resetting the
       device to return it to a known state,  then  retrying  any  potentially
       failed transactions.

       If an error is indicated for a DMA handle, it implies that an error has
       been detected that has or will  affect  DMA  transactions  between  the
       device  and  the	 memory	 currently bound to the handle - or the memory
       most recently bound, if	the  handle  is	 currently  unbound.  Possible
       causes  include	the  failure of a component in the DMA data path or an
       attempt by the device to make an invalid DMA access.  The  contents  of
       any  memory  currently or previously bound to the handle should be con‐
       sidered indeterminate. The driver might be able to continue by  freeing
       memory  that  is	 bound to the handle back to the system, resetting the
       device to return it to a known state,  then  retrying  any  potentially
       failed transactions.

       If  the	driver	is  unable  to	recover, the operating state should be
       changed by a call to ddi_fm_service_impact()  that  specifies  DDI_SER‐
       VICE_LOST  for  the impacted device instance. If the recovery and retry
       succeed, a call should still be	made  to  ddi_fm_service_impact()  but
       DDI_SERVICE_UNAFFECTED should be specified.

       The  ddi_fm_acc_err_get()  and  ddi_fm_dma_err_get()  functions	can be
       called from user, kernel, or high-level interrupt context.

       See attributes(5) for descriptions of the following attributes:

       │Interface Stability │ Committed	      │

       attributes(5),	  ddi_dma_mem_alloc(9F),     ddi_fm_acc_err_clear(9F),
       ddi_fm_service_impact(9F),	   ddi_get8(9F),	 ddi_put8(9F),
       ddi_regs_map_setup(9F), ddi_fm_error(9S),

       Writing Device Drivers

				 May 13, 2007		DDI_FM_ACC_ERR_GET(9F)

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net