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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? smartcan.c

?? smartcan在linux操作系統(tǒng)下的驅(qū)動程序源代碼。
?? C
字號:
/* smartcan.c
 * Linux CAN-bus device driver.
 * Written by Arnaud Westenberg email:arnaud@wanadoo.nl
 * This software is released under the GPL-License.
 * Version 0.7  6 Aug 2001
 */ 

#include <linux/autoconf.h>
#if defined (CONFIG_MODVERSIONS) && !defined (MODVERSIONS)
#define MODVERSIONS
#endif

#if defined (MODVERSIONS)
#include <linux/modversions.h>
#endif

#include <linux/ioport.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <asm/errno.h>
#include <asm/io.h>
#include <asm/irq.h>
#include "sysdep.h"
#include "candrv.h"
#include "smartcan.h"
#include "i82527.h"

int smartcan_irq=-1;
unsigned long smartcan_base=0x0;

int smartcan_request_io(unsigned long io_addr)
{
	int err=0;

	if ( (err=check_region(io_addr,0x04)) < 0 ) {
		CANMSG("Unable to open port: 0x%lx\n",io_addr);
		return -ENODEV;
	}
	else {
		request_region(io_addr,0x04,DEVICE_NAME);
		DEBUGMSG("Registered IO-memory: 0x%lx - 0x%lx\n", io_addr, io_addr + 0x04 - 1);
	}
	return 0;
}

int smartcan_release_io(unsigned long io_addr)
{
	release_region(io_addr,0x04);

	return 0;
}

int smartcan_reset(int card)
{
	int i=0;

	DEBUGMSG("Resetting smartcan hardware ...\n");
	outb(0x00,candevices_p[card]->res_addr);
	while (i < 1000000) {
		i++;
		outb(0x01,candevices_p[card]->res_addr);
	}
	outb(0x00,candevices_p[card]->res_addr); 

	/* Check hardware reset status */
	i=0;
	outb(candevices_p[card]->io_addr+iCPU,candevices_p[card]->io_addr);
	while ( (inb(candevices_p[card]->io_addr+1)&0x80) && (i<=15) ) {
		udelay(20000);
		i++;
	}
	if (i>=15) {
		CANMSG("Reset status timeout!\n");
		CANMSG("Please check your hardware.\n");
		return -ENODEV;
	}
	else
		DEBUGMSG("Chip0 reset status ok.\n");

	return 0;
} 

int smartcan_init_hw_data(int card)
{
	candevices_p[card]->res_addr=candevices_p[card]->io_addr+0x02;
	candevices_p[card]->nr_82527_chips=1;
	candevices_p[card]->nr_sja1000_chips=0;

	return 0;
}

int smartcan_init_chip_data(int card, int chipnr)
{
	candevices_p[card]->chip[chipnr]->chip_type="i82527";
	candevices_p[card]->chip[chipnr]->chip_base_addr=candevices_p[card]->io_addr;
	candevices_p[card]->chip[chipnr]->clock = 16000000;
	candevices_p[card]->chip[chipnr]->int_cpu_reg = iCPU_DSC;
	candevices_p[card]->chip[chipnr]->int_clk_reg = iCLK_SL1;
	candevices_p[card]->chip[chipnr]->int_bus_reg = iBUS_CBY;
	candevices_p[card]->chip[chipnr]->sja_cdr_reg = 0;
	candevices_p[card]->chip[chipnr]->sja_ocr_reg = 0;
	smartcan_irq=candevices_p[card]->chip[chipnr]->chip_irq;
	smartcan_base=candevices_p[card]->chip[chipnr]->chip_base_addr;

	return 0;
}

int smartcan_init_obj_data(int chipnr, int objnr)
{
	chips_p[chipnr]->msgobj[objnr]->obj_base_addr=(objnr+1)*0x10;
	chips_p[chipnr]->msgobj[objnr]->flags=0;

	return 0;
}


