mirror of
https://github.com/reactos/reactos.git
synced 2024-09-10 21:04:26 +00:00
205 lines
4.5 KiB
C
205 lines
4.5 KiB
C
![]() |
/*++
|
||
|
|
||
|
Copyright (c) 1998-2001 Klaus P. Gerlicher
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
shared.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
shared stuff between module and loader
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
LINUX 2.2.X
|
||
|
Kernel mode only
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Klaus P. Gerlicher
|
||
|
|
||
|
reactos port by:
|
||
|
Eugene Ingerman
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
13-Nov-1999: created
|
||
|
15-Nov-2000: general cleanup of source files
|
||
|
|
||
|
10/20/2001: porting to reactos begins
|
||
|
|
||
|
Copyright notice:
|
||
|
|
||
|
This file may be distributed under the terms of the GNU Public License.
|
||
|
|
||
|
--*/
|
||
|
|
||
|
//#include <ntddk.h>
|
||
|
//#include <winnt.h>
|
||
|
|
||
|
//temporary
|
||
|
#ifndef CTL_CODE
|
||
|
#define CTL_CODE(Dev, Func, Meth, Acc) ( ((Dev)<<16) | ((Acc)<<14) | ((Func)<<2) | (Meth))
|
||
|
// IOCTL Parameter buffering methods
|
||
|
#define METHOD_BUFFERED 0
|
||
|
#define METHOD_IN_DIRECT 1
|
||
|
#define METHOD_OUT_DIRECT 2
|
||
|
#define METHOD_NEITHER 3
|
||
|
|
||
|
// IOCTL File access type
|
||
|
#define FILE_ANY_ACCESS 0
|
||
|
#define FILE_READ_ACCESS 1
|
||
|
#define FILE_WRITE_ACCESS 2
|
||
|
#endif
|
||
|
|
||
|
// define custom device type
|
||
|
#define PICE_DEVICE_DEBUGGER 64787
|
||
|
|
||
|
#define PICE_IOCTL_LOAD CTL_CODE(PICE_DEVICE_DEBUGGER, 2049, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define PICE_IOCTL_UNLOAD CTL_CODE(PICE_DEVICE_DEBUGGER, 2050, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define PICE_IOCTL_RELOAD CTL_CODE(PICE_DEVICE_DEBUGGER, 2051, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define PICE_IOCTL_BREAK CTL_CODE(PICE_DEVICE_DEBUGGER, 2052, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
#define PICE_IOCTL_STATUS CTL_CODE(PICE_DEVICE_DEBUGGER, 2053, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||
|
|
||
|
|
||
|
typedef struct _DEBUGGER_STATUS_BLOCK
|
||
|
{
|
||
|
char filename[256];
|
||
|
}DEBUGGER_STATUS_BLOCK,*PDEBUGGER_STATUS_BLOCK;
|
||
|
|
||
|
#define MAGIC_ULONG( ch0, ch1, ch2, ch3 ) \
|
||
|
( (ULONG)(UCHAR)(ch0) | \
|
||
|
( (ULONG)(UCHAR)(ch1) << 8 ) | \
|
||
|
( (ULONG)(UCHAR)(ch2) << 16 ) | \
|
||
|
( (ULONG)(UCHAR)(ch3) << 24 ) )
|
||
|
|
||
|
#define PICE_MAGIC MAGIC_ULONG('P','I','C','E')
|
||
|
|
||
|
#define DEBUG_MODULE_NAME_LEN 32
|
||
|
typedef struct _PICE_SYMBOLFILE_HEADER
|
||
|
{
|
||
|
ULONG magic;
|
||
|
WCHAR name[DEBUG_MODULE_NAME_LEN];
|
||
|
ULONG ulOffsetToHeaders,ulSizeOfHeader;
|
||
|
ULONG ulOffsetToGlobals,ulSizeOfGlobals;
|
||
|
ULONG ulOffsetToGlobalsStrings,ulSizeOfGlobalsStrings;
|
||
|
ULONG ulOffsetToStabs,ulSizeOfStabs;
|
||
|
ULONG ulOffsetToStabsStrings,ulSizeOfStabsStrings;
|
||
|
ULONG ulOffsetToSrcFiles,ulNumberOfSrcFiles;
|
||
|
}PICE_SYMBOLFILE_HEADER;
|
||
|
|
||
|
typedef struct _STAB_ENTRY
|
||
|
{
|
||
|
unsigned long n_strx;
|
||
|
unsigned char n_type;
|
||
|
unsigned char n_other;
|
||
|
unsigned short n_desc;
|
||
|
unsigned long n_value;
|
||
|
}STAB_ENTRY,*PSTAB_ENTRY;
|
||
|
|
||
|
typedef struct _PICE_SYMBOLFILE_SOURCE
|
||
|
{
|
||
|
char filename[256];
|
||
|
ULONG ulOffsetToNext;
|
||
|
}PICE_SYMBOLFILE_SOURCE;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////////////
|
||
|
// serial stuff
|
||
|
typedef struct _SERIAL_PACKET_HEADER
|
||
|
{
|
||
|
ULONG packet_size;
|
||
|
ULONG packet_header_chksum;
|
||
|
ULONG packet_chksum;
|
||
|
}SERIAL_PACKET_HEADER,*PSERIAL_PACKET_HEADER;
|
||
|
|
||
|
typedef struct _SERIAL_PACKET
|
||
|
{
|
||
|
SERIAL_PACKET_HEADER header;
|
||
|
UCHAR data[1];
|
||
|
}SERIAL_PACKET,*PSERIAL_PACKET;
|
||
|
|
||
|
#define ACK (0)
|
||
|
|
||
|
typedef enum _ECOLORS
|
||
|
{
|
||
|
BLACK = 0,
|
||
|
BLUE,
|
||
|
GREEN,
|
||
|
TURK,
|
||
|
RED,
|
||
|
VIOLET,
|
||
|
BROWN,
|
||
|
LTGRAY,
|
||
|
GRAY,
|
||
|
LTBLUE,
|
||
|
LT_GREEN,
|
||
|
LTTURK,
|
||
|
LTRED,
|
||
|
LTVIOLET,
|
||
|
YELLOW,
|
||
|
WHITE
|
||
|
}ECOLORS;
|
||
|
|
||
|
typedef struct _SERIAL_DATA_PACKET
|
||
|
{
|
||
|
UCHAR type;
|
||
|
UCHAR data[1];
|
||
|
}SERIAL_DATA_PACKET,*PSERIAL_DATA_PACKET;
|
||
|
|
||
|
#define PACKET_TYPE_CLRLINE (0)
|
||
|
typedef struct _SERIAL_DATA_PACKET_CLRLINE
|
||
|
{
|
||
|
UCHAR type;
|
||
|
ECOLORS fgcol,bkcol;
|
||
|
UCHAR line;
|
||
|
}SERIAL_DATA_PACKET_CLRLINE,*PSERIAL_DATA_PACKET_CLRLINE;
|
||
|
|
||
|
#define PACKET_TYPE_PRINT (1)
|
||
|
typedef struct _SERIAL_DATA_PACKET_PRINT
|
||
|
{
|
||
|
UCHAR type;
|
||
|
UCHAR x;
|
||
|
UCHAR y;
|
||
|
ECOLORS fgcol,bkcol;
|
||
|
UCHAR string[1];
|
||
|
}SERIAL_DATA_PACKET_PRINT,*PSERIAL_DATA_PACKET_PRINT;
|
||
|
|
||
|
#define PACKET_TYPE_CONNECT (2)
|
||
|
typedef struct _SERIAL_DATA_PACKET_CONNECT
|
||
|
{
|
||
|
UCHAR type;
|
||
|
UCHAR xsize,ysize;
|
||
|
}SERIAL_DATA_PACKET_CONNECT,*PSERIAL_DATA_PACKET_CONNECT;
|
||
|
|
||
|
#define PACKET_TYPE_CURSOR (3)
|
||
|
typedef struct _SERIAL_DATA_PACKET_CURSOR
|
||
|
{
|
||
|
UCHAR type;
|
||
|
UCHAR state,x,y;
|
||
|
}SERIAL_DATA_PACKET_CURSOR,*PSERIAL_DATA_PACKET_CURSOR;
|
||
|
|
||
|
#define PACKET_TYPE_INVERTLINE (4)
|
||
|
typedef struct _SERIAL_DATA_PACKET_INVERTLINE
|
||
|
{
|
||
|
UCHAR type;
|
||
|
UCHAR line;
|
||
|
}SERIAL_DATA_PACKET_INVERTLINE,*PSERIAL_DATA_PACKET_INVERTLINE;
|
||
|
|
||
|
#define PACKET_TYPE_POLL (5)
|
||
|
typedef struct _SERIAL_DATA_PACKET_POLL
|
||
|
{
|
||
|
UCHAR type;
|
||
|
USHORT major_version,minor_version,build_number;
|
||
|
}SERIAL_DATA_PACKET_POLL,*PSERIAL_DATA_PACKET_POLL;
|
||
|
|
||
|
// END of serial stuff
|
||
|
///////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
// EOF
|