Subversion Repositories Kolibri OS

Rev

Rev 1311 | Rev 1378 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
431 serge 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
593 mikedld 2
;;                                                              ;;
983 diamond 3
;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;;
431 serge 4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
593 mikedld 6
;; KERNEL32.INC                                                 ;;
7
;;                                                              ;;
8
;; Included 32 bit kernel files for MenuetOS                    ;;
9
;;                                                              ;;
10
;; This file is kept separate as it will be easier to           ;;
11
;; maintain and compile with an automated SETUP program         ;;
12
;; in the future.                                               ;;
13
;;                                                              ;;
431 serge 14
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1 ha 15
 
593 mikedld 16
$Revision: 1362 $
17
 
18
 
373 mikedld 19
;struc db [a] { common . db a
20
;  if ~used .
21
;    display 'not used db: ',`.,13,10
22
;  end if }
23
;struc dw [a] { common . dw a
24
;  if ~used .
25
;    display 'not used dw: ',`.,13,10
26
;  end if }
27
;struc dd [a] { common . dd a
28
;  if ~used .
29
;    display 'not used dd: ',`.,13,10
30
;  end if }
31
;struc dp [a] { common . dp a
32
;  if ~used .
33
;    display 'not used dp: ',`.,13,10
34
;  end if }
35
;struc dq [a] { common . dq a
36
;  if ~used .
37
;    display 'not used dq: ',`.,13,10
38
;  end if }
39
;struc dt [a] { common . dt a
40
;  if ~used .
41
;    display 'not used dt: ',`.,13,10
42
;  end if }
41 mikedld 43
 
44
struc RECT {
45
  .left   dd ?
465 serge 46
  .top    dd ?
41 mikedld 47
  .right  dd ?
48
  .bottom dd ?
49
}
50
virtual at 0
51
 RECT RECT
52
end virtual
53
 
54
struc BOX {
55
  .left   dd ?
465 serge 56
  .top    dd ?
41 mikedld 57
  .width  dd ?
58
  .height dd ?
59
}
60
virtual at 0
61
 BOX BOX
62
end virtual
63
 
753 serge 64
struc DISPMODE {
65
  .width   rw 1
66
  .height  rw 1
67
  .bpp     rw 1
68
  .freq    rw 1
69
}
70
 
114 mikedld 71
; constants definition
465 serge 72
WSTATE_NORMAL    = 00000000b
114 mikedld 73
WSTATE_MAXIMIZED = 00000001b
74
WSTATE_MINIMIZED = 00000010b
75
WSTATE_ROLLEDUP  = 00000100b
76
 
1055 Galkov 77
WSTATE_REDRAW    = 00000001b
114 mikedld 78
WSTATE_WNDDRAWN  = 00000010b
79
 
80
WSTYLE_HASCAPTION     = 00010000b
81
WSTYLE_CLIENTRELATIVE = 00100000b
82
 
115 poddubny 83
struc TASKDATA
114 mikedld 84
{
85
  .event_mask  dd ?
1055 Galkov 86
  .pid         dd ?
87
               dw ?
115 poddubny 88
  .state       db ?
465 serge 89
               db ?
1055 Galkov 90
               dw ?
114 mikedld 91
  .wnd_number  db ?
1055 Galkov 92
               db ?
114 mikedld 93
  .mem_start   dd ?
94
  .counter_sum dd ?
95
  .counter_add dd ?
96
  .cpu_usage   dd ?
97
}
98
virtual at 0
115 poddubny 99
 TASKDATA TASKDATA
114 mikedld 100
end virtual
1362 mikedld 101
 
102
TSTATE_RUNNING        = 0
103
TSTATE_RUN_SUSPENDED  = 1
104
TSTATE_WAIT_SUSPENDED = 2
105
TSTATE_ZOMBIE         = 3
106
TSTATE_TERMINATING    = 4
107
TSTATE_WAITING        = 5
108
TSTATE_FREE           = 9
114 mikedld 109
 
110
; structures definition
111
struc WDATA {
1055 Galkov 112
  .box             BOX
113
  .cl_workarea     dd ?
114
  .cl_titlebar     dd ?
115
  .cl_frames       dd ?
116
  .reserved        db ?
117
  .fl_wstate       db ?
118
  .fl_wdrawn       db ?
119
  .fl_redraw       db ?
1362 mikedld 120
  .sizeof:
114 mikedld 121
}
122
virtual at 0
123
 WDATA WDATA
124
end virtual
1362 mikedld 125
label WDATA.fl_wstyle byte at WDATA.cl_workarea + 3
114 mikedld 126
 