void smartcan_write_register(unsigned char data, unsigned long address)
{
	disable_irq(smartcan_irq);
	outb(address-smartcan_base,smartcan_base);
	outb(data,smartcan_base+1);
	enable_irq(smartcan_irq);
}

unsigned smartcan_read_register(unsigned long address)
{
	unsigned ret;
	disable_irq(smartcan_irq);
	outb(address-smartcan_base,smartcan_base);
	ret=inb(smartcan_base+1);
	enable_irq(smartcan_irq);
	return ret;
}

int smartcan_program_irq(int card)
{
	CANMSG("The 'smartcan' card doesn't have programmable interrupts\n");
	return 0;
}

/* !!! Don't change this function !!! */
int smartcan_register(struct hwspecops_t *hwspecops)
{
	hwspecops->request_io = smartcan_request_io;
	hwspecops->release_io = smartcan_release_io;
	hwspecops->reset = smartcan_reset;
	hwspecops->init_hw_data = smartcan_init_hw_data;
	hwspecops->init_chip_data = smartcan_init_chip_data;
	hwspecops->init_obj_data = smartcan_init_obj_data;
	hwspecops->write_register = smartcan_write_register;
	hwspecops->read_register = smartcan_read_register;
	hwspecops->program_irq = smartcan_program_irq;
	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
eeuss鲁一区二区三区| 国产高清不卡一区| 国产日韩在线不卡| 欧美中文字幕一区二区三区 | 天使萌一区二区三区免费观看| 精品国产乱码91久久久久久网站| 99久久99久久久精品齐齐| 美女www一区二区| 一区二区三区资源| 国产欧美日韩三级| 欧美一区二区女人| 91在线观看免费视频| 狠狠色狠狠色综合日日91app| 亚洲精品水蜜桃| 精品国产91亚洲一区二区三区婷婷| 欧美午夜片在线看| 99视频有精品| 成人永久aaa| 精品系列免费在线观看| 亚洲成av人在线观看| 亚洲三级在线看| 中文字幕欧美日本乱码一线二线| 日韩区在线观看| 欧美美女一区二区在线观看| 一本大道久久a久久精二百| 国产成人精品aa毛片| 国产一区二区三区四区五区入口| 免费人成在线不卡| 午夜精品久久久久久久久久久 | 欧美日韩一二区| 在线观看日韩毛片| 色综合久久久网| 91麻豆蜜桃一区二区三区| 成人18精品视频| 丁香婷婷综合色啪| 成人性视频网站| 成人视屏免费看| 成人精品电影在线观看| 成人一区二区三区在线观看| 国产成人亚洲综合a∨婷婷| 国产一区二区伦理片| 精品一区二区三区免费观看| 紧缚奴在线一区二区三区| 捆绑变态av一区二区三区| 欧美性受极品xxxx喷水| 91免费国产视频网站| 不卡的av在线| 91搞黄在线观看| 欧美丝袜丝nylons| 69av一区二区三区| 欧美成人vps| 国产亚洲欧美日韩日本| 中文字幕欧美日韩一区| 成人免费一区二区三区视频| 一区二区三区在线视频观看58 | 日韩理论片在线| 亚洲激情欧美激情| 亚洲第一搞黄网站| 蜜乳av一区二区| 国产一区二区三区日韩| 成人精品高清在线| 欧美亚洲国产一区在线观看网站| 欧美午夜精品理论片a级按摩| 欧美日本一道本| 精品第一国产综合精品aⅴ| 久久亚洲精品小早川怜子| 欧美国产国产综合| 亚洲另类在线一区| 日韩成人精品在线观看| 国产一区二区在线观看免费 | 欧美日韩亚州综合| 欧美大片在线观看一区| 国产免费成人在线视频| 亚洲在线观看免费视频| 久久精品国产久精国产| 99久久精品免费精品国产| 欧美日韩不卡在线| 久久一日本道色综合| 亚洲黄色av一区| 毛片不卡一区二区| 91一区二区三区在线观看| 欧美精品v日韩精品v韩国精品v| 精品久久久久久综合日本欧美| 中文字幕不卡一区| 亚洲18色成人| 丁香桃色午夜亚洲一区二区三区 | 国产亚洲精品超碰| 亚洲资源中文字幕| 国产高清不卡二三区| 欧美日韩午夜精品| 久久精品亚洲麻豆av一区二区| 亚洲在线免费播放| 懂色一区二区三区免费观看| 在线不卡中文字幕| 国产99久久久国产精品| 91精品久久久久久蜜臀| 中文字幕中文乱码欧美一区二区| 婷婷综合五月天| 不卡电影免费在线播放一区| 538在线一区二区精品国产| 国产精品乱码一区二区三区软件| 丝袜亚洲另类欧美综合| 97精品久久久午夜一区二区三区| 日韩欧美高清在线| 夜夜嗨av一区二区三区四季av| 国产精品69久久久久水密桃| 3751色影院一区二区三区| 亚洲婷婷综合久久一本伊一区| 精品亚洲porn| 337p亚洲精品色噜噜| 亚洲激情成人在线| 不卡一卡二卡三乱码免费网站| 欧美一级理论性理论a| 亚洲一区二区三区四区不卡| www.爱久久.com| 久久久精品综合| 久久精品国产精品亚洲综合| 欧美精品在线观看一区二区| 亚洲精品国久久99热| 高清不卡一区二区在线| 精品国产污污免费网站入口| 五月婷婷久久综合| 91久久久免费一区二区| 亚洲免费毛片网站| 不卡的av电影在线观看| 国产欧美精品一区| 国产一区二区h| 亚洲精品一区二区三区香蕉| 日韩高清不卡一区二区三区| 欧美三级韩国三级日本一级| 亚洲美女区一区| 91污在线观看| 亚洲女爱视频在线| 在线一区二区三区四区五区| 一区二区三区中文字幕| 欧美性猛交xxxx乱大交退制版| 亚洲精品亚洲人成人网| 99精品一区二区三区| 国产精品乱人伦| 欧美国产精品一区二区三区| 国产一区二区三区在线观看免费视频| 日韩一级在线观看| 日本成人在线网站| 日韩精品一区二| 国产一区二区在线电影| 久久精品一区二区| av不卡在线播放| 亚洲乱码中文字幕| 欧美一a一片一级一片| 亚洲成人激情自拍| 91麻豆精品国产91久久久更新时间| 日韩精品亚洲专区| 久久婷婷国产综合国色天香| 国产精选一区二区三区| 日本一区二区高清| 色婷婷av一区二区三区gif| 亚洲第一在线综合网站| 日韩色在线观看| 国产一区中文字幕| 中文字幕欧美日本乱码一线二线| 99精品视频一区二区三区| 亚洲综合另类小说| 日韩一区国产二区欧美三区| 精品一区二区久久| 国产精品乱码人人做人人爱| 欧美亚洲一区二区在线| 久久精品久久精品| 国产亚洲欧美日韩日本| 色哟哟日韩精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美日韩成人综合在线一区二区| 日本免费新一区视频| 国产午夜精品一区二区| 日本高清不卡一区| 麻豆精品国产传媒mv男同 | 蜜桃视频在线一区| 日本一区二区三区国色天香| 欧美午夜电影一区| 国产白丝网站精品污在线入口| 亚洲精品日韩一| www久久精品| 在线观看中文字幕不卡| 国内成人自拍视频| 一区二区三区在线播放| www一区二区| 777色狠狠一区二区三区| 粉嫩av亚洲一区二区图片| 午夜视频一区二区三区| 国产精品国产成人国产三级| 91精品国产综合久久精品性色| www.日本不卡| 精品一区二区三区视频| 亚洲一级片在线观看| 欧美国产欧美综合| 精品国产在天天线2019| 欧美中文字幕不卡| av在线播放不卡| 国产精品亚洲午夜一区二区三区| 偷拍自拍另类欧美| 亚洲精品中文在线|