:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / apps / 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 <ddk/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