亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? at91_watchdog.c

?? linux2。4下的看門狗驅動程序源代碼
?? C
字號:
/* *	Timer Counter interface for Linux on Atmel AT91RM9200 * *	Copyright (c) 2002 Rick Bronson *  *	This program is free software; you can redistribute it and/or *	modify it under the terms of the GNU General Public License *	as published by the Free Software Foundation; either version *	2 of the License, or (at your option) any later version. *Watchdog driver.  This enables you to open a Watchdog and change thetime for the watchdog to expire. */#include <linux/module.h>#include <linux/fs.h>#include <linux/miscdevice.h>#include <linux/string.h>#include <linux/init.h>#include <linux/poll.h>#include <linux/proc_fs.h>#include <asm/bitops.h>#include <asm/hardware.h>#include <asm/irq.h>#include <asm/arch/watchdog.h>  /* get ioctl stuff for watchdog */extern struct watchdog_private watchdog_priv;  /* watchdog private stuff */#define	DRIVER_VERSION	"1.00"static int at91_watchdog_open(struct inode *inode, struct file *file){	file->private_data = &watchdog_priv;	spin_lock_init(&priv->lock1);        MOD_INC_USE_COUNT;        return 0;}static int at91_watchdog_release(struct inode *inode, struct file *file){        MOD_DEC_USE_COUNT;	return 0;}ssize_t at91_watchdog_write(struct file * file, const char *buf, size_t count, loff_t * ppos)  {#if 0  /* not sure if they want to use it this way */  AT91PS_ST pSt;  /* pointer to the ST peripheral */  struct at91_watchdog_ioctl_set watchdog_set;  if (verify_area(VERIFY_READ, buf, count))    return -EFAULT;  if (__get_user(watchdog_set, buf))    return -EFAULT;  pSt = AT91C_BASE_ST;  pSt->ST_WDMR = watchdog_set.watchdog_wdmr | AT91C_ST_RSTEN;  /* (ST) Reset Enable */  pSt->ST_CR = AT91C_ST_WDRST;  /* (ST) Watchdog Timer Restart */#endif  return count;  }/* * Handle commands from user-space */static int at91_watchdog_ioctl(struct inode *inode, struct file *file,			  unsigned int cmd, unsigned long arg)  {  AT91PS_ST pSt;  /* pointer to the ST peripheral */  unsigned long flags;  struct watchdog_private *priv = (struct watchdog_private *)file->private_data;  struct at91_watchdog_ioctl_set watchdog_set;  struct at91_watchdog_ioctl_timer watchdog_timer;  long long all_64bits;  /* upper 44 bits to make 64 bit timer */  AT91_REG crtr, crtr_save;  /* saved value from AT91C_ST_CRTR (20 bits) */  int ret = 0;  pSt = AT91C_BASE_ST;  switch (cmd)    {    case AT91_WATCHDOG_SET_WATCHDOG:  /* set and enable the watchdog */      if (copy_from_user (&watchdog_set, (void *)arg, sizeof (watchdog_set)))        return -EFAULT;      pSt->ST_WDMR = watchdog_set.watchdog_wdmr | AT91C_ST_RSTEN;  /* (ST) Reset Enable */      pSt->ST_CR = AT91C_ST_WDRST;  /* (ST) Watchdog Timer Restart */      break;    case AT91_WATCHDOG_GET_32768_TIMER:  /* get the timer */      spin_lock_irqsave(&priv->lock1, flags);  /* stop int's while we                         read values that could be changed in the interrupt */      crtr = pSt->ST_CRTR;  /* 20 ls bits of 32768 Hz clock */      crtr_save = priv->crtr_save;      all_64bits = priv->upper_44bits;  /* get temp copy */      spin_unlock_irqrestore(&priv->lock1, flags);      if (crtr < crtr_save)  /* if wrapped, add one to upper bits */        all_64bits += AT91C_ST_CRTV + 1;      all_64bits |= crtr;      ret = copy_to_user ((void *)arg, &all_64bits, sizeof (watchdog_timer)) ? -EFAULT : 0;      break;    default:      ret = -EINVAL;      break;    }  return ret;  }static struct file_operations at91_watchdog_fops = {	owner:THIS_MODULE,	write:at91_watchdog_write,	ioctl:at91_watchdog_ioctl,	open:at91_watchdog_open,	release:at91_watchdog_release,};static struct miscdevice watchdog_miscdev ={	WATCHDOG_MINOR,	"at91 watchdog",	&at91_watchdog_fops};#/* * Initialize and install WATCHDOG driver */static int __init at91_watchdog_init(void)  {  int res;   res = misc_register (&watchdog_miscdev);  if (res < 0)    {    printk(KERN_ERR "at91_watchdog: couldn't get a major number.\n");    return res;    }  printk(KERN_INFO "AT91 Watchdog driver v" DRIVER_VERSION "\n");  return 0;  }module_init(at91_watchdog_init);MODULE_AUTHOR("Rick Bronson");MODULE_DESCRIPTION("AT91 Timer Counter Driver (AT91_WATCHDOG)");EXPORT_NO_SYMBOLS;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产成人在线免费| 国产一区二区不卡老阿姨| 91社区在线播放| 国产精品传媒入口麻豆| 成人18视频日本| 自拍偷拍欧美激情| 91国产免费观看| 不卡视频免费播放| 在线国产亚洲欧美| 亚洲小少妇裸体bbw| 欧美日韩免费高清一区色橹橹 | 日本久久电影网| 有坂深雪av一区二区精品| 在线视频观看一区| 日本vs亚洲vs韩国一区三区二区 | 国产精品丝袜黑色高跟| 99精品一区二区三区| 亚洲一区在线观看免费 | 最新日韩av在线| 99久久99久久免费精品蜜臀| 一区二区三区精品久久久| 91精品国产麻豆| 国产成人精品网址| 一区二区久久久| 欧美tickling挠脚心丨vk| 成人网在线播放| 亚洲线精品一区二区三区八戒| 日韩欧美一区中文| av亚洲精华国产精华精华| 亚洲国产成人va在线观看天堂| 日韩欧美你懂的| 99re8在线精品视频免费播放| 午夜国产精品一区| 中文av一区二区| 91麻豆精品国产91久久久久久久久 | 亚洲成人动漫在线免费观看| 2023国产精华国产精品| 91国产福利在线| 国产乱码精品一区二区三| 亚洲精品国产高清久久伦理二区| 91精品久久久久久久久99蜜臂| 国产成人在线电影| 婷婷国产在线综合| 亚洲欧美综合另类在线卡通| 91精品蜜臀在线一区尤物| av在线一区二区三区| 美女视频一区在线观看| 伊人一区二区三区| 中文一区二区完整视频在线观看| 欧美日本一道本| 91蜜桃网址入口| 夫妻av一区二区| 久久国产欧美日韩精品| 亚洲一区二区三区四区五区中文| 亚洲国产精品成人综合| 26uuu国产在线精品一区二区| 在线精品亚洲一区二区不卡| 成人精品一区二区三区四区| 久久精品二区亚洲w码| 亚洲444eee在线观看| 亚洲美女在线一区| 中文av一区二区| 国产欧美视频一区二区| 久久综合资源网| 精品久久久久av影院| 宅男噜噜噜66一区二区66| 在线观看www91| 91美女片黄在线| 99久久久久久| www.亚洲人| 99精品欧美一区二区三区小说| 国产美女在线观看一区| 久草这里只有精品视频| 久久精品国产**网站演员| 蜜臀久久99精品久久久久久9| 午夜视频在线观看一区二区三区| 国产精品自产自拍| 国产乱码字幕精品高清av| 国产精品夜夜嗨| 国产高清成人在线| 粉嫩欧美一区二区三区高清影视| 激情偷乱视频一区二区三区| 久久成人久久鬼色| 精品一区二区三区免费视频| 精久久久久久久久久久| 国产美女久久久久| 成人在线综合网站| 成人激情综合网站| 91麻豆成人久久精品二区三区| 99精品国产91久久久久久| 91丨九色丨国产丨porny| 91电影在线观看| 91精选在线观看| 久久这里只有精品首页| 国产喂奶挤奶一区二区三区| 国产日韩精品一区二区浪潮av | 日韩免费福利电影在线观看| 欧美精品一区二区三区在线 | 国产亚洲成年网址在线观看| 中文字幕精品三区| 一区二区三区在线视频观看 | 国产精品久久久久久一区二区三区| 国产精品福利一区| 亚洲一区二区不卡免费| 免费av成人在线| 懂色av中文字幕一区二区三区| 9色porny自拍视频一区二区| 在线免费一区三区| 精品国产欧美一区二区| 国产精品美女视频| 午夜精品一区二区三区免费视频| 美国十次综合导航| 97久久精品人人做人人爽| 欧美在线一二三| 26uuu色噜噜精品一区二区| 亚洲天堂福利av| 日本在线不卡一区| 不卡一区二区中文字幕| 51精品国自产在线| 国产精品三级av| 日本免费新一区视频| 成人a区在线观看| 欧美一区中文字幕| 中文字幕欧美一区| 精品一区二区在线看| 91一区二区在线| 91超碰这里只有精品国产| 亚洲国产电影在线观看| 日本不卡123| 91蜜桃在线免费视频| 久久影院视频免费| 日日夜夜免费精品视频| 91一区在线观看| 久久久久久久久久久久久夜| 亚洲成人av一区二区| 不卡视频在线看| 精品国产髙清在线看国产毛片 | 久久精品一区八戒影视| 婷婷综合久久一区二区三区| 成人av在线一区二区三区| 欧美成人女星排行榜| 亚洲美女一区二区三区| 成人免费视频一区二区| 日韩视频在线一区二区| 亚洲成人免费观看| 日本高清无吗v一区| 国产精品第13页| 国产盗摄女厕一区二区三区| 精品日韩在线观看| 日产欧产美韩系列久久99| 色欲综合视频天天天| 国产精品国产三级国产| 国产丶欧美丶日本不卡视频| 欧美一区二区三区啪啪| 天天色 色综合| 欧美日韩国产欧美日美国产精品| 亚洲色图另类专区| www.一区二区| 亚洲天堂成人网| 91香蕉视频黄| 亚洲丝袜另类动漫二区| 成人网页在线观看| 亚洲国产精品t66y| 成人国产免费视频| 中文字幕第一页久久| 国产精品亚洲人在线观看| 2022国产精品视频| 国产精品亚洲专一区二区三区 | 久久精品亚洲麻豆av一区二区 | 亚洲精品视频在线观看网站| 99re这里只有精品首页| 国产精品高潮久久久久无| 国产suv精品一区二区6| 国产视频一区二区在线| 大胆亚洲人体视频| 中文字幕在线观看一区| 91在线观看污| 亚洲午夜久久久久中文字幕久| 日本韩国欧美在线| 亚洲va天堂va国产va久| 欧美人动与zoxxxx乱| 蜜桃视频一区二区三区在线观看| 欧美一区二区视频在线观看2022| 男男gaygay亚洲| 久久色在线观看| 99久久综合狠狠综合久久| 亚洲女人****多毛耸耸8| 欧美午夜寂寞影院| 蜜臀av一级做a爰片久久| 久久免费看少妇高潮| 成人福利视频网站| 亚洲主播在线播放| 欧美一区二区三区视频| 国产精品99久久久久久宅男| 欧美激情资源网| 日本国产一区二区| 捆绑调教一区二区三区| 国产精品午夜在线观看| 91久久精品网| 激情综合色丁香一区二区|