📄 hpi_driver.h
字号:
/********************************************************************* * * * Filename: HPI_Driver.h * Version: 0.0.1 * Description: Implementation for the kernel module debug * Status: Experimental. * Author: snowerlist (snowerlist@163.com) * Created at: WuHan * Based on code by: snower * * Copyright (c) 2008.12 WH, All Rights Reserved. * This file is for ARM chip of DSP project xxx * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * ********************************************************************//**Begin *******define data type*********/typedef char s8, CHAR;typedef short s16, SHORT;typedef long s32, LONG;typedef int INT;typedef unsigned char u8, UCHAR;typedef unsigned short u16, USHORT;typedef unsigned long u32, ULONG;typedef unsigned int UINT;/***********define data type*******End**/#define DSP_HPI_MINOR 158 /* Major 10, Minor 158, in /dev/DSP_HPI */#define DSP_HPI_DEV "DSP_HPI" /* If you frist use this module in your system ,please do insmod fristly. */ /* Then you will see you device in /dev/DSP_HPI . */ #define DSP_HPI_IRQ_NUM /*Check the datasheet and give the number of you DSP_HPI interrupt line use.*/#define DSP_HPI_IRQ_FLAG 0#define DRIVER_VERSION "0.0.1" /* Driver version number */#define MAX_BUFFER_LEN 256#define DSP_HPI_ALARM 0x02000000#define PHY_ADDR_REG1 0x00000000#define PHY_ADDR_REG2 0x00000000#define PHY_ADDR_REG3 0x00000000#define PHY_ADDR_REG4 0x00000000#define REGISTER_LENGTH 4 /*4 Bytes long*/enum IOCTL_OPERATION_Index{ INTERFACE_SET_CUR_PID = 0, READ_HPI_REG1, READ_HPI_REG2, READ_HPI_REG3, READ_HPI_REG4, WRITE_HPI_REG1, WRITE_HPI_REG2, WRITE_HPI_REG3, WRITE_HPI_REG4, OPERATION_COUNT};typedef struct tagBufferInfo /*A ring buffer for read/write operation*/{ u8 m_NewDataCount; s8 m_pacBuffer[MAX_BUFFER_LEN]; /* buffer of Data */ }stBufferInfo, *PstBufferInfo;typedef struct tagVirtualADDRSPACEInfo /*the vitural address of registers*/{ u32 * m_pViturAddrReg1; u32 * m_pViturAddrReg2; u32 * m_pViturAddrReg3; u32 * m_pViturAddrReg4; }stADDRSPACEInfo, *PstADDRSPACEInfo;typedef struct tagDSPHPIInfo { stBufferInfo m_stBufInfo; stADDRSPACEInfo m_stVirtualAddrSpace; pid_t m_tInterfaceProcessID;/* At least, init process exists */ struct task_struct *m_pstInterfaceTask; siginfo_t m_InterfaceSingal; struct semaphore m_stProctoolSem; } stDSPHPIInfo, *pstDSPHPIInfo;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -