📄 sjacan.h
字号:
#define SJA_MAJOR 90#define SJA_NUM 2#define SJA_CMD_PORT 0x324#define SJA1_DAT_PORT 0x325#define SJA2_DAT_PORT 0x326#define SJA_MODE 0x00#define SJA_CMR 0x01#define SJA_SR 0x02#define SJA_IR 0x03#define SJA_IE 0x04
#define SJA_BTR0 0x06#define SJA_BTR1 0x07#define SJA_OCR 0x08#define SJA_ECC 0x0C#define SJA_TXBUF 0x10#define SJA_RXBUF 0x10#define SJA_ACR0 0x10#define SJA_ACR1 0x11#define SJA_ACR2 0x12#define SJA_ACR3 0x13#define SJA_AMR0 0x14#define SJA_AMR1 0x15#define SJA_AMR2 0x16#define SJA_AMR3 0x17#define SJA_CDR 0x1F#define BUFSIZ 4000#define SJA_READ(addr,data_port) ({ \ outb_p(addr,SJA_CMD_PORT); \ inb_p(data_port); \ })#define SJA_WRITE(val,addr,data_port) ({ \ outb_p(addr,SJA_CMD_PORT); \ outb_p(val,data_port); \ })struct SJA_device { struct tq_struct *recv_bottom_task; unsigned char *RecvBuf; volatile unsigned long RecvHead; volatile unsigned long RecvTail; volatile unsigned long RecvNum; struct wait_queue *RecvQueue; unsigned int IrqNum; volatile unsigned char lock; unsigned char Block;
unsigned int PortNum;/*device minor number*/ unsigned int FrameMode; unsigned int BaudRate; unsigned int DMA; //8=no ,0=1,...7=7; unsigned int FIFOEnable; unsigned int TriggerLevel; unsigned int ref_count; unsigned char *SendBuf; unsigned int SendNum; unsigned long volatile SendHead; volatile unsigned long SendTail; struct wait_queue *SendQueue;
struct timer_list *timer; int TimerCount;} __attribute__((aligned(L1_CACHE_BYTES),packed));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -