xref: /xnu-8019.80.24/osfmk/man/clock_sleep.html (revision a325d9c4a84054e40bbe985afedcb50ab80993ea)
1*a325d9c4SApple OSS Distributions<h2>clock_sleep</h2>
2*a325d9c4SApple OSS Distributions<hr>
3*a325d9c4SApple OSS Distributions<p>
4*a325d9c4SApple OSS Distributions<strong>System Trap</strong> - Sleep until a given time.
5*a325d9c4SApple OSS Distributions<h3>SYNOPSIS</h3>
6*a325d9c4SApple OSS Distributions<pre>
7*a325d9c4SApple OSS Distributions<strong>kern_return_t   clock_sleep</strong>
8*a325d9c4SApple OSS Distributions                <strong>(mach_port_t</strong>                         <var>clock_name</var>,
9*a325d9c4SApple OSS Distributions                 <strong>sleep_type_t</strong>                        <var>sleep_type</var>,
10*a325d9c4SApple OSS Distributions                 <strong>tvalspec_t</strong>                          <var>sleep_time</var>,
11*a325d9c4SApple OSS Distributions                 <strong>clock_name</strong>                           <var>wake_time</var><strong>);</strong>
12*a325d9c4SApple OSS Distributions</pre>
13*a325d9c4SApple OSS Distributions<h3>PARAMETERS</h3>
14*a325d9c4SApple OSS Distributions<dl>
15*a325d9c4SApple OSS Distributions<p>
16*a325d9c4SApple OSS Distributions<dt><var>clock_name</var>
17*a325d9c4SApple OSS Distributions<dd>
18*a325d9c4SApple OSS Distributions[in clock-name send right] The name (or control) port for the clock.
19*a325d9c4SApple OSS Distributions<p>
20*a325d9c4SApple OSS Distributions<dt><var>sleep_type</var>
21*a325d9c4SApple OSS Distributions<dd>
22*a325d9c4SApple OSS Distributions[in scalar] How to interpret the sleep_time value:
23*a325d9c4SApple OSS Distributions     <dl>
24*a325d9c4SApple OSS Distributions<p>
25*a325d9c4SApple OSS Distributions<dt><strong>TIME_RELATIVE</strong>
26*a325d9c4SApple OSS Distributions<dd>
27*a325d9c4SApple OSS DistributionsInterpret the sleep time as relative to the current time.
28*a325d9c4SApple OSS Distributions<p>
29*a325d9c4SApple OSS Distributions<dt><strong>TIME_ABSOLUTE</strong>
30*a325d9c4SApple OSS Distributions<dd>
31*a325d9c4SApple OSS DistributionsInterpret the sleep time as an absolute time.
32*a325d9c4SApple OSS Distributions     </dl>
33*a325d9c4SApple OSS Distributions<p>
34*a325d9c4SApple OSS Distributions<dt><var>sleep_time</var>
35*a325d9c4SApple OSS Distributions<dd>
36*a325d9c4SApple OSS Distributions[in structure] The time when the sleep is to terminate.
37*a325d9c4SApple OSS Distributions<p>
38*a325d9c4SApple OSS Distributions<dt><var>wake_time</var>
39*a325d9c4SApple OSS Distributions<dd>
40*a325d9c4SApple OSS Distributions[out structure] The actual (absolute) time at which the sleep terminated.
41*a325d9c4SApple OSS Distributions</dl>
42*a325d9c4SApple OSS Distributions
43*a325d9c4SApple OSS Distributions<h3>DESCRIPTION</h3>
44*a325d9c4SApple OSS Distributions<p>
45*a325d9c4SApple OSS DistributionsThe <strong>clock_sleep</strong> system trap delays the invoking
46*a325d9c4SApple OSS Distributionsthread until a specified time.  This sleep may be aborted by
47*a325d9c4SApple OSS Distributions<strong>thread_abort</strong>.  Not all clocks provide this service
48*a325d9c4SApple OSS Distributionsbut the REALTIME clock must.
49*a325d9c4SApple OSS Distributions<p>
50*a325d9c4SApple OSS DistributionsIf the specified time is in the past, the call returns immediately
51*a325d9c4SApple OSS Distributionswith the wake time being the current time.  If the clock's time is
52*a325d9c4SApple OSS Distributionschanged (<strong>clock_set_time</strong>), the sleep will be
53*a325d9c4SApple OSS Distributionsinterrupted.  The thread will waken at the service time nearest the
54*a325d9c4SApple OSS Distributionsspecified sleep time as governed by the current clock alarm
55*a325d9c4SApple OSS Distributionsresolution.
56*a325d9c4SApple OSS Distributions<h3>RETURN VALUES</h3>
57*a325d9c4SApple OSS Distributions<dl>
58*a325d9c4SApple OSS Distributions<p>
59*a325d9c4SApple OSS Distributions<dt> <strong>KERN_FAILURE</strong>
60*a325d9c4SApple OSS Distributions<dd>
61*a325d9c4SApple OSS DistributionsThe clock does not support a sleep service.
62*a325d9c4SApple OSS Distributions<p>
63*a325d9c4SApple OSS Distributions<dt> <strong>KERN_ABORTED</strong>
64*a325d9c4SApple OSS Distributions<dd>
65*a325d9c4SApple OSS DistributionsThe sleep was interrupted by thread_abort or terminated via use of
66*a325d9c4SApple OSS Distributionsclock_set_time.
67*a325d9c4SApple OSS Distributions</dl>
68*a325d9c4SApple OSS Distributions<h3>RELATED INFORMATION</h3>
69*a325d9c4SApple OSS Distributions<p>
70*a325d9c4SApple OSS DistributionsFunctions:
71*a325d9c4SApple OSS Distributions<a href="host_get_clock_service.html"><strong>host_get_clock_service</strong></a>,
72*a325d9c4SApple OSS Distributions<a href="clock_get_attributes.html"><strong>clock_get_attributes</strong></a>,
73*a325d9c4SApple OSS Distributions<a href="clock_get_time.html"><strong>clock_get_time</strong></a>,
74*a325d9c4SApple OSS Distributions<a href="clock_alarm.html"><strong>clock_alarm</strong></a>,
75*a325d9c4SApple OSS Distributions<a href="clock_set_time.html"><strong>clock_set_time</strong></a>,
76*a325d9c4SApple OSS Distributions<a href="thread_abort.html"><strong>thread_abort</strong></a>,
77*a325d9c4SApple OSS Distributions<p>
78*a325d9c4SApple OSS DistributionsData Structures:
79*a325d9c4SApple OSS Distributionstvalspec.
80