Subversion Repositories Kolibri OS

Rev

Rev 1929 | Rev 1952 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1929 Rev 1941
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2004-2009. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2009. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line 7...
7
 
7
 
8
$Revision: 1929 $
-
 
Line 9... Line -...
9
 
-
 
10
 
-
 
11
dpl0    equ  10010000b     ; data read       dpl0
-
 
12
drw0    equ  10010010b      ; data read/write dpl0
-
 
13
drw3    equ  11110010b      ; data read/write dpl3
-
 
Line -... Line 8...
-
 
8
$Revision: 1941 $
-
 
9
 
-
 
10
 
-
 
11
dpl0	equ  10010000b	   ; data read       dpl0
-
 
12
drw0	equ  10010010b	    ; data read/write dpl0
-
 
13
drw3	equ  11110010b	    ; data read/write dpl3
14
cpl0    equ  10011010b      ; code read dpl0
14
cpl0	equ  10011010b	    ; code read dpl0
15
cpl3    equ  11111010b      ; code read dpl3
15
cpl3	equ  11111010b	    ; code read dpl3
Line 16... Line 16...
16
 
16
 
Line 17... Line 17...
17
D32     equ  01000000b      ; 32bit segment
17
D32	equ  01000000b	    ; 32bit segment
18
G32     equ  10000000b      ; page gran
18
G32	equ  10000000b	    ; page gran
19
 
19
 
20
 
20
 
21
;;;;;;;;;;;;cpu_caps flags;;;;;;;;;;;;;;;;
21
;;;;;;;;;;;;cpu_caps flags;;;;;;;;;;;;;;;;
Line 22... Line 22...
22
 
22
 
23
CPU_386        equ 3
23
CPU_386        equ 3
24
CPU_486        equ 4
24
CPU_486        equ 4
Line 34... Line 34...
34
CAPS_MSR       equ    05 ;model-specific registers
34
CAPS_MSR       equ    05 ;model-specific registers
35
CAPS_PAE       equ    06 ;physical-address extensions
35
CAPS_PAE       equ    06 ;physical-address extensions
36
CAPS_MCE       equ    07 ;machine check exception
36
CAPS_MCE       equ    07 ;machine check exception
37
CAPS_CX8       equ    08 ;CMPXCHG8B instruction
37
CAPS_CX8       equ    08 ;CMPXCHG8B instruction
38
CAPS_APIC      equ    09 ;on-chip advanced programmable
38
CAPS_APIC      equ    09 ;on-chip advanced programmable
39
                         ; interrupt controller
39
			 ; interrupt controller
40
;                     10 ;unused
40
;                     10 ;unused
41
CAPS_SEP       equ    11 ;SYSENTER and SYSEXIT instructions
41
CAPS_SEP       equ    11 ;SYSENTER and SYSEXIT instructions
42
CAPS_MTRR      equ    12 ;memory-type range registers
42
CAPS_MTRR      equ    12 ;memory-type range registers
43
CAPS_PGE       equ    13 ;page global extension
43
CAPS_PGE       equ    13 ;page global extension
44
CAPS_MCA       equ    14 ;machine check architecture
44
CAPS_MCA       equ    14 ;machine check architecture
Line 49... Line 49...
49
CAPS_PSN       equ    18 ;processor serial number
49
CAPS_PSN       equ    18 ;processor serial number
50
CAPS_CLFLUSH   equ    19 ;CLFUSH instruction
50
CAPS_CLFLUSH   equ    19 ;CLFUSH instruction
Line 51... Line 51...
51
 
51
 
52
CAPS_DS        equ    21 ;debug store
52
CAPS_DS        equ    21 ;debug store
53
CAPS_ACPI      equ    22 ;thermal monitor and software
53
CAPS_ACPI      equ    22 ;thermal monitor and software
54
                         ;controlled clock supported
54
			 ;controlled clock supported
55
CAPS_MMX       equ    23 ;MMX instructions
55
CAPS_MMX       equ    23 ;MMX instructions
56
CAPS_FXSR      equ    24 ;FXSAVE and FXRSTOR instructions
56
CAPS_FXSR      equ    24 ;FXSAVE and FXRSTOR instructions
57
CAPS_SSE       equ    25 ;SSE instructions
57
CAPS_SSE       equ    25 ;SSE instructions
58
CAPS_SSE2      equ    26 ;SSE2 instructions
58
CAPS_SSE2      equ    26 ;SSE2 instructions
Line 93... Line 93...
93
CAPS_CMP_LEG   equ    72 ;
93
CAPS_CMP_LEG   equ    72 ;
94
CAPS_SVM       equ    73 ;secure virual machine
94
CAPS_SVM       equ    73 ;secure virual machine
95
CAPS_ALTMOVCR8 equ    74 ;
95
CAPS_ALTMOVCR8 equ    74 ;
Line 96... Line 96...
96
 
96
 
97
; CPU MSR names
97
; CPU MSR names
98
MSR_SYSENTER_CS         equ     0x174
98
MSR_SYSENTER_CS 	equ	0x174
99
MSR_SYSENTER_ESP        equ     0x175
99
MSR_SYSENTER_ESP	equ	0x175
100
MSR_SYSENTER_EIP        equ     0x176
100
MSR_SYSENTER_EIP	equ	0x176
101
MSR_AMD_EFER            equ     0xC0000080      ; Extended Feature Enable Register
101
MSR_AMD_EFER		equ	0xC0000080	; Extended Feature Enable Register
102
MSR_AMD_STAR            equ     0xC0000081      ; SYSCALL/SYSRET Target Address Register
102
MSR_AMD_STAR		equ	0xC0000081	; SYSCALL/SYSRET Target Address Register
103
 
103
 
104
CR0_PE         equ    0x00000001   ;protected mode
104
CR0_PE	       equ    0x00000001   ;protected mode
105
CR0_MP         equ    0x00000002   ;monitor fpu
105
CR0_MP	       equ    0x00000002   ;monitor fpu
106
CR0_EM         equ    0x00000004   ;fpu emulation
106
CR0_EM	       equ    0x00000004   ;fpu emulation
107
CR0_TS         equ    0x00000008   ;task switch
107
CR0_TS	       equ    0x00000008   ;task switch
108
CR0_ET         equ    0x00000010   ;extension type hardcoded to 1
108
CR0_ET	       equ    0x00000010   ;extension type hardcoded to 1
109
CR0_NE         equ    0x00000020   ;numeric error
109
CR0_NE	       equ    0x00000020   ;numeric error
110
CR0_WP         equ    0x00010000   ;write protect
110
CR0_WP	       equ    0x00010000   ;write protect
111
CR0_AM         equ    0x00040000   ;alignment check
111
CR0_AM	       equ    0x00040000   ;alignment check
112
CR0_NW         equ    0x20000000   ;not write-through
112
CR0_NW	       equ    0x20000000   ;not write-through
113
CR0_CD         equ    0x40000000   ;cache disable
113
CR0_CD	       equ    0x40000000   ;cache disable
Line 114... Line 114...
114
CR0_PG         equ    0x80000000   ;paging
114
CR0_PG	       equ    0x80000000   ;paging
115
 