127
struc APPDATA
128
{
1055 Galkov 129
  .app_name        db 11  dup(?)
130
                   db 5   dup(?)
164 serge 131
 
465 serge 132
  .fpu_state       dd ?            ;+16
1055 Galkov 133
  .ev_count_       dd ? ;unused    ;+20
1074 Galkov 134
  .exc_handler     dd ?            ;+24
135
  .except_mask     dd ?            ;+28
465 serge 136
  .pl0_stack       dd ? ;unused    ;+32
137
  .heap_base       dd ?            ;+36
138
  .heap_top        dd ?            ;+40
139
  .cursor          dd ?            ;+44
140
  .fd_ev           dd ?            ;+48
141
  .bk_ev           dd ?            ;+52
142
  .fd_obj          dd ?            ;+56
143
  .bk_obj          dd ?            ;+60
144
  .saved_esp       dd ?            ;+64
145
  .io_map          rd 2            ;+68
146
  .dbg_state       dd ?            ;+76
521 diamond 147
  .cur_dir         dd ?            ;+80
531 diamond 148
  .wait_timeout    dd ?            ;+84
709 diamond 149
  .saved_esp0      dd ?            ;+88
1055 Galkov 150
  .wait_begin      dd ?            ;+92   +++
151
  .wait_test       dd ?            ;+96   +++
152
  .wait_param      dd ?            ;+100  +++
1220 serge 153
  .tls_base        dd ?            ;+104
1311 diamond 154
  .dlls_list_ptr   dd ?            ;+108
155
                   db 16 dup(?)    ;+112
164 serge 156
 
465 serge 157
  .wnd_shape       dd ?            ;+128
158
  .wnd_shape_scale dd ?            ;+132
159
                   dd ?            ;+136
160
  .mem_size        dd ?            ;+140
1055 Galkov 161
  .saved_box       BOX
162
  .ipc_start       dd ?
163
  .ipc_size        dd ?
164
  .event_mask      dd ?
114 mikedld 165
  .debugger_slot   dd ?
1055 Galkov 166
                   dd ?
114 mikedld 167
  .keyboard_mode   db ?
1055 Galkov 168
                   db 3   dup(?)
169
  .dir_table       dd ?
114 mikedld 170
  .dbg_event_mem   dd ?
171
  .dbg_regs:
172
  .dbg_regs.dr0    dd ?
173
  .dbg_regs.dr1    dd ?
174
  .dbg_regs.dr2    dd ?
175
  .dbg_regs.dr3    dd ?
176
  .dbg_regs.dr7    dd ?
1055 Galkov 177
  .wnd_caption     dd ?
114 mikedld 178
  .wnd_clientbox   BOX
179
}
180
virtual at 0
181
 APPDATA APPDATA
182
end virtual
183
 
41 mikedld 184
;// mike.dld, 2006-29-01 ]
185
 
186
 
1 ha 187
; Core functions
114 mikedld 188
include "core/sync.inc"     ; macros for synhronization objects
1 ha 189
include "core/sys32.inc"    ; process management
190
include "core/sched.inc"    ; process scheduling
191
include "core/syscall.inc"  ; system call
465 serge 192
include "core/fpu.inc"      ; all fpu/sse support
164 serge 193
include "core/memory.inc"
214 serge 194
include "core/heap.inc"     ; kernel and app heap
276 serge 195
include "core/malloc.inc"   ; small kernel heap
164 serge 196
include "core/taskman.inc"
197
include "core/dll.inc"
659 serge 198
include "core/peload.inc"   ;
164 serge 199
include "core/exports.inc"
519 serge 200
include "core/string.inc"
709 diamond 201
include "core/v86.inc"      ; virtual-8086 manager
1 ha 202
 
203
; GUI stuff
204
include "gui/window.inc"
205
include "gui/event.inc"
206
include "gui/font.inc"
207
include "gui/button.inc"
208
 
209
; shutdown
210
 
211
; file system
212
 
465 serge 213
include "fs/fs.inc"       ; syscall
214
include "fs/fat32.inc"    ; read / write for fat32 filesystem
215
include "fs/ntfs.inc"     ; read / write for ntfs filesystem
216
include "fs/fat12.inc"    ; read / write for fat12 filesystem
70 mario79 217
include "blkdev/rd.inc"   ; ramdisk read /write
73 diamond 218
include "fs/fs_lfn.inc"    ; syscall, version 2
87 mario79 219
include "fs/iso9660.inc"  ; read for iso9660 filesystem CD
1 ha 220
 
221
; sound
222
 
223
include "sound/playnote.inc" ; player Note for Speaker PC
224
 
225
; display
226
 
227
include "video/vesa12.inc"   ; Vesa 1.2 functions
228
include "video/vesa20.inc"   ; Vesa 2.0 functions
229
include "video/vga.inc"      ; VGA 16 color functions
221 serge 230
include "video/cursors.inc"  ; cursors functions
1 ha 231
 
232
; Network Interface & TCPIP Stack
233
 
234
include "network/stack.inc"
235
 
465 serge 236
;include "drivers/uart.inc"
237
 
238
 
1 ha 239
; Mouse pointer
240
 
241
include "gui/mouse.inc"
242
 
243
; Window skinning
244
 
245
include "gui/skincode.inc"
246
 
247
; Pci functions
248
 
249
include "bus/pci/pci32.inc"
250
 
251
; Floppy drive controller
252
 
253
include "blkdev/fdc.inc"
254
include "blkdev/flp_drv.inc"
255
 
580 mario79 256
; IDE cache
257
include "blkdev/ide_cache.inc"
258
 
160 diamond 259
; HD drive controller
260
include "blkdev/hd_drv.inc"
261
 
1 ha 262
; CD drive controller
263
 
264
include "blkdev/cdrom.inc"
87 mario79 265
include "blkdev/cd_drv.inc"
1 ha 266
 
267
; Character devices
268
 
269
include "hid/keyboard.inc"
33 mario79 270
include "hid/mousedrv.inc"
1 ha 271
 
272
; setting date,time,clock and alarm-clock
273
 
274
include "hid/set_dtc.inc"
275
 
276
;% -include
488 spraid 277
 
278
;parser file names
279
include "fs/parse_fn.inc"
280
 
281
; work with conf lib
282
include "core/conf_lib.inc"
283
 
284
; load external lib
285
include "core/ext_lib.inc"
286
 
287
; list of external functions
530 mikedld 288
include "imports.inc"