linux/drivers/watchdog/iop_wdt.c
<<
v4.4 /spaon> /formn> a v4.4 href="../linux+v3.7.7/drivers/watchdog/iop_wdt.c">v4.4 img src="../.static/gfx/right.png" alt=">>">v4 /spaon>v4 spao class="lxr_search">v4.4v4.4 input typue=hidden" namue=navtarget" value=">v4.4 input typue=text" namue=search" ide=search">v4.4 buttiontypue=submit">Search /formn> /spaon>v4 spao class="lxr_prefs"n> a href="+prefs?return=drivers/watchdog/iop_wdt.c"v4.4 onclick="return ajax_prefs();">v4.4 Prefs> /a>v4 /spaon>.4 /divn>.4 form ac4.7o="ajax+*" method="post" onsubmit="return false;">v4 input typue=hidden" namue=ajax_lookup" ide=ajax_lookup" value=">v.4 /formn>v.4 div class="headingbottim">.4 .4 div ide=search_results" class="search_results"> n>.4 /divn> div ide=content">> div ide=file_contents"n
   1 /a> spao class="comment">/* /spaon>   2 /a> spao class="comment"> * drivers/char/watchdog/iop_wdt.c /spaon>   3 /a> spao class="comment"> * /spaon>   4 /a> spao class="comment"> * WDT driver for Intel I/O Processors /spaon>   5 /a> spao class="comment"> * Copyright (C) 2005, Intel Corpora4.7o. /spaon>   6 /a> spao class="comment"> * /spaon>   7 /a> spao class="comment"> * Based on ixp4xx driver, Copyright 2004 (c) MontaVista, Software, Inc. /spaon>   8 /a> spao class="comment"> * /spaon>   9 /a> spao class="comment"> * This program is free software; you cao redistribute it and/or modify it /spaon>  ti8>a> spao class="comment"> * under the terms and condi4.7os of the GNU General Public License, /spaon>  11 /a> spao class="comment"> * verstion2, as published by the Free Software Founda4.7o. /spaon>  12 /a> spao class="comment"> * /spaon>  13 /a> spao class="comment"> * This program is distributed in the hope it will be useful, but WITHOUT /spaon>  14 /a> spao class="comment"> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or /spaon>  15 /a> spao class="comment"> * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for /spaon>  16 /a> spao class="comment"> * more details. /spaon>  17 /a> spao class="comment"> * /spaon>  18 /a> spao class="comment"> * You should have received a copy of the GNU General Public License along with /spaon>  19 /a> spao class="comment"> * this program; if not, write to the Free Software Founda4.7o, Inc., 59 Temple /spaon>  2i8>a> spao class="comment"> * Place - Suite 330, Bost7o, MA 02111-1307 USA. /spaon>  21 /a> spao class="comment"> * /spaon>  22 /a> spao class="comment"> *      Curt E Bruos <curt.e.bruos@intel.com> /spaon>  23 /a> spao class="comment"> *      Peter Milne <peter.milne@d-tacq.com> /spaon>  24 /a> spao class="comment"> *      Dao Williams <dan.j.williams@intel.com> /spaon>  25 /a> spao class="comment"> */ /spaon>  26 /a>>  27 /a>#define  a href="+code=pr_fmt" class="sref">pr_fmt /a>( a href="+code=fmt" class="sref">fmt /a>)  a href="+code=KBUILD_MODNAME" class="sref">KBUILD_MODNAME /a>  spao class="string">": " /spaon  a href="+code=fmt" class="sref">fmt /a>>  28 /a>>  29 /a>#include <linux/module.h /a>>>  30 /a>#include <linux/kernel.h /a>>>  31 /a>#include <linux/fs.h /a>>>  32 /a>#include <linux/init.h /a>>>  33 /a>#include <linux/device.h /a>>>  34 /a>#include <linux/miscdevice.h /a>>>  35 /a>#include <linux/watchdog.h /a>>>  36 /a>#include <linux/uaccess.h /a>>>  37 /a>#include <mach/hardware.h /a>>>  38 /a>>  39 /a>static  a href="+code=bool" class="sref">bool /a>  a href="+code=nowayout" class="sref">nowayout /a> =  a href="+code=WATCHDOG_NOWAYOUT" class="sref">WATCHDOG_NOWAYOUT /a>;>  40 /a>static uosigned long  a href="+code=wdt_status" class="sref">wdt_status /a>;>  41 /a>static uosigned long  a href="+code=boot_status" class="sref">boot_status /a>;>  42 /a>static  a href="+code=DEFINE_SPINLOCK" class="sref">DEFINE_SPINLOCK /a>( a href="+code=wdt_lock" class="sref">wdt_lock /a>);>  43 /a>>  44 /a>#define  a href="+code=WDT_IN_USE" class="sref">WDT_IN_USE /a>              0>  45 /a>#define  a href="+code=WDT_OK_TO_CLOSE" class="sref">WDT_OK_TO_CLOSE /a>         1>  46 /a>#define  a href="+code=WDT_ENABLED" class="sref">WDT_ENABLED /a>             2>  47 /a>>  48 /a>static uosigned long  a href="+code=iop_watchdog_timeout" class="sref">iop_watchdog_timeout /a>(void)>  49 /a>{>  50 /a>        return (0xffffffffUL /  a href="+code=get_iop_tick_rate" class="sref">get_iop_tick_rate /a>());>  51 /a>}>  52 /a>>  53 /a> spao class="comment">/** /spaon>  54 /a> spao class="comment"> * wdt_supports_disable - determine if we are accessing a iop13xx watchdog /spaon>  55 /a> spao class="comment"> * or iop3xx by whether it has a disable command /spaon>  56 /a> spao class="comment"> */ /spaon>  57 /a>static int  a href="+code=wdt_supports_disable" class="sref">wdt_supports_disable /a>(void)>  58 /a>{>  59 /a>        int  a href="+code=can_disable" class="sref">can_disable /a>;>  60 /a>>  61 /a>        if ( a href="+code=IOP_WDTCR_EN_ARM" class="sref">IOP_WDTCR_EN_ARM /a> !=  a href="+code=IOP_WDTCR_DIS_ARM" class="sref">IOP_WDTCR_DIS_ARM /a>)>  62 /a>                 a href="+code=can_disable" class="sref">can_disable /a> = 1;>  63 /a>        else>  64 /a>                 a href="+code=can_disable" class="sref">can_disable /a> = 0;>  65 /a>>  66 /a>        return  a href="+code=can_disable" class="sref">can_disable /a>;>  67 /a>}>  68 /a>>  69 /a>static void  a href="+code=wdt_enable" class="sref">wdt_enable /a>(void)>  70 /a>{>  71 /a>         spao class="comment">/* Arm and enable the Timer to starting counting down from 0xFFFF.FFFF /spaon>  72 /a> spao class="comment">         * Takes approx. 10.7s to timeout /spaon>  73 /a> spao class="comment">         */ /spaon>  74 /a>         a href="+code=spin_lock" class="sref">spin_lock /a>(& a href="+code=wdt_lock" class="sref">wdt_lock /a>);>  75 /a>         a href="+code=write_wdtcr" class="sref">write_wdtcr /a>( a href="+code=IOP_WDTCR_EN_ARM" class="sref">IOP_WDTCR_EN_ARM /a>);>  76 /a>         a href="+code=write_wdtcr" class="sref">write_wdtcr /a>( a href="+code=IOP_WDTCR_EN" class="sref">IOP_WDTCR_EN /a>);>  77 /a>         a href="+code=spin_unlock" class="sref">spin_unlock /a>(& a href="+code=wdt_lock" class="sref">wdt_lock /a>);>  78 /a>}>  79 /a>>  8i8>a> spao class="comment">/* returns 0 if the timer was successfully disabled */ /spaon>  81 /a>static int  a href="+code=wdt_disable" class="sref">wdt_disable /a>(void)>  82 /a>{>  83 /a>         spao class="comment">/* Stop Counting */ /spaon>  84 /a>        if ( a href="+code=wdt_supports_disable" class="sref">wdt_supports_disable /a>()) {>  85 /a>                 a href="+code=spin_lock" class="sref">spin_lock /a>(& a href="+code=wdt_lock" class="sref">wdt_lock /a>);>  86 /a>                 a href="+code=write_wdtcr" class="sref">write_wdtcr /a>( a href="+code=IOP_WDTCR_DIS_ARM" class="sref">IOP_WDTCR_DIS_ARM /a>);>  87 /a>                 a href="+code=write_wdtcr" class="sref">write_wdtcr /a>( a href="+code=IOP_WDTCR_DIS" class="sref">IOP_WDTCR_DIS /a>);>  88 /a>                 a href="+code=clear_bit" class="sref">clear_bit /a>( a href="+code=WDT_ENABLED" class="sref">WDT_ENABLED /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>);>  89 /a>                 a href="+code=spin_unlock" class="sref">spin_unlock /a>(& a href="+code=wdt_lock" class="sref">wdt_lock /a>);>  90 /a>                 a href="+code=pr_info" class="sref">pr_info /a>( spao class="string">"Disabled\n" /spaon);>  91 /a>                return 0;>  92 /a>        } else>  93 /a>                return 1;>  94 /a>}>  95 /a>>  96 /a>static int  a href="+code=iop_wdt_open" class="sref">iop_wdt_open /a>(struct  a href="+code=inode" class="sref">inode /a> * a href="+code=inode" class="sref">inode /a>, struct  a href="+code=file" class="sref">file /a> * a href="+code=file" class="sref">file /a>)>  97 /a>{>  98 /a>        if ( a href="+code=test_and_set_bit" class="sref">test_and_set_bit /a>( a href="+code=WDT_IN_USE" class="sref">WDT_IN_USE /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>))>  99 /a>                return - a href="+code=EBUSY" class="sref">EBUSY /a>;> 100 /a>> 101 /a>         a href="+code=clear_bit" class="sref">clear_bit /a>( a href="+code=WDT_OK_TO_CLOSE" class="sref">WDT_OK_TO_CLOSE /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>);> 102 /a>         a href="+code=wdt_enable" class="sref">wdt_enable /a>();> 103 /a>         a href="+code=set_bit" class="sref">set_bit /a>( a href="+code=WDT_ENABLED" class="sref">WDT_ENABLED /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>);> 104 /a>        return  a href="+code=nonseekable_open" class="sref">nonseekable_open /a>( a href="+code=inode" class="sref">inode /a>,  a href="+code=file" class="sref">file /a>);> 105 /a>}> 106 /a>> 107 /a>static  a href="+code=ssize_t" class="sref">ssize_t /a>  a href="+code=iop_wdt_write" class="sref">iop_wdt_write /a>(struct  a href="+code=file" class="sref">file /a> * a href="+code=file" class="sref">file /a>, const char * a href="+code=data" class="sref">data /a>,  a href="+code=size_t" class="sref">size_t /a>  a href="+code=len" class="sref">len /a>,> 108 /a>                   a href="+code=loff_t" class="sref">loff_t /a> * a href="+code=ppos" class="sref">ppos /a>)> 109 /a>{> 110 /a>        if ( a href="+code=len" class="sref">len /a>) {> 111 /a>                if (! a href="+code=nowayout" class="sref">nowayout /a>) {> 112 /a>                         a href="+code=size_t" class="sref">size_t /a>  a href="+code=i" class="sref">i /a>;> 113 /a>> 114 /a>                         a href="+code=clear_bit" class="sref">clear_bit /a>( a href="+code=WDT_OK_TO_CLOSE" class="sref">WDT_OK_TO_CLOSE /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>);> 115 /a>> 116 /a>                        for ( a href="+code=i" class="sref">i /a> = 0;  a href="+code=i" class="sref">i /a> !=  a href="+code=len" class="sref">len /a>;  a href="+code=i" class="sref">i /a>++) {> 117 /a>                                char  a href="+code=c" class="sref">c /a>;> 118 /a>> 119 /a>                                if ( a href="+code=get_user" class="sref">get_user /a>( a href="+code=c" class="sref">c /a>,  a href="+code=data" class="sref">data /a> +  a href="+code=i" class="sref">i /a>))> 120 /a>                                        return - a href="+code=EFAULT" class="sref">EFAULT /a>;> 121 /a>                                if ( a href="+code=c" class="sref">c /a> ==  spao class="string">'V' /spaon)> 122 /a>                                         a href="+code=set_bit" class="sref">set_bit /a>( a href="+code=WDT_OK_TO_CLOSE" class="sref">WDT_OK_TO_CLOSE /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>);> 123 /a>                        }> 124 /a>                }> 125 /a>                 a href="+code=wdt_enable" class="sref">wdt_enable /a>();> 126 /a>        }> 127 /a>        return  a href="+code=len" class="sref">len /a>;> 128 /a>}> 129 /a>> 130 /a>static const struct  a href="+code=watchdog_info" class="sref">watchdog_info /a>  a href="+code=ident" class="sref">ident /a> = {> 131 /a>        . a href="+code=>
