linux/kernel/time/timecompare.c
<<
ptio.14/spa> .14/form .14a ptio.1 href="../linux+v3e"v2/kernel/time/timecompare.c">ptio.14img src="../.static/gfx/right.png" alt=">>">pt4/spa> pt4spa> class="lxr_search">ptio="+search" method="post" onsubmit="return do_search(this);">ptio.14input typ> hidden" nam> navtarget" tion> ">ptio.14input typ> text" nam> search" id search">ptio.14butt/optyp> submit">Search pt4spa> class="lxr_prefs" .14a href="+prefs?return=kernel/time/timecompare.c"ptio.1 onclick="return ajax_prefs();">ptio.1Prefs .14/a>pt4/spa> io.1 14/div io.1 14form ac >="ajax+*" method="post" onsubmit="return false;">pt4input typ> hidden" nam> ajax_lookup" id ajax_lookup" tion> ">pio.1 14/form pio.1 14div class="headingbott/m">
4div id file_contents"
 L1">1 114/a>4spa> class="comment">/*4/spa>
 
 L2">1 124/a>4spa> class="comment"> * Copyright (C) 2009 Intel Corpora	  >.4/spa>
 
 L3">1 134/a>4spa> class="comment"> * Author: Patrick Ohly <patrick.ohly@intel.com>4/spa>
 
 L4">1 144/a>4spa> class="comment"> *4/spa>
 
 L5">1 154/a>4spa> class="comment"> * This program is free software; you ca> redistribute it and/or modify4/spa>
 
 L6">1 164/a>4spa> class="comment"> * it under the terms of the GNU General Public License as published by4/spa>
 
 L7">1 174/a>4spa> class="comment"> * the Free Software Founda	  >; either vers
 
 L8">1 184/a>4spa> class="comment"> * (at your "
	  >) any later vers
 
 L9">1 194/a>4spa> class="comment"> *4/spa>
 
 L10">1 8.11a>4spa> class="comment"> * This program is distributed in the hope that it will be useful,4/spa>
 
 L11">1 114/a>4spa> class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of4/spa>
 
 L12">1 124/a>4spa> class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the4/spa>
 
 L13">1 134/a>4spa> class="comment"> * GNU General Public License for more details.4/spa>
 
 L14">1 144/a>4spa> class="comment"> *4/spa>
 
 L15">1 154/a>4spa> class="comment"> * You should have received a copy of the GNU General Public License4/spa>
 
 L16">1 164/a>4spa> class="comment"> * along with this program; if not, write to the Free Software4/spa>
 
 L17">1 174/a>4spa> class="comment"> * Founda	  >, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.4/spa>
 
 L18">1 184/a>4spa> class="comment"> */4/spa>
 
 L19">1 194/a> 
 L20">1 2.11a>#include <linux/timecompare.h11a>> 
 L21">1 2111a>#include <linux/module.h11a>> 
 L22">1 2211a>#include <linux/slab.h11a>> 
 L23">1 2311a>#include <linux/math64.h11a>> 
 L24">1 2411a>#include <linux/kernel.h11a>> 
 L25">1 254/a> 
 L26">1 264/a>4spa> class="comment">/*4/spa>
 
 L27">1 274/a>4spa> class="comment"> * fixed point arithmetic scale factor for skew4/spa>
 
 L28">1 284/a>4spa> class="comment"> *4/spa>
 
 L29">1 294/a>4spa> class="comment"> * Usually one would measure skew in ppb (parts per bill  >, 1e9), but4/spa>
 
 L30">1 3.11a>4spa> class="comment"> * using a factor of 2 simplifies the math.4/spa>
 
 L31">1 314/a>4spa> class="comment"> */4/spa>
 
 L32">1 3211a>#define14a href="+code=TIMECOMPARE_SKEW_RESOLUTION" class="sref">TIMECOMPARE_SKEW_RESOLUTION11a> (((4a href="+code=s64" class="sref">s6411a>)1)<<30) 
 L33">1 334/a> 
 L34">1 344/a>4a href="+code=ktime_t" class="sref">ktime_t11a> 4a href="+code=timecompare_transform" class="sref">timecompare_transform11a>(struct 4a href="+code=timecompare" class="sref">timecompare11a> *4a href="+code=sync" class="sref">sync11a>, 
 L35">1 354/a>                              4a href="+code=u64" class="sref">u6411a> 4a href="+code=source_tstamp" class="sref">source_tstamp11a>) 
 L36">1 364/a>{ 
 L37">1 374/a>        4a href="+code=u64" class="sref">u6411a> 4a href="+code=nsec" class="sref">nsec11a>; 
 L38">1 384/a> 
 L39">1 394/a>        4a href="+code=nsec" class="sref">nsec11a> = 4a href="+code=source_tstamp" class="sref">source_tstamp11a> + 4a href="+code=sync" class="sref">sync11a>->4a href="+code=offset" class="sref">offset11a>; 
 L40">1 404/a>        4a href="+code=nsec" class="sref">nsec11a> += (4a href="+code=s64" class="sref">s6411a>)(4a href="+code=source_tstamp" class="sref">source_tstamp11a> - 4a href="+code=sync" class="sref">sync11a>->4a href="+code=last_upda	e" class="sref">last_upda	e11a>) * 4a href="+code=sync" class="sref">sync11a>->4a href="+code=skew" class="sref">skew4/a> / 
 L41">1 414/a>                4a href="+code=TIMECOMPARE_SKEW_RESOLUTION" class="sref">TIMECOMPARE_SKEW_RESOLUTION11a>; 
 L42">1 424/a> 
 L43">1 434/a>        return 4a href="+code=ns_to_ktime" class="sref">ns_to_ktime11a>(4a href="+code=nsec" class="sref">nsec11a>); 
 L44">1 4411a>} 
 L45">1 454/a>4a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL11a>(4a href="+code=timecompare_transform" class="sref">timecompare_transform11a>); 
 L46">1 464/a> 
 L47">1 474/a>int 4a href="+code=timecompare_offset" class="sref">timecompare_offset11a>(struct 4a href="+code=timecompare" class="sref">timecompare11a> *4a href="+code=sync" class="sref">sync11a>, 
 L48">1 484/a>                       4a href="+code=s64" class="sref">s6411a> *4a href="+code=offset" class="sref">offset11a>, 
 L49">1 494/a>                       4a href="+code=u64" class="sref">u6411a> *4a href="+code=source_tstamp" class="sref">source_tstamp11a>) 
 L50">1 504/a>{ 
 L51">1 514/a>        4a href="+code=u64" class="sref">u6411a> 4a href="+code=start_source" class="sref">start_source11a> = 0, 4a href="+code=end_source" class="sref">end_source11a> = 0; 
 L52">1 524/a>        struct { 
 L53">1 534/a>                4a href="+code=s64" class="sref">s6411a> 4a href="+code=offset" class="sref">offset11a>; 
 L54">1 544/a>                4a href="+code=s64" class="sref">s6411a> 4a href="+code=dura	  >_target" class="sref">dura	  >_target11a>; 
 L55">1 554/a>        } 4a href="+code=buffer" class="sref">buffer4/a>[10], 4a href="+code=sample" class="sref">sample11a>, *4a href="+code=samples" class="sref">samples11a>; 
 L56">1 564/a>        int 4a href="+code=counter" class="sref">counter11a> = 0, 4a href="+code=i" class="sref">i11a>; 
 L57">1 574/a>        int 4a href="+code=used" class="sref">used11a>; 
 L58">1 584/a>        int 4a href="+code=index" class="sref">index11a>; 
 L59">1 594/a>        int 4a href="+code=num_samples" class="sref">num_samples11a> = 4a href="+code=sync" class="sref">sync11a>->4a href="+code=num_samples" class="sref">num_samples11a>; 
 L60">1 604/a> 
 L61">1 614/a>        if (4a href="+code=num_samples" class="sref">num_samples11a> > 4a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE11a>(4a href="+code=buffer" class="sref">buffer4/a>)) { 
 L62">1 624/a>                4a href="+code=samples" class="sref">samples11a> = 4a href="+code=kmalloc" class="sref">kmalloc11a>(sizeof(*4a href="+code=samples" class="sref">samples11a>) * 4a href="+code=num_samples" class="sref">num_samples11a>, 4a href="+code=GFP_ATOMIC" class="sref">GFP_ATOMIC11a>); 
 L63">1 634/a>                if (!4a href="+code=samples" class="sref">samples11a>) { 
 L64">1 644/a>                        4a href="+code=samples" class="sref">samples11a> = 4a href="+code=buffer" class="sref">buffer4/a>; 
 L65">1 654/a>                        4a href="+code=num_samples" class="sref">num_samples11a> = 4a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE11a>(4a href="+code=buffer" class="sref">buffer4/a>); 
 L66">1 664/a>                } 
 L67">1 674/a>        } else { 
 L68">1 684/a>                4a href="+code=samples" class="sref">samples11a> = 4a href="+code=buffer" class="sref">buffer4/a>; 
 L69">1 694/a>        } 
 L70">1 704/a> 
 L71">1 714/a>        4spa> class="comment">/* run until we have enough tioid samples, but do not try forever */4/spa>
 
 L72">1 724/a>        4a href="+code=i" class="sref">i11a> = 0; 
 L73">1 734/a>        4a href="+code=counter" class="sref">counter11a> = 0; 
 L74">1 744/a>        while (1) { 
 L75">1 754/a>                4a href="+code=u64" class="sref">u6411a> 4a href="+code=ts" class="sref">ts11a>; 
 L76">1 764/a>                4a href="+code=ktime_t" class="sref">ktime_t11a> 4a href="+code=start" class="sref">start11a>, 4a href="+code=end" class="sref">end11a>; 
 L77">1 774/a> 
 L78">1 784/a>                4a href="+code=start" class="sref">start11a> = 4a href="+code=sync" class="sref">sync11a>->4a href="+code=target" class="sref">target11a>(); 
 L79">1 794/a>                4a href="+code=ts" class="sref">ts11a> = 4a href="+code=timecounter_read" class="sref">timecounter_read11a>(4a href="+code=sync" class="sref">sync11a>->4a href="+code=source" class="sref">source11a>); 
 L80">1 804/a>                4a href="+code=end" class="sref">end11a> = 4a href="+code=sync" class="sref">sync11a>->4a href="+code=target" class="sref">target11a>(); 
 L81">1 814/a> 
 L82">1 824/a>                if (!4a href="+code=i" class="sref">i11a>) 
 L83">1 834/a>                        4a href="+code=start_source" class="sref">start_source11a> = 4a href="+code=ts" class="sref">ts11a>; 
 L84">1 844/a> 
 L85">1 854/a>                4spa> class="comment">/* ignore negative dura	  >s */4/spa>
 
 L86">1 864/a>                4a href="+code=sample" class="sref">sample11a>.4a href="+code=dura	  >_target" class="sref">dura	  >_target11a> = 4a href="+code=ktime_to_ns" class="sref">ktime_to_ns11a>(4a href="+code=ktime_sub" class="sref">ktime_sub11a>(4a href="+code=end" class="sref">end11a>, 4a href="+code=start" class="sref">start11a>)); 
 L87">1 874/a>                if (4a href="+code=sample" class="sref">sample11a>.4a href="+code=dura	  >_target" class="sref">dura	  >_target11a> >= 0) { 
 L88">1 884/a>                        4spa> class="comment">/*4/spa>
 
 L89">1 894/a>4spa> class="comment">                         * assume symetric delay to and from source:4/spa>
 
 L90">1 9620t">/me_sub" c" L90" class="linnel/time/timecompare.c#L60" id
 L60" class="line" nam>
 L60">1t" cass="line" nam>
 L90">1 9620t">/me_s corresponds#L90ef="kerd="line" nam>
 L90">1 9620t">/me_sub" c" L90" ime/time9ompare.c#L82" id
 L82" 9lass=9ecompare.c#L32" id
 L32" cla60">1t" cass="line" nam>
 " clas "kerneline" nam>
 L90">1 9620t">/me_sub" c" L90"  (!4a hr9f="+code=i" class="sref9>i11a9 PARTICULAR PURPOSE.  See th60">1t" cass="line" nam>
s="line" nam>
 L86">1 864/a>                49      4a9href="+code=start_sourc9" cla9s="sref">start_source11a> = 4a href="+code=ts class="sref">dura	  >_target11a> >= 0) { 1 864/a>                49ime/time9ompare.c#L85" id
 L85" 9lass=9ef">samples11a> = 4a href="+ccccccccc"+code=end" class="sreclass="sref">ktime_sub11a>(4a href="+code=end" classtart11a>)); ktime_sub11a>(4a href="+code=end" clasare.c#L87" id
 L87" class="line / 2 - nam>
 L86">1 864/a>                49pa> clas9="comment">/* ignore ne9ative9sref">u6411a> 4a href="+code=sourcecounter_read" class="sref">timecounter_r" nam>
 L87">1 874/a>                i9 href="+9ode=sample" class="sref9>samp9line" nam>
 L47">1 474/a>int 4a href="+cod9 (4a hre9="+code=sample" class="9ref">9ample11a>.4a href="+csourcecou href="kernel/time/timec#L31"e inser.14/ssort based 4/se.c#L88">
s="line" nam>
 L86">1 864/a>                49      4s9a> class="comment">/*4/9pa>
 9a href="kernel/time/timecomparime/timecompare.c#L59" id
 L59" class="line href="+code=ktimemecompare.c#L74" id
 L74" class="l- 1" nam>
 L87">1 874/a>                i9"> *4/spaa>
 
 L88">1 884/a>                 10nt"> * Thiis program is distributedL60"edLref">u6411a> 4a href="+code=sourcecoode=dura	  >_target" clasef">buffer4/a>; 
 L25">1 254/a>  * bu0t WITHOUT ANY WARRANTY; 0160"edN" class="sref">TIMECernel/time/timecomparime/timecompar" class="sref">dura	  >_target11a> >= 0) { 
 L83">1 834/a>                 10nt"> * ME0RCHANTABILITY or FITNESS0260"ed) 
 L25">1 254/a>  * GN0U General Public License0360"eds="sref">start_source11a> = 4imecomparime/timecompar" clasef">buffer4/a>; buffer4/a>; 
 L25">1 254/a>  *4/s0pa>
 samples11a> = 4a href="+cccccccccrime/timecompare.c#L59" id
 L59" class="line--" nam>
 L25">1 254/a>  * Yo0u should have received a0560"edsref">u6411a> 4a href="+code=" nam>
 L70">1 704/a>  * al0ong with this program; i0660"ede11a>.4a href="+code=imecomparime/timecompar" clasef">buffer4/a>; dura	  >_target1" nam>
 L25">1 254/a>  * Fo0unda	  >, Inc., 675 Mass0760"edample11a>.4a href="+csourcecouf="+code=ktimemecompare.c#L74" id
 L74" class="++" nam>
 L25">1 254/a>  */4/0spa>
 
 L70">1 704/a> 
 L20">1 2.11a>#include < * Thhis program is distributeed in11= 4a href="+code=sync" class="sref"> id
 L83" class="line++" nam>
 L25">1 254/a>  * butt WITHOUT ANY WARRANTY; w160"e1N" class="sref">TIMECode=dura	  >_targetmecompare.c#L74" id
 L74" class="lass="lhref="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE11a>(4a hr||e/timecompare.c#L73" id
 L73" class="lass="ledLLLLne" nam>
 L88">1 884/a>                 1ent"> * MEERCHANTABILITY or FITNESSS FOR11) timecounter_r" nam>
 L87">1 874/a>                i1ent"> * GNNU General Public Licensee for11s="sref">start_source11a> = 4break" nam>
 L25">1 254/a>  *4/sspa>
 samples11a> = 4a " nam>
 L70">1 704/a>  * Yoou should have received aa cop1110], 4a href=" nam>
 L70">1 704/a>  * allong with this program; iif no11line" nam>
 L47">1 474/a>int 4a href="+cod1ent"> * Foounda	  >, Inc., 675 Masss Ave11ample11a>.4a  ts11a>; 
 L25">1 254/a>  */4//spa>
 
 L39">1 394/a>        4a href="1time/timeccompare.c#L20" id
 L20" cclass11ref="+code=sou, but do not try forever emove outliers b/spalyel/time75%/timecomZE11a>(ass="line" nam>
 L19">1 194/a> 
 L25">1 254/a> 
 L83">1 834/a>                 1ref="incl1ude/linux/slab.h" class=1"fref12les11a> = 4a href="+code=kmalloc" clc#L58" id
 L58" class="line href="+code=ktimemecompare.c#L74" id
 L74" class="" nam>
 L25">1 254/a>  * GNude/linux/math64.h" clas1s="fr123amples11a> > ecompare.c#L83"c#L58" id
 L58" class="line"e" nam>
 L88">1 884/a>                 1ref="incl1ude/linux/kernel.h" clas1s="fr124a href="+code=dura	  , but do not try forevercalcud
 L L90">1 9ss="line" nam>
 L19">1 194/a>  * Yocompare.c#L26" id
 L26" 1class124a href="+code=ts" class="sref">ts11offset11a>; 
 L74">1 744/a>        while (1)1ent">/*4/1spa>
 
 L83">1 834/a>                 1rnt"> * Foixed point arithmetic sc1ale f12ample11a>.4a href="+csourcecouf="+code=ktimeareL54" id
 L54" classs="l+e=target" class="s clasef">buffer4/a>; 
 L74">1 744/a>        while (1)1ent"> */4/spa>
 ; 
 L74">1 744/a>        while (1)1eime/timecsually one would measure1 skew12" class="line" nam>
 L70">1 704/a>  * u1sing a factor of 2 simpl1ifies13line" nam>
 L71">1 714/a>        4spa> cla1ent"> */41/spa>
 buffer4/a>; buffer4/a>; 
 L83">1 834/a>                 1+code=TIM1ECOMPARE_SKEW_RESOLUTION1" cla13les11a> = 4a href="+code=kmalloc" clk hre="sref">ktime_su hreref="+code=end" clasaompare.c#L64" id
 L64" class="lin" nam>
 L74">1 744/a>        while (1)1time/time1compare.c#L34" id
 L34" 1class1"line" nam>
 L34">1 344/a>4a href="+code=kt1ime_t" cl1ass="sref">ktime_t11a> 41a hre134a href="+cod>(4a href="+code=nsec"c#L58" id
 L58" class="line" nam>
 L58">1 584/a>        int 4a hr1         1    4a href="+code=u64" 1class1"sref"" nam>
 L70">1 704/a> /*4/1ecompare.c#L37" id
 L37"1 clas1="lineef="+code=nsec""+code=timecompare_transform" class="sref">timecompare_transform11a>); timecompare11n" nam>
 L74">1 744/a>        while (1)1tnt"> * Fo" class="sref">u6411a> 41a hre13line" nam>
 L78">1 784/a>                41time/time1compare.c#L39" id
 L39" 1class1"line"voidref="+code=nsec"__s="sref">timlass="sref">sync11a>-__s="sref">timlass="mpare> *4a href="+code=sync" class="sref">sync11a>, 
 L48">1 484/a>                 1+code=nse1c" class="sref">nsec11a>1 = 4a136411a> *4a href="+code=sourccce_tstamp" class="sref">source_tstamp11a>) 
 L36">1 364/a>{ nsec11a>1 += (14"line" nam>
 L51">1 514/a>        4a href="1a href="+1code=TIMECOMPARE_SKEW_RE1SOLUT14"+code=start_source" class="offset11a>; 
 L54">1 544/a>                41time/time1compare.c#L43" id
 L43" 1class14="kernel/time/timecompare.c#"sref">source_tstamp11a>) 1 _s="sef">source_tstaL90">1 _s="sline" nam>
 L54">1 544/a>                41time/time1ode=ns_to_ktime" class="1sref"14line" nam>
 L34">1 344/a>4a href="+code=kt1/time/tim1ecompare.c#L45" id
 L45"1 clas144amples11a> > mecompare.c#L83"; timecompare11=source" class="sref">source11a>); 1 _s="sef">source_tstaL90">1 _s="sline)" nam>
 L36">1 364/a>{ EXP1ORT_S144a href="+code=ts" cl>(4a h" nam>
 L54">1 544/a>                41tede=ttimecompare.c#L47" id
 La1"L43" 7"a href="kernel/time/timecompare.c#L11) 1"line href="+code=ktimemecompare.c#018ass="line" nam>
 L49">1 494/a>       " id
 L88" class="line" nam>
 L88">1 884/&a del1+cnt"> * Foimecompare.c#L48" id
 L418" cl1ss="line" nam>
 L48">1timecompare.c#L11) 1"line href="+code=ktimemecompare.c#018ass="line" nam>
 L49">1 494/a>       " id
 L8kernel/ti1me/ti12ad
 L43" 1class14="kernel/time/timecompare.c#"sref">source_tstamp11a>) 
 L49">1timecompare.c#L11) 1"line href="+code=ktimemecompare.c#018ass=e (1)1ent"> */4/spa>
 
 L20">1 2.11a>#include &l11a>) * 4a href="+code=sync" class="sref">sync11a>->4a href="+code=skew" class="sref">ts11offset11a>; 
 L67">1 674/a>        } else { 
 L62">1 624/a>                4a href="+code=s64" class="sref">selta_ime11a>(4a href="+cselta_ime1
 L8kernel/ti1me/ti12ad
 L43" 1class14="kernel/time/timecompare.csref">source_tstamp11a> - 4a href="+code=sync" class="sref">sync11a>->4a href="+code=last_upda	e" classass="sref">ts11offset11a>; 1 imecompare.c#L53" id
 L513" cl15line" nam>
 L54">1 544/a>                41el/time/t1imecompare.c#L54" id
 L514" cl1ss="line" nam>
 L54">1 /a>                 1refa nam>divi Founbyass="commeithmkmal selta"+code=sou, but do not try forever emove outliersel/time/t1imecompare.c#L55" id
 L515" cl15ine)" nam>
 L36">1 3671">1 714/a>       selta_ime11a>(4a href="+cselta_ime1
 L8kARRAY_SIZE"8" class="line" nam>
 L88">1 884/&a del1+el/time/t1imecompare.c#L56" id
 L516" cl15ode=" nam>
 L70">1 704/a> selta_e=star_ime11a>(4a href="+cselta_e=star_ime1ef="kernel/ti1me/ti12a_SKEW_RE1SOLUT14"+code=start_sosref">source_tstamp11a> - 4a href="+code=sync" class="sref">sync1_SKEW_RE1SOLUT14"+code=start_source" class="offset11a>; 
 L83">1 834/a>                 1rn       4a href="+code=s64" class="sref">1a>->4a href="+code=skew;1 /a>                 1refselta_e=star_ime1>4spa> class="comment"> *4/spa>
  * Foimecompare.c#L58" id
 L518" cl15s="line" nam>
 L28">1 284/a>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>SOLUTION" class="sref">TIME ode=sou, but do not try forever emove outlierse/time/timimecompare.c#L59" id
 L519" cl15s="line" nam>
 L89">1 894/a>4spa> class="comment">              selta_ime1+code=sou, but do not try forever emove outliersel/time/t1imecompare.c#L60" id
 L610" cl16line" nam>
 L88">1 884/a>    54">1 544/a>                41time/time1compare.c#L43" idivi oer&a h;&a h;codedivi oet_source" class="offset11a>; 
 L81">1 814/a> 
 L62">14/a>    5/a>                 1refstime/t()ommelimihis to 32 bit divi oe+code=sou, but do not try forever emove outlierseelL90">1 imecompare.c#L63" id
 L613" cl1ss="line" nam>
 L63">14/a>    54">1 544/a>   1a>->4a href="+code=skew" c" class="sref">selta_e=star_ime11a>(4a href="+cselta_e=star_ime1ef="kss="sref">samples        4a href="+code=TIMECOMPARE_SKEW_RESOLUTION" class="sref">TIMECOMPARE_SKEW_RESOLUTION11a>; 
 L64">1 644/a>                divi oer&a h;&a h;codedivi oet_so" c" class="sref">selta_ime11a>(4a href="+cselta_ime1
 L8ARE_SKEW_RESOLUTION11a>; 
 L65">1 654/a>                i9"> *4unlikely          41timenlikely44amples11a> > medivi oer&a h;&a h;codedivi oet_so"ARRAY_E_SKEW_RESOLUTION11a> (((4a href="+code=s64"  class="s 32class="sref">buffer4/a>)) { 
 L66">1
 L62">14/a>    5/a>                 1refstiide bothnbya2; be wri, class=shifs per bill  >, 1e9), but4/spa>
 
 L27">1 274/a>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ofass="commeokup" ha"+ cla namss="line" nam>
 L60">1t" cass="line" nam>
 L91el/time/t1imecompare.c#L68" id
 L618" cl16s="line" nam>
 L28">1 284/a>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>behavioe+sume is are.c the hd44/as="line" nam>
 L60">1t" cass="line" nam>
 L91e/time/timimecompare.c#L69" id
 L619" cl16s="line" nam>
 L89">1 894/a>4spa> class="comment">            lassposicommenivi oe+code=sou, but do not try forever emove outliersel/time/t1imecompare.c#L70" id
 L710" cl17line" nam>
 L88">1 884/a>            54">1 544/a>   1a>->4a href="+code=skew" c" class="sref">shref="kernel/time/tel/time/timecompare.c#L49" id1a>->4a href="+code=skew, 2ef">timecompare_transform11a>); 
 L25">1 254/a> timecompare_transform11a>); 
 L62">14/a>     nam>
 L58">1 584/a>        int 4a hr1 el/time/t1imecompare.c#L73" id
 L713" cl17s="line" nam>
 L63">14/a>    54">1 544/a>   1a>->4a href="+code=skew" c" class="sref">shref="kernel/time/tel/time/timecompare.c#L49" id1a>->4a href="+code=skew, les11a> > medivi oer&a h;&a h;codedivi oet_soef">timecompare_transform11a>); 
 L84">1 844/a> 
 L75">14/a>    5                      4spa> class="comment">/*4/spa>
 
 L16">1 164/a>>>>>>>>>>>>>>>>>>>>>>>>>* C"incl1udenew oe/tillually a"+4/16ARTICULAR PURPOSE.  See the4/spa>
 
 L27">1 274/a>>>>>>>>>>>>>>>>>>>>>>>>>* oldeokup" sume12/16ARTIenew one.spa> cisCULAR PURPOSE.  See the4/spa>
 
 L28">1 284/a>>>>>>>>>>>>>>>>>>>>>>>>>* a raSoftwarbitrary tradee=sc ttweenCULAR PURPOSE.  See the4/spa>
 
 L89">1 894/a>4spa> class="comment">    are.c#L20" RTIel1udstL60" cla 894 (0/16Aanss="line" nam>
 L60">1t" cass="line" nam>
 L91el/time/t1imecompare.c#L80" id
 L810" cl18s="line" nam>
 L90">1 9620t">/me_sub" c" L90" class="l16/16) sume ANY ral Pwelass=on pastL60" cla 894License for more details.4/spa>
 
 L90">1 9620t">/me_sub" c" L90" ime/timode=sou, but do not try forever emove outliersel/time/t1imecompare.c#L82" id
 L812" cl18s="line" nam>
 L32">1 3211a>#define14a hNs="ass="PER_ have receiKEW_RESOLUTION" clNs="ass="PER_ h="lin12 but do not try forever emove outliersel/time/t1imecompare.c#L83" id
 L813" cl1ss="line" nam>
 L83">1 834/a>                 1a>) * 4a href="+code=sync" class="sref">sync11a>->4a href="+code=skew"  but do not try forever emove outliersel/time/t1imecompare.c#L84" id
 L814" cl18ine]" nam>
 L25">1 254/a>  *4/shref="kernel/time/tel/time/timeco(16Aref">source_tstam#define14a hNs="ass="PER_ have receiKEW_RESOLUTION" clNs="ass="PER_ h="li) * but do not try forever emove outliersel/time/t1imecompare.c#L85" id
 L815" cl1ss="line" nam>
 L85">1ne" nam>
 L83">1 834/a>                 1a>) * 4a href="+code=sync" class="sref">sync11a>->4a href="+code=skew"+ but do not try forever emove outliersel/time/t1imecompare.c#L86" id
 L816" cl1ss="line" nam>
 L86">1ne" nam>
 L83">1 834/a>                #define14a hNs="ass="PER_ have receiKEW_RESOLUTION" clNs="ass="PER_ h="linsref">last_upda	e1a>->4a href="+code=skew, but do not try forever emove outliersel/time/t1imecompare.c#L87" id
 L817" cl1ss="line" nam>
 L87">111111111111111111111111116)f">timecompare_transform11a>); 
 L88">1 884/a>  imecompare.c#L11) 1"line href="+code=ktimemecompare.c#018ass="line" nam>
 L49">1 494/a>       " id
 L8kernel/ti1me/ti12ad
 L43" 1class14="kernel/time/timecompare.c#"sref">source_tstamp11a>) 
 L48">1 484/a>    timecompare.c#L11) 1"line href="+code=ktimemecompare.c#018ass=e (1)1ent"> */4/spa>
 
 L88">1 88 nam>
 L58">1 584/a>        int 4a hr1 0">1 96201t">/me_s corresponds#L901ef="k19s="line" nam>
nam>
 L58">1 584/a>        int 4a hr1 0l/time/t1t" cass="line" nam>
 " c1las "1erneli
nam>
 L58">1 584/a>        int 4a hr1 0l/time/t1See th60">1t" cass="line1" nam1
s="li nam>
 L70">1 704/a> /*4/1ecompare.c#L37" id
 L37"1 clas1="lin                41time/time1compare.c#L39" id
 L39" 1class1)f">timecompare_transform11a>);  >= 10) { 1 unityskew, commeexperi 962al e/t Founbya>timecompmailto:lxs@lerne.noa> xs@lerne.noskew.


 xs.lerne.no kinde.choshis bya>timecomphttp://www.redpill-lerpro.noa>Redpill Lerpro ASskew, proiidemmentLerne ">nsult> claumeoper>/* ignservicegnsincea1s95.