115
 
116
 
116
 
117
CR4_VME        equ    0x0001
117
CR4_VME        equ    0x0001
118
CR4_PVI        equ    0x0002
118
CR4_PVI        equ    0x0002
119
CR4_TSD        equ    0x0004
119
CR4_TSD        equ    0x0004
120
CR4_DE         equ    0x0008
120
CR4_DE	       equ    0x0008
121
CR4_PSE        equ    0x0010
121
CR4_PSE        equ    0x0010
122
CR4_PAE        equ    0x0020
122
CR4_PAE        equ    0x0020
123
CR4_MCE        equ    0x0040
123
CR4_MCE        equ    0x0040
124
CR4_PGE        equ    0x0080
124
CR4_PGE        equ    0x0080
Line 125... Line 125...
125
CR4_PCE        equ    0x0100
125
CR4_PCE        equ    0x0100
126
CR4_OSFXSR     equ    0x0200
126
CR4_OSFXSR     equ    0x0200
127
CR4_OSXMMEXPT  equ    0x0400
127
CR4_OSXMMEXPT  equ    0x0400
128
 
128
 
129
SSE_IE         equ    0x0001
129
SSE_IE	       equ    0x0001
130
SSE_DE         equ    0x0002
130
SSE_DE	       equ    0x0002
131
SSE_ZE         equ    0x0004
131
SSE_ZE	       equ    0x0004
132
SSE_OE         equ    0x0008
132
SSE_OE	       equ    0x0008
133
SSE_UE         equ    0x0010
133
SSE_UE	       equ    0x0010
134
SSE_PE         equ    0x0020
134
SSE_PE	       equ    0x0020
135
SSE_DAZ        equ    0x0040
135
SSE_DAZ        equ    0x0040
136
SSE_IM         equ    0x0080
136
SSE_IM	       equ    0x0080
137
SSE_DM         equ    0x0100
137
SSE_DM	       equ    0x0100
138
SSE_ZM         equ    0x0200
138
SSE_ZM	       equ    0x0200
Line 139... Line 139...
139
SSE_OM         equ    0x0400
139
SSE_OM	       equ    0x0400
Line 140... Line 140...
140
SSE_UM         equ    0x0800
140
SSE_UM	       equ    0x0800
Line 162... Line 162...
162
  ._ebx        rd 1
162
  ._ebx        rd 1
163
  ._esp        rd 1
163
  ._esp        rd 1
164
  ._ebp        rd 1
164
  ._ebp        rd 1
165
  ._esi        rd 1
165
  ._esi        rd 1
166
  ._edi        rd 1
166
  ._edi        rd 1
167
  ._es         rw 2
167
  ._es	       rw 2
168
  ._cs         rw 2
168
  ._cs	       rw 2
169
  ._ss         rw 2
169
  ._ss	       rw 2
170
  ._ds         rw 2
170
  ._ds	       rw 2
171
  ._fs         rw 2
171
  ._fs	       rw 2
172
  ._gs         rw 2
172
  ._gs	       rw 2
173
  ._ldt        rw 2
173
  ._ldt        rw 2
174
  ._trap       rw 1
174
  ._trap       rw 1
175
  ._io         rw 1
175
  ._io	       rw 1
176
               rb 24
176
	       rb 24
177
  ._io_map_0   rb 4096
177
  ._io_map_0   rb 4096
178
  ._io_map_1   rb 4096
178
  ._io_map_1   rb 4096
179
}
179
}
Line 180... Line 180...
180
 
180
 
181
virtual at 0
181
virtual at 0
182
  TSS  TSS
182
  TSS  TSS
Line 183... Line 183...
183
end virtual
183
end virtual
Line 184... Line 184...
184
 
184
 
Line 185... Line 185...
185
TSS_SIZE  equ (128+8192)
185
TSS_SIZE  equ (128+8192)
Line 186... Line 186...
186
 
186
 
187
OS_BASE             equ 0x80000000
187
OS_BASE 	    equ 0x80000000
188
 
188
 
189
window_data         equ (OS_BASE+0x0001000)
189
window_data	    equ (OS_BASE+0x0001000)
190
 
190
 
191
CURRENT_TASK        equ (OS_BASE+0x0003000)
-
 
192
TASK_COUNT          equ (OS_BASE+0x0003004)
-
 
193
TASK_BASE           equ (OS_BASE+0x0003010)
-
 
194
TASK_DATA           equ (OS_BASE+0x0003020)
-
 
195
TASK_EVENT          equ (OS_BASE+0x0003020)
-
 
196
 
-
 
197
mouseunder          equ (OS_BASE+0x0006900)
-
 
198
CDDataBuf           equ (OS_BASE+0x0007000)
-
 
199
FLOPPY_BUFF         equ (OS_BASE+0x0008000)
-
 
200
;ACTIVE_PROC_STACK   equ (OS_BASE+0x000A400) ;unused
-
 
201
idts                equ (OS_BASE+0x000B100)
-
 
202
WIN_STACK           equ (OS_BASE+0x000C000)
-
 
203
WIN_POS             equ (OS_BASE+0x000C400)
-
 
204
FDD_BUFF            equ (OS_BASE+0x000D000)
-
 
205
 
-
 
206
;unused ? only one reference
-
 
207
;ENABLE_TASKSWITCH   equ (OS_BASE+0x000E000)
-
 
208
 
-
 
209
PUTPIXEL            equ (OS_BASE+0x000E020)
-
 
210
GETPIXEL            equ (OS_BASE+0x000E024)
-
 
211
 
-
 
212
;unused ? only one reference
-
 
213
; BANK_SWITCH         equ (OS_BASE+0x000E030)	; VESA 1.2 - not used
-
 
214
 
-
 
215
;unused ? store mousepointer
-
 
216
;MOUSE_PICTURE       equ (OS_BASE+0x000F200)	; mousedrv.inc - not used
-
 
217
 
-
 
218
MOUSE_VISIBLE       equ (OS_BASE+0x000F204)
-
 
219
WIN_TEMP_XY         equ (OS_BASE+0x000F300)
-
 
220
KEY_COUNT           equ (OS_BASE+0x000F400)
-
 
221
KEY_BUFF            equ (OS_BASE+0x000F401)
-
 
222
 
-
 
223
BTN_COUNT           equ (OS_BASE+0x000F500)
-
 
224
BTN_BUFF            equ (OS_BASE+0x000F501)
-
 
225
 
-
 
226
CPU_FREQ            equ (OS_BASE+0x000F600)
-
 
227
 
-
 
228
;unused ? no active references
-
 
229
MOUSE_PORT          equ (OS_BASE+0x000F604)
-
 
230
 
-
 
231
;unused
-
 
232
PS2_CHUNK           equ (OS_BASE+0x000FB00)
-
 
233
 
-
 
234
MOUSE_SCROLL_H      equ (OS_BASE+0x000FB08)
-
 
235
MOUSE_X             equ (OS_BASE+0x000FB0A)
-
 
236
MOUSE_Y             equ (OS_BASE+0x000FB0C)
-
 
237
MOUSE_SCROLL_V      equ (OS_BASE+0x000FB0E)
-
 
238
 
-
 
239
MOUSE_COLOR_MEM     equ (OS_BASE+0x000FB10)
-
 
240
COLOR_TEMP          equ (OS_BASE+0x000FB30)
-
 
Line -... Line 191...
-
 
191
CURRENT_TASK	    equ (OS_BASE+0x0003000)
-
 
192
TASK_COUNT	    equ (OS_BASE+0x0003004)
-
 
193
TASK_BASE	    equ (OS_BASE+0x0003010)
-
 
194
TASK_DATA	    equ (OS_BASE+0x0003020)
241
BTN_DOWN            equ (OS_BASE+0x000FB40)
195
TASK_EVENT	    equ (OS_BASE+0x0003020)
-
 
196
 
-
 
197
FLOPPY_BUFF	    equ (OS_BASE+0x0005000)
-
 
198
 
-
 
199
idts		    equ (OS_BASE+0x0007400)	; sys32.inc
-
 
200
 
-
 
201
mouseunder	    equ (OS_BASE+0x0007900)
-
 
202
SB16_Status	    equ (OS_BASE+0x0007F00)	; <<
242
MOUSE_DOWN          equ (OS_BASE+0x000FB44)
203
 
Line 243... Line -...
243
X_UNDER             equ (OS_BASE+0x000FB4A)
-
 
244
Y_UNDER             equ (OS_BASE+0x000FB4C)
-
 
245
ScreenBPP           equ (OS_BASE+0x000FBF1)
-
 
246
 
-
 
247
;unused ? only one reference
-
 
248
MOUSE_BUFF_COUNT    equ (OS_BASE+0x000FCFF)
-
 
249
 
-
 
250
Screen_Max_X        equ (OS_BASE+0x000FE00)
-
 
251
Screen_Max_Y        equ (OS_BASE+0x000FE04)
-
 
252
BytesPerScanLine    equ (OS_BASE+0x000FE08)
-
 
253
SCR_MODE            equ (OS_BASE+0x000FE0C)
-
 
254
 
-
 
255
KERNEL_ALLOC_FLAG   equ (OS_BASE+0x000FE70)   
-
 
256
mmio_pcie_cfg_addr  equ	(OS_BASE+0x000FE74)	
-
 
257
mmio_pcie_cfg_lim   equ	(OS_BASE+0x000FE78)	
-
 
Line 258... Line 204...
258
mmio_pcie_cfg_pdes  equ	(OS_BASE+0x000FE7C)	
204
RAMDISK_FAT	    equ (OS_BASE+0x0008000)
259
PCIe_bus_range	    equ	(OS_BASE+0x000FE7E)	
205
FLOPPY_FAT	    equ (OS_BASE+0x000A000)	; fs/fat12.inc
Line -... Line 206...
-
 
206
 
-
 
207
WIN_STACK	    equ (OS_BASE+0x000C000)
-
 
208
WIN_POS 	    equ (OS_BASE+0x000C400)
-
 
209
FDD_BUFF	    equ (OS_BASE+0x000D000)
-
 
210
 
-
 
211
 
-
 
212
KEY_COUNT	    equ (OS_BASE+0x000FA00)
-
 
213
KEY_BUFF	    equ (OS_BASE+0x000FA01)
-
 
214
 
-
 
215
BTN_COUNT	    equ (OS_BASE+0x000FB00)
-
 
216
BTN_BUFF	    equ (OS_BASE+0x000FB01)
-
 
217
 
-
 
218
 
-
 
219
;reserved ? mouse buffer space 0xFC00-FCFF
-
 
220
MOUSE_BUFF_COUNT    equ (OS_BASE+0x000FCFF)
-
 
221
 
-
 
222
;unused ?
-
 
223
PS2_CHUNK	    equ (OS_BASE+0x000FE00)
-
 
224
MOUSE_SCROLL_H	    equ (OS_BASE+0x000FE08)
-
 
225
MOUSE_X 	    equ (OS_BASE+0x000FE0A)
-
 
226
MOUSE_Y 	    equ (OS_BASE+0x000FE0C)
-
 
227
MOUSE_SCROLL_V	    equ (OS_BASE+0x000FE0E)
-
 
228
 
-
 
229
MOUSE_COLOR_MEM     equ (OS_BASE+0x000FE10)
-
 
230
COLOR_TEMP	    equ (OS_BASE+0x000FE30)
-
 
231
BTN_DOWN	    equ (OS_BASE+0x000FE40)
-
 
232
MOUSE_DOWN	    equ (OS_BASE+0x000FE44)
-
 
233
X_UNDER 	    equ (OS_BASE+0x000FE4A)
-
 
234
Y_UNDER 	    equ (OS_BASE+0x000FE4C)
-
 
235
 
-
 
236
PUTPIXEL	    equ (OS_BASE+0x000FEB8)
-
 
237
GETPIXEL	    equ (OS_BASE+0x000FEBC)
-
 
238
ScreenBPP	    equ (OS_BASE+0x000FEC1)
-
 
239
MOUSE_VISIBLE	    equ (OS_BASE+0x000FEC4)
-
 
240
WIN_TEMP_XY	    equ (OS_BASE+0x000FEC8)
-
 
241
CPU_FREQ	    equ (OS_BASE+0x000FECC)
-
 
242
 
-
 
243
Screen_Max_X	    equ (OS_BASE+0x000FED0)
-
 
244
Screen_Max_Y	    equ (OS_BASE+0x000FED4)
-
 
245
BytesPerScanLine    equ (OS_BASE+0x000FED8)
-
 
246
SCR_MODE	    equ (OS_BASE+0x000FEDC)
-
 
247
 
-
 
248
KERNEL_ALLOC_FLAG   equ (OS_BASE+0x000FEE0)
-
 
249
mmio_pcie_cfg_addr  equ (OS_BASE+0x000FEE4)
-
 
250
mmio_pcie_cfg_lim   equ (OS_BASE+0x000FEE8)
-
 
251
mmio_pcie_cfg_pdes  equ (OS_BASE+0x000FEEC)
-
 
252
PCIe_bus_range	    equ (OS_BASE+0x000FEEE)
-
 
253
 
-
 
254
UserDMAaddr	    equ (OS_BASE+0x000FEF0)
-
 
255
LFBAddress	    equ (OS_BASE+0x000FEF4)
260
 
256
BTN_ADDR	    equ (OS_BASE+0x000FEF8)
261
UserDMAaddr         equ (OS_BASE+0x000FE80)
257
MEM_AMOUNT	    equ (OS_BASE+0x000FEFC)
262
LFBAddress          equ (OS_BASE+0x000FE84)
258
 
263
BTN_ADDR            equ (OS_BASE+0x000FE88)
259
SYS_SHUTDOWN	    equ (OS_BASE+0x000FF00)
264
MEM_AMOUNT          equ (OS_BASE+0x000FE8C)
260
TASK_ACTIVATE	    equ (OS_BASE+0x000FF01)
265
 
261
 
-
 
262
BgrDrawMode	    equ (OS_BASE+0x000FFE4)
-
 
263
BgrDataWidth	    equ (OS_BASE+0x000FFE8)
Line 266... Line 264...
266
SYS_SHUTDOWN        equ (OS_BASE+0x000FF00)
264
BgrDataHeight	    equ (OS_BASE+0x000FFEC)
-
 
265
REDRAW_BACKGROUND   equ (OS_BASE+0x000FFF0)
Line 267... Line -...
267
TASK_ACTIVATE       equ (OS_BASE+0x000FF01)
-
 
268
 
266
BACKGROUND_CHANGED  equ (OS_BASE+0x000FFF1)
Line 269... Line 267...
269
REDRAW_BACKGROUND   equ (OS_BASE+0x000FFF0)
267
BANK_RW 	    equ (OS_BASE+0x000FFF2)
Line 270... Line 268...
270
BACKGROUND_CHANGED  equ (OS_BASE+0x000FFF1)
268
MOUSE_BACKGROUND    equ (OS_BASE+0x000FFF4)
Line 271... Line 269...
271
BANK_RW             equ (OS_BASE+0x000FFF2)
269
DONT_DRAW_MOUSE     equ (OS_BASE+0x000FFF5)
Line 272... Line -...
272
MOUSE_BACKGROUND    equ (OS_BASE+0x000FFF4)
-
 
273
DONT_DRAW_MOUSE     equ (OS_BASE+0x000FFF5)
270
DONT_SWITCH	    equ (OS_BASE+0x000FFFF)
Line 274... Line 271...
274
DONT_SWITCH         equ (OS_BASE+0x000FFFF)
271
 
Line 275... Line -...
275
 
-
 
276
TMP_STACK_TOP       equ 0x006CC00
-
 
277
 
272
TMP_STACK_TOP	    equ 0x006CC00
Line 278... Line 273...
278
FONT_II             equ (OS_BASE+0x006DC00)
273
 
Line 279... Line 274...
279
FONT_I              equ (OS_BASE+0x006E600)
274
FONT_II 	    equ (OS_BASE+0x006DC00)
280
 
-
 
281
sys_pgdir           equ (OS_BASE+0x006F000)
-
 
282
 
-
 
Line 283... Line 275...
283
DRIVE_DATA          equ (OS_BASE+0x0070000)
275
FONT_I		    equ (OS_BASE+0x006E600)
284
 
276
 
285
SLOT_BASE           equ (OS_BASE+0x0080000)
277
sys_pgdir	    equ (OS_BASE+0x006F000)
286
 
278
 
Line 287... Line 279...
287
;unused
279
DRIVE_DATA	    equ (OS_BASE+0x0070000)
288
TMP_BUFF            equ (OS_BASE+0x0090000)
280
 
289
 
281
SLOT_BASE	    equ (OS_BASE+0x0080000)
290
VGABasePtr          equ (OS_BASE+0x00A0000)
282
 
291
 
283
SB16Buffer	    equ (OS_BASE+0x0090000)	; <<
292
RAMDISK             equ (OS_BASE+0x0100000)
284
 
293
RAMDISK_FAT         equ (OS_BASE+0x0280000)
285
VGABasePtr	    equ (OS_BASE+0x00A0000)
294
FLOPPY_FAT          equ (OS_BASE+0x0282000)
286
 
Line 295... Line -...
295
 
-
 
296
IDE_DMA             equ 0x284000
-
 
297
 
-
 
Line 298... Line 287...
298
BgrAuxTable         equ (OS_BASE+0x0298000)
287
RAMDISK 	    equ (OS_BASE+0x0100000)
Line 299... Line 288...
299
; unused?
288
 
Line 300... Line 289...
300
SB16Buffer          equ (OS_BASE+0x2A0000)
289
CLEAN_ZONE	    equ 0x3f0000
301
SB16_Status         equ (OS_BASE+0x02B0000)
290
 
302
 
291
IDE_DMA 	    equ 0x03F4000
Line 303... Line 292...
303
BUTTON_INFO         equ (OS_BASE+0x02C0000)
292
 
304
RESERVED_PORTS      equ (OS_BASE+0x02D0000)
293
BgrAuxTable	    equ (OS_BASE+0x0408000)
Line 305... Line 294...
305
IRQ_SAVE            equ (OS_BASE+0x02E0000)
294
 
306
BOOT_VAR            equ (OS_BASE+0x02f0000)
295
BUTTON_INFO	   equ (OS_BASE+0x0430000)
Line 307... Line 296...
307
 
296
RESERVED_PORTS	   equ (OS_BASE+0x0440000)
308
stack_data_start    equ (OS_BASE+0x0300000)
297
IRQ_SAVE	   equ (OS_BASE+0x0450000)
309
eth_data_start      equ (OS_BASE+0x0300000)
298
BOOT_VAR	   equ (OS_BASE+0x0460000)
310
stack_data          equ (OS_BASE+0x0304000)
299
 
Line 311... Line 300...
311
stack_data_end      equ (OS_BASE+0x031ffff)
300
stack_data_start   equ (OS_BASE+0x0470000)
Line 312... Line 301...
312
resendQ             equ (OS_BASE+0x0320000)
301
eth_data_start	   equ (OS_BASE+0x0470000)
Line 313... Line 302...
313
VMODE_BASE          equ (OS_BASE+0x0328000)
302
stack_data	   equ (OS_BASE+0x0474000)
Line 314... Line 303...
314
skin_data           equ (OS_BASE+0x0330000)
303
stack_data_end	   equ (OS_BASE+0x048ffff)
315
draw_data           equ (OS_BASE+0x0338000);
304
resendQ 	   equ (OS_BASE+0x0490000)
Line 316... Line 305...
316
 
305
VMODE_BASE	   equ (OS_BASE+0x0498000)
317
BgrDrawMode         equ (OS_BASE+0x033BFF4)
306
skin_data	   equ (OS_BASE+0x04A0000)
318
BgrDataWidth        equ (OS_BASE+0x033BFF8)
307
draw_data	   equ (OS_BASE+0x04A8000);
319
BgrDataHeight       equ (OS_BASE+0x033BFFC)
308
 
320
 
309
 
321
sys_pgmap           equ (OS_BASE+0x033C000)
310
sys_pgmap	   equ (OS_BASE+0x04B0000)    ; <<
322
 
311
 
323
UPPER_KERNEL_PAGES  equ (OS_BASE+0x0400000)
312
;UPPER_KERNEL_PAGES  equ (OS_BASE+0x0400000)
324
 
313
 
325
virtual at              (OS_BASE+0x05FFF80)
314
virtual at		(OS_BASE+0x06FFF80)
326
  tss  TSS
315
  tss  TSS
327
end virtual
316
end virtual
328
 
317
 
329
HEAP_BASE           equ (OS_BASE+0x0800000)
318
HEAP_BASE	    equ (OS_BASE+0x0800000)
330
HEAP_MIN_SIZE       equ 0x01000000
319
HEAP_MIN_SIZE	    equ 0x01000000
331
 
320
 
332
PCIe_CONFIG_SPACE   equ	0xF0000000	
321
PCIe_CONFIG_SPACE   equ 0xF0000000
333
USER_DMA_BUFFER     equ 0xFD000000    ; linear addr.
322
USER_DMA_BUFFER     equ 0xFD000000    ; linear addr.
334
 
323
 
335
page_tabs           equ 0xFDC00000
324
page_tabs	    equ 0xFDC00000
336
app_page_tabs       equ 0xFDC00000
325
app_page_tabs	    equ 0xFDC00000
337
kernel_tabs         equ (page_tabs+ (OS_BASE shr 10))   ;0xFDE00000
326
kernel_tabs	    equ (page_tabs+ (OS_BASE shr 10))	;0xFDE00000
338
master_tab          equ (page_tabs+ (page_tabs shr 10)) ;0xFDFF70000
327
master_tab	    equ (page_tabs+ (page_tabs shr 10)) ;0xFDFF70000
339
 
328
 
340
LFB_BASE            equ 0xFE000000
329
LFB_BASE	    equ 0xFE000000
Line 341... Line 330...
341
 
330
 
Line 342... Line 331...
342
 
331
 
Line 343... Line 332...
343
new_app_base        equ 0;
332
new_app_base	    equ 0;
344
 
333
 
345
twdw                equ 0x2000   ;(CURRENT_TASK-window_data)
334
twdw		    equ 0x2000	 ;(CURRENT_TASK-window_data)
346
 
335
 
347
std_application_base_address   equ new_app_base
336
std_application_base_address   equ new_app_base
348
RING0_STACK_SIZE    equ (0x2000 - 512)    ;512 áàéò äëÿ êîíòåêñòà FPU
337
RING0_STACK_SIZE    equ (0x2000 - 512)	  ;512 áàéò äëÿ êîíòåêñòà FPU
349
 
338
 
350
REG_SS              equ (RING0_STACK_SIZE-4)
339
REG_SS		    equ (RING0_STACK_SIZE-4)
351
REG_APP_ESP         equ (RING0_STACK_SIZE-8)
340
REG_APP_ESP	    equ (RING0_STACK_SIZE-8)
352
REG_EFLAGS          equ (RING0_STACK_SIZE-12)
341
REG_EFLAGS	    equ (RING0_STACK_SIZE-12)
353
REG_CS              equ (RING0_STACK_SIZE-16)
342
REG_CS		    equ (RING0_STACK_SIZE-16)
354
REG_EIP             equ (RING0_STACK_SIZE-20)
343
REG_EIP 	    equ (RING0_STACK_SIZE-20)
355
REG_EAX             equ (RING0_STACK_SIZE-24)
344
REG_EAX 	    equ (RING0_STACK_SIZE-24)
356
REG_ECX             equ (RING0_STACK_SIZE-28)
345
REG_ECX 	    equ (RING0_STACK_SIZE-28)
357
REG_EDX             equ (RING0_STACK_SIZE-32)
346
REG_EDX 	    equ (RING0_STACK_SIZE-32)
358
REG_EBX             equ (RING0_STACK_SIZE-36)
347
REG_EBX 	    equ (RING0_STACK_SIZE-36)
359
REG_ESP             equ (RING0_STACK_SIZE-40)  ;RING0_STACK_SIZE-20
348
REG_ESP 	    equ (RING0_STACK_SIZE-40)  ;RING0_STACK_SIZE-20
360
REG_EBP             equ (RING0_STACK_SIZE-44)
349
REG_EBP 	    equ (RING0_STACK_SIZE-44)
361
REG_ESI             equ (RING0_STACK_SIZE-48)
350
REG_ESI 	    equ (RING0_STACK_SIZE-48)
362
REG_EDI             equ (RING0_STACK_SIZE-52)
351
REG_EDI 	    equ (RING0_STACK_SIZE-52)
363
REG_RET             equ (RING0_STACK_SIZE-56)  ;irq0.return
352
REG_RET 	    equ (RING0_STACK_SIZE-56)  ;irq0.return
364
 
353
 
365
 
354
 
366
PG_UNMAP            equ 0x000
355
PG_UNMAP	    equ 0x000
367
PG_MAP              equ 0x001
356
PG_MAP		    equ 0x001
368
PG_WRITE            equ 0x002
357
PG_WRITE	    equ 0x002
369
PG_SW               equ 0x003
358
PG_SW		    equ 0x003
370
PG_USER             equ 0x005
359
PG_USER 	    equ 0x005
371
PG_UW               equ 0x007
360
PG_UW		    equ 0x007
372
PG_NOCACHE          equ 0x018
361
PG_NOCACHE	    equ 0x018
Line 373... Line 362...
373
PG_LARGE            equ 0x080
362
PG_LARGE	    equ 0x080
Line 374... Line 363...
374
PG_GLOBAL           equ 0x100
363
PG_GLOBAL	    equ 0x100
375
 
364
 
376
PG_SHARED           equ 0x200
365
PG_SHARED	    equ 0x200
377
 
366
 
378
;;;;;;;;;;;boot time variables
367
;;;;;;;;;;;boot time variables
379
 
368
 
380
;BOOT_BPP            equ 0x9000    ;byte   bits per pixel
369
;BOOT_BPP            equ 0x9000    ;byte   bits per pixel
381
BOOT_SCANLINE       equ 0x9001    ;word   scanline length
370
BOOT_SCANLINE	    equ 0x9001	  ;word   scanline length
Line 382... Line 371...
382
BOOT_VESA_MODE      equ 0x9008    ;word   vesa video mode
371
BOOT_VESA_MODE	    equ 0x9008	  ;word   vesa video mode
Line 383... Line 372...
383
;;BOOT_X_RES          equ 0x900A    ;word   X res
372
;;BOOT_X_RES          equ 0x900A    ;word   X res
384
;;BOOT_Y_RES          equ 0x900C    ;word   Y res
373
;;BOOT_Y_RES          equ 0x900C    ;word   Y res
385
;;BOOT_MOUSE_PORT     equ 0x9010    ;byte   mouse port  - not used
374
;;BOOT_MOUSE_PORT     equ 0x9010    ;byte   mouse port  - not used
Line 386... Line 375...
386
BOOT_BANK_SW        equ 0x9014    ;dword  Vesa 1.2 pm bank switch
375
BOOT_BANK_SW	    equ 0x9014	  ;dword  Vesa 1.2 pm bank switch
387
BOOT_LFB            equ 0x9018    ;dword  Vesa 2.0 LFB address
376
BOOT_LFB	    equ 0x9018	  ;dword  Vesa 2.0 LFB address
388
BOOT_MTRR           equ 0x901C    ;byte   0 or 1 : enable MTRR graphics acceleration
377
BOOT_MTRR	    equ 0x901C	  ;byte   0 or 1 : enable MTRR graphics acceleration
389
BOOT_LOG            equ 0x901D    ;byte   not used anymore (0 or 1 : enable system log display)
378
BOOT_LOG	    equ 0x901D	  ;byte   not used anymore (0 or 1 : enable system log display)
390
BOOT_DIRECT_LFB     equ 0x901E    ;byte   0 or 1 : enable direct lfb write, paging disabled
379
BOOT_DIRECT_LFB     equ 0x901E	  ;byte   0 or 1 : enable direct lfb write, paging disabled
391
BOOT_PCI_DATA       equ 0x9020    ;8bytes pci data
380
BOOT_PCI_DATA	    equ 0x9020	  ;8bytes pci data
392
BOOT_VRR            equ 0x9030    ;byte   VRR start enabled 1, 2-no
381
BOOT_VRR	    equ 0x9030	  ;byte   VRR start enabled 1, 2-no
Line 393... Line 382...
393
BOOT_IDE_BASE_ADDR  equ 0x9031   ;word   IDEContrRegsBaseAddr
382
BOOT_IDE_BASE_ADDR  equ 0x9031	 ;word   IDEContrRegsBaseAddr
394
BOOT_MEM_AMOUNT     equ 0x9034    ;dword  memory amount
383
BOOT_MEM_AMOUNT     equ 0x9034	  ;dword  memory amount
395
 
384
 
396
TMP_FILE_NAME       equ     0
385
TMP_FILE_NAME	    equ     0
397
TMP_CMD_LINE        equ  1024
386
TMP_CMD_LINE	    equ  1024
398
TMP_ICON_OFFS       equ  1280
387
TMP_ICON_OFFS	    equ  1280
399
 
388
 
400
 
389
 
Line 401... Line 390...
401
EVENT_REDRAW       equ 0x00000001
390
EVENT_REDRAW	   equ 0x00000001
402
EVENT_KEY          equ 0x00000002
391
EVENT_KEY	   equ 0x00000002
403
EVENT_BUTTON       equ 0x00000004
392
EVENT_BUTTON	   equ 0x00000004
Line 404... Line 393...
404
EVENT_BACKGROUND   equ 0x00000010
393
EVENT_BACKGROUND   equ 0x00000010
405
EVENT_MOUSE        equ 0x00000020
394
EVENT_MOUSE	   equ 0x00000020
Line 406... Line 395...
406
EVENT_IPC          equ 0x00000040
395
EVENT_IPC	   equ 0x00000040
407
EVENT_NETWORK      equ 0x00000080
396
EVENT_NETWORK	   equ 0x00000080
408
EVENT_DEBUG        equ 0x00000100
397
EVENT_DEBUG	   equ 0x00000100
409
EVENT_EXTENDED     equ 0x00000200
398
EVENT_EXTENDED	   equ 0x00000200
410
 
399
 
411
EV_INTR            equ 1
400
EV_INTR 	   equ 1
412
 
401
 
413
struc THR_DATA
402
struc THR_DATA
Line 414... Line 403...
414
{
403
{
415
                  rb (8192-512)
404
		  rb (8192-512)
416
  .pl0_stack:
405
  .pl0_stack:
417
  .fpu_state      rb 512
406
  .fpu_state	  rb 512
418
  .tls_page       rb 4096
407
  .tls_page	  rb 4096
419
  .pdbr           rb 4096
408
  .pdbr 	  rb 4096
420
}
409
}
421
 
410
 
Line 422... Line 411...
422
THR_DATA_SIZE     equ 4096*4
411
THR_DATA_SIZE	  equ 4096*4
423
 
412
 
424
virtual at (OS_BASE-THR_DATA_SIZE)
413
virtual at (OS_BASE-THR_DATA_SIZE)
425
  thr_data  THR_DATA
414
  thr_data  THR_DATA
426
end virtual
415
end virtual
Line 427... Line 416...
427
 
416
 
428
struc SYS_VARS
417
struc SYS_VARS
429
{ .bpp            dd ?
418
{ .bpp		  dd ?
430
  .scanline       dd ?
419
  .scanline	  dd ?
431
  .vesa_mode      dd ?
420
  .vesa_mode	  dd ?
432
  .x_res          dd ?
421
  .x_res	  dd ?
433
  .y_res          dd ?
422
  .y_res	  dd ?
434
}
423
}
435
 
424
 
436
struc APPOBJ           ;common object header
425
struc APPOBJ	       ;common object header
437
{
426
{
438
   .magic       dd ?   ;
427
   .magic	dd ?   ;
439
   .destroy     dd ?   ;internal destructor
428
   .destroy	dd ?   ;internal destructor
440
   .fd          dd ?   ;next object in list
429
   .fd		dd ?   ;next object in list
441
   .bk          dd ?   ;prev object in list
430
   .bk		dd ?   ;prev object in list
Line 442... Line 431...
442
   .pid         dd ?   ;owner id
431
   .pid 	dd ?   ;owner id
443
};
432
};
444
 
433
 
Line 445... Line 434...
445
virtual at 0
434
virtual at 0
446
  APPOBJ APPOBJ
435
  APPOBJ APPOBJ
447
end virtual
436
end virtual
448
 
437
 
449
APP_OBJ_OFFSET  equ 48
438
APP_OBJ_OFFSET	equ 48
450
APP_EV_OFFSET   equ 40
439
APP_EV_OFFSET	equ 40
451
 
440
 