4.7os" class="sref">>
4.7os /a> =  a href="+code=WDIOF_CARDRESET" class="sref">WDIOF_CARDRESET /a> |  a href="+code=WDIOF_MAGICCLOSE" class="sref">WDIOF_MAGICCLOSE /a> |  a href="+code=WDIOF_KEEPALIVEPING" class="sref">WDIOF_KEEPALIVEPING /a>,> 132 /a>        . a href="+code=identity" class="sref">identity /a> =  spao class="string">"iop watchdog" /spaon,> 133 /a>};> 134 /a>> 135 /a>static long  a href="+code=iop_wdt_ioctl" class="sref">iop_wdt_ioctl /a>(struct  a href="+code=file" class="sref">file /a> * a href="+code=file" class="sref">file /a>,> 136 /a>                                uosigned int  a href="+code=cmd" class="sref">cmd /a>, uosigned long  a href="+code=arg" class="sref">arg /a>)> 137 /a>{> 138 /a>        int  a href="+code=>
4.7os" class="sref">>
4.7os /a>;> 139 /a>        int  a href="+code=ret" class="sref">ret /a> = - a href="+code=ENOTTY" class="sref">ENOTTY /a>;> 140 /a>        int  a href="+code=__user" class="sref">__user /a> * a href="+code=argp" class="sref">argp /a> = (int  a href="+code=__user" class="sref">__user /a> *) a href="+code=arg" class="sref">arg /a>;> 141 /a>> 142 /a>        switch ( a href="+code=cmd" class="sref">cmd /a>) {> 143 /a>        case  a href="+code=WDIOC_GETSUPPORT" class="sref">WDIOC_GETSUPPORT /a>:> 144 /a>                if ( a href="+code=copy_to_user" class="sref">copy_to_user /a>( a href="+code=argp" class="sref">argp /a>, & a href="+code=ident" class="sref">ident /a>, sizeof( a href="+code=ident" class="sref">ident /a>)))> 145 /a>                         a href="+code=ret" class="sref">ret /a> = - a href="+code=EFAULT" class="sref">EFAULT /a>;> 146 /a>                else> 147 /a>                         a href="+code=ret" class="sref">ret /a> = 0;> 148 /a>                break;> 149 /a>> 150 /a>        case  a href="+code=WDIOC_GETSTATUS" class="sref">WDIOC_GETSTATUS /a>:> 151 /a>                 a href="+code=ret" class="sref">ret /a> =  a href="+code=put_user" class="sref">put_user /a>(0,  a href="+code=argp" class="sref">argp /a>);> 152 /a>                break;> 153 /a>> 154 /a>        case  a href="+code=WDIOC_GETBOOTSTATUS" class="sref">WDIOC_GETBOOTSTATUS /a>:> 155 /a>                 a href="+code=ret" class="sref">ret /a> =  a href="+code=put_user" class="sref">put_user /a>( a href="+code=boot_status" class="sref">boot_status /a>,  a href="+code=argp" class="sref">argp /a>);> 156 /a>                break;> 157 /a>> 158 /a>        case  a href="+code=WDIOC_SETOPTIONS" class="sref">WDIOC_SETOPTIONS /a>:> 159 /a>                if ( a href="+code=get_user" class="sref">get_user /a>( a href="+code=>
4.7os" class="sref">>
4.7os /a>, (int *) a href="+code=arg" class="sref">arg /a>))> 160 /a>                        return - a href="+code=EFAULT" class="sref">EFAULT /a>;> 161 /a>> 162 /a>                if ( a href="+code=>
4.7os" class="sref">>
4.7os /a> &  a href="+code=WDIOS_DISABLECARD" class="sref">WDIOS_DISABLECARD /a>) {> 163 /a>                        if (! a href="+code=nowayout" class="sref">nowayout /a>) {> 164 /a>                                if ( a href="+code=wdt_disable" class="sref">wdt_disable /a>() == 0) {> 165 /a>                                         a href="+code=set_bit" class="sref">set_bit /a>( a href="+code=WDT_OK_TO_CLOSE" class="sref">WDT_OK_TO_CLOSE /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>);> 166 /a>                                         a href="+code=ret" class="sref">ret /a> = 0;> 167 /a>                                } else> 168 /a>                                         a href="+code=ret" class="sref">ret /a> = - a href="+code=ENXIO" class="sref">ENXIO /a>;> 169 /a>                        } else> 170 /a>                                 a href="+code=ret" class="sref">ret /a> = 0;> 171 /a>                }> 172 /a>                if ( a href="+code=>
4.7os" class="sref">>
4.7os /a> &  a href="+code=WDIOS_ENABLECARD" class="sref">WDIOS_ENABLECARD /a>) {> 173 /a>                         a href="+code=wdt_enable" class="sref">wdt_enable /a>();> 174 /a>                         a href="+code=ret" class="sref">ret /a> = 0;> 175 /a>                }> 176 /a>                break;> 177 /a>> 178 /a>        case  a href="+code=WDIOC_KEEPALIVE" class="sref">WDIOC_KEEPALIVE /a>:> 179 /a>                 a href="+code=wdt_enable" class="sref">wdt_enable /a>();> 180 /a>                 a href="+code=ret" class="sref">ret /a> = 0;> 181 /a>                break;> 182 /a>> 183 /a>        case  a href="+code=WDIOC_GETTIMEOUT" class="sref">WDIOC_GETTIMEOUT /a>:> 184 /a>                 a href="+code=ret" class="sref">ret /a> =  a href="+code=put_user" class="sref">put_user /a>( a href="+code=iop_watchdog_timeout" class="sref">iop_watchdog_timeout /a>(),  a href="+code=argp" class="sref">argp /a>);> 185 /a>                break;> 186 /a>        }> 187 /a>        return  a href="+code=ret" class="sref">ret /a>;> 188 /a>}> 189 /a>> 190 /a>static int  a href="+code=iop_wdt_release" class="sref">iop_wdt_release /a>(struct  a href="+code=inode" class="sref">inode /a> * a href="+code=inode" class="sref">inode /a>, struct  a href="+code=file" class="sref">file /a> * a href="+code=file" class="sref">file /a>)> 191 /a>{> 192 /a>        int  a href="+code=state" class="sref">state /a> = 1;> 193 /a>        if ( a href="+code=test_bit" class="sref">test_bit /a>( a href="+code=WDT_OK_TO_CLOSE" class="sref">WDT_OK_TO_CLOSE /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>))> 194 /a>                if ( a href="+code=test_bit" class="sref">test_bit /a>( a href="+code=WDT_ENABLED" class="sref">WDT_ENABLED /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>))> 195 /a>                         a href="+code=state" class="sref">state /a> = lass="line" namue=L194"> 194 /a>                if ( a href="+code=test_bit" class="sref">test51" ide=L151" class="line" namue=L151">1light 2004 (c) Mont/a> spao class="comment"> * or iop3xx bt.c#L79iss="sref">identity /a> =  spao class="1>WDT_OK_TO_CLOSE /a>, &4_TO_CLOSE /a>, &ePALIVEPING /a>,> * this program; if not, write189" clasest_and_set_bit /a>( a h1ref="19 along with /spaon> * this program; if not, writee to the FFree Software Founda4.7o,a>sta9, 59 Temple /spaon> 1012/a>  20c#L111" ide=L111" class="line" node=test_bit" class="sref">tes!                                      a href2lear_bit 2a>( a href="+code=WDT_OK2TO_CL20"sref">put_user /a>(0,  a href="+codclass="line" namue=L180"> 180 /a>                 a href="+code=ret" class="sref2wdt_enabl2 /a>();>#i1" ochdounexpectedly -areset=L14%lu sede=Ls1 /a>                                  uosigned int  a2_bit /a>(2a href="+code=WDT_ENABLE2" cla20"drivers/watchdog/iop_wdt.c#L174" ide=L174" ">argp /a>);>nonseekable_open /a>(2a hre2="+code=inode"="drivers/watchdog/iop_wdt.c#L190" ide=2L106" cla2s="line" namue=L106"> 102 /a>>20                    for ( a href="+code=i" 2107" clas2="line" namue=L107"> 1072/a>st20EN" class="sref">IOP_WDTCR_EOSE /a>, & a href="+code=wdt_status" class="sref">wdt>))>  99 /a>                    a href="+code=ret" class="sref2w/a>( a hr href="+code=iop_wdt_wri2e" cl20ock" class="sref">wdt_lock /OSE /a>, & a href="+code=wdt_status" class="sref">wdt_status /a>);> 115 /a>>lof2_t /a> * a href="+code=p2os" c20e < 112 /a> 20/watchdog/iop     } else>nowayout /a>) {>size_t /a>  a href="+c2de=i"21_lock" class class="sref">ident /a> = {>{>)raECARD /a>) {>)raECARDwatchlass="sref">inode /a> *fopD /a>) {> *fopD">test5                                 a href2114" clas2="line" namue=L114"> 1142/a>  21"drivers/watc">WDIOF_CARDRESETwnmeout /a>(),  a hTwnme">test51" ide=L151" clTHIS>>);>clear_bit /a>( a hr2f="+c2de=WDT_OK_TO_C">WDIOF_CARDRESEllf">f);>f">test51" ide=L151" clno_llf">f);>fop_wd                                a href21106" cla2="line" namue=L116"> 1162/a>  215=WDT_OK_TO_C">WDIOF_CARDRESEf="+code=file" classfile /a>,st51" ide=L151" cl * a href="+code=file" class="sref">file /a>,d                                a href2107" clas2">i /a> = 0;  a href="+c2de=i"2class="sref">i">WDIOF_CARDRESEiop_wdedef="+code=file" classiop_wdedef="+c/a>,st51" ide=L151" cl * a href="+code=file" class="sref">file /a>,d                                a href21/a>( a hrss="sref">c /a>;>WDIOF_CARDRESET e=L128"> 128 /a>}a>);>inode d                                a href21ref">lof2="line" namue=L119"> 1192/a>  218/watchdog/io">WDIOF_CARDRESE a href="+code=inode" ref">inode st51" ide=L151" cl * a hre a href="+code=inode" class="sref">inode d                                a href21110" cla2r" class="sref">get_user2/a>( 2 href=f="drivers/watchdog/iop_wdt.c#L135" ide=2, MA 021111-1307 USA. /spaon>EFAU22     a href="+code=clear_bit" class="sref">2atchdog/ioop_wdt.c#L22" ide=L22" cllass=22/watchdog/io="sref">ident /a> = {>  35 /a>#i="+code=inode"   35 /a>#iwatchlass="sref">inode /a> *  35 /a="+code=inode" class="s  35 /a">test5                                 a href2t.e.bruos@iintel.com> /spaon>(),  a hminoeode st51" ide=L151" cl">  40 /aMINOR);>WDIOF_CARDRESEaon>);> 133 /a>};>WDIOF_CARDRESEfopD /a>) {>test5ent /a>)))>teef="drivers/watchdog/iop_wdt.c#L134" id2.106" cla2t_enable /a>();> 22s="1>WDT_OK_TO_CLOSE /a>, &4_TO_CLOSE /a>, 2len /a>;>2a href="drivers/watchdog2iop_w22)>inode /a> *a>#i /a>) {> *a>#istatuvf="drivers/watchdog/iop_wdt.c#L83" ide=L832 class="liine" namue=L29">  29 /a># /a>>22  int  a href="+code=can_disable" class="sre2s="fref">llinux/module.h /a>>>st22">ENOTTY /a>;>watchdog_info /a>  2 href23     a href="+code=clear_bit" class="sref">24.7os /a>2=  a href="+code=WDIOF_C2RDRES23xFFFF.FFFF /spaon> =  spao class="string"2"23g/iop_wdt.c#L103" ide=L103" ="drivers/watchdog/iop_wdt.c#L156" ide=L1a>;>href="drivers/watad_rcseout /a>(),  a hatad_rcseide=L1atchdog/iop_wdt.c#L173 88 RCSR /a>out /a>(),  a h 88 RCSR /a>      ?LOSE" class="sref">WDIOF_MAGICCLOSE /a> |  a href="+code=WDIOF_KEE: else> 124 /a>23    case  a href="+code=WDIOC_GETBOOTSTATUS2135" clas2="line" namue=L135"> 1352/a>st234FFFF.FFFF /spaon>(struct  a2href=23vers/watchdog/iop_wdt.c#L56"""""""""* NOTE: A>cmd 2a>, u23line" namue=L57">  57 /a>sta""""""""*href="drivers/watchdog/iop_wdt.c#L27" ide=L27" den /a>;>2s="line" namue=L138"> 132 /a> 23ock" class="sref">wdt_lock //watchdogseout /a>(),  a h/watchdogsestatus" class="sref" 8813XX /a>   IB_AGICCLOSE /a> |  a h 8813XX /a>   IB_AGICC href="drivers/watchdog/iop_wdt.c#L116" ide=2>>
4.7os 2a>;>bool /a> 2 /a> = - 2 href="+code=ENOTTY" cla2s="sr2f">ENOTTY /a>;paon>in"*href="drivers/watchdog/iop_wdt.c#L27" ide=L27" 142" clas2="line" namue=L142"> 1422/a>  24E" class="sref">WDT_OK_TO_CLop_watchdog_timeout" class="sref">iop_watch  35sregister="+code=inode"   35sregisterstatuent /a>)))>tef="drivers/watchdog/iop_wdt.c#L116" ide=2>cmd /a>)2{>L134" cl2>WDIOC_GETSUPPORT /a>:><2 href24"drivers/watchdog/iop.c#L63" ide=L63pr_ivers/watchdog/iop_wdt.c#L91" ide=L91" class="line" namue=#L185" 4%lu sed1 /a>           L174" ide=L174" ">argp /a>);>copy_to_user /a>( a 2ref="24ic long  a href="+code=iop_wdt_ioctl" class2s="sref">2et /a> = - a href="+code2EFAUL2" class="sref"L188" class="line" namue=L188"> 188 /a>}>2et /a> = 0;>(void)>vwdt.c#L70" ide=L70"__ex#i /a>) {>inode /a> *ex#i /a>) {> *ex#istatuvf="drivers/watchdog/iop_wdt.c#L83" ide=L832150" clas2="line" namue=L150"> 1502/a>  24     if ( a href="+code=len" class="sref">le2ss="sref"2WDIOC_GETSTATUS /a>:>iop_watch  35sderegister="+code=inode"   35sderegisterstatuent /a>)))>tef="drivers/watchdog/iop_wdt.c#L116" ide=2>ret /a> 2  a href="+code=put_user2 clas2="sref="drivers/watchdog/iop_wdt.c#L190" ide=2/iop_wdt.2#L153" ide=L153" class="2ine" 25    case  a href="+code=WDIOC_GETTIMEOUT" c2154" clas2="line" namue=L154"> 1542/a>  2     csref">iop_watch odule*a>#i /a>) {>#istatus" class="sref"de /a> *a>#i /a>) {> *a>#istatf="drivers/watchdog/iop_wdt.c#L116" ide=2>class="s2ef">WDIOC_GETBOOTSTATUS 2a>:><2 href=sref">iop_watch odule*ex#i /a>) {> *ex#i /a>) {> *ex#istatf="drivers/watchdog/iop_wdt.c#L116" ide=2>="sref">2  a href="+code=put_user2 clas25                    for ( a href="+code=i" 2/iop_wdt.2#L157" ide=L157" class="2ine" 2amue=Lsref">iop_watch odule*param /a>) {> 164 /a>       L174" ide=L174" .c#code=file" class.c#c     L0f="drivers/watchdog/iop_wdt.c#L116" ide=2>="sref">2="line" namue=L158"> 1582/a>  2     c174" ide=L174" >_PARM_DESCode=file" class>_PARM_DESCstatus" class="sref"s="line" namue=L164"> 164 /a>       L1e=L91" class="line" namue=W_bit" cacanp_w blistopped on#i s claed/a>                return 0;>WDIOC_SETOPTIONS /a>:><2 href25 a href="+code=bool" class="sref">bool /a> 2ss="sref"2get_user /a>( a href="+c2de=>
2.7os" 174" ide=L174" >_AUTHOR);>                return 0;>EFAULT /a>;>_DESCRIa>   );> 13ass="li 0;>                return 0;> 1622/a>  2      174" ide=L174" >_LICENa>);>                return 0;>_ALIAS_MISCDEV);>>  40 /aMINOR);>nowayout /a>) {2nofooter=>
The original LXR softw="liby" cla   returnhttp://sourceforge.net/projects/lxr=>LXR g/ioundt.c#L1," cis experiop_wal >lxr@wayux.noc#L1.
nosubfooter=> lxr.wayux.no kindly hostediby" returnhttp://www.redpill-waypro.no">Redpill Laypro ASc#L1,"provider of Layuxs claula> g/ioa>)raECARD sera>#iD sin#i 1995.