linux/kernel/compat.c
<<
alue2alue2al//spav4.al/spav class="lxr_search">aluealue2alue2alue2typ Searchalue2al//spav4.ue2< al/input typ aue2< . /div id < <1//a>/spav class="comment">/*//spav4.< <2//a>/spav class="comment"> * linux/kernel/compat.c//spav4.< <3//a>/spav class="comment"> *//spav4.< <4//a>/spav class="comment"> * Kernel compatibililty routines for e.g. 32 bit syscall support//spav4.< <5//a>/spav class="comment"> * on>64 bit kernels.//spav4.< <6//a>/spav class="comment"> *//spav4.< <7//a>/spav class="comment"> * Copyright (C) 2002-2003 Stephen Rothwell, IBM Corpora v//spav4.< <8//a>/spav class="comment"> *//spav4.< <9//a>/spav class="comment"> * This program is free software; you cav redistribute it and/or modify//spav4.< " a>/spav class="comment"> * it under the terms of the GNU General Public License version>2 as//spav4.< 11//a>/spav class="comment"> * published by the Free Software Founda v.//spav4.< 12//a>/spav class="comment"> *///spav4.< 13//a>.< 14//a>#include <linux/linkage.h//a>>.< 15//a>#include <linux/compat.h//a>>.< 16//a>#include <linux/errno.h//a>>.< 17//a>#include <linux/time.h//a>>.< 18//a>#include <linux/signal.h//a>>.< 19//a>#include <linux/sched.h//a>> /spav class="comment">/* for MAX_SCHEDULE_TIMEOUT *///spav4.< 20//a>#include <linux/syscalls.h//a>>.< 21//a>#include <linux/unistd.h//a>>.< 22//a>#include <linux/security.h//a>>.< 23//a>#include <linux/timex.h//a>>.< 24//a>#include <linux/export.h//a>>.< 25//a>#include <linux/migrate.h//a>>.< 26//a>#include <linux/posix-timers.h//a>>.< 27//a>#include <linux/times.h//a>>.< 28//a>#include <linux/ptrace.h//a>>.< 29//a>#include <linux/gfp.h//a>>.< 30//a>.< 31//a>#include <asm/uaccess.h//a>>.< 32//a>.< 33//a>/spav class="comment">/*//spav4.< 34//a>/spav class="comment"> * Get/set struct timeval with struct timespec on>the na ve side//spav4.< 35//a>/spav class="comment"> *///spav4.< 36//a>static intcompat_get_timeval_convert//a>(struct /a href="+code=timespec" class="sref">timespec//a> */a href="+code=o" class="sref">o//a>,.< 37//a> struct /a href="+code=compat_timeval" class="sref">compat_timeval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=i" class="sref">i//a>).< 38//a>{.< 39//a> long /a href="+code=usec" class="sref">usec//a>;.< 40//a>.< 41//a> if (/a href="+code=get_user" class="sref">get_user//a>(/a href="+code=o" class="sref">o//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=i" class="sref">i//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>) ||.< 42//a> /a href="+code=get_user" class="sref">get_user//a>(/a href="+code=usec" class="sref">usec//a>, &/a href="+code=i" class="sref">i//a>->/a href="+code=tv_usec" class="sref">tv_usec//a>)).< 43//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.< 44//a> /a href="+code=o" class="sref">o//a>->/a href="+code=tv_nsec" class="sref">tv_nsec//a> = /a href="+code=usec" class="sref">usec//a> * 1000;.< 45//a> return 0;.< 46//a>}.< 47//a>.< 48//a>static intcompat_put_timeval_convert//a>(struct /a href="+code=compat_timeval" class="sref">compat_timeval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=o" class="sref">o//a>,.< 49//a> struct /a href="+code=timeval" class="sref">timeval//a> */a href="+code=i" class="sref">i//a>).< 50//a>{.< 51//a> return (/a href="+code=put_user" class="sref">put_user//a>(/a href="+code=i" class="sref">i//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=o" class="sref">o//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>) ||.< 52//a> /a href="+code=put_user" class="sref">put_user//a>(/a href="+code=i" class="sref">i//a>->/a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=o" class="sref">o//a>->/a href="+code=tv_usec" class="sref">tv_usec//a>)) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.< 53//a>}.< 54//a>.< 55//a>static intcompat_get_timex//a>(struct /a href="+code=timex" class="sref">timex//a> */a href="+code=txc" class="sref">txc//a>, struct /a href="+code=compat_timex" class="sref">compat_timex//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=utp" class="sref">utp//a>).< 56//a>{.< 57//a> /a href="+code=memset" class="sref">memset//a>(/a href="+code=txc" class="sref">txc//a>, 0, sizeof(struct /a href="+code=timex" class="sref">timex//a>));.< 58//a>.< 59//a> if (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_READ" class="sref">VERIFY_READ//a>, /a href="+code=utp" class="sref">utp//a>, sizeof(struct /a href="+code=compat_timex" class="sref">compat_timex//a>)) ||.< 60//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=modes" class="sref">modes//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=modes" class="sref">modes//a>) ||.< 61//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=offset" class="sref">offset//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=offset" class="sref">offset//a>) ||.< 62//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=freq" class="sref">freq//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=freq" class="sref">freq//a>) ||.< 63//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=maxerror" class="sref">maxerror//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=maxerror" class="sref">maxerror//a>) ||.< 64//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=esterror" class="sref">esterror//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=esterror" class="sref">esterror//a>) ||.< 65//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=status" class="sref">status//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=status" class="sref">status//a>) ||.< 66//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=constant" class="sref">constant//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=constant" class="sref">constant//a>) ||.< 67//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=precision" class="sref">precision//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=precision" class="sref">precision//a>) ||.< 68//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=tolerance" class="sref">tolerance//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=tolerance" class="sref">tolerance//a>) ||.< 69//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=time" class="sref">time//a>./a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=time" class="sref">time//a>./a href="+code=tv_sec" class="sref">tv_sec//a>) ||.< 70//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=time" class="sref">time//a>./a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=time" class="sref">time//a>./a href="+code=tv_usec" class="sref">tv_usec//a>) ||.< 71//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=tick" class="sref">tick//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=tick" class="sref">tick//a>) ||.< 72//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=ppsfreq" class="sref">ppsfreq//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=ppsfreq" class="sref">ppsfreq//a>) ||.< 73//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=jitter" class="sref">jitter//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=jitter" class="sref">jitter//a>) ||.< 74//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=shift" class="sref">shift//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=shift" class="sref">shift//a>) ||.< 75//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=stabil" class="sref">stabil//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=stabil" class="sref">stabil//a>) ||.< 76//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=jitcnt" class="sref">jitcnt//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=jitcnt" class="sref">jitcnt//a>) ||.< 77//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=calcnt" class="sref">calcnt//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=calcnt" class="sref">calcnt//a>) ||.< 78//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=errcnt" class="sref">errcnt//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=errcnt" class="sref">errcnt//a>) ||.< 79//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=stbcnt" class="sref">stbcnt//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=stbcnt" class="sref">stbcnt//a>)).< 80//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.< 81//a>.< 82//a> return 0;.< 83//a>}.< 84//a>.< 85//a>static intcompat_put_timex//a>(struct /a href="+code=compat_timex" class="sref">compat_timex//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=utp" class="sref">utp//a>, struct /a href="+code=timex" class="sref">timex//a> */a href="+code=txc" class="sref">txc//a>).< 86//a>{.< 87//a> if (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_WRITE" class="sref">VERIFY_WRITE//a>, /a href="+code=utp" class="sref">utp//a>, sizeof(struct /a href="+code=compat_timex" class="sref">compat_timex//a>)) ||.< 88//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=modes" class="sref">modes//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=modes" class="sref">modes//a>) ||.< 89//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=offset" class="sref">offset//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=offset" class="sref">offset//a>) ||.< 90//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=freq" class="sref">freq//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=freq" class="sref">freq//a>) ||.< 91//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=maxerror" class="sref">maxerror//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=maxerror" class="sref">maxerror//a>) ||.< 92//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=esterror" class="sref">esterror//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=esterror" class="sref">esterror//a>) ||.< 93//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=status" class="sref">status//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=status" class="sref">status//a>) ||.< 94//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=constant" class="sref">constant//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=constant" class="sref">constant//a>) ||.< 95//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=precision" class="sref">precision//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=precision" class="sref">precision//a>) ||.< 96//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=tolerance" class="sref">tolerance//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=tolerance" class="sref">tolerance//a>) ||.< 97//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=time" class="sref">time//a>./a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=time" class="sref">time//a>./a href="+code=tv_sec" class="sref">tv_sec//a>) ||.< 98//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=time" class="sref">time//a>./a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=time" class="sref">time//a>./a href="+code=tv_usec" class="sref">tv_usec//a>) ||.< 99//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=tick" class="sref">tick//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=tick" class="sref">tick//a>) ||.<100//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=ppsfreq" class="sref">ppsfreq//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=ppsfreq" class="sref">ppsfreq//a>) ||.<101//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=jitter" class="sref">jitter//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=jitter" class="sref">jitter//a>) ||.<102//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=shift" class="sref">shift//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=shift" class="sref">shift//a>) ||.<103//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=stabil" class="sref">stabil//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=stabil" class="sref">stabil//a>) ||.<104//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=jitcnt" class="sref">jitcnt//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=jitcnt" class="sref">jitcnt//a>) ||.<105//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=calcnt" class="sref">calcnt//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=calcnt" class="sref">calcnt//a>) ||.<106//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=errcnt" class="sref">errcnt//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=errcnt" class="sref">errcnt//a>) ||.<107//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=stbcnt" class="sref">stbcnt//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=stbcnt" class="sref">stbcnt//a>) ||.<108//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=txc" class="sref">txc//a>->/a href="+code=tai" class="sref">tai//a>, &/a href="+code=utp" class="sref">utp//a>->/a href="+code=tai" class="sref">tai//a>)).<109//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<110//a> return 0;.<111//a>}.<112//a>.<113//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_gettimeofday" class="sref">compat_sys_gettimeofday//a>(struct /a href="+code=compat_timeval" class="sref">compat_timeval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=tv" class="sref">tv//a>,.<114//a> struct /a href="+code=timezone" class="sref">timezone//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=tz" class="sref">tz//a>).<115//a>{.<116//a> if (/a href="+code=tv" class="sref">tv//a>) {.<117//a> struct /a href="+code=timeval" class="sref">timeval//a> /a href="+code=ktv" class="sref">ktv//a>;.<118//a> /a href="+code=do_gettimeofday" class="sref">do_gettimeofday//a>(&/a href="+code=ktv" class="sref">ktv//a>);.<119//a> if (/a href="+code=compat_put_timeval_convert" class="sref">compat_put_timeval_convert//a>(/a href="+code=tv" class="sref">tv//a>, &/a href="+code=ktv" class="sref">ktv//a>)).<120//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<121//a> }.<122//a> if (/a href="+code=tz" class="sref">tz//a>) {.<123//a> if (/a href="+code=copy_to_user" class="sref">copy_to_user//a>(/a href="+code=tz" class="sref">tz//a>, &/a href="+code=sys_tz" class="sref">sys_tz//a>, sizeof(/a href="+code=sys_tz" class="sref">sys_tz//a>))).<124//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<125//a> }.<126//a>.<127//a> return 0;.<128//a>}.<129//a>.<130//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_settimeofday" class="sref">compat_sys_settimeofday//a>(struct /a href="+code=compat_timeval" class="sref">compat_timeval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=tv" class="sref">tv//a>,.<131//a> struct /a href="+code=timezone" class="sref">timezone//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=tz" class="sref">tz//a>).<132//a>{.<133//a> struct /a href="+code=timespec" class="sref">timespec//a> /a href="+code=kts" class="sref">kts//a>;.<134//a> struct /a href="+code=timezone" class="sref">timezone//a> /a href="+code=ktz" class="sref">ktz//a>;.<135//a>.<136//a> if (/a href="+code=tv" class="sref">tv//a>) {.<137//a> if (/a href="+code=compat_get_timeval_convert" class="sref">compat_get_timeval_convert//a>(&/a href="+code=kts" class="sref">kts//a>, /a href="+code=tv" class="sref">tv//a>)).<138//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<139//a> }.<140//a> if (/a href="+code=tz" class="sref">tz//a>) {.<141//a> if (/a href="+code=copy_from_user" class="sref">copy_from_user//a>(&/a href="+code=ktz" class="sref">ktz//a>, /a href="+code=tz" class="sref">tz//a>, sizeof(/a href="+code=ktz" class="sref">ktz//a>))).<142//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<143//a> }.<144//a>.<145//a> return /a href="+code=do_sys_settimeofday" class="sref">do_sys_settimeofday//a>(/a href="+code=tv" class="sref">tv//a> ? &/a href="+code=kts" class="sref">kts//a> : /a href="+code=NULL" class="sref">NULL//a>, /a href="+code=tz" class="sref">tz//a> ? &/a href="+code=ktz" class="sref">ktz//a> : /a href="+code=NULL" class="sref">NULL//a>);.<146//a>}.<147//a>.<148//a>intget_compat_timeval//a>(struct /a href="+code=timeval" class="sref">timeval//a> */a href="+code=tv" class="sref">tv//a>, const struct /a href="+code=compat_timeval" class="sref">compat_timeval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=ctv" class="sref">ctv//a>).<149//a>{.<150//a> return (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_READ" class="sref">VERIFY_READ//a>, /a href="+code=ctv" class="sref">ctv//a>, sizeof(*/a href="+code=ctv" class="sref">ctv//a>)) ||.<151//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=tv" class="sref">tv//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=ctv" class="sref">ctv//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>) ||.<152//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=tv" class="sref">tv//a>->/a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=ctv" class="sref">ctv//a>->/a href="+code=tv_usec" class="sref">tv_usec//a>)) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.<153//a>}.<154//a>/a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL//a>(/a href="+code=get_compat_timeval" class="sref">get_compat_timeval//a>);.<155//a>.<156//a>intput_compat_timeval//a>(const struct /a href="+code=timeval" class="sref">timeval//a> */a href="+code=tv" class="sref">tv//a>, struct /a href="+code=compat_timeval" class="sref">compat_timeval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=ctv" class="sref">ctv//a>).<157//a>{.<158//a> return (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_WRITE" class="sref">VERIFY_WRITE//a>, /a href="+code=ctv" class="sref">ctv//a>, sizeof(*/a href="+code=ctv" class="sref">ctv//a>)) ||.<159//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=tv" class="sref">tv//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=ctv" class="sref">ctv//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>) ||.<160//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=tv" class="sref">tv//a>->/a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=ctv" class="sref">ctv//a>->/a href="+code=tv_usec" class="sref">tv_usec//a>)) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.<161//a>}.<162//a>/a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL//a>(/a href="+code=put_compat_timeval" class="sref">put_compat_timeval//a>);.<163//a>.<164//a>intget_compat_timespec//a>(struct /a href="+code=timespec" class="sref">timespec//a> */a href="+code=ts" class="sref">ts//a>, const struct /a href="+code=compat_timespec" class="sref">compat_timespec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=cts" class="sref">cts//a>).<165//a>{.<166//a> return (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_READ" class="sref">VERIFY_READ//a>, /a href="+code=cts" class="sref">cts//a>, sizeof(*/a href="+code=cts" class="sref">cts//a>)) ||.<167//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=ts" class="sref">ts//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=cts" class="sref">cts//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>) ||.<168//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=ts" class="sref">ts//a>->/a href="+code=tv_nsec" class="sref">tv_nsec//a>, &/a href="+code=cts" class="sref">cts//a>->/a href="+code=tv_nsec" class="sref">tv_nsec//a>)) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.<169//a>}.<170//a>/a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL//a>(/a href="+code=get_compat_timespec" class="sref">get_compat_timespec//a>);.<171//a>.<172//a>intput_compat_timespec//a>(const struct /a href="+code=timespec" class="sref">timespec//a> */a href="+code=ts" class="sref">ts//a>, struct /a href="+code=compat_timespec" class="sref">compat_timespec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=cts" class="sref">cts//a>).<173//a>{.<174//a> return (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_WRITE" class="sref">VERIFY_WRITE//a>, /a href="+code=cts" class="sref">cts//a>, sizeof(*/a href="+code=cts" class="sref">cts//a>)) ||.<175//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=ts" class="sref">ts//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=cts" class="sref">cts//a>->/a href="+code=tv_sec" class="sref">tv_sec//a>) ||.<176//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=ts" class="sref">ts//a>->/a href="+code=tv_nsec" class="sref">tv_nsec//a>, &/a href="+code=cts" class="sref">cts//a>->/a href="+code=tv_nsec" class="sref">tv_nsec//a>)) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.<177//a>}.<178//a>/a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL//a>(/a href="+code=put_compat_timespec" class="sref">put_compat_timespec//a>);.<179//a>.<180//a>intcompat_get_timeval//a>(struct /a href="+code=timeval" class="sref">timeval//a> */a href="+code=tv" class="sref">tv//a>, const void /a href="+code=__user" class="sref">__user//a> */a href="+code=utv" class="sref">utv//a>).<181//a>{.<182//a> if (/a href="+code=COMPAT_USE_64BIT_TIME" class="sref">COMPAT_USE_64BIT_TIME//a>).<183//a> return /a href="+code=copy_from_user" class="sref">copy_from_user//a>(/a href="+code=tv" class="sref">tv//a>, /a href="+code=utv" class="sref">utv//a>, sizeof */a href="+code=tv" class="sref">tv//a>) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.<184//a> else.<185//a> return /a href="+code=get_compat_timeval" class="sref">get_compat_timeval//a>(/a href="+code=tv" class="sref">tv//a>, /a href="+code=utv" class="sref">utv//a>);.<186//a>}.<187//a>/a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL//a>(/a href="+code=compat_get_timeval" class="sref">compat_get_timeval//a>);.<188//a>.<189//a>intcompat_put_timeval//a>(const struct /a href="+code=timeval" class="sref">timeval//a> */a href="+code=tv" class="sref">tv//a>, void /a href="+code=__user" class="sref">__user//a> */a href="+code=utv" class="sref">utv//a>).<190//a>{.<191//a> if (/a href="+code=COMPAT_USE_64BIT_TIME" class="sref">COMPAT_USE_64BIT_TIME//a>).<192//a> return /a href="+code=copy_to_user" class="sref">copy_to_user//a>(/a href="+code=utv" class="sref">utv//a>, /a href="+code=tv" class="sref">tv//a>, sizeof */a href="+code=tv" class="sref">tv//a>) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.<193//a> else.<194//a> return /a href="+code=put_compat_timeval" class="sref">put_compat_timeval//a>(/a href="+code=tv" class="sref">tv//a>, /a href="+code=utv" class="sref">utv//a>);.<195//a>}.<196//a>/a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL//a>(/a href="+code=compat_put_timeval" class="sref">compat_put_timeval//a>);.<197//a>.<198//a>intcompat_get_timespec//a>(struct /a href="+code=timespec" class="sref">timespec//a> */a href="+code=ts" class="sref">ts//a>, const void /a href="+code=__user" class="sref">__user//a> */a href="+code=uts" class="sref">uts//a>).<199//a>{.<200//a> if (/a href="+code=COMPAT_USE_64BIT_TIME" class="sref">COMPAT_USE_64BIT_TIME//a>).<201//a> return /a href="+code=copy_from_user" class="sref">copy_from_user//a>(/a href="+code=ts" class="sref">ts//a>, /a href="+code=uts" class="sref">uts//a>, sizeof */a href="+code=ts" class="sref">ts//a>) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.<202//a> else.<203//a> return /a href="+code=get_compat_timespec" class="sref">get_compat_timespec//a>(/a href="+code=ts" class="sref">ts//a>, /a href="+code=uts" class="sref">uts//a>);.<204//a>}.<205//a>/a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL//a>(/a href="+code=compat_get_timespec" class="sref">compat_get_timespec//a>);.<206//a>.<207//a>intcompat_put_timespec//a>(const struct /a href="+code=timespec" class="sref">timespec//a> */a href="+code=ts" class="sref">ts//a>, void /a href="+code=__user" class="sref">__user//a> */a href="+code=uts" class="sref">uts//a>).<208//a>{.<209//a> if (/a href="+code=COMPAT_USE_64BIT_TIME" class="sref">COMPAT_USE_64BIT_TIME//a>).<210//a> return /a href="+code=copy_to_user" class="sref">copy_to_user//a>(/a href="+code=uts" class="sref">uts//a>, /a href="+code=ts" class="sref">ts//a>, sizeof */a href="+code=ts" class="sref">ts//a>) ? -/a href="+code=EFAULT" class="sref">EFAULT//a> : 0;.<211//a> else.<212//a> return /a href="+code=put_compat_timespec" class="sref">put_compat_timespec//a>(/a href="+code=ts" class="sref">ts//a>, /a href="+code=uts" class="sref">uts//a>);.<213//a>}.<214//a>/a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL//a>(/a href="+code=compat_put_timespec" class="sref">compat_put_timespec//a>);.<215//a>.<216//a>static long /a href="+code=compat_nanosleep_restart" class="sref">compat_nanosleep_restart//a>(struct /a href="+code=restart_block" class="sref">restart_block//a> */a href="+code=restart" class="sref">restart//a>).<217//a>{.<218//a> struct /a href="+code=compat_timespec" class="sref">compat_timespec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=rmtp" class="sref">rmtp//a>;.<219//a> struct /a href="+code=timespec" class="sref">timespec//a> /a href="+code=rmt" class="sref">rmt//a>;.<220//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<221//a> long /a href="+code=ret" class="sref">ret//a>;.<222//a>.<223//a> /a href="+code=restart" class="sref">restart//a>->/a href="+code=nanosleep" class="sref">nanosleep//a>./a href="+code=rmtp" class="sref">rmtp//a> = (struct /a href="+code=timespec" class="sref">timespec//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=rmt" class="sref">rmt//a>;.<224//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<225//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<226//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=hrtimer_nanosleep_restart" class="sref">hrtimer_nanosleep_restart//a>(/a href="+code=restart" class="sref">restart//a>);.<227//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<228//a>.<229//a> if (/a href="+code=ret" class="sref">ret//a>) {.<230//a> /a href="+code=rmtp" class="sref">rmtp//a> = /a href="+code=restart" class="sref">restart//a>->/a href="+code=nanosleep" class="sref">nanosleep//a>./a href="+code=compat_rmtp" class="sref">compat_rmtp//a>;.<231//a>.<232//a> if (/a href="+code=rmtp" class="sref">rmtp//a> && /a href="+code=put_compat_timespec" class="sref">put_compat_timespec//a>(&/a href="+code=rmt" class="sref">rmt//a>, /a href="+code=rmtp" class="sref">rmtp//a>)).<233//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<234//a> }.<235//a>.<236//a> return /a href="+code=ret" class="sref">ret//a>;.<237//a>}.<238//a>.<239//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_nanosleep" class="sref">compat_sys_nanosleep//a>(struct /a href="+code=compat_timespec" class="sref">compat_timespec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=rqtp" class="sref">rqtp//a>,.<240//a> struct /a href="+code=compat_timespec" class="sref">compat_timespec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=rmtp" class="sref">rmtp//a>).<241//a>{.<242//a> struct /a href="+code=timespec" class="sref">timespec//a> /a href="+code=tu" class="sref">tu//a>, /a href="+code=rmt" class="sref">rmt//a>;.<243//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<244//a> long /a href="+code=ret" class="sref">ret//a>;.<245//a>.<246//a> if (/a href="+code=get_compat_timespec" class="sref">get_compat_timespec//a>(&/a href="+code=tu" class="sref">tu//a>, /a href="+code=rqtp" class="sref">rqtp//a>)).<247//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<248//a>.<249//a> if (!/a href="+code=timespec_valid" class="sref">timespec_valid//a>(&/a href="+code=tu" class="sref">tu//a>)).<250//a> return -/a href="+code=EINVAL" class="sref">EINVAL//a>;.<251//a>.<252//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<253//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<254//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=hrtimer_nanosleep" class="sref">hrtimer_nanosleep//a>(&/a href="+code=tu" class="sref">tu//a>,.<255//a> /a href="+code=rmtp" class="sref">rmtp//a> ? (struct /a href="+code=timespec" class="sref">timespec//a> /a href="+code=__user" class="sref">__user//a> *)&/a href="+code=rmt" class="sref">rmt//a> : /a href="+code=NULL" class="sref">NULL//a>,.<256//a> /a href="+code=HRTIMER_MODE_REL" class="sref">HRTIMER_MODE_REL//a>, /a href="+code=CLOCK_MONOTONIC" class="sref">CLOCK_MONOTONIC//a>);.<257//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<258//a>.<259//a> if (/a href="+code=ret" class="sref">ret//a>) {.<260//a> struct /a href="+code=restart_block" class="sref">restart_block//a> */a href="+code=restart" class="sref">restart//a>.<261//a> = &/a href="+code=current_thread_info" class="sref">current_thread_info//a>()->/a href="+code=restart_block" class="sref">restart_block//a>;.<262//a>.<263//a> /a href="+code=restart" class="sref">restart//a>->/a href="+code=fn" class="sref">fn//a> = /a href="+code=compat_nanosleep_restart" class="sref">compat_nanosleep_restart//a>;.<264//a> /a href="+code=restart" class="sref">restart//a>->/a href="+code=nanosleep" class="sref">nanosleep//a>./a href="+code=compat_rmtp" class="sref">compat_rmtp//a> = /a href="+code=rmtp" class="sref">rmtp//a>;.<265//a>.<266//a> if (/a href="+code=rmtp" class="sref">rmtp//a> && /a href="+code=put_compat_timespec" class="sref">put_compat_timespec//a>(&/a href="+code=rmt" class="sref">rmt//a>, /a href="+code=rmtp" class="sref">rmtp//a>)).<267//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<268//a> }.<269//a>.<270//a> return /a href="+code=ret" class="sref">ret//a>;.<271//a>}.<272//a>.<273//a>static /a href="+code=inline" class="sref">inline//a> long /a href="+code=get_compat_itimerval" class="sref">get_compat_itimerval//a>(struct /a href="+code=itimerval" class="sref">itimerval//a> */a href="+code=o" class="sref">o//a>,.<274//a> struct /a href="+code=compat_itimerval" class="sref">compat_itimerval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=i" class="sref">i//a>).<275//a>{.<276//a> return (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_READ" class="sref">VERIFY_READ//a>, /a href="+code=i" class="sref">i//a>, sizeof(*/a href="+code=i" class="sref">i//a>)) ||.<277//a> (/a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=o" class="sref">o//a>->/a href="+code=it_interval" class="sref">it_interval//a>./a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=i" class="sref">i//a>->/a href="+code=it_interval" class="sref">it_interval//a>./a href="+code=tv_sec" class="sref">tv_sec//a>) |.<278//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=o" class="sref">o//a>->/a href="+code=it_interval" class="sref">it_interval//a>./a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=i" class="sref">i//a>->/a href="+code=it_interval" class="sref">it_interval//a>./a href="+code=tv_usec" class="sref">tv_usec//a>) |.<279//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=o" class="sref">o//a>->/a href="+code=it_value" class="sref">it_value//a>./a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=i" class="sref">i//a>->/a href="+code=it_value" class="sref">it_value//a>./a href="+code=tv_sec" class="sref">tv_sec//a>) |.<280//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=o" class="sref">o//a>->/a href="+code=it_value" class="sref">it_value//a>./a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=i" class="sref">i//a>->/a href="+code=it_value" class="sref">it_value//a>./a href="+code=tv_usec" class="sref">tv_usec//a>)));.<281//a>}.<282//a>.<283//a>static /a href="+code=inline" class="sref">inline//a> long /a href="+code=put_compat_itimerval" class="sref">put_compat_itimerval//a>(struct /a href="+code=compat_itimerval" class="sref">compat_itimerval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=o" class="sref">o//a>,.<284//a> struct /a href="+code=itimerval" class="sref">itimerval//a> */a href="+code=i" class="sref">i//a>).<285//a>{.<286//a> return (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_WRITE" class="sref">VERIFY_WRITE//a>, /a href="+code=o" class="sref">o//a>, sizeof(*/a href="+code=o" class="sref">o//a>)) ||.<287//a> (/a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=i" class="sref">i//a>->/a href="+code=it_interval" class="sref">it_interval//a>./a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=o" class="sref">o//a>->/a href="+code=it_interval" class="sref">it_interval//a>./a href="+code=tv_sec" class="sref">tv_sec//a>) |.<288//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=i" class="sref">i//a>->/a href="+code=it_interval" class="sref">it_interval//a>./a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=o" class="sref">o//a>->/a href="+code=it_interval" class="sref">it_interval//a>./a href="+code=tv_usec" class="sref">tv_usec//a>) |.<289//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=i" class="sref">i//a>->/a href="+code=it_value" class="sref">it_value//a>./a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=o" class="sref">o//a>->/a href="+code=it_value" class="sref">it_value//a>./a href="+code=tv_sec" class="sref">tv_sec//a>) |.<290//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=i" class="sref">i//a>->/a href="+code=it_value" class="sref">it_value//a>./a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=o" class="sref">o//a>->/a href="+code=it_value" class="sref">it_value//a>./a href="+code=tv_usec" class="sref">tv_usec//a>)));.<291//a>}.<292//a>.<293//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_getitimer" class="sref">compat_sys_getitimer//a>(intwhich//a>,.<294//a> struct /a href="+code=compat_itimerval" class="sref">compat_itimerval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=it" class="sref">it//a>).<295//a>{.<296//a> struct /a href="+code=itimerval" class="sref">itimerval//a> /a href="+code=kit" class="sref">kit//a>;.<297//a> interror//a>;.<298//a>.<299//a> /a href="+code=error" class="sref">error//a> = /a href="+code=do_getitimer" class="sref">do_getitimer//a>(/a href="+code=which" class="sref">which//a>, &/a href="+code=kit" class="sref">kit//a>);.<300//a> if (!/a href="+code=error" class="sref">error//a> && /a href="+code=put_compat_itimerval" class="sref">put_compat_itimerval//a>(/a href="+code=it" class="sref">it//a>, &/a href="+code=kit" class="sref">kit//a>)).<301//a> /a href="+code=error" class="sref">error//a> = -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<302//a> return /a href="+code=error" class="sref">error//a>;.<303//a>}.<304//a>.<305//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_setitimer" class="sref">compat_sys_setitimer//a>(intwhich//a>,.<306//a> struct /a href="+code=compat_itimerval" class="sref">compat_itimerval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=in" class="sref">in//a>,.<307//a> struct /a href="+code=compat_itimerval" class="sref">compat_itimerval//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=out" class="sref">out//a>).<308//a>{.<309//a> struct /a href="+code=itimerval" class="sref">itimerval//a> /a href="+code=kin" class="sref">kin//a>, /a href="+code=kout" class="sref">kout//a>;.<310//a> interror//a>;.<311//a>.<312//a> if (/a href="+code=in" class="sref">in//a>) {.<313//a> if (/a href="+code=get_compat_itimerval" class="sref">get_compat_itimerval//a>(&/a href="+code=kin" class="sref">kin//a>, /a href="+code=in" class="sref">in//a>)).<314//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<315//a> } else.<316//a> /a href="+code=memset" class="sref">memset//a>(&/a href="+code=kin" class="sref">kin//a>, 0, sizeof(/a href="+code=kin" class="sref">kin//a>));.<317//a>.<318//a> /a href="+code=error" class="sref">error//a> = /a href="+code=do_setitimer" class="sref">do_setitimer//a>(/a href="+code=which" class="sref">which//a>, &/a href="+code=kin" class="sref">kin//a>, /a href="+code=out" class="sref">out//a> ? &/a href="+code=kout" class="sref">kout//a> : /a href="+code=NULL" class="sref">NULL//a>);.<319//a> if (/a href="+code=error" class="sref">error//a> || !/a href="+code=out" class="sref">out//a>).<320//a> return /a href="+code=error" class="sref">error//a>;.<321//a> if (/a href="+code=put_compat_itimerval" class="sref">put_compat_itimerval//a>(/a href="+code=out" class="sref">out//a>, &/a href="+code=kout" class="sref">kout//a>)).<322//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<323//a> return 0;.<324//a>}.<325//a>.<326//a>static /a href="+code=compat_clock_t" class="sref">compat_clock_t//a> /a href="+code=clock_t_to_compat_clock_t" class="sref">clock_t_to_compat_clock_t//a>(/a href="+code=clock_t" class="sref">clock_t//a> /a href="+code=x" class="sref">x//a>).<327//a>{.<328//a> return /a href="+code=compat_jiffies_to_clock_t" class="sref">compat_jiffies_to_clock_t//a>(/a href="+code=clock_t_to_jiffies" class="sref">clock_t_to_jiffies//a>(/a href="+code=x" class="sref">x//a>));.<329//a>}.<330//a>.<331//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_times" class="sref">compat_sys_times//a>(struct /a href="+code=compat_tms" class="sref">compat_tms//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=tbuf" class="sref">tbuf//a>).<332//a>{.<333//a> if (/a href="+code=tbuf" class="sref">tbuf//a>) {.<334//a> struct /a href="+code=tms" class="sref">tms//a> /a href="+code=tms" class="sref">tms//a>;.<335//a> struct /a href="+code=compat_tms" class="sref">compat_tms//a> /a href="+code=tmp" class="sref">tmp//a>;.<336//a>.<337//a> /a href="+code=do_sys_times" class="sref">do_sys_times//a>(&/a href="+code=tms" class="sref">tms//a>);.<338//a> /* Convert our struct tms to the compat version. */.<339//a> /a href="+code=tmp" class="sref">tmp//a>./a href="+code=tms_utime" class="sref">tms_utime//a> = /a href="+code=clock_t_to_compat_clock_t" class="sref">clock_t_to_compat_clock_t//a>(/a href="+code=tms" class="sref">tms//a>./a href="+code=tms_utime" class="sref">tms_utime//a>);.<340//a> /a href="+code=tmp" class="sref">tmp//a>./a href="+code=tms_stime" class="sref">tms_stime//a> = /a href="+code=clock_t_to_compat_clock_t" class="sref">clock_t_to_compat_clock_t//a>(/a href="+code=tms" class="sref">tms//a>./a href="+code=tms_stime" class="sref">tms_stime//a>);.<341//a> /a href="+code=tmp" class="sref">tmp//a>./a href="+code=tms_cutime" class="sref">tms_cutime//a> = /a href="+code=clock_t_to_compat_clock_t" class="sref">clock_t_to_compat_clock_t//a>(/a href="+code=tms" class="sref">tms//a>./a href="+code=tms_cutime" class="sref">tms_cutime//a>);.<342//a> /a href="+code=tmp" class="sref">tmp//a>./a href="+code=tms_cstime" class="sref">tms_cstime//a> = /a href="+code=clock_t_to_compat_clock_t" class="sref">clock_t_to_compat_clock_t//a>(/a href="+code=tms" class="sref">tms//a>./a href="+code=tms_cstime" class="sref">tms_cstime//a>);.<343//a> if (/a href="+code=copy_to_user" class="sref">copy_to_user//a>(/a href="+code=tbuf" class="sref">tbuf//a>, &/a href="+code=tmp" class="sref">tmp//a>, sizeof(/a href="+code=tmp" class="sref">tmp//a>))).<344//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<345//a> }.<346//a> /a href="+code=force_successful_syscall_return" class="sref">force_successful_syscall_return//a>();.<347//a> return /a href="+code=compat_jiffies_to_clock_t" class="sref">compat_jiffies_to_clock_t//a>(/a href="+code=jiffies" class="sref">jiffies//a>);.<348//a>}.<349//a>.<350//a>#ifdef /a href="+code=__ARCH_WANT_SYS_SIGPENDING" class="sref">__ARCH_WANT_SYS_SIGPENDING//a>.<351//a>.<352//a>/*.<353//a> * Assumption: old_sigset_t and compat_old_sigset_t are both.<354//a> * types that can be passed to put_user()/get_user()..<355//a> */.<356//a>.<357//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_sigpending" class="sref">compat_sys_sigpending//a>(/a href="+code=compat_old_sigset_t" class="sref">compat_old_sigset_t//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=set" class="sref">set//a>).<358//a>{.<359//a> /a href="+code=old_sigset_t" class="sref">old_sigset_t//a> /a href="+code=s" class="sref">s//a>;.<360//a> long /a href="+code=ret" class="sref">ret//a>;.<361//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=old_fs" class="sref">old_fs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<362//a>.<363//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<364//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=sys_sigpending" class="sref">sys_sigpending//a>((/a href="+code=old_sigset_t" class="sref">old_sigset_t//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=s" class="sref">s//a>);.<365//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=old_fs" class="sref">old_fs//a>);.<366//a> if (/a href="+code=ret" class="sref">ret//a> == 0).<367//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=put_user" class="sref">put_user//a>(/a href="+code=s" class="sref">s//a>, /a href="+code=set" class="sref">set//a>);.<368//a> return /a href="+code=ret" class="sref">ret//a>;.<369//a>}.<370//a>.<371//a>#endif.<372//a>.<373//a>#ifdef /a href="+code=__ARCH_WANT_SYS_SIGPROCMASK" class="sref">__ARCH_WANT_SYS_SIGPROCMASK//a>.<374//a>.<375//a>/*.<376//a> * sys_sigprocmask SIG_SETMASK sets the first (compat) word of the.<377//a> * blocked set of signals to the supplied signal set//span>.<378//a> */.<379//a>static /a href="+code=inline" class="sref">inline//a> void /a href="+code=compat_sig_setmask" class="sref">compat_sig_setmask//a>(/a href="+code=sigset_t" class="sref">sigset_t//a> */a href="+code=blocked" class="sref">blocked//a>, /a href="+code=compat_sigset_word" class="sref">compat_sigset_word//a> /a href="+code=set" class="sref">set//a>).<380//a>{.<381//a> /a href="+code=memcpy" class="sref">memcpy//a>(/a href="+code=blocked" class="sref">blocked//a>->/a href="+code=sig" class="sref">sig//a>, &/a href="+code=set" class="sref">set//a>, sizeof(/a href="+code=set" class="sref">set//a>));.<382//a>}.<383//a>.<384//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_sigprocmask" class="sref">compat_sys_sigprocmask//a>(inthow//a>,.<385//a> /a href="+code=compat_old_sigset_t" class="sref">compat_old_sigset_t//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=nset" class="sref">nset//a>,.<386//a> /a href="+code=compat_old_sigset_t" class="sref">compat_old_sigset_t//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=oset" class="sref">oset//a>).<387//a>{.<388//a> /a href="+code=old_sigset_t" class="sref">old_sigset_t//a> /a href="+code=old_set" class="sref">old_set//a>, /a href="+code=new_set" class="sref">new_set//a>;.<389//a> /a href="+code=sigset_t" class="sref">sigset_t//a> /a href="+code=new_blocked" class="sref">new_blocked//a>;.<390//a>.<391//a> /a href="+code=old_set" class="sref">old_set//a> = /a href="+code=current" class="sref">current//a>->/a href="+code=blocked" class="sref">blocked//a>./a href="+code=sig" class="sref">sig//a>[0];.<392//a>.<393//a> if (/a href="+code=nset" class="sref">nset//a>) {.<394//a> if (/a href="+code=get_user" class="sref">get_user//a>(/a href="+code=new_set" class="sref">new_set//a>, /a href="+code=nset" class="sref">nset//a>)).<395//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<396//a> /a href="+code=new_set" class="sref">new_set//a> &= ~(/a href="+code=sigmask" class="sref">sigmask//a>(/a href="+code=SIGKILL" class="sref">SIGKILL//a>) | /a href="+code=sigmask" class="sref">sigmask//a>(/a href="+code=SIGSTOP" class="sref">SIGSTOP//a>));.<397//a>.<398//a> new_blocked//a> = /a href="+code=current" class="sref">current//a>->/a href="+code=blocked" class="sref">blocked//a>;.<399//a>.<400//a> switch (/a href="+code=how" class="sref">how//a>) {.<401//a> case /a href="+code=SIG_BLOCK" class="sref">SIG_BLOCK//a>:.<402//a> /a href="+code=sigaddsetmask" class="sref">sigaddsetmask//a>(&/a href="+code=new_blocked" class="sref">new_blocked//a>, /a href="+code=new_set" class="sref">new_set//a>);.<403//a> break;.<404//a> case /a href="+code=SIG_UNBLOCK" class="sref">SIG_UNBLOCK//a>:.<405//a> /a href="+code=sigdelsetmask" class="sref">sigdelsetmask//a>(&/a href="+code=new_blocked" class="sref">new_blocked//a>, /a href="+code=new_set" class="sref">new_set//a>);.<406//a> break;.<407//a> case /a href="+code=SIG_SETMASK" class="sref">SIG_SETMASK//a>:.<408//a> /a href="+code=compat_sig_setmask" class="sref">compat_sig_setmask//a>(&/a href="+code=new_blocked" class="sref">new_blocked//a>, /a href="+code=new_set" class="sref">new_set//a>);.<409//a> break;.<410//a> default:.<411//a> return -/a href="+code=EINVAL" class="sref">EINVAL//a>;.<412//a> }.<413//a>.<414//a> /a href="+code=set_current_blocked" class="sref">set_current_blocked//a>(&/a href="+code=new_blocked" class="sref">new_blocked//a>);.<415//a> }.<416//a>.<417//a> if (/a href="+code=oset" class="sref">oset//a>) {.<418//a> if (/a href="+code=put_user" class="sref">put_user//a>(/a href="+code=old_set" class="sref">old_set//a>, /a href="+code=oset" class="sref">oset//a>)).<419//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<420//a> }.<421//a>.<422//a> return 0;.<423//a>}.<424//a>.<425//a>#endif.<426//a>.<427//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_setrlimit" class="sref">compat_sys_setrlimit//a>(unsigned intresource//a>,.<428//a> struct /a href="+code=compat_rlimit" class="sref">compat_rlimit//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=rlim" class="sref">rlim//a>).<429//a>{.<430//a> struct /a href="+code=rlimit" class="sref">rlimit//a> /a href="+code=r" class="sref">r//a>;.<431//a>.<432//a> if (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_READ" class="sref">VERIFY_READ//a>, /a href="+code=rlim" class="sref">rlim//a>, sizeof(*/a href="+code=rlim" class="sref">rlim//a>)) ||.<433//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=r" class="sref">r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a>, &/a href="+code=rlim" class="sref">rlim//a>->/a href="+code=rlim_cur" class="sref">rlim_cur//a>) ||.<434//a> /a href="+code=__get_user" class="sref">__get_user//a>(/a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a>, &/a href="+code=rlim" class="sref">rlim//a>->/a href="+code=rlim_max" class="sref">rlim_max//a>)).<435//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<436//a>.<437//a> if (/a href="+code=r" class="sref">r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a> == /a href="+code=COMPAT_RLIM_INFINITY" class="sref">COMPAT_RLIM_INFINITY//a>).<438//a> r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a> = RLIM_INFINITY//a>;.<439//a> if (/a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a> == /a href="+code=COMPAT_RLIM_INFINITY" class="sref">COMPAT_RLIM_INFINITY//a>).<440//a> /a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a> = RLIM_INFINITY//a>;.<441//a> return /a href="+code=do_prlimit" class="sref">do_prlimit//a>(/a href="+code=current" class="sref">current//a>, /a href="+code=resource" class="sref">resource//a>, &/a href="+code=r" class="sref">r//a>, /a href="+code=NULL" class="sref">NULL//a>);.<442//a>}.<443//a>.<444//a>#ifdef /a href="+code=COMPAT_RLIM_OLD_INFINITY" class="sref">COMPAT_RLIM_OLD_INFINITY//a>.<445//a>.<446//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_old_getrlimit" class="sref">compat_sys_old_getrlimit//a>(unsigned intresource//a>,.<447//a> struct /a href="+code=compat_rlimit" class="sref">compat_rlimit//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=rlim" class="sref">rlim//a>).<448//a>{.<449//a> struct /a href="+code=rlimit" class="sref">rlimit//a> /a href="+code=r" class="sref">r//a>;.<450//a> intret//a>;.<451//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=old_fs" class="sref">old_fs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<452//a>.<453//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<454//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=sys_old_getrlimit" class="sref">sys_old_getrlimit//a>(/a href="+code=resource" class="sref">resource//a>, &/a href="+code=r" class="sref">r//a>);.<455//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=old_fs" class="sref">old_fs//a>);.<456//a>.<457//a> if (!/a href="+code=ret" class="sref">ret//a>) {.<458//a> if (/a href="+code=r" class="sref">r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a> > /a href="+code=COMPAT_RLIM_OLD_INFINITY" class="sref">COMPAT_RLIM_OLD_INFINITY//a>).<459//a> r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a> = COMPAT_RLIM_INFINITY//a>;.<460//a> if (/a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a> > /a href="+code=COMPAT_RLIM_OLD_INFINITY" class="sref">COMPAT_RLIM_OLD_INFINITY//a>).<461//a> /a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a> = COMPAT_RLIM_INFINITY//a>;.<462//a>.<463//a> if (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_WRITE" class="sref">VERIFY_WRITE//a>, /a href="+code=rlim" class="sref">rlim//a>, sizeof(*/a href="+code=rlim" class="sref">rlim//a>)) ||.<464//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a>, &/a href="+code=rlim" class="sref">rlim//a>->/a href="+code=rlim_cur" class="sref">rlim_cur//a>) ||.<465//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a>, &/a href="+code=rlim" class="sref">rlim//a>->/a href="+code=rlim_max" class="sref">rlim_max//a>)).<466//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<467//a> }.<468//a> return /a href="+code=ret" class="sref">ret//a>;.<469//a>}.<470//a>.<471//a>#endif.<472//a>.<473//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_getrlimit" class="sref">compat_sys_getrlimit//a>(unsigned intresource//a>,.<474//a> struct /a href="+code=compat_rlimit" class="sref">compat_rlimit//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=rlim" class="sref">rlim//a>).<475//a>{.<476//a> struct /a href="+code=rlimit" class="sref">rlimit//a> /a href="+code=r" class="sref">r//a>;.<477//a> intret//a>;.<478//a>.<479//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=do_prlimit" class="sref">do_prlimit//a>(/a href="+code=current" class="sref">current//a>, /a href="+code=resource" class="sref">resource//a>, /a href="+code=NULL" class="sref">NULL//a>, &/a href="+code=r" class="sref">r//a>);.<480//a> if (!/a href="+code=ret" class="sref">ret//a>) {.<481//a> if (/a href="+code=r" class="sref">r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a> > /a href="+code=COMPAT_RLIM_INFINITY" class="sref">COMPAT_RLIM_INFINITY//a>).<482//a> /a href="+code=r" class="sref">r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a> = COMPAT_RLIM_INFINITY//a>;.<483//a> if (/a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a> > /a href="+code=COMPAT_RLIM_INFINITY" class="sref">COMPAT_RLIM_INFINITY//a>).<484//a> /a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a> = COMPAT_RLIM_INFINITY//a>;.<485//a>.<486//a> if (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_WRITE" class="sref">VERIFY_WRITE//a>, /a href="+code=rlim" class="sref">rlim//a>, sizeof(*/a href="+code=rlim" class="sref">rlim//a>)) ||.<487//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>./a href="+code=rlim_cur" class="sref">rlim_cur//a>, &/a href="+code=rlim" class="sref">rlim//a>->/a href="+code=rlim_cur" class="sref">rlim_cur//a>) ||.<488//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>./a href="+code=rlim_max" class="sref">rlim_max//a>, &/a href="+code=rlim" class="sref">rlim//a>->/a href="+code=rlim_max" class="sref">rlim_max//a>)).<489//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<490//a> }.<491//a> return /a href="+code=ret" class="sref">ret//a>;.<492//a>}.<493//a>.<494//a>intput_compat_rusage//a>(const struct /a href="+code=rusage" class="sref">rusage//a> */a href="+code=r" class="sref">r//a>, struct /a href="+code=compat_rusage" class="sref">compat_rusage//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=ru" class="sref">ru//a>).<495//a>{.<496//a> if (!/a href="+code=access_ok" class="sref">access_ok//a>(/a href="+code=VERIFY_WRITE" class="sref">VERIFY_WRITE//a>, /a href="+code=ru" class="sref">ru//a>, sizeof(*/a href="+code=ru" class="sref">ru//a>)) ||.<497//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_utime" class="sref">ru_utime//a>./a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_utime" class="sref">ru_utime//a>./a href="+code=tv_sec" class="sref">tv_sec//a>) ||.<498//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_utime" class="sref">ru_utime//a>./a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_utime" class="sref">ru_utime//a>./a href="+code=tv_usec" class="sref">tv_usec//a>) ||.<499//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_stime" class="sref">ru_stime//a>./a href="+code=tv_sec" class="sref">tv_sec//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_stime" class="sref">ru_stime//a>./a href="+code=tv_sec" class="sref">tv_sec//a>) ||.<500//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_stime" class="sref">ru_stime//a>./a href="+code=tv_usec" class="sref">tv_usec//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_stime" class="sref">ru_stime//a>./a href="+code=tv_usec" class="sref">tv_usec//a>) ||.<501//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_maxrss" class="sref">ru_maxrss//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_maxrss" class="sref">ru_maxrss//a>) ||.<502//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_ixrss" class="sref">ru_ixrss//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_ixrss" class="sref">ru_ixrss//a>) ||.<503//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_idrss" class="sref">ru_idrss//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_idrss" class="sref">ru_idrss//a>) ||.<504//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_isrss" class="sref">ru_isrss//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_isrss" class="sref">ru_isrss//a>) ||.<505//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_minflt" class="sref">ru_minflt//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_minflt" class="sref">ru_minflt//a>) ||.<506//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_majflt" class="sref">ru_majflt//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_majflt" class="sref">ru_majflt//a>) ||.<507//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_nswap" class="sref">ru_nswap//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_nswap" class="sref">ru_nswap//a>) ||.<508//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_inblock" class="sref">ru_inblock//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_inblock" class="sref">ru_inblock//a>) ||.<509//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_oublock" class="sref">ru_oublock//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_oublock" class="sref">ru_oublock//a>) ||.<510//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_msgsnd" class="sref">ru_msgsnd//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_msgsnd" class="sref">ru_msgsnd//a>) ||.<511//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_msgrcv" class="sref">ru_msgrcv//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_msgrcv" class="sref">ru_msgrcv//a>) ||.<512//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_nsignals" class="sref">ru_nsignals//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_nsignals" class="sref">ru_nsignals//a>) ||.<513//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_nvcsw" class="sref">ru_nvcsw//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_nvcsw" class="sref">ru_nvcsw//a>) ||.<514//a> /a href="+code=__put_user" class="sref">__put_user//a>(/a href="+code=r" class="sref">r//a>->/a href="+code=ru_nivcsw" class="sref">ru_nivcsw//a>, &/a href="+code=ru" class="sref">ru//a>->/a href="+code=ru_nivcsw" class="sref">ru_nivcsw//a>)).<515//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<516//a> return 0;.<517//a>}.<518//a>.<519//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_getrusage" class="sref">compat_sys_getrusage//a>(intwho//a>, struct /a href="+code=compat_rusage" class="sref">compat_rusage//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=ru" class="sref">ru//a>).<520//a>{.<521//a> struct /a href="+code=rusage" class="sref">rusage//a> /a href="+code=r" class="sref">r//a>;.<522//a> intret//a>;.<523//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=old_fs" class="sref">old_fs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<524//a>.<525//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<526//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=sys_getrusage" class="sref">sys_getrusage//a>(/a href="+code=who" class="sref">who//a>, (struct /a href="+code=rusage" class="sref">rusage//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=r" class="sref">r//a>);.<527//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=old_fs" class="sref">old_fs//a>);.<528//a>.<529//a> if (/a href="+code=ret" class="sref">ret//a>).<530//a> return /a href="+code=ret" class="sref">ret//a>;.<531//a>.<532//a> if (/a href="+code=put_compat_rusage" class="sref">put_compat_rusage//a>(&/a href="+code=r" class="sref">r//a>, /a href="+code=ru" class="sref">ru//a>)).<533//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<534//a>.<535//a> return 0;.<536//a>}.<537//a>.<538//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long.<539//a>/a href="+code=compat_sys_wait4" class="sref">compat_sys_wait4//a>(/a href="+code=compat_pid_t" class="sref">compat_pid_t//a> /a href="+code=pid" class="sref">pid//a>, /a href="+code=compat_uint_t" class="sref">compat_uint_t//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=stat_addr" class="sref">stat_addr//a>, intoptions//a>,.<540//a> struct /a href="+code=compat_rusage" class="sref">compat_rusage//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=ru" class="sref">ru//a>).<541//a>{.<542//a> if (!/a href="+code=ru" class="sref">ru//a>) {.<543//a> return /a href="+code=sys_wait4" class="sref">sys_wait4//a>(/a href="+code=pid" class="sref">pid//a>, /a href="+code=stat_addr" class="sref">stat_addr//a>, /a href="+code=options" class="sref">options//a>, /a href="+code=NULL" class="sref">NULL//a>);.<544//a> } else {.<545//a> struct /a href="+code=rusage" class="sref">rusage//a> /a href="+code=r" class="sref">r//a>;.<546//a> intret//a>;.<547//a> unsigned intstatus//a>;.<548//a> mm_segment_t//a> /a href="+code=old_fs" class="sref">old_fs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<549//a>.<550//a> /a href="+code=set_fs" class="sref">set_fs//a> (/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<551//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=sys_wait4" class="sref">sys_wait4//a>(/a href="+code=pid" class="sref">pid//a>,.<552//a> (/a href="+code=stat_addr" class="sref">stat_addr//a> ?.<553//a> (unsigned int__user//a> *) &/a href="+code=status" class="sref">status//a> : /a href="+code=NULL" class="sref">NULL//a>),.<554//a> /a href="+code=options" class="sref">options//a>, (struct /a href="+code=rusage" class="sref">rusage//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=r" class="sref">r//a>);.<555//a> /a href="+code=set_fs" class="sref">set_fs//a> (/a href="+code=old_fs" class="sref">old_fs//a>);.<556//a>.<557//a> if (/a href="+code=ret" class="sref">ret//a> > 0) {.<558//a> if (/a href="+code=put_compat_rusage" class="sref">put_compat_rusage//a>(&/a href="+code=r" class="sref">r//a>, /a href="+code=ru" class="sref">ru//a>)).<559//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<560//a> if (/a href="+code=stat_addr" class="sref">stat_addr//a> &&put_user//a>(/a href="+code=status" class="sref">status//a>, /a href="+code=stat_addr" class="sref">stat_addr//a>)).<561//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<562//a> }.<563//a> return /a href="+code=ret" class="sref">ret//a>;.<564//a> }.<565//a>}.<566//a>.<567//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_waitid" class="sref">compat_sys_waitid//a>(intwhich//a>, /a href="+code=compat_pid_t" class="sref">compat_pid_t//a> /a href="+code=pid" class="sref">pid//a>,.<568//a> struct /a href="+code=compat_siginfo" class="sref">compat_siginfo//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=uinfo" class="sref">uinfo//a>, intoptions//a>,.<569//a> struct /a href="+code=compat_rusage" class="sref">compat_rusage//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=uru" class="sref">uru//a>).<570//a>{.<571//a> /a href="+code=siginfo_t" class="sref">siginfo_t//a> /a href="+code=info" class="sref">info//a>;.<572//a> struct /a href="+code=rusage" class="sref">rusage//a> /a href="+code=ru" class="sref">ru//a>;.<573//a> long /a href="+code=ret" class="sref">ret//a>;.<574//a> mm_segment_t//a> /a href="+code=old_fs" class="sref">old_fs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<575//a>.<576//a> /a href="+code=memset" class="sref">memset//a>(&/a href="+code=info" class="sref">info//a>, 0, sizeof(/a href="+code=info" class="sref">info//a>));.<577//a>.<578//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<579//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=sys_waitid" class="sref">sys_waitid//a>(/a href="+code=which" class="sref">which//a>, /a href="+code=pid" class="sref">pid//a>, (/a href="+code=siginfo_t" class="sref">siginfo_t//a> /a href="+code=__user" class="sref">__user//a> *)&/a href="+code=info" class="sref">info//a>, /a href="+code=options" class="sref">options//a>,.<580//a> /a href="+code=uru" class="sref">uru//a> ? (struct /a href="+code=rusage" class="sref">rusage//a> /a href="+code=__user" class="sref">__user//a> *)&/a href="+code=ru" class="sref">ru//a> : /a href="+code=NULL" class="sref">NULL//a>);.<581//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=old_fs" class="sref">old_fs//a>);.<582//a>.<583//a> if ((/a href="+code=ret" class="sref">ret//a> < 0) || (/a href="+code=info" class="sref">info//a>./a href="+code=si_signo" class="sref">si_signo//a> == 0)).<584//a> return /a href="+code=ret" class="sref">ret//a>;.<585//a>.<586//a> if (/a href="+code=uru" class="sref">uru//a>) {.<587//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=put_compat_rusage" class="sref">put_compat_rusage//a>(&/a href="+code=ru" class="sref">ru//a>, /a href="+code=uru" class="sref">uru//a>);.<588//a> if (/a href="+code=ret" class="sref">ret//a>).<589//a> return /a href="+code=ret" class="sref">ret//a>;.<590//a> }.<591//a>.<592//a> /a href="+code=BUG_ON" class="sref">BUG_ON//a>(/a href="+code=info" class="sref">info//a>./a href="+code=si_code" class="sref">si_code//a> & /a href="+code=__SI_MASK" class="sref">__SI_MASK//a>);.<593//a> /a href="+code=info" class="sref">info//a>./a href="+code=si_code" class="sref">si_code//a> |= /a href="+code=__SI_CHLD" class="sref">__SI_CHLD//a>;.<594//a> return /a href="+code=copy_siginfo_to_user32" class="sref">copy_siginfo_to_user32//a>(/a href="+code=uinfo" class="sref">uinfo//a>, &/a href="+code=info" class="sref">info//a>);.<595//a>}.<596//a>.<597//a>static intcompat_get_user_cpu_mask//a>(/a href="+code=compat_ulong_t" class="sref">compat_ulong_t//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=user_mask_ptr" class="sref">user_mask_ptr//a>,.<598//a> unsigned /a href="+code=len" class="sref">len//a>, struct /a href="+code=cpumask" class="sref">cpumask//a> */a href="+code=new_mask" class="sref">new_mask//a>).<599//a>{.<600//a> unsigned long */a href="+code=k" class="sref">k//a>;.<601//a>.<602//a> if (/a href="+code=len" class="sref">len//a> < /a href="+code=cpumask_size" class="sref">cpumask_size//a>()).<603//a> /a href="+code=memset" class="sref">memset//a>(/a href="+code=new_mask" class="sref">new_mask//a>, 0, /a href="+code=cpumask_size" class="sref">cpumask_size//a>());.<604//a> else if (/a href="+code=len" class="sref">len//a> > /a href="+code=cpumask_size" class="sref">cpumask_size//a>()).<605//a> /a href="+code=len" class="sref">len//a> = /a href="+code=cpumask_size" class="sref">cpumask_size//a>();.<606//a>.<607//a> /a href="+code=k" class="sref">k//a> = /a href="+code=cpumask_bits" class="sref">cpumask_bits//a>(/a href="+code=new_mask" class="sref">new_mask//a>);.<608//a> return /a href="+code=compat_get_bitmap" class="sref">compat_get_bitmap//a>(/a href="+code=k" class="sref">k//a>, /a href="+code=user_mask_ptr" class="sref">user_mask_ptr//a>, /a href="+code=len" class="sref">len//a> * 8);.<609//a>}.<610//a>.<611//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_sched_setaffinity" class="sref">compat_sys_sched_setaffinity//a>(/a href="+code=compat_pid_t" class="sref">compat_pid_t//a> /a href="+code=pid" class="sref">pid//a>,.<612//a> unsigned intlen//a>,.<613//a> /a href="+code=compat_ulong_t" class="sref">compat_ulong_t//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=user_mask_ptr" class="sref">user_mask_ptr//a>).<614//a>{.<615//a> /a href="+code=cpumask_var_t" class="sref">cpumask_var_t//a> /a href="+code=new_mask" class="sref">new_mask//a>;.<616//a> intretval//a>;.<617//a>.<618//a> if (!/a href="+code=alloc_cpumask_var" class="sref">alloc_cpumask_var//a>(&/a href="+code=new_mask" class="sref">new_mask//a>, /a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL//a>)).<619//a> return -/a href="+code=ENOMEM" class="sref">ENOMEM//a>;.<620//a>.<621//a> /a href="+code=retval" class="sref">retval//a> = /a href="+code=compat_get_user_cpu_mask" class="sref">compat_get_user_cpu_mask//a>(/a href="+code=user_mask_ptr" class="sref">user_mask_ptr//a>, /a href="+code=len" class="sref">len//a>, /a href="+code=new_mask" class="sref">new_mask//a>);.<622//a> if (/a href="+code=retval" class="sref">retval//a>).<623//a> goto /a href="+code=out" class="sref">out//a>;.<624//a>.<625//a> /a href="+code=retval" class="sref">retval//a> = /a href="+code=sched_setaffinity" class="sref">sched_setaffinity//a>(/a href="+code=pid" class="sref">pid//a>, /a href="+code=new_mask" class="sref">new_mask//a>);.<626//a>/a href="+code=out" class="sref">out//a>:.<627//a> /a href="+code=free_cpumask_var" class="sref">free_cpumask_var//a>(/a href="+code=new_mask" class="sref">new_mask//a>);.<628//a> return /a href="+code=retval" class="sref">retval//a>;.<629//a>}.<630//a>.<631//a>/a href="+code=asmlinkage" class="sref">asmlinkage//a> long /a href="+code=compat_sys_sched_getaffinity" class="sref">compat_sys_sched_getaffinity//a>(/a href="+code=compat_pid_t" class="sref">compat_pid_t//a> /a href="+code=pid" class="sref">pid//a>, unsigned intlen//a>,.<632//a> /a href="+code=compat_ulong_t" class="sref">compat_ulong_t//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=user_mask_ptr" class="sref">user_mask_ptr//a>).<633//a>{.<634//a> intret//a>;.<635//a> /a href="+code=cpumask_var_t" class="sref">cpumask_var_t//a> /a href="+code=mask" class="sref">mask//a>;.<636//a>.<637//a> if ((/a href="+code=len" class="sref">len//a> * /a href="+code=BITS_PER_BYTE" class="sref">BITS_PER_BYTE//a>) < /a href="+code=nr_cpu_ids" class="sref">nr_cpu_ids//a>).<638//a> return -/a href="+code=EINVAL" class="sref">EINVAL//a>;.<639//a> if (/a href="+code=len" class="sref">len//a> & (sizeof(/a href="+code=compat_ulong_t" class="sref">compat_ulong_t//a>)-1)).<640//a> return -/a href="+code=EINVAL" class="sref">EINVAL//a>;.<641//a>.<642//a> if (!/a href="+code=alloc_cpumask_var" class="sref">alloc_cpumask_var//a>(&/a href="+code=mask" class="sref">mask//a>, /a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL//a>)).<643//a> return -/a href="+code=ENOMEM" class="sref">ENOMEM//a>;.<644//a>.<645//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=sched_getaffinity" class="sref">sched_getaffinity//a>(/a href="+code=pid" class="sref">pid//a>, /a href="+code=mask" class="sref">mask//a>);.<646//a> if (/a href="+code=ret" class="sref">ret//a> == 0) {.<647//a> /a href="+code=size_t" class="sref">size_t//a> /a href="+code=retlen" class="sref">retlen//a> = /a href="+code=min_t" class="sref">min_t//a>(/a href="+code=size_t" class="sref">size_t//a>, /a href="+code=len" class="sref">len//a>, /a href="+code=cpumask_size" class="sref">cpumask_size//a>());.<648//a>.<649//a> if (/a href="+code=compat_put_bitmap" class="sref">compat_put_bitmap//a>(/a href="+code=user_mask_ptr" class="sref">user_mask_ptr//a>, /a href="+code=cpumask_bits" class="sref">cpumask_bits//a>(/a href="+code=mask" class="sref">mask//a>), /a href="+code=retlen" class="sref">retlen//a> * 8)).<650//a> /a href="+code=ret" class="sref">ret//a> = -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<651//a> else.<652//a> /a href="+code=ret" class="sref">ret//a> = /a href="+code=retlen" class="sref">retlen//a>;.<653//a> }.<654//a> /a href="+code=free_cpumask_var" class="sref">free_cpumask_var//a>(/a href="+code=mask" class="sref">mask//a>);.<655//a>.<656//a> return /a href="+code=ret" class="sref">ret//a>;.<657//a>}.<658//a>.<659//a>intget_compat_itimerspec//a>(struct /a href="+code=itimerspec" class="sref">itimerspec//a> */a href="+code=dst" class="sref">dst//a>,.<660//a> const struct /a href="+code=compat_itimerspec" class="sref">compat_itimerspec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=src" class="sref">src//a>).<661//a>{.<662//a> if (/a href="+code=get_compat_timespec" class="sref">get_compat_timespec//a>(&/a href="+code=dst" class="sref">dst//a>->/a href="+code=it_interval" class="sref">it_interval//a>, &/a href="+code=src" class="sref">src//a>->/a href="+code=it_interval" class="sref">it_interval//a>) ||.<663//a> /a href="+code=get_compat_timespec" class="sref">get_compat_timespec//a>(&/a href="+code=dst" class="sref">dst//a>->/a href="+code=it_value" class="sref">it_value//a>, &/a href="+code=src" class="sref">src//a>->/a href="+code=it_value" class="sref">it_value//a>)).<664//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<665//a> return 0;.<666//a>}.<667//a>.<668//a>intput_compat_itimerspec//a>(struct /a href="+code=compat_itimerspec" class="sref">compat_itimerspec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=dst" class="sref">dst//a>,.<669//a> const struct /a href="+code=itimerspec" class="sref">itimerspec//a> */a href="+code=src" class="sref">src//a>).<670//a>{.<671//a> if (/a href="+code=put_compat_timespec" class="sref">put_compat_timespec//a>(&/a href="+code=src" class="sref">src//a>->/a href="+code=it_interval" class="sref">it_interval//a>, &/a href="+code=dst" class="sref">dst//a>->/a href="+code=it_interval" class="sref">it_interval//a>) ||.<672//a> /a href="+code=put_compat_timespec" class="sref">put_compat_timespec//a>(&/a href="+code=src" class="sref">src//a>->/a href="+code=it_value" class="sref">it_value//a>, &/a href="+code=dst" class="sref">dst//a>->/a href="+code=it_value" class="sref">it_value//a>)).<673//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<674//a> return 0;.<675//a>}.<676//a>.<677//a>long /a href="+code=compat_sys_timer_create" class="sref">compat_sys_timer_create//a>(/a href="+code=clockid_t" class="sref">clockid_t//a> /a href="+code=which_clock" class="sref">which_clock//a>,.<678//a> struct /a href="+code=compat_sigevent" class="sref">compat_sigevent//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=timer_event_spec" class="sref">timer_event_spec//a>,.<679//a> /a href="+code=timer_t" class="sref">timer_t//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=created_timer_id" class="sref">created_timer_id//a>).<680//a>{.<681//a> struct /a href="+code=sigevent" class="sref">sigevent//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=event" class="sref">event//a> = /a href="+code=NULL" class="sref">NULL//a>;.<682//a>.<683//a> if (/a href="+code=timer_event_spec" class="sref">timer_event_spec//a>) {.<684//a> struct /a href="+code=sigevent" class="sref">sigevent//a> /a href="+code=kevent" class="sref">kevent//a>;.<685//a>.<686//a> /a href="+code=event" class="sref">event//a> = /a href="+code=compat_alloc_user_space" class="sref">compat_alloc_user_space//a>(sizeof(*/a href="+code=event" class="sref">event//a>));.<687//a> if (/a href="+code=get_compat_sigevent" class="sref">get_compat_sigevent//a>(&/a href="+code=kevent" class="sref">kevent//a>, /a href="+code=timer_event_spec" class="sref">timer_event_spec//a>) ||.<688//a> /a href="+code=copy_to_user" class="sref">copy_to_user//a>(/a href="+code=event" class="sref">event//a>, &/a href="+code=kevent" class="sref">kevent//a>, sizeof(*/a href="+code=event" class="sref">event//a>))).<689//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<690//a> }.<691//a>.<692//a> return /a href="+code=sys_timer_create" class="sref">sys_timer_create//a>(/a href="+code=which_clock" class="sref">which_clock//a>, /a href="+code=event" class="sref">event//a>, /a href="+code=created_timer_id" class="sref">created_timer_id//a>);.<693//a>}.<694//a>.<695//a>long /a href="+code=compat_sys_timer_settime" class="sref">compat_sys_timer_settime//a>(/a href="+code=timer_t" class="sref">timer_t//a> /a href="+code=timer_id" class="sref">timer_id//a>, intflags//a>,.<696//a> struct /a href="+code=compat_itimerspec" class="sref">compat_itimerspec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=new" class="sref">new//a>,.<697//a> struct /a href="+code=compat_itimerspec" class="sref">compat_itimerspec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=old" class="sref">old//a>).<698//a>{.<699//a> long /a href="+code=err" class="sref">err//a>;.<700//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<701//a> struct /a href="+code=itimerspec" class="sref">itimerspec//a> /a href="+code=newts" class="sref">newts//a>, /a href="+code=oldts" class="sref">oldts//a>;.<702//a>.<703//a> if (!/a href="+code=new" class="sref">new//a>).<704//a> return -/a href="+code=EINVAL" class="sref">EINVAL//a>;.<705//a> if (/a href="+code=get_compat_itimerspec" class="sref">get_compat_itimerspec//a>(&/a href="+code=newts" class="sref">newts//a>, /a href="+code=new" class="sref">new//a>)).<706//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<707//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<708//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<709//a> /a href="+code=err" class="sref">err//a> = /a href="+code=sys_timer_settime" class="sref">sys_timer_settime//a>(/a href="+code=timer_id" class="sref">timer_id//a>, /a href="+code=flags" class="sref">flags//a>,.<710//a> (struct /a href="+code=itimerspec" class="sref">itimerspec//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=newts" class="sref">newts//a>,.<711//a> (struct /a href="+code=itimerspec" class="sref">itimerspec//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=oldts" class="sref">oldts//a>);.<712//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<713//a> if (!/a href="+code=err" class="sref">err//a> &&old//a> &&put_compat_itimerspec//a>(/a href="+code=old" class="sref">old//a>, &/a href="+code=oldts" class="sref">oldts//a>)).<714//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<715//a> return /a href="+code=err" class="sref">err//a>;.<716//a>}.<717//a>.<718//a>long /a href="+code=compat_sys_timer_gettime" class="sref">compat_sys_timer_gettime//a>(/a href="+code=timer_t" class="sref">timer_t//a> /a href="+code=timer_id" class="sref">timer_id//a>,.<719//a> struct /a href="+code=compat_itimerspec" class="sref">compat_itimerspec//a> /a href="+code=__user" class="sref">__user//a> */a href="+code=setting" class="sref">setting//a>).<720//a>{.<721//a> long /a href="+code=err" class="sref">err//a>;.<722//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<723//a> struct /a href="+code=itimerspec" class="sref">itimerspec//a> /a href="+code=ts" class="sref">ts//a>;.<724//a>.<725//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<726//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<727//a> /a href="+code=err" class="sref">err//a> = /a href="+code=sys_timer_gettime" class="sref">sys_timer_gettime//a>(/a href="+code=timer_id" class="sref">timer_id//a>,.<72 unsigned /a href="+code=len"(struct /a href="+code=itimerspec" class="sref">itimerspec//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=ts" class="sref">ts//a>;;.<709//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<710//a> if (!/a href="+code=err" class="sref">err//a> &&put_compat_itimerspec//a>(/a href="+code=setting" class="sref">ef">old//a>, &/a href="+code=ts" class="srsetting//a>).<711//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<692//a> return /a href="+code=err" class="sref">err//a>;.<693//a>}.<724//a>.<695//a>long /a href="+code=ref">t_sys_timer_settime" class="sref">ref">t_sys_ti_itimerspec//a>(/a href="+code=clockid_t" class="sref">clockid_t//a> /a href="+code=which_clock" class="sref">which_clock//a>,.<706//a> struct /a href="+cput_compat_timespec" cl"sref">put_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> */a hrt_put_bitmap" cltpef">setting//a>).<720//a>{.<638//a> long /a href="+code=err" class="sref">err//a>;.<709//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<640/ struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=ts" class="sref">ts//a>;.<641//a>.<642//a> if (/a href="+code=get_compat_timespec" class="sref">get_compat_timespec//a>(&/a href="+code=ts" class="s>kevent//a>, /a hrt_put_bitmap" cltpef">ssetting//a>).<643//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<654//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<645//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<726//a> /a href="+code=err" class="sref">err//a> = /a href=ref">t_sys_timer_settime" clef">ref">t_sys_ti_itimerspec//a>(/a href="+code=which_clock" class="sref">which_clock//a>,.<647//a> "+code=len"(struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=ts" class="sref">ts//a>;;.<708//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<649//a> return /a href="+code=err" class="sref">err//a>;.<693//a>}.<641//a>.<695//a>long /a href="+code=ref">t_sys_timer_gettime" class="sref">ref">t_sys_ti_itimerspec//a>(/a href="+code=clockid_t" class="sref">clockid_t//a> /a href="+code=which_clock" class="sref">which_clock//a>,.<643//a> struct /a href="+cput_compat_timespec" cl"sref">put_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> */a hrt_put_bitmap" cltpef">setting//a>).<614//a>{.<645//a> long /a href="+code=err" class="sref">err//a>;.<576//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<647/ struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=ts" class="sref">ts//a>;.<658//a>.<709//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<700//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<621//a> /a href="+code=err" class="sref">err//a> = /a href=ref">t=sys_timer_gettime" class=ref">t_sys_ti_itimerspec//a>(/a href="+code=which_clock" class="sref">which_clock//a>,.<662//a> "+code=len"(struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=ts" class="sref">ts//a>;;.<663//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<664//a> if (!/a href="+code=err" class="sref">err//a> &&put_compat_timespec//a>(&/a href="+code=ts" class="s>kevent//a>, /a hrt_put_bitmap" cltpef">ssetting//a>).<665/9"><649//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<656//a> return /a href="+code=err" class="sref">err//a>;.<657//a>}.<658//a>.<695//a>long /a href="+code=ref">tadjs_timer_gettime" class="sref">ref">tadjs_ti_itimerspec//a>(/a href="+code=clockid_t" class="sref">clockid_t//a> /a href="+code=which_clock" class="sref">which_clock//a>,.<710//a> struct /a href="+cput_xat_timespec" cl"sref">put_xat_tigevent//a> /a href="+code=__user" class="sref">__user//a> */a hurt_put_bitmap" clutpef">setting//a>).<661//a>{.<672/+code=len"(struct /a hput_xat_timespec" clput_xat_tigevent//a> /a htxpat_timespec" clpxc="sref">err//a>;.<663//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<674/er_id//a>, intmask//a>), /a href="+code=err" class="sref">ret//a>;.<685//a>.<726//a> /a href="+code=err" class="sref">err//a> = /a h"sref">ass=put_xat_timespec" cl"sref">ass=put_xat_timespec//a>(&/a hrxpat_timespec" clpxc="srsref">k//a>, /a hrrt_put_bitmap" clutpef">sef">ret//a>;.<637//a> /a> /a href="+code=err" class="srsetting//a>).<678//a> /a> return /a href="+code=err" class="sref">err//a>;.err//a>;.<700//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<621//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<722//a> /a href="+code=ret" class="sref">ret//a> = /a hrde=ref">tadjs_timer_gettime" clef">ref">tadjs_ti_itimerspec//a>(/a href="+code=which_clock" class="sref">which_"+code=len"(struct /a hput_xat_timespec" clput_xat_tigevent//a> /a href="+code=__user" class="sref">__user//a> *) &/a hrxpat_timespec" clpxc="srRNEL_DS//a>);.<663//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<724//a>.<645//a> /a href="+code=err" class="sref">err//a> = /a h"sref">ass=put_xat_timespec" cl"sref">ass=put_xref">set_fs//a>(/a hrrt_put_bitmap" clutpef">ef">old//a>, &/a hrxpat_timespec" clpxc="srRNEL_DS//a>);.<646//a> if (/a href="+code=err" class="srsetting//a>).<687//a> /a> return /a href="+code=err" class="sref">err//a>;.<658//a>.<649//a> return /a href="+code=err" class="sref">ret//a>;.<693//a>}.<691//a>.<695//a>long /a href="+code=ref">t_syrecpumask_bits" claef="+code=ref">t_syrec_itimerspec//a>(/a href="+code=clockid_t" class="sref">clockid_t//a> /a href="+code=which_clock" class="sref">which_clock//a>,.<643//a> struct /a href="+cput_compat_timespec" cl"sref">put_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> */a hrt_put_bitmap" cltpef">setting//a>).<614//a>{.<645//a> long /a href="+code=err" class="sref">err//a>;.<576//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<647/ struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=ts" class="sref">ts//a>;.<658//a>.<709//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<700//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<621//a> /a href="+code=err" class="sref">err//a> = /a href=ref">t=syrecpumask_bits" clode=ref">t_syrec_itimerspec//a>(/a href="+code=which_clock" class="sref">which_clock//a>,.<662//a> "+code=len"(struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> *) &/a href="+code=ts" class="sref">ts//a>;;.<663//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<664//a> if (!/a href="+code=err" class="sref">err//a> &&ef">err//a> &&put_compat_timespec//a>(&/a href="+code=ts" class="s>kevent//a>, /a hrt_put_bitmap" cltpef">ssetting//a>).<665/9"><649//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<656//a> return /a href="+code=err" class="sref">err//a>;.<657//a>}.<658//a>. long /a href="+cref">tnanosleep_rectarpat_sigevent" class="srref">tnanosleep_rectarpat_ti+code=len"(struct /a hrectarp_bode=which_clock" clrectarp_bode=ref">__user//a> */a hrectarpat_sigevent" clrectarpat_tsetting//a>).<720//a>{.<721//a> long /a href="+code=err" class="sref">err//a>;.<712//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<713/ struct /a hput_compat_timespec" clput_compat_tigevent//a> /a hruat_timespec" clpusref">oldfs//a>;.<714/ struct /a href="+cput_compat_timespec" cl"sref">put_compat_ti__user//a> */a hrmrt_put_bitmap" clrmrt="sref">err//a> = /a hrectarpat_sigevent" clrectarpat_tef">dst//a>->/a hnanosleepat_sigevent" clnanosleepat_t. struct /a href="+crmrt_put_bitmap" clref="+crmrtsref">oldfs//a>;.<685//a>.<576//a> /a hrectarpat_sigevent" clrectarpat_tef">dst//a>->/a hnanosleepat_sigevent" clnanosleepat_t. struct /a hrmrt_put_bitmap" clrmrt="sref""+code=len"(struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> *) &/a hruat_timespec" clpusref">oldfs//a>;.<707//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<708//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<709//a> /a href="+code=err" class="sref">err//a> = /a href">tnanosleep_rectarpat_sigevent" claef">tnanosleep_rectarpat_ti_user//a> */a hrectarpat_sigevent" clrectarpat_tsNEL_DS//a>);.<700//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<691//a>.<722//a> if (/a href="+code=err" class="sref"> return -/a hrRESTART_RESTARTBLOCKcode=EFAULT" claRESTART_RESTARTBLOCKsref"ef">err//a> &&err//a>1"><691//a>.<643//a> &&put_compat_timespec//a>(&/a hruat_timespec" clpusref">mask//a>), /a hrmrt_put_bitmap" clrmrt="srssetting//a>).<714//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<685//a>.<646//a> if (/a href="+code=err" class="sref"> return -/a hrRESTART_RESTARTBLOCKcode=EFAULT" claRESTART_RESTARTBLOCKsref"e0"><720//a>{.<647//a> /a hrectarpat_sigevent" clrectarpat_tef">dst//a>->/a hf+code=retlen" clfsref">retlen//a> = /a href="+cref">tnanosleep_rectarpat_sigevent" class="srref">tnanosleep_rectarpat_t>EFAULT//a>;.<72 u>err//a> = /a hrectarpat_sigevent" clrectarpat_tef">dst//a>->/a hnanosleepat_sigevent" clnanosleepat_t. struct /a href="+crmrt_put_bitmap" clref="+crmrtsrefef">err//a> = /a hrmrt_put_bitmap" clrmrt="sr>EFAULT//a>;.<709/7"><657//a>}.<710//a> return /a href="+code=err" class="sref">err//a>;.<657//a>}.<702//a>.<695//a>long /a href="+code=ref">tnanosleepat_sigevent" clref="+code=ref">tnanosleep_itimerspec//a>(/a href="+code=clockid_t" class="sref">clockid_t//a> /a href="+code=which_clock" class="sref">whichmer_id//a>, intflags//a>,.<714//a> struct /a href="+cput_compat_timespec" cl"sref">put_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> */a hrqrt_put_bitmap" clrqtpef">e>flags//a>,.<665/9"><649/ struct /a href="+cput_compat_timespec" cl"sref">put_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> */a hrmrt_put_bitmap" clrmrt="srs>flags//a>,.<720//a>{.<647//a> long /a href="+code=err" class="sref">err//a>;.<708//a> /a href="+code=mm_segment_t" class="sref">mm_segment_t//a> /a href="+code=oldfs" class="sref">oldfs//a>;.<709/+code=len"(struct /a hput_compat_timespec" clput_compat_tigevent//a> /a hi+code=retlen" clinsref">mask//a>), /a houmm_segment_t" cloumsref">oldfs//a>;.<640/ struct /a hrectarp_bode=which_clock" clrectarp_bode=ref">__user//a> */a hrectarpat_sigevent" clrectarpat_t">oldfs//a>;.<641//a>.<642//a> if (/a href="+code=get_compat_timespec" class="sref">get_compat_timespec//a>(&/a hi+code=retlen" clinsref">mask//a>), /a hrqrt_put_bitmap" clrqtpef">ssetting//a>).<643//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<724//a>.<645//a> /a href="+code=oldfs" class="sref">oldfs//a> = /a href="+code=get_fs" class="sref">get_fs//a>();.<726//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=KERNEL_DS" class="sref">KERNEL_DS//a>);.<727//a> /a href="+code=err" class="sref">err//a> = /a href=ref">tnanosleepat_sigevent" clode=ref">tnanosleep_itimerspec//a>(/a href="+code=which_clock" class="sref">which_clock//a>, /a href="+code=flags" class="sref">flags//a>,.<72 unsigned /a href= "+code=len"(struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> *) &/a hi+code=retlen" clinsref">flags//a>,.<669//a> href= "+code=len"(struct /a hput_compat_timespec" clput_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> *) &/a houmm_segment_t" cloumsrefRNEL_DS//a>);.<700//a> /a href="+code=set_fs" class="sref">set_fs//a>(/a href="+code=oldfs" class="sref">oldfs//a>);.<641//a>.<722//a> if (/a href="+code=err" class="sref"> return -/a hrRESTART_RESTARTBLOCKcode=EFAULT" claRESTART_RESTARTBLOCKsref"ef">err//a> &&err//a>1"><691//a>.<643//a> &&put_compat_timespec//a>(&/a houmm_segment_t" cloumsref">mask//a>), /a hrmrt_put_bitmap" clrmrt="srssetting//a>).<714//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<685//a>.<646//a> if (/a href="+code=err" class="sref"> return -/a hrRESTART_RESTARTBLOCKcode=EFAULT" claRESTART_RESTARTBLOCKsref"e0"><720//a>{.<647//a> /a hrectarpat_sigevent" clrectarpat_tef"mespec//a>(&/a hcurref">ma>(ad_infoat_timespec" cl"urref">ma>(ad_inforef">gef">dst//a>->/a hrectarp_bode=which_clock" clrectarp_bode=ref">EFAULT//a>;.<72 u>err//a> = /a hrectarpat_sigevent" clrectarpat_tef">dst//a>->/a hf+code=retlen" clfsref">retlen//a> = /a href="+cref">tnanosleep_rectarpat_sigevent" class="srref">tnanosleep_rectarpat_t>EFAULT//a>;.<669//a> >err//a> = /a hrectarpat_sigevent" clrectarpat_tef">dst//a>->/a hnanosleepat_sigevent" clnanosleepat_t. struct /a href="+crmrt_put_bitmap" clref="+crmrtsrefef">err//a> = /a hrmrt_put_bitmap" clrmrt="sr>EFAULT//a>;.<700/7"><657//a>}.<621//a> return /a href="+code=err" class="sref">err//a>;.<657//a>}.<657//a>}./*<657//a>}. * We "urref"ly only need the following fields from the get_compatspan6"><657//a>}. * +code=ure: get_c_value, get_c_getno, get_notify and "+omeput_catspan6"><657//a>}. * +et_c_notify>ma>(ad_id). The others are handled in s="s m/a .atspan6"><657//a>}. * We also d <657//a>}. * to keep all the bits of get_c_value.sival_ptrmer_act.atspan6"><657//a>}. */atspan6"><657//a>}., intget_compat_timespec" class="sref">get_compat_ti+code=len"(struct /a hget_compat_timespec" clget_compat_t>__user//a> */a href="+code=event" class="sref""><657//a>}.<662//a> const struct /a href="+cget_compat_timespec" cl"sref">get_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> */a hu__compat_timespec" clu__comp="srs>flags//a>,.<720//a>{.<674//a> /a hremsef="+code=err" clremsefref">set_fs//a>(/a href="+code=event" class="sref">0, gezeof(__user//a> */a href="+code=event" class="sref)">oldfs//a>);.<715//a> if (!/a haccess_o=which_clock" claccess_o=ref">set_fs//a>(/a hVERIFY_READwhich_clock" clVERIFY_READsref">mask//a>), /a hu__compat_timespec" clu__comp="sr, gezeof(__user//a> */a hu__compat_timespec" clu__comp="srs) ||oldfs//a>);.<706//a> gevent//a> /a hreass=f="+code=__user" clasass=f="+ref">set_fs//a>(/a href="+code=event" class="srefef">dst//a>->/a hget_c_valueat_timespec" clget_c_valueat_t. struct /a hsival_er_at_timespec" clgeval_er_sref""><657//a>}.<647//a> mespec//a>(&/a hu__compat_timespec" clu__comp="sref">dst//a>->/a hget_c_valueat_timespec" clget_c_valueat_t. struct /a hsival_er_at_timespec" clgeval_er_sref) ||oldfs//a>);.<678//a> gevent//a> /a hreass=f="+code=__user" clasass=f="+ref">set_fs//a>(/a href="+code=event" class="srefef">dst//a>->/a hget_c_getnoat_timespec" clget_c_getno="sr, mespec//a>(&/a hu__compat_timespec" clu__comp="sref">dst//a>->/a hget_c_getnoat_timespec" clget_c_getno="sr) ||oldfs//a>);.<669//a> >err//a> = /a hreass=f="+code=__user" clasass=f="+ref">set_fs//a>(/a href="+code=event" class="srefef">dst//a>->/a hget_c_notifyat_timespec" clget_c_notify="sr, mespec//a>(&/a hu__compat_timespec" clu__comp="sref">dst//a>->/a hget_c_notifyat_timespec" clget_c_notify="sr) ||oldfs//a>);.<700//a> >err//a> = /a hreass=f="+code=__user" clasass=f="+ref">set_fs//a>(/a href="+code=event" class="srefef">dst//a>->/a hget_c_notify>ma>(ad_idat_timespec" clget_c_notify>ma>(ad_idsref""><657//a>}.<711//a> mespec//a>(&/a hu__compat_timespec" clu__comp="sref">dst//a>->/a hget_c_notify>ma>(ad_idat_timespec" clget_c_notify>ma>(ad_idsrefssetting//a>).<662//a> ? return -/a href="+code=EFAULT" class="sref" : 0>oldfs//a>);.<693//a>}.<724//a>.<695//a>long /a href="+cass=bitmat_put_bitmap" clref="+cass=bitmatref">ungetned 5"><6__user//a> */a hmas=which_clock" clmas=="sr, const 95//a>long /a href="+cu5"> /a href="+code=__user" class="sref">__user//a> */a humas=which_clock" clumas=="sr,4"><724//a>.<706//a> ungetned 5"><6_user//a> */a hbitmat_gezewhich_clock" clbitmat_geze="srs>flags//a>,.<720//a>{.<678/er_id//a>, intmask//a>), /a hjcode=retlen" clj="sref">err//a>;.<649/ungetned 5"><6_user//a> */a hmwhich_clock" clm="sref">err//a>;.<700//a> /a href="+cu5"> /a humwhich_clock" clum="sref">err//a>;.<649/ungetned 5"><6_user//a> */a hnr="sref">5"><"+code=oldfs" clnr="sref">5"><"="sref">err//a>;.<702//a>.<643//* aletn bitmat up to nearect "sref">5"><_t boundary */atspan6"><657//a>}.<674//a> /a hbitmat_gezewhich_clock" clbitmat_geze="sref">err//a> = /a hALIGNwhich_clock" clALIGNref">set_fs//a>(/a hbitmat_gezewhich_clock" clbitmat_geze="sr">mask//a>), /a hBITS_PER_COMPAT_LONGwhich_clock" clBITS_PER_COMPAT_LONGsref">oldfs//a>);.<685//a>.<646//a> if (!/a haccess_o=which_clock" claccess_o=ref">set_fs//a>(/a hVERIFY_READwhich_clock" clVERIFY_READsref">mask//a>), /a humas=which_clock" clumas=="sr,//a> /a hbitmat_gezewhich_clock" clbitmat_geze="sre/ 8ssetting//a>).<687//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<658//a>.<709//a> /a hnr="sref">5"><"+code=oldfs" clnr="sref">5"><"="sref">err//a> = /a hBITS_TO_COMPAT_LONGde=KERNEL_DS" clBITS_TO_COMPAT_LONGdref">set_fs//a>(/a hbitmat_gezewhich_clock" clbitmat_geze="sr">oldfs//a>);.);.<621/for> if (/a hicode=retlen" clisrefef"0> && &&set_fs//a>(/a hbitmat_gezewhich_clock" clbitmat_geze="sr"> &&<720//a>{.<662//a> _user//a> */a hmwhich_clock" clm="sref"0>"><720//a>{.<657//a>}.<664/1"><621/for> if (/a hjcode=retlen" clj="sref"0> && &&<720//a>{.<665/9"><649/3"><643//*atspan6"><657//a>}. * We dor_iwar_ito >(ad pact the end of the s="sspaceatspan6"><657//a>}. * bitmat. We muct however ensure the end of theatspan6"><657//a>}. * }.<657//a>}. */atspan6"><657//a>}.<700//a> /a> if (/a hnr="sref">5"><"+code=oldfs" clnr="sref">5"><"="sr-- f">d 0"e0"><720//a>{.<711//a> /a> if (/a hreass=f="+code=__user" clasass=f="+ref">set_fs//a>(/a humwhich_clock" clum="sr">mask//a>), /a humas=which_clock" clumas=="srssetting//a>).<662//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<643//a> } elsee0"><720//a>{.<664/1"><621/////////////////set_fs//a>(/a humwhich_clock" clum="sref"0>"><720//a>{.<665/9"><649/3"><643/3"><693//a>}.<693//a>}.<647//a> mask//a>), /a humas=which_clock" clumas=="sr++>"><720//a>{.<72 unsigned _user//a> */a hmwhich_clock" clm="sre|= (5"><)set_fs//a>(/a humwhich_clock" clum="sre<><> if (/a hjcode=retlen" clj="sre*>mask//a>), /a hBITS_PER_COMPAT_LONGwhich_clock" clBITS_PER_COMPAT_LONGsref">oldfs//a>);.<669//a> 3"><693//a>}.<700//a> __user//a> */a hmas=which_clock" clmas=="sr++ef">err//a> = /a hmwhich_clock" clm="sref">err//a>;.<711/3"><693//a>}.<702//a>.<643//a> 0>"><720//a>{.<693//a>}.<685//a>.<695//a>long /a href="+cass=bitmat_put_bitmap" clref="+cass=bitmatref">set_fs//a>(/a href="+cu5"> /a href="+code=__user" class="sref">__user//a> */a humas=which_clock" clumas=="sr, ungetned 5"><6__user//a> */a hmas=which_clock" clmas=="sr,5"><685//a>.<647//a> ungetned 5"><6_user//a> */a hbitmat_gezewhich_clock" clbitmat_geze="srs>flags//a>,.<720//a>{.<709/er_id//a>, intmask//a>), /a hjcode=retlen" clj="sref">err//a>;.<710/ungetned 5"><6_user//a> */a hmwhich_clock" clm="sref">err//a>;.<621//a> /a href="+cu5"> /a humwhich_clock" clum="sref">err//a>;.<710/ungetned 5"><6_user//a> */a hnr="sref">5"><"+code=oldfs" clnr="sref">5"><"="sref">err//a>;.<657//a>}.<714//* aletn bitmat up to nearect "sref">5"><_t boundary */atspan6"><657//a>}.<645//a> /a hbitmat_gezewhich_clock" clbitmat_geze="sref">err//a> = /a hALIGNwhich_clock" clALIGNref">set_fs//a>(/a hbitmat_gezewhich_clock" clbitmat_geze="sr">mask//a>), /a hBITS_PER_COMPAT_LONGwhich_clock" clBITS_PER_COMPAT_LONGsref">oldfs//a>);.<693//a>}.<637//a> if (!/a haccess_o=which_clock" claccess_o=ref">set_fs//a>(/a hVERIFY_WRITEwhich_clock" clVERIFY_WRITEsref">mask//a>), /a humas=which_clock" clumas=="sr,//a> /a hbitmat_gezewhich_clock" clbitmat_geze="sre/ 8ssetting//a>).<678//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.err//a>;.<700//a> /a hnr="sref">5"><"+code=oldfs" clnr="sref">5"><"="sref">err//a> = /a hBITS_TO_COMPAT_LONGde=KERNEL_DS" clBITS_TO_COMPAT_LONGdref">set_fs//a>(/a hbitmat_gezewhich_clock" clbitmat_geze="sr">oldfs//a>);.<641//a>.<642/for> if (/a hicode=retlen" clisrefef"0> && &&set_fs//a>(/a hbitmat_gezewhich_clock" clbitmat_geze="sr"> &&<720///a>.<643//a> _user//a> */a hmwhich_clock" clm="sref"__user//a> */a hmas=which_clock" clmas=="sr++>oldfs//a>);.<724//a>.<665/9"><649/for> if (/a hjcode=retlen" clj="sref"0> && &&<720//a>{.<706//a> /set_fs//a>(/a humwhich_clock" clum="sref"_user//a> */a hmwhich_clock" clm="sref">err//a>;.err//a>;.<72 unsigned /*atspan6"><657//a>}. * We dor_iwar_ito write pact the end of the s="sspaceatspan6"><657//a>}. * bitmat.atspan6"><657//a>}. */atspan6"><657//a>}.<662//a> /a> if (/a hnr="sref">5"><"+code=oldfs" clnr="sref">5"><"="sr-- f">d 0"e0"><720//a>{.<643//a> 662//a> /a> if (/a h_cass=f="+code=__user" clasass=f="+ref">set_fs//a>(/a humwhich_clock" clum="sr">mask//a>), /a humas=which_clock" clumas=="srssetting//a>).<714//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<665/9"><649/3"><643/3"><693//a>}.<693//a>}.<647//a> mask//a>), /a humas=which_clock" clumas=="sr++>"><720//a>{.<72 u mask//a>), /a hmwhich_clock" clm="sref">df">d= 4*gezeof(_user//a> */a humwhich_clock" clum="sr">"><720//a>{.<669//a> mask//a>), /a hmwhich_clock" clm="sref">df">d= 4*gezeof(_user//a> */a humwhich_clock" clum="sr">"><720//a>{.<700//a> 3"><693//a>}.<711/3"><693//a>}.<702//a>.<643//a> 0>"><720//a>{.<693//a>}.<685//a>.<685//a>. */a hsigass="rom="sref"which_clock" clsigass="rom="sref" */a hsigass="which_clock" clsigass=pat_t>__user//a> */a hsef="+code=err" clsefref"">mask//a>), /a hcsref">getass="which_clock" clcsref">getass="at_t>__user//a> */a h"sref"which_clock" cl"sref").<720//a>{.<709/+witch> if (/a h_NSIG_WORode=KERNEL_DS" cl_NSIG_WORod<720//a>{.<700/case 4://a> /a href="+code=err" clsefref"ef">dst//a>->/a hgetwhich_clock" clsigref"[3]>retlen//a> = /a href="+which_clock" cl"sref"dst//a>->/a hgetwhich_clock" clsigref"[6] | (((5"><)set_fs//a>(/a href="+which_clock" cl"sref"dst//a>->/a hgetwhich_clock" clsigref"[7])e<><> 32 ">"><720//a>{.<700/case 3://a> /a href="+code=err" clsefref"ef">dst//a>->/a hgetwhich_clock" clsigref"[2]>retlen//a> = /a href="+which_clock" cl"sref"dst//a>->/a hgetwhich_clock" clsigref"[4] | (((5"><)set_fs//a>(/a href="+which_clock" cl"sref"dst//a>->/a hgetwhich_clock" clsigref"[5])e<><> 32 ">"><720//a>{.<662/case 2://a> /a href="+code=err" clsefref"ef">dst//a>->/a hgetwhich_clock" clsigref"[1]>retlen//a> = /a href="+which_clock" cl"sref"dst//a>->/a hgetwhich_clock" clsigref"[2] | (((5"><)set_fs//a>(/a href="+which_clock" cl"sref"dst//a>->/a hgetwhich_clock" clsigref"[3])e<><> 32 ">"><720//a>{.<662/case 1://a> /a href="+code=err" clsefref"ef">dst//a>->/a hgetwhich_clock" clsigref"[0]>retlen//a> = /a href="+which_clock" cl"sref"dst//a>->/a hgetwhich_clock" clsigref"[0] | (((5"><)set_fs//a>(/a href="+which_clock" cl"sref"dst//a>->/a hgetwhich_clock" clsigref"[1])e<><> 32 ">"><720//a>{.<674/3"><693//a>}.<693//a>}.set_fs//a>(/a hsigass="rom="sref"which_clock" clsigass="rom="sref""><720//a>{.err//a>;.err//a>;.), /a hcsref">gys_r">getput_dwai"which_clock" clcsref">gys_r">getput_dwai" */a hcsref">getass="which_clock" clcsref">getass="at_t> if (/a h_cf="+code=__user" class="sref">__user//a> */a huthesewhich_clock" clutheseref""f">err//a>;.<700//a> struct /a href="+cgetinfoat_timespec" cl"ef="+cgetinfoat_t> if (/a h_cf="+code=__user" class="sref">__user//a> */a huinfoat_timespec" cluinfoat_t"f">err//a>;.<711//a> struct /a href="+cput_compat_timespec" cl"sref">put_compat_tigevent//a> /a href="+code=__user" class="sref">__user//a> */a huref="+code=ts" cluass="s>kevent//a>, /a h"ef="+cgeze="which_clock" clcsref">geze="at_tigevent//a> /a hgetassgezewhich_clock" clgetassgeze).<720//a>{.<663//a> /a hcsref">getass="which_clock" clcsref">getass="at_t> if (/a hs632" id "><720//a>{.<674//a> /a hsigass="which_clock" clsigass=pat_t>/a> /a hswhich_clock" cls"><720//a>{.<665/ struct /a hput_compat_timespec" clput_compat_tigevent//a> /a hrat_timespec" clp"><720//a>{.<726//a> /a hretinfo="which_clock" clsiginfo="at_tigevent//a> /a hinfoat_timespec" clinfoat_t>"><720//a>{.<647//a> long /a href="+code=err" clrep"><720//a>{.<658//a>.<649//a> if (/a hgetassgezewhich_clock" clgetassgeze */a hsigass="which_clock" clsigass=pat_tssetting//a>).<700//a> /a> return -/a hrINVALcode=EFAULT" claINVAL"><720//a>{.<641//a>.<642//a> if (/a hass=="rom=f="+code=__user" class=="rom=f="+ref">mespec//a>(&/a hs632" id mask//a>), /a huthesewhich_clock" clutheseref"" gezeof(_user//a> */a hcsref">getass="which_clock" clcsref">getass="at_t)ssetting//a>).<643//a> 662//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<674//a> /a hsigass="rom="sref"which_clock" clsigass="rom="sref"mespec//a>(&/a hswhich_clock" cls(&/a hs632" id "><720//a>{.<685//a>.<646//a> _user//a> */a huref="+code=ts" cluass="sse0"><720//a>{.<687//a> /a> if (/a href="+code=get_compat_timespec" class="sref">get_compat_timespec//a>(&/a hrat_timespec" clpmask//a>), /a hutef="+code=ts" cluass="sssetting//a>).<72 u /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<709/7"><657//a>}.><657//a>}.<621//a> /a href="+code=err" clrepretlen//a> = /a hdo>getput_dwai"which_clock" cldo>getput_dwai"mespec//a>(&/a hswhich_clock" cls(&/a hinfoat_timespec" clinfoat_t">mask//a>), /a hutef="+code=ts" cluass="s ? mespec//a>(&/a hrat_timespec" clp /a hNULLcode=EFAULT" clNULL"><720//a>{.<702//a>.<646//a> _user//a> */a href="+code=err" clrepf">d 0ef">err//a> &&<720//a>{.<714//a> /a> if (/a hass==siginfo="o=f="+632" id set_fs//a>(/a huinfoat_timespec" cluinfoat_t" mespec//a>(&/a hinfoat_timespec" clinfoat_tssetting//a>).<665/9"><649/3"><643/ /a href="+code=err" clrepre return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<709/7"><657//a>}.err//a>;.<72 /a> return /a href="+code=err" clrep"><720//a>{.err//a>;.<693//a>}.<641//a>.err//a>;.gys_r">tgsigqueueinfoat_timespec" cl"ef="+cgys_r">tgsigqueueinforef">set_fs//a>(/a h"ef="+cp+code=clockid_t" claef="+cp+codat_tigevent//a> /a hrgidat_timespec" clrgids="s>kevent//a>, /a h"ef="+cp+code=clockid_t" claef="+cp+codat_tigevent//a> /a hpidat_timespec" clpids="s>ker_id//a>, interr//a>;.<714//a> struct /a href="+cgetinfoat_timespec" cl"ef="+cgetinfoat_t> if (/a h_cf="+code=__user" class="sref">__user//a> */a huinfoat_timespec" cluinfoat_tsetting//a>).<720//a>{.<726//a> /a hretinfo="which_clock" clsiginfo="at_tigevent//a> /a hinfoat_timespec" clinfoat_t>"><720//a>{.err//a>;.<678/ea> if (/a hass==siginfo="rom=f="+632" id mespec//a>(&/a hinfoat_timespec" clinfoat_t">mask//a>), /a huinfoat_timespec" cluinfoat_tssetting//a>).<669//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<72 /a> return /a hdo>r">tgsigqueueinfoat_timespec" cldo>r">tgsigqueueinforef">set_fs//a>(/a hrgidat_timespec" clrgids="s>kevent//a>, /a hpidat_timespec" clpids="s>kd//a>, int(&/a hinfoat_timespec" clinfoat_ts>EFAULT//a>;.<693//a>}.<702//a>.<702//a>.<724//a>./* "sref">put___iis a 32 bit "5"><" and needsito get "snverted. */atspan6"><657//a>}.<693//a>}.< struct /a href="+cgys_put_at_timespec" cl"ef="+cgys_put_ref">set_fs//a>(/a h"ef="+cput___at_timespec" cl"sref">put_="at_t> if (/a h_cf="+code=__user" class="sref">_igevent//a> /a hrlopat_timespec" clplopat_tsetting//a>).<720//a>{.<709//a> /a h"ef="+cput___at_timespec" cl"sref">put_="at_t> if (/a hicode=retlen" clisref>EFAULT//a>;.<665/ struct /a hput_valat_timespec" clput_valat_tigevent//a> /a hrvat_timespec" clpvsref>EFAULT//a>;.<641//a>.<709//a> /a hdo>getput_ofdayat_timespec" cldo>getput_ofdayat_timespec//a>(&/a hrvat_timespec" clpvsrefs>EFAULT//a>;.<663//a> /a hicode=retlen" clisrefef"c//a>(&/a hrvat_timespec" clpvsref. struct /a htv_smpat_timespec" clpv_smpsref>EFAULT//a>;.<724//a>.<665/ea> if (/a hrlopat_timespec" clplopat_tse0"><720//a>{.<706//a> ea> if (/a hass=f="+code=__user" class=f="+ref">set_fs//a>(/a hicode=retlen" clisref" if (/a hrlopat_timespec" clplopat_tssetting//a>).<647//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<678/3"><693//a>}.<709//a> /a hforce_successfulcgyscall_/a> code=EFAULT" clforce_successfulcgyscall_/a> ref">s>EFAULT//a>;.<72 /a> return /a hicode=retlen" clisref>EFAULT//a>;.<693//a>}.<702//a>.< struct /a href="+cgys_sput_at_timespec" cl"ef="+cgys_sput_ref">set_fs//a>(/a h"ef="+cput___at_timespec" cl"sref">put_="at_t> if (/a h_cf="+code=__user" class="sref">_ if (/a hrpt+code=__user" clrpt+at_tsetting//a>).<720//a>{.<665/ struct /a hput_compat_timespec" clput_compat_tigevent//a> /a hrvat_timespec" clpvsref>EFAULT//a>;.<646//r_id//a>, interr//a>;.err//a>;.<678/ea> if (/a hass=f="+code=__user" class=f="+ref">set_fs//a>(/a hrvat_timespec" clpvsref. struct /a htv_smpat_timespec" clpv_smpsref>kd//a>, int).<669//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.err//a>;.<621//a> /a hrvat_timespec" clpvsref. struct /a htv_nsmpat_timespec" clpv_nsmpsrefef"0>"><720//a>{.<702//a>.<663//a> /a href="+code=err" class="sref"c//a>(&/a hsmpurity_smtput_at_timespec" clsmpurity_smtput_at_timespec//a>(&/a hrvat_timespec" clpvsref>kd//a>, int"><720//a>{.<678/ea> if (/a href="+code=err" class="srsetting//a>).<665/9"><649//a> return /a href="+code=err" class="sref">err//a>;.<693//a>}.<663//a> /a hdo>getput_ofdayat_timespec" cldo>setput_ofdayat_timespec//a>(&/a hrvat_timespec" clpvsrefs>EFAULT//a>;.<72 /a> 0>"><720//a>{.<693//a>}.<693//a>}./* _cARCH_WANT_COMPAT_SYS_TIME */atspan6"><657//a>}.<702//a>.<702//a>.< struct /a href="+cgys_r">getsucomndat_timespec" clref="+cgys_r">getsucomndref">set_fs//a>(/a h"ef="+cgetass="which_clock" clcsref">getass="at_t> if (/a h_cf="+code=__user" class="sref">__user//a> */a hunewref="+code=err" clunewrefs="s>kevent//a>, /a h"ef="+cgeze="which_clock" clcsref">geze="at_tigevent//a> /a hgetassgezewhich_clock" clgetassgeze).<720//a>{.<726//a> /a hretass="which_clock" clsigass=pat_t>/a> /a hnewref="+code=err" clnewrefs="s>"><720//a>{.<663//a> /a h"ef="+cgetass="which_clock" clcsref">getass="at_t> if (/a hnewref632" id <720//a>{.<658//a>.<709//span" id /* XXX: Don't preclude hand69"g deaferef" gezed getass="'s. */atspan6"><657//a>}.<678/ea> if (/a hgetassgezewhich_clock" clgetassgeze */a hsigass="which_clock" clsigass=pat_tssetting//a>).<711//a> /a> return -/a hrINVALcode=EFAULT" claINVAL"><720//a>{.<702//a>.<646//a> _user//a> */a hass=="rom=f="+code=__user" class=="rom=f="+ref">mespec//a>(&/a hnewref632" id mask//a>), /a hunewref="+code=err" clunewrefs="s>kgezeof(_user//a> */a hcsref">getass="which_clock" clcsref">getass="at_t)ssetting//a>).<714//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<645//a> /a hsigass="rom="sref"which_clock" clsigass="rom="sref"mespec//a>(&/a hnewref="+code=err" clnewrefs="s" mespec//a>(&/a hnewref632" id <726//a> return /a hgetsucomndat_timespec" clgetsucomndref">mespec//a>(&/a hnewref="+code=err" clnewrefs="ss>EFAULT//a>;.<693//a>}./* _cARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND */atspan6"><657//a>}.err//a>;.< struct /a href="+cgys_adjput_xat_timespec" clref="+cgys_adjput_xref"> struct /a href="+cput_xat_timespec" clref="+cput_xref"igevent//a> /a href="+code=__user" class="sref">__user//a> */a hurt_put_bitmap" clurt).<720//a>{.<709/ struct /a hput_xat_timespec" clput_xref"igevent//a> /a htxpat_timespec" clpxpsref>EFAULT//a>;.<646//r_id//a>, intmask//a>), /a href="+code=err" clrep"><720//a>{.<724//a>.<645//a> /a href="+code=err" class="sref"c//a>(&/a href="+cass=put_xat_timespec" clref="+cass=put_xat_timespec//a>(&/a hrxpat_timespec" clpxpsref">mask//a>), /a hutt_put_bitmap" clurt"><720//a>{.<646//a> _user//a> */a href="+code=err" class="srsetting//a>).<687//a> /a> return /a href="+code=err" class="sref">err//a>;.<658//a>.<709//a> /a href="+code=err" clrepretlen//a> = /a hdo>adjput_xat_timespec" cldo>adjput_xat_timespec//a>(&/a hrxpat_timespec" clpxpsrefs>"><720//a>{.<658//a>.<621//a> /a href="+code=err" class="sref"c//a>(&/a href="+cass=put_xat_timespec" clref="+cass=put_xref">set_fs//a>(/a hutt_put_bitmap" clurt(&/a hrxpat_timespec" clpxpsrefs>"><720//a>{.<642//a> if (/a href="+code=err" class="srsetting//a>).<643//a> 662//a> return /a href="+code=err" class="sref">err//a>;.<724//a>.<645//a> return /a href="+code=err" clrep"><720//a>{.<693//a>}.err//a>;.err//a>;.< struct /a href="+cgys_move_pageef="+code=ts" clref="+cgys_move_pageeref">set_fs//a>(/a hp+code=clockid_t" clp+codat_tigevent//a> /a hpidat_timespec" clpids="s>kungetned 5"><6_user//a> */a hnr=pageef="+code=ts" clnr=pagees="s>f">err//a>;.<700//a> struct /a href="+cuptrode=clockid_t" claef="+cuptrodref"igevent//a> /a href="+code=__user" class="sref">__user//a> */a hpagee632" id err//a>;.<711//a> const//r_id//a>, int__user//a> */a hn/a ef="+code=ts" cln/a es="s>f">err//a>;.<662//a> /r_id//a>, int__user//a> */a hstatuswhich_clock" clstatuss="s>f">err//a>;.<643//a> 662//r_id//a>, int<720//a>{.<665/const/void> if (/a h_cf="+code=__user" class="sref">_igevent//a> /a href="+code=__user" class="sref">__user//a> */a hpagee2" id "><720//a>{.<646//r_id//a>, intEFAULT//a>;.err//a>;.<72 _user//a> */a hpagee2" id (&/a href="+callocss="s_spacee=clockid_t" claef="+callocss="s_spaceref">set_fs//a>(/a hnr=pageef="+code=ts" clnr=pagees="s>_igezeof(void>*)s>"><720//a>{.<709/for> if (/a hicode=retlen" clisrefef"0> && && &&<720///a>.<700//a> struct /a href="+cuptrode=clockid_t" claef="+cuptrodref"igevent//a> /a ht_put_bitmap" clpsref>EFAULT//a>;.<641//a>.<662//a> /a> if (/a hass=f="+code=__user" class=f="+ref">set_fs//a>(/a ht_put_bitmap" clpsref>kevent//a>, /a hpagee632" id <641//a>.<643//a> 662//a> event//a>, /a hpss=f="+code=__user" class=f="+ref">set_fs//a>(/a href="+cat+code=__user" clref="+cat+ref">set_fs//a>(/a ht_put_bitmap" clpsref)>kevent//a>, /a hpagee2" id ).<714//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<665/3"><693//a>}.<726//a> return /a hgys_move_pageef="+code=ts" clgys_move_pageeref">set_fs//a>(/a hp+cat_timespec" clpids="s>k_user//a> */a hnr=pageef="+code=ts" clnr=pagees="s>kevent//a>, /a hpagee2" id k_user//a> */a hn/a ef="+code=ts" cln/a es="s> return /a hgtatuswhich_clock" clstatuss="s>id//a>, int<693//a>}.<658//a>.< struct /a href="+cgys_migrate_pageef="+code=ts" clref="+cgys_migrate_pageeref">set_fs//a>(/a href="+ca+code=clockid_t" claef="+cp+codat_tigevent//a> /a hpidat_timespec" clpids="s>8"><658//a>.<700//a> /a> struct /a href="+cu5"> /a hmaxn/a e=clockid_t" clmaxn/a s="s>8"><658//a>.<711//a> const/ struct /a href="+cu5"> /a href="+code=__user" class="sref">__user//a> */a hold_n/a ef="+code=ts" clold_n/a es="s>8"><658//a>.<662//a> const/ struct /a href="+cu5"> /a href="+code=__user" class="sref">__user//a> */a hnew_n/a ef="+code=ts" clnew_n/a e="srsetting//a>).<720///a>.<714/ungetned 5"><6_user//a> */a href="+code=__user" class="sref">__user//a> */a holdf="+code=ts" clold(&/a hNULLcode=EFAULT" clNULLEFAULT//a>;.<714/ungetned 5"><6_user//a> */a href="+code=__user" class="sref">__user//a> */a hnewf="+code=ts" clnew(&/a hNULLcode=EFAULT" clNULLEFAULT//a>;.<726//a> /a hn/a mas=ode=clockid_t" cln/a mas=odref"igevent//a> /a htmp_mas=which_clock" cltmp_mas=EFAULT//a>;.<714/ungetned 5"><6_user//a> */a hnr=bitef="+code=ts" clnr=biteEFAULT//a>;.<714/ungetned 5"><6_user//a> */a hgezewhich_clock" clgezeEFAULT//a>;.err//a>;.<700//a> /a hnr=bitef="+code=ts" clnr=bite */a hminode=clockid_t" clminodref">ungetned 5"><>id//a>, int<621//a> /a hgezewhich_clock" clgeze */a hALIGNwhich_clock" clALIGNref">set_fs//a>(/a hnr=bitef="+code=ts" clnr=biteid//a>, intEFAULT//a>;.<642//a> if (/a hold_n/a ef="+code=ts" clold_n/a es="s"e0"><720///a>.<643//a> 662//a> _user//a> */a hasf="+cass=bitmate=clockid_t" claef="+cass=bitmatref">set_fs//a>(/a hn/a e_add+code=__user" cln/a e_add+ref">set_fs//a>(/a htmp_mas=which_clock" cltmp_mas=kevent//a>, /a hold_n/a ef="+code=ts" clold_n/a es="s>//a> /a hnr=bitef="+code=ts" clnr=bite).<714//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<665/9"><649/_user//a> */a holdf="+code=ts" clold(&/a href="+callocss="s_spacee=clockid_t" claef="+callocss="s_spaceref">set_fs//a>(/a hnew_n/a ef="+code=ts" clnew_n/a e="sr ?//a> /a hgezewhich_clock" clgeze /a hgezewhich_clock" clgezeEFAULT//a>;.<706//a> ea> if (/a hnew_n/a ef="+code=ts" clnew_n/a e="srsetting//a>).<647//a> _user//a> */a hnewf="+code=ts" clnew(&/a holdf="+code=ts" cloldEFAULT//a>;.<72 u/a> _user//a> */a hass=="o=f="+e=clockid_t" claes=="o=f="+ref">set_fs//a>(/a holdf="+code=ts" cloldk_user//a> */a hn/a e_add+code=__user" cln/a e_add+ref">set_fs//a>(/a htmp_mas=which_clock" cltmp_mas=kevent//a>, /a hgezewhich_clock" clgeze).<669//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<72 3"><693//a>}.<642//a> if (/a hnew_n/a ef="+code=ts" clnew_n/a e="srse0"><720///a>.<662//a> /a> if (/a hasf="+cass=bitmate=clockid_t" claef="+cass=bitmatref">set_fs//a>(/a hn/a e_add+code=__user" cln/a e_add+ref">set_fs//a>(/a htmp_mas=which_clock" cltmp_mas=kevent//a>, /a hnew_n/a ef="+code=ts" clnew_n/a e="sr>//a> /a hnr=bitef="+code=ts" clnr=bite).<643//a> 662//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<714//a> /a> if (/a hnewf="+code=ts" clnew(&/a hNULLcode=EFAULT" clNULL).<665/9"><649/ _user//a> */a hnewf="+code=ts" clnew(&/a href="+callocss="s_spacee=clockid_t" claef="+callocss="s_spaceref">set_fs//a>(/a hgezewhich_clock" clgezeEFAULT//a>;.<706//a> ea> if (/a hass=="o=f="+e=clockid_t" claes=="o=f="+ref">set_fs//a>(/a hnewf="+code=ts" clnewk_user//a> */a hn/a e_add+code=__user" cln/a e_add+ref">set_fs//a>(/a htmp_mas=which_clock" cltmp_mas=kevent//a>, /a hgezewhich_clock" clgeze).<647//a> /a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<678/3"><693//a>}.<669//a> return /a hgys_migrate_pageef="+code=ts" clgys_migrate_pageeref">set_fs//a>(/a hp+cat_timespec" clpids="s>k_user//a> */a hnr=bitef="+code=ts" clnr=biteid//a>, intk_user//a> */a hnewf="+code=ts" clnewEFAULT//a>;.<693//a>}.<693//a>}.<702//a>.<720///a>.<678/ return /a hg632" id mask//a>), /a hupput_at_timespec" clupput_ref">EFAULT//a>;.<645//a> /a hu632" id mask//a>), /a hloadef="+code=ts" clloadeEFAULT//a>;.<726//a> /a hu632" id mask//a>), /a htotalramwhich_clock" cltotalramref">EFAULT//a>;.<663//a> /a hu632" id mask//a>), /a hfreeramwhich_clock" clfreeramref">EFAULT//a>;.<72 _user//a> */a hu632" id mask//a>), /a hsharedramwhich_clock" clsharedramref">EFAULT//a>;.<709//a> /a hu632" id mask//a>), /a hbuaferramwhich_clock" clbuaferramref">EFAULT//a>;.<700//a> /a hu632" id mask//a>), /a htotalswate=clockid_t" cltotalswatref">EFAULT//a>;.<621//a> /a hu632" id mask//a>), /a hfreeswate=clockid_t" clfreeswatref">EFAULT//a>;.<709//a> /a hu716" id (/a hproce2" id EFAULT//a>;.<663//a> /a hu716" id (/a hpacat_timespec" clpadref">EFAULT//a>;.<678/ return /a hu632" id mask//a>), /a htotalhighe=clockid_t" cltotalhighref">EFAULT//a>;.<645//a> /a hu632" id mask//a>), /a hfreehighe=clockid_t" clfreehighref">EFAULT//a>;.<726//a> /a hu632" id mask//a>), /a hmem_uni"which_clock" clmem_uni"ref">EFAULT//a>;.<663/char6_user//a> */a hrfwhich_clock" cl_f */a hu632" id EFAULT//a>;.err//a>;.err//a>;.__user//a> */a hinfoat_timespec" clinfoat_tsf">err//a>;.<720///a>.<646/ struct /a hgysinfoat_timespec" clgysinfoat_t>_user//a> */a hswhich_clock" clsEFAULT//a>;.<724//a>.<645//a> /a hdo>sysinfoat_timespec" cldo>sysinfoat_t>mespec//a>(&/a hswhich_clock" clsEFAULT//a>;.<693//a>}.<663//span" id /* Checkito see ea>any memory valueiis too large/for>32-bit and scaleatspan6"><657//a>}. * down ea>neededatspan6"><657//a>}. */atspan6"><657//a>}.<678/ea> >set_fs//a>(/a hgwhich_clock" clsf">df">d 32) ||> if (/a hgwhich_clock" clsf">df">d 32)se0"><720///a>.<711//a> /r_id//a>, int"><720//a>{.<702//a>.<643//a> 662/while> if (/a hgwhich_clock" cls &&<720///a>.<714//a> if (/a hgwhich_clock" cls<>= 1>"><720//a>{.<665/9"><649/ _user//a> */a hbitcoun"which_clock" clbitcoun""><720//a>{.<706//a> 3"><693//a>}.err//a>;.<72 uset_fs//a>(/a hgwhich_clock" clsf">df">df"c//a>(&/a hbitcoun"which_clock" clbitcoun""><720//a>{.<669//a> set_fs//a>(/a hgwhich_clock" clsf">df">df"c//a>(&/a hbitcoun"which_clock" clbitcoun""><720//a>{.<700//a> struct /a hgwhich_clock" clsf">df">df"c//a>(&/a hbitcoun"which_clock" clbitcoun""><720//a>{.<711//a> struct /a hgwhich_clock" clsf">df">df"c//a>(&/a hbitcoun"which_clock" clbitcoun""><720//a>{.<662//a> if (/a hgwhich_clock" clsf">df">df"c//a>(&/a hbitcoun"which_clock" clbitcoun""><720//a>{.<643//a> 662/set_fs//a>(/a hgwhich_clock" clsf">df">df"c//a>(&/a hbitcoun"which_clock" clbitcoun""><720//a>{.<714//a> if (/a hgwhich_clock" clsf">df">df"c//a>(&/a hbitcoun"which_clock" clbitcoun""><720//a>{.<665/9"><649/_user//a> */a hgwhich_clock" clsf">df">df"c//a>(&/a hbitcoun"which_clock" clbitcoun""><720//a>{.<706/3"><693//a>}.err//a>;.<678/ea> !mask//a>), /a haccess_o=which_clock" claccess_o=ref">set_fs//a>(/a hVERIFY_WRITEwhich_clock" clVERIFY_WRITEk_user//a> */a hinfoat_timespec" clinfoat_t">gezeof( struct /a href="+cgysinfoat_timespec" cl"ef="+cgysinfoat_t)) ||1"><641//a>.<669//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hupput_at_timespec" clupput_ref") ||1"><641//a>.<700//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hloadef="+code=ts" clloade<641//a>.<711//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hloadef="+code=ts" clloade<641//a>.<662//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hloadef="+code=ts" clloade<641//a>.<643//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a htotalramwhich_clock" cltotalramref") ||1"><641//a>.<714//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hfreeramwhich_clock" clfreeramref") ||1"><641//a>.<665/9"><_user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hsharedramwhich_clock" clsharedramref") ||1"><641//a>.<706//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hbuaferramwhich_clock" clbuaferramref") ||1"><641//a>.<647//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a htotalswate=clockid_t" cltotalswatref") ||1"><641//a>.<72 _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hfreeswate=clockid_t" clfreeswatref") ||1"><641//a>.<669//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hproce2" id <641//a>.<700//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a htotalhighe=clockid_t" cltotalhighref") ||1"><641//a>.<711//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hfreehighe=clockid_t" clfreehighref") ||1"><641//a>.<662//a> _user//a> */a hrepss=f="+code=__user" clrepss=f="+(&/a hinfoat_timespec" clinfoat_t-f">d struct /a hmem_uni"which_clock" clmem_uni"ref"ssetting//a>).<643//a> 662//a> return -/a href="+code=EFAULT" class="sref">EFAULT//a>;.<724//a>.<665//a> 0>"><720//a>{.<693//a>}.err//a>;./*atspan6"><657//a>}. * Allocate f="+-space memory for>the duration of a single system call,atspan6"><657//a>}. * in orderito marshall parameters inside a ef="ke>thunk.atspan6"><657//a>}. */atspan6"><657//a>}._ struct /a href="+callocss="s_spacee=clockid_t" claef="+callocss="s_spaceref">ungetned 5"><6_user//a> */a hlenf="+code=ts" cllenref"s"><657//a>}.<720///a>.<714/void> if (/a h_cf="+code=__user" class="sref">_ struct /a hat+code=__user" clat+ref">"><720//a>{.<720//a>{.<726//span" id /* If len would occupy more>than"half of the ef"ire>ef="ke>space... */atspan6"><657//a>}.<714/ea> if (/a hunlikelyat_timespec" clunlikelyref">set_fs//a>(/a hlenf="+code=ts" cllenref">f">d ( >set_fs//a>(/a haef="+cuptrode=clockid_t" claef="+cuptrodref")~0)>f">df">d 1)ssetting//a>).<72 u/a> return /a hNULLcode=EFAULT" clNULLEFAULT//a>;.err//a>;.<700//a> /a hat+code=__user" clat+ref"ef"c//a>(&/a harch_ref="+callocss="s_spacee=clockid_t" clarch_ref="+callocss="s_spaceref">set_fs//a>(/a hlenf="+code=ts" cllenref"s>EFAULT//a>;.<641//a>.<642//a> if (/a hunlikelyat_timespec" clunlikelyref">!mask//a>), /a haccess_o=which_clock" claccess_o=ref">set_fs//a>(/a hVERIFY_WRITEwhich_clock" clVERIFY_WRITEk_user//a> */a hat+code=__user" clat+ref">k_user//a> */a hlenf="+code=ts" cllenref"sssetting//a>).<643//a> 662//a> return /a hNULLcode=EFAULT" clNULLEFAULT//a>;.<724//a>.<665//a> struct /a hat+code=__user" clat+ref">"><720//a>{.<693//a>}.set_fs//a>(/a href="+callocss="s_spacee=clockid_t" claef="+callocss="s_spaceref"s>EFAULT//a>;. The original LXR software>by the FAULT//a>http://sourceforge.net/projects/lxr">LXR ef=runi"yref">kthis experiref"al version by FAULT//a>mailto:lxr@38"ux.nocllxr@38"ux.no lxr.38"ux.no kindly hosted by FAULT//a>http://www.redpill-38"pro.noclRedpill L8"pro ASref">kprovideriof L8"ux consulting and operations ="svices since 1995.