⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addi_common.c

📁 最新版comedi的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
/**@verbatimCopyright (C) 2004,2005  ADDI-DATA GmbH for the source code of this module.                 ADDI-DATA GmbH         Dieselstrasse 3         D-77833 Ottersweier         Tel: +19(0)7223/9493-0         Fax: +49(0)7223/9493-92         http://www.addi-data-com         info@addi-data.com 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.This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAYou shoud also find the complete GPL in the COPYING file accompanying this source code.@endverbatim*//*      +-----------------------------------------------------------------------+  | (C) ADDI-DATA GmbH          Dieselstrasse 3      D-77833 Ottersweier  |  +-----------------------------------------------------------------------+  | Tel : +49 (0) 7223/9493-0     | email    : info@addi-data.com         |  | Fax : +49 (0) 7223/9493-92    | Internet : http://www.addi-data.com   |  +-----------------------------------------------------------------------+  | Project   : ADDI DATA         | Compiler : GCC 		          |  | Modulname : addi_common.c     | Version  : 2.96                       |  +-------------------------------+---------------------------------------+  | Author    :           | Date     :                    		  |  +-----------------------------------------------------------------------+  | Description : ADDI COMMON Main Module                                 |  +-----------------------------------------------------------------------+  | CONFIG OPTIONS                                                        |  |	option[0] - PCI bus number - if bus number and slot number are 0, |  |			         then driver search for first unused card |  |	option[1] - PCI slot number                                       |  |							                  |  |	option[2] = 0  - DMA ENABLE                                       |  |               = 1  - DMA DISABLE                                      |  +----------+-----------+------------------------------------------------+*/ #include<linux/kernel.h>#include<linux/module.h>#include<linux/sched.h>#include<linux/mm.h>#include<linux/slab.h>#include<linux/errno.h>#include<linux/ioport.h>#include<linux/delay.h>#include<linux/interrupt.h>#include<linux/timex.h>#include<linux/timer.h>#include<linux/pci.h>#include<linux/comedidev.h>#include<asm/io.h>#include<asm/i387.h>#include "../comedi_fc.h"#include "addi_common.h"#include "addi_amcc_s5933.h"//Update-0.7.57->0.7.68MODULE_AUTHOR("ADDI-DATA GmbH <info@addi-data.com>");//Update-0.7.57->0.7.68MODULE_DESCRIPTION("Comedi ADDI-DATA module");//Update-0.7.57->0.7.68MODULE_LICENSE("GPL");#define devpriv ((addi_private *)dev->private)#define this_board ((boardtype *)dev->board_ptr)//BYTE b_SaveFPUReg [94];void 	fpu_begin (void)	{	//asm ("fstenv b_SaveFPUReg");	kernel_fpu_begin ();	}void 	fpu_end (void)	{	// asm ("frstor b_SaveFPUReg");	kernel_fpu_end ();	}#include "addi_eeprom.c"#include "hwdrv_apci3120.c"#include "hwdrv_apci1032.c"#include "hwdrv_apci1516.c"#include "hwdrv_apci2016.c"#include "hwdrv_apci2032.c"#include "hwdrv_apci2200.c"#include "hwdrv_apci1564.c"#include "hwdrv_apci1500.c"#include "hwdrv_apci3501.c"#include "hwdrv_apci035.c"#include "hwdrv_apci3200.c" #include "hwdrv_APCI1710.c"#include "hwdrv_apci16xx.c"#include "hwdrv_apci3xxx.c"static boardtype boardtypes[] ={		{"apci3120", 		APCI3120_BOARD_VENDOR_ID,		0x818D,	 	AMCC_OP_REG_SIZE,		APCI3120_ADDRESS_RANGE,		8,		0,                ADDIDATA_NO_EEPROM,		NULL,                16, 		8, 		16, 		8, 		0xffff, 		0x3fff,	 	&range_apci3120_ai, 		&range_apci3120_ao,          	4,		4,		0x0f,		0,		NULL,		1,		1,		1,		10000,		100000,                v_APCI3120_Interrupt,                i_APCI3120_Reset,                i_APCI3120_InsnConfigAnalogInput,		i_APCI3120_InsnReadAnalogInput,                NULL,                NULL,                i_APCI3120_CommandTestAnalogInput,		i_APCI3120_CommandAnalogInput,                i_APCI3120_StopCyclicAcquisition,                NULL,		i_APCI3120_InsnWriteAnalogOutput,                NULL,                NULL,		i_APCI3120_InsnReadDigitalInput,                NULL,		i_APCI3120_InsnBitsDigitalInput,		i_APCI3120_InsnConfigDigitalOutput,                i_APCI3120_InsnWriteDigitalOutput,                i_APCI3120_InsnBitsDigitalOutput,                NULL,		i_APCI3120_InsnConfigTimer,		i_APCI3120_InsnWriteTimer,		i_APCI3120_InsnReadTimer,                NULL,		NULL,		NULL,		NULL,		NULL		},                    {"apci1032",		APCI1032_BOARD_VENDOR_ID,		0x1003,                4,		APCI1032_ADDRESS_RANGE,		0,		0,                ADDIDATA_EEPROM,		ADDIDATA_93C76, 		0,		0,		0,		0,		0,		0,		0,		0,                32,		0,		0,		0,		NULL,		0,		0,		0,		0,		0,                v_APCI1032_Interrupt,		                 i_APCI1032_Reset,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                i_APCI1032_ConfigDigitalInput,                i_APCI1032_Read1DigitalInput,                NULL,                i_APCI1032_ReadMoreDigitalInput,                 NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,		NULL,		NULL,		NULL,		NULL                },		                {"apci1516",		APCI1516_BOARD_VENDOR_ID,		0x1001,		128,		APCI1516_ADDRESS_RANGE,		32,		0,                ADDIDATA_EEPROM,		ADDIDATA_S5920,                0,		0,		0,		0,		0,		0,		NULL,		NULL,		8,                8,		0,		0,		NULL,		0,		1,		0,		0,		0,                NULL,		                 i_APCI1516_Reset,                NULL,NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                i_APCI1516_Read1DigitalInput,                NULL,                i_APCI1516_ReadMoreDigitalInput,                i_APCI1516_ConfigDigitalOutput,                i_APCI1516_WriteDigitalOutput,                i_APCI1516_ReadDigitalOutput,                NULL,                i_APCI1516_ConfigWatchdog,                i_APCI1516_StartStopWriteWatchdog,                i_APCI1516_ReadWatchdog,                NULL,		NULL,		NULL,		NULL,		NULL                },                {"apci2016",		APCI2016_BOARD_VENDOR_ID,		0x1002,                128,		APCI2016_ADDRESS_RANGE,		32,		0,		ADDIDATA_EEPROM,		ADDIDATA_S5920,		0,		0,		0,		0,		0,		0,                NULL,		NULL,                0,		16,		0,		0,		NULL,		0,		1,		0,		0,		0,                NULL,                 i_APCI2016_Reset,                NULL,		NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                i_APCI2016_ConfigDigitalOutput,                i_APCI2016_WriteDigitalOutput,                i_APCI2016_BitsDigitalOutput,                NULL,                i_APCI2016_ConfigWatchdog,                i_APCI2016_StartStopWriteWatchdog,                i_APCI2016_ReadWatchdog,                NULL,		NULL,		NULL,		NULL,		NULL                },                 {"apci2032", 		APCI2032_BOARD_VENDOR_ID, 		0x1004,	 	4,		APCI2032_ADDRESS_RANGE,		0,		0,		ADDIDATA_EEPROM,		ADDIDATA_93C76,	 	0, 		0, 		0, 		0, 		0, 		0,	 	NULL, 		NULL,          	0,		32,		0xffffffff,		0,		NULL,		0,		1,		0,		0,		0,                v_APCI2032_Interrupt,                                          i_APCI2032_Reset,                NULL,NULL,                                        		NULL,                                                          NULL,                                         		NULL,                                                           NULL,                                                          NULL,                                          		NULL,                                                         NULL,                                          		NULL,                                          		NULL,                                                          NULL,                NULL,                NULL,                i_APCI2032_ConfigDigitalOutput,		i_APCI2032_WriteDigitalOutput,                i_APCI2032_ReadDigitalOutput,                i_APCI2032_ReadInterruptStatus,                 i_APCI2032_ConfigWatchdog,         		i_APCI2032_StartStopWriteWatchdog, 		i_APCI2032_ReadWatchdog,                NULL,		NULL,		NULL,		NULL,		NULL                },		                {"apci2200",		APCI2200_BOARD_VENDOR_ID,		0x1005,		4,		APCI2200_ADDRESS_RANGE,		0,		0,                ADDIDATA_EEPROM,		ADDIDATA_93C76,                0,		0,		0,		0,		0,		0,		NULL,		NULL,		8,                16,		0,		0,		NULL,		0,		1,		0,		0,		0,                NULL,		                 i_APCI2200_Reset,                NULL,NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                i_APCI2200_Read1DigitalInput,                NULL,                i_APCI2200_ReadMoreDigitalInput,                i_APCI2200_ConfigDigitalOutput,                i_APCI2200_WriteDigitalOutput,                i_APCI2200_ReadDigitalOutput,                NULL,                i_APCI2200_ConfigWatchdog,                i_APCI2200_StartStopWriteWatchdog,                i_APCI2200_ReadWatchdog,                NULL,		NULL,		NULL,		NULL,		NULL                },		                {"apci1564",		APCI1564_BOARD_VENDOR_ID,		0x1006,                128,		APCI1564_ADDRESS_RANGE,		0,		0,                ADDIDATA_EEPROM,		ADDIDATA_93C76,		0,		0,		0,		0,		0,		0,                NULL,		NULL,                32,		32,		0xffffffff,		0,		NULL,		0,		1,		0,		0,		0,                v_APCI1564_Interrupt,		                 i_APCI1564_Reset,                NULL,		NULL,                 NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                NULL,                i_APCI1564_ConfigDigitalInput,                i_APCI1564_Read1DigitalInput,                NULL,                  i_APCI1564_ReadMoreDigitalInput,                 i_APCI1564_ConfigDigitalOutput,                i_APCI1564_WriteDigitalOutput,                i_APCI1564_ReadDigitalOutput,                i_APCI1564_ReadInterruptStatus,                i_APCI1564_ConfigTimerCounterWatchdog,                i_APCI1564_StartStopWriteTimerCounterWatchdog,                i_APCI1564_ReadTimerCounterWatchdog,                NULL,		NULL,		NULL,		NULL,		NULL                },		                {"apci1500", 		APCI1500_BOARD_VENDOR_ID, 		0x80fc,	 	128,		APCI1500_ADDRESS_RANGE,		4,		0,                ADDIDATA_NO_EEPROM,		NULL,	 	0, 		0, 		0, 		0, 		0, 		0,		NULL, 		NULL,        	16,		16,		0xffff,		0,		NULL,		0,		1,		0,		0,		0,                v_APCI1500_Interrupt,                                          i_APCI1500_Reset,                 NULL,		NULL,                                       		NULL,                                                          NULL,                                         		NULL,                                                           NULL,                                                          NULL,                                          		NULL,                                                         NULL,                                          		NULL,                                          		i_APCI1500_ConfigDigitalInputEvent,                                                          i_APCI1500_Initialisation,                i_APCI1500_StartStopInputEvent,                i_APCI1500_ReadMoreDigitalInput,                i_APCI1500_ConfigDigitalOutputErrorInterrupt,		i_APCI1500_WriteDigitalOutput,                i_APCI1500_ConfigureInterrupt,                NULL,                 i_APCI1500_ConfigCounterTimerWatchdog,         		i_APCI1500_StartStopTriggerTimerCounterWatchdog,                 i_APCI1500_ReadInterruptMask,		i_APCI1500_ReadCounterTimerWatchdog,		NULL,		NULL,		NULL,		NULL                },                               {"apci3001", 	        APCI3120_BOARD_VENDOR_ID, 		0x828D,	 	AMCC_OP_REG_SIZE, 		APCI3120_ADDRESS_RANGE,		8,		0,                ADDIDATA_NO_EEPROM,		NULL,                16, 		8, 		16, 		0, 		0xfff, 		0,	 	&range_apci3120_ai, 		NULL,          	4,		4,		0x0f,		0,		NULL,		1,		1,		1,		10000,		100000,                v_APCI3120_Interrupt,                i_APCI3120_Reset,                i_APCI3120_InsnConfigAnalogInput,		i_APCI3120_InsnReadAnalogInput,                NULL,		NULL,                i_APCI3120_CommandTestAnalogInput,		i_APCI3120_CommandAnalogInput,                i_APCI3120_StopCyclicAcquisition,                NULL,		NULL,                NULL,                NULL,		i_APCI3120_InsnReadDigitalInput,                NULL,		i_APCI3120_InsnBitsDigitalInput,		i_APCI3120_InsnConfigDigitalOutput,                i_APCI3120_InsnWriteDigitalOutput,                i_APCI3120_InsnBitsDigitalOutput,                NULL,		i_APCI3120_InsnConfigTimer,		i_APCI3120_InsnWriteTimer,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -