[HEADERS]
[reactos.git] / rosapps / applications / sysutils / utils / pice / shared / shared.h
1 /*++
2
3 Copyright (c) 1998-2001 Klaus P. Gerlicher
4
5 Module Name:
6
7 shared.h
8
9 Abstract:
10
11 shared stuff between module and loader
12
13 Environment:
14
15 LINUX 2.2.X
16 Kernel mode only
17
18 Author:
19
20 Klaus P. Gerlicher
21
22 reactos port by:
23 Eugene Ingerman
24
25 Revision History:
26
27 13-Nov-1999: created
28 15-Nov-2000: general cleanup of source files
29
30 10/20/2001: porting to reactos begins
31
32 Copyright notice:
33
34 This file may be distributed under the terms of the GNU Public License.
35
36 --*/
37
38 //#include <ntddk.h>
39 //#include <winnt.h>
40
41 //temporary
42 #ifndef CTL_CODE
43 #define CTL_CODE(Dev, Func, Meth, Acc) ( ((Dev)<<16) | ((Acc)<<14) | ((Func)<<2) | (Meth))
44 // IOCTL Parameter buffering methods
45 #define METHOD_BUFFERED 0
46 #define METHOD_IN_DIRECT 1
47 #define METHOD_OUT_DIRECT 2
48 #define METHOD_NEITHER 3
49
50 // IOCTL File access type
51 #define FILE_ANY_ACCESS 0
52 #define FILE_READ_ACCESS 1
53 #define FILE_WRITE_ACCESS 2
54 #endif
55
56 // define custom device type
57 #define PICE_DEVICE_DEBUGGER 64787
58
59 #define PICE_IOCTL_LOAD CTL_CODE(PICE_DEVICE_DEBUGGER, 2049, METHOD_BUFFERED, FILE_ANY_ACCESS)
60 #define PICE_IOCTL_UNLOAD CTL_CODE(PICE_DEVICE_DEBUGGER, 2050, METHOD_BUFFERED, FILE_ANY_ACCESS)
61 #define PICE_IOCTL_RELOAD CTL_CODE(PICE_DEVICE_DEBUGGER, 2051, METHOD_BUFFERED, FILE_ANY_ACCESS)
62 #define PICE_IOCTL_BREAK CTL_CODE(PICE_DEVICE_DEBUGGER, 2052, METHOD_BUFFERED, FILE_ANY_ACCESS)
63 #define PICE_IOCTL_STATUS CTL_CODE(PICE_DEVICE_DEBUGGER, 2053, METHOD_BUFFERED, FILE_ANY_ACCESS)
64
65
66 typedef struct _DEBUGGER_STATUS_BLOCK
67 {
68 char filename[256];
69 }DEBUGGER_STATUS_BLOCK,*PDEBUGGER_STATUS_BLOCK;
70
71 #define MAGIC_ULONG( ch0, ch1, ch2, ch3 ) \
72 ( (ULONG)(UCHAR)(ch0) | \
73 ( (ULONG)(UCHAR)(ch1) << 8 ) | \
74 ( (ULONG)(UCHAR)(ch2) << 16 ) | \
75 ( (ULONG)(UCHAR)(ch3) << 24 ) )
76
77 #define PICE_MAGIC MAGIC_ULONG('P','I','C','E')
78
79 #define DEBUG_MODULE_NAME_LEN 32
80 typedef struct _PICE_SYMBOLFILE_HEADER
81 {
82 ULONG magic;
83 WCHAR name[DEBUG_MODULE_NAME_LEN];
84 ULONG ulOffsetToHeaders,ulSizeOfHeader;
85 ULONG ulOffsetToGlobals,ulSizeOfGlobals;
86 ULONG ulOffsetToGlobalsStrings,ulSizeOfGlobalsStrings;
87 ULONG ulOffsetToStabs,ulSizeOfStabs;
88 ULONG ulOffsetToStabsStrings,ulSizeOfStabsStrings;
89 ULONG ulOffsetToSrcFiles,ulNumberOfSrcFiles;
90 }PICE_SYMBOLFILE_HEADER;
91
92 typedef struct _STAB_ENTRY
93 {
94 unsigned long n_strx;
95 unsigned char n_type;
96 unsigned char n_other;
97 unsigned short n_desc;
98 unsigned long n_value;
99 }STAB_ENTRY,*PSTAB_ENTRY;
100
101 typedef struct _PICE_SYMBOLFILE_SOURCE
102 {
103 char filename[256];
104 ULONG ulOffsetToNext;
105 }PICE_SYMBOLFILE_SOURCE;
106
107
108
109
110
111 ///////////////////////////////////////////////////////////////////////////////////
112 // serial stuff
113 typedef struct _SERIAL_PACKET_HEADER
114 {
115 ULONG packet_size;
116 ULONG packet_header_chksum;
117 ULONG packet_chksum;
118 }SERIAL_PACKET_HEADER,*PSERIAL_PACKET_HEADER;
119
120 typedef struct _SERIAL_PACKET
121 {
122 SERIAL_PACKET_HEADER header;
123 UCHAR data[1];
124 }SERIAL_PACKET,*PSERIAL_PACKET;
125
126 #define ACK (0)
127
128 typedef enum _ECOLORS
129 {
130 BLACK = 0,
131 BLUE,
132 GREEN,
133 TURK,
134 RED,
135 VIOLET,
136 BROWN,
137 LTGRAY,
138 GRAY,
139 LTBLUE,
140 LT_GREEN,
141 LTTURK,
142 LTRED,
143 LTVIOLET,
144 YELLOW,
145 WHITE
146 }ECOLORS;
147
148 typedef struct _SERIAL_DATA_PACKET
149 {
150 UCHAR type;
151 UCHAR data[1];
152 }SERIAL_DATA_PACKET,*PSERIAL_DATA_PACKET;
153
154 #define PACKET_TYPE_CLRLINE (0)
155 typedef struct _SERIAL_DATA_PACKET_CLRLINE
156 {
157 UCHAR type;
158 ECOLORS fgcol,bkcol;
159 UCHAR line;
160 }SERIAL_DATA_PACKET_CLRLINE,*PSERIAL_DATA_PACKET_CLRLINE;
161
162 #define PACKET_TYPE_PRINT (1)
163 typedef struct _SERIAL_DATA_PACKET_PRINT
164 {
165 UCHAR type;
166 UCHAR x;
167 UCHAR y;
168 ECOLORS fgcol,bkcol;
169 UCHAR string[1];
170 }SERIAL_DATA_PACKET_PRINT,*PSERIAL_DATA_PACKET_PRINT;
171
172 #define PACKET_TYPE_CONNECT (2)
173 typedef struct _SERIAL_DATA_PACKET_CONNECT
174 {
175 UCHAR type;
176 UCHAR xsize,ysize;
177 }SERIAL_DATA_PACKET_CONNECT,*PSERIAL_DATA_PACKET_CONNECT;
178
179 #define PACKET_TYPE_CURSOR (3)
180 typedef struct _SERIAL_DATA_PACKET_CURSOR
181 {
182 UCHAR type;
183 UCHAR state,x,y;
184 }SERIAL_DATA_PACKET_CURSOR,*PSERIAL_DATA_PACKET_CURSOR;
185
186 #define PACKET_TYPE_INVERTLINE (4)
187 typedef struct _SERIAL_DATA_PACKET_INVERTLINE
188 {
189 UCHAR type;
190 UCHAR line;
191 }SERIAL_DATA_PACKET_INVERTLINE,*PSERIAL_DATA_PACKET_INVERTLINE;
192
193 #define PACKET_TYPE_POLL (5)
194 typedef struct _SERIAL_DATA_PACKET_POLL
195 {
196 UCHAR type;
197 USHORT major_version,minor_version,build_number;
198 }SERIAL_DATA_PACKET_POLL,*PSERIAL_DATA_PACKET_POLL;
199
200 // END of serial stuff
201 ///////////////////////////////////////////////////////////////////////////////////
202
203
204 // EOF