Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dtimeout(D3) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought






       dtimeout(D3)                                            dtimeout(D3)


       NAME
             dtimeout - execute a function on a specified processor after a
             specified length of time

       SYNOPSIS
             #include <sys/types.h>
             #include <sys/ddi.h>
             toid_t dtimeout(void (*fn)(), void *arg, long ticks, pl_t pl,
                               processorid_t processor);

          Arguments
             fn          Function to execute on the specified processor
                         when the time increment expires.

             arg         Argument to the function.

             ticks       Number of clock ticks to wait before the function
                         is called.

             pl          The interrupt priority level at which the function
                         will be called.

             processor   Processor on which the function must execute.

       DESCRIPTION
             dtimeout causes the function specified by fn to be called
             after the time interval specified by ticks, on the processor
             specified by processor, at the interrupt priority level
             specified by pl.  arg will be passed as the only argument to
             function fn.  The dtimeout call returns immediately without
             waiting for the specified function to execute.

          Return Values
             If the function specified by fn is successfully scheduled,
             dtimeout returns a non-zero identifier that can be passed to
             untimeout to cancel the request.  If the function could not be
             scheduled on the specified processor, dtimeout returns a value
             of 0.

       USAGE
             This directed timeout capability provides a form of dynamic
             processor binding for driver code.

             Drivers should be careful to cancel any pending dtimeout
             functions that access data structures before these structures
             are de-initialized or deallocated.


                           Copyright 1994 Novell, Inc.               Page 1













      dtimeout(D3)                                            dtimeout(D3)


         fn Argument
            The function specified by fn must neither sleep, reference
            process context, nor lower the interrupt priority level below
            pl.

            After the time interval has expired, fn only runs if the
            processor is at base level.  Otherwise, fn is deferred until
            some time in the near future.

            If dtimeout is called holding a lock that is contended for by
            fn, the caller must hold the lock at a processor level greater
            than the base processor level.

         ticks Argument
            The length of time before the function is called is not
            guaranteed to be exactly equal to the requested time, but will
            be at least ticks-1 clock ticks in length.

            A ticks argument of 0 has the same effect as a ticks argument
            of 1.  Both will result in an approximate wait of between 0
            and 1 tick (possibly longer).

            The flag TO_PERIODIC can be logically OR'ed into the ticks
            argument to indicate a repeating periodic timer.  When this is
            used, the specified function will be called every ticks clock
            ticks, instead of just once; successive calls will compensate
            for any delay in a previous cycle, so that there is no
            cumulative drift.  The repeating timer can be canceled by
            untimeout(D3), just like any other timeout.

         pl Argument
            pl must specify a priority level greater than or equal to
            pltimeout; thus, plbase cannot be used.  See LOCK_ALLOC(D3)
            for a list of values for pl.

         Level
            Base or Interrupt.

         Synchronization Constraints
            Does not sleep.

            Driver-defined basic locks, read/write locks, and sleep locks
            may be held across calls to this function.





                          Copyright 1994 Novell, Inc.               Page 2













       dtimeout(D3)                                            dtimeout(D3)


       REFERENCES
             itimeout(D3), LOCK_ALLOC(D3), untimeout(D3)

       NOTICES
          Portability
             All processors

          Applicability
             ddi: 3, 5, 5mp, 6, 6mp, 7, 7mp







































                           Copyright 1994 Novell, Inc.               Page 3








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026