452
struc CURSOR
441
struc CURSOR
453
{
442
{
454
;common object header
443
;common object header
455
   .magic       dd ?   ;'CURS'
444
   .magic	dd ?   ;'CURS'
Line 456... Line 445...
456
   .destroy     dd ?   ;internal destructor
445
   .destroy	dd ?   ;internal destructor
457
   .fd          dd ?   ;next object in list
446
   .fd		dd ?   ;next object in list
458
   .bk          dd ?   ;prev object in list
447
   .bk		dd ?   ;prev object in list
459
   .pid         dd ?   ;owner id
448
   .pid 	dd ?   ;owner id
460
 
449
 
461
 ;cursor data
450
 ;cursor data
462
   .base        dd ?   ;allocated memory
451
   .base	dd ?   ;allocated memory
Line 463... Line 452...
463
   .hot_x       dd ?   ;hotspot coords
452
   .hot_x	dd ?   ;hotspot coords
464
   .hot_y       dd ?
453
   .hot_y	dd ?
465
 
454
 
466
   .list_next   dd ?   ;next cursor in cursor list
455
   .list_next	dd ?   ;next cursor in cursor list
Line 467... Line 456...
467
   .list_prev   dd ?   ;prev cursor in cursor list
456
   .list_prev	dd ?   ;prev cursor in cursor list
468
   .dev_obj     dd ?   ;device depended data
457
   .dev_obj	dd ?   ;device depended data
Line 528... Line 517...
528
  SMAP SMAP
517
  SMAP SMAP
529
end virtual
518
end virtual
Line 530... Line 519...
530
 
519
 
531
struc DLLDESCR
520
struc DLLDESCR
532
{
521
{
533
    .bk         dd ?
522
    .bk 	dd ?
534
    .fd         dd ?    ;+4
523
    .fd 	dd ?	;+4
535
    .data       dd ?    ;+8
524
    .data	dd ?	;+8
536
    .size       dd ?    ;+12
525
    .size	dd ?	;+12
537
    .timestamp  dq ?
526
    .timestamp	dq ?
538
    .refcount   dd ?
527
    .refcount	dd ?
539
    .defaultbase dd ?
528
    .defaultbase dd ?
540
    .coff_hdr    dd ?
529
    .coff_hdr	 dd ?
541
    .symbols_ptr dd ?
530
    .symbols_ptr dd ?
542
    .symbols_num dd ?
531
    .symbols_num dd ?
543
    .symbols_lim dd ?
532
    .symbols_lim dd ?
544
    .exports     dd ?   ;export table
533
    .exports	 dd ?	;export table
545
    .name:
534
    .name:
546
    .sizeof:
535
    .sizeof:
Line 547... Line 536...
547
}
536
}
548
 
537
 
549
struc HDLL
538
struc HDLL
550
{
539
{
551
    .fd          dd ?   ;next object in list
540
    .fd 	 dd ?	;next object in list
552
    .bk          dd ?   ;prev object in list
541
    .bk 	 dd ?	;prev object in list
553
    .pid         dd ?   ;owner id
542
    .pid	 dd ?	;owner id
554
 
543
 
555
    .base        dd ?   ;mapped base
544
    .base	 dd ?	;mapped base
556
    .size        dd ?   ;mapped size
545
    .size	 dd ?	;mapped size
557
    .refcount    dd ?   ;reference counter for this process and this lib
546
    .refcount	 dd ?	;reference counter for this process and this lib
558
    .parent      dd ?   ;DLLDESCR
547
    .parent	 dd ?	;DLLDESCR
Line 559... Line 548...
559
    .sizeof:
548
    .sizeof:
560
}
549
}
Line 567... Line 556...
567
  HDLL HDLL
556
  HDLL HDLL
568
end virtual
557
end virtual
Line 569... Line 558...
569
 
558
 
570
struc display_t
559
struc display_t
571
{
560
{
572
    .x              dd ?
561
    .x		    dd ?
573
    .y              dd ?
562
    .y		    dd ?
574
    .width          dd ?
563
    .width	    dd ?
575
    .height         dd ?
564
    .height	    dd ?
576
    .bpp            dd ?
565
    .bpp	    dd ?
577
    .vrefresh       dd ?
566
    .vrefresh	    dd ?
578
    .pitch          dd ?
567
    .pitch	    dd ?
579
    .lfb            dd ?
568
    .lfb	    dd ?
580
 
569
 
581
    .modes          dd ?
570
    .modes	    dd ?
582
    .ddev           dd ?
571
    .ddev	    dd ?
583
    .connector      dd ?
572
    .connector	    dd ?
Line 584... Line 573...
584
    .crtc           dd ?
573
    .crtc	    dd ?
585
 
574
 
Line 586... Line 575...
586
    .cr_list.next   dd ?
575
    .cr_list.next   dd ?
Line 587... Line 576...
587
    .cr_list.prev   dd ?
576
    .cr_list.prev   dd ?
588
 
577
 
589
    .cursor         dd ?
578
    .cursor	    dd ?
590
 
579
 
Line 600... Line 589...
600
  display_t display_t
589
  display_t display_t
601
end virtual
590
end virtual
Line 602... Line 591...
602
 
591
 
603
struc HEAP_DATA
592
struc HEAP_DATA
604
{
593
{
605
   .mutex         rd 1
594
   .mutex	  rd 1
606
   .refcount      rd 1
595
   .refcount	  rd 1
607
   .heap_base     rd 1
596
   .heap_base	  rd 1
608
   .heap_top      rd 1
597
   .heap_top	  rd 1
609
   .app_mem       rd 1
598
   .app_mem	  rd 1
Line 610... Line 599...
610
}
599
}
611
 
600
 
612
HEAP_DATA_SIZE  equ 20
601
HEAP_DATA_SIZE	equ 20
613
virtual at 0
602
virtual at 0
Line 614... Line 603...
614
  HEAP_DATA HEAP_DATA
603
  HEAP_DATA HEAP_DATA
615
end virtual
604
end virtual
616
 
605
 
617
struc BOOT_DATA
606
struc BOOT_DATA
618
{ .bpp            dd ?
607
{ .bpp		  dd ?
619
  .scanline       dd ?
608
  .scanline	  dd ?
620
  .vesa_mode      dd ?
609
  .vesa_mode	  dd ?
621
  .x_res          dd ?
610
  .x_res	  dd ?
622
  .y_res          dd ?
611
  .y_res	  dd ?
623
  .mouse_port     dd ?
612
  .mouse_port	  dd ?
624
  .bank_switch    dd ?
613
  .bank_switch	  dd ?
625
  .lfb            dd ?
614
  .lfb		  dd ?
626
  .vesa_mem       dd ?
615
  .vesa_mem	  dd ?
627
  .log            dd ?
616
  .log		  dd ?
628
  .direct_lfb     dd ?
617
  .direct_lfb	  dd ?
629
  .pci_data       dd ?
618
  .pci_data	  dd ?
630
;                  dd ?
619
;                  dd ?
631
  .vrr            dd ?
620
  .vrr		  dd ?
632
  .ide_base       dd ?
621
  .ide_base	  dd ?
633
  .mem_amount     dd ?
622
  .mem_amount	  dd ?
634
  .pages_count    dd ?
623
  .pages_count	  dd ?
635
  .pagemap_size   dd ?
624
  .pagemap_size   dd ?
Line 636... Line 625...
636
  .kernel_max     dd ?
625
  .kernel_max	  dd ?
637
  .kernel_pages   dd ?
626
  .kernel_pages   dd ?
638
  .kernel_tables  dd ?
627
  .kernel_tables  dd ?
639
 
628
 
640
  .cpu_vendor     dd ?
629
  .cpu_vendor	  dd ?
641
                  dd ?
630
		  dd ?
642
                  dd ?
631
		  dd ?
643
  .cpu_sign       dd ?
632
  .cpu_sign	  dd ?
644
  .cpu_info       dd ?
633
  .cpu_info	  dd ?
Line 645... Line 634...
645
  .cpu_caps       dd ?
634
  .cpu_caps	  dd ?
646
                  dd ?
635
		  dd ?
647
                  dd ?
636
		  dd ?
Line 648... Line 637...
648
}
637
}
649
 
638
 
650
virtual at 0
639
virtual at 0
651
  BOOT_DATA BOOT_DATA
640
  BOOT_DATA BOOT_DATA
652
end virtual
641
end virtual
653
 
642
 
654
struc MEM_STATE
643
struc MEM_STATE
655
{  .mutex             rd 1
644
{  .mutex	      rd 1
656
   .smallmap          rd 1
645
   .smallmap	      rd 1
Line 657... Line 646...
657
   .treemap           rd 1
646
   .treemap	      rd 1
658
   .topsize           rd 1
647
   .topsize	      rd 1
659
   .top               rd 1
648
   .top 	      rd 1
660
   .smallbins         rd 4*32
649
   .smallbins	      rd 4*32
661
   .treebins          rd 32
650
   .treebins	      rd 32
662
}
651
}
663
 
652
 
664
struc PG_DATA
653
struc PG_DATA
665
{ .mem_amount        dd ?
654
{ .mem_amount	     dd ?
666
  .vesa_mem          dd ?
655
  .vesa_mem	     dd ?
667
  .pages_count       dd ?
656
  .pages_count	     dd ?
668
  .pages_free        dd ?
657
  .pages_free	     dd ?
Line 669... Line 658...
669
  .pages_faults      dd ?
658
  .pages_faults      dd ?
670
  .pagemap_size      dd ?
659
  .pagemap_size      dd ?
671
  .kernel_pages      dd ?
660
  .kernel_pages      dd ?
Line 682... Line 671...
682
;  .import           dd ?
671
;  .import           dd ?
683
;}
672
;}
Line 684... Line 673...
684
 
673
 
685
struc SRV
674
struc SRV
686
{
675
{
687
 .srv_name          rb 16           ;ASCIIZ string
676
 .srv_name	    rb 16	    ;ASCIIZ string
688
  .magic             dd ?     ;+0x10 ;'SRV '
677
  .magic	     dd ?     ;+0x10 ;'SRV '
689
  .size              dd ?     ;+0x14 ;size of structure SRV
678
  .size 	     dd ?     ;+0x14 ;size of structure SRV
690
  .fd                dd ?     ;+0x18 ;next SRV descriptor
679
  .fd		     dd ?     ;+0x18 ;next SRV descriptor
691
  .bk                dd ?     ;+0x1C ;prev SRV descriptor
680
  .bk		     dd ?     ;+0x1C ;prev SRV descriptor
692
  .base              dd ?     ;+0x20 ;service base address
681
  .base 	     dd ?     ;+0x20 ;service base address
693
  .entry             dd ?     ;+0x24 ;service START function
682
  .entry	     dd ?     ;+0x24 ;service START function
694
  .srv_proc          dd ?     ;+0x28 ;user mode service handler
683
  .srv_proc	     dd ?     ;+0x28 ;user mode service handler
695
  .srv_proc_ex       dd ?     ;+0x2C ;kernel mode service handler
684
  .srv_proc_ex	     dd ?     ;+0x2C ;kernel mode service handler
696
  .sizeof:
685
  .sizeof:
Line 697... Line 686...
697
}
686
}
Line 698... Line 687...
698
 
687
 
699
SRV_FD_OFFSET  equ 0x18
688
SRV_FD_OFFSET  equ 0x18
Line 700... Line 689...
700
 
689
 
701
DRV_ENTRY    equ  1
690
DRV_ENTRY    equ  1
702
DRV_EXIT     equ -1
691
DRV_EXIT     equ -1
703
 
692
 
704
struc COFF_HEADER
693
struc COFF_HEADER
705
{  .machine          dw ?
694
{  .machine	     dw ?
706
   .nSections        dw ?
695
   .nSections	     dw ?
707
   .DataTime         dd ?
696
   .DataTime	     dd ?
708
   .pSymTable        dd ?
697
   .pSymTable	     dd ?
Line 709... Line 698...
709
   .nSymbols         dd ?
698
   .nSymbols	     dd ?
710
   .optHeader        dw ?
699
   .optHeader	     dw ?
711
   .flags            dw ?
700
   .flags	     dw ?
712
};
701
};
713
 
702
 
714
 
703
 
715
struc COFF_SECTION
704
struc COFF_SECTION
716
{  .Name             rb 8
705
{  .Name	     rb 8
717
   .VirtualSize      dd ?
706
   .VirtualSize      dd ?
718
   .VirtualAddress   dd ?
707
   .VirtualAddress   dd ?
719
   .SizeOfRawData    dd ?
708
   .SizeOfRawData    dd ?
720
   .PtrRawData       dd ?
709
   .PtrRawData	     dd ?
721
   .PtrReloc         dd ?
710
   .PtrReloc	     dd ?
Line 722... Line 711...
722
   .PtrLinenumbers   dd ?
711
   .PtrLinenumbers   dd ?
723
   .NumReloc         dw ?
712
   .NumReloc	     dw ?
724
   .NumLinenum       dw ?
713
   .NumLinenum	     dw ?
725
   .Characteristics  dd ?
714
   .Characteristics  dd ?
726
}
715
}
Line 727... Line 716...
727
COFF_SECTION_SIZE equ 40
716
COFF_SECTION_SIZE equ 40
728
 
717
 
729
struc COFF_RELOC
718
struc COFF_RELOC
730
{  .VirtualAddress   dd ?
719
{  .VirtualAddress   dd ?
731
   .SymIndex         dd ?
720
   .SymIndex	     dd ?
732
   .Type             dw ?
721
   .Type	     dw ?
733
}
722
}
734
 
723
 
735
struc COFF_SYM
724
struc COFF_SYM
Line 736... Line 725...
736
{  .Name             rb 8
725
{  .Name	     rb 8
737
   .Value            dd ?
726
   .Value	     dd ?
738
   .SectionNumber    dw ?
727
   .SectionNumber    dw ?
739
   .Type             dw ?
728
   .Type	     dw ?
740
   .StorageClass     db ?
729
   .StorageClass     db ?
741
   .NumAuxSymbols    db ?
730
   .NumAuxSymbols    db ?
742
}
731
}
743
CSYM_SIZE equ 18
732
CSYM_SIZE equ 18
Line 744... Line 733...
744
 
733
 
745
struc IOCTL
734
struc IOCTL
746
{  .handle           dd ?
735
{  .handle	     dd ?