1<h2>mapped_tvalspec</h2>
2<hr>
3<p>
4<strong>Structure</strong> - Specifies the format the kernel uses to maintain a mapped clock's time.
5<h3>SYNOPSIS</h3>
6<pre>
7<strong>struct mapped_tvalspec</strong>
8<strong>{</strong>
9       <strong>tvalspec_t</strong>          <var>mtv_time</var><strong>;</strong>
10       <strong>unsigned int</strong>        <var>mtv_csec</var><strong>;</strong>
11<strong>};</strong>
12
13<strong>typedef struct mapped_tvalspec mapped_tvalspec_t;</strong>
14</pre>
15<h3>FIELDS</h3>
16<dl>
17<dt> <var>mtv_time</var>
18<dd>
19Clock time.
20<p>
21<dt> <var>mtv_csec</var>
22<dd>
23A field used to synchronize with the kernel's setting of the time.
24</dl>
25<h3>DESCRIPTION</h3>
26<p>
27The <strong>mapped_tvalspec</strong> structure defines the format of the 
28current-time structure 
29maintained by the kernel and visible through a mapped clock 
30(<strong>clock_map_time</strong>).  The data in this structure is updated at the 
31clock's current resolution and contains the same <strong>tvalspec</strong> value that 
32would be returned by <strong>clock_get_time</strong>.
33<h3>NOTES</h3>
34<p>
35Because of the race between the referencing of the multiple fields
36in the clock 
37value and the kernel's setting them, they should be referenced as follows:
38<p>
39<pre>
40   <strong>tvalspec_t* ts;</strong>
41   <strong>do</strong>
42   <strong>{</strong>
43              <strong>ts-> tv_sec = mtime -> mtv_time.tv_sec;</strong>
44              <strong>ts  -> tv_nsec = mtime -> mtv_time.tv_nsec;</strong>
45   <strong>} while (ts  -> tv_sec != mtime -> mtv_csec);</strong>
46</pre>
47<h3>RELATED INFORMATION</h3>
48<p>
49Functions:
50<a href="clock_map_time.html"><strong>clock_map_time</strong></a>,
51<a href="clock_get_time.html"><strong>clock_get_time</strong></a>.
52<p>
53Data Structures:
54<a href="tvalspec.html"><strong>tvalspec</strong></a>.
55