📄 defs.h
字号:
# define STD_MASK 0xFFFFFFFF # include "sja1000.h"#elif defined(CPC104)# define CAN_OUTC_VAL 0xda# define IO_MODEL 'm'# define STD_MASK 0xFFFFFFFF # include "sja1000.h"#elif defined(CPC_PCM_104) /* dual board configuration */ /* fortunately both boards use the same settings */# define CAN_OUTC_VAL 0xda# define IO_MODEL 'm'# define STD_MASK 0xFFFFFFFF # include "sja1000.h"#elif defined(CCPC104)# define CAN_OUTC_VAL 0xfa# define IO_MODEL 'm'# define STD_MASK 0xFFFFFFFF # include "sja1000.h"#elif defined(MMC_SJA1000)# define CAN_OUTC_VAL 0xfa# define IO_MODEL 'i'# define STD_MASK 0xFFFFFFFF # define CAN_IRQ_PIN AT91_PIN_PC12# include "sja1000.h"# include "mmc.h"# include <linux/platform_device.h># include <asm/gpio.h>extern void init_mmc_hw(void);extern void board_clear_interrupts(int minor);#elif defined(MCF5282)# define CAN_OUTC_VAL 0x5e# define IO_MODEL 'm'# define STD_MASK 0# include "mcf5282.h"/* can_mcf5282funcs.c */void mcf_irqreset(void);void mcf_irqsetup(void);#elif defined(AD_BLACKFIN)# define CAN_OUTC_VAL 0x00# define IO_MODEL 'm'# define STD_MASK 0# include "bf537.h"#elif defined(ATMEL_SAM9)# define CAN_OUTC_VAL 0x00# define IO_MODEL 'm'# define STD_MASK 0# include "at9263.h"#elif defined(VCMA9)# define CAN_OUTC_VAL 0x1a# define IO_MODEL 'm'# define STD_MASK 0xFFFFFFFF # include "sja1000.h"#elif defined(SSV_MCP2515)# define IO_MODEL 's'# define CAN_OUTC_VAL 0x00# define STD_MASK 0x00000000 #include <linux/platform_device.h>#include <linux/spi/spi.h>#include <asm/gpio.h># include "mcp251x.h"# include "mcp2515.h"extern struct spi_driver mcp251x_can_driver;extern int loopback;extern int enable_can_dma;#else # define CAN_OUTC_VAL 0x00# define IO_MODEL 'm'# define STD_MASK 0xFFFFFFFF # include "sja1000.h"/* #error no CAN_OUTC_VAL */#endif/************************************************************************/#include "can4linux.h"/************************************************************************/ /* extern volatile int irq2minormap[]; */ /* extern volatile int irq2pidmap[]; */extern upointer_t Can_pitapci_control[];extern struct pci_dev *Can_pcidev[];/* number of supported CAN channels */#ifndef MAX_CHANNELS# define MAX_CHANNELS 4#endif/* number of processes allowed to open a CAN channel */#ifndef CAN_MAX_OPEN# define CAN_MAX_OPEN 1#endif#ifndef MAX_BUFSIZE# define MAX_BUFSIZE 256/* #define MAX_BUFSIZE 1000 *//* #define MAX_BUFSIZE 4 */#endif/* highest supported interrupt number */#define MAX_IRQNUMBER 25/* max number of bytes used for the device name in the inode 'can%d' */#define MAXDEVNAMELENGTH 10#define BUF_EMPTY 0#define BUF_OK 1#define BUF_FULL BUF_OK#define BUF_OVERRUN 2#define BUF_UNDERRUN 3typedef struct { int head; int tail; int status; int active; char free[MAX_BUFSIZE]; canmsg_t data[MAX_BUFSIZE]; } msg_fifo_t;struct _instance_data { int rx_index; wait_queue_head_t CanRxWait; };#ifdef CAN_USE_FILTER #define MAX_ID_LENGTH 11 #define MAX_ID_NUMBER (1<<11) typedef struct { unsigned use; unsigned signo[3]; struct { unsigned enable : 1; unsigned timestamp : 1; unsigned signal : 2; canmsg_t *rtr_response; } filter[MAX_ID_NUMBER]; } msg_filter_t; extern msg_filter_t Rx_Filter[];#endifextern msg_fifo_t Tx_Buf[MAX_CHANNELS];extern msg_fifo_t Rx_Buf[MAX_CHANNELS][CAN_MAX_OPEN];extern canmsg_t last_Tx_object[MAX_CHANNELS]; /* used for selfreception of messages */extern atomic_t Can_isopen[MAX_CHANNELS]; /* device minor already opened */#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18) extern int Can_RequestIrq(int minor, int irq, irqreturn_t (*handler)(int, void *));#elseextern int Can_RequestIrq(int minor, int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *));#endifextern wait_queue_head_t CanWait[MAX_CHANNELS][CAN_MAX_OPEN];extern wait_queue_head_t CanOutWait[MAX_CHANNELS];extern int CanWaitFlag[MAX_CHANNELS][CAN_MAX_OPEN];extern spinlock_t write_splock[MAX_CHANNELS];extern void __iomem *can_base[];extern unsigned int can_range[];#endif /* __KERNEL__ */extern int IRQ_requested[];extern int Can_minors[]; /* used as IRQ dev_id */extern int selfreception[MAX_CHANNELS][CAN_MAX_OPEN]; /* flag 1 = On */extern int use_timestamp[MAX_CHANNELS]; /* flag 1 = On */extern int wakeup[]; /* flag 1 = On */extern int listenmode; /* true for listen only *//************************************************************************/#define LDDK_USE_SYSCTL 1#ifdef __KERNEL__#include <linux/sysctl.h>extern ctl_table can_sysctl_table[];/* ------ /proc/sys/Can accessible global variables */extern char version[];extern char Chipset[];extern char IOModel[];extern int IRQ[];extern upointer_t Base[];extern int Baud[];extern unsigned int AccCode[];extern unsigned int AccMask[];extern int Timeout[];extern int Outc[];extern int TxErr[];extern int RxErr[];extern int Overrun[];extern unsigned int dbgMask;extern int Cnt1[];extern int Cnt2[]; enum { CAN_SYSCTL_VERSION = 1, CAN_SYSCTL_CHIPSET = 2, CAN_SYSCTL_IOMODEL = 3, CAN_SYSCTL_IRQ = 4, CAN_SYSCTL_BASE = 5, CAN_SYSCTL_BAUD = 6, CAN_SYSCTL_ACCCODE = 7, CAN_SYSCTL_ACCMASK = 8, CAN_SYSCTL_TIMEOUT = 9, CAN_SYSCTL_OUTC = 10, CAN_SYSCTL_TXERR = 11, CAN_SYSCTL_RXERR = 12, CAN_SYSCTL_OVERRUN = 13, CAN_SYSCTL_DBGMASK = 14, CAN_SYSCTL_CNT1 = 15, CAN_SYSCTL_CNT2 = 16,}; #endif/************************************************************************/#ifndef CAN_MAJOR#define CAN_MAJOR 91#endifextern int Can_errno;#ifdef USE_LDDK_RETURN#define LDDK_RETURN(arg) DBGout();return(arg)#else#define LDDK_RETURN(arg) return(arg)#endif/************************************************************************//* function prototypes *//************************************************************************/extern int CAN_ChipReset(int);extern int CAN_SetTiming(int, int);extern int CAN_StartChip(int);extern int CAN_StopChip(int);extern int CAN_SetMask(int, unsigned int, unsigned int);extern int CAN_SetOMode(int,int);extern int CAN_SetListenOnlyMode(int, int);extern int CAN_SendMessage(int, canmsg_t *);extern int CAN_SetBTR(int, int, int);#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18) extern irqreturn_t CAN_Interrupt( int irq, void *dev_id);#elseextern irqreturn_t CAN_Interrupt( int irq, void *dev_id, struct pt_regs *);#endifextern int CAN_VendorInit(int);extern int CAN_Release(int);extern void register_systables(void);extern void unregister_systables(void);/* util.c */extern int Can_RxFifoInit(int minor, int fifo);extern int Can_TxFifoInit(int minor);extern int Can_FilterCleanup(int minor);extern int Can_FilterInit(int minor);extern int Can_FilterMessage(int minor, unsigned message, unsigned enable);extern int Can_FilterOnOff(int minor, unsigned on);extern int Can_FilterSigNo(int minor, unsigned signo, unsigned signal);extern int Can_FilterSignal(int minor, unsigned id, unsigned signal);extern int Can_FilterTimestamp(int minor, unsigned message, unsigned stamp);extern int Can_FreeIrq(int minor, int irq );extern int Can_WaitInit(int minor);extern void Can_StartTimer(unsigned long v);extern void Can_StopTimer(void);extern void Can_TimerInterrupt(unsigned long unused);extern void can_dump(int minor);extern void CAN_register_dump(int minor);extern void CAN_object_dump(int minor, int object);extern void print_tty(const char *fmt, ...);extern int controller_available(upointer_t address, int offset);extern int __devinit mcp251x_can_probe(void);extern int __devexit mcp251x_can_remove(void);/* PCI support */extern int pcimod_scan(void);#ifndef pci_pretty_name#define pci_pretty_name(dev) ""#endif/* ---------------------------------------- * * TARGET specific function declarations * * --------------------------------------- *//* can_82c200funcs.c */extern int CAN_ShowStat (int board);/*________________________E_O_F_____________________________________________*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -