Windows PowerShell command on Get-command ddi_periodic_delete
MyWebUniversity

Manual Pages for UNIX Operating System command usage for man ddi_periodic_delete

Kernel Functions for Drivers ddi_periodic_delete(9F)

NAME

ddi_periodic_delete - cancel nanosecond periodic timeout

requests

SYNOPSIS

#include

#include

void ddi_periodic_delete(ddi_periodic_t req);

INTERFACE LEVEL

Solaris DDI specific (Solaris DDI)

PARAMETERS

req ddi_periodic_t opaque value returned by

ddi_periodic_add(9F)

DESCRIPTION

The ddi_periodic_delete() function cancels the

ddi_periodic_add(9F) request that was previously issued.

As with untimeout(9F), calling ddi_periodic_delete() against

a periodic timeout request which is either running on

another CPU, or has already been canceled causes no prob-

lems. Unlike untimeout(9F), there are no restrictions on the lock which might be held across the call to

ddi_periodic_delete().

CONTEXT

The ddi_periodic_delete() function may be called from user

or kernel context.

EXAMPLES

Example 1 Cancelling a timeout request In the following example, the device driver cancels the

timeout request by calling ddi_periodic_delete() against the

request that was previously issued. /* * Stop the periodic timer */ static void

stop_periodic_timer(struct my_state *statep)

{

ddi_periodic_delete(statep->periodic_id);

delay(1); /* wait for one tick */

SunOS 5.11 Last change: 6 May 2009 1

Kernel Functions for Drivers ddi_periodic_delete(9F)

mutex_destory(&statep->lock);

} static void

start_periodic_timer(struct my_state *statep)

{

hrtime_t interval = CHECK_INTERVAL;

mutex_init(&statep->lock, NULL, MUTEX_DRIVER,

(void *)DDI_IPL_0);

/*

* Register my_callback which is invoked periodically

* in CHECK_INTERVAL in kernel context.

*/

statep->periodic_id = ddi_periodic_add(my_periodic_func,

statep, interval, DDI_IPL_0);

} static void

my_periodic_func(void *arg)

{ /* * This handler is invoked periodically. */

struct my_state *statep = (struct my_state *)arg;

mutex_enter(&statep->lock);

if (load_unbalanced(statep)) {

balance_tasks(statep);

}

mutex_exit(&statep->lock);

}

SEE ALSO

cv_timedwait(9F), ddi_intr_get_pri(9F),

ddi_periodic_add(9F), delay(9F), drv_usectohz(9F),

qtimeout(9F), quntimeout(9F), timeout(9F), untimeout(9F) NOTES There might be a race between a callback invocation and

ddi_periodic_delete(). A device driver should take a respon-

sibility for this avoidance if needed by using the kernel synchronization such as a mutex lock or calling delay(9F) as in the example above.

SunOS 5.11 Last change: 6 May 2009 2




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™