+FSCTL_DISMOUNT_VOLUME define
[reactos.git] / ChangeLog
1 2003-04-28  Casper S. Hornstrup  <chorns@users.sourceforge.net>
2
3         * Makefile (DLLS): Add epsapi, psapi and wsock32.
4         * lib/ntdll/ldr/utils.c (LdrPerformRelocations): Handle the case where a
5         relocation crosses a page boundary.
6         (LdrFixupImports): Use image load address in calculatation of import
7         address list.
8
9 2003-04-28  Casper S. Hornstrup  <chorns@users.sourceforge.net>
10
11         * lib/fslib/vfatlib/vfatlib.h: New file.
12         * subsys/system/usetup/format.c: Ditto.
13         * subsys/system/usetup/format.h: Ditto.
14         * lib/fslib/vfatlib/vfatlib.c (GetShiftCount): Define.
15         (VfatWriteBootSector, VfatWriteFsInfo, VfatWriteFAT,
16         VfatWriteRootDirectory): New function.
17         (VfatFormat): Implement.
18         * subsys/system/usetup/bootsup.c: (InstallFat32BootCodeToFile): Use
19         0x0000 as marker to disable backup boot sector.
20         (InstallFat32BootCodeToDisk): Add lower 8-bit to BackupBootSector.
21         Also treat 0x0000 as no backup boot sector is available.
22         * subsys/system/usetup/makefile (TARGET_SDKLIBS): Define.
23         (TARGET_OBJECTS): Add format.o.
24         * subsys/system/usetup/partlist.c (AddPartitionList): Initialize
25         PartNumber field.
26         (GetSelectedPartition): Set PartEntryNumber correctly.
27         (CreateSelectedPartition): Write partition information to disk.
28         (DeleteSelectedPartition): New function.
29         * subsys/system/usetup/partlist.h (PARTDATA): Add field CreatePartition.
30         (DeleteSelectedPartition): Prototype.
31         * subsys/system/usetup/usetup.c (ConfirmDeletePartition): New function.
32         (SelectPartitionPage): Support deletion of partition.
33         (FormatPartitionPage): Support formatting of partition.
34
35 2003-04-27  Casper S. Hornstrup  <chorns@users.sourceforge.net>
36
37         * tools/helper.mk (TARGET_ASFLAGS): Add -march and define MK_ARCH_ID.
38         * lib/ntdll/makefile (TARGET_ASFLAGS): Define as
39         "-I $(PATH_TO_TOP)/include".
40         (TARGET_OBJECTS): Add ldr/entry.o.
41         * lib/ntdll/ldr/startup.c: Move inline assembly code...
42         * lib/ntdll/ldr/entry.S: ...here. New file.
43
44 2003-04-27  Casper S. Hornstrup  <chorns@users.sourceforge.net>
45
46         * include/kernel32/kernel32.h (assert): Define.
47         * tools/mkhive/.cvsignore: New file.
48
49 2003-04-18  Casper S. Hornstrup  <chorns@users.sourceforge.net>
50
51         * subsys/system/usetup/partlist.c (AddPartitionList): Create
52         unpartitioned areas.
53         (CreatePartitionListNoGUI): Save disk geometry.
54         (PrintDiskData): Do not print hidden partition list entries.
55         (ScrollDownPartitionList, ScrollUpPartitionList): Skip hidden partition
56         list entries.
57         (GetActiveBootPartition): Use CurrentDisk as index.
58         (CreateSelectedPartition): New function.
59         * subsys/system/usetup/partlist.h (PARTDATA): Add field NewPartSize.
60         (PARTENTRY): Add fields StartingOffset and HidePartEntry.
61         (DISKENTRY): Add fields Cylinders, TracksPerCylinder, SectorsPerTrack,
62         and BytesPerSector;
63         (CreateSelectedPartition): Add Prototype.
64         * subsys/system/usetup/usetup.c (PAGE_NUMBER): Add CREATE_PARTITION_PAGE
65         and FORMAT_PARTITION_PAGE
66         (CurrentPartitionList, CurrentFileSystemList): New globals.
67         (SelectPartitionPage): Set CurrentPartitionList.
68         (PARTITION_SIZE_INPUT_FIELD_LENGTH): Define as 6.
69         (DrawInputField, ShowPartitionSizeInputBox, CreatePartitionPage,
70         CreateFileSystemList, DestroyFileSystemList, DrawFileSystemList,
71         ScrollDownFileSystemList, ScrollUpFileSystemList, FormatPartitionPage):
72         New functions.
73         (SelectFileSystemPage): Draw partition screen.
74         (CheckFileSystemPage): Handle CREATE_PARTITION_PAGE and
75         FORMAT_PARTITION_PAGE.
76         * subsys/system/usetup/usetup.h (FILE_SYSTEM, FILE_SYSTEM_LIST): Add enums.
77
78 2003-04-17  Casper S. Hornstrup  <chorns@users.sourceforge.net>
79
80         * tools/mkhive/infcache.c (InfpCacheFindSection, InfpCacheFindKeyLine,
81         InfFindFirstLine, InfFindFirstMatchLine, InfFindNextMatchLine,
82         InfGetLineCount): Change call to stricmp() to strcasecmp().
83         * tools/mkhive/reginf.c (GetRootKey): Ditto.
84         * tools/mkhive/registry.c (RegSetValue, RegQueryValue): Ditto.
85
86 2003-04-13  Casper S. Hornstrup  <chorns@users.sourceforge.net>
87
88         * ntoskrnl/kd/gdbstub.c (KdEnterDebuggerException): Fix signed/unsigned
89         comparison warning.
90         * ntoskrnl/ke/i386/exp.c (KiKernelTrapHandler): Ditto.
91         * ntoskrnl/ke/i386/usertrap.c (KiUserTrapHandler): Ditto.
92         * tools/helper.mk: Do not install static libraries.
93
94 2003-04-13  Casper S. Hornstrup  <chorns@users.sourceforge.net>
95
96         * tools/Makefile: Fix rule for mkflpimg.
97
98 2003-04-12  Casper S. Hornstrup  <chorns@users.sourceforge.net>
99
100         * tools/cdmake/Makefile: Use HOST_CC.
101         * tools/cdmake/cdmake.c (MAX_PATH, DIR_SEPARATOR_CHAR,
102         DIR_SEPARATOR_STRING): Define.
103         (directory_record): Add fields name_on_cd and extension_on_cd.
104         (error_exit): Make a macro. Avoid using vfprintf and fprintf.
105         (write_directory_record, new_directory_record, compare_directory_order,
106         pass): Use name_on_cd and extension_on_cd.
107         (make_directory_records, get_file_specifications): Use DIR_SEPARATOR_CHAR.
108         (new_directory_record, make_directory_records): Linux implementations.
109         (main): Use DIR_SEPARATOR_CHAR.
110
111 2003-04-06  Casper S. Hornstrup  <chorns@users.sourceforge.net>
112
113         * lib/freetype/.cvsignore: Ignore nul.
114
115 2003-04-06  Casper S. Hornstrup  <chorns@users.sourceforge.net>
116
117         * drivers/storage/atapi/atapi.c (AtapiReadWrite): Expect an interrupt a
118         bit sooner.
119         * hal/halx86/isa.c (HalpGetIsaInterruptVector): Compute vector for MP.
120         * hal/halx86/pci.c (HalpGetPciInterruptVector): Ditto.
121         * hal/halx86/sysbus.c (HalpGetSystemInterruptVector): Ditto.
122         * hal/halx86/mp.c (AssignIrqVector): Rewrite.
123         (MpsTimerHandler): Disable for now.
124         (MpsSpuriousHandler): Do not acknowledge interrupt.
125         (HalAllProcessorsStarted): Only boot 1 CPU for now.
126         (RescheduleDpcRoutine): New function.
127         (RescheduleDpc): New variable.
128         (HalpInitMPS): Initialize RescheduleDpc. Fix bug in call to memset.
129         * hal/halx86/mpsirql.c: Rewrite.
130         * hal/halx86/include/mps.h (VECTOR2IRQ, IRQ2VECTOR, VECTOR2IRQL,
131         IRQL2VECTOR): New macros.
132         * ntoskrnl/ntoskrnl.def: Add KeRescheduleThread@0.
133         * ntoskrnl/ntoskrnl.edf: Ditto.
134         * ntoskrnl/include/internal/ke.h (KeRescheduleThread): Prototype.
135         * ntoskrnl/ke/kthread.c (KeRescheduleThread): New function.
136         * ntoskrnl/ke/i386/exp.c (KeInitExceptions): Remove unneeded call to
137         set_trap_gate().
138         * ntoskrnl/ke/i386/irq.c (VECTOR2IRQ, IRQ2VECTOR, VECTOR2IRQL): Correct.
139         (IRQ_BASE): Define as FIRST_DEVICE_VECTOR.
140         (NR_IRQS): Define using IRQ_BASE.
141         (KeInitInterrupts): Use IRQ_BASE.
142         (KiInterruptDispatch2): Rewrite.
143         (KiInterruptDispatch): Ditto.
144         (KeConnectInterrupt): Pass Vector to HalEnableSystemInterrupt() for MP.
145         (KeDisconnectInterrupt): Pass Vector to HalDisableSystemInterrupt() for MP.
146         * ntoskrnl/ke/i386/trap.s (_KiTrapProlog): Change 0x124 to KPCR_CURRENT_THREAD.
147
148 2003-04-06  Casper S. Hornstrup  <chorns@users.sourceforge.net>
149
150         * Makefile: Add format.
151         * include/fslib/vfatlib.h (VfatFormat): Prototype.
152         * lib/fmifs/format.c (VfatFormat): Add stub.
153         * lib/fmifs/makefile (TARGET_LIBS): Add vfatlib.a.
154         * lib/fslib/vfatlib/vfatlib.c (VfatFormat): Add stub.
155         * tools/helper.mk: Do not install .sym files for static libraries.
156         * subsys/system/format: New directory.
157         * subsys/system/format/makefile: New file.
158         * subsys/system/format/format.c: Ditto.
159
160 2003-04-05  Casper S. Hornstrup  <chorns@users.sourceforge.net>
161
162         * include/fslib: New directory.
163         * lib/fslib: Ditto.
164         * lib/fslib/vfatlib: Ditto.
165         * include/fslib/vfatlib.h: New file.
166         * lib/fslib/vfatlib/.cvsignore: Ditto.
167         * lib/fslib/vfatlib/Makefile: Ditto.
168         * lib/fslib/vfatlib/vfatlib.c: Ditto.
169         * Makefile: Support file system libraries
170         * lib/zlib/Makefile: Remove nostrip target.
171         * tools/helper.mk: Add nostrip target.
172
173 2003-04-05  Casper S. Hornstrup  <chorns@users.sourceforge.net>
174
175         * tools/.cvsignore: Ignore rline.
176
177 2003-04-05  Casper S. Hornstrup  <chorns@users.sourceforge.net>
178
179         * bootcd.bat: Install dosmbr.bin.
180         * drivers/storage/disk/disk.c (DiskClassDeviceControl): Pass physical
181         device object to IoWritePartitionTable().
182         * ntoskrnl/io/xhaldrv.c (xHalReadMBR): New function.
183         (xHalWriteMBR): Ditto.
184         (xHalExamineMBR): Use xHalReadMBR() to read MBR.
185         (xHalIoWritePartitionTable): Partial implement.
186         * subsys/system/usetup/bootsup.c (InstallMBRBootCodeToDisk): New function.
187         * subsys/system/usetup/bootsup.h (InstallMBRBootCodeToDisk): Prototype.
188         * subsys/system/usetup/partlist.c (CreatePartitionListNoGUI): New function.
189         (CreatePartitionList): Use CreatePartitionListNoGUI() to create partition
190         list.
191         (GetPartitionInformation): New function.
192         (MarkPartitionActive): Ditto.
193         * subsys/system/usetup/partlist.h (MarkPartitionActive): Prototype.
194         * subsys/system/usetup/usetup.c (SelectPartitionPage): Make SystemRootPath
195         point to the selected partition if no partitions are active.
196         (BootLoaderPage): If no partitions are active, then install a DOS MBR and
197         mark the selected partition active.
198
199 2003-04-05  Casper S. Hornstrup  <chorns@users.sourceforge.net>
200
201         * Makefile: Add bootcd target.
202         (BOOTCD_INSTALL): Set for bootcd install.
203         * rules.mak (TOPDIR): Define on windows.
204         (BOOTCD_DIR): Define.
205         (RLINE): Define.
206         * apps/tests/lpc/makefile: Handle BOOTCD_INSTALL.
207         * apps/tests/mstest/Makefile: Ditto.
208         * apps/tests/nptest/Makefile: Ditto.
209         * apps/tests/shm/makefile: Ditto.
210         * ntoskrnl/Makefile: Handle BOOTCD_INSTALL. Add bootcd target.
211         * drivers/dd/vga/makefile: Add bootcd target.
212         * drivers/dd/blue/makefile (TARGET_BOOTSTRAP): Define as yes.
213         * drivers/dd/floppy/Makefile: Ditto.
214         * drivers/fs/cdfs/makefile: Ditto.
215         * drivers/fs/ntfs/makefile: Ditto.
216         * drivers/fs/vfat/makefile: Ditto.
217         * drivers/input/keyboard/makefile: Ditto.
218         * drivers/storage/atapi/makefile: Ditto.
219         * drivers/storage/cdrom/makefile: Ditto.
220         * drivers/storage/class2/makefile: Ditto.
221         * drivers/storage/disk/makefile: Ditto.
222         * drivers/storage/scsiport/makefile: Ditto.
223         * hal/halx86/Makefile: Ditto.
224         * lib/ntdll/makefile: Ditto.
225         * subsys/system/usetup/makefile (TARGET_BOOTSTRAP): Define as yes.
226         (TARGET_BOOTSTRAP_NAME): Define as smss.exe.
227         * tools/Makefile: Add rline executable.
228         * tools/helper.mk: Support bootcd targets.
229         * tools/rline.c: New file.
230
231 2003-04-04  Casper S. Hornstrup  <chorns@users.sourceforge.net>
232
233         * lib/freetype/builds/compiler/gcc.mk (CC): Comment out; use CC from
234         rules.mak instead.
235         * lib/freetype/README.ROS: Note this in porting guide.
236
237 2003-03-29  Casper S. Hornstrup  <chorns@users.sourceforge.net>
238
239         * ntoskrnl/ex/sysinfo.c (SystemProcessInformation): Fix warning.
240
241 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
242
243         * include/ntos/rtltypes.h (PRTL_BASE_PROCESS_START_ROUTINE): Define.
244         * lib/kernel32/process/create.c (RtlBaseProcessStartRoutine): Import.
245         (KlCreateFirstThread): Support images with native subsystem ID.
246         * lib/ntdll/def/ntdll.def (RtlBaseProcessStartRoutine): Export.
247         * lib/ntdll/def/ntdll.edf (RtlBaseProcessStartRoutine): Ditto.
248         * lib/ntdll/rtl/exception.c (RtlBaseProcessStart): Forward declare.
249         (RtlBaseProcessStartRoutine, RtlBaseProcessStart): Add.
250
251 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
252
253         * include/defines.h (VS_FFI_SIGNATURE, VS_FFI_STRUCVERSION): Define.
254
255 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
256
257         * ntoskrnl/ke/i386/exp.c (KiKernelTrapHandler): Use exception code
258         STATUS_ACCESS_VIOLATION for exception 14.
259
260 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
261
262         * ntoskrnl/fs/util.c (FsRtlGetFileSize): Implement.
263
264 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
265
266         * lib/ntdll/rtl/nls.c (RtlCustomCPToUnicodeN, RtlMultiByteToUnicodeN,
267         RtlOemToUnicodeN, RtlUnicodeToCustomCPN, RtlUnicodeToMultiByteN,
268         RtlUnicodeToMultiByteSize, RtlUnicodeToOemN,
269         RtlUpcaseUnicodeToCustomCPN, RtlUpcaseUnicodeToMultiByteN,
270         RtlUpcaseUnicodeToOemN): Assert when unimplemented code is reached.
271
272 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
273
274         * include/ntos/zwtypes.h (FILE_BASIC_INFORMATION): Use LARGE_INTEGER,
275         not TIME type for time fields.
276         * lib/kernel32/file/copy.c (SetLastWriteTime): Adjust for new type.
277         (CopyFileExW): Ditto.
278
279 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
280
281         * include/ntos/types.h (FALSE): Protect with #ifndef FALSE.
282         (TRUE): Protect with #ifndef TRUE.
283
284 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
285
286         * include/napi/i386/segment.h (put_user, get_user,
287         bad_user_access_length, __segment_dummy, __sd, __const_sd, __put_user,
288         __get_user, __generic_memcpy_tofs, __constant_memcpy_tofs, COMMON,
289         __generic_memcpy_fromfs, __constant_memcpy_fromfs, memcpy_fromfs,
290         memcpy_tofs, get_fs_byte, get_fs_word, get_fs_long, put_fs_byte,
291         put_fs_word, put_fs_long, get_user_word, get_user_byte, get_user_long,
292         put_user_byte, put_user_word, put_user_long, get_fs, get_ds, set_fs,
293         set_ds): Remove.
294
295 2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
296
297         * include/ddk/pstypes.h (TLS_OUT_OF_INDEXES): Define.
298
299 2003-02-18  Casper S. Hornstrup  <chorns@users.sourceforge.net>
300
301         * ntoskrnl/cc/view.c (CcRosFlushDirtyPages): Treat a write attempt with
302         a return value of STATUS_END_OF_FILE as a successful write.
303         * ntoskrnl/cc/copy.c (WriteCacheSegment): Ditto.
304
305 2003-02-18  Casper S. Hornstrup  <chorns@users.sourceforge.net>
306
307         * ntoskrnl/cm/regfile.c (CmiRemoveSubKey): Kill warnings.
308         (CmiMergeFree): Ditto.
309
310 2003-02-10  Casper S. Hornstrup  <chorns@users.sourceforge.net>
311
312         * include/structs.h (OSVERSIONINFOEXA): Expand definition of
313         OSVERSIONINFOA.
314         (OSVERSIONINFOEXW): Expand definition of OSVERSIONINFOW.
315         * lib/msafd/misc/helpers.c (LocateHelperDLL): Cast AddressFamily,
316         SocketType, and Protocol to INT.
317         * lib/ws2_32/misc/catalog.c (LocateProvider): Ditto.
318
319 2003-01-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>
320
321         * ntoskrnl/dbg/profile.c (KdbProfilerThreadMain): Make STDCALL.
322
323 2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
324
325         * drivers/net/tcpip/makefile (TCP_OBJECTS): Add transport/tcp/tcpcore.o,
326         transport/tcp/tcp_input.o, transport/tcp/tcp_ipv4.o,
327         transport/tcp/tcp_output.o, and transport/tcp/tcp_timer.o.
328         * drivers/net/tcpip/transport/tcp/tcp.c (TCPStartup): Call tcp_init().
329         * drivers/net/tcpip/include/linux.h: New file.
330         * drivers/net/tcpip/include/tcpcore.h: Ditto.
331         * drivers/net/tcpip/include/tcpdef.h: Ditto.
332         * drivers/net/tcpip/transport/tcp/tcp_input.c: Ditto.
333         * drivers/net/tcpip/transport/tcp/tcp_ipv4.c: Ditto.
334         * drivers/net/tcpip/transport/tcp/tcp_output.c: Ditto.
335         * drivers/net/tcpip/transport/tcp/tcp_timer.c: Ditto.
336         * drivers/net/tcpip/transport/tcp/tcpcore.c: Ditto.
337
338 2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
339
340         * lib/kernel32/k32.h: New file.
341         * lib/kernel32/makefile (TARGET_CFLAGS): Add -I./.
342         (TARGET_PCH): Set to k32.h.
343         * lib/kernel32/except/except.c: Use <k32.h>.
344         * lib/kernel32/file/backup.c: Ditto.
345         * lib/kernel32/file/cnotify.c: Ditto.
346         * lib/kernel32/file/copy.c: Ditto.
347         * lib/kernel32/file/create.c: Ditto.
348         * lib/kernel32/file/curdir.c: Ditto.
349         * lib/kernel32/file/delete.c: Ditto.
350         * lib/kernel32/file/deviceio.c: Ditto.
351         * lib/kernel32/file/dir.c: Ditto.
352         * lib/kernel32/file/dosdev.c: Ditto.
353         * lib/kernel32/file/file.c: Ditto.
354         * lib/kernel32/file/find.c: Ditto.
355         * lib/kernel32/file/iocompl.c: Ditto.
356         * lib/kernel32/file/lfile.c: Ditto.
357         * lib/kernel32/file/lock.c: Ditto.
358         * lib/kernel32/file/mailslot.c: Ditto.
359         * lib/kernel32/file/move.c: Ditto.
360         * lib/kernel32/file/npipe.c: Ditto.
361         * lib/kernel32/file/pipe.c: Ditto.
362         * lib/kernel32/file/rw.c: Ditto.
363         * lib/kernel32/file/tape.c: Ditto.
364         * lib/kernel32/file/volume.c: Ditto.
365         * lib/kernel32/mem/global.c: Ditto.
366         * lib/kernel32/mem/heap.c: Ditto.
367         * lib/kernel32/mem/isbad.c: Ditto.
368         * lib/kernel32/mem/local.c: Ditto.
369         * lib/kernel32/mem/procmem.c: Ditto.
370         * lib/kernel32/mem/section.c: Ditto.
371         * lib/kernel32/mem/virtual.c: Ditto.
372         * lib/kernel32/misc/atom.c: Ditto.
373         * lib/kernel32/misc/comm.c: Ditto.
374         * lib/kernel32/misc/console.c: Ditto.
375         * lib/kernel32/misc/debug.c: Ditto.
376         * lib/kernel32/misc/dllmain.c: Ditto.
377         * lib/kernel32/misc/env.c: Ditto.
378         * lib/kernel32/misc/error.c: Ditto.
379         * lib/kernel32/misc/handle.c: Ditto.
380         * lib/kernel32/misc/ldr.c: Ditto.
381         * lib/kernel32/misc/profile.c: Ditto.
382         * lib/kernel32/misc/res.c: Ditto.
383         * lib/kernel32/misc/stubs.c: Ditto.
384         * lib/kernel32/misc/sysinfo.c: Ditto.
385         * lib/kernel32/misc/time.c: Ditto.
386         * lib/kernel32/process/cmdline.c: Ditto.
387         * lib/kernel32/process/create.c: Ditto.
388         * lib/kernel32/process/proc.c: Ditto.
389         * lib/kernel32/process/session.c: Ditto.
390         * lib/kernel32/string/lstring.c: Ditto.
391         * lib/kernel32/synch/critical.c: Ditto.
392         * lib/kernel32/synch/event.c: Ditto.
393         * lib/kernel32/synch/intrlck.c: Ditto.
394         * lib/kernel32/synch/mutex.c: Ditto.
395         * lib/kernel32/synch/sem.c: Ditto.
396         * lib/kernel32/synch/timer.c: Ditto.
397         * lib/kernel32/synch/wait.c: Ditto.
398         * lib/kernel32/thread/fiber.c: Ditto.
399         * lib/kernel32/thread/thread.c: Ditto.
400         * lib/kernel32/thread/tls.c: Ditto.
401
402 2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
403
404         * apps/testsets/Makefile (TEST_SETS): Remove ldr.
405         * include/msvcrt/ctype.h (towupper): Make returntype wchar_t.
406
407 2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
408
409         * tools/rtouch.c: Include <sys/utime.h>, not <utime.h>.
410
411 2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
412
413         * tools/rtouch.c: New file.
414         * rules.mak (ROS_USE_PCH): Default to no.
415         (RTOUCH): Define.
416         * tools/Makefile: Add rtouch utility.
417         * tools/helper.mk: Support precompiled headers.
418
419 2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
420
421         * ntoskrnl/dbg/profile.c: New file.
422         * ntoskrnl/Makefile (OBJECTS_KDBG): Add dbg/profile.o.
423         * ntoskrnl/dbg/kdb.h: Define NTOS_MODE_KERNEL. Include <ntos.h>.
424         (LdrGetAddressInformation, KdbInitProfiling, KdbInitProfiling2,
425         KdbDisableProfiling, KdbEnableProfiling, KdbProfileInterrupt) Prototype.
426         * ntoskrnl/kd/kdebug.c (KdInitSystem): Add /PROFILE option if KDBG=1.
427         * ntoskrnl/ke/main.c (ExpInitializeExecutive): Call KdbInitProfiling2()
428         if KDBG=1.
429         * ntoskrnl/ke/i386/irq.c: Include <../dbg/kdb.h> if KDBG=1.
430         (KiInterruptDispatch): Call KdbProfileInterrupt() on timer interrupt
431         if KDBG=1.
432
433 2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
434
435         * drivers/fs/vfat/create.c (VfatSupersedeFile): Only notify cache manager
436         about change in file size if caching is initiated on the file stream.
437
438 2003-01-11  Casper S. Hornstrup  <chorns@users.sourceforge.net>
439
440         * boot.bat: Use DOS end-of-line characters.
441
442 2003-01-02  Casper S. Hornstrup  <chorns@users.sourceforge.net>
443
444         * ntoskrnl/ke/timer.c (KeExpireTimers): Avoid signed/unsigned comparison
445         warning.
446         * lib/user32/controls/scrollbar.c (SCROLL_DrawScrollBar): Put a statement
447         at end.
448
449 2002-12-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
450
451         * drivers/fs/vfat/cleanup.c (VfatCleanupFile): Only uninitialize caching
452         when initialized.
453         * drivers/fs/vfat/fcb.c (vfatReleaseFCB): Ditto.
454         * lib/kernel32/mem/section.c (CreateFileMappingW): Pass NULL as
455         MaximumSize to NtCreateSection if dwMaximumSizeHigh and dwMaximumSizeLow
456         are both 0.
457         * ntoskrnl/cc/pin.c (CcMapData): Assert if Bcb is NULL.
458         * ntoskrnl/cc/view.c (CcRosReleaseCacheSegment, CcRosLookupCacheSegment,
459         CcRosMarkDirtyCacheSegment, CcRosUnmapCacheSegment,
460         CcRosCreateCacheSegment, CcRosGetCacheSegmentChain,
461         CcRosGetCacheSegment, CcRosRequestCacheSegment, CcFlushCache,
462         CcRosDeleteFileCache, CcRosReferenceCache, CcRosDereferenceCache,
463         CcRosReleaseFileCache, CcGetFileObjectFromSectionPtrs): Ditto.
464         * ntoskrnl/mm/section.c (MiReadPage): Assert if Fcb->Bcb is NULL.
465         (MmCreateDataFileSection): Make sure caching is initialized for the file
466         stream.
467
468 2002-11-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>
469
470         * include/ddk/ldrtypes.h: Move ...
471         * include/ntos/ldrtypes.h: ... here.
472         * include/ddk/ntddk.h: Include ldrtypes.h at new location.
473
474 2002-11-13  Casper S. Hornstrup  <chorns@users.sourceforge.net>
475
476         * drivers/bus/acpi/ospm/osl.c (acpi_os_readable, acpi_os_writable):
477         Match prototypes.
478         * include/ascii.h (AbortSystemShutdownA): Correct prototype.
479         * include/debug.h (assert): Wrap in #ifndef assert.
480         * include/funcs.h (AbortSystemShutdown): Remove duplicate prototype.
481         * include/ddk/rtltypes.h: Move ...
482         * include/ntos/rtltypes.h: ... here.
483         * include/ddk/rtl.h: Move ...
484         * include/ntos/rtl.h: ... here.
485         * include/ddk/zwtypes.h: Move ...
486         * include/ntos/zwtypes.h: ... here.
487         * include/ddk/zw.h: Move ...
488         * include/ntos/zw.h: ... here.
489         | include/ddk/cmfuncs.h: Remove file; Move NtCreateKey to ntos/zw.h.
490         * include/ntos.h: #include ntos/rtltypes.h, ntos/rtl.h, ntos/zwtypes.h,
491         and ntos/zw.h.
492         * include/unicode.h: (AbortSystemShutdownW): Correct prototype.
493         * include/ddk/ntddk.h: Include headers at new location; Don't include
494         removed files.
495         * include/defines.h: Wrap definitions in w32api in #ifndef __USE_W32API.
496         * include/ntos/zwtypes.h: Ditto.
497         * include/napi/lpc.h: Ditto.
498         * include/napi/shared_data.h: Ditto.
499         * include/napi/teb.h: Ditto.
500         * include/napi/types.h: Ditto.
501         * include/ntdll/ldr.h: Ditto.
502         * include/ntdll/rtl.h: Ditto.
503         * include/ntos/console.h: Ditto.
504         * include/ntos/disk.h: Ditto.
505         * include/ntos/except.h: Ditto.
506         * include/ntos/file.h: Ditto.
507         * include/ntos/gditypes.h: Ditto.
508         * include/ntos/heap.h: Ditto.
509         * include/ntos/keyboard.h: Ditto.
510         * include/ntos/mm.h: Ditto.
511         * include/ntos/ntdef.h: Ditto.
512         * include/ntos/ps.h: Ditto.
513         * include/ntos/registry.h: Ditto.
514         * include/ntos/security.h: Ditto.
515         * include/ntos/synch.h: Ditto.
516         * include/ntos/time.h: Ditto.
517         * include/ntos/types.h: Ditto.
518         * include/ntos/port.h: Ditto.
519         * lib/advapi32/misc/shutdown.c (AbortSystemShutdownW,
520         AbortSystemShutdownA): Correct prototype.
521         * lib/advapi32/reg/reg.c: #include ntos.h.
522         * lib/advapi32/sec/misc.c: Ditto.
523         * lib/advapi32/sec/sid.c: Ditto.
524         * lib/advapi32/service/sctrl.c: Ditto.
525         * lib/advapi32/token/token.c: Ditto.
526         * lib/kernel32/misc/dllmain.c: Ditto.
527         * ntoskrnl/ex/napi.c: Ditto.
528         * ntoskrnl/rtl/i386/exception.c: Ditto.
529         * lib/advapi32/sec/ac.c: Ditto.
530         (FindFirstFreeAce, GetAce): Change PACE* to PACE_HEADER*.
531         * lib/advapi32/service/scm.c (EnumServicesStatusExA,
532         EnumServicesStatusExW, QueryServiceStatusEx): Correct prototype.
533         * lib/ntdll/rtl/ppb.c (RtlDestroyProcessParameters): Match prototype.
534         * ntoskrnl/dbg/errinfo.c (DbgGetErrorText): Use %08x, not %08lx.
535         * ntoskrnl/io/arcname.c (IoCreateSystemRootLink): Use %u, not %lu.
536         * ntoskrnl/ke/main.c (ExpInitializeExecutive): Ditto.
537         * (_main): Use %d, not %ld.
538         * ntoskrnl/include/internal/i386/ke.h: Add #pragma GCC system_header.
539         * include/ddk/ntdef.h (NTSYSAPI, NTAPI, NTKERNELAPI): Define to STDCALL;
540         Check if already defined.
541         * include/base.h (STDCALL, CDECL, CALLBACK, PASCAL): Move to ntos/types.h.
542
543 2002-11-13  Rick Gaiser  <RickG81@Wanadoo.nl>
544
545         * drivers/bus/isapnp/isapnp.c (FindNextReadPort): Increment Port before
546         checking wether port address is in NE2000 address space range and returning
547         port address value.
548
549 2002-11-10  Casper S. Hornstrup  <chorns@users.sourceforge.net>
550
551         * drivers/bus/acpi/include/acpi.h: Include platform/types.h.
552         * drivers/bus/acpi/include/actypes.h: (UINT8, BOOLEAN, UCHAR, UINT16,
553         INT32, UINT32, UINT64): Disable, use the OS defined types instead.
554         * drivers/bus/acpi/include/platform/types.h: Remove all types,
555         include ntos.h instead.
556         * drivers/bus/acpi/ospm/include/acpisys.h: Don't include
557         platform/types.h.
558
559 2002-11-10  Casper S. Hornstrup  <chorns@users.sourceforge.net>
560
561         * include/defines.h: Fix warnings when bulding with gcc 3.3.
562         * include/ddk/status.h: Ditto.
563         * include/freetype/internal/ftdebug.h: Ditto.
564         * include/net/ndis.h: Ditto.
565         * lib/msafd/misc/helpers.c: Ditto.
566         * lib/user32/windows/defwnd.c: Ditto.
567         * lib/user32/windows/window.c: Ditto.
568         * ntoskrnl/cm/ntfunc.c: Ditto.
569         * ntoskrnl/cm/regfile.c: Ditto.
570         * ntoskrnl/cm/regobj.c: Ditto.
571         * ntoskrnl/dbg/errinfo.c: Ditto.
572         * ntoskrnl/ex/hashtab.c: Ditto.
573         * ntoskrnl/include/internal/mm.h: Ditto.
574         * ntoskrnl/io/irp.c: Ditto.
575         * ntoskrnl/kd/gdbstub.c: Ditto.
576         * ntoskrnl/ke/queue.c: Ditto.
577         * ntoskrnl/ke/sem.c: Ditto.
578         * ntoskrnl/ldr/resource.c: Ditto.
579         * ntoskrnl/mm/balance.c: Ditto.
580         * ntoskrnl/mm/freelist.c: Ditto.
581         * ntoskrnl/mm/mdl.c: Ditto.
582         * ntoskrnl/mm/npool.c: Ditto.
583         * ntoskrnl/mm/section.c: Ditto.
584         * ntoskrnl/rtl/error.c: Ditto.
585         * ntoskrnl/rtl/mem.c: Ditto.
586         * ntoskrnl/rtl/string.c: Ditto.
587         * ntoskrnl/rtl/time.c: Ditto.
588         * ntoskrnl/rtl/unicode.c: Ditto.
589         * ntoskrnl/rtl/wstring.c: Ditto.
590         * ntoskrnl/rtl/i386/exception.c: Ditto.
591         * subsys/win32k/freetype/src/base/ftinit.c: Ditto.
592
593 2002-11-03  Casper S. Hornstrup  <chorns@users.sourceforge.net>
594
595         * apps/tests/lpc/lpcclt.c: Change LPC_MESSAGE_HEADER to LPC_MESSAGE.
596         * include/csrss/csrss.h: Ditto.
597         * include/lsass/lsass.h: Ditto.
598         * include/napi/dbg.h: Ditto.
599         * include/napi/lpc.h: Ditto.
600         * lib/kernel32/misc/console.c: Ditto.
601         * lib/ntdll/csr/lpc.c: Ditto.
602         * lib/ntdll/dbg/debug.c: Ditto.
603         * lib/secur32/lsa.c: Ditto.
604         * ntoskrnl/dbg/user.c: Ditto.
605         * ntoskrnl/include/internal/port.h: Ditto.
606         * ntoskrnl/lpc/connect.c: Ditto.
607         * ntoskrnl/lpc/reply.c: Ditto.
608         * ntoskrnl/ps/process.c: Ditto.
609         * subsys/csrss/api/conio.c: Ditto.
610         * subsys/csrss/api/process.c: Ditto.
611         * subsys/csrss/api/user.c: Ditto.
612
613 2002-10-26  Casper S. Hornstrup  <chorns@users.sourceforge.net>
614
615         * lib/msvcrt/except/seh.s: Fix end-of-line formatting.
616         * lib/ntdll/rtl/i386/exception.c: Ditto.
617         * lib/ntdll/rtl/i386/except.s: Ditto.
618         * ntoskrnl/rtl/i386/except.s: Ditto.
619         * ntoskrnl/rtl/i386/seh.s: Ditto.
620
621 2002-10-26  Casper S. Hornstrup  <chorns@users.sourceforge.net>
622
623         * lib/msvcrt/Makefile (OBJECTS_EXCEPT): Add except/seh.o; Remove
624         except/exhand3.o.
625         * lib/msvcrt/except/exhand2.c (MsvcrtDebug): New function.
626         * lib/msvcrt/except/unwind.c (PEXCEPTION_FRAME): Remove.
627         (_global_unwind2): Correct prototype.
628         * lib/ntdll/makefile (RTL_I386_OBJECTS, ARCH_OBJECTS): New groups.
629         (TARGET_OBJECTS): Add ARCH_OBJECTS group.
630         * lib/ntdll/rtl/exception.c (KiUserExceptionDispatcher): Set
631         NumberParameters in exception record.
632         (RtlRaiseStatus): Remove.
633         * ntoskrnl/Makefile (OBJECTS_RTL): Remove rtl/seh.o.
634         (OBJECTS_RTL_I386): Add rtl/i386/except.o, rtl/i386/exception.o, and
635         rtl/i386/seh.o.
636         * ntoskrnl/ke/catch.c (RtlpExecuteHandlerForException,
637         RtlpDumpExceptionRegistrations, RtlpDispatchException,
638         RtlpExecuteHandler, RtlpExceptionHandler, RtlpUnwindHandler,
639         RtlpExecuteHandlerForException, RtlpExecuteHandlerForUnwind,
640         RtlUnwind): Remove.
641         (RtlpDispatchException): Add prototype.
642         * ntoskrnl/ke/i386/usertrap.c (ExceptionTypeStrings): Remove.
643         * ntoskrnl/ps/create.c (PsCreateTeb): Mark end of exception
644         registration list.
645         * tools/helper.mk (TARGET_ASFLAGS): Add -g if DBG = 1.
646         * lib/msvcrt/except/exhand3.c: Remove.
647         * ntoskrnl/rtl/seh.c: Ditto.
648         * lib/msvcrt/except/seh.s: New file.
649         * lib/ntdll/rtl/i386/except.s: Ditto.
650         * lib/ntdll/rtl/i386/exception.c: Ditto.
651         * ntoskrnl/rtl/i386/except.s: Ditto.
652         * ntoskrnl/rtl/i386/exception.c: Ditto.
653         * ntoskrnl/rtl/i386/seh.s: Ditto.
654
655 2002-10-26  Casper S. Hornstrup  <chorns@users.sourceforge.net>
656
657         * lib/kernel32/process/create.c (_except_handler): New function.
658         (BaseProcessStart): Ditto.
659         (KlCreateFirstThread): Return INVALID_HANDLE_VALUE on error; Call
660         BaseProcessStart() before process entry point.
661         * lib/kernel32/thread/thread.c (_except_handler): New function.
662         (ThreadStartup): Protect thread using SEH constructs.
663
664 2002-10-26  Casper S. Hornstrup  <chorns@users.sourceforge.net>
665
666         * include/ddk/zw.h (NtProcessStartup): Use standard calling convention.
667         * subsys/csrss/csrss.c (NtProcessStartup): Ditto.
668         * subsys/smss/smss.c (NtProcessStartup): Ditto.
669         * subsys/system/autochk/autochk.c (NtProcessStartup): Ditto.
670         * subsys/system/usetup/usetup.c (NtProcessStartup): Ditto.
671
672 2002-10-25  Casper S. Hornstrup  <chorns@users.sourceforge.net>
673
674         * apps/tests/tokentest/tokentest.c (ROS_ACE_HEADER): Move field
675         AccessMask ...
676         (ROS_ACE): ... here.
677         (DisplayDacl): Make pAce an ROS_ACE*; Use new path for AceType; Use
678         sizeof(ACE) instead of sizeof(ACE_HEADER).
679         * include/ntos/security.h (ACE_HEADER): Move field AccessMask ...
680         (ACE): ... here.
681         * lib/ntdll/rtl/acl.c: Use new path for AccessMask.
682         * ntoskrnl/se/semgr.c: Ditto.
683         * ntoskrnl/se/acl.c (SepInitDACLs): Use new path for AccessMask; Use
684         sizeof(ACE) instead of sizeof(ACE_HEADER).
685         * ntoskrnl/se/token.c (SepCreateSystemProcessToken): Use sizeof(ACE)
686         instead of sizeof(ACE_HEADER).
687
688 2002-10-20  Casper S. Hornstrup  <chorns@users.sourceforge.net>
689
690         * include/napi/teb.h (RTL_USER_PROCESS_PARAMETERS): Use field names
691         as described in Windows NT/2000 Native API Reference.
692         * lib/kernel32/file/file.c: Use new field names.
693         * lib/kernel32/misc/console.c: Ditto.
694         * lib/kernel32/process/create.c: Ditto.
695         * lib/kernel32/process/proc.c: Ditto.
696         * lib/ntdll/rtl/path.c: Ditto.
697         * lib/ntdll/rtl/ppb.c: Ditto.
698         * lib/ntdll/rtl/process.c: Ditto.
699
700 2002-10-19  Casper S. Hornstrup  <chorns@users.sourceforge.net>
701
702         * include/ntos.h: Include relevant files.
703         * include/internal/ke.h: Include files relative to
704         ntoskrnl/include.
705         * include/internal/arch/ke.h: Ditto.
706
707 2002-10-01  Casper S. Hornstrup  <chorns@users.sourceforge.net>
708
709         * drivers/dd/floppy/floppy.c: Changed PAGESIZE to PAGE_SIZE.
710         * drivers/fs/cdfs/fcb.c: Ditto.
711         * drivers/fs/cdfs/fsctl.c: Ditto.
712         * drivers/fs/cdfs/rw.c: Ditto.
713         * drivers/fs/ext2/dir.c: Ditto.
714         * drivers/fs/ext2/inode.c: Ditto.
715         * drivers/fs/ext2/rw.c: Ditto.
716         * drivers/fs/ext2/super.c: Ditto.
717         * drivers/fs/minix/blockdev.c: Ditto.
718         * drivers/fs/minix/cache.c: Ditto.
719         * drivers/fs/minix/inode.c: Ditto.
720         * drivers/fs/minix/rw.c: Ditto.
721         * drivers/fs/ntfs/fcb.c: Ditto.
722         * drivers/fs/ntfs/ntfs.h: Ditto.
723         * drivers/fs/vfat/create.c: Ditto.
724         * drivers/fs/vfat/direntry.c: Ditto.
725         * drivers/fs/vfat/dirwr.c: Ditto.
726         * drivers/fs/vfat/fat.c: Ditto.
727         * drivers/fs/vfat/fcb.c: Ditto.
728         * drivers/fs/vfat/fsctl.c: Ditto.
729         * drivers/fs/vfat/rw.c: Ditto.
730         * drivers/storage/class2/class2.c: Ditto.
731         * drivers/storage/scsiport/scsiport.c: Ditto.
732         * hal/halx86/adapter.c: Ditto.
733         * hal/halx86/mp.c: Ditto.
734         * include/ddk/mmfuncs.h: Ditto.
735         * include/ddk/mmtypes.h: Ditto.
736         * include/ddk/i386/pagesize.h: Ditto.
737         * include/ntdll/pagesize.h: Ditto.
738         * lib/kernel32/process/create.c: Ditto.
739         * lib/kernel32/thread/thread.c: Ditto.
740         * lib/ntdll/ldr/utils.c: Ditto.
741         * lib/ntdll/rtl/env.c: Ditto.
742         * lib/ntdll/rtl/heap.c: Ditto.
743         * lib/ntdll/rtl/ppb.c: Ditto.
744         * lib/ntdll/rtl/process.c: Ditto.
745         * lib/ntdll/rtl/thread.c: Ditto.
746         * ntoskrnl/cc/copy.c: Ditto.
747         * ntoskrnl/cc/view.c: Ditto.
748         * ntoskrnl/ex/sysinfo.c: Ditto.
749         * ntoskrnl/include/internal/i386/mm.h: Ditto.
750         * ntoskrnl/io/mdl.c: Ditto.
751         * ntoskrnl/ke/kthread.c: Ditto.
752         * ntoskrnl/ke/i386/kernel.c: Ditto.
753         * ntoskrnl/ldr/init.c: Ditto.
754         * ntoskrnl/ldr/loader.c: Ditto.
755         * ntoskrnl/mm/anonmem.c: Ditto.
756         * ntoskrnl/mm/cont.c: Ditto.
757         * ntoskrnl/mm/freelist.c: Ditto.
758         * ntoskrnl/mm/iospace.c: Ditto.
759         * ntoskrnl/mm/kmap.c: Ditto.
760         * ntoskrnl/mm/marea.c: Ditto.
761         * ntoskrnl/mm/mdl.c: Ditto.
762         * ntoskrnl/mm/mminit.c: Ditto.
763         * ntoskrnl/mm/ncache.c: Ditto.
764         * ntoskrnl/mm/npool.c: Ditto.
765         * ntoskrnl/mm/pagefile.c: Ditto.
766         * ntoskrnl/mm/pageop.c: Ditto.
767         * ntoskrnl/mm/section.c: Ditto.
768         * ntoskrnl/mm/slab.c: Ditto.
769         * ntoskrnl/mm/i386/page.c: Ditto.
770         * ntoskrnl/ob/handle.c: Ditto.
771         * ntoskrnl/ps/create.c: Ditto.
772         * ntoskrnl/ps/process.c: Ditto.
773         * ntoskrnl/ps/w32call.c: Ditto.
774         * subsys/win32k/include/object.h: Ditto.
775
776 2002-10-01  Casper S. Hornstrup  <chorns@users.sourceforge.net>
777
778         * lib/ntdll/string/ctype.c: Undefine __MSVCRT__ to not have mingw
779         runtime import _pctype.
780
781 2002-09-30  Casper S. Hornstrup  <chorns@users.sourceforge.net>
782
783         * lib/user32/misc/desktop.c (string.h): Include.
784         * lib/user32/misc/resources.c: Ditto.
785         * lib/user32/misc/winhelp.c: Ditto.
786         * lib/user32/windows/accel.c: Ditto.
787         * lib/user32/windows/bitmap.c: Ditto.
788         * subsys/win32k/freetype/ctype.c: Undefine __MSVCRT__ and _pctype to not
789         have mingw runtime import _pctype.
790
791 2002-09-30  Casper S. Hornstrup  <chorns@users.sourceforge.net>
792
793         * ntoskrnl/cc/view.c (alloca): Prototype.
794         * ntoskrnl/rtl/ctype.c: Undefine __MSVCRT__ to not have mingw runtime
795         import _pctype.
796
797 2002-08-26  David Welch  <welch@computer2.darkstar.org>
798
799         * lib/gdi32/misc/dllmain.c (GdiDllInitialize): Don't initialize
800         win32k.sys for each process.
801         * subsys/csrss/init.c (CsrServerInitialization): Initialize
802         win32k.sys as well.
803
804 2002-08-26  David Welch  <welch@computer2.darkstar.org>
805
806         * ntoskrnl/ps/process.c (NtCreateProcess): Reference the
807         parent process's handle using ExGetPreviousMode.
808
809 2002-08-26  David Welch  <welch@computer2.darkstar.org>
810
811         * lib/user32/misc/dllmain.c (Init): Initialize gdi32 as well.
812
813 2002-08-26  David Welch  <welch@computer2.darkstar.org>
814
815         * iface/addsys/genw32k.c (main, process): Generate a set of
816         stubs for csrss as well.
817
818 2002-08-26  David Welch  <welch@computer2.darkstar.org>
819
820         * lib/kernel32/process/create.c (CreateProcessW): Initialize
821         all the members of the new process's PPB.
822
823 2002-08-17  David Welch  <welch@computer2.darkstar.org>
824
825         * ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): Ensure the
826         process isn't freed in the middle of our operations.
827
828 2002-08-17  David Welch  <welch@computer2.darkstar.org>
829
830         * drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation): Fixed.
831
832 2002-08-17  David Welch  <welch@computer2.darkstar.org>
833
834         * ntoskrnl/ps/create.c (PiDeleteThread): Don't dereference
835         the thread's process while holding the thread list lock.
836
837 2002-08-17  David Welch  <welch@computer2.darkstar.org>
838
839         * ntoskrnl/mm/section.c (MmMapViewOfSection): Check there is 
840         enough space for all parts of an image before mapping it; if
841         there isn't enough space free at the preferred base address
842         then try to choose a different one.
843
844 2002-08-17  David Welch  <welch@computer2.darkstar.org>
845
846         * ntoskrnl/mm/mpw.c (MmInitMpwThread): Run the MPW thread at
847         idle priority.
848
849 2002-08-17  David Welch  <welch@computer2.darkstar.org>
850
851         * ntoskrnl/mm/kmap.c (ExUnmapPage, ExAllocatePageWithPhysPage,
852         MiFreeNonPagedPoolRegion, MiAllocNonPagedPoolRegion): Maintain
853         a hint of the next free page; makes running with whole page
854         allocation more bearable.
855
856 2002-08-17  David Welch  <welch@computer2.darkstar.org>
857
858         * ntoskrnl/mm/anonmem.c (MmPageOutVirtualMemory): Show an
859         out of swap space message if we are out of swap space.
860         * ntoskrnl/mm/section.c (MmPageOutSectionView): Show an
861         out of swap space message if we are out of swap space.
862         * ntoskrnl/mm/pagefile.c (MmAllocSwapPage): Don't automatically
863         show an out of swap space message on failure.
864         * ntoskrnl/mm/pagefile.c (MmShowOutOfSpaceMessagePagingFile): New
865         function to notify the user that the pagefile is full.
866
867 2002-08-17  David Welch  <welch@computer2.darkstar.org>
868
869         * drivers/lib/zlib/Makefile: Create a dummy zlib.sym
870
871 2002-08-16  David Welch  <welch@computer2.darkstar.org>
872
873         * ntoskrnl/mm/npool.c (ExAllocateWholePageBlock): Converted
874         to use PHYSICAL_ADDRESS type for page address.
875
876 2002-08-16  David Welch  <welch@computer2.darkstar.org>
877
878         * subsys/win32k/ntuser/class.c (W32kCreateClass): Corrected
879         typo when calculating the offset into the class object to
880         put the class name string.
881
882 2002-08-16  David Welch  <welch@computer2.darkstar.org>
883
884         * ntoskrnl/ps/thread.c (PsDispatchThreadNoLock): Don't call
885         the reaper function directly; set an event to wake up a seperate
886         reaper thread.
887         * ntoskrnl/ps/thread.c (PsReaperThreadMain): New function that
888         waits for a notification and then calls PsReapThreads.
889         * ntoskrnl/ps/thread.c (PsInitThreadManagement): Create the
890         reaper thread.
891
892 2002-08-15  David Welch  <welch@computer2.darkstar.org>
893
894         * lib/advapi32/misc/dllmain.c (DllMain): Removed debug message.
895
896 2002-08-14  David Welch  <welch@computer2.darkstar.org>
897
898         * subsys/smss/init.c (SmPagingFilesQueryRoutine): If possible
899         take the size of the paging file from the registry.
900
901 2002-08-14  David Welch  <welch@computer2.darkstar.org>
902
903         * ntoskrnl/mm/section.c (MmCreateDataFileSection): Extend the
904         section if necessary.
905
906 2002-08-14  David Welch  <welch@computer2.darkstar.org>
907
908         * ntoskrnl/mm/pagefile.c (NtCreatePagingFile): Set the file
909         size using the FileAllocationInformation class.
910
911 2002-08-14  David Welch  <welch@computer2.darkstar.org>
912
913         * ntoskrnl/mm/anonmem.c (MmWritePageVirtualMemory): Implemented
914         function to write anonymous memory pages to the swap file.
915         * ntoskrnl/mm/anonmem.c (MmFreeVirtualMemoryPage): Free any
916         swap page associated with the page.
917         * ntoskrnl/mm/mpw.c (MmWriteDirtyPages): New function to find
918         pages to write to disk.
919         * ntoskrnl/mm/mpw.c (MmMpwThreadMain): Implemented MPW functionality.
920         * ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): New function
921         to write a single page back to disk.
922         * ntoskrnl/mm/rmap.c (MmSetCleanAllRmaps, MmSetDirtyAllRmaps,
923         MmIsDirtyPageRmap): New rmap function to support the MPW thread.
924         * ntoskrnl/mm/section.c (MmWritePageSectionView): Implemented
925         function to write back section pages.
926         * ntoskrnl/mm/section.c (MmFreeSectionPage): Free any swap
927         entry associated with the page; mark pages shared with
928         the cache as dirty if necessary.
929         
930 2002-08-14  David Welch  <welch@computer2.darkstar.org>
931
932         * ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set name of
933         the module into the module text structure.
934
935 2002-08-14  David Welch  <welch@computer2.darkstar.org>
936
937         * ntoskrnl/io/rw.c (NtReadFile, NtWriteFile): Use the correct
938         test for whether to wait for the completion of i/o.
939
940 2002-08-14  David Welch  <welch@computer2.darkstar.org>
941
942         * ntoskrnl/cm/ntfunc.c (NtFlushKey): Request synchronous i/o
943         from NtOpenFile.
944         * ntoskrnl/cm/regfile (CmiInitPermanentRegistryHive): Request
945         synchronous i/o from NtCreateFile.
946         * ntoskrnl/dbg/kdb_stabs.c (LdrpLoadModuleSymbols): Request
947         synchronous i/o from NtOpenFile.
948         * ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Request synchronous i/o
949         from NtOpenFile.
950
951 2002-08-14  David Welch  <welch@computer2.darkstar.org>
952
953         * ntoskrnl/cc/view.c (CcRosSuggestFreeCacheSegment): Maintain the
954         correct reference count.
955
956 2002-08-14  David Welch  <welch@computer2.darkstar.org>
957
958         * ntoskrnl/cc/view.c (CcRosFlushCacheSegment): New function to
959         write back a modified cache segment.
960         * ntoskrnl/cc/view.c (CcRosFlushDirtyPages): New function to
961         flush some dirty pages from the cache.
962         * ntoskrnl/cc/view.c (CcRosMarkDirtyCacheSegment): New function to
963         mark a cache segment modified while mapped into memory as dirty.
964
965 2002-08-14  David Welch  <welch@computer2.darkstar.org>
966
967         * ntoskrnl/cc/pin.c (CcMapData, CcUnpinData, CcSetDirtyPinnedData):
968         Store the dirty status in the BCB; don't write back dirty data
969         immediately.
970
971 2002-08-14  David Welch  <welch@computer2.darkstar.org>
972
973         * include/ntos/mm.h: Added SEC_XXXX defines from 'Windows NT/2000
974         Native API Reference'
975
976 2002-08-14  David Welch  <welch@computer2.darkstar.org>
977
978         * drivers/fs/vfat/ea.c (VfatSetExtendedAttributes): Empty
979         placeholder for extended attribute functions.
980
981 2002-08-14  David Welch  <welch@computer2.darkstar.org>
982
983         * drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation):
984         Added function to set allocation size.
985
986 2002-08-14  David Welch  <welch@computer2.darkstar.org>
987
988         * drivers/fs/vfat/fcb.c (vfatFCBInitializeCache): Renamed
989         to vfatFCBInitializeCacheFromVolume.
990         * drivers/fs/vfat/fcb.c (vfatMakeFCBFromDirEntry): Don't
991         initialise the cache with a file object representing the
992         volume unless the FCB is for a directory.
993
994 2002-08-14  David Welch  <welch@computer2.darkstar.org>
995
996         * drivers/fs/vfat/create.c (VfatPagingFileCreate): Added a
997         new function for handling paging file only code.
998         * drivers/fs/vfat/create.c (VfatSupersedeFile): Added a
999         new function for doing a file supersede.
1000         * drivers/fs/vfat/create.c (VfatCreateFile): Reformatted and
1001         adjusted control flow. Set allocation size and extended attributes
1002         on create.
1003         * drivers/fs/vfat/create.c (VfatCreate): Removed goto.
1004
1005 2002-08-14  David Welch  <welch@computer2.darkstar.org>
1006
1007         * drivers/fs/vfat/cleanup.c (VfatCleanupFile): Renamed
1008         updEntry to VfatUpdateEntry.
1009         * drivers/fs/vfat/close.c (VfatCloseFile): Renamed
1010         updEntry to VfatUpdateEntry.
1011         * drivers/fs/vfat/dirwr.c (updEntry): Renamed to
1012         VfatUpdateEntry.
1013         * drivers/fs/vfat/dirwr.c (addEntry): Renamed to
1014         VfatAddEntry.
1015
1016 2002-08-14  David Welch  <welch@computer2.darkstar.org>
1017
1018         * apps/tests/sectest/sectest.c (main): Fixed formatting.
1019
1020 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1021
1022         * ntoskrnl/mm/i386/page.c (MmSetPageProtect): Fixed
1023         behaviour when called on the system address space.
1024
1025 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1026
1027         * ntoskrnl/mm/virtual.c (MmQueryAnonMem, MmProtectAnonMem,
1028         NtAllocateVirtualMemory, NtFreeVirtualMemory): Renamed
1029         segments to regions; moved region code to seperate file.
1030         Implemented NtQueryVirtualMemory and NtProtectVirtualMemory
1031         for anonymous memory areas.
1032
1033 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1034
1035         * ntoskrnl/mm/anonmem.c: Moved functions relating to
1036         areas created with NtAllocateVirtualMemory to a 
1037         seperate file.
1038
1039 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1040
1041         * ntoskrnl/mm/section.c (MmQuerySectionView): Implemented
1042         NtQueryVirtualMemory for section views.
1043
1044 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1045
1046         * ntoskrnl/mm/section.c (MmAccessFaultSectionView,
1047         MmNotPresentFaultSectionView, MmProtectSectionView,
1048         MmMapViewOfSegment, MmAlterViewAttributes): Implemented 
1049         NtProtectVirtualMemory for section views.
1050
1051 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1052
1053         * ntoskrnl/ke/main.c: Removed SEH test code.
1054
1055 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1056
1057         * lib/ntdll/ldr/utils.c (LdrFixupImports): Remove the readonly
1058         protection from the IAT before writing to it.
1059
1060 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1061
1062         * lib/ntdll/ldr/utils.c (LdrAdjustDllName): Properly null terminate
1063         the base name of the DLL.
1064
1065 2002-08-10  David Welch  <welch@computer2.darkstar.org>
1066
1067         * ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set the text segment
1068         of modules to readonly after loading.
1069
1070 2002-08-09  David Welch  <welch@computer2.darkstar.org>
1071
1072         * ntoskrnl/ps/create.c (NtCreateThread): Call PsSuspendThread
1073         if NtCreateThread has CreateSuspended as TRUE.
1074         * ntoskrnl/ps/suspend.c (PsSuspendThread, PsResumeThread,
1075         PiSuspendThreadKernelRoutine): Fixed suspend functionality.
1076
1077 2002-08-09  David Welch  <welch@computer2.darkstar.org>
1078
1079         * ntoskrnl/ke/i386/usertrap.c (print_user_address): Copy
1080         the LDR variable from the right address.
1081
1082 2002-08-09  David Welch  <welch@computer2.darkstar.org>
1083
1084         * ntoskrnl/ke/apc.c (KiDeliverNormalApc): Check for
1085         kernel APCs pending on exit from the kernel.
1086         * ntoskrnl/ke/apc.c (KiDeliverNormalApc, KiDeliverUserApc,
1087         KiDeliverApc): Set the APC's inserted flag to FALSE after
1088         removing it from the thread's queue.
1089
1090 2002-08-09  David Welch  <welch@computer2.darkstar.org>
1091
1092         * lib/kernel32/thread/thread.c (ThreadStartup): Don't
1093         call DLL entrypoints; this is done by LdrInitializeThunk.
1094         * lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call
1095         DLLs in initialization order; take the loader lock before
1096         calling.
1097
1098 2002-08-09  David Welch  <welch@computer2.darkstar.org>
1099
1100         * apps/tests/thread/thread.c (main): Test suspend and
1101         resume functionality.
1102
1103 2002-08-08  David Welch  <welch@computer2.darkstar.org>
1104
1105         * ntoskrnl/mm/section (NtQuerySection): Return the
1106         right result length.
1107
1108 2002-08-08  David Welch  <welch@computer2.darkstar.org>
1109
1110         * ntoskrnl/ke/usertrap.c (print_user_address): Check for
1111         a NULL LDR structure in the PEB; copy the LDR pointer in
1112         safely. 
1113
1114 2002-08-08  David Welch  <welch@computer2.darkstar.org>
1115
1116         * ntoskrnl/ke/apc.c (KiDeliverUserApc): Deliver all present
1117         APCs; release the APC spinlock while acccessing user memory.
1118
1119 2002-08-08  David Welch  <welch@computer2.darkstar.org>
1120
1121         * include/internal/ps.h: Adjusted offsets into the ETHREAD
1122         structure.
1123         * include/internal/ps.h: Removed redundant members from the
1124         KTHREAD structure.
1125         * ntoskrnl/ke/kthread.c (KeInitializeThread): Removed
1126         redundant members from the KTHREAD structure.
1127
1128 2002-08-08  David Welch  <welch@computer2.darkstar.org>
1129
1130         * ntoskrnl/dbg/kdb.c (KdbEnterDebuggerException): New
1131         function to enter the debugger on an exception.
1132         * ntoskrnl/kd/kdebug.c (KdInitSystem): Initialize the
1133         local kernel debugger if enabled.
1134         * ntoskrnl/ke/catch.c (KiDispatchException): Enter the
1135         local kernel debugger on an exception.
1136
1137 2002-08-08  David Welch  <welch@computer2.darkstar.org>
1138
1139         * include/ntdll/ldr.h: Added definition for a DLL entrypoint.
1140         * lib/kernel32/process/create.c (KlCreateFirstThread): Put
1141         the argument to the NtProcessStartup function on the stack.
1142         * lib/kernel32/process/create.c (KlInitPeb): Read the
1143         base address of the new image from the PEB.
1144         * lib/kernel32/process/create.c (CreateProcessW): Start the
1145         first thread at the entrypoint of the new image.
1146         * lib/ntdll/ldr/startup.c (LdrInitializeThunk): If the
1147         function is called after the initial startup then just call the
1148         entrypoints for the loaded DLLs with DLL_THREAD_ATTACH. Don't
1149         call the entrypoint of the image.
1150         * lib/ntdll/rtl/process.c (RtlpCreateFirstThread): Put the
1151         argument to the NtProcessStartup function on the stack.
1152         * lib/ntdll/rtl/process.c (KlInitPeb): Read the base address of
1153         the new image from the PEB.
1154         * lib/ntdll/rtl/process.c (RtlCreateUserProcess): Start the
1155         first thread at the entrypoint of the new image.
1156         * ntoskrnl/ke/i386/bthread.S (PsBeginThreadWithContextInternal):
1157         Use the system call path to begin a usermode thread.
1158         * ntoskrnl/ke/i386/thread.c (Ke386InitThreadWithContext): Convert
1159         the supplied context into a trap frame.
1160         * ntoskrnl/ldr/init.c (LdrLoadInitialProcess): Put the PEB argument
1161         to the NtProcessStartup function on the new stack; start the
1162         first thread at the entrypoint of the image.
1163         * ntoskrnl/ps/create.c (NtCreateThread): Create an APC to call
1164         LdrInitializeThunk in the context of a new thread before its
1165         entrypoint.
1166
1167 2002-08-08  David Welch  <welch@computer2.darkstar.org>
1168
1169         * drivers/fs/vfat/cleanup.c (VfatCleanupFile): Uninitialise
1170         the cache on file cleanup.
1171         * drivers/fs/vfat/fcb.c (vfatReleaseFcb): Don't uninitialise
1172         the cache on file close.
1173         * ntoskrnl/cc/copy.c: Renamed zero page global variable.
1174         * ntoskrnl/cc/view.c: Added cache delete function.
1175
1176 2002-07-13  Casper S. Hornstrup  <chorns@users.sourceforge.net>
1177
1178         * rules.mak (RSYM): Define.
1179         * include/ddk/zwtypes.h (DebugDbgLoadSymbols): Add to enum
1180         _DEBUG_CONTROL_CODE.
1181         * include/ntdll/ldr.h (LDR_SYMBOL_INFO, LdrpLoadUserModuleSymbols): Add.
1182         (LdrLoadModuleSymbols): Remove.
1183         * include/ntos/kdbgsyms.h (ST_FILENAME, ST_FUNCTION,
1184         ST_LINENUMBER): Add.
1185         (SYMBOL). Make Name an ANSI_STRING.
1186         (IMAGE_SYMBOL_INFO, AreSymbolsParsed): Add.
1187         * lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call
1188         LdrpLoadUserModuleSymbols() not LdrLoadModuleSymbols().
1189         * lib/ntdll/ldr/utils.c (LdrLoadModuleSymbols): Rename to
1190         LdrpLoadUserModuleSymbols.
1191         (LdrpLoadUserModuleSymbols): Use DebugDbgLoadSymbols debug control code.
1192         (LdrLoadDll): assert if out of memory.
1193         (LdrLoadDll): Call
1194         LdrpLoadUserModuleSymbols(), not LdrLoadModuleSymbols().
1195         * lib/ntdll/string/ctype.c (_pctype): #undef.
1196         * ntoskrnl/dbg/dbgctrl.c (NtSystemDebugControl): Call
1197         LdrLoadUserModuleSymbols on DebugDbgLoadSymbols.
1198         * ntoskrnl/include/internal/ldr.h (LdrGetAddressInformation): Add.
1199         * ntoskrnl/include/internal/module.h (MODULE_TEXT_SECTION): Make SymbolInfo
1200         an IMAGE_SYMBOL_INFO.
1201         * ntoskrnl/ke/i386/exp.c (LdrGetAddressInformation): Add prototype.
1202         (print_address): Change #ifdef KDBG to #ifdef DBG.
1203         (KiDoubleFaultHandler, KiDumpTrapFrame, KeDumpStackFrames): Dump
1204         one stack frame per line.
1205         * ntoskrnl/ke/i386/multiboot.S: Create pagetables for more kernel
1206         address space so larger modules can be passed from the boot loader.
1207         * ntoskrnl/ke/i386/usertrap.c (LdrGetAddressInformation): Add prototype.
1208         (print_user_address): Print symbols using LdrGetAddressInformation().
1209         * ntoskrnl/ldr/loader.c (SYMBOLFILE_HEADER, IMAGE_SYMBOL_INFO_CACHE,
1210         STAB_ENTRY, N_FUN, N_SLINE, N_SO, SymbolListHead): Add.
1211         (TAG_SYM_BUF): Remove.
1212         (LdrInitDebug): Remove unneeded code.
1213         (LdrInit1): Prepare for loading symbols.
1214         (LdrpReadLine, HexL, LdrpParseLine, LdrpLoadModuleSymbolsFromBuffer,
1215         LdrpLoadUserModuleSymbolsFromBuffer): Remove.
1216         (LdrpParseImageSymbols, LdrpGetFileName, LdrpGetFunctionName,
1217         LdrpGetLineNumber, LdrGetAddressInformation, LdrpLookupUserSymbolInfo): Add.
1218         (LdrpLoadModuleSymbols, LdrInitializeBootStartDriver): Change to use new
1219         symbol structures.
1220         (LdrLoadUserModuleSymbols): Cache symbol buffers.
1221         (LdrUnloadModuleSymbols): Implement.
1222         (LdrLoadModule, LdrUnloadModule): Change #ifdef KDBG to #ifdef DBG.
1223         (LdrPEProcessModule): Split a line into two lines.
1224         (LdrPEProcessModule): Setup for loading symbols.
1225         * ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Open with FILE_SHARE_READ.
1226         * ntoskrnl/ps/process.c (PiFreeSymbols): Call LdrUnloadModuleSymbols() to
1227         free symbols.
1228         (PiDeleteProcess): Change #ifdef KDBG to #ifdef DBG.
1229         * ntoskrnl/rtl/ctype.c (_pctype): #undef.
1230         * ntoskrnl/rtl/string.c (strncpy): Terminate destination string.
1231         * tools/Makefile (rsym): Add target.
1232         * tools/helper.mk: Include config and use -g if DBG = 1.
1233
1234 2002-07-13  Casper S. Hornstrup  <chorns@users.sourceforge.net>
1235
1236         * Makefile (install_before): Install system.hiv to correct location.
1237
1238 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1239
1240         * subsys/win32k/include/callback.h: Fixed callback argument
1241         definitions.
1242         * subsys/win32k/ntuser/winpos.c: Implemented some more of the windows
1243         sizing/moving code.
1244         * subsys/win32k/ntuser/painting.c: Implemented some more of the
1245         window painting code.
1246         * subsys/win32k/objects/coord.c: Implemented LPtoDP and DPtoLP.
1247         * subsys/win32k/objects/region.c: Added stubs for some more
1248         region functions.
1249
1250 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1251
1252         * ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the
1253         process desktop handle as well.
1254
1255 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1256
1257         * ntoskrnl/se/token.c: Don't call the ZwXXX variant of
1258         system calls when in system context.
1259
1260 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1261
1262         * ntoskrnl/Makefile: Added file with MDA output code.
1263         * ntoskrnl/kd/kdebug.c: Recognize MDA as a destination for
1264         debug output.
1265
1266 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1267
1268         * lib/user32/windows/defwnd.c: Implemented some more of the
1269         default window handler.
1270
1271 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1272
1273         * lib/user32/misc/stubs.c: Removed some stubs to seperate files.
1274
1275 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1276
1277         * lib/user32/user32.def: Export ScreenToClient otherwise we
1278         get problems when code in user32 tries to call it.
1279
1280 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1281
1282         * include/win32k/region.h: Added prototypes for some missing
1283         region functions.
1284
1285 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1286
1287         * include/win32k/ntuser.h: Added prototypes for some missing
1288         NtUserXXX functions.
1289
1290 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1291
1292         * include/user32/wininternal.h: Added some constants for
1293         private GetDCEx styles that WINE needs.
1294
1295 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1296
1297         * include/user32/callback.h: Fixed callbacks for messages with
1298         parameters.
1299
1300 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1301
1302         * include/napi/win32.h (W32THREAD): Added pointer to the
1303         thread's desktop.
1304         * include/napi/win32.h (W32PROCESS): Removed handle table,
1305         added a pointer to the process's window station.
1306         * subsys/win32k/ntuser/guicheck.c (W32kGuiCheck): Reference
1307         a process's window station on the first win32k system call. Reference
1308         a thread's desktop on the first win32k system call.
1309
1310 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1311
1312         * include/messages.h: Added some missing WM_XXX constants.
1313
1314 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1315
1316         * drivers/dd/ide/makefile: Compiling with debugging messages
1317         needs libgcc to be linked in.
1318
1319 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1320
1321         * iface/addsys/genw32k.c: Generate a variable with the
1322         number of system calls.
1323         * iface/native/genntdll.c: Generate a proper stack frame for
1324         the user system call stubs.
1325         * ntoskrnl/ke/i386/syscall.S: Generate a proper stack frame for
1326         the handler for system calls.
1327
1328 2002-07-04  David Welch  <welch@computer2.darkstar.org>
1329
1330         * Makefile: Build the GUI startup application.
1331         * subsys/system/gstart/gstart.c: Application to start up
1332         the GUI.
1333
1334 2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1335
1336         * tools/helper.mk: Make an import library a proper target
1337         depending on the .def file.
1338
1339 2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1340
1341         * subsys/win32k/ntuser/window.c (NtUserGetWindowLong): Began
1342         implementation.
1343
1344 2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1345
1346         * subsys/win32k/misc/object.c (ObmCreateHandle): Return the
1347         correct handle value.
1348
1349 2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1350
1351         * subsys/win32k/makefile: Make win32k depend on the file containing
1352         the service table. 
1353
1354 2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1355
1356         * ntoskrnl/ke/i386/stkswitch.S (KeSwitchStackAndRet,
1357         KePushAndStackSwitchAndSysRet): Push one value only.
1358         * ntoskrnl/ps/w32call.c (NtCallbackReturn, NtW32Call): Moved
1359         these functions to a new file. Restore the old trap frame after
1360         returning from a callback.
1361
1362 2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1363
1364         * lib/user32/windows/message.c (CallWindowProcA, CallWindowProcW):
1365         Convert message to Unicode or ASCII if necessary.
1366
1367 2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1368
1369         * include/user32/callback.h: Added WM_CREATE and WM_NCCALCSIZE
1370         callbacks.
1371         * lib/user32/windows/window.c (User32SendCREATEMessageForKernel,
1372         User32SendNCCREATEMessageForKernel): Implemented.
1373         * subsys/win32k/ntuser/callback.c (W32kSendCREATEMessage):
1374         Implemented.    
1375
1376 2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1377
1378         * include/structs.h: Added Unicode and ASCII versions of
1379         CREATESTRUCT.
1380
1381 2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1382
1383         * tools/helper.mk: Make the install target depend on all the
1384         files to be installed.
1385
1386 2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1387
1388         * ntoskrnl/ps/thread.c (NtCallbackReturn): Set TSS.Esp0 to the
1389         top of the old stack.
1390         * ntoskrnl/ps/thread.c (NtW32Call): Set TSS.Esp0 to the top of
1391         the new stack. Free the callback stack correctly. Don't copy
1392         portion of the trap frame that doesn't exist in non-v86-mode
1393         interrupts.
1394         * ntoskrnl/ps/thread.c (PsFreeCallbackStack): New function to
1395         free a stack allocated with PsAllocateCallbackStack.
1396
1397 2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1398
1399         * drivers/dd/null/makefile: Commented out local LDFLAGS as
1400         these cause bad relocations in the stripped image.
1401
1402 2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1403
1404         * config: Corrected spelling error.
1405
1406 2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1407
1408         * subsys/system/winlogon/winlogon.c (WinMain): Check for
1409         failure when creating a window system.
1410
1411 2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1412
1413         * ntoskrnl/ob/handle.c (ObDuplicateObject): Added this internal
1414         function for duplicating objects.
1415         * ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the parent
1416         process's window station to the child process.
1417         * ntoskrnl/ps/process.c (PsInitProcessManagement): Initialize the
1418         first process's window station.
1419
1420 2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1421
1422         * ntoskrnl/mm/marea.c (MmCreateMemoryArea): Initialise
1423         page operation structure members.
1424         * ntoskrnl/mm/pageop.c (MmReleasePageOp, MmGetPageOp): Increment
1425         or decrement the page operation count in the memory area.
1426         * ntoskrnl/mm/virtual.c (MmNotPresentFaultVirtualMemory,
1427         MmPageOutVirtualMemory): Check for a deleted memory area before 
1428         handling the fault.
1429         * ntoskrnl/mm/virtual.c (MmFreeVirtualMemory): Wait for all
1430         page operations to finish before freeing the memory area.
1431
1432 2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1433
1434         * ntoskrnl/ke/i386/syscall.S (interrupt_handler2e): Corrected
1435         test for previous mode, upper 16-bit of CS on the stack after an
1436         interrupt are arbitary.
1437
1438 2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1439
1440         * lib/user32/misc/winsta.c: Cleaned up indentation.
1441
1442 2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1443         
1444         * apps/tests/winhello/winhello.c (WinMain, MainWndProc):
1445         Cleaned up formatting, some more error checks.
1446
1447 2002-06-04  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1448
1449         * ntoskrnl/mm/virtual.c (MmSecureVirtualMemory,
1450         MmUnsecureVirtualMemory, NtQueryVirtualMemory): Corrected indentation.
1451
1452 2002-06-04  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1453
1454         * ntoskrnl/ke/i386/exp.c (KiDoubleFaultHandler): Print CR3
1455         correctly.
1456
1457 2002-06-04  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
1458
1459         * ntoskrnl/include/internal/ps.h: Added KTHREAD_STACK_LIMIT definition.
1460         * ntoskrnl/ke/i386/tskswitch.S (Ki386ContextSwitch): Force all the
1461         pages of the kernel stack to be accessible from this process.
1462         
1463 2002-06-04  David Welch  <welch@cwcom.net>
1464
1465         * ntoskrnl/cc/view.c (ReadCacheSegmentChain): Changes to use 
1466         PHYSICAL_ADDRESS type for physical addresses.
1467         * ntoskrnl/cc/copy.c (CcRosCreateCacheSegment): Changes to use 
1468         PHYSICAL_ADDRESS type for physical addresses.
1469         * ntoskrnl/cc/copy.c (CcFreeCachePage): Changes to use 
1470         PHYSICAL_ADDRESS type for physical addresses.
1471         * ntoskrnl/include/internal/mm.h: Changed prototypes to use 
1472         PHYSICAL_ADDRESS type for physical addresses.
1473         * ntoskrnl/include/internal/ps.h (KPROCESS): Changed type of
1474         page directory base to PHYSICAL_ADDRESS.
1475         * ntoskrnl/include/internal/i386/mm.h: Changed prototypes to use
1476         PHYSICAL_ADDRESS type for physical addresses.
1477         * ntoskrnl/ke/kthread.c (KeFreeStackPage): Changes to use 
1478         PHYSICAL_ADDRESS type for physical addresses.
1479         * ntoskrnl/ke/kthread.c (KeInitializeThread): Changes to use 
1480         PHYSICAL_ADDRESS type for physical addresses.
1481         * ntoskrnl/ke/process.c (KeAttachProcess, KeDetachProcess): Changes 
1482         to use PHYSICAL_ADDRESS type for physical addresses.
1483         * ntoskrnl/ke/kernel.c (PcrPages, KeApplicationProcessorInit): Changes
1484         to use PHYSICAL_ADDRESS type for physical addresses.
1485         * ntoskrnl/mm/balance.c (MM_ALLOCATION_REQUEST): Changes to use 
1486         PHYSICAL_ADDRESS type for physical addresses.
1487         * ntoskrnl/mm/balance.c (MmReleasePageMemoryConsumer): Changes to use 
1488         PHYSICAL_ADDRESS type for physical addresses.
1489         * ntoskrnl/mm/balance.c (MmRequestPageMemoryConsumer): Changes to use 
1490         PHYSICAL_ADDRESS type for physical addresses.
1491         * ntoskrnl/mm/cont.c (MmFreeContinuousPage): Changes to use 
1492         PHYSICAL_ADDRESS type for physical addresses.
1493         * ntoskrnl/mm/cont.c (MmAllocateContinuousAlignedMemory): Changes to 
1494         use PHYSICAL_ADDRESS type for physical addresses.
1495         * ntoskrnl/mm/freelist.c (MmTransferOwnershipPage, 
1496         MmGetLRUFirstUserPage, MmGetLRUNextUserPage, MmGetContinuousPages,
1497         MmInitializePageList, MmSetFlagsPage, MmSetRmapListHeadPage,
1498         MmGetRmapListHeadPage, MmMarkPageMapped, MmMarkPageUnmapped,
1499         MmGetFlagsPage, MmSetSavedSwapEntryPage, MmGetSavedSwapEntryPage,
1500         MmReferencePage, MmGetReferenceCountPage, MmIsUsablePage,
1501         MmDereferencePage, MmGetLockCountPage, MmLockPage, MmUnlockPage,
1502         MmAllocPage): Changes to use PHYSICAL_ADDRESS type for physical 
1503         addresses.
1504         * ntoskrnl/mm/iospace.c (MmMapIoSpace): Changes to use 
1505         PHYSICAL_ADDRESS type for physical addresses.
1506         * ntoskrnl/mm/kmap.c (ExAllocatePage, MiZeroPage, MiCopyFromUserPage,
1507         ExAllocatePageWithPhysPage): Changes to use PHYSICAL_ADDRESS type for 
1508         physical addresses.
1509         * ntoskrnl/mm/marea.c (MmFreeMemoryArea): Changes to use 
1510         PHYSICAL_ADDRESS type for physical addresses.
1511         * ntoskrnl/mm/mdl.c (MmUnlockPages, MmMapLockedPages, 
1512         MmProbeAndLockPages): Changes to use PHYSICAL_ADDRESS type for 
1513         physical addresses.
1514         * ntoskrnl/mm/mm.c (MmSharedDataPagePhysicalAddress, 
1515         MmCommitPagedPoolAddress, MmNotPresentFault): Changes to use 
1516         PHYSICAL_ADDRESS type for physical addresses.
1517         * ntoskrnl/mm/mminit.c (MmInitVirtualMemory): Changes to use 
1518         PHYSICAL_ADDRESS type for physical addresses.
1519         * ntoskrnl/mm/ncache.c (MmAllocateNonCachedMemory, 
1520         MmFreeNonCachedPage): Changes to use PHYSICAL_ADDRESS type for 
1521         physical addresses.
1522         * ntoskrnl/mm/npool.c (grow_kernel_pool): Changes to use 
1523         PHYSICAL_ADDRESS type for physical addresses.
1524         * ntoskrnl/mm/rmap.c (MmPageOutPhysicalAddress, MmInsertRmap,
1525         MmDeleteAllRmaps, MmDeleteRmap): Changes to use 
1526         PHYSICAL_ADDRESS type for physical addresses.
1527         * ntoskrnl/mm/section.c (MiReadPage, MmNotPresentFaultSectionView,
1528         MmAccessFaultSectionView, MmPageOutDeleteMapping, 
1529         MmPageOutSectionView, MmFreeSectionPage): Changes to use 
1530         PHYSICAL_ADDRESS type for physical addresses.
1531         * ntoskrnl/mm/slab.c (ExGrowSlabCache): Changes to use 
1532         PHYSICAL_ADDRESS type for physical address.
1533         * ntoskrnl/mm/virtual.c (MmPageOutVirtualMemory, 
1534         MmNotPresentFaultVirtualMemory, MmFreeVirtualMemoryPage): Changes to 
1535         use PHYSICAL_ADDRESS type for physical address.
1536         * ntoskrnl/mm/wset.c (MmTrimUserMemory): Changes to use 
1537         PHYSICAL_ADDRESS type for physical address.
1538         * ntoskrnl/mm/page.c (Mmi386ReleaseMmInfo, MmCopyMmInfo,
1539         MmGetPhysicalAddressForProcess, MmCreateVirtualMapping,
1540         MmCreateVirtualMappingUnsafe, MmCreateVirtualMappingForProcess,
1541         MmDeleteVirtualMapping): Changes to use PHYSICAL_ADDRESS type for 
1542         physical address.
1543         * ntoskrnl/ps/process (PsInitProcessManagment): Changes to use 
1544         PHYSICAL_ADDRESS type for physical address.
1545         * ntoskrnl/ps/thread.c (PsAllocateCallbackStack): Changes to use 
1546         PHYSICAL_ADDRESS type for physical address.
1547
1548 2002-06-04  David Welch  <welch@cwcom.net>
1549
1550         * Lots of change since the ChangeLog was last updated.
1551
1552 2001-03-18  David Welch  <welch@cwcom.net>
1553
1554         * ntoskrnl/ke/apc.c (KiDeliverApc): Bug fix.
1555         * ntoskrnl/ke/apc.c (KeInsertQueueApc): More comments.
1556         * ntoskrnl/ke/catch.c (KiDispatchException): Bug fix.
1557         * ntoskrnl/ke/timer.c (KeDelayExecutionThread): Don't use removed 
1558         function KeAddTimeoutThread.
1559         * ntoskrnl/ke/timer.c (KeAddTimeoutThread): Removed.
1560         * ntoskrnl/ke/wait.c (KeWaitForSingleObject, KeWaitForMultipleObjects):
1561         Don't use KeAddTimeoutThread.
1562         * ntoskrnl/mm/freelist.c (MmAllocateContiguousAlignedMemory): Bug fix
1563         * ntoskrnl/mm/freelist.c (MmAllocatePage): Allocate from the top
1564         memory.
1565
1566 2001-03-17  David Welch  <welch@cwcom.net>
1567
1568         * ntoskrnl/ke/catch.c (KiDispatchException): Implementation of
1569         exception handling, user-mode only.
1570
1571 2001-03-16  David Welch  <welch@cwcom.net>
1572
1573         * include/ddk/zw.h: Corrected declarations of NtCreateProfile,
1574         NtQueryIntervalProfile, NtSetIntervalProfile.
1575         * include/ddk/zwtypes.h: Added definitions of KPROFILE_SOURCE.
1576         * ntoskrnl/include/internal/ke.h: Added the interrupted EIP as a
1577         parameter to KiUpdateSystemTime for profiling purposes.
1578         * ntoskrnl/include/internal/nt: Added declaration for profiling
1579         support initialization.
1580         * ntoskrnl/ke/timer.c (KiUpdateSystemTime, KeExpireTimers): Call
1581         the profiling code on a timer interrupt with the interrupt EIP.
1582         * ntoskrnl/ke/i386/irq.c (KiDispatchInterrupt): Pass the interrupted
1583         EIP to KiUpdateSystemTime.
1584         * ntoskrnl/mm/virtual.c (NtReadVirtualMemory, NtWriteVirtualMemory):
1585         Release the MDLs used properly.
1586         * ntoskrnl/nt/nt.c: Call the profiling support initialization.
1587         * ntoskrnl/nt/ntevent.c (NtCreateEvent): Don't try copying the
1588         ObjectAttributes parameter if it is NULL.
1589         * ntoskrnl/nt/profile.c: Implemented profiling.
1590
1591 2001-03-16  David Welch  <welch@cwcom.net>
1592
1593         * ntoskrnl/include/internal/safe.h: Corrected typo.
1594         * ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtQueryEvent):
1595         Corrected typos.
1596         * ntoskrnl/rtl/mem.c: Missing header file.
1597
1598 2001-03-16  David Welch  <welch@cwcom.net>
1599
1600         * ntoskrnl/include/internal/safe.h: Add definitions for handling
1601         potentially unsafe pointers.
1602
1603 2001-03-16  David Welch  <welch@cwcom.net>
1604
1605         * ntoskrnl/include/internal/mm.h: Removed MmSafeCopyToUser and
1606         MmSafeCopyFromUser as source files need these but don't want internal 
1607         mm definitions.
1608         * ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtPulseEvent,
1609         NtQueryEvent, NtResetEvent, NtSetEvent): Copy data to and from
1610         user mode safely.
1611         * ntoskrnl/rtl/mem.c (MmCopyToCaller, MmCopyFromCaller): Helper
1612         functions for copying data to and from potentially unsafe pointers.
1613
1614 2000-12-23  David Welch  <welch@cwcom.net>
1615
1616         * All task switching is done in software.
1617         * Beginnings of v86 mode support.
1618
1619 2000-12-22  David Welch  <welch@cwcom.net>
1620
1621         * ntoskrnl/ps/kill.c (PiTerminateProcessThreads): Drop 
1622         PiThreadListLock before calling PsTerminateOtherThread
1623
1624 2000-12-16  David Welch  <welch@cwcom.net>
1625
1626         * ntoskrnl/ex/fmutex.c (ExReleaseFastMutexUnsafe): Only set the
1627         fast mutex's owner back to NULL if it is being released
1628
1629 2000-12-10  David Welch  <welch@cwcom.net>
1630
1631         * ntoskrnl/ke/i386/vm86_sup.S (Ki386RetToV86Mode): Added function
1632         to do the raw switch to v86 mode.
1633         * ntoskrnl/include/internal/vm86.h: Definitions for the v86 mode
1634         support.
1635
1636 2000-12-10  David Welch  <welch@cwcom.net>
1637
1638         * ntoskrnl/ke/i386/trap.s (PsBeginThreadWithContextInternal): Moved
1639         to ntoskrnl/ke/i386/bswitch.S.
1640         * ntoskrnl/ke/i386/trap.s (interrupt_handler2e): Moved to
1641         ntoskrnl/ke/i386/syscall.S.
1642         * ntoskrnl/ke/i386/trap.s (old_interrupt_handler2e): Removed.
1643
1644 2000-12-04  David Welch  <welch@cwcom.net>
1645
1646         * ntoskrnl/ke/i386/irq.c (KiInterruptDispatch): Record the last PC 
1647         value for a rescheduled thread.
1648         * ntoskrnl/ke/i386/irqhand.s: Construct a primitive trap frame
1649         in interrupt handlers.  
1650         
1651 2000-08-30  David Welch  <welch@cwcom.net>
1652
1653         * Added calibration of KeStallExecutionProcessor timing
1654           (code from linux 2.2.16).
1655                
1656         * Corrected compilation bugs in user32 library.
1657
1658         * Corrected compilation bugs related to anonymous structs
1659           in ndis code.
1660                
1661         * Pass command line to kernel from loadros.
1662                
1663         * Corrected PIC mask calculation.
1664                
1665 2000-05-27  David Welch <welch@cwcom.net>
1666
1667         * Fixed issue with closing non-existent or already closed
1668           handle.
1669
1670 2000-01-26  David Welch <welch@cwcom.net>
1671
1672         * ZwCreateProcess now maps ntdll rather than the user-mode
1673           code.
1674
1675 1999-09-06  David Welch <welch@cwcom.net>
1676
1677         * Implemented ZwOpenProcess.
1678                
1679         * Partially implemented killing other threads (possible memory
1680           leaks).
1681                
1682         * Made a start on a proper implemention of APCs (based on 
1683           article in NT insider).
1684
1685 1998-12-08  David Welch <welch@cwcom.net>
1686
1687         * Corrected bug in shell (Read two keypresses and assumed they
1688           where the key going up and down respectively).
1689                
1690         * Corrected race in dpc handling.
1691                
1692         * Took out cleanup sections in ZwReadFile (now handled by the 
1693           APC).
1694                
1695         * Disabled broken code in kernel32.
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705