PCIE-MSI中断LINUX应用-gdma_app.h
2025-07-16
0
0
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
///<支持的ioctrl 命令
#define GDMA_TEST_IOC_SUBMIT _IOW('p', 1, unsigned int) ///< 提交任务
#define GDMA_TEST_IOC_SUBMIT_CTL _IOW('p', 2, unsigned int) ///< 提交任务
#define GDMA_TEST_IOC_TDE_HW _IOW('p', 3, unsigned int) ///< 提交任务
#define GDMA_TEST_IOC_SUBMIT_TAIL _IOW('p', 4, unsigned int) ///< 提交任务
///<打开定时器,自动搬运
#define GDMA_TEST_IOC_START_TIMER _IOW('p', 10, unsigned int) ///<
#define GDMA_TEST_IOC_TIMER_TYPE _IOW('p', 11, unsigned int) ///<
#define GDMA_TEST_IOC_TIMER_MS _IOW('p', 12, unsigned int) ///<
#define GDMA_TEST_IOC_TDQ_INFO _IOW('p', 20, unsigned int) ///< 修改TDQ的size,即TDE个数
#define GDMA_TEST_IOC_TCQ_SIZE _IOW('p', 21, unsigned int) ///< 修改TCQ的size,即TCE个数
#define GDMA_TEST_IOC_TDQ_CLEAR _IOW('p', 22, unsigned int) ///<
#define GDMA_TEST_IOC_TDQ_ABORT _IOW('p', 23, unsigned int) ///<
#define GDMA_TEST_IOC_TDQ_RESET _IOW('p', 24, unsigned int) ///<
#define GDMA_TEST_IOC_TCQ_RESET _IOW('p', 25, unsigned int) ///<
#define GDMA_TEST_IOC_TEST_SRC _IOW('p', 30, unsigned int) ///<
#define GDMA_TEST_IOC_TEST_DST _IOW('p', 31, unsigned int) ///<
#define GDMA_USER_SUBMIT_CTL_NORMAL 0
#define GDMA_USER_SUBMIT_CTL_INT 2
#define GDMA_USER_SUBMIT_CTL_RO 4
#define GDMA_USER_SUBMIT_CTL_DROP 8
typedef struct gdma_user_tde
{
unsigned int tdq_id;
unsigned long pos;
unsigned int len;
union{
struct
{
unsigned int task_id:16;
unsigned int int_en:1;
unsigned int ro:1;
unsigned int drop:1;
unsigned int reserve:13;
}bit;
unsigned int uint;
}ctrl;
}gdma_user_tde_s; ///< 0x20, 索引左移5位得到地址