ksettickd Kernel Service

Purpose

Sets the current status of the systemwide timer-adjustment values.

Syntax

#include <sys/types.h>
  
int ksettickd (timed, tickd, time_adjusted)
int *timed;
int *tickd;
int *time_adjusted;

Parameters

Item Description
timed Specifies the number of microseconds by which the systemwide timer is to be adjusted unless set to a null pointer.
tickd Specifies the adjustment rate of the systemwide timer unless set to a null pointer. This rate determines the number of microseconds that the systemwide timer is adjusted with each timer tick. Adjustment continues until the time has been corrected by the amount specified by the timed parameter.
time_adjusted Sets the kernel-maintained time adjusted flag to True or False. If the time_adjusted parameter is a null pointer, calling the ksettickd kernel service always sets the kernel's time_adjusted parameter to False.

Description

The ksettickd kernel service provides kernel extensions with the capability to update the time_adjusted parameter, and set or change the systemwide time-of-day timer adjustment amount and rate. The timer-adjustment values indicated by the timed and tickd parameters are the same values used by the adjtime subroutine. A call to the settimer or adjtime subroutine for the systemwide time-of-day timer sets the time_adjusted parameter to True, as read by the kgettickd kernel service.

This kernel service is typically used only by kernel extensions providing time synchronization functions such as coordinated network time where the adjtime subroutine is insufficient.

Note: The ksettickd service provides no serialization with respect to the adjtime and settimer subroutines, the ksettimer kernel service, or the timer interrupt handler, all of which also use and update these values. The caller of this kernel service must provide the necessary serialization to ensure appropriate operation.

Execution Environment

The ksettickd kernel service can be called from either the process or interrupt environment.

Return Value

The ksettickd kernel service always returns a value of 0.