⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbgioctl.h

📁 linux-2.6.15.6
💻 H
字号:
/* *  Copyright (c) Eicon Technology Corporation, 2000. *  This source file is supplied for the use with Eicon  Technology Corporation's range of DIVA Server Adapters. *  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, or (at your option)  any later version. *  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. *  You should have received a copy of the GNU General Public License  along with this program; if not, write to the Free Software  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * *//*------------------------------------------------------------------*//* file: dbgioctl.h                                                 *//*------------------------------------------------------------------*/#if !defined(__DBGIOCTL_H__)#define __DBGIOCTL_H__#ifdef NOT_YET_NEEDED/* * The requested operation is passed in arg0 of DbgIoctlArgs, * additional arguments (if any) in arg1, arg2 and arg3. */typedef struct{	ULONG	arg0 ;	ULONG	arg1 ;	ULONG	arg2 ;	ULONG	arg3 ;} DbgIoctlArgs ;#define	DBG_COPY_LOGS	0	/* copy debugs to user until buffer full	*/							/* arg1: size threshold						*/							/* arg2: timeout in milliseconds			*/#define DBG_FLUSH_LOGS	1	/* flush pending debugs to user buffer		*/							/* arg1: internal driver id					*/#define DBG_LIST_DRVS	2	/* return the list of registered drivers	*/#define	DBG_GET_MASK	3	/* get current debug mask of driver			*/							/* arg1: internal driver id					*/#define	DBG_SET_MASK	4	/* set/change debug mask of driver			*/							/* arg1: internal driver id					*/							/* arg2: new debug mask						*/#define	DBG_GET_BUFSIZE	5	/* get current buffer size of driver		*/							/* arg1: internal driver id					*/							/* arg2: new debug mask						*/#define	DBG_SET_BUFSIZE	6	/* set new buffer size of driver			*/							/* arg1: new buffer size					*//* *	common internal debug message structure */typedef struct{	unsigned short id ;		/* virtual driver id                  */	unsigned short type ;	/* special message type               */	unsigned long  seq ;	/* sequence number of message         */	unsigned long  size ;	/* size of message in bytes           */	unsigned long  next ;	/* offset to next buffered message    */	LARGE_INTEGER  NTtime ;	/* 100 ns  since 1.1.1601             */	unsigned char  data[4] ;/* message data                       */} OldDbgMessage ;typedef struct{	LARGE_INTEGER  NTtime ;	/* 100 ns  since 1.1.1601             */	unsigned short size ;	/* size of message in bytes           */	unsigned short ffff ;	/* always 0xffff to indicate new msg  */	unsigned short id ;		/* virtual driver id                  */	unsigned short type ;	/* special message type               */	unsigned long  seq ;	/* sequence number of message         */	unsigned char  data[4] ;/* message data                       */} DbgMessage ;#endif#define DRV_ID_UNKNOWN		0x0C	/* for messages via prtComp() */#define	MSG_PROC_FLAG		0x80#define	MSG_PROC_NO_GET(x)	(((x) & MSG_PROC_FLAG) ? (((x) >> 4) & 7) : -1)#define	MSG_PROC_NO_SET(x)	(MSG_PROC_FLAG | (((x) & 7) << 4))#define MSG_TYPE_DRV_ID		0x0001#define MSG_TYPE_FLAGS		0x0002#define MSG_TYPE_STRING		0x0003#define MSG_TYPE_BINARY		0x0004#define MSG_HEAD_SIZE	((unsigned long)&(((DbgMessage *)0)->data[0]))#define MSG_ALIGN(len)	(((unsigned long)(len) + MSG_HEAD_SIZE + 3) & ~3)#define MSG_SIZE(pMsg)	MSG_ALIGN((pMsg)->size)#define MSG_NEXT(pMsg)	((DbgMessage *)( ((char *)(pMsg)) + MSG_SIZE(pMsg) ))#define OLD_MSG_HEAD_SIZE	((unsigned long)&(((OldDbgMessage *)0)->data[0]))#define OLD_MSG_ALIGN(len)	(((unsigned long)(len)+OLD_MSG_HEAD_SIZE+3) & ~3)/* * manifest constants */#define MSG_FRAME_MAX_SIZE	2150		/* maximum size of B1 frame	 */#define MSG_TEXT_MAX_SIZE	1024		/* maximum size of msg text	 */#define MSG_MAX_SIZE		MSG_ALIGN(MSG_FRAME_MAX_SIZE)#define DBG_MIN_BUFFER_SIZE	0x00008000	/* minimal total buffer size  32 KB */#define DBG_DEF_BUFFER_SIZE	0x00020000	/* default total buffer size 128 KB */#define DBG_MAX_BUFFER_SIZE	0x00400000	/* maximal total buffer size   4 MB */#define DBGDRV_NAME		"Diehl_DIMAINT"#define UNIDBG_DRIVER	L"\\Device\\Diehl_DIMAINT" /* UNICODE name for kernel */#define DEBUG_DRIVER	"\\\\.\\" DBGDRV_NAME  /* traditional string for apps */#define DBGVXD_NAME		"DIMAINT"#define DEBUG_VXD		"\\\\.\\" DBGVXD_NAME  /* traditional string for apps *//* *	Special IDI interface debug construction */#define	DBG_IDI_SIG_REQ		(unsigned long)0xF479C402#define	DBG_IDI_SIG_IND		(unsigned long)0xF479C403#define	DBG_IDI_NL_REQ		(unsigned long)0xF479C404#define	DBG_IDI_NL_IND		(unsigned long)0xF479C405typedef struct{	unsigned long  magic_type ;	unsigned short data_len ;	unsigned char  layer_ID ;	unsigned char  entity_ID ;	unsigned char  request ;	unsigned char  ret_code ;	unsigned char  indication ;	unsigned char  complete ;	unsigned char  data[4] ;} DbgIdiAct, *DbgIdiAction ;/* * We want to use the same IOCTL codes in Win95 and WinNT. * The official constructor for IOCTL codes is the CTL_CODE macro * from <winoctl.h> (<devioctl.h> in WinNT DDK environment). * The problem here is that we don't know how to get <winioctl.h> * working in a Win95 DDK environment! */# ifdef CTL_CODE	/*{*//* Assert that we have the same idea of the CTL_CODE macro.	*/#define CTL_CODE( DeviceType, Function, Method, Access ) (                 \    ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \)# else	/* !CTL_CODE */ /*}{*//* Use the definitions stolen from <winioctl.h>.  */#define CTL_CODE( DeviceType, Function, Method, Access ) (                 \    ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \)#define METHOD_BUFFERED                 0#define METHOD_IN_DIRECT                1#define METHOD_OUT_DIRECT               2#define METHOD_NEITHER                  3#define FILE_ANY_ACCESS                 0#define FILE_READ_ACCESS          ( 0x0001 )    // file & pipe#define FILE_WRITE_ACCESS         ( 0x0002 )    // file & pipe# endif	/* CTL_CODE */ /*}*//* * Now we can define WinNT/Win95 DeviceIoControl codes. * * These codes are defined in di_defs.h too, a possible mismatch will be * detected when the dbgtool is compiled. */#define IOCTL_DRIVER_LNK \	CTL_CODE(0x8001U,0x701,METHOD_OUT_DIRECT,FILE_ANY_ACCESS)#define IOCTL_DRIVER_DBG \	CTL_CODE(0x8001U,0x702,METHOD_OUT_DIRECT,FILE_ANY_ACCESS)#endif /* __DBGIOCTL_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -