drv_usecwait(9F)




NAME

     drv_usecwait - busy-wait for specified interval


SYNOPSIS

     #include <sys/types.h>
     #include <sys/ddi.h>

     void drv_usecwait(clock_t microsecs);


INTERFACE LEVEL

     Architecture independent level 1 (DDI/DKI).


PARAMETERS

     microsecs
           The number of microseconds to busy-wait.


DESCRIPTION

     drv_usecwait() gives drivers a means of busy-waiting  for  a
     specified  microsecond count. The amount of time spent busy-
     waiting may be greater than the microsecond count  but  will
     minimally be the number of microseconds specified.

     delay(9F) can be used by a driver to delay for  a  specified
     number  of  system ticks, but it has two limitations. First,
     the granularity of the wait time is limited  to   one  clock
     tick,  which  may be more time than is needed for the delay.
     Second,  delay(9F) may only be invoked from user context and
     hence cannot be used at interrupt time or system initializa-
     tion.

     Often, drivers need to delay for only  a  few  microseconds,
     waiting  for a write to a device register to be picked up by
     the device. In this case, even in user  context,   delay(9F)
     produces too long a wait period.


CONTEXT

     drv_usecwait() can be called from user or interrupt context.


SEE ALSO

     delay(9F), timeout(9F), untimeout(9F)

     Writing Device Drivers


NOTES

     The driver wastes processor time by making this  call  since
     drv_usecwait()  does  not  block  but simply busy-waits. The
     driver should only make calls to  drv_usecwait() as  needed,
     and  only  for as much time as needed.   drv_usecwait() does
     not mask out interrupts.


Man(1) output converted with man2html