48 lines
1.1 KiB
C
Executable File
48 lines
1.1 KiB
C
Executable File
|
|
#ifndef DREXCHAR_H
|
|
#define DREXCHAR_H
|
|
|
|
#include "drex.h"
|
|
|
|
#define DREXDMA_DMA_INIT 0
|
|
#define DREXDMA_DMA_CLEAR 1
|
|
#define DREXDMA_DMA_START 2
|
|
#define DREXDMA_DMA_STOP 3
|
|
#define DREXDMA_SET_NUM_BUFS 4
|
|
#define DREXDMA_SET_NUM_BYTES 5
|
|
#define DREXDMA_GET_NUM_BUFS 6
|
|
#define DREXDMA_GET_NUM_BYTES 7
|
|
#define DREXDMA_GET_FREE_BUFS 8
|
|
|
|
|
|
typedef struct {
|
|
unsigned int cmd;
|
|
unsigned int offset;
|
|
unsigned int value;
|
|
} drexpcie_ioctl_t;
|
|
|
|
|
|
struct drexpcie_device_priv {
|
|
uint8_t chnum;
|
|
struct drexpcie_driver_priv* driv_priv;
|
|
|
|
uint32_t type;
|
|
u8 __iomem *base_mem;
|
|
|
|
// Parameters used to allocate dma buffers
|
|
uint32_t num_bufs;
|
|
uint32_t valid_bufs;
|
|
uint32_t num_bytes;
|
|
|
|
// Physical memory address returned by dma_alloc_coherent
|
|
dma_addr_t *dmaPtr;
|
|
|
|
// Virtual memory address returned by dma_alloc_coherent
|
|
void **bufPtr;
|
|
|
|
};
|
|
|
|
int drexpcie_chardev_create(struct drexpcie_driver_priv *driv_priv);
|
|
int drexpcie_chardev_destroy(void);
|
|
|
|
#endif |