📄 defs.h
字号:
#ifndef DEFS_H
#define DEFS_H
#include <linux/types.h>
#include <linux/spinlock.h>
//定义块大小
#define BLK_SIZE 2*1024
#define BLK_SIZE_SHIFT 11
//接收和发送环大小
#define BUFF_SIZE 100*1024*1024
#define BUFF_BLK_NUM (BUFF_SIZE>>BLK_SIZE_SHIFT)
#define RX_BUFF_BLK_NUM (90*1024*1024)>>BLK_SIZE_SHIFT
#define TX_BUFF_BLK_NUM (10*1024*1024)>>BLK_SIZE_SHIFT
//#define TX_BUFF_SIZE 10*1024*1024
//#define TX_BUFF_BLKS (TX_BUFF_SIZE>>BLK_SIZE_SHIFT)
struct addr_info_t{
char *start_addr;
uint rx_size;
uint tx_size;
};
typedef struct{
spinlock_t lock;
volatile uint head;
volatile uint tail;
//队列中真实容量
volatile uint size;
uint elem[BUFF_BLK_NUM];
}queue_t;
typedef struct{
queue_t rx_q;
queue_t tx_q;
queue_t free_q;
ulong phy_addr_table[BUFF_BLK_NUM>>1];
}kernel_addr_space_t; /*allocated addr space in kernel mode by vmalloc()*/
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
int enqueue(queue_t *,uint);
int dequeue(queue_t *);
#define KA_IOC_MAGIC 'k'#define KA_IOCINITBUF _IO(KA_IOC_MAGIC, sizeof(unsigned long))
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -