12#ifndef GRCAN_DEFAULT_BAUD
14 #define GRCAN_DEFAULT_BAUD 500000
17#ifndef GRCAN_SAMPLING_POINT
18 #define GRCAN_SAMPLING_POINT 80
21#define WRAP_AROUND_TX_MSGS 1
22#define WRAP_AROUND_RX_MSGS 2
23#define GRCAN_MSG_SIZE sizeof(struct grcan_msg)
27 unsigned char data[8];
41 unsigned int baseaddr, ram_base;
49 unsigned int corefreq_hz;
59 unsigned int rxbuf_size;
60 unsigned int txbuf_size;
63 int txcomplete, rxcomplete;
71 rtems_id rx_sem, tx_sem, txempty_sem, dev_sem;
72 SPIN_DECLARE(devlock);
75#ifdef GRCAN_REG_BYPASS_CACHE
76#define READ_REG(address) grlib_read_uncached32((unsigned int)(address))
78#define READ_REG(address) (*(volatile unsigned int *)(address))
81#ifdef GRCAN_DMA_BYPASS_CACHE
82#define READ_DMA_DOUBLE(address) grlib_read_uncached64((uint64_t *)(address))
83#define READ_DMA_WORD(address) grlib_read_uncached32((unsigned int)(address))
84#define READ_DMA_BYTE(address) grlib_read_uncached8((unsigned int)(address))
86#define READ_DMA_DOUBLE(address) (*(volatile uint64_t *)(address))
87#define READ_DMA_WORD(address) (*(volatile unsigned int *)(address))
88#define READ_DMA_BYTE(address) (*(volatile unsigned char *)(address))
91extern int state2err[4];
96int grcan_wait_rxdata(
struct grcan_priv *pDev,
int min);
97int grcan_wait_txspace(
struct grcan_priv *pDev,
int min);
99static inline unsigned int grcan_hw_rxavail(
112 return (wp - rp) / GRCAN_MSG_SIZE;
114 return (
size - (rp - wp)) / GRCAN_MSG_SIZE;
118static inline unsigned int grcan_hw_txspace(
129 return size / GRCAN_MSG_SIZE - WRAP_AROUND_TX_MSGS;
134 left =
size - (wp - rp);
139 return left / GRCAN_MSG_SIZE - WRAP_AROUND_TX_MSGS;
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
int open(const char *path, int oflag,...)
Definition: open.c:149
Definition: deflate.c:115
Definition: grcan_internal.h:30
Definition: grcan_internal.h:25
Definition: grcan_internal.h:38
unsigned size
Definition: tte.h:1