Compare commits

...

2773 Commits

Author SHA1 Message Date
The ReactOS Team
62e4d8d844 This commit was manufactured by cvs2svn to create tag 'krnl0102'.
svn path=/tags/krnl0102/; revision=4997
2003-07-02 21:10:16 +00:00
Gé van Geldorp
d24db59ab5 Version 0.1.2
svn path=/trunk/; revision=4996
2003-07-02 21:10:16 +00:00
Steven Edwards
ad5a04b000 Add another stub (SetDebugErrorLevel) for dependancy walker.
svn path=/trunk/; revision=4995
2003-07-01 23:09:09 +00:00
Richard Campbell
c43774d9fe more exports...hate doing this manually...
svn path=/trunk/; revision=4994
2003-07-01 01:03:49 +00:00
Richard Campbell
677110b2cc New ROS User32...doesn't work...doesn't even compile...not even CLOSE to being complete...(no dllmain yet for instance...)
svn path=/trunk/; revision=4993
2003-06-30 22:17:37 +00:00
guido
1f77515cad last bit of .cvsignore updates
svn path=/trunk/; revision=4992
2003-06-29 21:12:24 +00:00
guido
0eb42760a8 another day of janitor stuff
svn path=/trunk/; revision=4991
2003-06-29 21:05:54 +00:00
Casper Hornstrup
397aee4126 Readd windows.h as it is needed for cross-compilation.
svn path=/trunk/; revision=4990
2003-06-29 12:30:20 +00:00
guido
f5c3d860c3 still more .cvsignore maintenance
svn path=/trunk/; revision=4989
2003-06-28 23:30:11 +00:00
guido
19a10245f0 again more .cvsignore maintenance
svn path=/trunk/; revision=4988
2003-06-28 23:10:02 +00:00
guido
4dd0876325 more .cvsignore maintenance
svn path=/trunk/; revision=4987
2003-06-28 23:09:27 +00:00
guido
258e83341b .cvsignore maintenance
svn path=/trunk/; revision=4986
2003-06-28 23:04:41 +00:00
Gé van Geldorp
9389c797ef Implement clipping for bitblt operations
svn path=/trunk/; revision=4985
2003-06-28 08:39:18 +00:00
Hartmut Birr
5e61f5b601 - Disabled TAG_STATISTICS_TRACKING.
svn path=/trunk/; revision=4984
2003-06-27 21:35:05 +00:00
Steven Edwards
66cc55e3e3 Remove unneed windows.h
svn path=/trunk/; revision=4983
2003-06-27 21:33:25 +00:00
Hartmut Birr
9195641c84 - Fixed some locking problems during different processes access the same sections (dlls).
- Reduced the overhead in MmCreateImageSection if for a file the caching is initialized already.
- Moved some values from SECTION_OBJECT to MM_IMAGE_SECTION_OBJECT.
- Removed the lock from SECTION_OBJECT.

svn path=/trunk/; revision=4982
2003-06-27 21:28:30 +00:00
Gé van Geldorp
8abf146aac Add architecture define to CFLAGS
svn path=/trunk/; revision=4981
2003-06-27 21:17:35 +00:00
Gé van Geldorp
d7ce70741b Small fixes for newer MinGW version
svn path=/trunk/; revision=4980
2003-06-27 21:10:35 +00:00
Steven Edwards
08ce61d1c2 CreateFileMapping Patch by Hartmut Birr for MSYS applications.
(No they still dont work)

svn path=/trunk/; revision=4979
2003-06-27 20:15:17 +00:00
Hartmut Birr
fcde5c2e54 - Call the FSD if the volume is mounted in IoVerifyVolume.
svn path=/trunk/; revision=4978
2003-06-27 19:00:33 +00:00
Casper Hornstrup
b36ca324a9 2003-06-27 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/user32/controls/button.c (ButtonWndProc_comm): Fix unsigned/signed
	warning.

svn path=/trunk/; revision=4977
2003-06-27 17:49:07 +00:00
Steven Edwards
bf1abd5a1c Enable stubs for a few functions needed by dependancy walker.
Add new file stubs.c for the functions I didnt know where to place.

svn path=/trunk/; revision=4976
2003-06-27 15:19:19 +00:00
Eric Kohl
f99f43d367 Disabled potentially misleading error message.
svn path=/trunk/; revision=4975
2003-06-27 00:16:33 +00:00
Hartmut Birr
8aca12db20 - Revert the last changes. Support for removable medias needs more investigations.
svn path=/trunk/; revision=4974
2003-06-26 22:01:02 +00:00
Gé van Geldorp
c2f1fc8975 Implement SelectClipRgn() (note: this does NOT mean that clipping is
working now!)

svn path=/trunk/; revision=4973
2003-06-26 21:52:40 +00:00
Eric Kohl
352ebc2a24 Added cdrom IOCTLs.
svn path=/trunk/; revision=4972
2003-06-26 20:02:03 +00:00
Eric Kohl
60c39669a2 Added two NOPs.
FreeLoader can now be built using MinGW.

svn path=/trunk/; revision=4971
2003-06-26 15:16:36 +00:00
Gé van Geldorp
1d4c92223c Remove reference to ps.h
svn path=/trunk/; revision=4970
2003-06-26 06:31:49 +00:00
Steven Edwards
d6cb5e2e20 removed combobox file. code implemented in ported wine control
svn path=/trunk/; revision=4969
2003-06-26 00:14:15 +00:00
Steven Edwards
cefbfd89ed Updated license information with date.
svn path=/trunk/; revision=4968
2003-06-26 00:04:49 +00:00
Steven Edwards
76e2bc6284 Added combobox control ported from WINE
Added controls.h header to hold missing
defines and structures until w32api is in sync.

svn path=/trunk/; revision=4967
2003-06-26 00:01:34 +00:00
Gé van Geldorp
9aea24bfae On thread termination, destroy all windows owned by that thread
svn path=/trunk/; revision=4966
2003-06-25 22:37:07 +00:00
Gé van Geldorp
91e44fd859 Fix polygon outline special case and min/max caption buttons
svn path=/trunk/; revision=4965
2003-06-25 16:55:33 +00:00
Eric Kohl
a547aaf0c5 Added checksum calculation to PnPBiosSupported().
Patch by Petr Matousek.

svn path=/trunk/; revision=4964
2003-06-25 13:56:04 +00:00
Eric Kohl
676160308e Verify storage device upon file open request.
svn path=/trunk/; revision=4963
2003-06-24 21:34:41 +00:00
Eric Kohl
db571ee907 Implemented several IOCTLs.
Improved error handling/reporting.

svn path=/trunk/; revision=4962
2003-06-24 21:32:15 +00:00
Eric Kohl
7cc3dd52bb Merged duplicate code.
svn path=/trunk/; revision=4961
2003-06-24 21:30:08 +00:00
Eric Kohl
0059d716a1 Minor cleanup.
svn path=/trunk/; revision=4960
2003-06-24 12:39:08 +00:00
Eric Kohl
b209c5a96e Allocate a sense data buffer for each disk device.
svn path=/trunk/; revision=4959
2003-06-24 12:38:00 +00:00
Eric Kohl
39825a170b Minor cleanup.
svn path=/trunk/; revision=4958
2003-06-24 12:31:40 +00:00
Eric Kohl
1b854f5f2a Added more stuff to the IDENTIFY data block.
Added support for the TEST UNIT READY command.
Combined various booleans in a flags variable.

svn path=/trunk/; revision=4957
2003-06-24 12:29:02 +00:00
Eric Kohl
b6b732c937 Removed unused variable.
svn path=/trunk/; revision=4956
2003-06-24 12:22:14 +00:00
Gé van Geldorp
59a5712e45 Start scan for PnP$ signature at low end (0xf0000)
svn path=/trunk/; revision=4955
2003-06-24 11:41:58 +00:00
Gé van Geldorp
f974b5e263 Pass failures up the chain
svn path=/trunk/; revision=4954
2003-06-24 11:34:28 +00:00
Richard Campbell
0ceda3461a Some small fixes...more soon
svn path=/trunk/; revision=4953
2003-06-24 00:55:02 +00:00
Richard Campbell
a2ad470fa7 ewps
svn path=/trunk/; revision=4952
2003-06-23 21:16:01 +00:00
Richard Campbell
3fa6478075 Button test (used GvG's static control test as a template.)
svn path=/trunk/; revision=4951
2003-06-23 16:01:20 +00:00
Richard Campbell
d570317697 blah i need to stop having those late night coding sessions :P
Register the button control class

svn path=/trunk/; revision=4950
2003-06-23 14:46:17 +00:00
Richard Campbell
23ed82d969 Ported the button control from wine. This is untested, but will probably work, haven't written a test app yet, will do so when i have more time :)
Implements:
  - Pushbutton
  - RadioButton
  - CheckBox

svn path=/trunk/; revision=4949
2003-06-23 10:10:51 +00:00
Gé van Geldorp
a0f42417ab Implemented GetTextExtentPoint32() and fix GetTextExtentPoint()
svn path=/trunk/; revision=4948
2003-06-22 21:33:48 +00:00
guido
96b4efbbd6 fixed warning
svn path=/trunk/; revision=4947
2003-06-22 19:51:14 +00:00
guido
08aacf7745 fixed slashes
svn path=/trunk/; revision=4946
2003-06-22 19:43:53 +00:00
Steven Edwards
f6f96aa6c6 Ported icontitle control from WINE
svn path=/trunk/; revision=4945
2003-06-22 19:18:17 +00:00
Steven Edwards
cbb3e1c384 Added Icontitle Control
svn path=/trunk/; revision=4944
2003-06-22 19:17:18 +00:00
Eric Kohl
ee442cb63a Added missing SCSI pass-through structures.
svn path=/trunk/; revision=4943
2003-06-22 16:35:58 +00:00
Eric Kohl
eab41528ac Added missing disk io control codes.
svn path=/trunk/; revision=4942
2003-06-22 16:33:44 +00:00
Hartmut Birr
2f0c098757 - Allocate the pipe buffer at creation time.
- Interprete the given buffer size.
- Interprete the given direction (inbound, outbound or both).
- The handling of read/write request in message mode is possible incorrect.

svn path=/trunk/; revision=4941
2003-06-21 19:55:55 +00:00
Eric Kohl
246369270a Implemented NLS functions.
svn path=/trunk/; revision=4940
2003-06-21 18:06:11 +00:00
Jurgen van Gael
ea98149a49 Partial GetAdaptersInfo implementation in order to get ipconfig running.
svn path=/trunk/; revision=4939
2003-06-21 16:04:09 +00:00
Gé van Geldorp
500b7199f9 Bounds checking in MmMarkPage(Un)Mapped, call MmMarkPageMapped from
MmMapIoSpace() for symmetry with MmUnmapIoSpace()

svn path=/trunk/; revision=4938
2003-06-21 14:30:42 +00:00
Gé van Geldorp
ba8e03d72f Implement display ownership, also makes ATI Rage 3rd party video driver
runnable

svn path=/trunk/; revision=4937
2003-06-21 14:25:30 +00:00
guido
a9b7d71462 Fixed cdmake on linux, if D_TYPE is not supported.
svn path=/trunk/; revision=4936
2003-06-21 09:11:24 +00:00
Eric Kohl
58b09f3345 Initial work on error logging.
svn path=/trunk/; revision=4935
2003-06-20 22:43:27 +00:00
Eric Kohl
627e330d0d Disable debug messages.
svn path=/trunk/; revision=4934
2003-06-20 18:19:29 +00:00
Eric Kohl
ea01cf3f1f Enable automatic initialization and termination of Win32 threads and processes.
svn path=/trunk/; revision=4933
2003-06-20 16:26:53 +00:00
Gé van Geldorp
76d1058fc3 Map video memory based on actual size of screen
svn path=/trunk/; revision=4932
2003-06-20 13:04:09 +00:00
Gé van Geldorp
7704a6609a Remove debug breakpoint
svn path=/trunk/; revision=4931
2003-06-20 10:37:23 +00:00
Emanuele Aliberti
3f1690fdbd KERNEL32.GetConsoleWindow implemented
KERNEL32.GetConsoleHardwareState implemented (undoc;incompatible)
KERNEL32.SetConsoleHardwareState implemented (undoc;incompatible)

Console window's handle is actually not returned because csrss does not create a window for each allocated console.

HardwareState is undocumented. Only size of the returned/set data is the same as NT's.

svn path=/trunk/; revision=4930
2003-06-19 19:38:26 +00:00
Gé van Geldorp
3be996ffc4 Revert last change
svn path=/trunk/; revision=4929
2003-06-19 19:01:01 +00:00
Gé van Geldorp
9ad6e7c184 Implement EngQueryPerformanceFrequency, EngQueryPerformanceCounter and
partly Eng(Un)SecureMem

svn path=/trunk/; revision=4928
2003-06-19 17:13:28 +00:00
Gé van Geldorp
86d2a51a17 Implement VideoPortSynchronizeExecution() and VideoPortScanRom()
svn path=/trunk/; revision=4927
2003-06-19 16:04:05 +00:00
Gé van Geldorp
b5c47abf10 Implement KeQueryPerformanceCounter() and move all timer related stuff to
a single file timer.c

svn path=/trunk/; revision=4926
2003-06-19 16:00:03 +00:00
Gé van Geldorp
17b476d572 Implement VideoPortSynchronizeExecution() and VideoPortScanRom()
svn path=/trunk/; revision=4925
2003-06-19 15:57:45 +00:00
Gé van Geldorp
96d9fbe944 Don't mark pages as unmapped when releasing them via MmUnmapIoSpace
svn path=/trunk/; revision=4924
2003-06-19 15:48:39 +00:00
KJK::Hyperion
c37620bed9 Cosmetics...
svn path=/trunk/; revision=4923
2003-06-19 03:17:56 +00:00
KJK::Hyperion
bf7fd7c66e Updated D-Flat/32 readme (removed TODO item about naming conventions)
svn path=/trunk/; revision=4922
2003-06-19 02:52:02 +00:00
KJK::Hyperion
ec3b369d83 Renamed ALL DFlat32 symbols to include a Df/DF/DF_/DFM_ prefix. Compiles and works fine, apparently
svn path=/trunk/; revision=4921
2003-06-19 02:48:13 +00:00
Hartmut Birr
c4c8ee8bec - Fixed the install and dist rule for static libraries.
- Build user mode images without debug symbols.
- Build map files for each image.

svn path=/trunk/; revision=4920
2003-06-17 19:40:08 +00:00
Gé van Geldorp
58bf81b39f Call InitializeVideoAddressSpace() before opening the display device, so
the display open routine can make INT10 calls

svn path=/trunk/; revision=4919
2003-06-17 13:55:16 +00:00
Eric Kohl
79cd3ca256 Disable debug messages.
svn path=/trunk/; revision=4918
2003-06-17 10:52:56 +00:00
Eric Kohl
21ef04df28 Initialize pointers to lead byte info tables.
svn path=/trunk/; revision=4917
2003-06-17 10:44:16 +00:00
Eric Kohl
b905ce98aa Fixed NtAdjustPrivilegeToken() and SeSinglePrivilegeCheck().
svn path=/trunk/; revision=4916
2003-06-17 10:42:37 +00:00
Gé van Geldorp
a2be00bf0e Fix processing of com port options
svn path=/trunk/; revision=4915
2003-06-17 10:39:43 +00:00
Hartmut Birr
df3bf6cc39 - something was wrong with the previous checkin.
svn path=/trunk/; revision=4914
2003-06-16 19:41:56 +00:00
Hartmut Birr
1d64761f02 - Restart the access fault handler if the return value is STATUS_MM_RESTART_OPERATION.
svn path=/trunk/; revision=4913
2003-06-16 19:20:28 +00:00
Hartmut Birr
11eb72da00 - Fixed the test for context flags because the architecture flag is always set.
svn path=/trunk/; revision=4912
2003-06-16 19:19:30 +00:00
Hartmut Birr
f56c6ce607 - Removed the architecture flag while checking the context flag.
- Fixed the test for math support.

svn path=/trunk/; revision=4911
2003-06-16 19:18:48 +00:00
Hartmut Birr
5ce7ebb682 - Fixed the delivering of pending dpcs in KiDispatchInterrupt.
- Raise the irql before acquiring the lock in KeRemoveQueueDpc.

svn path=/trunk/; revision=4910
2003-06-16 19:18:14 +00:00
Hartmut Birr
c4bb72e4ce - Decrement the pending apc count while holding the lock in KiDeliverUserApc.
- Restart the scanning through the apc list if there was released the lock in KiDeliverApc.

svn path=/trunk/; revision=4909
2003-06-16 19:17:45 +00:00
Hartmut Birr
5f1dae9d19 - Release the lock while accessing pageable user mode buffers in NtReplyWaitReceivePortEx.
svn path=/trunk/; revision=4908
2003-06-16 19:17:08 +00:00
Hartmut Birr
b13e656c10 - Remove only the necessary page count from cache in CcRosTrimCache.
svn path=/trunk/; revision=4907
2003-06-16 19:16:32 +00:00
Hartmut Birr
d62b3b42e8 - Fixed the check for an existing paging file.
svn path=/trunk/; revision=4906
2003-06-16 19:15:57 +00:00
Eric Kohl
322b60c160 Added service table pointer to KTHREAD.
svn path=/trunk/; revision=4905
2003-06-16 16:45:52 +00:00
Gé van Geldorp
8726fa1797 Unicode windows not supported yet, convert to Ascii
svn path=/trunk/; revision=4904
2003-06-16 14:05:02 +00:00
Eric Kohl
1cffd5317b Fixed yet another buggy debug message.
svn path=/trunk/; revision=4903
2003-06-16 14:00:51 +00:00
Eric Kohl
6b85686432 Fixed buggy debug message
svn path=/trunk/; revision=4902
2003-06-16 13:56:30 +00:00
Gé van Geldorp
4345b27024 Introduce WNDCLASS(EX)A/W
svn path=/trunk/; revision=4901
2003-06-16 13:56:09 +00:00
Gé van Geldorp
065af84ed5 Static control test application by Radoslaw Sokol
svn path=/trunk/; revision=4900
2003-06-16 13:51:16 +00:00
Gé van Geldorp
4d4af768ba First shot at STATIC control
svn path=/trunk/; revision=4899
2003-06-16 13:46:26 +00:00
Gé van Geldorp
628c166c14 Handle NULL window name
svn path=/trunk/; revision=4898
2003-06-16 13:43:16 +00:00
Gé van Geldorp
5b1bf6da3b Introduce WNDCLASS(EX)A/W
svn path=/trunk/; revision=4897
2003-06-16 13:10:01 +00:00
Steven Edwards
e752a43c37 Gcc 3.x end of line warning fixes
svn path=/trunk/; revision=4896
2003-06-15 21:20:34 +00:00
Gé van Geldorp
acf78985a1 Fixes to get CS_PARENTDC working
svn path=/trunk/; revision=4895
2003-06-15 20:08:02 +00:00
Richard Campbell
53bf611e09 Implemented FindWindowEx, it's untested, but the code should work, as it's fairly straightfoward...This is only a partial implementation however. It searches all windows regardless...
svn path=/trunk/; revision=4894
2003-06-15 04:25:34 +00:00
Steven Edwards
57a3b7cc34 Turn off SEH Junk some other minor cleanups.
svn path=/trunk/; revision=4893
2003-06-14 22:17:48 +00:00
Gé van Geldorp
60dd268c50 Pass WndProc in call to W32kCallWindowProc, saving a usermode -> kernelmode ->
usermode trip

svn path=/trunk/; revision=4892
2003-06-14 21:21:23 +00:00
Hartmut Birr
6a3ff87ad2 - Fixed the calculation of MiPagesRequired.
- Fixed the calculation of the target in MiRebalanceMemoryConsumers.

svn path=/trunk/; revision=4891
2003-06-14 17:53:25 +00:00
Hartmut Birr
07dd3a3809 - Added a boot option for reducing the used memory size ('/maxmem=used_memory_in_mb').
svn path=/trunk/; revision=4890
2003-06-14 17:46:24 +00:00
Gé van Geldorp
2e437e9b34 Partial implementation of DestroyWindow(), handling child windows
svn path=/trunk/; revision=4889
2003-06-14 10:00:58 +00:00
Gé van Geldorp
9c7d6c225d Do not delete WindowTextAtom on WM_NCDESTROY, default WM_NCCREATE might
not have been called (overridden) messing up the WindowTextAtom ref count

svn path=/trunk/; revision=4888
2003-06-14 09:59:17 +00:00
Gé van Geldorp
814ac65da6 Fix RtlpFreeHandle
svn path=/trunk/; revision=4887
2003-06-14 09:52:57 +00:00
Steven Edwards
eda4cb882d primitives test from the Windows 2000 Graphics API Backbook
Used with permission from Damon Chandler <dmc27@ee.cornell.edu>

Makefile still needs to be converted to ReactOS Makefile
and SEH needs to be disabled.

svn path=/trunk/; revision=4886
2003-06-13 19:39:30 +00:00
Gé van Geldorp
3da2ebbda8 Patch by Hartmut to clean up my mess
svn path=/trunk/; revision=4885
2003-06-11 18:38:44 +00:00
Gé van Geldorp
6e6cbd0cc2 "ext" is a pointer
svn path=/trunk/; revision=4884
2003-06-11 18:37:30 +00:00
Eric Kohl
9ddebf95c5 Added math support routines.
Removed entry point.

svn path=/trunk/; revision=4883
2003-06-11 15:42:31 +00:00
Eric Kohl
398d93b19b Added math support routines.
svn path=/trunk/; revision=4882
2003-06-11 15:38:36 +00:00
Eric Kohl
6fb78880ce Fixed math support routines.
svn path=/trunk/; revision=4881
2003-06-11 12:29:49 +00:00
KJK::Hyperion
649a9d362a - i386/fiber.S: SwitchToFiber: there was data defined in the middle of the function - ooops
- thread.c: ThreadStartup: initialize error code to zero, so that void ThreadMains set the thread's exit code to something that makes sense

svn path=/trunk/; revision=4880
2003-06-09 22:39:48 +00:00
Hartmut Birr
a3048f0254 - Replaced FindFirstFile/FindClose with GetFileAttributesEx.
- Fixed some minor bugs.

svn path=/trunk/; revision=4879
2003-06-09 20:31:13 +00:00
Hartmut Birr
48be1aeb7d - Moved strspn and strcspn to the string library.
svn path=/trunk/; revision=4878
2003-06-09 20:27:14 +00:00
Hartmut Birr
e9f3a8740c - Implemented GetFileAttributesExA/W.
svn path=/trunk/; revision=4877
2003-06-09 19:58:21 +00:00
Eric Kohl
52b40cdd07 Verify checksums of preloaded DLLs.
svn path=/trunk/; revision=4876
2003-06-09 13:45:22 +00:00
Eric Kohl
b99ad0e0a6 Implemented LdrVerifyImageMatchesChecksum().
svn path=/trunk/; revision=4875
2003-06-09 13:44:37 +00:00
Eric Kohl
b7bf13d061 Added full implementations of [Get/Set]ComputerName[A/W].
svn path=/trunk/; revision=4874
2003-06-08 21:00:04 +00:00
Eric Kohl
e7d27b01ee Added default computer name settings.
svn path=/trunk/; revision=4873
2003-06-08 20:56:46 +00:00
Gé van Geldorp
472ebde7ec Fix NtGetContextThread() and implement NtSetContextThread()
svn path=/trunk/; revision=4872
2003-06-07 19:13:43 +00:00
Casper Hornstrup
32f2d198df Add missing file.
svn path=/trunk/; revision=4871
2003-06-07 16:23:46 +00:00
Casper Hornstrup
a86b74f2fe 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/ddk/dbgfuncs.h: Move ...
	* include/ntos/dbgfuncs.h: ... here.
	* include/basetsd.h (LONG32): Make it a long.
	* include/ntos.h: Include ntos/dbgfuncs.h.
	* include/ddk/dbgfuncs.h (DBG_STATUS_*, DBG_GET_SHOW_*): Move to
	include/ntos/dbgfuncs.h.
	* include/ddk/exfuncs.h (ExNotifyCallback): Match w32api prototype.
	(*BinaryTree, *SplayTree, *HashTable): Move to include/ntos/zw.h.
	* include/ddk/extypes.h (TRAVERSE_METHOD, PKEY_COMPARATOR,
	PTRAVERSE_ROUTINE, _BINARY_TREE_NODE, BINARY_TREE, SPLAY_TREE_NODE,
	SPLAY_TREE, HASH_TABLE): Move to include/ntos/zwtypes.h.
	* include/ddk/status.h (STATUS_PATH_SYNTAX_BAD): Rename to
	STATUS_OBJECT_PATH_SYNTAX_BAD.
	* apps/utils/objdir/objdir.c (StatusToName): Change
	STATUS_PATH_SYNTAX_BAD to STATUS_OBJECT_PATH_SYNTAX_BAD.
	* ntoskrnl/dbg/errinfo.c: Use STATUS_OBJECT_PATH_SYNTAX_BAD.
	* include/ntos/rtl.h (RtlQueryRegistryValues, RtlWriteRegistryValue,
	RtlDeleteRegistryValue): Match w32api prototypes.
	* include/ntos/zw.h (ZwQuerySystemTime): Ditto.
	* lib/kernel32/file/cnotify.c (FindFirstChangeNotificationW): Use
	STATUS_OBJECT_PATH_SYNTAX_BAD.
	* lib/ntdll/rtl/registry.c (RtlDeleteRegistryValue,
	RtlQueryRegistryValues, RtlWriteRegistryValue): Match w32api prototypes.
	* ntoskrnl/cm/cm.h, ntoskrnl/cm/ntfunc.c, ntoskrnl/cm/regfile.c: Change
	FILETIME to LARGE_INTEGER.
	* ntoskrnl/cm/rtlfunc.c (RtlDeleteRegistryValue, RtlQueryRegistryValues,
	RtlWriteRegistryValue): Match w32api prototypes.
	* ntoskrnl/ex/callback.c (ExNotifyCallback): Ditto.
	* ntoskrnl/ex/time.c (NtQuerySystemTime): Ditto.

svn path=/trunk/; revision=4870
2003-06-07 16:16:39 +00:00
Hartmut Birr
a47b482b97 - Dereference the process object in W32kCleanupForProcess.
svn path=/trunk/; revision=4869
2003-06-07 12:37:01 +00:00
Casper Hornstrup
39c92c6522 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
* hal/halx86/dma.c (AdapterObjects): Don't put braces on scalar
	initializers.

svn path=/trunk/; revision=4868
2003-06-07 12:25:53 +00:00
Casper Hornstrup
685119e0cd 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* include/ddk/obfuncs.h (ObCreateObject): Remove.
	* include/ntos/zwtypes.h (ObRosCreateObject): Add.
	* ntoskrnl/ntoskrnl.def, ntoskrnl/ntoskrnl.edf: Export ObCreateObject@36
	and ObRosCreateObject@20.
	* ntoskrnl/cm/ntfunc.c, ntoskrnl/cm/registry.c, ntoskrnl/cm/regobj.c,
	ntoskrnl/io/create.c, ntoskrnl/io/device.c, ntoskrnl/io/iocomp.c,
	ntoskrnl/lpc/connect.c, ntoskrnl/lpc/create.c, ntoskrnl/mm/section.c,
	ntoskrnl/nt/evtpair.c, ntoskrnl/nt/mutant.c, ntoskrnl/nt/ntevent.c,
	ntoskrnl/nt/ntsem.c, ntoskrnl/nt/nttimer.c, ntoskrnl/nt/profile.c,
	ntoskrnl/ob/dirobj.c, ntoskrnl/ob/namespc.c, ntoskrnl/ob/symlink.c,
	ntoskrnl/ps/create.c, ntoskrnl/ps/process.c, ntoskrnl/se/token.c,
	subsys/win32k/ntuser/winsta.c: Use ObRosCreateObject, not ObCreateObject.
	* ntoskrnl/ob/object.c (ObRosCreateObject): Rename from ObCreateObject.
	(ObCreateObject): Add stub.

svn path=/trunk/; revision=4867
2003-06-07 12:23:14 +00:00
Casper Hornstrup
1e6c809d07 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* include/ddk/obfuncs.h (ObCreateObject): Remove.
	* include/ntos/zwtypes.h (ObRosCreateObject):
	* ntoskrnl/ntoskrnl.def, ntoskrnl/ntoskrnl.edf: Export ObCreateObject@36
	and ObRosCreateObject@20.
	* ntoskrnl/cm/ntfunc.c, ntoskrnl/cm/registry.c, ntoskrnl/cm/regobj.c,
	ntoskrnl/io/create.c, ntoskrnl/io/device.c, ntoskrnl/io/iocomp.c,
	ntoskrnl/lpc/connect.c, ntoskrnl/lpc/create.c, ntoskrnl/mm/section.c,
	ntoskrnl/nt/evtpair.c, ntoskrnl/nt/mutant.c, ntoskrnl/nt/ntevent.c,
	ntoskrnl/nt/ntsem.c, ntoskrnl/nt/nttimer.c, ntoskrnl/nt/profile.c,
	ntoskrnl/ob/dirobj.c, ntoskrnl/ob/namespc.c, ntoskrnl/ob/symlink.c,
	ntoskrnl/ps/create.c, ntoskrnl/ps/process.c, ntoskrnl/se/token.c,
	subsys/win32k/ntuser/winsta.c: Use ObRosCreateObject, not ObCreateObject.
	* ntoskrnl/ob/object.c (ObRosCreateObject): Rename from ObCreateObject.
	(ObCreateObject): Add stub.

svn path=/trunk/; revision=4866
2003-06-07 12:17:20 +00:00
Casper Hornstrup
922b9fdf46 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* include/ddk/cctypes.h (PREACTOS_COMMON_FCB_HEADER): Remove.
	(FSRTL_COMMON_FCB_HEADER): Add.
	* include/ddk/iotypes.h (FILE_OBJECT): Rename field
	SectionObjectPointers to SectionObjectPointer.
	* ntoskrnl/cc/copy.c, ntoskrnl/cc/misc.c, ntoskrnl/cc/pin.c,
	ntoskrnl/cc/view.c, ntoskrnl/io/rawfs.c, ntoskrnl/mm/section.c,
	drivers/fs/cdfs/cleanup.c, drivers/fs/cdfs/fcb.c,
	drivers/fs/cdfs/fsctl.c, drivers/fs/ntfs/fcb.c, drivers/fs/ntfs/fsctl.c,
	drivers/fs/vfat/close.c, drivers/fs/vfat/create.c,
	drivers/fs/vfat/finfo.c, drivers/fs/vfat/fcb.c, drivers/fs/vfat/fsctl.c:
	Use new	FILE_OBJECT structure.
	* drivers/fs/cdfs/cdfs.h, drivers/fs/ntfs/ntfs.h, drivers/fs/vfat/vfat.h:
	Use new FSRTL_COMMON_FCB_HEADER structure.
	* drivers/net/afd/include/afd.h (FSRTL_COMMON_FCB_HEADER): Remove.
	* include/ddk/ketypes.h (KQUEUE): Match w32api structure.
	* ntoskrnl/ke/queue.c, ntoskrnl/ke/wait.c: Use new structure.
	* ntoskrnl/ke/spinlock.c (KeAcquireSpinLockAtDpcLevel,
	KeReleaseSpinLockFromDpcLevel): Undefine before declaring.

svn path=/trunk/; revision=4865
2003-06-07 11:34:36 +00:00
Eric Kohl
83f9a49a15 Added RtlRandom() and RtlUniform().
svn path=/trunk/; revision=4864
2003-06-07 11:33:13 +00:00
Casper Hornstrup
cafd29d267 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* include/ddk/ketypes.h (KSPIN_LOCK, PKSPIN_LOCK): Match w32api
	structures.
	* ntoskrnl/ke/spinlock.c: Use new structures.

svn path=/trunk/; revision=4863
2003-06-07 10:37:50 +00:00
Eric Kohl
bdb2981529 Fixed minor bugs in RtlConvertSidToUnicodeString().
svn path=/trunk/; revision=4862
2003-06-07 10:35:27 +00:00
Casper Hornstrup
ebabe56624 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* include/ddk/service.h: Move ...
	* include/ntos/service.h: ... here.
	* include/ddk/kdfuncs.h: Move ...
	* include/ntos/kdfuncs.h: ... here.
	* include/ntos/halfuncs.h: New file.
	* ntoskrnl/include/internal/hal/hal.h,
	ntoskrnl/include/internal/hal/bus.h,
	ntoskrnl/include/internal/hal/mps.h: Remove.
	* hal/halx86/include/hal.h: Remove disabled code.
	* include/ntos.h: Include ntos/service.h, ntos/halfuncs.h, and
	ntos/kdfuncs.h.
	* include/ddk/fstypes.h (FILE_LOCK_TOC): Move ...
	* include/ntos/file.h: ... here.
	* include/ddk/halfuncs.h (HalAllProcessorsStarted,
	HalBeginSystemInterrupt, HalDisableSystemInterrupt,
	HalEnableSystemInterrupt, HalEndSystemInterrupt,
	HalInitializeProcessor, HalInitSystem, HalReportResourceUsage): Move to
	include/ntos/halfuncs.h.
	* include/ddk/iofuncs.h (IoAssignDriveLetters): Ditto.
	* include/ddk/kefuncs.h (KeInitializeApc): Match w32api prototype.
	(KeRaiseIrqlToSynchLevel): Move to include/ntos/halfuncs.h.
	* include/ddk/ketypes.h (KAPC_ENVIRONMENT): Move to include/ntos/types.h.
	(KDEVICE_QUEUE, KDEVICE_QUEUE_ENTRY): Match w32api prototype.
	(KINTERRUPT): Move to include/ntos/zwtypes.h.
	* include/ddk/mmtypes.h (PAGE_ROUND_UP, PAGE_ROUND_DOWN): Move ...
	* include/ntos/mm.h: ... here.
	* include/ddk/ntddk.h: Don't include ddk/kdfuncs.h.
	* include/ddk/pstypes.h (PKTHREAD, PRKTHREAD): Add.
	(PsInitialSystemProcess, PsProcessType, PsThreadType): Move ...
	include/ntos/ps.h: ... here.
	* lib/ntdll/rtl/i386/exception.c (SehpContinue): New.
	* ntoskrnl/rtl/i386/exception.c (SehpContinue): Ditto.
	* ntoskrnl/include/internal/ke.h: Include <ddk/ntifs.h>.
	* ntoskrnl/include/internal/ntoskrnl.h: Include internal/ke.h.
	* ntoskrnl/ex/napi.c: Use new structure SSDT_ENTRY.
	* ntoskrnl/ke/apc.c (KeInitializeApc): Match w32api prototype.
	* ntoskrnl/ke/kqueue.c: Use fields of new structures KDEVICE_QUEUE
	and KDEVICE_QUEUE_ENTRY.

svn path=/trunk/; revision=4861
2003-06-07 10:14:40 +00:00
Emanuele Aliberti
9e0e46f4bd fireball added
svn path=/trunk/; revision=4860
2003-06-07 09:43:16 +00:00
Casper Hornstrup
b6102c5a3c 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/cm/regfile.c (CmiCopyKey): Fix unsigned/signed warning.

svn path=/trunk/; revision=4859
2003-06-07 07:34:54 +00:00
Hartmut Birr
d4c1149b14 - Do not interpret spaces within a quoted string as break marker.
svn path=/trunk/; revision=4857
2003-06-06 21:05:58 +00:00
Hartmut Birr
a72bd6590c - Return ENOENT if the path name contains '*' or '?'.
svn path=/trunk/; revision=4856
2003-06-06 21:04:13 +00:00
Hartmut Birr
705db1eb52 - Do not create cache segments after the end of a file.
svn path=/trunk/; revision=4855
2003-06-06 21:02:42 +00:00
Hartmut Birr
5143077b97 - Fixed the used offset for page table/directory entries and pageops.
svn path=/trunk/; revision=4854
2003-06-06 21:01:36 +00:00
Hartmut Birr
08b4648a0a - Fixed the used offset for page table/directory entries and pageops.
- Use the page directory as page table for short segments.
- Handle zero padded segments (segments which are not complete within a file)
  by using of non dircet mapped non private pages.
- Removed some overhead.
- Fixed the locking of pages and cache segments in MmPageOutDeleteMapping/MmPageOutSectionView.

svn path=/trunk/; revision=4853
2003-06-06 21:00:28 +00:00
Eric Kohl
b694b8942b Implemented NtSaveKey().
svn path=/trunk/; revision=4852
2003-06-06 19:11:02 +00:00
Gé van Geldorp
2730a5ab14 Improve polygon filling, patch by Tim Jobling
svn path=/trunk/; revision=4851
2003-06-06 10:27:43 +00:00
Gé van Geldorp
9ee4f092fc Remove some dead code
svn path=/trunk/; revision=4850
2003-06-06 10:18:32 +00:00
Gé van Geldorp
2b5affa11d Fix CreateDIBSection() and add some stuff to GetDIBits()
svn path=/trunk/; revision=4849
2003-06-06 10:17:44 +00:00
Gunnar Dalsnes
a988e5ab0e -corrected protoype
svn path=/trunk/; revision=4848
2003-06-05 23:38:37 +00:00
Gunnar Dalsnes
aba6a902a2 -impl. process and thread cleanup
svn path=/trunk/; revision=4847
2003-06-05 22:47:47 +00:00
Gunnar Dalsnes
9b53ffc03a -call thread notify routines below DISPATCH_LVL
svn path=/trunk/; revision=4846
2003-06-05 22:45:38 +00:00
Gunnar Dalsnes
1f8cbb88a0 -call process notify routines below DISPATCH_LVL
-enable removal of process notify routines

svn path=/trunk/; revision=4845
2003-06-05 22:45:22 +00:00
Brian Palmer
5320d2eb3f Changes in v1.8.13 (6/05/2003) (brianp)
- Added support for booting Linux 2.4.x kernels
- i386 exception handler now reports FreeLoader version number

svn path=/trunk/; revision=4844
2003-06-05 20:06:48 +00:00
Casper Hornstrup
1179903bd5 2003-06-05 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/user32/windows/icon.c (CURSORICON_FindBestCursor,
	CURSORICON_FindBestIcon): Fix unsigned/signed warning.

svn path=/trunk/; revision=4843
2003-06-05 11:57:12 +00:00
Casper Hornstrup
f2f1a0251b 2003-06-05 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* ntoskrnl/include/internal/i386/ps.h (KPCR_TSS): Redefine as 0x3C.
	(KPCR_TIB): New structure.
	(IKPCR): Ditto.
	(KPCR): Match w32api structure fieldnames.
	* ntoskrnl/ke/main.c (ExpInitializeExecutive): Adjust for changes to KPCR.
	* ntoskrnl/ke/i386/kernel.c: Ditto.
	* ntoskrnl/ps/thread.c: Ditto.

svn path=/trunk/; revision=4842
2003-06-05 11:51:13 +00:00
Marty Dill
55c6517e00 Send WM_STYLECHANGING/WM_STYLECHANGED when setting GWL_STYLE or GWL_EXSTYLE.
svn path=/trunk/; revision=4841
2003-06-05 03:55:36 +00:00
Gunnar Dalsnes
56bcfe5420 -cleanup IoBuildSynchronousFsdRequest
svn path=/trunk/; revision=4840
2003-06-04 21:41:12 +00:00
Gunnar Dalsnes
08b9eddcc0 -Impl. IoGetRelatedDeviceObject
-Impl. IoAttachDevice

svn path=/trunk/; revision=4839
2003-06-04 21:35:37 +00:00
Hartmut Birr
ffe18386b5 - Implemented memmove fot i386 with assembler.
svn path=/trunk/; revision=4838
2003-06-04 18:14:46 +00:00
Hartmut Birr
b49e2bc450 - Clear the direction flag previous each 'rep string' instruction.
svn path=/trunk/; revision=4837
2003-06-04 18:11:16 +00:00
Hartmut Birr
b841a51945 - Fixed a wrong call to OffsetToCluster in VfatSetAllocationSizeInformation (Thanks to Marc Sch�tz).
svn path=/trunk/; revision=4836
2003-06-04 18:01:02 +00:00
Eric Kohl
b1b828a434 Improved icon support. Patch by Tim Jobling.
svn path=/trunk/; revision=4835
2003-06-03 22:26:52 +00:00
Eric Kohl
e25101088c Improved icon support. Patch by tim Jobling.
svn path=/trunk/; revision=4834
2003-06-03 22:23:48 +00:00
Eric Kohl
62b803fe27 Install icon file.
svn path=/trunk/; revision=4833
2003-06-03 22:22:15 +00:00
Eric Kohl
966127468f Add icon as binary file.
svn path=/trunk/; revision=4831
2003-06-03 20:37:01 +00:00
Eric Kohl
277fc435a5 Removed broken icon.
svn path=/trunk/; revision=4830
2003-06-03 20:35:48 +00:00
Jurgen van Gael
7e41bced72 Implemented NtUserGetAncestor with GA_ROOT flag, stops winhello from crashing when clicking on the title bar.
svn path=/trunk/; revision=4828
2003-06-03 15:43:57 +00:00
Eric Kohl
1018ad9087 Point the root key's parent key pointer to the root key to prevent check routines from reporting false positives.
svn path=/trunk/; revision=4827
2003-06-03 07:28:01 +00:00
Eric Kohl
642d896c7b Implemented 'QueryName' method for key objects.
svn path=/trunk/; revision=4826
2003-06-02 16:51:15 +00:00
Eric Kohl
f05c47fa29 Fixed a tiny bug in ObQueryNameString().
svn path=/trunk/; revision=4825
2003-06-02 16:49:33 +00:00
Eric Kohl
002980df9c Fixed ObQueryNameString() for unnamed objects.
svn path=/trunk/; revision=4824
2003-06-02 13:03:15 +00:00
Emanuele Aliberti
881f1cd531 Campbell and Dalsnes added to the coders directory.
By the way:
- who's fireball@mok ?
- how do I add Unicode strings to RC files?

svn path=/trunk/; revision=4823
2003-06-02 12:30:05 +00:00
Eric Kohl
cea34097ce - Implemented ObQueryNameString().
- Added 'QueryName' object function.
- Implemented 'QueryName' function for file objects.

svn path=/trunk/; revision=4822
2003-06-02 10:04:28 +00:00
Hartmut Birr
210252c422 - Update two pde's if the kernel stack crosses a 4MB boundary.
svn path=/trunk/; revision=4821
2003-06-01 19:50:04 +00:00
Hartmut Birr
d4ce775b60 - Fixed the type of the result from open and replace fclose with close.
- Call time with a parameter (WIN32).

svn path=/trunk/; revision=4820
2003-06-01 19:35:28 +00:00
Hartmut Birr
819f2750e9 - Return after cleanup in NtEnumerateKey.
svn path=/trunk/; revision=4819
2003-06-01 19:28:12 +00:00
Hartmut Birr
392a5753ab - Added memccpy.
svn path=/trunk/; revision=4818
2003-06-01 19:23:18 +00:00
Hartmut Birr
4900a6f281 - Removed some files which are replaced by the string library.
svn path=/trunk/; revision=4817
2003-06-01 19:18:09 +00:00
Eric Kohl
c28184bd36 Added missing .cvsignore file. Patch by Michael Fritscher.
svn path=/trunk/; revision=4816
2003-06-01 18:18:02 +00:00
Eric Kohl
25758f18d9 Implemented RtlExtendedMagicDivide() and RtlSelfRelativeToAbsoluteSD(). Patch by Marc Schuetz.
svn path=/trunk/; revision=4815
2003-06-01 18:14:24 +00:00
Eric Kohl
b036cea0eb Implemented RtlExtendedMagicDivide(). Patch by Marc Schuetz.
svn path=/trunk/; revision=4814
2003-06-01 18:13:23 +00:00
Eric Kohl
8eb47000b7 Remobed duplicate functionality and cleaned-up the registry code.
svn path=/trunk/; revision=4813
2003-06-01 17:39:14 +00:00
Hartmut Birr
d197898a75 - Fixed a bug in the section which makes the destination pointer dword aligned.
svn path=/trunk/; revision=4812
2003-06-01 17:10:42 +00:00
Hartmut Birr
cdeedf3bb4 - Do not free the environment strings from the initial environment.
svn path=/trunk/; revision=4811
2003-06-01 17:08:03 +00:00
Hartmut Birr
ec5e98348c - Open CONOUT$ for accessing the console buffer. This fixes the
"GetConsolScreenBufferInfo : error 6" message, if the stdout handle is redirected.

svn path=/trunk/; revision=4810
2003-06-01 17:06:22 +00:00
Eric Kohl
f170e40b0a Fixed remaining object name issues in NtLoadKey2() and NtUnloadKey().
svn path=/trunk/; revision=4809
2003-06-01 15:10:52 +00:00
Eric Kohl
813549499b Preliminary fix for NtQueryObject().
svn path=/trunk/; revision=4808
2003-06-01 15:09:34 +00:00
Casper Hornstrup
05a9cdcf10 2003-06-01 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* include/ntos/zwtypes.h (SYSTEM_MODULES): Rename to
	SYSTEM_MODULE_INFORMATION. Match w32api structure fieldnames.
	(SYSTEM_MODULE_INFORMATION):  Rename to SYSTEM_MODULE_INFORMATION_ENTRY.
	Match w32api structure fieldnames.
	* include/epsapi.h: Include <ntos.h>.
	(PSYSMOD_ENUM_ROUTINE, PsaCaptureSystemModules, PsaWalkSystemModules,
	PsaWalkFirstSystemModule, PsaWalkNextSystemModule): Use
	SYSTEM_MODULE_INFORMATION_ENTRY and SYSTEM_MODULE_INFORMATION structures.
	* lib/epsapi/enum/drivers.c: Use SYSTEM_MODULE_INFORMATION_ENTRY and
	SYSTEM_MODULE_INFORMATION structures.
	* lib/psapi/misc/win32.c: Ditto.
	* ntoskrnl/ldr/loader.c: Ditto.
	* lib/epsapi/enum/modules.c: Include <ntos.h>.
	* lib/ntdll/rtl/thread.c: Ditto.
	* lib/rosrtl/thread/context.c: Ditto.
	* lib/rosrtl/thread/create.c: Ditto.
	* lib/rosrtl/thread/stack.c: Ditto.
	* include/ntos.h: Include "rosrtl/thread.h".
	* include/structs.h (_BLOB_DEFINED): Rename to __BLOB_T_DEFINED.
	* include/winsock2.h: Ditto.
	* include/ntos/obtypes.h (POBJECT_TYPE): Make a pointer to struct
	_OBJECT_TYPE.
	(PHANDLE_TABLE): Make a pointer to struct _HANDLE_TABLE.
	* ntoskrnl/include/internal/mm.h (PSECTION_OBJECT): Make a pointer to
	struct _SECTION_OBJECT.
	* ntoskrnl/include/internal/i386/ps.h (PKPCR): Make a pointer to struct
	_KPCR.

svn path=/trunk/; revision=4807
2003-06-01 14:59:02 +00:00
Steven Edwards
17c104a163 Added named pipe test by Dan Kegel
svn path=/trunk/; revision=4806
2003-05-31 20:26:49 +00:00
Steven Edwards
d29a317edc Changed name of edit control test
svn path=/trunk/; revision=4805
2003-05-31 19:43:59 +00:00
Eric Kohl
ba5a26559b - Implemented RtlAdjustPrivileges().
- Implemented NtAdjustPrivilegesToken() partially.
- Fixed declaration of LUID.

svn path=/trunk/; revision=4804
2003-05-31 11:10:30 +00:00
Gé van Geldorp
5f47cf8a2a Use DPRINT1 instead of DbgPrint
svn path=/trunk/; revision=4803
2003-05-31 08:53:14 +00:00
Gé van Geldorp
f0aa23eb97 Fix some bugs relating to child windows
svn path=/trunk/; revision=4802
2003-05-31 08:51:58 +00:00
Eric Kohl
dea1b856c7 Implemented NtLoadKey2() and NtUnloadKey().
Implementation is still incomplete but functional.

svn path=/trunk/; revision=4801
2003-05-30 22:28:14 +00:00
Eric Kohl
da25678127 Added missing registry options.
svn path=/trunk/; revision=4800
2003-05-30 22:26:25 +00:00
Hartmut Birr
ddeb6c9e87 - Removed files for functions which are used from the string library.
svn path=/trunk/; revision=4799
2003-05-29 18:01:42 +00:00
Eric Kohl
6d2758d3b7 Converted the Registry to Unicode.
Link default user hive to '\Registry\User\.Default'

svn path=/trunk/; revision=4798
2003-05-29 14:09:41 +00:00
Gé van Geldorp
7a7e93c4ab Set height of default fonts to non-zero
svn path=/trunk/; revision=4797
2003-05-29 13:18:39 +00:00
Gé van Geldorp
9906724442 Fix WM_GETTEXT handling
svn path=/trunk/; revision=4796
2003-05-29 13:17:41 +00:00
Eric Kohl
d5d6a165bd Added removal of .d files to 'clean' rule.
svn path=/trunk/; revision=4795
2003-05-29 08:50:23 +00:00
KJK::Hyperion
66080da575 - Kernel32: implemented fibers. Almost complete - only lacks some Windows 2003 Server features (switching the floating point context and Fiber Local Storage functions)
- Kernel32: GetCurrentFiber and GetFiberData are macros, not functions
 - Kernel32: ExitThread now is declared as __declspec(noreturn)
 - RosRtl: two new functions to allocate and free stacks
 - RosRtl: corrected a couple of prototypes

svn path=/trunk/; revision=4794
2003-05-29 00:36:41 +00:00
Steven Edwards
2382d9e48e Add simple edit control test.
- I'm going to try my hand at porting the WINE edit control
  as Richard and Ge work on User32

svn path=/trunk/; revision=4793
2003-05-28 22:14:19 +00:00
Casper Hornstrup
1e2c725f58 2003-05-28 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Update bootcd target.

svn path=/trunk/; revision=4792
2003-05-28 19:53:53 +00:00
Casper Hornstrup
a255631bec 2003-05-28 Casper S. Hornstrup <chorns@users.sourceforge.net>
* subsys/system/usetup/progress.c (ProgressNextStep): Check if NewPos
	is odd.

svn path=/trunk/; revision=4790
2003-05-28 18:35:35 +00:00
Casper Hornstrup
2d947f6f92 2003-05-28 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* include/ddk/haltypes.h: Move ...
	* include/ntos/haltypes.h: ... here.
	* include/ddk/obtypes.h: Move ...
	* include/ntos/obtypes.h: ... here.
	* include/ddk/i386/tss.h: Move ...
	* include/ntos/tss.h: ... here.
	* include/errors.h, include/windows.h: #include_next <windows.h>.
	* include/ntos.h: Include "ntos/haltypes.h", "ntos/obtypes.h", and
	"ntos/tss.h".
	* include/ddk/defines.h (EXPORTED, IMPORTED): Move to
	include/ntos/types.h.
	* include/ddk/exfuncs.h, include/ddk/mmtypes.h, include/ntos/except.h,
	include/ntos/file.h, include/ole32/guiddef.h, include/win32k/color.h,
	lib/msafd/include/debug.h, lib/user32/include/debug.h,
	lib/ws2_32/include/debug.h, lib/ws2help/debug.h,
	ntoskrnl/include/internal/debug.h, ntoskrnl/ke/i386/bthread.S,
	ntoskrnl/rtl/error.c: Don't define macros if previously defined.
	* include/ddk/halfuncs.h: Include <ntos/haltypes.h>.
	* include/ddk/iotypes.h: Include <ntos/obtypes.h>.
	* include/ddk/ketypes.h (MB_FLAGS_*, LOADER_MODULE, ADDRESS_RANGE,
	LOADER_PARAMETER_BLOCK): Move to include/ntos/types.h.
	* include/ddk/ntddk.h: #include_next <ddk/ntddk.h>.
	* include/ddk/ntifs.h: #include_next <ddk/ntifs.h>.
	* include/napi/shared_data.h (SharedUserData): Undefine before defining.
	* include/ntos/rtl.h (RtlUpcaseUnicodeString): Correct prototype.
	* include/ntos/zwtypes.h (THREAD_STATE): Add.
	* lib/ntdll/rtl/unicode.c (RtlUpcaseUnicodeString): Match new prototype.
	* ntoskrnl/rtl/unicode.c (RtlUpcaseUnicodeString): Ditto.
	* lib/string/Makefile: Include Makefile.$(ARCH). Don't include
	makefile.$(ARCH).
	* ntoskrnl/ex/sysinfo.c, ntoskrnl/include/internal/ntoskrnl.h,
	* ntoskrnl/include/internal/ob.h, ntoskrnl/ob/handle.c: Include <ntos.h>.
	* ntoskrnl/ke/i386/syscall.S: Don't include <ddk/defines.h>.
	(KernelMode, UserMode): Define.
	* ntoskrnl/ke/i386/stkswitch.S, ntoskrnl/ke/i386/tskswitch.S,
	ntoskrnl/ke/i386/v86m_sup.S: Include <ntos/tss.h>

svn path=/trunk/; revision=4789
2003-05-28 18:09:10 +00:00
Eric Kohl
91987ce5dc Convert Registry to Unicode. Part 2.
svn path=/trunk/; revision=4788
2003-05-28 16:09:51 +00:00
Eric Kohl
80344c77a6 Use Unicode strings in key objects.
svn path=/trunk/; revision=4787
2003-05-28 12:04:17 +00:00
Eric Kohl
be3c31a2c2 Updated registry key flags. Added missing fix.
svn path=/trunk/; revision=4786
2003-05-27 23:09:11 +00:00
Hartmut Birr
cf33a9ca6e - Forgot icon.ico for icontest.
svn path=/trunk/; revision=4785
2003-05-27 21:02:21 +00:00
Eric Kohl
00d19927ae Implemented spinlock and event functions.
svn path=/trunk/; revision=4784
2003-05-27 20:59:24 +00:00
Hartmut Birr
9bcbb3492c - Added icontest.
svn path=/trunk/; revision=4783
2003-05-27 20:57:11 +00:00
Hartmut Birr
07d2bba441 - Added icontest (contributed by Tim Jobling).
svn path=/trunk/; revision=4782
2003-05-27 20:51:39 +00:00
Hartmut Birr
6796cee74b - Removed files for functions which are used from the string library.
svn path=/trunk/; revision=4781
2003-05-27 20:17:04 +00:00
Hartmut Birr
8761554070 - Link string library to msvcrt.
svn path=/trunk/; revision=4780
2003-05-27 20:07:53 +00:00
Hartmut Birr
7944ef0129 *** empty log message ***
svn path=/trunk/; revision=4779
2003-05-27 20:02:20 +00:00
Hartmut Birr
d9ee350ffd - Link string library to crtdll.
svn path=/trunk/; revision=4778
2003-05-27 20:01:30 +00:00
Hartmut Birr
fac54407bb *** empty log message ***
svn path=/trunk/; revision=4777
2003-05-27 19:49:14 +00:00
Hartmut Birr
3d7e102b13 - Removed strcat, strchr, strcmp, strcpy, strlen, strncat, strncmp, strncpy and strrchr.
svn path=/trunk/; revision=4776
2003-05-27 19:41:10 +00:00
Hartmut Birr
7a6772f94b - Link the string library to ntdll.
svn path=/trunk/; revision=4775
2003-05-27 19:40:20 +00:00
Hartmut Birr
2ba9015708 *** empty log message ***
svn path=/trunk/; revision=4774
2003-05-27 19:28:40 +00:00
Hartmut Birr
7297d83e9f - Removed wcscat, wcschr, wcscmp, wcscpy, wcslen, wcsncat, wcsncmp, wcsncpy and wcsrchr.
svn path=/trunk/; revision=4773
2003-05-27 19:24:04 +00:00
Hartmut Birr
5ae840005e - Removed strcat, strchr, strcmp, strcpy, strlen, strncat, strncmp, strncpy and strrchr.
svn path=/trunk/; revision=4772
2003-05-27 19:22:42 +00:00
Hartmut Birr
ce562b2ba0 - Linked the string library to ntoskrnl.
svn path=/trunk/; revision=4771
2003-05-27 19:21:14 +00:00
Hartmut Birr
e44c02e52b - Added a one rule for static libraries.
- Added static string library.

svn path=/trunk/; revision=4770
2003-05-27 19:02:26 +00:00
Hartmut Birr
34cc922d57 - Added static string library.
svn path=/trunk/; revision=4769
2003-05-27 18:58:15 +00:00
Eric Kohl
28c98fe9b4 Get codepage and casetable files from txtsetup.sif.
svn path=/trunk/; revision=4768
2003-05-27 14:13:41 +00:00
Eric Kohl
1aa2d79e1d Added NLS information.
svn path=/trunk/; revision=4767
2003-05-27 13:59:53 +00:00
Eric Kohl
d5533a3ed7 Updated registry key flags. 0x20 means packed key name.
svn path=/trunk/; revision=4766
2003-05-27 13:58:26 +00:00
Gé van Geldorp
dfe58a3a5c Implement OffsetViewportOrgEx()
svn path=/trunk/; revision=4765
2003-05-27 07:23:05 +00:00
Gé van Geldorp
3c0df75f7c Fixes to UpdateRegion code, implement GetUpdateRgn() and ValidateRgn()
svn path=/trunk/; revision=4764
2003-05-26 18:52:37 +00:00
Richard Campbell
bae47d7a0f Install MultiWin test
svn path=/trunk/; revision=4763
2003-05-26 10:53:37 +00:00
Richard Campbell
7a4f224456 Syncing my changes with tree
svn path=/trunk/; revision=4762
2003-05-26 10:52:15 +00:00
Richard Campbell
2d32e95fa9 Simple Multiple Window Test
svn path=/trunk/; revision=4761
2003-05-26 10:51:20 +00:00
Hartmut Birr
ab5ce5a163 - Fixed the releasing of cache segments on error in ReadCacheSegment/CcCopyWrite/CcCopyRead.
svn path=/trunk/; revision=4760
2003-05-25 21:50:18 +00:00
Hartmut Birr
10acad2b71 - Check if a file object is on the close list and remove it from the list in CcRosRefernceCache.
- Sort the cache segments for the bcb by offsets.

svn path=/trunk/; revision=4759
2003-05-25 21:49:04 +00:00
Eric Kohl
939d5316af - Added .inf-file parser
- SetupLdr loads and uses txtsetup.sif
- Removed .hiv (text-hive) parser

svn path=/trunk/; revision=4758
2003-05-25 21:20:43 +00:00
Eric Kohl
c028a8b5e0 Added OsLoadOptions (kernel command line).
svn path=/trunk/; revision=4757
2003-05-25 21:14:53 +00:00
Richard Campbell
f8758cae49 Small visual fixes, more coming soon.
svn path=/trunk/; revision=4756
2003-05-25 21:05:38 +00:00
Eric Kohl
9526676d67 Removed unused NLS files.
svn path=/trunk/; revision=4755
2003-05-25 17:17:52 +00:00
Eric Kohl
c2b48451a9 Fixed memory-allocation for bins while loading hives.
svn path=/trunk/; revision=4754
2003-05-25 17:16:09 +00:00
Casper Hornstrup
49729ea1ab 2003-05-25 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Fix typo.

svn path=/trunk/; revision=4753
2003-05-25 14:26:28 +00:00
Casper Hornstrup
419b1c5759 2003-05-25 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Don't install system.hiv. Install fonts and nls directory.
	* tools/rcopy.c (copy_file, copy_directory, is_directory): New functions.

svn path=/trunk/; revision=4752
2003-05-25 11:33:58 +00:00
Richard Campbell
ca127f5069 Several small bug fixes, nothing important
svn path=/trunk/; revision=4751
2003-05-25 10:53:05 +00:00
Hartmut Birr
2602dc4fec - Fixed the parameters in two calls to MEMCHECK.
svn path=/trunk/; revision=4750
2003-05-24 17:26:39 +00:00
Hartmut Birr
01a3fd2a8b - Initialize TableBase in PsCreatePeb.
svn path=/trunk/; revision=4749
2003-05-24 17:14:41 +00:00
Eric Kohl
763c776f24 Optimized hive import.
Removed text-hive support.
Removed text-hives.

svn path=/trunk/; revision=4748
2003-05-24 13:19:15 +00:00
Richard Campbell
9b91b02ef8 Actually, compile errors, let me fix first.
svn path=/trunk/; revision=4747
2003-05-23 23:12:02 +00:00
Richard Campbell
34855b5f6b Okay, NtUserFineWindowEx bug fixed.
svn path=/trunk/; revision=4746
2003-05-23 23:08:03 +00:00
Eric Kohl
6528cf1fdc Add experimental jamfiles (still buggy).
svn path=/trunk/; revision=4745
2003-05-23 22:43:03 +00:00
Richard Campbell
04572bc608 - Implemented FindWindowEx*() (it was already implemented in subsys\win32k\ntuser\window.c with the exception of a small bug, but wasn't mapped to by user32??) FIXED
- FindWindow() is also implemented, though not properly. (Someone has it set up to use FindWindowEx, this isn't the proper way to do this...FindWindow doesn't search children...)

svn path=/trunk/; revision=4744
2003-05-23 17:07:12 +00:00
Richard Campbell
832463b116 Implement GetDesktopWindow()
svn path=/trunk/; revision=4743
2003-05-23 16:44:12 +00:00
Steven Edwards
c3234a4ad8 Patch by Tim Jobling - Fix unhandled exception in bitblt test.
svn path=/trunk/; revision=4742
2003-05-22 21:41:20 +00:00
Gé van Geldorp
fe8db53413 Add DebugOut device driver
svn path=/trunk/; revision=4741
2003-05-22 15:11:29 +00:00
Gunnar Dalsnes
5882d8441a -Dereference thread
-Reduce/fix handle-less-timer bitmap

svn path=/trunk/; revision=4740
2003-05-22 02:07:22 +00:00
Gunnar Dalsnes
e76a3a5ab0 -Fixed FileObject/Event dereferencing at IRP completion problem
-Reworked IRP completion rotuines
-io/irp.c: Reworked IoIsOperationSynchronous
-afd/opnclose.c: Fixed bug where CCB was freed twice
-io/create.c: changed Lock event in FileObject from NotificationEvent to SynchronizationEvent

svn path=/trunk/; revision=4739
2003-05-22 00:47:04 +00:00
Gé van Geldorp
5af5f51b74 - Implement WaitMessage()
- Rearrange message code to avoid code duplication
- Fix bugs, mainly in signaling new messages
- Include Hartmut's fix of 2003/03/26

svn path=/trunk/; revision=4738
2003-05-21 22:58:43 +00:00
Brian Palmer
f152732d04 Lot's of fixes for the FAT12/16 boot sector code.
svn path=/trunk/; revision=4737
2003-05-21 20:28:13 +00:00
Eric Kohl
faa8f94f27 Use NLS-Section in user-mode.
svn path=/trunk/; revision=4736
2003-05-21 16:11:02 +00:00
Eric Kohl
17ad474bcb Minor update
svn path=/trunk/; revision=4735
2003-05-21 16:09:30 +00:00
Eric Kohl
d043a91017 Removed unused NLS stuff.
Cleaned-up PEB initialization.

svn path=/trunk/; revision=4734
2003-05-21 15:06:33 +00:00
Hartmut Birr
aa2f971da2 - Fixed the calculation of the TopAddress in MmFindGapTopDown.
svn path=/trunk/; revision=4733
2003-05-20 18:56:25 +00:00
Eric Kohl
562eeb5ceb Finished kernel-mode part of NLS section implementation.
svn path=/trunk/; revision=4732
2003-05-20 14:38:05 +00:00
Eric Kohl
74592b5432 Implemented NDIS timer functions.
svn path=/trunk/; revision=4731
2003-05-20 13:00:41 +00:00
Gé van Geldorp
ecd7b2f8f3 Handle SetWindowText() across Unicode/Ansi conversions
svn path=/trunk/; revision=4730
2003-05-19 20:11:17 +00:00
guido
c1cf7ec993 commented out some duplicate defines
svn path=/trunk/; revision=4729
2003-05-19 19:42:30 +00:00
Gé van Geldorp
388f86d19c Implement GetSysColor()
svn path=/trunk/; revision=4728
2003-05-19 18:36:43 +00:00
Hartmut Birr
58781325ac - Release the rmap list lock also, if the address is in kernel space.
svn path=/trunk/; revision=4727
2003-05-19 15:58:09 +00:00
Eric Kohl
7e921a40c1 Implemented NLS file import.
svn path=/trunk/; revision=4726
2003-05-19 14:39:09 +00:00
Eric Kohl
e76752c103 Load NLS files.
Add basic support for installing ReactOS from floppy disks.

svn path=/trunk/; revision=4725
2003-05-19 09:58:50 +00:00
Eric Kohl
031f55682e Removed obsolete settings.
svn path=/trunk/; revision=4724
2003-05-19 09:51:34 +00:00
Gé van Geldorp
7bd3409f53 Recompute scrollbar positions in case window changed size
svn path=/trunk/; revision=4723
2003-05-18 22:11:41 +00:00
Gé van Geldorp
94571478d5 Send WM_NCPAINT and WM_ERASEBKGND messages when making a window visible
svn path=/trunk/; revision=4722
2003-05-18 22:09:08 +00:00
Gé van Geldorp
15073977b6 Remove WINDOWOBJECT_NEED_BEGINPAINT flag since calling BeginPaint in a
WM_PAINT handler is not strictly required

svn path=/trunk/; revision=4721
2003-05-18 22:07:02 +00:00
guido
97c3fae178 proper CFLAGS when DBG=0
svn path=/trunk/; revision=4720
2003-05-18 21:17:33 +00:00
Eric Kohl
f1d44624af Fixed wrong argument order.
svn path=/trunk/; revision=4718
2003-05-18 19:37:20 +00:00
Emanuele Aliberti
b44dda2928 I forgot to remove debug code in MouseGDICallBack.
svn path=/trunk/; revision=4717
2003-05-18 19:30:55 +00:00
Emanuele Aliberti
c0bb24f7ad Fix for a bug I introduced declaring FASTCALL MouseGDICallBack.
svn path=/trunk/; revision=4716
2003-05-18 19:21:24 +00:00
Emanuele Aliberti
fec738c6cb WIN32K code cleanup.
Prefer FASTCALL/STDCALL in kernel mode code.
Make compiler check function signatures.
Tested under BOCHS 2.0.2 + FreeDOS + loadros.

svn path=/trunk/; revision=4715
2003-05-18 17:22:31 +00:00
Emanuele Aliberti
982fd1f286 WIN32K code cleanup.
Prefer FASTCALL/STDCALL in kernel mode code.
Make compiler check function signatures.
Tested under BOCHS 2.0.2 + FreeDOS + loadros.

svn path=/trunk/; revision=4714
2003-05-18 17:16:18 +00:00
Emanuele Aliberti
6955ff7e6e RECT *is* RECTL
svn path=/trunk/; revision=4713
2003-05-18 17:12:11 +00:00
Eric Kohl
df24b9bb9a Add known DLLs.
Install NLS files.

svn path=/trunk/; revision=4712
2003-05-18 15:22:52 +00:00
Eric Kohl
e35e42758a Remove the INSTALL directory of the Boot-CD.
svn path=/trunk/; revision=4711
2003-05-18 15:21:30 +00:00
Eric Kohl
2cd0a85f57 Do not overwrite existing hive files.
Add hive header checksum.

svn path=/trunk/; revision=4710
2003-05-18 13:50:58 +00:00
Eric Kohl
bcef4d4f0e Fixed .inf parser to accept DOS and *nix files.
svn path=/trunk/; revision=4709
2003-05-18 12:50:17 +00:00
Eric Kohl
e568d2b165 Parse DOS and *nix text files correctly.
svn path=/trunk/; revision=4708
2003-05-18 12:12:07 +00:00
Gé van Geldorp
19c81674a3 Implement SetWindowPos()
svn path=/trunk/; revision=4707
2003-05-18 07:51:41 +00:00
Gé van Geldorp
7ba70583b9 Generate WM_PAINT messages in PeekMessage()
svn path=/trunk/; revision=4706
2003-05-18 06:47:19 +00:00
Eric Kohl
397169c1a8 Added new MEMORY_AREA_NO_ACCESS type.
Make the top and bottom 64KB of process memory space and the 60KB above the shared user page from unaccessible.
Introduced MmSystemRangeStart.

svn path=/trunk/; revision=4705
2003-05-17 19:16:39 +00:00
Eric Kohl
e1c437438c Implemented Top-Down-Allocator.
svn path=/trunk/; revision=4704
2003-05-17 15:29:50 +00:00
Gé van Geldorp
c865c87d30 When sending WM_WINDOWPOSCHANGING and WM_WINDOWPOSCHANGED messages from
Win32k, make sure the WINDOWPOS structure referenced by lParam is located
in user space

svn path=/trunk/; revision=4703
2003-05-17 14:37:23 +00:00
Gé van Geldorp
b41ecb619a When sending WM_WINDOWPOSCHANGING and WM_WINDOWPOSCHANGED messages from
Win32k, make sure the WINDOWPOS structure referenced by lParam is located
in user space

svn path=/trunk/; revision=4702
2003-05-17 14:30:28 +00:00
Hartmut Birr
9ad263f04e - Reference/Dereference the process object only for adresses within user space.
svn path=/trunk/; revision=4701
2003-05-17 13:46:05 +00:00
Hartmut Birr
f5048a6a3b - Initialize the page directory for a new process from global kernel page directory in MmCopyMmInfo.
- Check for kernel or user space in MmIsAccessedAndResetAcessPage/MmSetCleanPage/MmSetDirtyPage.
- Added InitGlobalKernelPageDirectory.

svn path=/trunk/; revision=4700
2003-05-17 13:45:04 +00:00
Hartmut Birr
fd4d79b7fd - Added some checks for kernel or user space.
- Added MmMapViewInSystemSpace/MmUnmapViewInSystemSpace (implemented by Eric).

svn path=/trunk/; revision=4699
2003-05-17 13:43:44 +00:00
Hartmut Birr
8e68ec6bf2 - Marked the initial kernel space as mapped.
svn path=/trunk/; revision=4698
2003-05-17 13:42:56 +00:00
Gé van Geldorp
8674a82d87 Implement SetWindowLong() and refine implementation of GetWindowLong()
svn path=/trunk/; revision=4697
2003-05-17 13:41:31 +00:00
Hartmut Birr
f5aebd93f1 - Free memory for boot load files, except ntoskrnl.exe and hal.dll.
svn path=/trunk/; revision=4696
2003-05-17 13:40:03 +00:00
Gé van Geldorp
61b19adbb6 Implement SetWindowLong() and refine implementation of GetWindowLong()
svn path=/trunk/; revision=4695
2003-05-17 09:20:23 +00:00
Casper Hornstrup
ae351cde87 2003-05-17 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/io/irp.c (IofCallDriver): Don't reference FileObject.

svn path=/trunk/; revision=4694
2003-05-17 00:25:39 +00:00
Emanuele Aliberti
79780a3bcd KERNEL32.OpenConsoleW interface changed a proposed by KJK:Hyperion.
svn path=/trunk/; revision=4693
2003-05-16 20:33:15 +00:00
Gé van Geldorp
1e77c45603 Convert from Unicode to ANSI in GetTextMetricsA()
svn path=/trunk/; revision=4692
2003-05-16 18:55:27 +00:00
Eric Kohl
389d19a1e3 Updated NLS function signature.
Reverted NLS section mapping because of unability to fix the section mapping code.

svn path=/trunk/; revision=4691
2003-05-16 17:38:41 +00:00
Eric Kohl
14e53ad5b6 Accept .nls files.
svn path=/trunk/; revision=4690
2003-05-16 15:37:50 +00:00
Gé van Geldorp
7295ea3de1 Added Bitstream Vera fonts and removed accidental loading of Arial font
svn path=/trunk/; revision=4689
2003-05-16 15:10:10 +00:00
Casper Hornstrup
270cb3a0ec 2003-05-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/io/cleanup.c (IopCompleteRequest1, IoSecondStageCompletion):
	Don't dereference Irp->UserEvent here.
	* ntoskrnl/io/irp.c (IofCallDriver): Reference FileObject.
	* ntoskrnl/io/rw.c (IopReadWriteIoComplete): New function.
	* (NtReadFile, NtWriteFile): Set I/O completion routine if using an
	event that is under object manager control.

svn path=/trunk/; revision=4688
2003-05-16 12:03:11 +00:00
Gé van Geldorp
f728ec4f27 Fixed typo in TEXTMETRICSW
svn path=/trunk/; revision=4687
2003-05-16 06:23:14 +00:00
Eric Kohl
366cd995f3 Fixed crash upon shutdown.
svn path=/trunk/; revision=4686
2003-05-15 13:34:37 +00:00
Eric Kohl
556a38e0c0 Implemented NLS section (not usable yet) and updated NLS functions.
svn path=/trunk/; revision=4685
2003-05-15 11:07:51 +00:00
Eric Kohl
54aa3104d4 Don't crash ReactOS if DLL-Preloading fails.
svn path=/trunk/; revision=4684
2003-05-14 21:27:53 +00:00
Eric Kohl
9fef3a18ee Implemented MmMapViewInSystemSpace() and MmUnmapViewInSystemSpace().
svn path=/trunk/; revision=4683
2003-05-14 10:52:46 +00:00
Casper Hornstrup
10f9688a17 2003-05-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/Makefile (OBJECTS_IO): Add io/rawfs.o.
	* ntoskrnl/cm/registry.c (CmiInitHives): Check status using NT_SUCCESS().
	* ntoskrnl/include/internal/io.h (RawFsIsRawFileSystemDeviceObject,
	RawFsDriverEntry): Add prototypes.
	* ntoskrnl/include/internal/ntoskrnl.h (IoInit2): Add prototype.
	* ntoskrnl/io/device.c (IopCreateDriverObject): Handle unnamed services.
	* ntoskrnl/io/fs.c (IoMountVolume): Handle mounting of raw volumes.
	(IoRegisterFileSystem): Add registered filesystem device objects at the
	head of the list.
	* ntoskrnl/io/iomgr.c (IoInit2): New function.
	* ntoskrnl/ke/main.c (ExpInitializeExecutive): Call IoInit2().
	* ntoskrnl/mm/section.c (MmQuerySectionView): Check return value of call
	to MmFindRegion().
	* ntoskrnl/io/rawfs.c: New file.

svn path=/trunk/; revision=4682
2003-05-13 21:28:26 +00:00
Eric Kohl
107725f820 Implemented dll preloading and mapping.
svn path=/trunk/; revision=4681
2003-05-12 19:47:53 +00:00
Jason Filby
b5b83b1d47 UNIMPLEMENTED put in unimplemented functions
svn path=/trunk/; revision=4680
2003-05-12 19:30:00 +00:00
Gé van Geldorp
017f478b25 Implemented IsWindow()
svn path=/trunk/; revision=4679
2003-05-12 18:52:14 +00:00
Eric Kohl
484cf7d5bf Directory objects must be able to parse a 'remaining path' that does not start with a backslash.
This is needed to support relative path names in the object tree.

svn path=/trunk/; revision=4678
2003-05-12 13:59:09 +00:00
Eric Kohl
c0f1cf6933 Added ability to open a file using a handle to a directory file and a relative path name.
Tested on NT4.

svn path=/trunk/; revision=4677
2003-05-12 10:00:46 +00:00
Eric Kohl
64ca9e3c34 Fixed a bug which skipped the first letter of a relative object path name.
svn path=/trunk/; revision=4676
2003-05-11 19:41:22 +00:00
Casper Hornstrup
0c6f80f830 2003-05-11 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/fslib/vfatlib/vfatlib.c (VfatFormat): Set hidden sectors.
	* ntoskrnl/io/xhaldrv.c (xHalIoWritePartitionTable): Implement support
	for primary partitions.
	* subsys/system/usetup/partlist.c (CreateSelectedPartition): Compute
	hidden sectors.
	* subsys/system/usetup/usetup.c (SelectPartitionPage,
	DrawFileSystemList, FormatPartitionPage): Don't use conditional define
	ENABLE_FORMAT.
	(CreateFileSystemList): Don't draw "Keep current file system" option if
	formatting is needed.
	(SelectFileSystemPage): Figure out if partition must be formatted.
	* subsys/system/usetup/usetup.h (ENABLE_FORMAT): Remove.
	(FILE_SYSTEM_LIST): Add ForceFormat field.

svn path=/trunk/; revision=4675
2003-05-11 18:31:09 +00:00
Casper Hornstrup
67e99cf820 2003-05-11 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/user32/windows/font.c (TEXT_PathEllipsify, TEXT_Reprefix): Fix
	unsigned/signed warning.
	* ntoskrnl/mm/pagefile.c (MmWriteToSwapPage, MmReadFromSwapPage,
	NtCreatePagingFile): Ditto.

svn path=/trunk/; revision=4674
2003-05-11 15:18:01 +00:00
Jason Filby
5bbb8860e3 Fixed return values of W32kArc and W32kMoveToEx
svn path=/trunk/; revision=4673
2003-05-11 12:44:09 +00:00
Jason Filby
76c3289be5 NtUserSendMessageCallback is UNIMPLEMENTED
svn path=/trunk/; revision=4672
2003-05-11 12:29:41 +00:00
Gé van Geldorp
f507252aa5 Implement DrawTextA()/DrawTextW() (mostly copied from Wine)
svn path=/trunk/; revision=4671
2003-05-11 11:12:00 +00:00
Jason Filby
6c2e6e0aa5 NtUserPostMessage: use a switch statement instead of if; WM_NULL: ignore message
svn path=/trunk/; revision=4670
2003-05-11 10:47:33 +00:00
Hartmut Birr
7a801d3bd8 - Implemented FSCTL_GET_RETRIVAL_POINTERS.
- Call the storage driver for read/write requests to pagefiles directly.

svn path=/trunk/; revision=4669
2003-05-11 09:51:26 +00:00
Hartmut Birr
710b4c97a6 - Retrieve the cluster chunks for a pagefile from fsd and use this values for reading/writing to the pagefile.
svn path=/trunk/; revision=4668
2003-05-11 09:48:57 +00:00
Eric Kohl
f99473b691 Display human readable device descriptions for generic PnP-IDs.
svn path=/trunk/; revision=4667
2003-05-11 09:42:40 +00:00
Hartmut Birr
3350303771 - Changed data pointers from signed to unsigned char.
svn path=/trunk/; revision=4666
2003-05-11 07:44:14 +00:00
Gé van Geldorp
8d4eee3aab Check for messages sent by other threads
svn path=/trunk/; revision=4665
2003-05-10 21:47:04 +00:00
Emanuele Aliberti
780c1a105d Right description.
svn path=/trunk/; revision=4664
2003-05-10 10:31:32 +00:00
Emanuele Aliberti
9fa1fd384e Names fixed.
svn path=/trunk/; revision=4663
2003-05-10 10:30:18 +00:00
Eric Kohl
3e708e6c79 Detect hardware before ntoskrnl.exe will be loaded.
svn path=/trunk/; revision=4662
2003-05-10 09:26:59 +00:00
Eric Kohl
7f6db59b55 - Fixed counting the number of available harddisks for broken BIOSes.
- Enable/disable the display of read error messages.

svn path=/trunk/; revision=4661
2003-05-10 09:25:35 +00:00
Eric Kohl
8e23b88b00 Removed duplicate output of used disk space in the summary.
svn path=/trunk/; revision=4660
2003-05-09 21:58:05 +00:00
Eric Kohl
dbf90936aa Added a little PnP-BIOS data dumper.
svn path=/trunk/; revision=4659
2003-05-08 18:55:09 +00:00
Eric Kohl
d882e9a38b Reworked and fixed most of the CPU and PnP code.
svn path=/trunk/; revision=4658
2003-05-08 18:35:46 +00:00
Gé van Geldorp
77d0973eaa Only update page dir for page containing stack
svn path=/trunk/; revision=4657
2003-05-08 05:26:36 +00:00
Gé van Geldorp
5966a211e9 Don't let page containing stack disappear when switching memory spaces
svn path=/trunk/; revision=4656
2003-05-07 21:41:03 +00:00
Aleksey Bragin
74c0e6eb1c Added EthFilterDprIndicateReceive(), EthFilterDprIndicateReceiveComplete() functions, since Realtek 8139 network card driver imports them. Their contents is "UNIMPLEMENTED". This makes ReactOS at least gracefully discarding this driver (and not crashing with BugCheck).
svn path=/trunk/; revision=4655
2003-05-07 19:33:14 +00:00
Aleksey Bragin
1ee3211646 Uncommented exporting of EthFilterDprIndicateReceive (and ReceiveComplete)
svn path=/trunk/; revision=4654
2003-05-07 19:09:48 +00:00
Eric Kohl
2b3487d3d6 Removed unix newlines
svn path=/trunk/; revision=4653
2003-05-07 18:45:56 +00:00
Eric Kohl
e0352540ed Moved test sound.
svn path=/trunk/; revision=4652
2003-05-06 19:01:03 +00:00
Eric Kohl
df18b87eab Added PnP-BIOS detection.
svn path=/trunk/; revision=4651
2003-05-06 16:36:42 +00:00
Eric Kohl
e09ba35e8c Fixed wrong types in printf strings.
svn path=/trunk/; revision=4650
2003-05-06 08:45:10 +00:00
Eric Kohl
d13fee86d3 Added emergency console dummy page.
Removed unused code.

svn path=/trunk/; revision=4649
2003-05-06 07:17:52 +00:00
Gé van Geldorp
4d7b93456f Fixes to GetFullPathNameA and RtlGetFullPathName_U by Tim Jobling
svn path=/trunk/; revision=4648
2003-05-06 06:49:57 +00:00
Casper Hornstrup
4ac8de4791 2003-05-05 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk: Kill implicit rule ".o".

svn path=/trunk/; revision=4647
2003-05-05 19:59:21 +00:00
Emanuele Aliberti
38056aff4c KERNEL32.OpenConsoleW() implemented.
svn path=/trunk/; revision=4646
2003-05-05 19:58:27 +00:00
Steven Edwards
e8ebc1da08 build wm_paint and bitblt tests
svn path=/trunk/; revision=4645
2003-05-05 16:40:38 +00:00
Steven Edwards
65e14fea99 Add install for wm_paint and bitblt test
svn path=/trunk/; revision=4644
2003-05-05 16:40:05 +00:00
Gé van Geldorp
9f2567f198 Allow sending of messages from non-GUI threads
svn path=/trunk/; revision=4643
2003-05-04 15:42:21 +00:00
Gé van Geldorp
e16ddc6bdf Clean up debugging stuff and silence debug messages
svn path=/trunk/; revision=4642
2003-05-04 15:41:40 +00:00
Gé van Geldorp
d82ce80d6c (Partial) implementation of W32kGetDIBits()
svn path=/trunk/; revision=4641
2003-05-03 14:38:11 +00:00
Gé van Geldorp
e6f39d93f0 Fix GetDC(NULL), not complete yet
svn path=/trunk/; revision=4640
2003-05-03 14:12:14 +00:00
Gé van Geldorp
158fda092b Implement GetDeviceCaps()
svn path=/trunk/; revision=4639
2003-05-03 13:39:06 +00:00
Eric Kohl
8e7f49204c Added .cvsignore files. Patch by Mihcael Fritscher.
svn path=/trunk/; revision=4638
2003-05-03 13:11:39 +00:00
Eric Kohl
98ed7cd2b1 Started work on second stage setup.
svn path=/trunk/; revision=4636
2003-05-02 18:12:38 +00:00
Gé van Geldorp
ec67470a38 Silence CVS
svn path=/trunk/; revision=4635
2003-05-02 07:57:04 +00:00
Gé van Geldorp
6644846375 Implemented NtUserRegisterWindowMessage
svn path=/trunk/; revision=4634
2003-05-02 07:52:33 +00:00
Gé van Geldorp
8eaabc5146 Properly clean up terminated threads
svn path=/trunk/; revision=4633
2003-05-01 22:00:31 +00:00
Eric Kohl
8cbf35a0f7 Get timeout value from the registry or use default timeout.
svn path=/trunk/; revision=4632
2003-05-01 17:50:35 +00:00
Eric Kohl
85c99dd8aa Get timeout value from the registry.
svn path=/trunk/; revision=4631
2003-05-01 17:49:23 +00:00
Eric Kohl
62d7fe29c6 Added CPU detection for multiprocessor systems.
svn path=/trunk/; revision=4630
2003-05-01 15:46:06 +00:00
Gé van Geldorp
45661acd89 C++ runtime support, mostly copied from Wine
svn path=/trunk/; revision=4629
2003-04-30 22:07:30 +00:00
Gé van Geldorp
412a23aa10 Changed some DbgPrint's to DPRINT's
svn path=/trunk/; revision=4628
2003-04-30 22:04:12 +00:00
Gé van Geldorp
70dce1ee4b Added stubs for keybd_event() and mouse_event()
svn path=/trunk/; revision=4627
2003-04-30 22:03:00 +00:00
Gé van Geldorp
340ee78475 Fix SetThreadPriority()
svn path=/trunk/; revision=4626
2003-04-30 22:00:41 +00:00
Gé van Geldorp
ad70cd4bbe Implement ThreadBasePriority case for NtSetInformationThread()
svn path=/trunk/; revision=4625
2003-04-30 21:56:22 +00:00
Gé van Geldorp
e70e534a2e Added imm32 and winspool
svn path=/trunk/; revision=4624
2003-04-30 21:06:02 +00:00
Gé van Geldorp
deba825487 Install winspool.drv
svn path=/trunk/; revision=4623
2003-04-30 20:55:00 +00:00
Gé van Geldorp
4c59119a88 Fully stubbed winspool.drv (Wine printing is too different from ReactOS
to use that one)

svn path=/trunk/; revision=4622
2003-04-30 20:44:06 +00:00
Eric Kohl
5fd8b65697 Fixed disk geometry detection bug.
Added CPU detection for uniprocessor systems.

svn path=/trunk/; revision=4621
2003-04-30 18:10:46 +00:00
Gé van Geldorp
f0d4e3c543 Zero-initialze TEB for new threads
svn path=/trunk/; revision=4620
2003-04-30 15:11:31 +00:00
Eric Kohl
43ab2f61b4 - Added DiskGetExtendedDriveParameters()
- Moved hardware detection into the arch directory
- Rewrote/completed harddisk detection
- Removed PCI and IDE detection
- Added basic CPU detection

svn path=/trunk/; revision=4619
2003-04-30 14:08:04 +00:00
Gé van Geldorp
78a50b48b4 All IsBadXxxxPtr return values were backward (TRUE when they should be
FALSE and vv.)

svn path=/trunk/; revision=4618
2003-04-29 22:39:57 +00:00
Eric Kohl
e678b87637 Disabled debug messages.
svn path=/trunk/; revision=4617
2003-04-29 19:49:17 +00:00
Eric Kohl
23f8e2083b Implemented disk geometry update for BIOS drives.
Disk manager handling is not implemented yet.

svn path=/trunk/; revision=4616
2003-04-29 18:06:26 +00:00
KJK::Hyperion
38a1364aae - new statically linked library ROSRTL, for code to be shared among system DLLs
- user-mode thread creation code moved to ROSRTL
 - user-mode thread context initialization code fixed
 - LdrInitializeThunk() breakin stub fixed

svn path=/trunk/; revision=4615
2003-04-29 02:17:01 +00:00
Casper Hornstrup
6247d82cc7 2003-04-28 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile (DLLS): Add epsapi, psapi and wsock32.
	* lib/ntdll/ldr/utils.c (LdrPerformRelocations): Handle the case where a
	relocation crosses a page boundary.
	(LdrFixupImports): Use image load address in calculatation of import
	address list.

svn path=/trunk/; revision=4614
2003-04-28 21:32:10 +00:00
Eric Kohl
e97422786f Wiped the partition sector structure mess away.
Made sector read and write routines more flexible.
Fixed disk signature reading bug.

svn path=/trunk/; revision=4613
2003-04-28 21:15:07 +00:00
Casper Hornstrup
37f29ead4b 2003-04-28 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/fslib/vfatlib/vfatlib.h: New file.
	* subsys/system/usetup/format.c: Ditto.
	* subsys/system/usetup/format.h: Ditto.
	* lib/fslib/vfatlib/vfatlib.c (GetShiftCount): Define.
	(VfatWriteBootSector, VfatWriteFsInfo, VfatWriteFAT,
	VfatWriteRootDirectory): New function.
	(VfatFormat): Implement.
	* subsys/system/usetup/bootsup.c: (InstallFat32BootCodeToFile): Use
	0x0000 as marker to disable backup boot sector.
	(InstallFat32BootCodeToDisk): Add lower 8-bit to BackupBootSector.
	Also treat 0x0000 as no backup boot sector is available.
	* subsys/system/usetup/makefile (TARGET_SDKLIBS): Define.
	(TARGET_OBJECTS): Add format.o.
	* subsys/system/usetup/partlist.c (AddPartitionList): Initialize
	PartNumber field.
	(GetSelectedPartition): Set PartEntryNumber correctly.
	(CreateSelectedPartition): Write partition information to disk.
	(DeleteSelectedPartition): New function.
	* subsys/system/usetup/partlist.h (PARTDATA): Add field CreatePartition.
	(DeleteSelectedPartition): Prototype.
	* subsys/system/usetup/usetup.c (ConfirmDeletePartition): New function.
	(SelectPartitionPage): Support deletion of partition.
	(FormatPartitionPage): Support formatting of partition.

svn path=/trunk/; revision=4612
2003-04-28 19:44:13 +00:00
Aleksey Bragin
55300ebbf2 Added DbgPrint-notification for stubbed function KeSetAffinityThread()
svn path=/trunk/; revision=4611
2003-04-28 14:32:36 +00:00
Aleksey Bragin
331899f621 Added notification for partly-implemented NdisMSetAttributesEx()
svn path=/trunk/; revision=4610
2003-04-28 14:31:47 +00:00
Eric Kohl
29a610ad56 Use disk signature or MBR checksum to find the right disk.
Add missing device objects to device extensions.

svn path=/trunk/; revision=4609
2003-04-28 11:05:34 +00:00
Gé van Geldorp
ffebf21131 RegionSize in MEMORY_BASIC_INFORMATION is relative to BaseAddress, not to
AllocationBase

svn path=/trunk/; revision=4608
2003-04-28 10:37:40 +00:00
Gé van Geldorp
458d8d250c Layout stat structures exactly the same as in Microsoft MSVCRT, for
binary compatibility

svn path=/trunk/; revision=4607
2003-04-27 23:14:04 +00:00
guido
8429d49021 fixed file dates in root directory
svn path=/trunk/; revision=4606
2003-04-27 20:23:30 +00:00
Hartmut Birr
b5d5cf6145 - Initialize the fpu control register within the context structure.
svn path=/trunk/; revision=4605
2003-04-27 18:58:00 +00:00
Casper Hornstrup
371b0fd87e - Query BIOS for supported disk drives
svn path=/trunk/; revision=4604
2003-04-27 18:18:51 +00:00
Eric Kohl
3f270ca3d4 Removed unused bios32 support.
svn path=/trunk/; revision=4603
2003-04-27 18:12:15 +00:00
Eric Kohl
392883e81f Detect and print BIOS disk geometry.
svn path=/trunk/; revision=4602
2003-04-27 18:10:38 +00:00
Eric Kohl
0f71890bc8 Added disk geometry structures for hardware detection.
svn path=/trunk/; revision=4601
2003-04-27 18:08:56 +00:00
Emanuele Aliberti
52fa46b090 FsRtlNumberOfRunsInLargeMcb() implemented (simple).
svn path=/trunk/; revision=4600
2003-04-27 16:25:25 +00:00
Hartmut Birr
676d1d9ebf - Fixed the frame layout for trap 15 and 16.
svn path=/trunk/; revision=4599
2003-04-27 16:21:16 +00:00
Casper Hornstrup
a80496b963 2003-04-27 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk (TARGET_ASFLAGS): Add -march and define MK_ARCH_ID.
	* lib/ntdll/makefile (TARGET_ASFLAGS): Define as
	"-I $(PATH_TO_TOP)/include".
	(TARGET_OBJECTS): Add ldr/entry.o.
	* lib/ntdll/ldr/startup.c: Move inline assembly code...
	* lib/ntdll/ldr/entry.S: ...here. New file.

svn path=/trunk/; revision=4598
2003-04-27 14:45:52 +00:00
Casper Hornstrup
3568bb9b50 2003-04-27 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/kernel32/kernel32.h (assert): Define.
	* tools/mkhive/.cvsignore: New file.

svn path=/trunk/; revision=4597
2003-04-27 11:43:31 +00:00
Eric Kohl
a950079369 Moved disk manager related offset calculation to class2.
Implemented dynamic partition management.
Removed unused header files.

svn path=/trunk/; revision=4596
2003-04-27 10:50:07 +00:00
KJK::Hyperion
879b1f5754 My biggest commit so far (everything compiles and apparently runs fine):
- replaced DWORD with ULONG in a couple of places
 - replaced some ULONGs with LONGs in the KD GDB stub
 - replaced INITIAL_TEB with USER_STACK, as per Nebbet's book, to support both fixed size and expandable stacks
 - added InterlockedExchangePointer
 - added the ASM_BREAKPOINT macro as the architecture-dependent assembler code to raise a breakpoint exception
 - corrected definitions of INT, LONG, DWORD, UINT, ULONG and ULONG32
 - corrected IoSetCancelRoutine to use InterlockedExchangePointer
 - corrected definition of NtCurrentTeb and NtCurrentPeb
 - corrected DbgBreakPoint and DbgUserBreakPoint not to set up a stack frame (temporary fix with inline assembler - why doesn't GCC understand __declspec(naked)?)
 - corrected various calls to Interlocked* functions to cast OUT operands to LONG *
 - corrected various printf format strings
 - corrected DbgUiIssueRemoteBreakin to use the smallest possible stack  (this is what started everything)
 - removed a DPRINT that accessed pageable memory at non-PASSIVE_LEVEL IRQL
 - beautified CreateProcessA (another temporary fix - all the new functions will be isolated in the upcoming stand-alone RTL)
 - prefixed LdrInitializeThunk with a nop that can be overwritten with a breakpoint for debugging purposes (temporary debugging aid until we have user-mode debugger support). Will add support for this to the breakin utility soon
 - thread creation code rewritten from scratch (some glitches documented inline, but works fine)
 - thread creation code now duplicated just twice, as opposed to five times (temporary fix - three new, non standard functions have been exported from NTDLL.DLL, will fix later)

svn path=/trunk/; revision=4595
2003-04-26 23:13:33 +00:00
Eric Kohl
f2c91805a0 Added missing newline.
svn path=/trunk/; revision=4594
2003-04-26 22:51:21 +00:00
Steven Edwards
71df58baf5 Fixed wm_paint test to use ReactOS build system.
svn path=/trunk/; revision=4593
2003-04-26 21:39:36 +00:00
Steven Edwards
91316fff93 Fixed bitblt test to use ReactOS build system.
svn path=/trunk/; revision=4592
2003-04-26 21:37:09 +00:00
Eric Kohl
8b4929f41e Improved command line completion. Patch by Marc Schuetz.
svn path=/trunk/; revision=4591
2003-04-26 16:38:05 +00:00
Gé van Geldorp
01a868d4b8 Remove SetLastErrorByStatus, since it's no longer needed (it is a macro
now) and is giving compile errors

svn path=/trunk/; revision=4590
2003-04-26 12:50:56 +00:00
Gé van Geldorp
ffa4267973 Silence debug messages
svn path=/trunk/; revision=4589
2003-04-26 10:06:10 +00:00
Gé van Geldorp
1139966a4e If name of DLL to load contains a path and it has been loaded before,
find the previous entry

svn path=/trunk/; revision=4588
2003-04-26 10:05:38 +00:00
Gé van Geldorp
1e0a179dd4 FileNameLength and ShortNameLength are in bytes, adjust offset for writing
terminating NUL character accordingly

svn path=/trunk/; revision=4587
2003-04-26 08:56:50 +00:00
Hartmut Birr
4b11a99bfe - Fixed the offset in ReadPciConfigUshort.
svn path=/trunk/; revision=4586
2003-04-26 07:09:26 +00:00
Hartmut Birr
40b6b22911 - Fixed the offset in ReadPciConfigUshort/WritePciConfigUshort.
svn path=/trunk/; revision=4585
2003-04-26 07:06:55 +00:00
Steven Edwards
63e4fdcdc6 Replace SetLastErrorByStatus with RtlNtStatusToDosError
svn path=/trunk/; revision=4584
2003-04-26 01:19:31 +00:00
KJK::Hyperion
b9269e59c8 SetLastErrorByStatus() now a macro, for binary compatibility with Windows
svn path=/trunk/; revision=4583
2003-04-26 00:25:01 +00:00
Aleksey Bragin
2e6c5e5a92 Implement part of the functionality of NdisMSetAttributesEx(). (So ROS doesn't complain while loading VMWare net driver -- though it still doesn't load)
svn path=/trunk/; revision=4582
2003-04-25 21:22:48 +00:00
Casper Hornstrup
b119bad3fa - Detect PCI busses
- Detect IDE controllers and devices
- Improved RegEnumValue()

svn path=/trunk/; revision=4581
2003-04-25 19:32:51 +00:00
Hartmut Birr
37339cbf6b - Fixed the detection of a fat32 boot sector.
svn path=/trunk/; revision=4580
2003-04-25 18:45:06 +00:00
Aleksey Bragin
143395e386 KeSetAffinityThread stub added (returns STATUS_SUCCESS and thus VMWare network driver won't crash ReactOS)
svn path=/trunk/; revision=4579
2003-04-25 18:37:44 +00:00
Aleksey Bragin
79c386dcf3 KeSetAffinityThread added (uncommented in def files)
svn path=/trunk/; revision=4578
2003-04-25 18:36:10 +00:00
Hartmut Birr
9282a443a1 - Fixed a rounding bug within the translation from float values to printable wstrings.
svn path=/trunk/; revision=4577
2003-04-25 17:49:07 +00:00
Eric Kohl
80b2784520 - Added memmove().
- Added hardware hive export.

svn path=/trunk/; revision=4576
2003-04-25 09:54:52 +00:00
Eric Kohl
323bc49a36 - Added memmove().
- Added hardware hive export.

svn path=/trunk/; revision=4575
2003-04-25 09:45:17 +00:00
Gé van Geldorp
6aa450d7d9 Moved _ftol to NTDLL
svn path=/trunk/; revision=4574
2003-04-24 22:21:13 +00:00
Hartmut Birr
f4e4a5dd14 - Call KeBugCheckWithTf for not handled kernel mode exceptions in KiDispatchException.
svn path=/trunk/; revision=4573
2003-04-24 16:55:08 +00:00
Hartmut Birr
3eb21f737e - Implemented KeBugCheckWithTf like KeBugCheckEx.
svn path=/trunk/; revision=4572
2003-04-24 16:53:59 +00:00
Hartmut Birr
d7982ea298 - Do not free the initial environment block, if the environment changed.
svn path=/trunk/; revision=4571
2003-04-24 16:34:26 +00:00
Hartmut Birr
0d54f93d31 - Fixed a rounding bug within the translation from float values to printable strings.
svn path=/trunk/; revision=4570
2003-04-24 16:28:57 +00:00
Eric Kohl
33b0769d71 Enable hardware hive import.
svn path=/trunk/; revision=4569
2003-04-24 12:28:57 +00:00
Gé van Geldorp
a94c5d7e28 Fix _ftol() and move it to NTDLL i386 subdir
svn path=/trunk/; revision=4568
2003-04-23 22:58:02 +00:00
Brian Palmer
fb8745e1ef Turned the FreeLoader debugger into a GUI app.
Basically just a terminal program that logs the RS232 data to a file.

svn path=/trunk/; revision=4567
2003-04-23 20:59:30 +00:00
Eric Kohl
0abf32e9f6 Fixed returning an undefined value.
svn path=/trunk/; revision=4566
2003-04-23 19:36:04 +00:00
Brian Palmer
201324d607 Changes in v1.8.7 (4/22/2003) (brianp)
- Added a file system recognizer to get around problems where
  the partition id did not match the file system type.

svn path=/trunk/; revision=4565
2003-04-23 16:47:24 +00:00
Eric Kohl
198be0032b Remove gstart.exe from boot CD.
svn path=/trunk/; revision=4563
2003-04-23 12:43:23 +00:00
Eric Kohl
e39c8f7e42 Use cdmake.exe to create reactos.iso file.
Remove gstart.exe from boot CD.

svn path=/trunk/; revision=4562
2003-04-23 12:42:59 +00:00
Eric Kohl
a2ba772d42 Added checks for invalid block pointers.
Update free cell list when three cells are merged.

svn path=/trunk/; revision=4561
2003-04-22 21:14:39 +00:00
KJK::Hyperion
c1ce9a4b84 - string-type-generic getopt() (hacked together in half a hour - seems to work fine, though). Very simple - only implements the POSIX standard (no long options, etc.)
- modified tlist to use getopt() to parse the command line, just for fun. Seems to work

svn path=/trunk/; revision=4560
2003-04-22 03:20:25 +00:00
Gé van Geldorp
aac3b7cd7b Exclude dependency files from CVS operations
svn path=/trunk/; revision=4559
2003-04-20 19:54:51 +00:00
Gé van Geldorp
0f4fba969a Implemented _beginthreadex and _endthreadex
svn path=/trunk/; revision=4558
2003-04-20 19:42:50 +00:00
Gé van Geldorp
628cc3fad9 Simple implementation of GetCPInfo
svn path=/trunk/; revision=4557
2003-04-20 19:42:11 +00:00
Emanuele Aliberti
728ac0f0b5 FsRtl: More obsolete functions for handling Memory Control Blocks (MCB).
It seems that, whit the release of WNT40, MCBs were replaced with LARGE_MCBs.

svn path=/trunk/; revision=4556
2003-04-20 17:59:18 +00:00
Emanuele Aliberti
638d0bd31a FsRtl{Un}InitializeMcb() implemented (apparently obsolete).
svn path=/trunk/; revision=4555
2003-04-20 09:07:12 +00:00
Emanuele Aliberti
e47c7dd876 FsRtl:Memory Control Block updates (from ntifs.h by B.Branten)
svn path=/trunk/; revision=4554
2003-04-19 17:17:10 +00:00
Gé van Geldorp
ee030d79d9 For binary compatibility, layout the fields in the TEB at exactly the
same offsets as in WinNT.

svn path=/trunk/; revision=4553
2003-04-18 19:02:16 +00:00
Casper Hornstrup
569a7a02b6 2003-04-18 Casper S. Hornstrup <chorns@users.sourceforge.net>
* subsys/system/usetup/partlist.c (AddPartitionList): Create
	unpartitioned areas.
	(CreatePartitionListNoGUI): Save disk geometry.
	(PrintDiskData): Do not print hidden partition list entries.
	(ScrollDownPartitionList, ScrollUpPartitionList): Skip hidden partition
	list entries.
	(GetActiveBootPartition): Use CurrentDisk as index.
	(CreateSelectedPartition): New function.
	* subsys/system/usetup/partlist.h (PARTDATA): Add field NewPartSize.
	(PARTENTRY): Add fields StartingOffset and HidePartEntry.
	(DISKENTRY): Add fields Cylinders, TracksPerCylinder, SectorsPerTrack,
	and BytesPerSector;
	(CreateSelectedPartition): Add Prototype.
	* subsys/system/usetup/usetup.c (PAGE_NUMBER): Add CREATE_PARTITION_PAGE
	and FORMAT_PARTITION_PAGE
	(CurrentPartitionList, CurrentFileSystemList): New globals.
	(SelectPartitionPage): Set CurrentPartitionList.
	(PARTITION_SIZE_INPUT_FIELD_LENGTH): Define as 6.
	(DrawInputField, ShowPartitionSizeInputBox, CreatePartitionPage,
	CreateFileSystemList, DestroyFileSystemList, DrawFileSystemList,
	ScrollDownFileSystemList, ScrollUpFileSystemList, FormatPartitionPage):
	New functions.
	(SelectFileSystemPage): Draw partition screen.
	(CheckFileSystemPage): Handle CREATE_PARTITION_PAGE and
	FORMAT_PARTITION_PAGE.
	* subsys/system/usetup/usetup.h (FILE_SYSTEM, FILE_SYSTEM_LIST): Add enums.

svn path=/trunk/; revision=4552
2003-04-18 14:00:17 +00:00
Gé van Geldorp
9acdb61c4b Pass CC on make command line so we won't have to change FreeType source
files

svn path=/trunk/; revision=4551
2003-04-18 10:48:13 +00:00
Gé van Geldorp
3ac978f542 Import FreeType 2.1.4
svn path=/trunk/; revision=4550
2003-04-18 10:44:19 +00:00
Gé van Geldorp
296d8bc63f Implement duplication of NtCurrentThread() pseudo-handle
svn path=/trunk/; revision=4549
2003-04-18 09:37:01 +00:00
Gé van Geldorp
63401fccd2 Change DPL in trap gate for INT 3 to 3, so INT 3 can be used from user mode
svn path=/trunk/; revision=4548
2003-04-18 09:09:56 +00:00
Gé van Geldorp
ff17fbcf89 Fix GetVersion
svn path=/trunk/; revision=4547
2003-04-18 08:29:35 +00:00
Gé van Geldorp
bbe715ec28 Print debug message if DllMain of a loaded DLL fails
svn path=/trunk/; revision=4546
2003-04-18 08:28:31 +00:00
Gé van Geldorp
857a0fc520 Have GetACP() return something sensible
svn path=/trunk/; revision=4545
2003-04-18 08:26:50 +00:00
Eric Kohl
70ce973518 Create hardware keys only if hardware hive was not imported.
svn path=/trunk/; revision=4544
2003-04-17 11:07:47 +00:00
Casper Hornstrup
ac3799c79c 2003-04-17 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/mkhive/infcache.c (InfpCacheFindSection, InfpCacheFindKeyLine,
	InfFindFirstLine, InfFindFirstMatchLine, InfFindNextMatchLine,
	InfGetLineCount): Change call to stricmp() to strcasecmp().
	* tools/mkhive/reginf.c (GetRootKey): Ditto.
	* tools/mkhive/registry.c (RegSetValue, RegQueryValue): Ditto.

svn path=/trunk/; revision=4543
2003-04-17 10:41:02 +00:00
Eric Kohl
f284e3a41c - remove gstart.exe
- call mkhive.exe
- load system instead of system.hiv

svn path=/trunk/; revision=4542
2003-04-16 15:08:55 +00:00
Eric Kohl
8b6b2e1d5b Finished mkhive.
svn path=/trunk/; revision=4541
2003-04-16 15:06:33 +00:00
Brian Palmer
273b6dd69f Fixed the EXT2/3 boot sector code so that it only uses the boot drive in the boot sector if it exists (i.e. not 0xff)
Otherwise it uses the boot drive passed in the DL register.
Updated the EXT2/3 installer to reflect the changes in the boot sector code for EXT2/3.

svn path=/trunk/; revision=4540
2003-04-15 22:48:06 +00:00
Brian Palmer
b4d0aca25a Changes in v1.8.6 (4/14/2003) (brianp)
- Fixed a bug in fathelp.asm where is wasn't adding the hidden sector
  count before performing a subtraction.

svn path=/trunk/; revision=4539
2003-04-15 02:15:54 +00:00
Eric Kohl
1a884ce84d Add hive maker. It does not export binary hives yet.
svn path=/trunk/; revision=4538
2003-04-14 17:19:42 +00:00
Eric Kohl
be94ceb3d5 Disabled packet.sys driver.
svn path=/trunk/; revision=4537
2003-04-14 15:41:30 +00:00
KJK::Hyperion
6225a118af sorry, forgot to exclude auto-generated files from dependency tracking
svn path=/trunk/; revision=4536
2003-04-14 12:14:50 +00:00
KJK::Hyperion
1bd4ae1455 - fixed definition of IO_COUNTERS structure to make it binary compatible with Windows (and make EPSAPI enumerate threads correctly on Windows)
- cleaned up some makefiles, added dependency tracking
 - tlist now uses EPSAPI, and, incidentally, a bug has also been fixed

svn path=/trunk/; revision=4535
2003-04-14 01:19:08 +00:00
Casper Hornstrup
e7940ebdad 2003-04-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/kd/gdbstub.c (KdEnterDebuggerException): Fix signed/unsigned
	comparison warning.
	* ntoskrnl/ke/i386/exp.c (KiKernelTrapHandler): Ditto.
	* ntoskrnl/ke/i386/usertrap.c (KiUserTrapHandler): Ditto.
	* tools/helper.mk: Do not install static libraries.

svn path=/trunk/; revision=4533
2003-04-13 17:38:27 +00:00
Casper Hornstrup
c64cac2688 2003-04-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/Makefile: Fix rule for mkflpimg.

svn path=/trunk/; revision=4532
2003-04-13 13:05:04 +00:00
guido
ca2e0585ff added tool to create floppy disk images
svn path=/trunk/; revision=4531
2003-04-13 12:51:28 +00:00
Brian Palmer
b4581c2c95 Added simple utility to read the FreeLoader debug output
from the serial port and display it on the console.
Someday I will turn this into a GUI app.

svn path=/trunk/; revision=4530
2003-04-13 04:14:20 +00:00
KJK::Hyperion
336f8e82c1 - corrected typo in epsapi.h
- CTM: cleaned up to use EPSAPI and the ReactOS DDK

svn path=/trunk/; revision=4529
2003-04-13 03:57:41 +00:00
KJK::Hyperion
1b1afc9539 - the build system now handles static libraries 0.5% better
- cabman: brand new makefile - uses TARGET_* macros, the build helper, and the zlib library properly
 - fmifs: static libraries (.a archives) are built directly into the dk/w32/lib directory, instead of their base directory, so the makefile has been fixed
 - psapi: split into PSAPI.dll and EPSAPI (Extended PSAPI), renamed some files, new header
 - zlib: cleaned up makefile from unnecessary hacks

svn path=/trunk/; revision=4528
2003-04-13 03:24:28 +00:00
Gunnar Dalsnes
0871ebf88b implemeted waiting on file handles/file objects
svn path=/trunk/; revision=4527
2003-04-12 20:34:27 +00:00
Eric Kohl
7b5e0bebdf Final preparations for hardware hive import.
svn path=/trunk/; revision=4526
2003-04-12 18:41:43 +00:00
Eric Kohl
4aa19f2392 * Removed CmiLockBlock() and CmiReleaseBlock().
* Added new hive flags to distinguish between volatile/non-volatile and pointer/offset hives.

svn path=/trunk/; revision=4525
2003-04-12 15:09:57 +00:00
Casper Hornstrup
01aebbdd9d 2003-04-12 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/cdmake/Makefile: Use HOST_CC.
	* tools/cdmake/cdmake.c (MAX_PATH, DIR_SEPARATOR_CHAR,
	DIR_SEPARATOR_STRING): Define.
	(directory_record): Add fields name_on_cd and extension_on_cd.
	(error_exit): Make a macro. Avoid using vfprintf and fprintf.
	(write_directory_record, new_directory_record, compare_directory_order,
	pass): Use name_on_cd and extension_on_cd.
	(make_directory_records, get_file_specifications): Use DIR_SEPARATOR_CHAR.
	(new_directory_record, make_directory_records): Linux implementations.
	(main): Use DIR_SEPARATOR_CHAR.

svn path=/trunk/; revision=4524
2003-04-12 14:53:56 +00:00
Phillip Susi
03cba78fff Moved a local declaration to the top of the funtion, where it has to be to compile
svn path=/trunk/; revision=4523
2003-04-11 21:02:21 +00:00
KJK::Hyperion
22f750cd54 The GDB KD stub now correctly references/dereferences ETHREAD objects
svn path=/trunk/; revision=4522
2003-04-11 02:25:24 +00:00
KJK::Hyperion
5c6df46d27 - PsLookup* functions fixed to increment the reference count of the object they are about to return. The GDB KD stub is directly affected by this patch, but it hasn't been fixed yet
- PsGetCurrentProcess and PsGetCurrentThread are now macros calling IoGetCurrentProcess and KeGetCurrentThread, for binary compatibility with Windows

svn path=/trunk/; revision=4521
2003-04-10 23:14:47 +00:00
Gé van Geldorp
71c3c7c1cc Fix named resource handling and LoadString by d_layer
svn path=/trunk/; revision=4520
2003-04-10 19:12:15 +00:00
Eric Kohl
68962b6249 Remove system.hiv from Boot-CD.
svn path=/trunk/; revision=4519
2003-04-10 18:55:27 +00:00
Eric Kohl
c26ce9f93b Added support for binary system hive.
svn path=/trunk/; revision=4518
2003-04-10 18:51:22 +00:00
Eric Kohl
55a31c6b98 Added support for binary system hive.
svn path=/trunk/; revision=4517
2003-04-10 18:43:14 +00:00
Eric Kohl
ceb7d45424 Do not add empty bins to a binry hive.
svn path=/trunk/; revision=4516
2003-04-10 17:49:55 +00:00
Aleksey Bragin
294c3bcf94 New ctm version, supports killing of process, some bugfixes, increased speed of scrolling. My first ReactOS commit via CVS :)
svn path=/trunk/; revision=4515
2003-04-09 16:31:28 +00:00
Gé van Geldorp
2602dec603 Improve (hardware) exception handling and reporting
svn path=/trunk/; revision=4514
2003-04-07 23:10:08 +00:00
Eric Kohl
e81de9962d Added new tool 'cdmake'.
svn path=/trunk/; revision=4513
2003-04-07 18:16:58 +00:00
Eric Kohl
4aa447d8d2 Added missing boot signature.
svn path=/trunk/; revision=4512
2003-04-06 20:01:09 +00:00
Gé van Geldorp
abbc08ce15 Moved MSVCRT setjmp.o
svn path=/trunk/; revision=4511
2003-04-06 13:10:21 +00:00
Gé van Geldorp
f579397b48 Add wsock32
svn path=/trunk/; revision=4510
2003-04-06 12:49:13 +00:00
Gé van Geldorp
c3fb300cc3 Zero-fill initialized data not contained in image file (2nd try)
svn path=/trunk/; revision=4509
2003-04-06 12:48:33 +00:00
Gé van Geldorp
3fe2b722fd Added _setjmp3() and __p__iob()
svn path=/trunk/; revision=4508
2003-04-06 12:40:56 +00:00
Eric Kohl
e6af1b07da Removed outdated declarations and macros.
svn path=/trunk/; revision=4507
2003-04-06 12:13:53 +00:00
Casper Hornstrup
61914f23d0 2003-04-06 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/freetype/.cvsignore: Ignore nul.

svn path=/trunk/; revision=4506
2003-04-06 10:51:29 +00:00
Casper Hornstrup
09754161f9 2003-04-06 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/storage/atapi/atapi.c (AtapiReadWrite): Expect an interrupt a
	bit sooner.
	* hal/halx86/isa.c (HalpGetIsaInterruptVector): Compute vector for MP.
	* hal/halx86/pci.c (HalpGetPciInterruptVector): Ditto.
	* hal/halx86/sysbus.c (HalpGetSystemInterruptVector): Ditto.
	* hal/halx86/mp.c (AssignIrqVector): Rewrite.
	(MpsTimerHandler): Disable for now.
	(MpsSpuriousHandler): Do not acknowledge interrupt.
	(HalAllProcessorsStarted): Only boot 1 CPU for now.
	(RescheduleDpcRoutine): New function.
	(RescheduleDpc): New variable.
	(HalpInitMPS): Initialize RescheduleDpc. Fix bug in call to memset.
	* hal/halx86/mpsirql.c: Rewrite.
	* hal/halx86/include/mps.h (VECTOR2IRQ, IRQ2VECTOR, VECTOR2IRQL,
	IRQL2VECTOR): New macros.
	* ntoskrnl/ntoskrnl.def: Add KeRescheduleThread@0.
	* ntoskrnl/ntoskrnl.edf: Ditto.
	* ntoskrnl/include/internal/ke.h (KeRescheduleThread): Prototype.
	* ntoskrnl/ke/kthread.c (KeRescheduleThread): New function.
	* ntoskrnl/ke/i386/exp.c (KeInitExceptions): Remove unneeded call to
	set_trap_gate().
	* ntoskrnl/ke/i386/irq.c (VECTOR2IRQ, IRQ2VECTOR, VECTOR2IRQL): Correct.
	(IRQ_BASE): Define as FIRST_DEVICE_VECTOR.
	(NR_IRQS): Define using IRQ_BASE.
	(KeInitInterrupts): Use IRQ_BASE.
	(KiInterruptDispatch2): Rewrite.
	(KiInterruptDispatch): Ditto.
	(KeConnectInterrupt): Pass Vector to HalEnableSystemInterrupt() for MP.
	(KeDisconnectInterrupt): Pass Vector to HalDisableSystemInterrupt() for MP.
	* ntoskrnl/ke/i386/trap.s (_KiTrapProlog): Change 0x124 to KPCR_CURRENT_THREAD.

svn path=/trunk/; revision=4505
2003-04-06 10:45:16 +00:00
Casper Hornstrup
d6d1a08b48 2003-04-06 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Add format.
	* include/fslib/vfatlib.h (VfatFormat): Prototype.
	* lib/fmifs/format.c (VfatFormat): Add stub.
	* lib/fmifs/makefile (TARGET_LIBS): Add vfatlib.a.
	* lib/fslib/vfatlib/vfatlib.c (VfatFormat): Add stub.
	* tools/helper.mk: Do not install .sym files for static libraries.
	* subsys/system/format: New directory.
	* subsys/system/format/makefile: New file.
	* subsys/system/format/format.c: Ditto.

svn path=/trunk/; revision=4504
2003-04-05 23:17:22 +00:00
guido
6756a59755 initialize variable
svn path=/trunk/; revision=4503
2003-04-05 22:21:33 +00:00
guido
5ccf66a359 housekeeping
svn path=/trunk/; revision=4502
2003-04-05 22:19:57 +00:00
Gé van Geldorp
e09c1c61dc Rollback previous change for now, gives problems when memory area extends beyond
end of file image

svn path=/trunk/; revision=4501
2003-04-05 21:57:13 +00:00
Casper Hornstrup
013bcd214a 2003-04-05 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/fslib: New directory.
	* lib/fslib: Ditto.
	* lib/fslib/vfatlib: Ditto.
	* include/fslib/vfatlib.h: New file.
	* lib/fslib/vfatlib/.cvsignore: Ditto.
	* lib/fslib/vfatlib/Makefile: Ditto.
	* lib/fslib/vfatlib/vfatlib.c: Ditto.
	* Makefile: Support file system libraries
	* lib/zlib/Makefile: Remove nostrip target.
	* tools/helper.mk: Add nostrip target.

svn path=/trunk/; revision=4500
2003-04-05 19:40:41 +00:00
Casper Hornstrup
d322047b43 2003-04-05 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/.cvsignore: Ignore rline.

svn path=/trunk/; revision=4499
2003-04-05 15:37:58 +00:00
Casper Hornstrup
e656184ad6 2003-04-05 Casper S. Hornstrup <chorns@users.sourceforge.net>
* bootcd.bat: Install dosmbr.bin.
	* drivers/storage/disk/disk.c (DiskClassDeviceControl): Pass physical
	device object to IoWritePartitionTable().
	* ntoskrnl/io/xhaldrv.c (xHalReadMBR): New function.
	(xHalWriteMBR): Ditto.
	(xHalExamineMBR): Use xHalReadMBR() to read MBR.
	(xHalIoWritePartitionTable): Partial implement.
	* subsys/system/usetup/bootsup.c (InstallMBRBootCodeToDisk): New function.
	* subsys/system/usetup/bootsup.h (InstallMBRBootCodeToDisk): Prototype.
	* subsys/system/usetup/partlist.c (CreatePartitionListNoGUI): New function.
	(CreatePartitionList): Use CreatePartitionListNoGUI() to create partition
	list.
	(GetPartitionInformation): New function.
	(MarkPartitionActive): Ditto.
	* subsys/system/usetup/partlist.h (MarkPartitionActive): Prototype.
	* subsys/system/usetup/usetup.c (SelectPartitionPage): Make SystemRootPath
	point to the selected partition if no partitions are active.
	(BootLoaderPage): If no partitions are active, then install a DOS MBR and
	mark the selected partition active.

svn path=/trunk/; revision=4498
2003-04-05 15:36:34 +00:00
Casper Hornstrup
d44d6e392a Added DOS compatible Master Boot Record (MBR)
svn path=/trunk/; revision=4497
2003-04-05 15:28:45 +00:00
Gé van Geldorp
4f133928b7 Zero-fill initialized data not contained in image file
svn path=/trunk/; revision=4496
2003-04-05 13:19:05 +00:00
Gé van Geldorp
2aab2423c2 Silcence CVS messages
svn path=/trunk/; revision=4495
2003-04-05 09:48:40 +00:00
Casper Hornstrup
7b1020a10e 2003-04-05 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Add bootcd target.
	(BOOTCD_INSTALL): Set for bootcd install.
	* rules.mak (TOPDIR): Define on windows.
	(BOOTCD_DIR): Define.
	(RLINE): Define.
	* apps/tests/lpc/makefile: Handle BOOTCD_INSTALL.
	* apps/tests/mstest/Makefile: Ditto.
	* apps/tests/nptest/Makefile: Ditto.
	* apps/tests/shm/makefile: Ditto.
	* ntoskrnl/Makefile: Handle BOOTCD_INSTALL. Add bootcd target.
	* drivers/dd/vga/makefile: Add bootcd target.
	* drivers/dd/blue/makefile (TARGET_BOOTSTRAP): Define as yes.
	* drivers/dd/floppy/Makefile: Ditto.
	* drivers/fs/cdfs/makefile: Ditto.
	* drivers/fs/ntfs/makefile: Ditto.
	* drivers/fs/vfat/makefile: Ditto.
	* drivers/input/keyboard/makefile: Ditto.
	* drivers/storage/atapi/makefile: Ditto.
	* drivers/storage/cdrom/makefile: Ditto.
	* drivers/storage/class2/makefile: Ditto.
	* drivers/storage/disk/makefile: Ditto.
	* drivers/storage/scsiport/makefile: Ditto.
	* hal/halx86/Makefile: Ditto.
	* lib/ntdll/makefile: Ditto.
	* subsys/system/usetup/makefile (TARGET_BOOTSTRAP): Define as yes.
	(TARGET_BOOTSTRAP_NAME): Define as smss.exe.
	* tools/Makefile: Add rline executable.
	* tools/helper.mk: Support bootcd targets.
	* tools/rline.c: New file.

svn path=/trunk/; revision=4494
2003-04-05 09:37:45 +00:00
Hartmut Birr
e174c6dcd5 - Fixed the initializing of the buffer length in CmiConnectHive.
svn path=/trunk/; revision=4492
2003-04-04 21:52:25 +00:00
Casper Hornstrup
dd53666e1a 2003-04-04 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/freetype/builds/compiler/gcc.mk (CC): Comment out; use CC from
	rules.mak instead.
	* lib/freetype/README.ROS: Note this in porting guide.

svn path=/trunk/; revision=4491
2003-04-04 21:30:31 +00:00
KJK::Hyperion
f729ca1756 NtCurrentTeb() for Alpha rewritten. Reorganized a couple of things
svn path=/trunk/; revision=4490
2003-04-04 20:36:15 +00:00
KJK::Hyperion
81369c3603 Updated FIXME comment
svn path=/trunk/; revision=4489
2003-04-04 20:35:24 +00:00
Steven Edwards
2941c583a4 add ctm by Aleksey Bragin
svn path=/trunk/; revision=4488
2003-04-04 19:26:04 +00:00
Eric Kohl
82389bc005 Cleaned-up and simplified hive import and registry initialization.
svn path=/trunk/; revision=4487
2003-04-04 14:05:29 +00:00
Gé van Geldorp
69b46e8303 Ignore .*.d files
svn path=/trunk/; revision=4486
2003-04-03 22:58:28 +00:00
Gé van Geldorp
4fbceaaefc Add time...() stubs
svn path=/trunk/; revision=4485
2003-04-03 22:57:00 +00:00
Gé van Geldorp
1eb65f81dd WSOCK32 stub
svn path=/trunk/; revision=4484
2003-04-03 22:44:19 +00:00
KJK::Hyperion
37f24851c5 - Nebbet-ized a couple of Zw types [tested]
- PSAPI now 10% better

svn path=/trunk/; revision=4483
2003-04-03 00:06:24 +00:00
Gunnar Dalsnes
4948893df6 timer messages impl.
svn path=/trunk/; revision=4482
2003-04-02 23:29:04 +00:00
Gé van Geldorp
42f7ce354a Turn optimization off in DBG builds
svn path=/trunk/; revision=4481
2003-04-02 23:25:56 +00:00
Gunnar Dalsnes
94975d7d95 timer messages impl.
svn path=/trunk/; revision=4480
2003-04-02 23:19:28 +00:00
Gunnar Dalsnes
9db4bafa99 timer messages impl.
svn path=/trunk/; revision=4479
2003-04-02 23:12:53 +00:00
KJK::Hyperion
a812f4e0b2 Long due update to PSAPI
svn path=/trunk/; revision=4478
2003-04-02 22:09:57 +00:00
KJK::Hyperion
01da24f40c Miscellaneous fixes:
- activated dependency tracking for ntdll [tested]
 - fixed trivial warning [tested]
 - build rules now define appropriate _M_<arch> macro, for compatibility with the Microsoft DDK [tested]
 - faster implementation of NtCurrentPeb() on the x86 [tested]
 - NtCurrentTeb() implementations for the Alpha AXP and MIPS R4000 architectures

svn path=/trunk/; revision=4477
2003-04-02 21:55:16 +00:00
KJK::Hyperion
323478bacf Forgot to remove this
svn path=/trunk/; revision=4476
2003-04-02 02:09:28 +00:00
KJK::Hyperion
4e0c54a3b8 Finalized my previous kernel32.dll patch - please test OutputDebugString
svn path=/trunk/; revision=4475
2003-04-02 00:23:12 +00:00
KJK::Hyperion
870f594d75 RtlRunDecodeUnicodeString & RtlRunEncodeUnicodeString patch finalized
svn path=/trunk/; revision=4474
2003-04-02 00:06:00 +00:00
KJK::Hyperion
e379c5e0b7 RtlRunEncodeUnicodeString & RtlRunDecodeUnicodeString contributed by crazylord
svn path=/trunk/; revision=4473
2003-04-02 00:01:21 +00:00
Eric Kohl
c3a2a5dc0d Start cleaning-up the hive management routines.
Initialize hive and log file names for the system hive.

svn path=/trunk/; revision=4472
2003-04-01 19:01:58 +00:00
Eric Kohl
1a56964de6 Fix missing entry point warning.
svn path=/trunk/; revision=4471
2003-04-01 18:58:59 +00:00
Gé van Geldorp
db73ddbe31 Add labs() needed for new MinGW environment
svn path=/trunk/; revision=4470
2003-04-01 17:14:36 +00:00
Eric Kohl
0ce7c979ac Enable import of binary system hive.
svn path=/trunk/; revision=4469
2003-04-01 16:37:14 +00:00
Eric Kohl
1fb9958a68 Fix bug which causes a crash in RtlpCheckFileNameExtension() if the file doesn't have an extension.
svn path=/trunk/; revision=4468
2003-04-01 16:35:22 +00:00
Gé van Geldorp
1d1253f734 Changed location of FreeType to lib/freetype
svn path=/trunk/; revision=4467
2003-04-01 08:55:51 +00:00
Gé van Geldorp
b4f4566a01 Use FreeType DLL
svn path=/trunk/; revision=4466
2003-04-01 08:43:46 +00:00
Gé van Geldorp
fa1f8db542 FreeType 2.1.3 import
svn path=/trunk/; revision=4465
2003-04-01 08:38:33 +00:00
Gé van Geldorp
fbc6b77b36 Support for kernel mode DLLs (TARGET_TYPE kmdll)
svn path=/trunk/; revision=4464
2003-04-01 08:13:30 +00:00
KJK::Hyperion
1f3d9b8335 - implemented a couple of DbgUi* APIs introduced in NT 5.1
- implemented RtlExitUserThread

svn path=/trunk/; revision=4463
2003-03-31 22:32:18 +00:00
KJK::Hyperion
279e7acf18 - added annotation to TEB definition
- new DbgUi* APIs added in NT 5.1
 - implemented RtlExitThread
 - added definition of various ACE_* structures

svn path=/trunk/; revision=4462
2003-03-31 22:30:49 +00:00
KJK::Hyperion
647129da1f - debugging support APIs moved into their own directory
- reversed the Debug Monitor protocol, implemented OutputDebugString accordingly
 - added a handful of new functions introduced in NT 5.1, either stubbed out or implemented

svn path=/trunk/; revision=4461
2003-03-31 22:28:59 +00:00
KJK::Hyperion
63a0f413bf Fixed tlist
svn path=/trunk/; revision=4460
2003-03-31 21:03:42 +00:00
Eric Kohl
1f8fe422c6 Remove unused code.
svn path=/trunk/; revision=4459
2003-03-31 11:49:38 +00:00
Eric Kohl
4dc8e937b1 Enable loading of binary hive files (without file extension).
svn path=/trunk/; revision=4458
2003-03-31 11:48:48 +00:00
Gé van Geldorp
14952fd4f9 Add \SystemRoot\system32 to the search path for implicitly linked
kernel mode DLLs

svn path=/trunk/; revision=4457
2003-03-31 09:30:00 +00:00
Eric Kohl
fc3c449b62 Updated for 0.1.1 CD.
svn path=/trunk/; revision=4455
2003-03-29 21:41:21 +00:00
Jason Filby
0c7e8e368e Version 0.1.1
svn path=/trunk/; revision=4454
2003-03-29 18:37:07 +00:00
Casper Hornstrup
579da78402 2003-03-29 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/ex/sysinfo.c (SystemProcessInformation): Fix warning.

svn path=/trunk/; revision=4453
2003-03-29 12:55:48 +00:00
Eric Kohl
e4dd0575db Removed cmd from the target list.
svn path=/trunk/; revision=4452
2003-03-29 12:06:09 +00:00
Eric Kohl
7bf5e6cae6 Added support for the Ontrack Disk Manager.
svn path=/trunk/; revision=4451
2003-03-28 22:47:33 +00:00
Richard Campbell
1d95979106 Ported AdjustClientRect(Ex) from wine, this fixes bugs in hcalc
svn path=/trunk/; revision=4450
2003-03-28 19:25:00 +00:00
Richard Campbell
2b62e9b22c Fixes a client area issue in winemine and other apps.
svn path=/trunk/; revision=4449
2003-03-28 18:59:18 +00:00
Gé van Geldorp
5fff73db86 Fix crash in W32kGetTextMetrics
svn path=/trunk/; revision=4448
2003-03-28 16:20:51 +00:00
Gé van Geldorp
34aacc4e6b Fix crash at load-time
svn path=/trunk/; revision=4447
2003-03-28 15:34:17 +00:00
Gé van Geldorp
a2c3aa0f98 Send mouse movement messages when moving to left/top
svn path=/trunk/; revision=4446
2003-03-28 15:27:47 +00:00
Gé van Geldorp
c338b7de02 Initialize DC with BLACK_PEN
svn path=/trunk/; revision=4445
2003-03-28 15:27:02 +00:00
Gé van Geldorp
58ce5de527 Rollback last change
svn path=/trunk/; revision=4444
2003-03-27 23:17:22 +00:00
Jason Filby
cdc8ff38a8 Readme.txt for users
svn path=/trunk/; revision=4443
2003-03-27 22:25:33 +00:00
Gé van Geldorp
1b46517748 Fix linker warning
svn path=/trunk/; revision=4442
2003-03-27 19:34:00 +00:00
Richard Campbell
c99b43d4cb - Tim Jobling implemented PolyLine
svn path=/trunk/; revision=4441
2003-03-27 03:24:04 +00:00
Richard Campbell
9588279d27 *** empty log message ***
svn path=/trunk/; revision=4440
2003-03-27 02:31:41 +00:00
Richard Campbell
dd8f77cf0f - Implemented InvalidateRect and InvalidateRgn by Tim Jobling
svn path=/trunk/; revision=4439
2003-03-27 02:27:42 +00:00
Richard Campbell
90bdbbb09a *** empty log message ***
svn path=/trunk/; revision=4438
2003-03-27 02:26:15 +00:00
Richard Campbell
8923bf8701 - InvalidateRgn and InvalidateRect by Tim Jobling
svn path=/trunk/; revision=4437
2003-03-27 02:25:14 +00:00
Hartmut Birr
b47552e96f - Do not create a console for GUI applications.
svn path=/trunk/; revision=4436
2003-03-26 22:11:27 +00:00
Hartmut Birr
4950a5230f - Fixed a bug in CsrDeleteConsole. Sometimes the console wasn't removed from the console list.
svn path=/trunk/; revision=4435
2003-03-26 22:10:43 +00:00
Eric Kohl
6748410167 Implemented RtlIsTextUnicode().
svn path=/trunk/; revision=4434
2003-03-26 15:19:28 +00:00
Gé van Geldorp
52dfe36e11 Introduce ANSI version of LOGFONT and associated structures
svn path=/trunk/; revision=4433
2003-03-26 08:11:53 +00:00
Richard Campbell
96719caa15 *** empty log message ***
svn path=/trunk/; revision=4432
2003-03-26 01:01:21 +00:00
Gé van Geldorp
59371a062e Introduce TEXTMETRICSA and TEXTMETRICSW
svn path=/trunk/; revision=4431
2003-03-25 22:35:19 +00:00
Richard Campbell
dcedc133e0 *** empty log message ***
svn path=/trunk/; revision=4430
2003-03-25 20:34:52 +00:00
Eric Kohl
5ae904ab74 Added automatic start of 2nd stage setup.
svn path=/trunk/; revision=4429
2003-03-25 19:26:33 +00:00
Richard Campbell
eefe9aeef3 Removed a DbgPrint
svn path=/trunk/; revision=4428
2003-03-24 23:45:47 +00:00
Richard Campbell
464468ce33 Implemented UpdateWindow()
svn path=/trunk/; revision=4427
2003-03-24 23:08:51 +00:00
Gé van Geldorp
428e6983d1 Speed up search for free handle somewhat
svn path=/trunk/; revision=4426
2003-03-24 22:50:17 +00:00
Gé van Geldorp
0d5ed410c1 Fix GDI handle leaks
svn path=/trunk/; revision=4425
2003-03-24 22:49:54 +00:00
Eric Kohl
a3437854ba Use an enum for page id's instead of an ULONG.
svn path=/trunk/; revision=4424
2003-03-24 19:12:10 +00:00
Eric Kohl
192fe9f464 Implemented import of binary system hive. (UNTESTED)
Improved handling of a hive's dirty block bitmap.

svn path=/trunk/; revision=4423
2003-03-24 19:10:00 +00:00
Eric Kohl
6b349cca78 Added leading semicolons to comment lines
svn path=/trunk/; revision=4422
2003-03-24 13:45:27 +00:00
Eric Kohl
d64b0c501f Implemented RegLoadKey[A/W]() and RegUnLoadKey[A/W]().
svn path=/trunk/; revision=4421
2003-03-24 13:44:15 +00:00
Richard Campbell
e93115c5a2 - Proper implementation of NtUserMoveWindow()
svn path=/trunk/; revision=4420
2003-03-24 01:36:10 +00:00
KJK::Hyperion
1c607fc7d1 zlib is a static library, not (necessarily) a driver library. Moved it back to reactos/lib (who moved it?)
svn path=/trunk/; revision=4419
2003-03-24 01:28:44 +00:00
KJK::Hyperion
f7d6015170 why was zlib.a included in the list of files to install?
svn path=/trunk/; revision=4418
2003-03-24 00:23:18 +00:00
KJK::Hyperion
5c1108ea15 - changed a couple of structures to match the definitions given in the book "Windows 2000 Native API"
- implementation of the SystemProcessInformation class of NtQuerySystemInformation() by Aleksey Bragin

svn path=/trunk/; revision=4417
2003-03-24 00:09:32 +00:00
Gunnar Dalsnes
d3c97ea09d init. change notification work
svn path=/trunk/; revision=4416
2003-03-23 19:51:11 +00:00
Hartmut Birr
f771a79dd9 - Set the executable flag for some files in _stat.
svn path=/trunk/; revision=4415
2003-03-23 15:18:34 +00:00
Hartmut Birr
fa9eae54dd - Fixed a bug in valisttos.
- Implemented _spawnlp.

svn path=/trunk/; revision=4414
2003-03-23 15:18:01 +00:00
Eric Kohl
f392901f75 Implemented NtQueryAttributesFile() and NtQueryFullAttributesFile().
svn path=/trunk/; revision=4413
2003-03-23 14:46:09 +00:00
Hartmut Birr
2aef8289eb - Save the device object for dereferencing before the worker routine is called (IoWorkItemCallback).
svn path=/trunk/; revision=4412
2003-03-23 10:50:13 +00:00
Hartmut Birr
457a70030c - Add a trailing '\' if the path is only a drive (RtlpEatPath).
svn path=/trunk/; revision=4411
2003-03-23 10:49:19 +00:00
Hartmut Birr
52b9204b29 - Extract the correct search pattern and do not interpret '.' or '..'
at the end of the pattern as path (InternalFindFirstFile).

svn path=/trunk/; revision=4410
2003-03-23 10:48:14 +00:00
Hartmut Birr
d7d389bf60 - Fixed the length parameter for calling RtlGetCurrentDirectory_U (GetCurrentDirectoryW).
svn path=/trunk/; revision=4409
2003-03-23 10:46:59 +00:00
Hartmut Birr
1032130eaf - Fixed the intialization of the returned fcb if the directory is the root (FindFile).
svn path=/trunk/; revision=4408
2003-03-23 10:45:56 +00:00
Jason Filby
4687fe39e4 Free bitmap in EngTransparentBlt
svn path=/trunk/; revision=4407
2003-03-23 10:15:12 +00:00
Jason Filby
3aed736c06 Improved font loaded message
svn path=/trunk/; revision=4406
2003-03-23 09:46:22 +00:00
Jason Filby
44b3528f71 Line drawing fixes
svn path=/trunk/; revision=4405
2003-03-23 09:18:51 +00:00
Eric Kohl
68c3b158fc GetFileAttributes() and SetFileAttributes() must use NtOpenFile() to open directories too.
svn path=/trunk/; revision=4404
2003-03-23 04:01:16 +00:00
Gé van Geldorp
8b0fa2ce3d Release XLATEOBJs after use
svn path=/trunk/; revision=4403
2003-03-22 23:57:32 +00:00
Gé van Geldorp
1e8cc39810 Don't access internal object for NULL handle
svn path=/trunk/; revision=4402
2003-03-22 23:57:05 +00:00
Eric Kohl
a8c65e148b Check only the last path component for system hive name.
svn path=/trunk/; revision=4401
2003-03-22 22:32:17 +00:00
Jason Filby
e02bb01522 Use DPRINT1 for errors
svn path=/trunk/; revision=4400
2003-03-22 22:05:36 +00:00
Jason Filby
0a595fb831 Use DbgPrint for errors
svn path=/trunk/; revision=4399
2003-03-22 21:52:38 +00:00
Jason Filby
8526f38f43 Line drawing fixes
svn path=/trunk/; revision=4398
2003-03-22 21:51:05 +00:00
Eric Kohl
0e4840598e Fix typo.
svn path=/trunk/; revision=4397
2003-03-22 18:45:20 +00:00
Eric Kohl
5aa85e8ac2 Separate import of system and hardware hive.
svn path=/trunk/; revision=4396
2003-03-22 18:27:40 +00:00
Eric Kohl
c5b283562d Import registry data from inf files which are listed in txtsetup.sif.
svn path=/trunk/; revision=4395
2003-03-22 15:25:03 +00:00
Eric Kohl
8b3c315dd9 Add new registry inf files.
svn path=/trunk/; revision=4394
2003-03-22 15:22:14 +00:00
Eric Kohl
4f8e2ab714 Fixed NtLoadKey(), NtLoadKey2() and NtSaveKey() signature.
svn path=/trunk/; revision=4393
2003-03-22 11:26:51 +00:00
Mark Tempel
9bb9270ac0 Update to make shaptest be a windowed application.
svn path=/trunk/; revision=4392
2003-03-22 06:53:06 +00:00
Richard Campbell
87a1ef504f Allocated space for the menu
svn path=/trunk/; revision=4391
2003-03-22 04:53:01 +00:00
Richard Campbell
948bca0d7e Allocate space for menu in MoveWindow, will filter this change to SetWindowPos/CreateWindowEx soon, gotta go. PS doesn't work yet due to menu not being 'seen'
svn path=/trunk/; revision=4390
2003-03-22 03:05:26 +00:00
KJK::Hyperion
7c39153727 small fix to linking error
svn path=/trunk/; revision=4389
2003-03-21 21:46:06 +00:00
Hartmut Birr
a9b1cd3b93 - Fixed the buffer handling for ioctl requests and direct access
input buffers (METHODE_IN_DIRECT, output buffer from caller).

svn path=/trunk/; revision=4388
2003-03-21 21:09:42 +00:00
Hartmut Birr
99146c71b3 - Write direct to the console buffer in CsrWriteConsoleOutputChar.
- Update only the necessary screen region in CsrFillOutputChar.
- Improve the access to the console buffer in CsrFillOutputAttrib/CsrWriteConsoleOutputAttrib.

svn path=/trunk/; revision=4387
2003-03-21 20:17:55 +00:00
Eric Kohl
79dcc93088 Fixed typos in hivesys.inf.
Changed shell.exe to cmd.exe in txtsetup.sif

svn path=/trunk/; revision=4386
2003-03-21 18:10:32 +00:00
Eric Kohl
a4e1a6d03d Fixed value list cell resizing bug.
svn path=/trunk/; revision=4385
2003-03-21 17:40:57 +00:00
Mark Tempel
71c0c0f710 fixed the shaptest copy command.
svn path=/trunk/; revision=4384
2003-03-21 04:26:50 +00:00
Gunnar Dalsnes
ed69e0431b LoadResource crashed with NULL hModule
svn path=/trunk/; revision=4383
2003-03-21 00:20:41 +00:00
Gé van Geldorp
5b0769c317 Change install path
svn path=/trunk/; revision=4382
2003-03-20 21:46:41 +00:00
Gé van Geldorp
b3b7b23fa1 Set default shell to cmd.exe
svn path=/trunk/; revision=4381
2003-03-20 20:59:33 +00:00
Gé van Geldorp
6aa0e3b90d Shutdown after shell exit
svn path=/trunk/; revision=4380
2003-03-20 20:56:52 +00:00
Richard Campbell
a4907447eb *** empty log message ***
svn path=/trunk/; revision=4379
2003-03-20 20:56:24 +00:00
Richard Campbell
285f0befdd Remove shell
svn path=/trunk/; revision=4378
2003-03-20 20:53:15 +00:00
Richard Campbell
dc30187ea9 shell.exe is now cmd.exe
svn path=/trunk/; revision=4377
2003-03-20 20:50:40 +00:00
Richard Campbell
a0d62646a9 bug fixes
svn path=/trunk/; revision=4376
2003-03-20 20:29:48 +00:00
Richard Campbell
aa72305d58 Get CMD.EXE to build.
svn path=/trunk/; revision=4375
2003-03-20 19:32:59 +00:00
Richard Campbell
589616a406 Made cmd default shell
svn path=/trunk/; revision=4374
2003-03-20 19:22:23 +00:00
Richard Campbell
11dbd69c7c Changed default shell to cmd.exe
svn path=/trunk/; revision=4373
2003-03-20 19:21:01 +00:00
Richard Campbell
82d063e87d Move cmd to ReactOS module
svn path=/trunk/; revision=4372
2003-03-20 19:19:23 +00:00
Gé van Geldorp
43ff81f72d Search child list for windows to be repainted
svn path=/trunk/; revision=4371
2003-03-20 10:10:12 +00:00
Gé van Geldorp
6088c8a758 Initialize FastMutex before it's used
svn path=/trunk/; revision=4370
2003-03-20 10:09:24 +00:00
Gé van Geldorp
61656150fa Fix loader warnings
svn path=/trunk/; revision=4369
2003-03-20 09:45:57 +00:00
Gé van Geldorp
4a6584272a Silence some debug messages
svn path=/trunk/; revision=4368
2003-03-20 08:22:01 +00:00
Richard Campbell
f6818caa5e What the HELL was I smokin? :)
svn path=/trunk/; revision=4367
2003-03-20 04:03:13 +00:00
Richard Campbell
962a19c45f fixed bug because mingw is stupid (no newline at end of file? WHY OH WHY?)
svn path=/trunk/; revision=4366
2003-03-20 03:37:14 +00:00
Mark Tempel
a5c783b93c Updated comment to be more accurate.
svn path=/trunk/; revision=4365
2003-03-20 03:12:25 +00:00
Mark Tempel
504851d85e Added an initial implementation of Polygon. The initial revision is pretty slow,
and needs to be optimized.

svn path=/trunk/; revision=4364
2003-03-20 03:07:38 +00:00
Mark Tempel
3203df9587 Initial revision of the polygon fill routines. This implementation only supports ALTERNATE mode.
This revision is slow and has some drawing inaccuracies that need to be ironed out.

svn path=/trunk/; revision=4363
2003-03-20 03:06:52 +00:00
Mark Tempel
fac59fb33a Added objects/polyfill.c (polygon fill routines) to the build.
svn path=/trunk/; revision=4362
2003-03-20 03:05:03 +00:00
Mark Tempel
694a6b2c6e Removed Get/SetPolygonFillMode and Polygon
svn path=/trunk/; revision=4361
2003-03-20 03:04:02 +00:00
Mark Tempel
ea5140f3c0 Moved implementation of Rectangle to here.
Added Polygon

svn path=/trunk/; revision=4360
2003-03-20 03:03:39 +00:00
Mark Tempel
358c2e54fd Moved Rectangle to fillshap.c
svn path=/trunk/; revision=4359
2003-03-20 03:03:00 +00:00
Mark Tempel
f404855197 Add Get/SetPolygonFillMode
svn path=/trunk/; revision=4358
2003-03-20 03:02:38 +00:00
Mark Tempel
ba707122eb Update to add the file fillshap.c to the build.
svn path=/trunk/; revision=4357
2003-03-20 03:02:07 +00:00
Richard Campbell
cfb0571c4e Minor change to PATH=
svn path=/trunk/; revision=4356
2003-03-20 02:43:18 +00:00
Richard Campbell
769b12cd45 Removed NEWS
svn path=/trunk/; revision=4355
2003-03-20 02:39:59 +00:00
Richard Campbell
e3c29f8bcd Updated INSTALL
svn path=/trunk/; revision=4354
2003-03-20 02:38:41 +00:00
Richard Campbell
2fbb2609d7 Attempt at updating README file
svn path=/trunk/; revision=4353
2003-03-20 02:33:37 +00:00
Gunnar Dalsnes
957f814a24 initial work on I/O completion
svn path=/trunk/; revision=4352
2003-03-19 23:17:52 +00:00
Gunnar Dalsnes
fc1366d624 set thread WaitReason when blocking
svn path=/trunk/; revision=4351
2003-03-19 23:12:41 +00:00
Gunnar Dalsnes
313dc5e53f set thread WaitReason when blocking
initial work on I/O completion

svn path=/trunk/; revision=4350
2003-03-19 23:09:54 +00:00
KJK::Hyperion
14597f5f11 MinGW includes libmsvcrt.a by default, no need to add it manually
svn path=/trunk/; revision=4349
2003-03-19 21:36:01 +00:00
KJK::Hyperion
85e1c49842 Fixed parsing of color specification strings containing "bright"
svn path=/trunk/; revision=4348
2003-03-19 21:34:13 +00:00
Eric Kohl
65620794d3 Reorganize registry initialization.
Fix typos.

svn path=/trunk/; revision=4347
2003-03-19 20:12:44 +00:00
Eric Kohl
1b066695c5 Fix typos.
svn path=/trunk/; revision=4346
2003-03-19 20:10:24 +00:00
Mark Tempel
cb7c9a0a09 Test application used for testing GDI shape drawing functions. Currently it tests Polygon
svn path=/trunk/; revision=4345
2003-03-19 16:03:02 +00:00
Mark Tempel
367031db4a Update to add a new test application (shaptest) to the build. This application
is used to test shape drawing GDI functions.

svn path=/trunk/; revision=4344
2003-03-19 03:37:07 +00:00
Brian Palmer
958c16b6d9 Only compile if running win32 version of gcc.
svn path=/trunk/; revision=4343
2003-03-18 22:53:05 +00:00
Brian Palmer
1c8640a836 Changes in v1.8.3 (3/18/2003) (brianp)
- Added _alloca() function because Mingw32 generates code that needs it
- Defined _mainCRTStartup in fathelp.asm because Mingw32 looks for that symbol

svn path=/trunk/; revision=4342
2003-03-18 22:32:30 +00:00
Eric Kohl
3c2e048a81 Implemented the import of default registry settings from .inf files.
This is based on Wine's setupapi implementation by Alexandre Julliard.

svn path=/trunk/; revision=4341
2003-03-18 20:39:49 +00:00
Eric Kohl
1b53680503 Fixed an off-by-one error in CmiPopulateHive().
Removed dead code from NtFlushKey().
Changed some debugging messages.

svn path=/trunk/; revision=4340
2003-03-18 20:36:17 +00:00
Gé van Geldorp
c306d43c24 Pass NTSTATUS return code from NtUser functions and use MmCopyFromCaller
to access pointer parameter

svn path=/trunk/; revision=4339
2003-03-18 09:16:44 +00:00
Gé van Geldorp
32f822eab5 Add #include to prevent warnings on MmCopyFrom/ToUser
svn path=/trunk/; revision=4338
2003-03-18 08:34:37 +00:00
Gé van Geldorp
c5c4fcd810 Pass PWINDOW_OBJECT instead of HANDLE in call to W32kGetClientRect
svn path=/trunk/; revision=4337
2003-03-18 08:33:27 +00:00
Richard Campbell
cc078531ba Implemented RedrawWindow()
svn path=/trunk/; revision=4336
2003-03-18 07:19:17 +00:00
Richard Campbell
2c77bbfae2 Implemented CloseWindow()
svn path=/trunk/; revision=4335
2003-03-18 07:01:09 +00:00
Richard Campbell
6952a4bc36 Implemented GetParent()
svn path=/trunk/; revision=4334
2003-03-18 06:46:10 +00:00
Richard Campbell
46cdc5f1ca Implemented IsZoomed()
svn path=/trunk/; revision=4333
2003-03-18 06:44:11 +00:00
Steven Edwards
075b861ce8 A little more good housekeeping
svn path=/trunk/; revision=4332
2003-03-18 01:21:49 +00:00
Steven Edwards
91b46db515 Removed Extra unnneed messagebox test
svn path=/trunk/; revision=4331
2003-03-18 01:00:33 +00:00
Steven Edwards
201760656a Moved MessageBox test to a more proper name
svn path=/trunk/; revision=4330
2003-03-18 00:55:23 +00:00
Steven Edwards
d46106cd34 disabled unneeded EH in test
svn path=/trunk/; revision=4329
2003-03-18 00:54:09 +00:00
Gunnar Dalsnes
04719148b0 LdrGetExportByOrdinal was broken
LdrGetExportByName: fixed bug visible when number of exported functions > number of exported names + check for zero symbol name export table

svn path=/trunk/; revision=4328
2003-03-17 23:05:07 +00:00
Gunnar Dalsnes
b41c5aa867 TlsGetValue: fix to comply with SDK behaviour
svn path=/trunk/; revision=4327
2003-03-17 22:39:09 +00:00
Gunnar Dalsnes
cff9e3c02f don't touch FileObject after IoCallDriver + cleanup
svn path=/trunk/; revision=4326
2003-03-17 22:30:55 +00:00
Gunnar Dalsnes
d03afca494 ObReferenceObjectByHandle: don't fail if NULL DesiredAccess
svn path=/trunk/; revision=4325
2003-03-17 22:28:55 +00:00
Eric Kohl
55d730e10e NtCreateKey() must return STATUS_OBJECT_NAME_NOT_FOUND if the caller tries to create a tree instead of a single key.
svn path=/trunk/; revision=4324
2003-03-17 22:09:26 +00:00
Eric Kohl
b5d59b0618 Fixed registry paths and some typos.
svn path=/trunk/; revision=4323
2003-03-17 22:06:31 +00:00
Richard Campbell
63a26e233a - Updated obm_close
- Fixed a bug with min/max hit tracking
- Added support for allocating a DCE for each window (untested)

svn path=/trunk/; revision=4322
2003-03-16 23:01:08 +00:00
Emanuele Aliberti
c2f91bfad0 SoftModalMessageBox stub added.
svn path=/trunk/; revision=4321
2003-03-16 17:11:22 +00:00
Emanuele Aliberti
328caa7669 Minor changes.
svn path=/trunk/; revision=4320
2003-03-16 17:01:45 +00:00
Eric Kohl
1ac75e85d3 Moved txtsetup.sif to the bootdata directory.
Added hivesys.inf file.

svn path=/trunk/; revision=4319
2003-03-16 16:17:39 +00:00
Hartmut Birr
bd8712ad37 - Fixed the screen updating in CsrWriteConsoleOutputChar.
svn path=/trunk/; revision=4318
2003-03-16 16:14:38 +00:00
Casper Hornstrup
77eee7ca44 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/ntos/rtltypes.h (PRTL_BASE_PROCESS_START_ROUTINE): Define.
	* lib/kernel32/process/create.c (RtlBaseProcessStartRoutine): Import.
	(KlCreateFirstThread): Support images with native subsystem ID.
	* lib/ntdll/def/ntdll.def (RtlBaseProcessStartRoutine): Export.
	* lib/ntdll/def/ntdll.edf (RtlBaseProcessStartRoutine): Ditto.
	* lib/ntdll/rtl/exception.c (RtlBaseProcessStart): Forward declare.
	(RtlBaseProcessStartRoutine, RtlBaseProcessStart): Add.

svn path=/trunk/; revision=4317
2003-03-16 14:16:54 +00:00
Casper Hornstrup
4f23f4eae4 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/defines.h (VS_FFI_SIGNATURE, VS_FFI_STRUCVERSION): Define.

svn path=/trunk/; revision=4316
2003-03-16 13:45:27 +00:00
Casper Hornstrup
5f81b22161 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/ke/i386/exp.c (KiKernelTrapHandler): Use exception code
	STATUS_ACCESS_VIOLATION for exception 14.

svn path=/trunk/; revision=4315
2003-03-16 13:25:47 +00:00
Casper Hornstrup
43b6dc2a24 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/fs/util.c (FsRtlGetFileSize): Implement.

svn path=/trunk/; revision=4314
2003-03-16 13:18:49 +00:00
Casper Hornstrup
0a8aad891f 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/ntdll/rtl/nls.c (RtlCustomCPToUnicodeN, RtlMultiByteToUnicodeN,
	RtlOemToUnicodeN, RtlUnicodeToCustomCPN, RtlUnicodeToMultiByteN,
	RtlUnicodeToMultiByteSize, RtlUnicodeToOemN,
	RtlUpcaseUnicodeToCustomCPN, RtlUpcaseUnicodeToMultiByteN,
	RtlUpcaseUnicodeToOemN): Assert when unimplemented code is reached.

svn path=/trunk/; revision=4313
2003-03-16 13:07:02 +00:00
Casper Hornstrup
6697890d71 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/ntos/zwtypes.h (FILE_BASIC_INFORMATION): Use LARGE_INTEGER,
	not TIME type for time fields.
	* lib/kernel32/file/copy.c (SetLastWriteTime): Adjust for new type.
	(CopyFileExW): Ditto.

svn path=/trunk/; revision=4312
2003-03-16 12:57:32 +00:00
Casper Hornstrup
09e4426af3 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/ntos/types.h (FALSE): Protect with #ifndef FALSE.
	(TRUE): Protect with #ifndef TRUE.

svn path=/trunk/; revision=4311
2003-03-16 12:45:03 +00:00
Casper Hornstrup
a9d3504875 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/napi/i386/segment.h (put_user, get_user,
	bad_user_access_length, __segment_dummy, __sd, __const_sd, __put_user,
	__get_user, __generic_memcpy_tofs, __constant_memcpy_tofs, COMMON,
	__generic_memcpy_fromfs, __constant_memcpy_fromfs, memcpy_fromfs,
	memcpy_tofs, get_fs_byte, get_fs_word, get_fs_long, put_fs_byte,
	put_fs_word, put_fs_long, get_user_word, get_user_byte, get_user_long,
	put_user_byte, put_user_word, put_user_long, get_fs, get_ds, set_fs,
	set_ds): Remove.

svn path=/trunk/; revision=4310
2003-03-16 12:39:29 +00:00
Casper Hornstrup
8702f6b7e1 2003-03-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/ddk/pstypes.h (TLS_OUT_OF_INDEXES): Define.

svn path=/trunk/; revision=4309
2003-03-16 12:27:54 +00:00
Richard Campbell
a02dfcdf70 Fixed more bugs...
svn path=/trunk/; revision=4308
2003-03-16 07:02:38 +00:00
Richard Campbell
46535b89b5 System buttons actually look like they press.
svn path=/trunk/; revision=4307
2003-03-16 06:43:09 +00:00
Eric Kohl
9c982f8f51 Implemented InfGetXxxField() functions.
svn path=/trunk/; revision=4306
2003-03-15 19:36:11 +00:00
Steven Edwards
e8cb3842fb turn off EH in test program.
svn path=/trunk/; revision=4305
2003-03-15 00:28:09 +00:00
Steven Edwards
cb418f8fa6 ....
svn path=/trunk/; revision=4304
2003-03-14 23:45:00 +00:00
Steven Edwards
2b4f936add Hack stub for NdisWriteErrorLogEntry so VMware network driver fails with some grace. =/
svn path=/trunk/; revision=4303
2003-03-14 23:37:26 +00:00
Eugene Ingerman
3cacdf6d55 Added safe copy from user.
svn path=/trunk/; revision=4302
2003-03-14 22:48:32 +00:00
Steven Edwards
a8e0023bb0 Gcc 3.x newline warning fix
svn path=/trunk/; revision=4301
2003-03-14 22:13:40 +00:00
Richard Campbell
f257940218 *** empty log message ***
svn path=/trunk/; revision=4300
2003-03-14 08:34:25 +00:00
Richard Campbell
2be2440055 IDEALLY this should look like NT4 windows to the pixel. Problem is the client area is off...anyone know how to fix it?
svn path=/trunk/; revision=4299
2003-03-14 07:24:35 +00:00
Richard Campbell
4fd70f50be Added some entries, changed some entries. This may or may not bug out windowing in ROS, haven't checked. Will check and fix as necessary next.
svn path=/trunk/; revision=4298
2003-03-13 20:02:36 +00:00
Eric Kohl
e4228315fc Replaced the current inf-parser by a robust state-machine parser. It is heavily based on Alexandre Julliard's setupapi inf-parser.
svn path=/trunk/; revision=4297
2003-03-13 17:58:52 +00:00
Eric Kohl
7e590b2656 Seperated inf- and ini-file routines. The inf-file routines look like the setupapi-routines.
Create 'Setup' key in the system hive.

svn path=/trunk/; revision=4296
2003-03-13 09:51:11 +00:00
Richard Campbell
19af3dbdde *** empty log message ***
svn path=/trunk/; revision=4295
2003-03-12 16:36:18 +00:00
Richard Campbell
593d22e757 A couple bugfixes
svn path=/trunk/; revision=4294
2003-03-12 16:27:32 +00:00
Richard Campbell
54fa81f819 Windows are activated when created. This is actually just a hack, they really are active, but I don't know how well this will work in a multi windowing environment.
svn path=/trunk/; revision=4293
2003-03-12 08:26:54 +00:00
Richard Campbell
b1839c1917 YAY for bug fixes!
svn path=/trunk/; revision=4292
2003-03-12 06:32:44 +00:00
Richard Campbell
77ca8d96bd More bugfixes
svn path=/trunk/; revision=4291
2003-03-12 06:02:59 +00:00
Richard Campbell
876c0e392b ditto
svn path=/trunk/; revision=4290
2003-03-12 05:40:46 +00:00
Richard Campbell
a09e66521a Small bugfix
svn path=/trunk/; revision=4289
2003-03-12 05:21:53 +00:00
Richard Campbell
adcf4970da Implemented MoveWindow()
svn path=/trunk/; revision=4288
2003-03-12 05:18:21 +00:00
Steven Edwards
3e669eed4d Added Demo for WM_ERASEBKGND
- Contributed by Damon Chandler Windows2000 Graphics API Backbook

svn path=/trunk/; revision=4287
2003-03-11 19:50:30 +00:00
Gé van Geldorp
ab42b89f19 Get mouse cursor working under VMware
svn path=/trunk/; revision=4286
2003-03-11 00:21:41 +00:00
Richard Campbell
aee47209b1 LOTs of changes, a few bug fixes, some code cleanup.
svn path=/trunk/; revision=4285
2003-03-11 00:18:54 +00:00
Jason Filby
5a4eded72e Updated Serial Mouse driver
svn path=/trunk/; revision=4284
2003-03-10 19:53:08 +00:00
Jason Filby
34d1c4a88a Removing old mouse driver
svn path=/trunk/; revision=4283
2003-03-10 19:44:40 +00:00
Richard Campbell
744b947f71 Defined DFC_POPUPMENU
svn path=/trunk/; revision=4282
2003-03-10 06:27:13 +00:00
Jason Filby
b0e9fcf187 Minor button fixes
svn path=/trunk/; revision=4281
2003-03-09 21:49:08 +00:00
Hartmut Birr
f92f7ff968 - Return TRUE on success in DrvAssertMode.
svn path=/trunk/; revision=4280
2003-03-09 21:44:24 +00:00
Hartmut Birr
b98522fd18 - Protected the access to the crtc registers (cursor position) with cli/sti.
svn path=/trunk/; revision=4279
2003-03-09 21:43:37 +00:00
Hartmut Birr
b7c7511503 - Added CsrDuplicateHandle.
svn path=/trunk/; revision=4278
2003-03-09 21:42:47 +00:00
Hartmut Birr
035e6fa830 - Added CsrCreateProcessData.
- Added CsrDuplicateHandle.

svn path=/trunk/; revision=4277
2003-03-09 21:41:35 +00:00
Hartmut Birr
718da6238e - Check for a valid process data pointer in some functions.
svn path=/trunk/; revision=4276
2003-03-09 21:41:00 +00:00
Hartmut Birr
2a8c933a65 - Check for a valid process data pointer in some functions.
- Fixed the length parameter for the title if the console is swapped.
- Fixed some tests in CsrpWriteConsole.
- Fixed some rectangle functions.
- Fixed some offset calculations for accessing the screen buffer.

svn path=/trunk/; revision=4275
2003-03-09 21:40:19 +00:00
Hartmut Birr
8716ed6781 - Fixed the return value in SearchPathW.
svn path=/trunk/; revision=4274
2003-03-09 21:39:17 +00:00
Hartmut Birr
1768a37e66 - Duplicate the error handle in CreateProcessW.
- Fixed the size parameter in calls to SearchPathW.

svn path=/trunk/; revision=4273
2003-03-09 21:38:40 +00:00
Hartmut Birr
59798c6f34 - Improved DuplicateHandle for console handles.
svn path=/trunk/; revision=4272
2003-03-09 21:37:57 +00:00
Hartmut Birr
bb63ba9048 - Implemented DuplicateConsoleHandle.
- Duplicate the error handle in AllocConsole.
- Opening 'CONIN$' for console access in GetConsoleTitleW, SetConsoleTitleW, SetConsoleTitleA.

svn path=/trunk/; revision=4271
2003-03-09 21:37:18 +00:00
Gé van Geldorp
95bceebe67 #include file moved
svn path=/trunk/; revision=4270
2003-03-09 19:34:14 +00:00
Jason Filby
2fb8899caa Refer to new ntddmou.h
svn path=/trunk/; revision=4269
2003-03-09 18:44:59 +00:00
Jason Filby
feda09e7a3 Calculation fix (from Tim Jobling)
svn path=/trunk/; revision=4268
2003-03-09 15:09:23 +00:00
Jason Filby
397c2118fd Calculation fix
svn path=/trunk/; revision=4267
2003-03-09 15:08:33 +00:00
Jason Filby
975ce25154 Improved mouse button handling
svn path=/trunk/; revision=4266
2003-03-09 15:00:51 +00:00
Eric Kohl
098af174b6 Start to fill-in the registry.
svn path=/trunk/; revision=4265
2003-03-08 19:29:09 +00:00
Eric Kohl
a130f0e169 Create binary system hive when usetup is running.
svn path=/trunk/; revision=4264
2003-03-08 19:26:12 +00:00
Gé van Geldorp
6fdd94516b - Fix DC/Bitmap handling
- Fix compiler warnings
- Silence some debug output

svn path=/trunk/; revision=4263
2003-03-08 13:16:52 +00:00
Gé van Geldorp
10283bad30 Remove DCE from linked list on destroy
svn path=/trunk/; revision=4261
2003-03-08 00:46:14 +00:00
Gé van Geldorp
4817869d83 Remove debugging statements
svn path=/trunk/; revision=4260
2003-03-08 00:45:04 +00:00
Richard Campbell
3548ecb7a4 Implemented MoveWindow and SetWindowPos, SetWindowPos is based on WinPosSetWindowPos, so now i need to investigate why it's not working :P.
svn path=/trunk/; revision=4259
2003-03-07 05:38:02 +00:00
Richard Campbell
cba82eeb5e More bug fixes, should behave alot like Windows NT now.
svn path=/trunk/; revision=4258
2003-03-07 04:50:42 +00:00
Gé van Geldorp
f0d0dc3adf Adjust to new position in rosapps build tree
svn path=/trunk/; revision=4257
2003-03-07 00:13:22 +00:00
Gé van Geldorp
ddf2e52b15 Switch back to the command prompt when you press the "X" Close button
svn path=/trunk/; revision=4256
2003-03-06 23:57:03 +00:00
Richard Campbell
18e402c803 *** empty log message ***
svn path=/trunk/; revision=4255
2003-03-06 21:46:19 +00:00
Richard Campbell
e924b6d06c Updated by TortoiseCVS
svn path=/trunk/; revision=4254
2003-03-06 21:45:23 +00:00
Richard Campbell
d2f53a79d8 Added WineMine
svn path=/trunk/; revision=4253
2003-03-06 21:13:17 +00:00
Richard Campbell
c8c6395488 Removed winemine from reactos core module
svn path=/trunk/; revision=4252
2003-03-06 21:10:51 +00:00
Gé van Geldorp
63d294b58a GetClientRect implementation by Tim Jobling
svn path=/trunk/; revision=4251
2003-03-06 21:03:49 +00:00
Richard Campbell
5d28d9704c Temp fix because LoadString isn't working properly.
svn path=/trunk/; revision=4250
2003-03-06 19:33:18 +00:00
Gé van Geldorp
e2ef77ef6c Copied from Wine with some adjustments for our build environment
svn path=/trunk/; revision=4249
2003-03-06 18:44:57 +00:00
Eric Kohl
f7e5711321 Implemented GetProcessAffinityMask() and SetProcessAffinityMask().
svn path=/trunk/; revision=4248
2003-03-06 15:05:29 +00:00
Eric Kohl
916b14c816 Implemented SignalObjectAndWait().
Added some checks for console handles.

svn path=/trunk/; revision=4247
2003-03-06 13:01:15 +00:00
Gé van Geldorp
bceffa7c9b Convert between RGBQUAD and COLORREF when creating a palette for a DIB
svn path=/trunk/; revision=4246
2003-03-06 00:57:44 +00:00
Gé van Geldorp
d339a04507 Silence some debug messages
svn path=/trunk/; revision=4245
2003-03-06 00:56:59 +00:00
Gé van Geldorp
85f75f7691 Conversion between bitfield and indexed no longer hardcoded
svn path=/trunk/; revision=4244
2003-03-06 00:56:40 +00:00
Eric Kohl
cb8b8e6c15 Implemented VerifyConsoleIoHandle().
svn path=/trunk/; revision=4243
2003-03-05 22:51:48 +00:00
Richard Campbell
7f5d1e97f4 Implemented MoveWindow, won't work until SetWindowPos is fixed.
svn path=/trunk/; revision=4242
2003-03-04 22:34:48 +00:00
Eric Kohl
088b5e86e8 Added code to handle 'Ontrack Disk Manager' harddisks. (Untested!)
svn path=/trunk/; revision=4241
2003-03-04 21:58:05 +00:00
Richard Campbell
481eddb6df Minor fix
svn path=/trunk/; revision=4240
2003-03-04 13:19:01 +00:00
Gé van Geldorp
57b8529cb5 Remove some debug #if's
svn path=/trunk/; revision=4239
2003-03-04 10:39:41 +00:00
Gé van Geldorp
31e559fb73 - Add support for 8-bit and 32-bit displays
- Precompute DIB routines
- Fix some compiler warnings

svn path=/trunk/; revision=4238
2003-03-04 10:09:01 +00:00
Richard Campbell
4ea32f911a Added OBM_CLOSE
svn path=/trunk/; revision=4237
2003-03-04 01:23:37 +00:00
Richard Campbell
8d7b189b73 Removed unused resources.
svn path=/trunk/; revision=4236
2003-03-04 01:10:30 +00:00
Richard Campbell
e67fee744a Implemented GetWindowDC()
svn path=/trunk/; revision=4235
2003-03-04 00:40:37 +00:00
Richard Campbell
8abf7a676f Temp fix
svn path=/trunk/; revision=4234
2003-03-03 19:51:31 +00:00
Richard Campbell
c6e059cb67 Added GWL_ID to NtUserGetWindowLong. Not implemented yet. Just there to prevent the debug printfs.
svn path=/trunk/; revision=4233
2003-03-03 18:57:26 +00:00
Gé van Geldorp
1b48f7d941 Get MS 16 color driver to work under Bochs
svn path=/trunk/; revision=4232
2003-03-03 00:17:24 +00:00
Richard Campbell
31ed89a07f Lots of bug fixes
svn path=/trunk/; revision=4231
2003-03-02 16:30:07 +00:00
Gé van Geldorp
0dcf21545b Fixed some compiler warnings
svn path=/trunk/; revision=4230
2003-03-02 12:07:28 +00:00
Gé van Geldorp
1b1e741e1b Fixed several off-by-one errors and some compiler warnings
svn path=/trunk/; revision=4229
2003-03-02 12:04:00 +00:00
Gé van Geldorp
8690cad211 Fix boot problems and make it work under VMware
svn path=/trunk/; revision=4228
2003-03-02 10:53:38 +00:00
Marty Dill
ad0f593f37 Bumped CSRSS_MAX_TITLE_LENGTH up to 80.
svn path=/trunk/; revision=4227
2003-03-02 01:25:45 +00:00
Marty Dill
15f7619166 Minor fixes to CsrGetTitle and Console_Api to get titles working properly.
svn path=/trunk/; revision=4226
2003-03-02 01:24:37 +00:00
Marty Dill
20a78cdf13 Fixed up Get/SetConsoleTitleAW().
svn path=/trunk/; revision=4225
2003-03-02 01:23:19 +00:00
Richard Campbell
cb819643dd Some bug fixes.
svn path=/trunk/; revision=4224
2003-03-01 20:39:16 +00:00
Richard Campbell
2d631fae3f Changed timmons to helmet, but this should be loaded from the registry.
svn path=/trunk/; revision=4223
2003-03-01 09:05:34 +00:00
Richard Campbell
348b71b4a6 Small bug fix
svn path=/trunk/; revision=4222
2003-03-01 09:01:51 +00:00
Richard Campbell
c8274bd166 Now uses DrawFrameControl to draw controls, still MANY bugs but I'm slowly getting there.
svn path=/trunk/; revision=4221
2003-03-01 08:56:34 +00:00
Richard Campbell
424f2d1c24 Fixed DrawFrameControl Somewhat
svn path=/trunk/; revision=4220
2003-03-01 06:05:36 +00:00
Eric Kohl
87364d1ef4 Fixed wrong MBR declaration.
svn path=/trunk/; revision=4219
2003-03-01 00:00:32 +00:00
Richard Campbell
95cee3fcfb Remove OBM_CLOSED
svn path=/trunk/; revision=4218
2003-02-28 23:22:18 +00:00
Richard Campbell
23d3f40462 oops.
svn path=/trunk/; revision=4217
2003-02-28 23:20:41 +00:00
Richard Campbell
107f4e64ce ditto.
svn path=/trunk/; revision=4216
2003-02-28 23:19:32 +00:00
Richard Campbell
93549aa9d8 Removed unused OBM_CLOSED resource. Part of a fix coming soon.
svn path=/trunk/; revision=4215
2003-02-28 23:18:11 +00:00
Richard Campbell
a526796893 Use DrawEdge for drawing windows.
svn path=/trunk/; revision=4214
2003-02-28 22:59:30 +00:00
Gé van Geldorp
343857f12a Replace direct calls to "make" with $(MAKE)
svn path=/trunk/; revision=4213
2003-02-28 22:51:17 +00:00
Eric Kohl
0390d46de9 Fixed [Nt/Zw]QuerySecurityObject() prototype.
svn path=/trunk/; revision=4212
2003-02-27 22:49:06 +00:00
Eric Kohl
4b23fcb6ce Fixed string lengths in calls to ZwSetValueKey() to include terminating zero character.
svn path=/trunk/; revision=4211
2003-02-27 20:32:31 +00:00
Eric Kohl
9a9d96086b Terminate service name string.
svn path=/trunk/; revision=4210
2003-02-27 20:29:55 +00:00
Gé van Geldorp
e024154763 Cleanup
svn path=/trunk/; revision=4209
2003-02-27 16:34:15 +00:00
Gunnar Dalsnes
0acc0f3aa9 Non expired timer wasn't dequeued/canceled before freed
svn path=/trunk/; revision=4208
2003-02-27 15:41:54 +00:00
Gunnar Dalsnes
d295bac408 WaitForMultipleObjectsEx passed WaitAny for WaitAll waits and vice versa
svn path=/trunk/; revision=4207
2003-02-27 15:40:46 +00:00
Gunnar Dalsnes
dd41cf2e27 corrected prototype
svn path=/trunk/; revision=4206
2003-02-27 15:39:10 +00:00
Gunnar Dalsnes
5852f3f492 WaitForMultipleObjects: WaitAll waits were buggy
Many small fixes and cleanups

svn path=/trunk/; revision=4205
2003-02-27 15:38:36 +00:00
Eric Kohl
3013b90260 Fixed compiler warings.
svn path=/trunk/; revision=4204
2003-02-27 14:42:43 +00:00
Eric Kohl
9321cd1e2c Do not expand command lines automatically. This fixes 'objdir \??'.
svn path=/trunk/; revision=4203
2003-02-27 14:40:31 +00:00
Gé van Geldorp
74a0e47a7c Queue GDI callback in CriticalWorkQueue to improve mouse smoothness
under Bochs

svn path=/trunk/; revision=4202
2003-02-26 22:29:28 +00:00
Eric Kohl
dcd495dbe5 Detect disk manager software.
svn path=/trunk/; revision=4201
2003-02-26 16:25:40 +00:00
Eric Kohl
64e0e82479 Fixed some hal dispatch table issues.
Improved HalExamineMBR() to detect disk managers.

svn path=/trunk/; revision=4200
2003-02-26 14:14:47 +00:00
Gé van Geldorp
991196c35e - Move GDI drivers and win32k.sys from system32\drivers to system32
- Load GDI driver from registry key
- Clean up hacks in videoprt (borrowed some code from scsiport)
- Support for MS VGA driver under VMware, doesn't work yet under Bochs

svn path=/trunk/; revision=4199
2003-02-25 23:08:54 +00:00
Eric Kohl
31f87c95ae * Moved symbolic link implementation to the object manager.
* Free target string when the link object is deleted.
* Create a type object for symbolic links.
* Use different security descriptors for protected and unprotected symbolic links.

svn path=/trunk/; revision=4198
2003-02-25 16:50:46 +00:00
Eric Kohl
97049b595e no message
svn path=/trunk/; revision=4197
2003-02-25 16:43:45 +00:00
Eric Kohl
a4dd288c42 Implemented ExIsProcessorFeaturePresent().
svn path=/trunk/; revision=4196
2003-02-25 00:25:07 +00:00
Hartmut Birr
0c1e5baf17 - Improved CloseConsoleHandle.
svn path=/trunk/; revision=4195
2003-02-24 23:24:55 +00:00
Hartmut Birr
471aaa7f5e - Added oppening of console handles (CreateFileW).
svn path=/trunk/; revision=4194
2003-02-24 23:23:32 +00:00
Hartmut Birr
0d292546b8 - Implemented CsrGetInputHandle, CsrGetOutputHandle and CsrCloseHandle.
svn path=/trunk/; revision=4193
2003-02-24 23:20:16 +00:00
Hartmut Birr
3432e6048e - Fixed a dead look in CsrFlushInputBuffer.
svn path=/trunk/; revision=4192
2003-02-24 23:17:32 +00:00
Hartmut Birr
ef47860772 - Fixed a bug within the parameter check.
- Improved speed.

svn path=/trunk/; revision=4191
2003-02-24 23:16:13 +00:00
Hartmut Birr
0b69830fa0 - Removed allocation of nonpaged pool memory for event objects.
- Fixed a dead look while fsd's are loading with the fs recognizer (in IoMountVolume).

svn path=/trunk/; revision=4190
2003-02-24 23:14:05 +00:00
Steven Edwards
b70c013718 Fix by Hartmut Birr
Csrss inserts a '\n' after '\r' in the event queue. This extra event must be removed in
CsrReadInputEvent.

svn path=/trunk/; revision=4189
2003-02-24 21:58:46 +00:00
Jason Filby
e0fbe100b8 New and delete operators
svn path=/trunk/; revision=4188
2003-02-21 21:50:04 +00:00
Robert Dickenson
95cb8daf2a corrected parameter type for towupper.
svn path=/trunk/; revision=4187
2003-02-21 16:32:57 +00:00
Robert Dickenson
7c50d54d90 minor cleanup.
svn path=/trunk/; revision=4186
2003-02-21 16:30:05 +00:00
Robert Dickenson
2375f4f3f4 removed taskmgr from default target list since it requires c++.
svn path=/trunk/; revision=4185
2003-02-21 16:24:35 +00:00
Robert Dickenson
562b3cf13b getting some mods from a while ago sync'd.
svn path=/trunk/; revision=4184
2003-02-21 16:23:11 +00:00
Robert Dickenson
c3ff43d969 minor updates to try and find some debug output from the wine libs.
svn path=/trunk/; revision=4183
2003-02-21 14:47:34 +00:00
Robert Dickenson
9f3fb17e6e minor mod to main header to attempt to fix mingw version problem.
svn path=/trunk/; revision=4182
2003-02-21 14:04:55 +00:00
Robert Dickenson
a3e2ea980a minor update to sync my tree.
svn path=/trunk/; revision=4181
2003-02-20 15:07:37 +00:00
Marty Dill
b556b6e5a6 Richard Campbell's Win9x/NT4/5 window style patch.
svn path=/trunk/; revision=4180
2003-02-19 22:44:57 +00:00
Jason Filby
331ea2e7ba Updated close graphic
svn path=/trunk/; revision=4179
2003-02-19 20:34:31 +00:00
Eric Kohl
8fb7776793 Started implementing a hive check (still disabled).
svn path=/trunk/; revision=4178
2003-02-19 17:24:20 +00:00
Gé van Geldorp
7380b03af6 Don't pass (unused) DeviceHandle into ObCreateObject, that causes the
HandleCount to be unnecessarily incremented.

svn path=/trunk/; revision=4177
2003-02-19 00:05:07 +00:00
Casper Hornstrup
e35969fcc7 2003-02-18 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/cc/view.c (CcRosFlushDirtyPages): Treat a write attempt with
	a return value of STATUS_END_OF_FILE as a successful write.
	* ntoskrnl/cc/copy.c (WriteCacheSegment): Ditto.

svn path=/trunk/; revision=4176
2003-02-18 22:06:53 +00:00
Casper Hornstrup
05a7ea2883 2003-02-18 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/cm/regfile.c (CmiRemoveSubKey): Kill warnings.
	(CmiMergeFree): Ditto.

svn path=/trunk/; revision=4175
2003-02-18 21:30:08 +00:00
Eric Kohl
d4830ae787 Use a 5-step transaction to update hive and log file.
svn path=/trunk/; revision=4174
2003-02-18 17:02:49 +00:00
Eric Kohl
9728fb6d1c Tiny update, fixes some output annoyances.
svn path=/trunk/; revision=4173
2003-02-18 17:01:10 +00:00
Gé van Geldorp
40160296f7 Implemented VideoPortGetAccessRanges
svn path=/trunk/; revision=4172
2003-02-17 21:24:42 +00:00
Gé van Geldorp
7e66e6636b Implemented HalpAssignPciSlotResources
svn path=/trunk/; revision=4171
2003-02-17 21:24:13 +00:00
Gé van Geldorp
5a0ca2a384 Bring types of memory to allocate (PagedPool etc.) constants inline with
MS DDK for binary compatibility of drivers

svn path=/trunk/; revision=4170
2003-02-17 21:22:49 +00:00
Gé van Geldorp
cef6fb49d1 FreeLdr tries to load "Start"=dword:00000000 entries, remove vmx_svga
service for the moment

svn path=/trunk/; revision=4169
2003-02-17 21:19:16 +00:00
Jason Filby
969ec4afc2 Minor fixes
svn path=/trunk/; revision=4168
2003-02-17 21:03:52 +00:00
Jason Filby
f3ad138b6b Improvements by Royce Mitchell III
svn path=/trunk/; revision=4167
2003-02-17 19:48:27 +00:00
Eric Kohl
acea065ea0 Write log file header, block bitmap and dirty blocks.
svn path=/trunk/; revision=4166
2003-02-17 19:15:41 +00:00
Eric Kohl
32bef2128d Fixed a compiler warning.
svn path=/trunk/; revision=4165
2003-02-17 16:30:17 +00:00
Eric Kohl
d38b07d910 Added errcodes.rc.
svn path=/trunk/; revision=4164
2003-02-17 16:29:11 +00:00
Eric Kohl
9f61985794 Replaced kernel32 heap functions by ntdll heap functions.
svn path=/trunk/; revision=4163
2003-02-17 16:27:31 +00:00
Hartmut Birr
bf6c33299c - Set the last error if SearchPathW fails.
svn path=/trunk/; revision=4162
2003-02-16 18:56:04 +00:00
Hartmut Birr
77e9bdc898 - Added iswspace.
svn path=/trunk/; revision=4161
2003-02-16 18:54:26 +00:00
Hartmut Birr
7644e39b2c - errcodes.rc and msg00409.bin are build by the makefile.
svn path=/trunk/; revision=4160
2003-02-16 18:52:31 +00:00
Hartmut Birr
7aa65c578d - Add a rule to build errcodes.rc.
svn path=/trunk/; revision=4159
2003-02-16 18:47:41 +00:00
Eric Kohl
b4f988014e Changed vidport to videoprt.
svn path=/trunk/; revision=4158
2003-02-16 00:46:37 +00:00
Eric Kohl
491e42c760 Added missing Acl and SD functions from ntdll.
svn path=/trunk/; revision=4157
2003-02-15 22:29:45 +00:00
Eric Kohl
0c2028b391 Added missing Acl and SD functions from ntdll.
svn path=/trunk/; revision=4156
2003-02-15 21:07:49 +00:00
Phillip Susi
da676ec715 Converted a few stray unix linefeeds to dos
svn path=/trunk/; revision=4155
2003-02-15 20:25:03 +00:00
Gé van Geldorp
7ff8369044 Support for VMware video drivers (oops, forgot this one)
svn path=/trunk/; revision=4154
2003-02-15 19:51:27 +00:00
Gé van Geldorp
7f3777d9ad Moved to drivers\dd\videoprt
svn path=/trunk/; revision=4153
2003-02-15 19:25:12 +00:00
Gé van Geldorp
e942503f49 Support for VMware video driver
svn path=/trunk/; revision=4152
2003-02-15 19:21:31 +00:00
Gé van Geldorp
aaa7b9a682 Support for VMware video drivers
svn path=/trunk/; revision=4151
2003-02-15 19:16:34 +00:00
Eric Kohl
d9dc30e0aa * Implemented/fixed NtSetSecurityObject() and NtQuerySecurityObject().
* Updated object security method.
* Added security method for key objects.
* NtDeleteKey() deletes existing values but no subkeys.
* Calculate hive header checksum and increment hive update counters.

svn path=/trunk/; revision=4150
2003-02-15 18:46:28 +00:00
Eric Kohl
e028c60886 Calculate hive header checksum.
Use update counters for hive flushing.
Invalidate more than one block if a cell crosses block boundaries.

svn path=/trunk/; revision=4149
2003-02-14 23:01:06 +00:00
Eric Kohl
e8f191a72e Replaced filesystem list spinlock by an executive resource.
svn path=/trunk/; revision=4148
2003-02-14 22:54:38 +00:00
Eric Kohl
75e27edb71 Fixed declarations.
svn path=/trunk/; revision=4147
2003-02-14 17:52:31 +00:00
Eric Kohl
458223c320 New bins should be flushed properly.
Prepared log file support.

svn path=/trunk/; revision=4146
2003-02-14 17:48:54 +00:00
Hartmut Birr
1c043c1647 - Ntoskrnl uses for all access to internal structures the SectionObjectPointers from file object.
- The bcb field is removed from the REACTOS_COMMON_FCB_HEADER structure.
- FSD's store the pointer to the fcb in FsContext from file object. There is no pointer from ccb to the fcb.

svn path=/trunk/; revision=4145
2003-02-13 22:24:19 +00:00
Eric Kohl
44e85c2846 Implemented merging of free blocks.
svn path=/trunk/; revision=4144
2003-02-13 13:59:57 +00:00
Eric Kohl
493e797fa0 Added hive synchronization to value-related registry functions.
svn path=/trunk/; revision=4143
2003-02-12 19:00:23 +00:00
Eric Kohl
bd0f683f94 Added value delete and enumerate tests.
svn path=/trunk/; revision=4142
2003-02-12 18:56:49 +00:00
Eric Kohl
9895df9741 Implemented IsProcessorFeaturePresent().
svn path=/trunk/; revision=4141
2003-02-12 03:44:20 +00:00
KJK::Hyperion
15d50c5fcd * include/defines.h: defined INVALID_FILE_SIZE
* include/ntos/rtl.h: fixed typo
 * lib/kernel32/file/file.c: fixed GetCompressedFileSizeW
 * lib/kernel32/misc/comm.c: implemented BuildCommDCB and BuildCommDCBAndTimeouts
 * lib/kernel32/misc/handle.c: fixed SetHandleInformation
 * lib/kernel32/misc/time.c: fixed FileTimeToSystemTime
 * lib/kernel32/misc/dllmain.c: shut up a warning
 * lib/kernel32/misc/env.c: ditto
 * lib/kernel32/misc/ldr.c: ditto

svn path=/trunk/; revision=4140
2003-02-12 00:39:31 +00:00
Eric Kohl
c9f5e072dc Added two 'create value' tests.
svn path=/trunk/; revision=4139
2003-02-11 23:47:04 +00:00
Gé van Geldorp
ef9c7cc11f Font facename is stored in LOGFONTW itself (like in LOGFONT)
svn path=/trunk/; revision=4138
2003-02-11 23:35:23 +00:00
Gé van Geldorp
ffb96febaf Match STYPE_* definitions to DDK values
svn path=/trunk/; revision=4137
2003-02-11 00:16:40 +00:00
KJK::Hyperion
d470f18cfb sorry Casper, I have to insist: OSVERSIONINFOEX *derives* from OSVERSIONINFO. It's not just a matter of field names and types, it's a type-checking issue. At least for C++, it has to be inheritance. For C, it's temporarily commented out, until there's a macro to specify if the compiler supports unnamed structure members
svn path=/trunk/; revision=4136
2003-02-10 23:18:41 +00:00
Casper Hornstrup
1e6fba5a39 2003-02-10 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/structs.h (OSVERSIONINFOEXA): Expand definition of
	OSVERSIONINFOA.
	(OSVERSIONINFOEXW): Expand definition of OSVERSIONINFOW.
	* lib/msafd/misc/helpers.c (LocateHelperDLL): Cast AddressFamily,
	SocketType, and Protocol to INT.
	* lib/ws2_32/misc/catalog.c (LocateProvider): Ditto.

svn path=/trunk/; revision=4135
2003-02-10 21:29:41 +00:00
Eric Kohl
848ea5c2e0 Use ERESOURCE instead of spinlock to protect the hive list.
Use worker thread to run hive flush routine at dispatch level.
 - Changes by Hartmut Birr!

Delete a key's hash block when the key is deleted.
Update pointers and offsets in a key object when the key cell is deleted.

svn path=/trunk/; revision=4134
2003-02-10 21:24:45 +00:00
Eric Kohl
0430d6bf60 Fixed a typo.
svn path=/trunk/; revision=4133
2003-02-10 21:17:37 +00:00
Eric Kohl
51806a9cd8 Defined HTCLOSE. Patch by Richard Campbell.
svn path=/trunk/; revision=4132
2003-02-10 15:22:23 +00:00
KJK::Hyperion
bc3ba178e3 New utility tickcount: displays the kernel tick count in human readable format. Sample output:
3 days, 11 hours, 13 minutes, 27 seconds and 943 milliseconds

svn path=/trunk/; revision=4131
2003-02-09 21:17:21 +00:00
KJK::Hyperion
38078e6603 Some more fixes to tchar.h
svn path=/trunk/; revision=4130
2003-02-09 21:15:29 +00:00
Eric Kohl
8ce89c167c Simplified key deletion.
Added workaround to prevent BSOD on missing hives.

svn path=/trunk/; revision=4129
2003-02-09 19:55:40 +00:00
Eric Kohl
cc025a380a Disabled unimplemented tests
svn path=/trunk/; revision=4128
2003-02-09 19:11:51 +00:00
Eric Kohl
2c649ff694 Install hivetest.
svn path=/trunk/; revision=4127
2003-02-09 18:28:16 +00:00
Eric Kohl
e1bae36982 Added hivetest (modified regtest).
Replaced direct calls to make by $(MAKE).

svn path=/trunk/; revision=4126
2003-02-09 18:27:29 +00:00
Eric Kohl
4363c6ef6f Added hivetest (modified regtest).
svn path=/trunk/; revision=4125
2003-02-09 18:26:36 +00:00
Hartmut Birr
ee641bec75 Removed the fix for flushing modified cache segments in NtShutdownSystem.
svn path=/trunk/; revision=4124
2003-02-09 18:04:54 +00:00
Hartmut Birr
965149e8db Implemented IRP_MJ_FLUSH_BUFFERS.
Added cache flushing at shutdown.

svn path=/trunk/; revision=4123
2003-02-09 18:02:56 +00:00
Eric Kohl
8a23cc7a5b Added hive flushing.
- Only keys are supported (create / delete).
- No log-file support yet.
- Still a little buggy.

svn path=/trunk/; revision=4122
2003-02-09 11:57:14 +00:00
Nedko Arnaudov
652669005d Uncommented dependency file generating rule.
$(EXE_POSTFIX) use instead of ".exe".

svn path=/trunk/; revision=4121
2003-02-09 02:18:10 +00:00
Nedko Arnaudov
747e565cb0 Reference to web site at geocities removed (site is dropped).
svn path=/trunk/; revision=4120
2003-02-09 02:15:23 +00:00
Nedko Arnaudov
3cf6c316e7 Some minor documentation at last.
svn path=/trunk/; revision=4119
2003-02-09 02:13:27 +00:00
Eric Kohl
541a44a00e Fixed a bug in RtlFindSetBits().
svn path=/trunk/; revision=4118
2003-02-08 20:59:50 +00:00
Eric Kohl
0be3b55ba5 Copy file dates of source file too.
Get default install directory from txtsetup.sif.

svn path=/trunk/; revision=4116
2003-02-08 00:19:32 +00:00
Nedko Arnaudov
3fad983cf2 *** empty log message ***
svn path=/trunk/; revision=4115
2003-02-05 03:18:57 +00:00
KJK::Hyperion
325856dad9 Small fix to tchar.h
svn path=/trunk/; revision=4114
2003-02-04 01:13:26 +00:00
Gé van Geldorp
38535d7610 Fix by Royce3 to make _tolower() and _toupper() behave like their
MS counterparts

svn path=/trunk/; revision=4113
2003-02-03 17:05:19 +00:00
Gé van Geldorp
0f7e47f8bd Fix by Royce3
svn path=/trunk/; revision=4112
2003-02-03 16:59:27 +00:00
Eric Kohl
a9b14e9d16 Implemented CancelIo() and SetThreadIdealProcessor().
svn path=/trunk/; revision=4111
2003-02-03 14:20:24 +00:00
Gé van Geldorp
5bd96088c4 Set page protection for images having section alignment < page size
svn path=/trunk/; revision=4110
2003-02-03 11:52:46 +00:00
Gé van Geldorp
f5f297382d Set lpcbData (data length) correctly
svn path=/trunk/; revision=4109
2003-02-02 22:40:36 +00:00
Gé van Geldorp
45ce03c95f Make starting of SERVICES.EXE dependent on registry key
svn path=/trunk/; revision=4108
2003-02-02 22:38:54 +00:00
KJK::Hyperion
dc2da3fbac Cleaning up victims of stricter warning checking...
svn path=/trunk/; revision=4107
2003-02-02 19:27:17 +00:00
KJK::Hyperion
a9d96a9cfc Finally solved some advapi32 nonsense:
- advapi32 doesn't import any more from itself
 - smarter stubbing (look at the files modified in this commit)

svn path=/trunk/; revision=4106
2003-02-02 19:24:44 +00:00
KJK::Hyperion
2eabc8e38d Various makefile fixes:
- don't link crt0 and msvcrt by default into system DLLs
 - strict warning checking: all warnings displayed, and treated as errors

svn path=/trunk/; revision=4105
2003-02-02 19:24:16 +00:00
KJK::Hyperion
ec3fc77a5f Don't link crt0 and msvcrt into system DLLs
svn path=/trunk/; revision=4104
2003-02-02 17:36:16 +00:00
KJK::Hyperion
29981bcab8 Reimplemented LoadStringA
Implemented LoadStringW

svn path=/trunk/; revision=4103
2003-02-02 17:35:30 +00:00
Eric Kohl
670b6c8678 Fixed compiler warnings.
svn path=/trunk/; revision=4102
2003-02-02 17:21:06 +00:00
Eric Kohl
ffebe8dee1 Implemented QueryPerformanceCounter() and QueryPerformanceFrequency().
svn path=/trunk/; revision=4101
2003-02-02 16:57:49 +00:00
Eric Kohl
74bc05988d Implemented NtQueryPerformanceCounter().
svn path=/trunk/; revision=4100
2003-02-02 16:55:56 +00:00
Hartmut Birr
f979d1b237 Check the length of the gap if this starts at the begin or end of the area in MmFindGap.
svn path=/trunk/; revision=4099
2003-02-02 08:55:51 +00:00
Hartmut Birr
f0fd058aef Fixed a call to ZwFreeVirtualMemory.
svn path=/trunk/; revision=4098
2003-02-02 08:53:32 +00:00
KJK::Hyperion
26c473a88d OSVERSIONINFO and OSVERSIONINFOEX properly declared
Corrected some PEB fields

svn path=/trunk/; revision=4096
2003-02-01 20:00:26 +00:00
KJK::Hyperion
035dcd8224 GetVersion, GetVersionExA and GetVersionExW reimplemented correctly (almost)
svn path=/trunk/; revision=4095
2003-02-01 19:58:17 +00:00
Jason Filby
c2e49604ca ReactOS 0.1.0
svn path=/trunk/; revision=4093
2003-02-01 15:34:35 +00:00
Hartmut Birr
f6e1dcfb06 Fixed a wrong DPRINT.
svn path=/trunk/; revision=4091
2003-01-31 21:49:11 +00:00
Eric Kohl
ef148f5d2b Renamed misleading 'BootBackupSector' to 'FsInfoSector'.
svn path=/trunk/; revision=4089
2003-01-31 15:55:18 +00:00
Brian Palmer
8ae622059e Updated freeldr.ini to work with latest .ini file changes.
svn path=/trunk/; revision=4088
2003-01-31 02:44:32 +00:00
Eric Kohl
6c8aa0f44c Added write cache flushing (untested).
svn path=/trunk/; revision=4087
2003-01-30 22:09:15 +00:00
Hartmut Birr
ec65b164ca Increase the write back count in CcRosFlushDirtyPages
according to the dirty page count from cache manager.

svn path=/trunk/; revision=4086
2003-01-30 18:30:53 +00:00
Hartmut Birr
945450876a Write back dirty pages from cache manager at shutdown.
svn path=/trunk/; revision=4085
2003-01-30 18:28:10 +00:00
Eric Kohl
79baa4d74c Added more install files. Patch by Hartmut Birr.
svn path=/trunk/; revision=4084
2003-01-30 17:38:30 +00:00
Eric Kohl
14f750504e Distinguish between ini-files and inf/sif-files. Patch by Hartmut Birr.
svn path=/trunk/; revision=4083
2003-01-30 17:37:13 +00:00
Eric Kohl
155e4760a8 Added some more files to the boot-cd.
Fixed bug in txtsetup.sif.

svn path=/trunk/; revision=4082
2003-01-30 14:45:51 +00:00
Eric Kohl
6002d83db8 - Added error messages
- Added support for multiple installations

Please wait until the Disk-LED stopps flashing or your installation will be corrupted. :-/

svn path=/trunk/; revision=4081
2003-01-30 14:41:45 +00:00
Hartmut Birr
40e995eed2 -Using DataBuffer and DataTransferLength from DeviceExtension on read/write requests.
-Check if there is a device attached to the ide channel in AtapiFindDevice.

svn path=/trunk/; revision=4080
2003-01-28 17:34:20 +00:00
Hartmut Birr
596dfc3682 -Do not modify the buffer and length field within the srb for read/write retries.
svn path=/trunk/; revision=4079
2003-01-28 17:33:18 +00:00
Eric Kohl
4263b27dfb Added bootsector installation and boot.ini manipulation.
svn path=/trunk/; revision=4078
2003-01-28 17:29:22 +00:00
Hartmut Birr
3c193e4b74 - Check the returned status after calls to NextCluster/OffsetToCluster
to detect a full disk.
- Call NextCluster with the correct parameters (FirstCluster/NextCluster).
- If the size for a file would be reduced, free first the cache segments
  and as second the clusters within the fat.

svn path=/trunk/; revision=4077
2003-01-28 16:48:03 +00:00
Robert Dickenson
9cac22fb79 minor update.
svn path=/trunk/; revision=4076
2003-01-27 15:12:12 +00:00
Robert Dickenson
6c08d81780 backdoor macro fixed.
svn path=/trunk/; revision=4075
2003-01-27 14:49:18 +00:00
Eugene Ingerman
2e3e5c7bd3 Implemented a couple of stubbed functions. Added several pointer checks.
svn path=/trunk/; revision=4074
2003-01-25 23:09:40 +00:00
Eugene Ingerman
6a14e674e4 Minor bug fix.
svn path=/trunk/; revision=4073
2003-01-25 23:06:32 +00:00
Eugene Ingerman
9715d6594d Minor changes to palette code.
svn path=/trunk/; revision=4072
2003-01-25 23:01:24 +00:00
Eugene Ingerman
d4e882e816 Fixed save/restore screen area bug. This bug showed up as a black rectangle on the vertical scrollbar in winhello test.
svn path=/trunk/; revision=4071
2003-01-25 22:53:12 +00:00
Hartmut Birr
4bf9e37598 -Added some file locking improvements.
svn path=/trunk/; revision=4070
2003-01-25 18:53:27 +00:00
Hartmut Birr
eb70f5ed97 - Reverted my latest changes to fix the handling of errors/retries.
- Set the correct data buffer on retries.

svn path=/trunk/; revision=4069
2003-01-25 16:19:06 +00:00
Hartmut Birr
1c7ac901e2 -IoCallDriver didn't set DeviceObject member in next stack location.
-IofCompleteRequest: fixed broken completion routine handling
(Thanks to Gunnar Andr� Dalsnes)

svn path=/trunk/; revision=4068
2003-01-25 16:16:54 +00:00
Hartmut Birr
5d6425550e -IoCancelIrp fixed/improved (Thanks to Gunnar Andr� Dalsnes).
svn path=/trunk/; revision=4067
2003-01-25 16:15:33 +00:00
Hartmut Birr
8b9d426c26 -Added some irp stack macros (IoSetPreviousIrpStackLocation, IoGetPreviousIrpStackLocation, IoRetardIrpStackLocation). (Thanks to Gunnar Andr� Dalsnes)
svn path=/trunk/; revision=4066
2003-01-25 16:01:49 +00:00
Hartmut Birr
4b68ac00e4 -Implemented vfat file locking. (Thanks to Gunnar Andr� Dalsnes)
svn path=/trunk/; revision=4065
2003-01-25 15:55:08 +00:00
Hartmut Birr
ca34b94db6 -Added some file locking improvements. (Thanks to Gunnar Andr� Dalsnes)
svn path=/trunk/; revision=4064
2003-01-25 15:52:43 +00:00
Hartmut Birr
1fb967f911 -Added file locking test application. (Thanks to Gunnar Andr� Dalsnes)
svn path=/trunk/; revision=4063
2003-01-25 15:46:52 +00:00
Eugene Ingerman
2f26431f71 Fixed: locking GDI objects twice when running wm_paint test.
svn path=/trunk/; revision=4062
2003-01-24 23:25:34 +00:00
Jason Filby
4b0f9d9631 Scrollbar improvements
svn path=/trunk/; revision=4061
2003-01-24 22:42:15 +00:00
Steven Edwards
d3190c9220 Turned off SEH in test
svn path=/trunk/; revision=4060
2003-01-24 19:48:13 +00:00
Steven Edwards
8dc97ce4a4 Added WM_PAINT test from the Windows2000 graphics API blackbook,
used with permission of author under public domain license.

svn path=/trunk/; revision=4059
2003-01-24 19:45:57 +00:00
Eric Kohl
d51c4061d7 Fixed size of BootBackup in the FAT32 bootsector.
svn path=/trunk/; revision=4058
2003-01-24 13:42:43 +00:00
Eric Kohl
1ce736a133 Changes in v1.8.2 (1/24/2003) (ekohl)
- Relaxed check for Int13-Extension support.
  Some BIOSes have a strange opinion about what is supported. :-/

svn path=/trunk/; revision=4057
2003-01-24 11:25:56 +00:00
Eugene Ingerman
9a5403580f Fixed a shameful bug. Color translation should work now.
svn path=/trunk/; revision=4056
2003-01-24 09:11:03 +00:00
Gé van Geldorp
fe5caa6437 Retrieve startup shell from registry
svn path=/trunk/; revision=4055
2003-01-23 00:16:47 +00:00
Gé van Geldorp
cd5b2167bd Make cmd.exe usable as startup shell
svn path=/trunk/; revision=4054
2003-01-23 00:15:10 +00:00
Steven Edwards
24ed00435b Added more stubbs for bochs
svn path=/trunk/; revision=4053
2003-01-22 17:52:14 +00:00
Eric Kohl
834dbc5fd5 Fixed some warnings.
Added missing stubs.
Implemented GetThreadPriotityBoost() and SetThreadPriorityBoost().

svn path=/trunk/; revision=4052
2003-01-22 02:24:36 +00:00
Robert Dickenson
1eac255e7c Changed define _OLE2NLS_IN_BUILD_ to reactivate various stubs including GetACP.
svn path=/trunk/; revision=4050
2003-01-21 20:50:51 +00:00
Gé van Geldorp
382a976b49 Use fclose() on FILE* object
svn path=/trunk/; revision=4049
2003-01-21 17:56:10 +00:00
Eric Kohl
e1cf009871 Changes in v1.8.1 (1/20/2003) (ekohl)
- Fixed the ISO filesystem detection code.
- Removed IsSetupLdr.

svn path=/trunk/; revision=4047
2003-01-20 18:39:53 +00:00
Eric Kohl
3960f23e28 Copy second sector of the fat32 bootsector instead of the fat(12/16) bootsector.
Fixed several compiler warnings.

svn path=/trunk/; revision=4046
2003-01-19 17:01:38 +00:00
Hartmut Birr
ac0965daf7 Added special handling for shift value 32.
svn path=/trunk/; revision=4045
2003-01-19 01:49:10 +00:00
Hartmut Birr
25f4f4f91c Attache the process if we are running in the context of an other process (in KdbFreeSymbols).
svn path=/trunk/; revision=4044
2003-01-19 01:46:33 +00:00
Gé van Geldorp
14fc3556c8 Silence some debug messages
svn path=/trunk/; revision=4043
2003-01-19 01:13:04 +00:00
Eugene Ingerman
15128f6053 Removed debug output.
svn path=/trunk/; revision=4042
2003-01-19 01:07:46 +00:00
Gé van Geldorp
31036dbb90 Honour FILE_OVERWRITE and FILE_OVERWRITE_IF (truncate existing file)
svn path=/trunk/; revision=4041
2003-01-19 01:06:45 +00:00
Gé van Geldorp
96fdaea58f Fix truncation to 0 bytes
svn path=/trunk/; revision=4040
2003-01-19 01:06:09 +00:00
Gé van Geldorp
10d48ac01e Handle textmode translation where CR is at the end of a request and the LF is
at the beginning of the next request

svn path=/trunk/; revision=4039
2003-01-19 01:05:03 +00:00
Brian Palmer
59f1842f56 Changes in v1.8 (1/18/2003) (brianp)
- Added F8 options menu
- Added custom Boot functionality
- Moved all OS= settings from [FreeLoader] section to [Operating Systems] section.
- Removed MessageLine= setting. MessageBox= now accepts "\n" as an escape character for newlines.
- Added descriptions for disk error codes returned by the BIOS.
- Device names like "fd0" and "hd0" and "hd1" as well as BIOS drive numbers can now be used as BootDrive= settings.

svn path=/trunk/; revision=4038
2003-01-19 01:04:01 +00:00
Eugene Ingerman
a26dfde014 Made GDI object locking exclusive. Added functions for locking multiple objects. Added comments.
svn path=/trunk/; revision=4037
2003-01-19 01:01:21 +00:00
Eugene Ingerman
898f490858 Some cleanup.
svn path=/trunk/; revision=4036
2003-01-19 01:01:00 +00:00
Eugene Ingerman
58c9054f3f Made GDI object locking exclusive. Added functions for locking multiple objects.
svn path=/trunk/; revision=4035
2003-01-18 20:53:57 +00:00
Eugene Ingerman
736ff1ac84 Fixed functions where GDI objects were locked but not released.
svn path=/trunk/; revision=4034
2003-01-18 20:47:32 +00:00
Eugene Ingerman
b8049283dc Don't compute absolute values after squaring.
svn path=/trunk/; revision=4033
2003-01-18 20:44:34 +00:00
Rex Jolliff
3b71d9191e a test
svn path=/trunk/; revision=4032
2003-01-18 20:26:20 +00:00
Robert Dickenson
d55087f86e Hope I fixed the broken issue.
svn path=/trunk/; revision=4031
2003-01-18 15:55:07 +00:00
Brian Palmer
4fb2283421 Changes in v1.8 (1/18/2003) (brianp)
- Added F8 options menu
- Added custom Boot functionality
- Moved all OS= settings from [FreeLoader] section to [Operating Systems] section.
- Removed MessageLine= setting. MessageBox= now accepts "\n" as an escape character for newlines.
- Added descriptions for disk error codes returned by the BIOS.
- Device names like "fd0" and "hd0" and "hd1" as well as BIOS drive numbers can now be used as BootDrive= settings.

svn path=/trunk/; revision=4030
2003-01-18 10:21:23 +00:00
Marty Dill
47333299bc Fixed a few memory leaks. Minor cleanup.
svn path=/trunk/; revision=4029
2003-01-18 00:10:59 +00:00
guido
586bc4dd7c ignore rtouch
svn path=/trunk/; revision=4028
2003-01-18 00:10:36 +00:00
Eric Kohl
52aba34f15 Dump some file attributes (file name, volume name, etc.)
Fixed infinite loop in a 'dir' command.

svn path=/trunk/; revision=4027
2003-01-17 19:57:31 +00:00
guido
3adeec8d80 fix compiler warning
svn path=/trunk/; revision=4026
2003-01-17 19:26:14 +00:00
guido
d0d1b840ca make it compile on linux too
svn path=/trunk/; revision=4025
2003-01-17 19:06:15 +00:00
Eric Kohl
e5057ddea7 Dump some file attributes (file name, volume name, etc.)
Fixed infinite loop in a 'dir' command.

svn path=/trunk/; revision=4024
2003-01-17 18:51:13 +00:00
Gé van Geldorp
08a01c4da8 Correctly expand wildcards in other directories
svn path=/trunk/; revision=4023
2003-01-17 18:04:08 +00:00
Eric Kohl
5dc512f7c3 Prepared bootloader installation.
svn path=/trunk/; revision=4022
2003-01-17 13:18:15 +00:00
Eric Kohl
fec5d8fcaf Removed unnecessary includes.
svn path=/trunk/; revision=4021
2003-01-17 13:09:43 +00:00
Eric Kohl
4e7b1eb14b ntddndis.h must include OID definitions.
svn path=/trunk/; revision=4020
2003-01-17 13:04:55 +00:00
Eric Kohl
0349fbade9 Fixed a few STDCALL issues and other warnings.
svn path=/trunk/; revision=4019
2003-01-17 13:03:16 +00:00
Gé van Geldorp
3ade7829d0 * Move (optional) wildcard expansion to split()
* Only expand arguments actually containing wildcard characters
  (to prevent expanding directory names to all files within that directory)

svn path=/trunk/; revision=4018
2003-01-17 00:31:33 +00:00
Gé van Geldorp
1bfce04639 When an empty filename is passed in directory search, find all (*) entries, not
the current directory (.)

svn path=/trunk/; revision=4017
2003-01-16 22:02:24 +00:00
Jason Filby
bf924ece94 New SystemState enumeration
svn path=/trunk/; revision=4016
2003-01-16 20:05:34 +00:00
Casper Hornstrup
50e4ffb8e8 2003-01-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/dbg/profile.c (KdbProfilerThreadMain): Make STDCALL.

svn path=/trunk/; revision=4015
2003-01-16 19:51:20 +00:00
Eric Kohl
96d8f03765 Removed outdated and duplicate bugcode definition.
svn path=/trunk/; revision=4014
2003-01-16 17:56:00 +00:00
Eric Kohl
308b132b5d Added UDF filesystem recognizer (still incomplete).
Fixed several memory leaks.

svn path=/trunk/; revision=4013
2003-01-16 11:58:15 +00:00
guido
191a1899fc ignore *.d
svn path=/trunk/; revision=4012
2003-01-15 23:42:11 +00:00
Casper Hornstrup
36aa98343d 2003-01-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/net/tcpip/makefile (TCP_OBJECTS): Add transport/tcp/tcpcore.o,
	transport/tcp/tcp_input.o, transport/tcp/tcp_ipv4.o,
	transport/tcp/tcp_output.o, and transport/tcp/tcp_timer.o.
	* drivers/net/tcpip/transport/tcp/tcp.c (TCPStartup): Call tcp_init().
	* drivers/net/tcpip/include/linux.h: New file.
	* drivers/net/tcpip/include/tcpcore.h: Ditto.
	* drivers/net/tcpip/include/tcpdef.h: Ditto.
	* drivers/net/tcpip/transport/tcp/tcp_input.c: Ditto.
	* drivers/net/tcpip/transport/tcp/tcp_ipv4.c: Ditto.
	* drivers/net/tcpip/transport/tcp/tcp_output.c: Ditto.
	* drivers/net/tcpip/transport/tcp/tcp_timer.c: Ditto.
	* drivers/net/tcpip/transport/tcp/tcpcore.c: Ditto.

svn path=/trunk/; revision=4011
2003-01-15 21:57:31 +00:00
Casper Hornstrup
fd6f0e5b04 *** empty log message ***
svn path=/trunk/; revision=4010
2003-01-15 21:25:29 +00:00
Casper Hornstrup
910f281f6e 2003-01-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/kernel32/k32.h: New file.
	* lib/kernel32/makefile (TARGET_CFLAGS): Add -I./.
	(TARGET_PCH): Set to k32.h.
	* lib/kernel32/except/except.c: Use <k32.h>.
	* lib/kernel32/file/backup.c: Ditto.
	* lib/kernel32/file/cnotify.c: Ditto.
	* lib/kernel32/file/copy.c: Ditto.
	* lib/kernel32/file/create.c: Ditto.
	* lib/kernel32/file/curdir.c: Ditto.
	* lib/kernel32/file/delete.c: Ditto.
	* lib/kernel32/file/deviceio.c: Ditto.
	* lib/kernel32/file/dir.c: Ditto.
	* lib/kernel32/file/dosdev.c: Ditto.
	* lib/kernel32/file/file.c: Ditto.
	* lib/kernel32/file/find.c: Ditto.
	* lib/kernel32/file/iocompl.c: Ditto.
	* lib/kernel32/file/lfile.c: Ditto.
	* lib/kernel32/file/lock.c: Ditto.
	* lib/kernel32/file/mailslot.c: Ditto.
	* lib/kernel32/file/move.c: Ditto.
	* lib/kernel32/file/npipe.c: Ditto.
	* lib/kernel32/file/pipe.c: Ditto.
	* lib/kernel32/file/rw.c: Ditto.
	* lib/kernel32/file/tape.c: Ditto.
	* lib/kernel32/file/volume.c: Ditto.
	* lib/kernel32/mem/global.c: Ditto.
	* lib/kernel32/mem/heap.c: Ditto.
	* lib/kernel32/mem/isbad.c: Ditto.
	* lib/kernel32/mem/local.c: Ditto.
	* lib/kernel32/mem/procmem.c: Ditto.
	* lib/kernel32/mem/section.c: Ditto.
	* lib/kernel32/mem/virtual.c: Ditto.
	* lib/kernel32/misc/atom.c: Ditto.
	* lib/kernel32/misc/comm.c: Ditto.
	* lib/kernel32/misc/console.c: Ditto.
	* lib/kernel32/misc/debug.c: Ditto.
	* lib/kernel32/misc/dllmain.c: Ditto.
	* lib/kernel32/misc/env.c: Ditto.
	* lib/kernel32/misc/error.c: Ditto.
	* lib/kernel32/misc/handle.c: Ditto.
	* lib/kernel32/misc/ldr.c: Ditto.
	* lib/kernel32/misc/profile.c: Ditto.
	* lib/kernel32/misc/res.c: Ditto.
	* lib/kernel32/misc/stubs.c: Ditto.
	* lib/kernel32/misc/sysinfo.c: Ditto.
	* lib/kernel32/misc/time.c: Ditto.
	* lib/kernel32/process/cmdline.c: Ditto.
	* lib/kernel32/process/create.c: Ditto.
	* lib/kernel32/process/proc.c: Ditto.
	* lib/kernel32/process/session.c: Ditto.
	* lib/kernel32/string/lstring.c: Ditto.
	* lib/kernel32/synch/critical.c: Ditto.
	* lib/kernel32/synch/event.c: Ditto.
	* lib/kernel32/synch/intrlck.c: Ditto.
	* lib/kernel32/synch/mutex.c: Ditto.
	* lib/kernel32/synch/sem.c: Ditto.
	* lib/kernel32/synch/timer.c: Ditto.
	* lib/kernel32/synch/wait.c: Ditto.
	* lib/kernel32/thread/fiber.c: Ditto.
	* lib/kernel32/thread/thread.c: Ditto.
	* lib/kernel32/thread/tls.c: Ditto.

svn path=/trunk/; revision=4009
2003-01-15 21:24:36 +00:00
Casper Hornstrup
76b1705795 2003-01-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/testsets/Makefile (TEST_SETS): Remove ldr.
	* include/msvcrt/ctype.h (towupper): Make returntype wchar_t.

svn path=/trunk/; revision=4008
2003-01-15 21:07:18 +00:00
Casper Hornstrup
1c52b61e7d 2003-01-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/rtouch.c: Include <sys/utime.h>, not <utime.h>.

svn path=/trunk/; revision=4007
2003-01-15 20:32:35 +00:00
Casper Hornstrup
f63e1913da 2003-01-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/rtouch.c: New file.
	* rules.mak (ROS_USE_PCH): Default to no.
	(RTOUCH): Define.
	* tools/Makefile: Add rtouch utility.
	* tools/helper.mk: Support precompiled headers.

svn path=/trunk/; revision=4006
2003-01-15 20:18:12 +00:00
Robert Dickenson
8b09e17d3f Required for some wine libs and now rosapps to build with ros includes in preference to mingw's
svn path=/trunk/; revision=4005
2003-01-15 20:17:50 +00:00
Robert Dickenson
b2a576cd5f Pulling in wstring support functions from wine, need to either bring in wctype_table or access the kernel32 nls files??? TODO:
svn path=/trunk/; revision=4004
2003-01-15 20:12:27 +00:00
Robert Dickenson
9ebba084e6 Split out separate makefiles for apps/tests apps/testsets & apps/utils.
svn path=/trunk/; revision=4003
2003-01-15 20:09:52 +00:00
Robert Dickenson
e6a193806c Mainly standardisation of makefiles. Added some exports to core libs for wine dependancies.
svn path=/trunk/; revision=4002
2003-01-15 20:05:53 +00:00
Casper Hornstrup
eb3b9049a9 2003-01-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/dbg/profile.c: New file.
	* ntoskrnl/Makefile (OBJECTS_KDBG): Add dbg/profile.o.
	* ntoskrnl/dbg/kdb.h: Define NTOS_MODE_KERNEL. Include <ntos.h>.
	(LdrGetAddressInformation, KdbInitProfiling, KdbInitProfiling2,
	KdbDisableProfiling, KdbEnableProfiling, KdbProfileInterrupt) Prototype.
	* ntoskrnl/kd/kdebug.c (KdInitSystem): Add /PROFILE option if KDBG=1.
	* ntoskrnl/ke/main.c (ExpInitializeExecutive): Call KdbInitProfiling2()
	if KDBG=1.
	* ntoskrnl/ke/i386/irq.c: Include <../dbg/kdb.h> if KDBG=1.
	(KiInterruptDispatch): Call KdbProfileInterrupt() on timer interrupt
	if KDBG=1.

svn path=/trunk/; revision=4001
2003-01-15 19:58:07 +00:00
Robert Dickenson
92dec86909 Mainly standardisation of makefiles, now support make install rules and use ros headers...
svn path=/trunk/; revision=4000
2003-01-15 19:55:29 +00:00
Casper Hornstrup
f811f37004 2003-01-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/fs/vfat/create.c (VfatSupersedeFile): Only notify cache manager
	about change in file size if caching is initiated on the file stream.

svn path=/trunk/; revision=3999
2003-01-15 19:53:49 +00:00
Hartmut Birr
594558c6e2 Fixed the corrupted screen after a console switching with ALT+TAB.
svn path=/trunk/; revision=3998
2003-01-15 00:36:10 +00:00
Gé van Geldorp
97bb8934e2 Include error code in diagnostic and exit on error
svn path=/trunk/; revision=3997
2003-01-15 00:17:12 +00:00
guido
0319671dea just fixed a few warnings
svn path=/trunk/; revision=3996
2003-01-14 18:51:12 +00:00
Hartmut Birr
6f63730de8 Fixed low memory mapping.
svn path=/trunk/; revision=3995
2003-01-13 01:11:12 +00:00
Hartmut Birr
2cc8694271 Fixed UINT8/PUINT8.
svn path=/trunk/; revision=3994
2003-01-13 00:50:37 +00:00
Robert Dickenson
e9ba047848 path to root correction.
svn path=/trunk/; revision=3993
2003-01-12 02:03:06 +00:00
Robert Dickenson
87c1e63ebe Added new targets.
svn path=/trunk/; revision=3992
2003-01-12 02:02:17 +00:00
Robert Dickenson
329c896e1f Updates to the VDM support. Improvemnts to the new wine-debug-channels supprt.
svn path=/trunk/; revision=3991
2003-01-12 01:54:40 +00:00
Gé van Geldorp
1028fc6755 getc must return unsigned chars, cast to int
svn path=/trunk/; revision=3990
2003-01-11 22:40:24 +00:00
Casper Hornstrup
a437c36e7f 2003-01-11 Casper S. Hornstrup <chorns@users.sourceforge.net>
* boot.bat: Use DOS end-of-line characters.

svn path=/trunk/; revision=3989
2003-01-11 17:30:34 +00:00
Hartmut Birr
6dac0c12b1 Reduced the size of the copy buffer.
svn path=/trunk/; revision=3988
2003-01-11 16:03:55 +00:00
Hartmut Birr
99a3325875 Removed FCB_UPDATE_ENTRY.
svn path=/trunk/; revision=3987
2003-01-11 16:02:29 +00:00
Hartmut Birr
0f02fa7c0d Call VfatUpdateEntry on each write operation.
svn path=/trunk/; revision=3986
2003-01-11 16:01:28 +00:00
Hartmut Birr
3ce30c75e1 Inform/query the cache/memory manager if a file would be deleted.
svn path=/trunk/; revision=3985
2003-01-11 16:00:16 +00:00
Hartmut Birr
3e3f697064 Store a pointer to the parent in the fcb structure and
reference/dereference the parent fcb on create/destroy.

svn path=/trunk/; revision=3984
2003-01-11 15:59:07 +00:00
Hartmut Birr
a2aa04440b Reduced some overhead in VfatUpdateEntry.
svn path=/trunk/; revision=3983
2003-01-11 15:57:55 +00:00
Hartmut Birr
7a16a8cbe7 Removed the call to VfatUpdateEntry.
Executed VfatClose always synchronous.

svn path=/trunk/; revision=3982
2003-01-11 15:56:43 +00:00
Hartmut Birr
189d9d92c3 Removed the call to VfatUpdateEntry.
svn path=/trunk/; revision=3981
2003-01-11 15:52:54 +00:00
Hartmut Birr
543fd98805 Used a hash table for storing/searching of process data pointers.
Unmap the connected view in CsrFreeProcessData.
Set the correct reply status in CsrCreateProcess.

svn path=/trunk/; revision=3980
2003-01-11 15:51:48 +00:00
Hartmut Birr
dfbf98b1b0 Fixed the check for the correct count of pagefiles.
svn path=/trunk/; revision=3979
2003-01-11 15:49:33 +00:00
Hartmut Birr
aa18c0d5d4 Ended the searching for a free block if it was found one.
svn path=/trunk/; revision=3978
2003-01-11 15:48:33 +00:00
Hartmut Birr
779329a8ee Disabled the call to MmWriteDirtyPages. MmWriteDirtyPages doesn't work correctly.
svn path=/trunk/; revision=3977
2003-01-11 15:47:14 +00:00
Hartmut Birr
9a1546a675 Signaled the event of pageop at return if the function have previous wait at this event.
svn path=/trunk/; revision=3976
2003-01-11 15:45:55 +00:00
Hartmut Birr
680b25b598 Did not dereference the connected port if the function returns success.
svn path=/trunk/; revision=3975
2003-01-11 15:33:49 +00:00
Hartmut Birr
b99cb5b1aa Fixed a comment.
svn path=/trunk/; revision=3974
2003-01-11 15:32:40 +00:00
Hartmut Birr
be6d0d37cd Signaled the event of pageop at return if the function have previous wait at this event.
Freed the section segments for a pagefile mapping in MmpDeleteSection.
Dereferenced the section object at the end of MmCreatePageFileSection.
Implemented MmFlushImageSection (not complete).

svn path=/trunk/; revision=3973
2003-01-11 15:31:05 +00:00
Hartmut Birr
14c1929fc2 Used lookasidelists for rmap's.
svn path=/trunk/; revision=3972
2003-01-11 15:28:18 +00:00
Hartmut Birr
ac22af2d68 Used lookasidelists for pageop's.
svn path=/trunk/; revision=3971
2003-01-11 15:26:59 +00:00
Hartmut Birr
e177cc849d Used lookasidelists for some memory allocations.
Implemented a delayed remove/close function for file objects.
This holds files for section views (exe's and dll's) longer
within the cache.

svn path=/trunk/; revision=3970
2003-01-11 15:24:38 +00:00
Hartmut Birr
7a00c6be46 Used lookasidelists for ibcb's.
Enabled caching of directories and fat segments.

svn path=/trunk/; revision=3969
2003-01-11 15:22:31 +00:00
Hartmut Birr
a0e6246535 Moved all definitions for internal structures and functions to cc.h.
svn path=/trunk/; revision=3968
2003-01-11 15:21:09 +00:00
Gé van Geldorp
ec67f794e9 Temporary fix to allow build to continue(generated file, shouldn't be in CVS)
svn path=/trunk/; revision=3967
2003-01-10 20:02:50 +00:00
Robert Dickenson
f821d1d7cc Changes to included libraries in build.
svn path=/trunk/; revision=3966
2003-01-08 19:56:26 +00:00
Robert Dickenson
d606d9479f New name for packet capture library network driver, packet driver to be deprecated.
svn path=/trunk/; revision=3965
2003-01-08 19:55:02 +00:00
Robert Dickenson
cfc75012b1 New library to export the wine debug channel support functions.
svn path=/trunk/; revision=3964
2003-01-08 19:52:22 +00:00
Robert Dickenson
f81a1de259 Moved wine debug channel exports to new library.
svn path=/trunk/; revision=3963
2003-01-08 19:50:39 +00:00
Robert Dickenson
1af5429d2b And that wraps up our broadcast for this evening.
svn path=/trunk/; revision=3961
2003-01-07 18:22:54 +00:00
Robert Dickenson
9c58563e7b Updates to accomodate changes and additions with the various sub-modules.
svn path=/trunk/; revision=3960
2003-01-07 18:20:34 +00:00
Robert Dickenson
158847adad temporarily removed regexpl due to C++ dependance problems.
svn path=/trunk/; revision=3959
2003-01-07 18:16:44 +00:00
Robert Dickenson
34f1644a51 Updated and removed temporarily regexpl due to C++ problems.
svn path=/trunk/; revision=3958
2003-01-07 18:14:30 +00:00
Robert Dickenson
b30bc31e1f CVS housekeeping.
svn path=/trunk/; revision=3957
2003-01-07 18:10:30 +00:00
Robert Dickenson
299dc7ee24 Added clipboard and common dialog references as well as build improvements.
svn path=/trunk/; revision=3956
2003-01-07 18:06:16 +00:00
Robert Dickenson
d73cc06799 Temporary fork of candidate base of potententially very useful development tool for ros.
svn path=/trunk/; revision=3955
2003-01-07 17:59:20 +00:00
Robert Dickenson
b8573aace5 Added _alldiv,_allmul,_allrem,_allshl,_allshr,_aulldiv,_aullrem,_aullshr stubs and exported them.
svn path=/trunk/; revision=3954
2003-01-07 17:48:12 +00:00
Robert Dickenson
5def2455d3 Added rules for building 'proglib' targets since nothing seemed to use this target already and it didn't work for csrss otherwise.
svn path=/trunk/; revision=3953
2003-01-07 17:39:58 +00:00
Robert Dickenson
839ce7a195 Changed from target type 'program' to 'proglib' and exported CsrServerInitialization for OS/2 subsystem linkage.
svn path=/trunk/; revision=3952
2003-01-07 17:37:22 +00:00
Robert Dickenson
2f4bd108e7 Turned back off and modified some other debug noise.
svn path=/trunk/; revision=3951
2003-01-07 17:35:56 +00:00
Robert Dickenson
b4ed26f8da Added some some missing exports for wine module linkage.
Shutdown was a mess from *nix newlines.

svn path=/trunk/; revision=3950
2003-01-07 17:32:59 +00:00
Robert Dickenson
ae2157bade Added some some missing exports for wine module linkage.
svn path=/trunk/; revision=3949
2003-01-07 17:30:33 +00:00
Robert Dickenson
0ffa768455 Added support for lauching VDM on dos image load.
Depends phase in makefile for processing with wmc.
Included message table resources section.
Added some some missing exports for wine module linkage.

svn path=/trunk/; revision=3948
2003-01-07 17:29:09 +00:00
Robert Dickenson
3f13766f16 added install batch similar to that provided in /reactos. Removed deprecated Makefile.
svn path=/trunk/; revision=3947
2003-01-07 16:24:45 +00:00
Robert Dickenson
a6d6844e8a Performed housekeeping to get the subsystem building. Introduced ros makefile 'standards' throughout.
Is anybody doing any work on the OS/2 support?

svn path=/trunk/; revision=3946
2003-01-07 16:23:12 +00:00
Robert Dickenson
a8e38f8c30 housekeeping files...
svn path=/trunk/; revision=3945
2003-01-05 19:32:32 +00:00
Robert Dickenson
8efeab6149 Include a define for a Macro having being defined, temporary fix to avoid conflict with posix+ headers.
svn path=/trunk/; revision=3944
2003-01-05 19:23:20 +00:00
Robert Dickenson
176e744766 Trivial update to trace message plus the usual housekeeping...
svn path=/trunk/; revision=3943
2003-01-05 19:18:44 +00:00
Robert Dickenson
add8773a9b Added a new phase to the build cycle, make depends, in order to get certain dependancies built first.
This includes but is not limited to global error code headers generated from message scripts via wmc.

svn path=/trunk/; revision=3942
2003-01-05 19:17:16 +00:00
Robert Dickenson
9b802163c5 Updated global ReactOS makefile to incorporate new wine and posix etc sub-targets with the defacto standard make style.
svn path=/trunk/; revision=3941
2003-01-05 19:15:10 +00:00
Robert Dickenson
3028effd84 doing some maintenance on the posix build system, getting in sync with reactos base.
svn path=/trunk/; revision=3940
2003-01-05 18:29:41 +00:00
Robert Dickenson
0ab5c4ecee doing some maintenance on the posix build system, getting in sync with reactos base.
svn path=/trunk/; revision=3939
2003-01-05 18:10:27 +00:00
Robert Dickenson
bc87211c3f housekeeping files...
svn path=/trunk/; revision=3938
2003-01-05 17:54:20 +00:00
Robert Dickenson
d110568a5c created stubs for the rest of the functions listed in mingw's tlhelp.h and exported them.
svn path=/trunk/; revision=3937
2003-01-05 14:32:32 +00:00
Robert Dickenson
c374e4ed3e Created test program for loading libraries in various ways.
svn path=/trunk/; revision=3936
2003-01-05 14:17:42 +00:00
Robert Dickenson
b9113d3fae Moved the beginnings of some toolhelp exports to their own module.
svn path=/trunk/; revision=3935
2003-01-05 10:07:08 +00:00
Robert Dickenson
661896dfde ps did not require a lot from C++, so now it doesn't require it at all.
svn path=/trunk/; revision=3934
2003-01-04 18:36:28 +00:00
Robert Dickenson
7a48c7fcf2 exported stubs for Process32First, Process32Next and CreateToolhelp32Snapshot created.
svn path=/trunk/; revision=3933
2003-01-04 18:33:18 +00:00
Robert Dickenson
7c22eaa402 reference to mingw's libth32.a added so the thing compiles *and* links.
svn path=/trunk/; revision=3932
2003-01-04 17:45:49 +00:00
Emanuele Aliberti
14759bdf75 Copyright years updated to 2003.
svn path=/trunk/; revision=3931
2003-01-04 15:24:12 +00:00
Emanuele Aliberti
3d07c7ba00 Eugene Ingerman, Guido de Jong, Jurgen van Gael, Marty Dill, and Ge van Geldorp added to the list of ROS coders.
svn path=/trunk/; revision=3930
2003-01-04 15:21:18 +00:00
Hartmut Birr
267074bb2e Fixed handling of large FAT32 partitions.
svn path=/trunk/; revision=3928
2003-01-04 02:07:18 +00:00
Gé van Geldorp
0a4d96cc81 Handle FAT32 partitions larger than 4GB
svn path=/trunk/; revision=3927
2003-01-03 23:58:31 +00:00
guido
85c1893693 fix some warnings
----------------------------------------------------------------------

svn path=/trunk/; revision=3926
2003-01-03 00:28:07 +00:00
Casper Hornstrup
31fe11951c 2003-01-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/ke/timer.c (KeExpireTimers): Avoid signed/unsigned comparison
	warning.
	* lib/user32/controls/scrollbar.c (SCROLL_DrawScrollBar): Put a statement
	at end.

svn path=/trunk/; revision=3925
2003-01-02 23:37:28 +00:00
Hartmut Birr
a39bff34c3 Set the hidden sector value from boot sector with the correct partition offset.
svn path=/trunk/; revision=3924
2003-01-02 21:43:52 +00:00
Hartmut Birr
8c7e8c4bbc Recalculate the partition value for freeldr. Freeldr uses a different partition numbering like linux.
svn path=/trunk/; revision=3923
2003-01-02 21:42:56 +00:00
Hartmut Birr
efc518af7b Fixed the access to the region list in MmAlterRegion.
svn path=/trunk/; revision=3922
2003-01-02 16:41:56 +00:00
Hartmut Birr
4af2b6bcb7 Splited HalEndSystemInterrupt in two functions. HalEndSystemInterrupt,
HalpLowerIrql and HalpExecuteIrqs was called recursively.

svn path=/trunk/; revision=3921
2003-01-02 16:07:49 +00:00
Hartmut Birr
e7cbcafe30 Moved the call to HalEndSystemInterrupt to the end of KiInterruptDispatch.
svn path=/trunk/; revision=3920
2003-01-02 16:06:49 +00:00
Hartmut Birr
7d15711868 Fixed a buffer overflow in wcsncpy.
svn path=/trunk/; revision=3919
2003-01-02 16:05:50 +00:00
Hartmut Birr
0b2f407fd4 Added a missing call to VfatCloseFile.
svn path=/trunk/; revision=3918
2003-01-02 16:04:31 +00:00
Hartmut Birr
b3f5d3a6f8 Added a terminating 0 in vfatGetFCBForFile. Vfat has used the buggy implementation of wcsncpy.
svn path=/trunk/; revision=3917
2003-01-02 16:03:56 +00:00
Hartmut Birr
c937cd4933 Fixed the handling for errors/retries.
svn path=/trunk/; revision=3916
2003-01-02 16:03:04 +00:00
Hartmut Birr
f9725d0888 Check if a uncached read is sector aligned, fail if is not.
svn path=/trunk/; revision=3915
2003-01-02 16:02:02 +00:00
Hartmut Birr
5d8ab9ff70 Uninitialize the file cache only if it was initialized.
svn path=/trunk/; revision=3914
2003-01-02 16:01:21 +00:00
Robert Dickenson
5b2709d12e added missing sub-dir to clean rule.
svn path=/trunk/; revision=3913
2003-01-01 11:18:06 +00:00
Robert Dickenson
e5b16f9408 Updates to test program.
svn path=/trunk/; revision=3912
2003-01-01 11:16:18 +00:00
Robert Dickenson
617e618fda Minor mods.
svn path=/trunk/; revision=3911
2003-01-01 11:11:49 +00:00
Robert Dickenson
980c3dbb9a Changes to all definitions involving wchar_t. The unsigned short type caused g++ to fail.
svn path=/trunk/; revision=3910
2003-01-01 06:19:37 +00:00
Robert Dickenson
4d245b3040 updates to the sc utility.
svn path=/trunk/; revision=3909
2002-12-28 16:19:22 +00:00
Robert Dickenson
239ec2591c added a default test ip address, i'm sure i've done this before...
svn path=/trunk/; revision=3908
2002-12-28 16:12:04 +00:00
Robert Dickenson
79a36072ff added new targets - does anybody else use these?
perhaps I should try make install some time...

svn path=/trunk/; revision=3907
2002-12-28 16:10:03 +00:00
Robert Dickenson
c7e92bc001 added new targets and some macros.
svn path=/trunk/; revision=3906
2002-12-28 16:07:59 +00:00
Robert Dickenson
d4e546fc84 moved all wine targets to makefile in wine dir
svn path=/trunk/; revision=3905
2002-12-28 16:06:11 +00:00
Gé van Geldorp
fab451963b Added apps\tests\copymove
svn path=/trunk/; revision=3904
2002-12-27 23:56:03 +00:00
Gé van Geldorp
92dee16101 Tests for MoveFile and related routines
svn path=/trunk/; revision=3903
2002-12-27 23:54:33 +00:00
Gé van Geldorp
133a166af6 Improved file attribute and file time handling
svn path=/trunk/; revision=3902
2002-12-27 23:50:21 +00:00
Robert Dickenson
d2d897b1c4 something going spooky with CVS, trying to get this file in...
svn path=/trunk/; revision=3901
2002-12-27 14:53:06 +00:00
Robert Dickenson
3288c0e0d5 Include test for truncating files, which currently doesn't work.
svn path=/trunk/; revision=3900
2002-12-27 14:44:01 +00:00
Robert Dickenson
bb2e6e63b8 Progress with opening and closing handles to SCM.
svn path=/trunk/; revision=3899
2002-12-27 14:40:03 +00:00
Robert Dickenson
70544cdae0 First draft of a ScmNamedPipeListenerThread implementation.
Some debug noise from winlogon and as always edited an ignore file.

svn path=/trunk/; revision=3898
2002-12-27 13:54:28 +00:00
Robert Dickenson
e464b1cd43 rename target from sh.exe to baresh.exe to avoid namespace conflict.
svn path=/trunk/; revision=3897
2002-12-26 18:28:25 +00:00
Robert Dickenson
c36596ece0 Keep the posix module buildable, and add some CVS sugar for easier scanning.
svn path=/trunk/; revision=3896
2002-12-26 18:14:38 +00:00
Robert Dickenson
2ed726833f Changed THREAD_STATE_RUNNABLE to THREAD_STATE_READY however PsDispatchThread() is still inaccessible.
svn path=/trunk/; revision=3895
2002-12-26 17:36:12 +00:00
Robert Dickenson
0edbb923d6 Perl5.8 requires the pointer to i/o table to be exported, and layed out correctly...
svn path=/trunk/; revision=3894
2002-12-26 17:26:41 +00:00
Robert Dickenson
b9d3e630ef Unix extra lines cleaned up.
svn path=/trunk/; revision=3893
2002-12-26 17:23:27 +00:00
Robert Dickenson
8e885e0492 Started to port some of the support for IsCharAlphaNumeric et al from wine.
svn path=/trunk/; revision=3892
2002-12-26 17:21:27 +00:00
Robert Dickenson
6cf975887d More sugar for CVS...
svn path=/trunk/; revision=3891
2002-12-26 17:16:13 +00:00
Robert Dickenson
df6e777080 Added new Service Control utitlity.
svn path=/trunk/; revision=3890
2002-12-26 17:04:46 +00:00
Gé van Geldorp
ccf4643b4c Fix sector size for AT LBA drives at 512 bytes
svn path=/trunk/; revision=3889
2002-12-22 11:38:41 +00:00
Gé van Geldorp
67cf4a374e Fixed typo, Edi was not restored
svn path=/trunk/; revision=3888
2002-12-22 11:35:15 +00:00
Gé van Geldorp
7140e3951d Volume label doesn't always have the ARCHIVE bit set
svn path=/trunk/; revision=3887
2002-12-22 11:26:01 +00:00
Jason Filby
2f3111335f Oops! Commented out offending line
svn path=/trunk/; revision=3886
2002-12-22 10:50:04 +00:00
Jason Filby
69ccaa8434 Scrollbar improvements
svn path=/trunk/; revision=3885
2002-12-21 19:25:41 +00:00
Eric Kohl
afe60dcdbf Add bootsectors and FREELDR.SYS to bootcd.
svn path=/trunk/; revision=3884
2002-12-21 14:54:47 +00:00
Robert Dickenson
05a8cab618 Revisted the packet capture driver and updated with fixes in latest 3.0a4 release.
Seems I'll need to do some work on the SCM before this'll be running for me.

svn path=/trunk/; revision=3883
2002-12-21 04:46:09 +00:00
Hartmut Birr
5f09dd1402 Replaced some calls to DbgPrint with the DPRINT macro.
svn path=/trunk/; revision=3882
2002-12-16 23:23:21 +00:00
Hartmut Birr
2774a7c60b Unmap the low memory in SMP mode in MmInit3.
svn path=/trunk/; revision=3881
2002-12-16 22:59:44 +00:00
Hartmut Birr
5b1b2a4860 Fixed Exfi386InterlockedExchangeUlong and InterlockedExchange.
svn path=/trunk/; revision=3880
2002-12-16 22:56:30 +00:00
Casper Hornstrup
3aa9d2d9ba 2002-12-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/fs/vfat/cleanup.c (VfatCleanupFile): Only uninitialize caching
	when initialized.
	* drivers/fs/vfat/fcb.c (vfatReleaseFCB): Ditto.
	* lib/kernel32/mem/section.c (CreateFileMappingW): Pass NULL as
	MaximumSize to NtCreateSection if dwMaximumSizeHigh and dwMaximumSizeLow
	are both 0.
	* ntoskrnl/cc/pin.c (CcMapData): Assert if Bcb is NULL.
	* ntoskrnl/cc/view.c (CcRosReleaseCacheSegment, CcRosLookupCacheSegment,
	CcRosMarkDirtyCacheSegment, CcRosUnmapCacheSegment,
	CcRosCreateCacheSegment, CcRosGetCacheSegmentChain,
	CcRosGetCacheSegment, CcRosRequestCacheSegment, CcFlushCache,
	CcRosDeleteFileCache, CcRosReferenceCache, CcRosDereferenceCache,
	CcRosReleaseFileCache, CcGetFileObjectFromSectionPtrs): Ditto.
	* ntoskrnl/mm/section.c (MiReadPage): Assert if Fcb->Bcb is NULL.
	(MmCreateDataFileSection): Make sure caching is initialized for the file
	stream.

svn path=/trunk/; revision=3879
2002-12-15 17:01:52 +00:00
Eric Kohl
d774049979 Use lookaside list to allocate SRBs.
svn path=/trunk/; revision=3878
2002-12-15 14:34:43 +00:00
Robert Dickenson
35ccf47588 created kernel32.mc message file which generates errcodes.rc, MSG00409.bin and /include/reactos/errcodes.h
need to figure out how to get these to build automatically at the dependancy stage before including the output rc into kernel32 resources.

svn path=/trunk/; revision=3877
2002-12-15 06:34:43 +00:00
Steven Edwards
dd8087fdde Apply'd hartmut sector size patch for VMware.
Please report if you have problems on your platform

svn path=/trunk/; revision=3876
2002-12-15 00:23:31 +00:00
Steven Edwards
9894d327a4 Added more stubs for bochs.
svn path=/trunk/; revision=3875
2002-12-14 17:36:51 +00:00
Robert Dickenson
218703bf94 Updated test program.
Successfully reads and writes short test buffer using stream I/O, both A and W versions.
Tests for correct handling of /r/n in text modes however nothing as yet for multi-bytes.
If you rebuild me watch out for the dependacy _tfileio.c which doesn't have an entry in the makefile.

svn path=/trunk/; revision=3874
2002-12-14 14:42:01 +00:00
Eric Kohl
4e2f492dc0 Fixed data overrun upon read commands.
svn path=/trunk/; revision=3873
2002-12-13 19:35:12 +00:00
Eric Kohl
34056f0e1c Don't build ide.sys any longer.
svn path=/trunk/; revision=3872
2002-12-12 17:04:01 +00:00
Robert Dickenson
30b8d5cc45 Fixed "kernel32_test codepage" conformance test:
C:\reactos\bin>kernel32_test codepage
codepage: 2 tests executed, 0 marked as todo, 0 failures.
Plus a bit of cvsignoring and #ifdef's in stubs for trying to build with the ole2nls module.

svn path=/trunk/; revision=3871
2002-12-12 04:53:23 +00:00
Robert Dickenson
785d4e6698 KdDebuggerEnable -> KdDebuggerEnabled
svn path=/trunk/; revision=3870
2002-12-11 04:39:20 +00:00
Hartmut Birr
a7be665092 Removed dependancy tracking.
svn path=/trunk/; revision=3869
2002-12-10 19:09:26 +00:00
Steven Edwards
1ff8dc116a Linking not hosed now. Fixed via import of -lstdc++.
svn path=/trunk/; revision=3868
2002-12-10 17:03:03 +00:00
Steven Edwards
e4493af78d Fixed makefile for cabman. Linking is still hosed.
svn path=/trunk/; revision=3867
2002-12-10 17:01:16 +00:00
Eric Kohl
1ff210919e Added the Promise Ultra100 (PDC20267) controller to the list of supported atapi controllers.
svn path=/trunk/; revision=3866
2002-12-10 12:18:33 +00:00
Robert Dickenson
c43641f102 Put things back how they work for others until I work it out properly.
svn path=/trunk/; revision=3865
2002-12-10 09:31:30 +00:00
Eric Kohl
f51d9f66a6 Replaced bios error codes by valid status codes.
svn path=/trunk/; revision=3864
2002-12-09 23:15:57 +00:00
Eric Kohl
e1ed68fe85 Implemented ScsiPortGetDeviceBase() and ScsiPortFreeDeviceBase().
svn path=/trunk/; revision=3863
2002-12-09 23:14:04 +00:00
Eric Kohl
2b0a6b6d38 Fixed buggy system hive identification.
svn path=/trunk/; revision=3862
2002-12-09 23:09:25 +00:00
Hartmut Birr
8f1bfbccb6 Fixed some bugs in the wait functions.
svn path=/trunk/; revision=3861
2002-12-09 20:16:42 +00:00
Hartmut Birr
e1b39fac3c Protected the access to system_time with a spinlock.
svn path=/trunk/; revision=3860
2002-12-09 20:15:25 +00:00
Hartmut Birr
d008835685 Fixed the setting of the real time clock.
svn path=/trunk/; revision=3859
2002-12-09 20:13:12 +00:00
Hartmut Birr
cd35c38aa0 Added ntdll.a to TARGET_SDKLIBS. Ntdll.a is needed to import DbgPrint for DPRINT macros.
svn path=/trunk/; revision=3858
2002-12-09 20:11:56 +00:00
Hartmut Birr
14d77e9c63 Added -D_MSVCRT_LIB_ to TARGET_CFLAGS and ntdll.a to TARGET_SDKLIBS.
Ntdll.a is needed to import DbgPrint for DPRINT macros.

svn path=/trunk/; revision=3857
2002-12-09 20:09:24 +00:00
Hartmut Birr
c8662b4cab Disabled the definition of DbgPrint for __GNUC__. DbgPrint is imported from ntdll.dll.
svn path=/trunk/; revision=3856
2002-12-09 20:07:46 +00:00
Hartmut Birr
1fa5ceab79 Fixed the initializing of the C runtime handles.
svn path=/trunk/; revision=3855
2002-12-09 20:06:24 +00:00
Hartmut Birr
1cd89b296e Added support for shared interrupts (tested with a promise ultra100tx2 controller).
Added support for the Promise utra100tx2 controller.
Used multiple sector commands and 32bit IO only if the disk does support this.

svn path=/trunk/; revision=3854
2002-12-09 20:04:44 +00:00
Hartmut Birr
4db7fe648e Added more debug messages.
Register interrupts with hal and allow shared interrupts.

svn path=/trunk/; revision=3853
2002-12-09 20:01:14 +00:00
Hartmut Birr
39a9c0a865 Register interrupts with hal.
svn path=/trunk/; revision=3852
2002-12-09 19:57:56 +00:00
Hartmut Birr
a7ee619591 Enable/Disable the irq in KeConnectInterrupt/KeDisconnectInterrupt.
Call each registered interrupt in KiInterruptDispatch2 (only for UP).

svn path=/trunk/; revision=3851
2002-12-09 19:53:44 +00:00
Hartmut Birr
c657e69cc6 Fixed handling for level triggered interrupts.
svn path=/trunk/; revision=3850
2002-12-09 19:51:16 +00:00
Hartmut Birr
4386afd7cb Protected the cmos ports with a spinlock.
svn path=/trunk/; revision=3849
2002-12-09 19:47:22 +00:00
Hartmut Birr
89fd93f5c7 Fixed the calculation of the irql.
svn path=/trunk/; revision=3848
2002-12-09 19:46:39 +00:00
Hartmut Birr
bb6414ddad Fixed the addressing of pci device and function numbers.
Protected the pci ports with a spinlock.
Fixed the calculation of the irql.
Added HalpTranslatePciAddress.

svn path=/trunk/; revision=3847
2002-12-09 19:45:55 +00:00
Hartmut Birr
24941bbcb3 Added HalpGetIsaInterruptVector.
svn path=/trunk/; revision=3846
2002-12-09 19:44:44 +00:00
Robert Dickenson
167268f4b3 Commented out reference to VECTOR2IRQ in order to get MP config building.
svn path=/trunk/; revision=3845
2002-12-09 18:44:05 +00:00
Robert Dickenson
74075d4ed5 Commented out call to PsDispatchThread(THREAD_STATE_RUNNABLE) in order to get MP config building.
svn path=/trunk/; revision=3844
2002-12-09 18:42:41 +00:00
Robert Dickenson
58d9c81bdc Added a dummy copy of KiInterruptDispatch2 and removed reference to KeGetCurrentThread()->LastEip in order to get MP config building.
svn path=/trunk/; revision=3843
2002-12-09 18:40:45 +00:00
Robert Dickenson
5118ff8a48 Still... having problems with auto-depends on when running building Windows.
DEPENDS_PATH := $(PATH_TO_TOP)/tools/
Seems to need a trailing / on the other option as well???
I can't explain what's going on here, so I'm trying to fix it by trial and error.
Once again, please let me know if it breaks things for others.

svn path=/trunk/; revision=3842
2002-12-09 17:26:00 +00:00
Robert Dickenson
8d49e96dcf Still having problems with auto-depends on when running building Windows.
Cannot see how or when this problem was introduced, just suddenly stopped working the other day...
Appending the final \ seems to get it fixed again.
DEPENDS_PATH := $(subst /,\,$(PATH_TO_TOP))\tools\
Please let me know if it breaks things for others.

svn path=/trunk/; revision=3841
2002-12-09 17:03:09 +00:00
Robert Dickenson
719e18bbee Added some more libraries which now build to the WINE_DLLS section.
svn path=/trunk/; revision=3840
2002-12-09 15:38:18 +00:00
Robert Dickenson
1a95510552 Rollback removal of auto-dependancy checking.
Another version of make had made it's way in front of my path )^;

svn path=/trunk/; revision=3839
2002-12-09 15:18:11 +00:00
Eric Kohl
029fe88aa3 Fixed a bug which created new registry hives in the wrong directory.
svn path=/trunk/; revision=3838
2002-12-08 18:54:45 +00:00
Robert Dickenson
f2a2cbc0d9 minor format modifications to reduce diffs with latest wine sources to simplify updating.
mainly just updated with LGPL license in headers.

svn path=/trunk/; revision=3837
2002-12-08 16:26:52 +00:00
Robert Dickenson
5e2ff077e8 minor format modifications to reduce diffs with duplicates elsewhere in tree.
comment out depends rule in makefile since it doesn't work when building on windows.

svn path=/trunk/; revision=3836
2002-12-08 16:23:33 +00:00
Robert Dickenson
dd12442072 typos, reduce mingw header diffs, extra includes.
svn path=/trunk/; revision=3835
2002-12-08 16:18:30 +00:00
Robert Dickenson
a49981697a Fix for wide character streams.
svn path=/trunk/; revision=3834
2002-12-08 16:14:28 +00:00
Robert Dickenson
91616f730f Adding support for resource based error message table
svn path=/trunk/; revision=3833
2002-12-08 16:07:18 +00:00
Robert Dickenson
61bb7ba7ad Split out the resource functions for finer control of debug output.
svn path=/trunk/; revision=3832
2002-12-08 15:57:40 +00:00
Eric Kohl
688e9b05d9 Ouch!
svn path=/trunk/; revision=3831
2002-12-07 15:43:29 +00:00
Eric Kohl
822d5e3d78 Call CmInit2() only if the system hive was imported.
svn path=/trunk/; revision=3830
2002-12-07 14:47:10 +00:00
Eric Kohl
1a57936f09 Added progress bar to file copy page.
svn path=/trunk/; revision=3828
2002-12-06 21:39:04 +00:00
Eric Kohl
72136233fb Fixed warnings.
svn path=/trunk/; revision=3827
2002-12-06 17:33:16 +00:00
Eric Kohl
5c0db541d3 Fixed a typo.
svn path=/trunk/; revision=3826
2002-12-06 17:31:33 +00:00
Robert Dickenson
accbf7c896 In search of meaningful error messages and some housekeeping on the stubs file.
svn path=/trunk/; revision=3825
2002-12-06 13:14:14 +00:00
Brian Palmer
0853d8cf3d Changes in v1.7.12 (12/05/2002) (brianp)
- Minor tweak to UI code to allow description
  text to be displayed along with the progress
  bar.

svn path=/trunk/; revision=3824
2002-12-06 04:43:02 +00:00
Brian Palmer
f54c214e8e Changes in v1.7.11 (12/05/2002) (brianp)
- Added memory map count to GetBiosMemoryMap() so that
  it doesn't just assume the size of the array.
- Fix so that we use the continuation value that
  the BIOS returns.

svn path=/trunk/; revision=3823
2002-12-06 04:00:41 +00:00
Robert Dickenson
f1592aa69f Improved unicode fileio support.
svn path=/trunk/; revision=3822
2002-12-05 15:31:26 +00:00
Eric Kohl
2aacb78c3e Removed some error-prone bit-fiddling.
svn path=/trunk/; revision=3821
2002-12-04 20:39:03 +00:00
Eric Kohl
e51ba71a9b Fixed a typo.
svn path=/trunk/; revision=3820
2002-12-04 20:36:22 +00:00
Eric Kohl
b4d4bdf465 Added bus- and target-specific data to the device map.
svn path=/trunk/; revision=3819
2002-12-03 23:57:05 +00:00
Hartmut Birr
e3a1b88d60 Added support for the lower case flags of 8.3 names.
Fixed a bug that will corrupt directories if ros creates 8.3 names without a long name.

svn path=/trunk/; revision=3818
2002-12-03 01:14:49 +00:00
Eric Kohl
c00bebf1f2 Implemented SetThreadAffinityMask().
Fixed some *nix line breaks.

svn path=/trunk/; revision=3817
2002-12-02 21:28:40 +00:00
Eric Kohl
a378416e55 Implemented deferred hive synchronization. It doesn't sync yet.
svn path=/trunk/; revision=3816
2002-12-02 18:52:44 +00:00
Robert Dickenson
0416e5796f updated wine target section.
svn path=/trunk/; revision=3815
2002-12-02 18:40:33 +00:00
Eric Kohl
13c33450ed Fixed NtQueryValueKey() wrt packed value names.
svn path=/trunk/; revision=3814
2002-12-01 19:18:16 +00:00
Eric Kohl
21ad71423a Fixed a display bug in test 1.
svn path=/trunk/; revision=3813
2002-12-01 19:16:26 +00:00
Robert Dickenson
64c768602f Temporarily remove last few wine build targets that need some more work.
svn path=/trunk/; revision=3812
2002-11-30 19:12:51 +00:00
Eric Kohl
d608e437c9 Implemented packing of value names
svn path=/trunk/; revision=3811
2002-11-30 14:46:27 +00:00
Robert Dickenson
4bad5b8b2f Split out a few variable differences between libraries.
svn path=/trunk/; revision=3810
2002-11-29 16:00:21 +00:00
Robert Dickenson
1b135b8732 Further reduced differences and include all identical msvcrt targets in crtdll makefile.
svn path=/trunk/; revision=3809
2002-11-29 15:59:05 +00:00
Robert Dickenson
b5cd7d30a0 Updating include path in files previously missed.
svn path=/trunk/; revision=3808
2002-11-29 12:27:50 +00:00
Robert Dickenson
2ebbba0d7d Updating files somehow confused by CVS.
Old tree cvs reports up-to-date.
New tree - different ???
more to come...

svn path=/trunk/; revision=3807
2002-11-29 11:26:58 +00:00
Eric Kohl
5f25774f6e Added driver name to the partition list
svn path=/trunk/; revision=3806
2002-11-28 19:20:38 +00:00
Eric Kohl
4603c2ef5a Build the hardware device map for each SCSI port.
Bus or device specific information is not implemented yet.

svn path=/trunk/; revision=3805
2002-11-28 16:07:04 +00:00
Robert Dickenson
630e12009d Thank-you to Eugene for pointing out that I missed a required change
I:\Dev\reactos\reactos\apps\utils\net\roshttpd\include\socket.h
           8 : #include <crtdll/stdio.h>
Fixed to now include <msvcrt/....> instead which is now common to both the ntdll and msvcrt dll's

svn path=/trunk/; revision=3804
2002-11-28 12:21:02 +00:00
Hartmut Birr
ac08a1048a Added a missing increment operator.
svn path=/trunk/; revision=3803
2002-11-27 21:00:49 +00:00
Hartmut Birr
99b937362d Fixed the return value in ferror.
svn path=/trunk/; revision=3802
2002-11-27 20:56:28 +00:00
Hartmut Birr
d4386d7b53 Free the user stack in PsReapThreads.
svn path=/trunk/; revision=3801
2002-11-27 20:54:37 +00:00
Hartmut Birr
56964fad03 Do only for process handles detach/attach the process. Some handles
needs the correct process on close/delete. Only for process handles
is it possible that ObCloseAllHandles is called recursively.

svn path=/trunk/; revision=3800
2002-11-27 20:52:29 +00:00
Hartmut Birr
baf7670d00 Change the type for the page fault handler from trap to interrupt gate.
Enable interrupts on page faults only if the faulting process has interrupts enabled.

svn path=/trunk/; revision=3799
2002-11-27 20:49:54 +00:00
Hartmut Birr
d6ec424dbf Fixed the definition of NTKERNELAPI.
svn path=/trunk/; revision=3798
2002-11-27 20:46:44 +00:00
Hartmut Birr
6dc09f22d2 Initialize the registers for the next call to Int386 in GetBiosMemoryMap.
svn path=/trunk/; revision=3797
2002-11-27 20:31:17 +00:00
Hartmut Birr
dd6e3b8b31 Intialize the size for the bios memory map.
svn path=/trunk/; revision=3796
2002-11-27 20:29:43 +00:00
Eric Kohl
5f973ce0cf Use a 'secret' registry value to tell ntoskrnl where to create the registry hives.
svn path=/trunk/; revision=3795
2002-11-26 15:33:06 +00:00
Eric Kohl
a76689e99c Use ERESOURCE to lock registry hives.
Keep open hives in a global list.

svn path=/trunk/; revision=3794
2002-11-26 15:31:41 +00:00
guido
56b706f3e0 fixed compiler error: removed reference to crtdll
svn path=/trunk/; revision=3793
2002-11-25 23:53:38 +00:00
guido
8d09bf7839 Changes '\' to '/' to enable x-compiling on linux.
svn path=/trunk/; revision=3792
2002-11-25 23:19:31 +00:00
Robert Dickenson
a38f0cad21 cleaned up some warnings.
svn path=/trunk/; revision=3791
2002-11-25 17:41:40 +00:00
Robert Dickenson
8a0cebc9b6 no longer depend on msvcrt/tchar.h
svn path=/trunk/; revision=3790
2002-11-25 17:38:18 +00:00
Robert Dickenson
6b09fd544c Some cleanup.
svn path=/trunk/; revision=3789
2002-11-25 15:47:52 +00:00
Jason Filby
503d6a8fec Fixes
svn path=/trunk/; revision=3788
2002-11-24 20:25:49 +00:00
Jason Filby
dfc58357af Fixes
svn path=/trunk/; revision=3787
2002-11-24 20:18:35 +00:00
Jason Filby
683e4a3c99 Initial scrollbar code
svn path=/trunk/; revision=3786
2002-11-24 20:15:37 +00:00
Robert Dickenson
e676e56f6d cleaning up the cvs views a bit and added a makefile I must have missed a while ago.
svn path=/trunk/; revision=3785
2002-11-24 19:48:56 +00:00
Robert Dickenson
5110b764c2 update registry test program.
svn path=/trunk/; revision=3784
2002-11-24 19:13:40 +00:00
Robert Dickenson
11e87876dc update test program.
svn path=/trunk/; revision=3783
2002-11-24 19:12:30 +00:00
Brian Palmer
425bbb1543 Changes in v1.7.10 (11/24/2002) (brianp)
- Added assembler versions of memcmp() memcpy() memset()
- Implemented Int386() so that real-mode interrupts can be called from C-code
- Removed unnecessary call in DbgPrint() macro (freeldr.sys is ~16k smaller now)
- 64-bit lba sector addressing for disk calls
- Re-coded biosdisk.S as i386disk.c
- Re-coded mem.S as i386mem.c
- Re-coded rtlcode.S as i386rtl.c
- Cleaned up i386trap.S so that it only saves the registers once.
- Re-coded biosvid.S as i386vid.c
- Video fade in/out
- VESA text modes supported now
- Offscreen buffering to remove flicker
- Standardized format of boot sector so that BootPartition is stored right before 0xaa55
- Prefixed all file system functions with 'Fs'

svn path=/trunk/; revision=3782
2002-11-24 19:10:06 +00:00
Robert Dickenson
787724058b Added binary and unicode file i/o support to msvcrt.
Reduced differences between crtdll and msvcrt sources

svn path=/trunk/; revision=3781
2002-11-24 18:42:26 +00:00
Robert Dickenson
5bdf3d7d22 Added a header I created a while ago when looking into irda support.
svn path=/trunk/; revision=3780
2002-11-24 18:28:38 +00:00
Robert Dickenson
cd5fad8f71 Changes to suit addition of a single macro in the types header.
svn path=/trunk/; revision=3779
2002-11-24 18:26:40 +00:00
Robert Dickenson
e80942cd98 Mainly just added some small #ifdef sections for a little portability.
svn path=/trunk/; revision=3778
2002-11-24 18:24:52 +00:00
Robert Dickenson
db2294a694 Added header to aid porting and include tchar.h here as it's the only unique thing about /include/crtdll
svn path=/trunk/; revision=3777
2002-11-24 18:14:19 +00:00
Robert Dickenson
29f20a14b6 Not sure quite how these changed seeing as they're to go shortly I just want to clear my CVS for now.
svn path=/trunk/; revision=3776
2002-11-24 18:09:57 +00:00
Robert Dickenson
1b66fde766 Result of three way diffing with include/crtdll and the winapi2 headers.
reactos/include/crtdll now unused and to be deprecated.

svn path=/trunk/; revision=3775
2002-11-24 18:06:01 +00:00
Eric Kohl
e6d113445e Added some more files to the boot cd.
Implemented file copy queue.

svn path=/trunk/; revision=3774
2002-11-23 01:55:27 +00:00
Eric Kohl
b8d0354d95 Disabled debug message.
Attempt to read beyond the end of a file must return STATUS_END_OF_FILE.

svn path=/trunk/; revision=3773
2002-11-20 21:55:25 +00:00
Jason Filby
64975d00e2 Added some missing border style definitions
svn path=/trunk/; revision=3772
2002-11-20 20:56:41 +00:00
Robert Dickenson
cc6b5ab403 Altered layout for easier comparison with msvcrt's makefile.
svn path=/trunk/; revision=3771
2002-11-19 17:16:14 +00:00
Robert Dickenson
caadfbc4fa Created new subtree for groups of related test programs.
Created application for ANSI and UNICODE stream I/O testing.

svn path=/trunk/; revision=3770
2002-11-19 13:03:29 +00:00
Robert Dickenson
7c17b26c4e Created skeleton for notepad application.
svn path=/trunk/; revision=3769
2002-11-19 12:56:47 +00:00
Eric Kohl
19a1ecf23f Disabled a debug message.
svn path=/trunk/; revision=3768
2002-11-18 22:40:32 +00:00
Eric Kohl
3788a144f4 Added PCI class and subclass definitions.
svn path=/trunk/; revision=3767
2002-11-18 22:39:02 +00:00
Robert Dickenson
8e08360d7b Fixed up the path spec and filename in the header blocks
svn path=/trunk/; revision=3766
2002-11-18 05:43:33 +00:00
Robert Dickenson
e8a0978c40 Fixed up the path spec and filename in the header blocks
svn path=/trunk/; revision=3765
2002-11-18 03:19:43 +00:00
Robert Dickenson
3cdb8f8517 *nix newlines throughout file fixed.
svn path=/trunk/; revision=3764
2002-11-17 04:10:56 +00:00
Robert Dickenson
bcccc0197d Relative include path fixed to absolute path.
svn path=/trunk/; revision=3763
2002-11-17 04:00:33 +00:00
Eric Kohl
89c5d6dd51 Revoved lots of unix line breaks.
svn path=/trunk/; revision=3762
2002-11-16 00:08:45 +00:00
Casper Hornstrup
28516f1bfb Fix compillation error.
svn path=/trunk/; revision=3761
2002-11-15 23:26:16 +00:00
Casper Hornstrup
5e586c9ecf 2002-11-15 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/ddk/ldrtypes.h: Move ...
	* include/ntos/ldrtypes.h: ... here.
	* include/ddk/ntddk.h: Include ldrtypes.h at new location.

svn path=/trunk/; revision=3760
2002-11-15 22:30:30 +00:00
Eric Kohl
da9ce8cff3 Removed special case of process without process parameter block for initial process (smss.exe).
svn path=/trunk/; revision=3759
2002-11-15 22:06:01 +00:00
Eric Kohl
5a6a428544 Create process parameter block for initial process (smss.exe).
svn path=/trunk/; revision=3758
2002-11-15 22:04:51 +00:00
Casper Hornstrup
7a11ad1c92 Add missing files
svn path=/trunk/; revision=3757
2002-11-15 21:59:54 +00:00
Casper Hornstrup
2c1d2fb84f Add missing files.
svn path=/trunk/; revision=3756
2002-11-15 21:56:37 +00:00
Casper Hornstrup
755fde7e59 2002-11-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/bus/acpi/ospm/osl.c (acpi_os_readable, acpi_os_writable):
	Match prototypes.
	* include/ascii.h (AbortSystemShutdownA): Correct prototype.
	* include/debug.h (assert): Wrap in #ifndef assert.
	* include/funcs.h (AbortSystemShutdown): Remove duplicate prototype.
	* include/ddk/rtltypes.h: Move ...
	* include/ntos/rtltypes.h: ... here.
	* include/ddk/rtl.h: Move ...
	* include/ntos/rtl.h: ... here.
	* include/ddk/zwtypes.h: Move ...
	* include/ntos/zwtypes.h: ... here.
	* include/ddk/zw.h: Move ...
	* include/ntos/zw.h: ... here.
	| include/ddk/cmfuncs.h: Remove file; Move NtCreateKey to ntos/zw.h.
	* include/ntos.h: #include ntos/rtltypes.h, ntos/rtl.h, ntos/zwtypes.h,
	and ntos/zw.h.
	* include/unicode.h: (AbortSystemShutdownW): Correct prototype.
	* include/ddk/ntddk.h: Include headers at new location; Don't include
	removed files.
	* include/defines.h: Wrap definitions in w32api in #ifndef __USE_W32API.
	* include/ntos/zwtypes.h: Ditto.
	* include/napi/lpc.h: Ditto.
	* include/napi/shared_data.h: Ditto.
	* include/napi/teb.h: Ditto.
	* include/napi/types.h: Ditto.
	* include/ntdll/ldr.h: Ditto.
	* include/ntdll/rtl.h: Ditto.
	* include/ntos/console.h: Ditto.
	* include/ntos/disk.h: Ditto.
	* include/ntos/except.h: Ditto.
	* include/ntos/file.h: Ditto.
	* include/ntos/gditypes.h: Ditto.
	* include/ntos/heap.h: Ditto.
	* include/ntos/keyboard.h: Ditto.
	* include/ntos/mm.h: Ditto.
	* include/ntos/ntdef.h: Ditto.
	* include/ntos/ps.h: Ditto.
	* include/ntos/registry.h: Ditto.
	* include/ntos/security.h: Ditto.
	* include/ntos/synch.h: Ditto.
	* include/ntos/time.h: Ditto.
	* include/ntos/types.h: Ditto.
	* include/ntos/port.h: Ditto.
	* lib/advapi32/misc/shutdown.c (AbortSystemShutdownW,
	AbortSystemShutdownA): Correct prototype.
	* lib/advapi32/reg/reg.c: #include ntos.h.
	* lib/advapi32/sec/misc.c: Ditto.
	* lib/advapi32/sec/sid.c: Ditto.
	* lib/advapi32/service/sctrl.c: Ditto.
	* lib/advapi32/token/token.c: Ditto.
	* lib/kernel32/misc/dllmain.c: Ditto.
	* ntoskrnl/ex/napi.c: Ditto.
	* ntoskrnl/rtl/i386/exception.c: Ditto.
	* lib/advapi32/sec/ac.c: Ditto.
	(FindFirstFreeAce, GetAce): Change PACE* to PACE_HEADER*.
	* lib/advapi32/service/scm.c (EnumServicesStatusExA,
	EnumServicesStatusExW, QueryServiceStatusEx): Correct prototype.
	* lib/ntdll/rtl/ppb.c (RtlDestroyProcessParameters): Match prototype.
	* ntoskrnl/dbg/errinfo.c (DbgGetErrorText): Use %08x, not %08lx.
	* ntoskrnl/io/arcname.c (IoCreateSystemRootLink): Use %u, not %lu.
	* ntoskrnl/ke/main.c (ExpInitializeExecutive): Ditto.
	* (_main): Use %d, not %ld.
	* ntoskrnl/include/internal/i386/ke.h: Add #pragma GCC system_header.
	* include/ddk/ntdef.h (NTSYSAPI, NTAPI, NTKERNELAPI): Define to STDCALL;
	Check if already defined.
	* include/base.h (STDCALL, CDECL, CALLBACK, PASCAL): Move to ntos/types.h.

svn path=/trunk/; revision=3755
2002-11-14 18:21:07 +00:00
Casper Hornstrup
d9e3082d1f 2002-11-13 Rick Gaiser <RickG81@Wanadoo.nl>
* drivers/bus/isapnp/isapnp.c (FindNextReadPort): Increment Port before
	checking wether port address is in NE2000 address space range and returning
	port address value.

svn path=/trunk/; revision=3754
2002-11-13 21:57:47 +00:00
Eric Kohl
58cbfb764a * Added ini file suport (Thanks to Royce Mitchell!)
* Improved the partition list.
* Use information from txtsetup.sif to create directories.
* Added basic error handling.

svn path=/trunk/; revision=3753
2002-11-13 18:25:18 +00:00
Robert Dickenson
d4293289b3 Just getting in sync with removal of obsolete #pragma directive.
New work soon to come. Having a bad time with heap corruption
when attempting to import massive reg scripts into the ROS registry.

svn path=/trunk/; revision=3752
2002-11-13 12:08:26 +00:00
Robert Dickenson
e2d799f080 Commit of the rest of Gunnars file locking patch.
svn path=/trunk/; revision=3751
2002-11-13 06:01:12 +00:00
Robert Dickenson
84831891ce added #ifdef around headers to support test build. Modified debug messages.
svn path=/trunk/; revision=3750
2002-11-13 05:18:03 +00:00
Eric Kohl
3a8df0d499 Added setup information file txtsetup.sif.
svn path=/trunk/; revision=3749
2002-11-12 19:17:21 +00:00
Eric Kohl
eb1c9c77ee Reworked initial process loader.
Crash the system if the initial process fails within 5 seconds.

svn path=/trunk/; revision=3748
2002-11-12 19:12:34 +00:00
Steven Edwards
2f04a917bb Relicensed as LGPL and Released back to the WINE project as per
Rob's Approvial.

svn path=/trunk/; revision=3747
2002-11-12 15:25:15 +00:00
Marty Dill
49c384301b Implemented ReadConsoleOutputA() and WriteConsoleInputA().
svn path=/trunk/; revision=3746
2002-11-12 00:48:26 +00:00
Marty Dill
13aca9ca62 Added missing exports for a few console functions.
svn path=/trunk/; revision=3745
2002-11-12 00:46:02 +00:00
Marty Dill
4f2f3061db CreateDirectoryExW: Fail gracefully if directory name is null/empty.
svn path=/trunk/; revision=3744
2002-11-12 00:45:16 +00:00
Hartmut Birr
62765739e2 * Changed the access to the bitmap from BYTE to ULONG for speeding up.
svn path=/trunk/; revision=3743
2002-11-11 22:53:26 +00:00
Hartmut Birr
7c80de2804 * Do not exit if GetConsoleScreenBufferInfo fails. GetConsoleScreenBufferInfo fails
if the given handle is redirected to a file or pipe. This stops windres from working.

svn path=/trunk/; revision=3742
2002-11-11 21:53:25 +00:00
Hartmut Birr
153843d464 * Implemented multiple sector commands for reading and writing (only for disks).
* Implemented 32 bit access for I/O (only for disks).
* Both options can be desabled by undefining ENABLE_MULTIMODE and ENABLE_32BIT.

svn path=/trunk/; revision=3741
2002-11-11 21:51:33 +00:00
Hartmut Birr
62eac3dcff * Used look aside lists to allocate memory for VFATFCB, VFATCCB and VFAT_IRP_CONTEXT.
* Removed IsLastEntry, IsVolEntry, IsDeletedEntry, vfat_wstrlen, vfatGrabFCB,
  vfat_initstr, vfat_wcsncat, vfat_wcsncpy, vfat_movestr, wstrcmpi and replaced
  this functions with existing equivalents or functions from ntoskrnl.
* Merged GetEntryName into vfatGetNextDirEntry for reducing some overhead.
* Implemented a file name cache to speed up the searching for existing fcb.
* Removed some calls to FsdDosDateTimeToFileTime.
* Moved the call to CcZeroData behind the initializing of the cache (in VfatWrite).
* Using existing fcbs in FindFile if there is no '*?' within the search name.

svn path=/trunk/; revision=3740
2002-11-11 21:49:18 +00:00
Casper Hornstrup
4ba36f62e4 2002-11-10 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/bus/acpi/include/acpi.h: Include platform/types.h.
	* drivers/bus/acpi/include/actypes.h: (UINT8, BOOLEAN, UCHAR, UINT16,
	INT32, UINT32, UINT64): Disable, use the OS defined types instead.
	* drivers/bus/acpi/include/platform/types.h: Remove all types,
	include ntos.h instead.
	* drivers/bus/acpi/ospm/include/acpisys.h: Don't include
	platform/types.h.

svn path=/trunk/; revision=3739
2002-11-10 19:24:01 +00:00
Casper Hornstrup
d8acda7c3e 2002-11-10 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/defines.h: Fix warnings when bulding with gcc 3.3.
	* include/ddk/status.h: Ditto.
	* include/freetype/internal/ftdebug.h: Ditto.
	* include/net/ndis.h: Ditto.
	* lib/msafd/misc/helpers.c: Ditto.
	* lib/user32/windows/defwnd.c: Ditto.
	* lib/user32/windows/window.c: Ditto.
	* ntoskrnl/cm/ntfunc.c: Ditto.
	* ntoskrnl/cm/regfile.c: Ditto.
	* ntoskrnl/cm/regobj.c: Ditto.
	* ntoskrnl/dbg/errinfo.c: Ditto.
	* ntoskrnl/ex/hashtab.c: Ditto.
	* ntoskrnl/include/internal/mm.h: Ditto.
	* ntoskrnl/io/irp.c: Ditto.
	* ntoskrnl/kd/gdbstub.c: Ditto.
	* ntoskrnl/ke/queue.c: Ditto.
	* ntoskrnl/ke/sem.c: Ditto.
	* ntoskrnl/ldr/resource.c: Ditto.
	* ntoskrnl/mm/balance.c: Ditto.
	* ntoskrnl/mm/freelist.c: Ditto.
	* ntoskrnl/mm/mdl.c: Ditto.
	* ntoskrnl/mm/npool.c: Ditto.
	* ntoskrnl/mm/section.c: Ditto.
	* ntoskrnl/rtl/error.c: Ditto.
	* ntoskrnl/rtl/mem.c: Ditto.
	* ntoskrnl/rtl/string.c: Ditto.
	* ntoskrnl/rtl/time.c: Ditto.
	* ntoskrnl/rtl/unicode.c: Ditto.
	* ntoskrnl/rtl/wstring.c: Ditto.
	* ntoskrnl/rtl/i386/exception.c: Ditto.
	* subsys/win32k/freetype/src/base/ftinit.c: Ditto.

svn path=/trunk/; revision=3738
2002-11-10 18:17:43 +00:00
Robert Dickenson
5db0748cc3 committing more developments.
svn path=/trunk/; revision=3737
2002-11-10 14:29:27 +00:00
Robert Dickenson
5acde91b05 changed "$(RM) *.various" to "- $(RM) *.various" in order to keep the clean rule going.
svn path=/trunk/; revision=3736
2002-11-10 14:27:45 +00:00
Robert Dickenson
9a3d4ea3c6 added a couple of entries within the [\Registry\Machine\SOFTWARE\Classes] section for testing.
svn path=/trunk/; revision=3735
2002-11-10 14:12:41 +00:00
Robert Dickenson
adb86bd362 added #ifdef around headers to support private test build and various changes to debug diagnostics.
svn path=/trunk/; revision=3734
2002-11-10 14:10:09 +00:00
Robert Dickenson
d7753423c7 added #ifdef around headers to support private test build and some temporary zeroing of arrays during debugging.
svn path=/trunk/; revision=3733
2002-11-10 14:02:44 +00:00
Robert Dickenson
2e1e2b7968 added #ifdef around headers to support private test build.
svn path=/trunk/; revision=3732
2002-11-10 14:00:41 +00:00
Robert Dickenson
68c82b15c9 added #ifdef around headers and some debug message copying/terminating to support private test build.
svn path=/trunk/; revision=3731
2002-11-10 13:57:06 +00:00
Robert Dickenson
4ca5b5aa15 changed the default trace level to MID_TRACE for when DBG is defined.
svn path=/trunk/; revision=3730
2002-11-10 13:53:34 +00:00
Robert Dickenson
e99ad86ebe slight mod to the end of line for received ip packets to display a debug message.
svn path=/trunk/; revision=3729
2002-11-10 13:52:13 +00:00
Robert Dickenson
ba7265a614 some un-important modifications to my serial coms test program.
not of interest for now until I get something commitable for the simple serial driver.

svn path=/trunk/; revision=3728
2002-11-10 13:48:51 +00:00
Robert Dickenson
73eb67f51b just some code to to some specific key reading tests.
svn path=/trunk/; revision=3727
2002-11-10 13:47:03 +00:00
Robert Dickenson
24ef4d36dc added a whole bunch of hacks #ifdef'd into the header section to support private test build.
totally turned the contents upside down so functions are implicitly declared before use without header prototypes.

svn path=/trunk/; revision=3726
2002-11-10 13:44:48 +00:00
Robert Dickenson
e0461e2d52 display some extra debug messages on boot to see whats going on.
svn path=/trunk/; revision=3725
2002-11-10 13:40:08 +00:00
Robert Dickenson
c2cdc52d2e committing a parameter swap from Gunnars heap fix which I seem to have missed.
svn path=/trunk/; revision=3724
2002-11-10 13:38:14 +00:00
Robert Dickenson
77f5d4efe8 added #ifdef around headers to support private test build.
svn path=/trunk/; revision=3723
2002-11-10 13:36:59 +00:00
Robert Dickenson
2c9f063386 added #ifdef around headers to support private test build and modified debug messages.
svn path=/trunk/; revision=3722
2002-11-10 13:36:15 +00:00
Robert Dickenson
c37549f7cd added trivial comment reference consistancy with DDK prototype.
svn path=/trunk/; revision=3721
2002-11-10 13:34:42 +00:00
Robert Dickenson
ccb6663108 useless change to only some parameter names to be more consistent with DDK prototype.
svn path=/trunk/; revision=3720
2002-11-10 13:33:26 +00:00
Robert Dickenson
af405dcb05 display debug message on boot.
svn path=/trunk/; revision=3719
2002-11-10 13:30:32 +00:00
Hartmut Birr
3e9e0d0737 * Unlock the address space if MmOpenMemoryAreaByAddress fails (MmWritePhysicalAddress).
svn path=/trunk/; revision=3718
2002-11-09 20:27:03 +00:00
Robert Dickenson
0d78d25da5 Manually applying Gunnars patch because it's easier this way - and a good chance to review mods.
svn path=/trunk/; revision=3717
2002-11-07 16:36:50 +00:00
Robert Dickenson
2e3612cc58 Manually applying Gunnars patch because it's easier this way - and a good chance to review mods.
svn path=/trunk/; revision=3716
2002-11-07 02:52:37 +00:00
Robert Dickenson
f2064b3f8b Manually applying Gunnars patch became it's easier this way - and a good chance to review mods.
svn path=/trunk/; revision=3715
2002-11-07 02:45:29 +00:00
David Welch
a079c4b347 Reverted previous changes - Mm{Enable,Disable}VirtualMapping are faster
and won't allocate or free page tables. A page fault handler should
never see a disabled page since enabling and disabling is guarded by
a pageop.

svn path=/trunk/; revision=3714
2002-11-05 21:13:15 +00:00
Hartmut Birr
a794750da6 * Fixed the length for the page protection.
svn path=/trunk/; revision=3713
2002-11-05 21:01:38 +00:00
Hartmut Birr
8e4b80043b * Initialize the return value in DefWndNCCalcSize.
svn path=/trunk/; revision=3712
2002-11-05 20:59:48 +00:00
Hartmut Birr
1d127839b8 * Fixed the call to LoadImageW/RemovePropW if there is given
an identifier in LoadImageA/RemovePropA.

svn path=/trunk/; revision=3711
2002-11-05 20:58:20 +00:00
Hartmut Birr
e8899a2a5b * Fixed the searching for executable files in the spawnXpX/execXpX-functions.
svn path=/trunk/; revision=3710
2002-11-05 20:55:59 +00:00
Hartmut Birr
cb7fd6d214 * Fixed the searching for the file extension in CreateProcessW.
svn path=/trunk/; revision=3709
2002-11-05 20:54:10 +00:00
Hartmut Birr
811a27af00 * Fixed a wrong pointer initialization in RtlClearBits.
svn path=/trunk/; revision=3708
2002-11-05 20:52:38 +00:00
Hartmut Birr
3ec57dfda5 * Check for symbolic-links in ObFindObject.
svn path=/trunk/; revision=3707
2002-11-05 20:51:23 +00:00
Hartmut Birr
95b7092276 * Use the cache for images where the section offset is not page
alligned in MiReadPage.
* Removed a wrong call to MmReferencePage in MmPageOutSectionView.
* Fixed the length in MmAlterViewAttributes.
* Wait for releasing of the pageop in MmFreeSectionPage.
* Fixed some wrong return values in MmMapViewOfSection.

svn path=/trunk/; revision=3706
2002-11-05 20:50:02 +00:00
Hartmut Birr
9c17318aff * Used tagged memory for rmap entries.
svn path=/trunk/; revision=3705
2002-11-05 20:48:08 +00:00
Hartmut Birr
e4be6a3090 * Fixed the used and free block calculation.
* Allocate all blocks dword alligned and all big blocks (>=4K) page alligned.

svn path=/trunk/; revision=3704
2002-11-05 20:47:05 +00:00
Hartmut Birr
ffadffc82b * Fixed the allocation length for the mdl bitmap.
* Changed the bit allocation functions to RtlXxxBitMapYyy.
* Fixed the calculation of the starting point for free bitmap entries.

svn path=/trunk/; revision=3703
2002-11-05 20:45:09 +00:00
Hartmut Birr
ef586c33c1 * Fixed the calculation of the gap in MmFindGap.
* Serach for page alligned blocks in MmCreateMemorArea.

svn path=/trunk/; revision=3702
2002-11-05 20:43:35 +00:00
Hartmut Birr
4fcb4176f8 * Delete the virtual mapping first before the the mapped range
is freed in MmFreeNonPagedPoolRegion.
* Adujust AllocMapHint only if the reserved block starts at AllocMapHint.
* Changed the bit allocation functions to RtlXxxBitMapYyy.

svn path=/trunk/; revision=3701
2002-11-05 20:41:17 +00:00
Hartmut Birr
3d3d96c5d6 * Call KeBugcheck in MmDeletePageTable/MmFreePageTable if the
address points to the kernel address space.
* Check if an other process has inserted a kernel page directory
  entry while waiting for a page (MmGetPageEntry/MmGetPageEntry2).
* Check the kernel page directory only for an entry if the
  address points to the kernel address space (MmGetPageEntry1/2,
  MmDeleteVirtualMapping and MmDeletePageFileMapping).
* Disabled MmEnableVirtualMapping/MmDisableVirtualMapping.
  There is no difference between an entry with disabled mapping and
  a swap entry.

svn path=/trunk/; revision=3700
2002-11-05 20:39:03 +00:00
Hartmut Birr
a4b5d8a978 * Locking the address space before accessing it.
* Fixed some length calculations.

svn path=/trunk/; revision=3699
2002-11-05 20:35:33 +00:00
Hartmut Birr
4096437ab3 * Disabled all calls to MmEnableVirtualMapping/MmDisableVirtualMapping,
there is no difference for the page entry between a
  disabled mapping and a swap entry.

svn path=/trunk/; revision=3698
2002-11-05 20:31:34 +00:00
Hartmut Birr
fb46b3c16a * Fixed the buffer allocation in NtAccecptConnectedPort.
svn path=/trunk/; revision=3697
2002-11-05 20:27:56 +00:00
Hartmut Birr
39537ca751 * Setting the DeviceObject and Vbp for given FileObject to zero
if the open operation fails. The close and cleanup call must
  not route throught the FSD if the open call failed.
* Wait for the completion from FSD after the close/cleanup call.

svn path=/trunk/; revision=3696
2002-11-05 20:24:33 +00:00
Casper Hornstrup
1d57b8f66d 2002-11-03 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/tests/lpc/lpcclt.c: Change LPC_MESSAGE_HEADER to LPC_MESSAGE.
	* include/csrss/csrss.h: Ditto.
	* include/lsass/lsass.h: Ditto.
	* include/napi/dbg.h: Ditto.
	* include/napi/lpc.h: Ditto.
	* lib/kernel32/misc/console.c: Ditto.
	* lib/ntdll/csr/lpc.c: Ditto.
	* lib/ntdll/dbg/debug.c: Ditto.
	* lib/secur32/lsa.c: Ditto.
	* ntoskrnl/dbg/user.c: Ditto.
	* ntoskrnl/include/internal/port.h: Ditto.
	* ntoskrnl/lpc/connect.c: Ditto.
	* ntoskrnl/lpc/reply.c: Ditto.
	* ntoskrnl/ps/process.c: Ditto.
	* subsys/csrss/api/conio.c: Ditto.
	* subsys/csrss/api/process.c: Ditto.
	* subsys/csrss/api/user.c: Ditto.

svn path=/trunk/; revision=3692
2002-11-03 20:01:07 +00:00
Eric Kohl
614f689b29 Display drive letters in partition list.
svn path=/trunk/; revision=3691
2002-11-02 23:17:06 +00:00
Robert Dickenson
d6d5e1af3d Update for VALENTA and VALENTW type changes.
Change HANDLE to HKEY throughout.
Bugfix and memory leak fixed.

svn path=/trunk/; revision=3690
2002-11-02 13:55:06 +00:00
Robert Dickenson
781e188154 Created typedefs for VALENTA and VALENTW, deprecated common VALENT type.
svn path=/trunk/; revision=3689
2002-11-02 13:50:45 +00:00
David Welch
cb8ac201ad Don't crash when a mouse message doesn't fall inside a window.
svn path=/trunk/; revision=3687
2002-11-01 11:29:58 +00:00
David Welch
6072415050 Fixed race condition between psaux ISR and DPC.
svn path=/trunk/; revision=3686
2002-10-31 23:48:06 +00:00
Jason Filby
58aee3a2d8 Version 0.0.21
svn path=/trunk/; revision=3684
2002-10-31 17:50:55 +00:00
Hartmut Birr
b8114825ec Merged all exec* and spawn* functions in one source file.
svn path=/trunk/; revision=3683
2002-10-31 07:29:07 +00:00
Hartmut Birr
9b875ab82c Merged all exec* and spawn* functions in one source file.
Reduced some overhead.

svn path=/trunk/; revision=3682
2002-10-31 07:26:08 +00:00
Eric Kohl
ad6fb31ad3 Fixed warnings.
svn path=/trunk/; revision=3681
2002-10-31 01:50:00 +00:00
Eric Kohl
5294570a8d Fixed minor linker warning for native apps.
Only link against default libraries if TARGET_SDKLIBS is not set.

svn path=/trunk/; revision=3680
2002-10-31 00:48:27 +00:00
David Welch
ae67380311 Implemented mouse messages.
svn path=/trunk/; revision=3679
2002-10-31 00:03:31 +00:00
David Welch
5672a8cbc6 Removed surplus debug messages.
svn path=/trunk/; revision=3678
2002-10-31 00:02:01 +00:00
Brian Palmer
39204fdedc Fix for MS's idiocy on a Win98 boot disk I have.
Apparently they use ESP without initializing anything more than SP.

svn path=/trunk/; revision=3677
2002-10-30 23:05:17 +00:00
Eric Kohl
8cfdeb8c6b Fixed wrong r/o protection of excessive pages. Spotted by Jan Kratochvil.
svn path=/trunk/; revision=3676
2002-10-30 19:53:20 +00:00
Eric Kohl
92bb09bd8d Various improvements and hardcoded directory creation.
svn path=/trunk/; revision=3675
2002-10-29 18:40:02 +00:00
Rex Jolliff
385fdfdfeb revert of mass delete of the posix subsystem. perhaps there is hope for it yet.
svn path=/trunk/; revision=3674
2002-10-29 04:45:58 +00:00
Marty Dill
c29a543da5 Added stub for IsProcessorFeaturePresent() to stop LdrGetProcedureAddress from complaining.
svn path=/trunk/; revision=3673
2002-10-29 04:05:26 +00:00
Marty Dill
da8792228d Implemented PeekConsoleInputA().
svn path=/trunk/; revision=3672
2002-10-29 03:49:32 +00:00
Robert Dickenson
644b07f2e1 RtlOpenCurrentUser() freed a string a little to early in some circumstances - fixed.
svn path=/trunk/; revision=3671
2002-10-28 15:50:25 +00:00
Robert Dickenson
a650557ee6 Fixed up some typos.
svn path=/trunk/; revision=3670
2002-10-28 15:45:56 +00:00
Robert Dickenson
f0cbb2db03 Found the problem, local copy of win32k.c required here but not in repository?
svn path=/trunk/; revision=3669
2002-10-28 15:27:01 +00:00
Robert Dickenson
e6e5a8a75e Reverted addition of target win32k.a in the SDK import libs.
svn path=/trunk/; revision=3668
2002-10-28 15:20:37 +00:00
Robert Dickenson
859479e295 Revert one of the makefile changes.
Linking with TARGET_SDKLIBS = win32k.a proved to be a very bad idea!
Something is wrong with building csrss, what happened to subsys/csrss/win32k.c ???

svn path=/trunk/; revision=3667
2002-10-28 15:19:09 +00:00
Robert Dickenson
01637f8e7f Check for GMEM_ZEROINIT flag and pass HEAP_ZERO_MEMORY flag to RtlAllocateHeap if required.
svn path=/trunk/; revision=3666
2002-10-28 15:08:32 +00:00
Robert Dickenson
58d86a321d Added rule to build win32k.a for linking by csrss.
This is already in dk/nkm however there doesn't seem to be a make macro to reference this?

svn path=/trunk/; revision=3665
2002-10-28 15:04:58 +00:00
Robert Dickenson
fbbe455d39 Added some exports required by csrss to get things building again.
svn path=/trunk/; revision=3664
2002-10-28 15:03:18 +00:00
Robert Dickenson
4c028e84ab Updated with fix for missing win32k.lib imports
svn path=/trunk/; revision=3663
2002-10-28 15:02:18 +00:00
Robert Dickenson
572227dc48 Starting something for VDM support.
svn path=/trunk/; revision=3662
2002-10-28 13:59:59 +00:00
Robert Dickenson
821199a87a Removed files that don't belong in the repository.
svn path=/trunk/; revision=3661
2002-10-28 12:10:23 +00:00
David Welch
31c69eaf8a dos2unix'd some more files.
svn path=/trunk/; revision=3660
2002-10-26 09:53:16 +00:00
Casper Hornstrup
9bbe34eb81 2002-10-26 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/msvcrt/except/seh.s: Fix end-of-line formatting.
	* lib/ntdll/rtl/i386/exception.c: Ditto.
	* lib/ntdll/rtl/i386/except.s: Ditto.
	* ntoskrnl/rtl/i386/except.s: Ditto.
	* ntoskrnl/rtl/i386/seh.s: Ditto.

svn path=/trunk/; revision=3659
2002-10-26 07:32:08 +00:00
Casper Hornstrup
b824c3ef39 *** empty log message ***
svn path=/trunk/; revision=3658
2002-10-26 00:38:01 +00:00
Casper Hornstrup
a1e055e943 2002-10-26 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/msvcrt/Makefile (OBJECTS_EXCEPT): Add except/seh.o; Remove
	except/exhand3.o.
	* lib/msvcrt/except/exhand2.c (MsvcrtDebug): New function.
	* lib/msvcrt/except/unwind.c (PEXCEPTION_FRAME): Remove.
	(_global_unwind2): Correct prototype.
	* lib/ntdll/makefile (RTL_I386_OBJECTS, ARCH_OBJECTS): New groups.
	(TARGET_OBJECTS): Add ARCH_OBJECTS group.
	* lib/ntdll/rtl/exception.c (KiUserExceptionDispatcher): Set
	NumberParameters in exception record.
	(RtlRaiseStatus): Remove.
	* ntoskrnl/Makefile (OBJECTS_RTL): Remove rtl/seh.o.
	(OBJECTS_RTL_I386): Add rtl/i386/except.o, rtl/i386/exception.o, and
	rtl/i386/seh.o.
	* ntoskrnl/ke/catch.c (RtlpExecuteHandlerForException,
	RtlpDumpExceptionRegistrations, RtlpDispatchException,
	RtlpExecuteHandler, RtlpExceptionHandler, RtlpUnwindHandler,
	RtlpExecuteHandlerForException, RtlpExecuteHandlerForUnwind,
	RtlUnwind): Remove.
	(RtlpDispatchException): Add prototype.
	* ntoskrnl/ke/i386/usertrap.c (ExceptionTypeStrings): Remove.
	* ntoskrnl/ps/create.c (PsCreateTeb): Mark end of exception
	registration list.
	* tools/helper.mk (TARGET_ASFLAGS): Add -g if DBG = 1.
	* lib/msvcrt/except/exhand3.c: Remove.
	* ntoskrnl/rtl/seh.c: Ditto.
	* lib/msvcrt/except/seh.s: New file.
	* lib/ntdll/rtl/i386/except.s: Ditto.
	* lib/ntdll/rtl/i386/exception.c: Ditto.
	* ntoskrnl/rtl/i386/except.s: Ditto.
	* ntoskrnl/rtl/i386/exception.c: Ditto.
	* ntoskrnl/rtl/i386/seh.s: Ditto.

svn path=/trunk/; revision=3657
2002-10-26 00:32:19 +00:00
Casper Hornstrup
5437114eaa 2002-10-26 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/kernel32/process/create.c (_except_handler): New function.
	(BaseProcessStart): Ditto.
	(KlCreateFirstThread): Return INVALID_HANDLE_VALUE on error; Call
	BaseProcessStart() before process entry point.
	* lib/kernel32/thread/thread.c (_except_handler): New function.
	(ThreadStartup): Protect thread using SEH constructs.

svn path=/trunk/; revision=3656
2002-10-25 22:59:55 +00:00
Casper Hornstrup
9e54d1d8d3 2002-10-26 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/ddk/zw.h (NtProcessStartup): Use standard calling convention.
	* subsys/csrss/csrss.c (NtProcessStartup): Ditto.
	* subsys/smss/smss.c (NtProcessStartup): Ditto.
	* subsys/system/autochk/autochk.c (NtProcessStartup): Ditto.
	* subsys/system/usetup/usetup.c (NtProcessStartup): Ditto.

svn path=/trunk/; revision=3655
2002-10-25 22:08:21 +00:00
Casper Hornstrup
c28439db70 2002-10-25 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/tests/tokentest/tokentest.c (ROS_ACE_HEADER): Move field
	AccessMask ...
	(ROS_ACE): ... here.
	(DisplayDacl): Make pAce an ROS_ACE*; Use new path for AceType; Use
	sizeof(ACE) instead of sizeof(ACE_HEADER).
	* include/ntos/security.h (ACE_HEADER): Move field AccessMask ...
	(ACE): ... here.
	* lib/ntdll/rtl/acl.c: Use new path for AccessMask.
	* ntoskrnl/se/semgr.c: Ditto.
	* ntoskrnl/se/acl.c (SepInitDACLs): Use new path for AccessMask; Use
	sizeof(ACE) instead of sizeof(ACE_HEADER).
	* ntoskrnl/se/token.c (SepCreateSystemProcessToken): Use sizeof(ACE)
	instead of sizeof(ACE_HEADER).

svn path=/trunk/; revision=3654
2002-10-25 21:48:00 +00:00
KJK::Hyperion
6efd5e3b01 POSIX+ says goodbye and leaves. It used to be fun, now it's just painful
svn path=/trunk/; revision=3653
2002-10-24 23:29:19 +00:00
Steven Edwards
a42476b9fb added tests for StretchBlt, PatBlt and BitBlt by Damon Chandler
svn path=/trunk/; revision=3652
2002-10-24 07:46:43 +00:00
Eric Kohl
95bb94d117 Initialize registry hives only once.
svn path=/trunk/; revision=3651
2002-10-23 17:21:07 +00:00
Steven Edwards
e8f680ecbb Add some includes to fix part of building. (Adopt me)
svn path=/trunk/; revision=3650
2002-10-23 17:07:06 +00:00
Hartmut Birr
7e51468aab KeSetEvent must be called with Wait set to FALSE within a DPC.
svn path=/trunk/; revision=3649
2002-10-21 17:05:32 +00:00
Marty Dill
66e64009cd Revert last changes.
svn path=/trunk/; revision=3648
2002-10-21 00:53:33 +00:00
Marty Dill
552baccb19 Implemented SubtractRect(). Misc fixes.
svn path=/trunk/; revision=3647
2002-10-20 23:57:03 +00:00
Marty Dill
f56af542aa Implemented FreeEnvironmentStringsW().
svn path=/trunk/; revision=3646
2002-10-20 23:56:05 +00:00
Eric Kohl
bb4e509794 Implemented [Get/Set]ProcessShutdownParameters().
svn path=/trunk/; revision=3645
2002-10-20 16:40:12 +00:00
Eric Kohl
31789101ee Implemented RegisterServicesProcess() and ExitWindowsEx() partially.
svn path=/trunk/; revision=3644
2002-10-20 14:54:34 +00:00
Robert Dickenson
e1365d9be6 Bugfix for ascii-hex conversions.
svn path=/trunk/; revision=3643
2002-10-20 13:55:09 +00:00
Casper Hornstrup
aa9fe526e2 2002-10-20 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/napi/teb.h (RTL_USER_PROCESS_PARAMETERS): Use field names
	as described in Windows NT/2000 Native API Reference.
	* lib/kernel32/file/file.c: Use new field names.
	* lib/kernel32/misc/console.c: Ditto.
	* lib/kernel32/process/create.c: Ditto.
	* lib/kernel32/process/proc.c: Ditto.
	* lib/ntdll/rtl/path.c: Ditto.
	* lib/ntdll/rtl/ppb.c: Ditto.
	* lib/ntdll/rtl/process.c: Ditto.

svn path=/trunk/; revision=3642
2002-10-20 11:56:00 +00:00
Robert Dickenson
bab254e373 Part of patch contributed by Gunnar Andr� Dalsnes.
svn path=/trunk/; revision=3641
2002-10-20 03:34:00 +00:00
Robert Dickenson
db067a2011 Part of patch contributed by Gunnar Andr� Dalsnes.
svn path=/trunk/; revision=3640
2002-10-20 03:13:51 +00:00
Marty Dill
4add2cf6f0 -Implemented GetNumberOfConsoleInputEvents and ReadConsoleOutputAttribute
-Added definition of CONSOLE_SELECTION_INFO struct
-Added stubs for GetConsoleSelectionInfo, GetConsoleProcessList, and AttachConsole
-Fixed prototypes for AddConsoleAlias[AW]

svn path=/trunk/; revision=3639
2002-10-20 00:34:40 +00:00
Casper Hornstrup
0f48860c6c 2002-10-19 Casper S. Hornstrup <chorns@users.sourceforge.net>
* include/ntos.h: Include relevant files.
	* include/internal/ke.h: Include files relative to
	ntoskrnl/include.
	* include/internal/arch/ke.h: Ditto.

svn path=/trunk/; revision=3638
2002-10-19 14:24:16 +00:00
Emanuele Aliberti
21f3631d43 PAGESIZE to PAGE_SIZE.
svn path=/trunk/; revision=3637
2002-10-18 21:56:39 +00:00
Eric Kohl
a190455587 Implemented selection of install partition and directory.
svn path=/trunk/; revision=3635
2002-10-18 20:04:00 +00:00
Hartmut Birr
50d4270639 Fixed the initializing of the memory map for reactos.
svn path=/trunk/; revision=3634
2002-10-16 16:39:15 +00:00
Robert Dickenson
96dce91abb Added MODE command.
svn path=/trunk/; revision=3633
2002-10-16 01:47:11 +00:00
Robert Dickenson
89e00ddbac Added some support for the MODE command.
svn path=/trunk/; revision=3632
2002-10-16 01:45:49 +00:00
Eugene Ingerman
f576feb997 Work around environment variables size limitation of make program.
svn path=/trunk/; revision=3631
2002-10-09 07:11:24 +00:00
Robert Dickenson
97575f89c9 Added define _USE_NE2000 with increased tracing level instead of #if 0 block to bind stack to NIC.
svn path=/trunk/; revision=3630
2002-10-07 12:44:51 +00:00
Robert Dickenson
273ae68ba9 Added backdoor check for _BLOB_DEFINED to prevent header conflict.
svn path=/trunk/; revision=3629
2002-10-07 12:40:41 +00:00
Robert Dickenson
6cf061fde8 Changed GUID_DEFINED to _GUID_DEFINED for compatibility (prevent conflict) with mingw headers.
svn path=/trunk/; revision=3628
2002-10-07 12:34:33 +00:00
Robert Dickenson
4fbeb6d1f1 Quick fix to prevent bochs users experiencing aborts on load.
New basic WDM serial driver still being worked on.

svn path=/trunk/; revision=3627
2002-10-06 13:16:26 +00:00
Jason Filby
86d248e99b DIB color fix, palette fix
svn path=/trunk/; revision=3626
2002-10-05 17:13:16 +00:00
David Welch
a686f1e6f4 Implemented IO work queue functions using the system work queues.
svn path=/trunk/; revision=3625
2002-10-05 10:53:37 +00:00
Steven Edwards
34f0970179 New line fix for gcc 3.x
svn path=/trunk/; revision=3623
2002-10-03 20:57:13 +00:00
Steven Edwards
c95ee52187 New line fix for gcc 3.x
svn path=/trunk/; revision=3622
2002-10-03 20:49:03 +00:00
Robert Dickenson
f312c1f4c7 Simple test program for Serial Driver testing.
svn path=/trunk/; revision=3621
2002-10-03 19:43:31 +00:00
Robert Dickenson
d58db5470b Added exports to def/edf files and modified some pnp functions.
svn path=/trunk/; revision=3620
2002-10-03 19:39:56 +00:00
Robert Dickenson
f787714862 Added call to possibly tempory IoInitializeWorkerThreads.
svn path=/trunk/; revision=3619
2002-10-03 19:34:50 +00:00
Robert Dickenson
75a4e11044 Added comment about problem discovered when testing packet.sys
svn path=/trunk/; revision=3618
2002-10-03 19:33:07 +00:00
Steven Edwards
f10756010c 1. stub sndPlaySnd[A/W] to keep notepad from bitching
2. gcc 3.x end of line fix

svn path=/trunk/; revision=3617
2002-10-03 19:32:05 +00:00
Robert Dickenson
a5ba8c663e Included new file io/iowork.c in build.
svn path=/trunk/; revision=3616
2002-10-03 19:29:09 +00:00
Robert Dickenson
4251d141a6 Enabled entry for STATUS_OBJECT_NAME_EXISTS
svn path=/trunk/; revision=3615
2002-10-03 19:28:31 +00:00
Robert Dickenson
73905b2cdb Replaced original with version from FreeDDK and tested fine. One less to merge later....
svn path=/trunk/; revision=3614
2002-10-03 19:27:51 +00:00
Robert Dickenson
48d7bdc4d9 Added required defines and typedefs for ntoskrnl/io modules.
svn path=/trunk/; revision=3613
2002-10-03 19:26:47 +00:00
Robert Dickenson
a46d78f359 Added prototype for IoInitializeWorkerThreads, possibly temporary.
svn path=/trunk/; revision=3612
2002-10-03 19:24:24 +00:00
Robert Dickenson
95d4c902d7 Make WinCVS look a little cleaner.
svn path=/trunk/; revision=3611
2002-10-03 19:22:53 +00:00
Robert Dickenson
fc9c5cf9a4 Some debug macro changes.
svn path=/trunk/; revision=3610
2002-10-03 19:22:27 +00:00
Robert Dickenson
c5384d5b78 Added new file. Lots of research and work required to make it work.
svn path=/trunk/; revision=3609
2002-10-03 19:17:26 +00:00
Robert Dickenson
feef5457b3 Fix for DeviceIoControl masking FILE_DEVICE_FILE_SYSTEM incorrectly.
Anybody familiar with this module please review.

svn path=/trunk/; revision=3608
2002-10-03 19:09:04 +00:00
Steven Edwards
445f205034 End of file fix for gcc 3.x
svn path=/trunk/; revision=3607
2002-10-03 18:34:09 +00:00
Steven Edwards
3c1edaacd4 End of line fix for gcc 3.x
svn path=/trunk/; revision=3606
2002-10-03 18:28:22 +00:00
Robert Dickenson
2a2fb0f8d3 Implemented many of the ComXX exports.
svn path=/trunk/; revision=3605
2002-10-03 18:26:53 +00:00
Robert Dickenson
d983ce92fe Added ntddser.h from FreeDDK for Serial Driver development.
svn path=/trunk/; revision=3604
2002-10-03 18:06:23 +00:00
Hartmut Birr
d6d2e95044 Fixed the start value for the time calculation in time2.
svn path=/trunk/; revision=3603
2002-10-03 17:17:35 +00:00
Eric Kohl
df43e0e3f8 Added some commnets.
Changed valid slot numbers from 0-7 to 1-8.
Reset (leave) setup-mode for slot after reading POS data.

svn path=/trunk/; revision=3602
2002-10-03 09:11:00 +00:00
guido
5073fe8a33 removed duplicate type definition
svn path=/trunk/; revision=3601
2002-10-02 21:08:24 +00:00
Eric Kohl
3d254b8d29 Added minimal MicroChannel bus handler.
svn path=/trunk/; revision=3600
2002-10-02 19:32:57 +00:00
Hartmut Birr
bf6ff83636 Added CcFlushCache and CcGetFileObjectFromSectionPtrs.
svn path=/trunk/; revision=3599
2002-10-02 19:25:19 +00:00
Hartmut Birr
9f97892ffa Release the cache segment if the reading of it fails (in CcMapData).
svn path=/trunk/; revision=3598
2002-10-02 19:23:42 +00:00
Hartmut Birr
68d5450c51 Release the BcbLock before there is a call to CcRosFreeCacheSegment (in CcSetFileSizes).
svn path=/trunk/; revision=3597
2002-10-02 19:22:06 +00:00
Hartmut Birr
8aca0dc370 Modified some functions, changed the sequence for acquiring some of
the protection elements (VieLock, BcbLock, SegmentLock..) and protected
the access to some elements with the associated locking element.
Implemented CcFlushCache and CcGetFileObjectFromSectionPtrs.

svn path=/trunk/; revision=3596
2002-10-02 19:20:51 +00:00
Emanuele Aliberti
ef773a3f6b PSX: minor changes to the 'posix' module for enabling full compilation.
Q: should the dk for a subsystem be contained in that subsystem's tree?

svn path=/trunk/; revision=3595
2002-10-01 20:21:45 +00:00
Casper Hornstrup
1e847489e4 2002-10-01 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/dd/floppy/floppy.c: Changed PAGESIZE to PAGE_SIZE.
	* drivers/fs/cdfs/fcb.c: Ditto.
	* drivers/fs/cdfs/fsctl.c: Ditto.
	* drivers/fs/cdfs/rw.c: Ditto.
	* drivers/fs/ext2/dir.c: Ditto.
	* drivers/fs/ext2/inode.c: Ditto.
	* drivers/fs/ext2/rw.c: Ditto.
	* drivers/fs/ext2/super.c: Ditto.
	* drivers/fs/minix/blockdev.c: Ditto.
	* drivers/fs/minix/cache.c: Ditto.
	* drivers/fs/minix/inode.c: Ditto.
	* drivers/fs/minix/rw.c: Ditto.
	* drivers/fs/ntfs/fcb.c: Ditto.
	* drivers/fs/ntfs/ntfs.h: Ditto.
	* drivers/fs/vfat/create.c: Ditto.
	* drivers/fs/vfat/direntry.c: Ditto.
	* drivers/fs/vfat/dirwr.c: Ditto.
	* drivers/fs/vfat/fat.c: Ditto.
	* drivers/fs/vfat/fcb.c: Ditto.
	* drivers/fs/vfat/fsctl.c: Ditto.
	* drivers/fs/vfat/rw.c: Ditto.
	* drivers/storage/class2/class2.c: Ditto.
	* drivers/storage/scsiport/scsiport.c: Ditto.
	* hal/halx86/adapter.c: Ditto.
	* hal/halx86/mp.c: Ditto.
	* include/ddk/mmfuncs.h: Ditto.
	* include/ddk/mmtypes.h: Ditto.
	* include/ddk/i386/pagesize.h: Ditto.
	* include/ntdll/pagesize.h: Ditto.
	* lib/kernel32/process/create.c: Ditto.
	* lib/kernel32/thread/thread.c: Ditto.
	* lib/ntdll/ldr/utils.c: Ditto.
	* lib/ntdll/rtl/env.c: Ditto.
	* lib/ntdll/rtl/heap.c: Ditto.
	* lib/ntdll/rtl/ppb.c: Ditto.
	* lib/ntdll/rtl/process.c: Ditto.
	* lib/ntdll/rtl/thread.c: Ditto.
	* ntoskrnl/cc/copy.c: Ditto.
	* ntoskrnl/cc/view.c: Ditto.
	* ntoskrnl/ex/sysinfo.c: Ditto.
	* ntoskrnl/include/internal/i386/mm.h: Ditto.
	* ntoskrnl/io/mdl.c: Ditto.
	* ntoskrnl/ke/kthread.c: Ditto.
	* ntoskrnl/ke/i386/kernel.c: Ditto.
	* ntoskrnl/ldr/init.c: Ditto.
	* ntoskrnl/ldr/loader.c: Ditto.
	* ntoskrnl/mm/anonmem.c: Ditto.
	* ntoskrnl/mm/cont.c: Ditto.
	* ntoskrnl/mm/freelist.c: Ditto.
	* ntoskrnl/mm/iospace.c: Ditto.
	* ntoskrnl/mm/kmap.c: Ditto.
	* ntoskrnl/mm/marea.c: Ditto.
	* ntoskrnl/mm/mdl.c: Ditto.
	* ntoskrnl/mm/mminit.c: Ditto.
	* ntoskrnl/mm/ncache.c: Ditto.
	* ntoskrnl/mm/npool.c: Ditto.
	* ntoskrnl/mm/pagefile.c: Ditto.
	* ntoskrnl/mm/pageop.c: Ditto.
	* ntoskrnl/mm/section.c: Ditto.
	* ntoskrnl/mm/slab.c: Ditto.
	* ntoskrnl/mm/i386/page.c: Ditto.
	* ntoskrnl/ob/handle.c: Ditto.
	* ntoskrnl/ps/create.c: Ditto.
	* ntoskrnl/ps/process.c: Ditto.
	* ntoskrnl/ps/w32call.c: Ditto.
	* subsys/win32k/include/object.h: Ditto.

svn path=/trunk/; revision=3594
2002-10-01 19:27:25 +00:00
Casper Hornstrup
e10af6e59e 2002-10-01 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/ntdll/string/ctype.c: Undefine __MSVCRT__ to not have mingw
	runtime import _pctype.

svn path=/trunk/; revision=3593
2002-10-01 18:57:23 +00:00
Jurgen van Gael
768a5a2297 FIX:previous was wrong file
svn path=/trunk/; revision=3592
2002-10-01 12:57:23 +00:00
Jurgen van Gael
a98d50ca9b FIX:memory leak - font objects got create for every WM_PAINT message and never deleted
svn path=/trunk/; revision=3591
2002-10-01 12:52:00 +00:00
Eugene Ingerman
c6002facd3 1. Cleanup GDI objects when process is deleted.
2. Bug fixes.

svn path=/trunk/; revision=3590
2002-10-01 06:41:57 +00:00
Brian Palmer
784dc1a198 Changes in v1.7.9 (9/30/2002) (brianp)
- Fix for bug in BiosInt13ReadExtended() (biosdisk.S)
  by Christophe Bothamy & Mike Lerwill

svn path=/trunk/; revision=3589
2002-09-30 23:30:32 +00:00
Casper Hornstrup
7b7130b9ca 2002-09-30 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/user32/misc/desktop.c (string.h): Include.
	* lib/user32/misc/resources.c: Ditto.
	* lib/user32/misc/winhelp.c: Ditto.
	* lib/user32/windows/accel.c: Ditto.
	* lib/user32/windows/bitmap.c: Ditto.
	* subsys/win32k/freetype/ctype.c: Undefine __MSVCRT__ and _pctype to not
	have mingw runtime import _pctype.

svn path=/trunk/; revision=3588
2002-09-30 21:21:38 +00:00
Hartmut Birr
beb75552bb Replaced EXE_SUFFIX with EXE_POSTFIX.
svn path=/trunk/; revision=3587
2002-09-30 21:02:54 +00:00
Hartmut Birr
5bb8c3c68f WideCharToMultiByte accept each code page like MultiByteToWideChar.
Wmc.exe will now produce correct header files (bugcode.h) on ros.

svn path=/trunk/; revision=3586
2002-09-30 21:01:32 +00:00
Hartmut Birr
d9c63079bb Fixed the value for dwHighDateTime in SystemTimeToFileTime.
svn path=/trunk/; revision=3585
2002-09-30 20:59:39 +00:00
Hartmut Birr
dad0922fda Fixed the value for EPOCHWEEKDAY.
Improve converting speed in RtlTimeToTimeFields.

svn path=/trunk/; revision=3584
2002-09-30 20:57:54 +00:00
Hartmut Birr
ffe7ccffd2 Release PiThreadListLock before KeReleaseThread is called in PiDeleteThread.
svn path=/trunk/; revision=3583
2002-09-30 20:56:17 +00:00
Casper Hornstrup
f5eae01623 2002-09-30 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/cc/view.c (alloca): Prototype.
	* ntoskrnl/rtl/ctype.c: Undefine __MSVCRT__ to not have mingw runtime
	import _pctype.

svn path=/trunk/; revision=3582
2002-09-30 20:55:33 +00:00
Hartmut Birr
80d9dd3cc3 Fixed the value for EPOCHWEEKDAY.
svn path=/trunk/; revision=3581
2002-09-30 20:54:59 +00:00
Hartmut Birr
1ad57518fc Changed from OrginalFileObject to the FileObject from current stack location in IoIsOperationSynchronous.
svn path=/trunk/; revision=3580
2002-09-30 20:53:38 +00:00
Hartmut Birr
2b72f3d894 Changed the allocation function from ExAllocatePool to ExAllocatePoolWithTag in ExpDefaultAllocate.
svn path=/trunk/; revision=3579
2002-09-30 20:52:23 +00:00
Hartmut Birr
7a4a78d0b1 Removed VfatIoIsOperationSynchronous and changed back to IoIsOperationSynchronous.
svn path=/trunk/; revision=3578
2002-09-30 20:49:44 +00:00
Hartmut Birr
749530e630 Free the DirectorySeachPattern.
svn path=/trunk/; revision=3577
2002-09-30 20:48:43 +00:00
Hartmut Birr
a2d32d6cf7 Changed the starting cluster for the call to OffsetToCluster in VfatSetAllocationSizeInformation
from current cluster to the first cluster of a file or directory.
Do not set the new size for directories in VfatSetAllocationSizeInformation.

svn path=/trunk/; revision=3576
2002-09-30 20:47:28 +00:00
David Welch
5f0f163996 Use the correct bit order.
svn path=/trunk/; revision=3575
2002-09-30 19:45:19 +00:00
David Welch
5daca85b58 Fix for wrongly disabling interrupts causing system time loss.
svn path=/trunk/; revision=3574
2002-09-30 19:43:33 +00:00
Jason Filby
dc908bafd1 Perform color translation for 4BPP to 4BPP DIBs
svn path=/trunk/; revision=3573
2002-09-28 22:23:36 +00:00
Jason Filby
d166ac40b1 Draw minimize and maximize buttons with smaller, correct, metrics
svn path=/trunk/; revision=3572
2002-09-28 22:13:28 +00:00
Hartmut Birr
bf59f99dac Fixed the conversion in MultiByteToWideChar. Wmc.exe does now running on ros.
svn path=/trunk/; revision=3571
2002-09-27 15:29:03 +00:00
Hartmut Birr
7c651fda9c Fixed the calculation of leap days in RtlTimeToTimeFields.
svn path=/trunk/; revision=3570
2002-09-27 15:23:03 +00:00
David Welch
51ee9ffb3d Added nicer looking default mouse cursor.
Draw a mouse cursor as a pair of AND and XOR masks.
Speedup saving the screen area behind the mouse cursor by blitting it to
a non-displayed part of the frame buffer.

svn path=/trunk/; revision=3569
2002-09-25 21:21:36 +00:00
Hartmut Birr
9b17dd2a05 Stored the return value in the location given by the parameter (in function time()).
svn path=/trunk/; revision=3568
2002-09-25 16:31:36 +00:00
Eric Kohl
db14727518 Added more setup 'pages'. No install functionality yet.
svn path=/trunk/; revision=3567
2002-09-25 14:48:35 +00:00
Robert Dickenson
2ef96cd555 Added serial to the device_drivers target list.
svn path=/trunk/; revision=3566
2002-09-25 12:49:12 +00:00
Robert Dickenson
c08624515a Moved location of serial driver entry to prevent very strange behaviour of serial appearing to load multiple times as currently seen under bochs.
svn path=/trunk/; revision=3565
2002-09-25 12:45:13 +00:00
Brian Palmer
c3457c3890 Added more compiler flags
svn path=/trunk/; revision=3564
2002-09-25 04:22:37 +00:00
Steven Edwards
7222eece5c added test for mktime()
svn path=/trunk/; revision=3563
2002-09-25 01:09:49 +00:00
Jason Filby
559919d821 Added missing palette.h
svn path=/trunk/; revision=3562
2002-09-24 20:25:49 +00:00
Jason Filby
bf2d96d820 Win32k fixes including better 1BPP support
svn path=/trunk/; revision=3561
2002-09-24 20:22:10 +00:00
guido
25c608fd37 added .cvsignore
svn path=/trunk/; revision=3560
2002-09-24 19:50:47 +00:00
guido
895e809d7a changed backslash to slash
(I'm probably the only one having trouble with backslashes ...)

svn path=/trunk/; revision=3559
2002-09-24 19:34:18 +00:00
Steven Edwards
afbe90de84 added install for winmm.dll
svn path=/trunk/; revision=3558
2002-09-24 18:45:56 +00:00
Steven Edwards
230dc66a3a Added blank winmm.dll with one stub to try and get bochs working.
svn path=/trunk/; revision=3557
2002-09-24 18:45:32 +00:00
Steven Edwards
2e6e06f683 Change caption from Task Manager to ReactOS Task Manager
svn path=/trunk/; revision=3556
2002-09-24 16:45:12 +00:00
Robert Dickenson
5f1366aacc Updated with latest version changes to original source.
svn path=/trunk/; revision=3555
2002-09-24 15:16:46 +00:00
Robert Dickenson
2217a4d789 Temporary workaround to prevent bochs trouble.
svn path=/trunk/; revision=3554
2002-09-24 15:12:33 +00:00
Robert Dickenson
e7c419950d Added calls to INIT_TAG for better debugging messages.
svn path=/trunk/; revision=3553
2002-09-24 15:11:34 +00:00
Robert Dickenson
44572b3e1e Suspicious call to ExFreePool commented out for peer review?
svn path=/trunk/; revision=3552
2002-09-24 15:10:35 +00:00
Robert Dickenson
be84fb0f1c Updated with latest version changes to original source by Politecnico di Torino.
svn path=/trunk/; revision=3551
2002-09-24 15:08:14 +00:00
Robert Dickenson
eda8dee587 Addition of control panel applet support to shell32. Still need to clean local and do build testing. More to come soon.
svn path=/trunk/; revision=3550
2002-09-24 15:06:10 +00:00
Robert Dickenson
939bdcdace Doing some work on the serial driver.
svn path=/trunk/; revision=3549
2002-09-24 14:59:32 +00:00
Robert Dickenson
066f6e3fdc Added new registry entries in support of the network components.
svn path=/trunk/; revision=3548
2002-09-24 14:58:54 +00:00
Robert Dickenson
8f5a73d237 Added new targets to the copy list.
svn path=/trunk/; revision=3547
2002-09-24 14:47:27 +00:00
Robert Dickenson
0ea72c53bc Added targets for getting new import libraries built.
svn path=/trunk/; revision=3546
2002-09-24 14:44:15 +00:00
Robert Dickenson
954cb157af Test app for some visibility on whats in the registry.
svn path=/trunk/; revision=3545
2002-09-24 14:41:55 +00:00
Robert Dickenson
6179622668 Added SNMP Error Codes.
svn path=/trunk/; revision=3544
2002-09-24 14:37:04 +00:00
Robert Dickenson
803e49c960 Very minor updates in support of network applications development.
svn path=/trunk/; revision=3543
2002-09-24 14:35:49 +00:00
Robert Dickenson
6ee5647f7b Minor fix to get ROS pinging reliably over ne2000 as tested on hardware and bochs.
svn path=/trunk/; revision=3542
2002-09-24 14:34:41 +00:00
Robert Dickenson
55fe4b8ca1 Misc updates and additions to as yet only partial applications.
svn path=/trunk/; revision=3541
2002-09-24 14:26:47 +00:00
Robert Dickenson
edfa8a7002 Sync'ing remaining changes after recent CVS problems. Seem to now have my route back!
svn path=/trunk/; revision=3540
2002-09-24 14:22:48 +00:00
Steven Edwards
5902c7241e End of line fix for gcc 3.x, other misc fixes for 3x
svn path=/trunk/; revision=3539
2002-09-24 03:57:59 +00:00
Steven Edwards
2e1536cfa6 End of line fix for gcc 3.x
svn path=/trunk/; revision=3538
2002-09-24 03:43:25 +00:00
Steven Edwards
19c7a64cf1 added install for regression test suite
svn path=/trunk/; revision=3537
2002-09-23 23:50:43 +00:00
guido
fec8acf355 re-added some files and fixed a few errors
svn path=/trunk/; revision=3536
2002-09-23 21:22:42 +00:00
guido
cd5724441e added clean rule
svn path=/trunk/; revision=3535
2002-09-23 20:09:10 +00:00
Steven Edwards
41f1cd4bda Added some stubbs for the WINE kernel32 regression test
svn path=/trunk/; revision=3534
2002-09-23 19:20:34 +00:00
Jason Filby
ee7cad8534 Added dibtest - only 1BPP test for now
svn path=/trunk/; revision=3533
2002-09-22 20:09:01 +00:00
guido
44279ad4aa added .cvsignore
svn path=/trunk/; revision=3532
2002-09-22 18:53:37 +00:00
guido
43cd157b8f updated .cvsignore
svn path=/trunk/; revision=3531
2002-09-22 18:52:45 +00:00
guido
4f8b6f7d02 added port of freedos find command
svn path=/trunk/; revision=3530
2002-09-22 18:41:59 +00:00
guido
714d720147 minor fix for 'dist'
svn path=/trunk/; revision=3529
2002-09-22 18:41:16 +00:00
David Welch
02d56c87f1 Accelerate PATCOPY blits.
svn path=/trunk/; revision=3528
2002-09-21 18:05:25 +00:00
Jason Filby
93dd94f0db Minor fixes
svn path=/trunk/; revision=3527
2002-09-21 10:39:54 +00:00
Jason Filby
2f3e32bfea Windows now show captions
svn path=/trunk/; revision=3526
2002-09-20 21:55:50 +00:00
Eugene Ingerman
088dbb0953 Patch by Hartmut Birr: protect IrpFlags with spinlock.
svn path=/trunk/; revision=3525
2002-09-20 05:40:28 +00:00
Jason Filby
d0a1f447f1 Corrected comment
svn path=/trunk/; revision=3524
2002-09-19 22:56:14 +00:00
Jason Filby
dfcf977473 Text alignment should be TA_TOP for a new DC
svn path=/trunk/; revision=3523
2002-09-19 22:41:57 +00:00
Eric Kohl
db1b121d20 Major rework.
Fixed keyboard bug.

svn path=/trunk/; revision=3522
2002-09-19 16:21:15 +00:00
Eric Kohl
f38f607dc4 Moved SCSI headers because they are used by usetup.
svn path=/trunk/; revision=3521
2002-09-19 16:18:50 +00:00
David Welch
af353b6572 Create a PDEV for the display driver only once.
svn path=/trunk/; revision=3520
2002-09-18 23:56:48 +00:00
KJK::Hyperion
c14f0762b7 Temporary getopt.h. MingW doesn't define getopt() anywhere, but ships with libiberty, that implements it. This file temporarily fills the gap
svn path=/trunk/; revision=3519
2002-09-18 01:09:10 +00:00
David Welch
b3aca5f5cc Pass only the base name of a module.
svn path=/trunk/; revision=3518
2002-09-17 23:48:14 +00:00
David Welch
93381cbd04 More user fixes.
svn path=/trunk/; revision=3517
2002-09-17 23:46:23 +00:00
David Welch
8874b95126 Misc. user fixes.
svn path=/trunk/; revision=3516
2002-09-17 23:43:29 +00:00
David Welch
57e810c555 Misc. user fixes.
Don't load FPU or debug register data unless requested.

svn path=/trunk/; revision=3515
2002-09-17 23:41:44 +00:00
Jason Filby
8c69edcca7 Fixes for DIBs to show with correct vertical orientation
svn path=/trunk/; revision=3514
2002-09-17 23:20:44 +00:00
Jason Filby
319a04a8a0 Remove unneeded floating point code
svn path=/trunk/; revision=3513
2002-09-17 21:39:10 +00:00
Hartmut Birr
60457afcdc Changed the detection of the last session from IOCTL_CDROM_READ_TOC to IOCTL_CDROM_GET_LAST_SESSION.
Fixed the calculation of the VolumeOffset.

svn path=/trunk/; revision=3512
2002-09-17 20:42:59 +00:00
Hartmut Birr
fe3896a798 added support for IOCTL_CDROM_GET_LAST_SESSION.
svn path=/trunk/; revision=3511
2002-09-17 20:35:22 +00:00
guido
11e344c9df fix calculation of InitSize and correctly set edx in the trap frame
svn path=/trunk/; revision=3510
2002-09-17 16:41:22 +00:00
Hartmut Birr
28bdb2c847 Fixed a wrong length in CdfsReadFile.
svn path=/trunk/; revision=3509
2002-09-15 22:26:52 +00:00
Hartmut Birr
520643c107 Added support for multi session CD's.
svn path=/trunk/; revision=3508
2002-09-15 22:25:05 +00:00
Hartmut Birr
3c54f08801 Added CdfsSetPosition/CdfsSetInformation.
svn path=/trunk/; revision=3507
2002-09-15 22:23:23 +00:00
Hartmut Birr
9083e6bddd Check some attributes in CdfsCreateFile.
svn path=/trunk/; revision=3506
2002-09-15 22:21:40 +00:00
Hartmut Birr
c7c45f9bac Added support for IOCTL_CDROM_READ_TOC.
svn path=/trunk/; revision=3505
2002-09-15 22:19:16 +00:00
guido
c9aa7a8462 Initialisation of debugging and floating point registers in
PsBeginThread*.

svn path=/trunk/; revision=3504
2002-09-15 13:49:57 +00:00
guido
2b22998369 Switch i287 fpu, if present, into protected mode (ignored on i387) and
properly initialize some variables.

svn path=/trunk/; revision=3503
2002-09-15 10:45:05 +00:00
guido
50bd524398 Fix building using gcc-2.95
svn path=/trunk/; revision=3502
2002-09-14 13:10:45 +00:00
guido
347f421015 Ported SORT command form FreeDOS
svn path=/trunk/; revision=3501
2002-09-13 21:40:28 +00:00
Jason Filby
8678f12e61 Initial support for 1BPP
svn path=/trunk/; revision=3500
2002-09-13 20:36:06 +00:00
Hartmut Birr
8b3648cad0 Increased the search buffer for InternalFindFirstFile/InternalFindNextFile.
Changed from single entry to multiple entries in InternalFindNextFile.

svn path=/trunk/; revision=3497
2002-09-13 19:03:40 +00:00
Hartmut Birr
5d53de65e2 Improve converting speed in RtlTimeFieldsToTime/RtlTimeFieldsToTime.
Fixed an error if the month is negativ in RtlTimeFieldsToTime.

svn path=/trunk/; revision=3496
2002-09-13 18:58:36 +00:00
Hartmut Birr
61e3f21f42 Check for CREATE_UNICODE_ENVIRONMENT in CreateProcessA.
svn path=/trunk/; revision=3495
2002-09-13 18:55:31 +00:00
Hartmut Birr
0542fdd563 Use the functions from ntdll in SystemeTimeToFileTime/FileTimeToSystemTime.
svn path=/trunk/; revision=3494
2002-09-13 18:53:17 +00:00
Hartmut Birr
5c88f1916c Fixed some problems which occurs if a directory goes over the sector (2048 byte) boundary.
Save the current directory offset in the ccb for increasing the speed for countinous directory queries.

svn path=/trunk/; revision=3493
2002-09-13 18:51:01 +00:00
Hartmut Birr
eec75375c4 Fixed a buffer overflow if there is given a not null terminated string with a precision parameter.
Reduced some overhead for outputing strings.
Added handling of the precision parameter for counted strings.
Return the outputed character count (or an error) in __vf(w)printf.

svn path=/trunk/; revision=3492
2002-09-13 18:48:42 +00:00
Hartmut Birr
3f316cde99 Fixed a buffer overflow if there is given a not null terminated string with a precision parameter.
Added handling of the precision parameter for counted strings.
Reduced some overhead for strings.

svn path=/trunk/; revision=3491
2002-09-13 18:45:10 +00:00
Hartmut Birr
1950866768 Reduced some overhead for strings.
Added handling of the precision parameter for counted strings.

svn path=/trunk/; revision=3490
2002-09-13 18:43:01 +00:00
guido
8d4571bdf3 Fix case sensitivity problem
svn path=/trunk/; revision=3489
2002-09-12 18:08:54 +00:00
guido
c8227ebcc5 Prevent buffer overflows in vsn(w)printf
svn path=/trunk/; revision=3488
2002-09-12 17:50:42 +00:00
Steven Edwards
19a7100f39 Fixed text output for simple messagebox test
svn path=/trunk/; revision=3487
2002-09-11 22:34:40 +00:00
KJK::Hyperion
0ddd0152c2 Path to SMSS can be now set in the registry value REGISTRY\MACHINE\SYSTEM\CurrentControlSet\Session Manager\Path. The code is temporarily disabled because it hasn't been tested yet
svn path=/trunk/; revision=3486
2002-09-11 19:36:14 +00:00
Robert Dickenson
dc91eccd19 Replaced many CPP modules with C ones. All filenames now lowercase 8.3 format. Now builds as UNICODE or ANSI.
svn path=/trunk/; revision=3485
2002-09-10 02:07:02 +00:00
Robert Dickenson
ef39f0a5aa Removed obsolete cpp modules ready for new imports.
svn path=/trunk/; revision=3484
2002-09-10 02:01:38 +00:00
Steven Edwards
a0797d5f25 added patch submitted by Guido de Jong
svn path=/trunk/; revision=3483
2002-09-09 22:49:00 +00:00
Steven Edwards
f17812383d added patch submitted by Guido de Jong
svn path=/trunk/; revision=3482
2002-09-09 22:36:40 +00:00
Steven Edwards
8d67244770 added patch submitted by Guido de Jong
svn path=/trunk/; revision=3481
2002-09-09 22:27:57 +00:00
Hartmut Birr
4b6d4d065b Added CdfsCleanup.
svn path=/trunk/; revision=3480
2002-09-09 17:27:14 +00:00
Hartmut Birr
b06d4dcc2f Changed initialization/deinitialization of caching.
svn path=/trunk/; revision=3479
2002-09-09 17:26:24 +00:00
Hartmut Birr
b35e9d39b5 Free the DirectorySeachPattern.
svn path=/trunk/; revision=3478
2002-09-09 17:25:39 +00:00
KJK::Hyperion
af0e0e9ab6 Trivial syntax error
svn path=/trunk/; revision=3477
2002-09-08 23:28:11 +00:00
Eric Kohl
5c1d53b4eb Added initial console setup code.
svn path=/trunk/; revision=3476
2002-09-08 18:29:56 +00:00
Casper Hornstrup
f6ca76b756 Reverted latest changes
svn path=/trunk/; revision=3475
2002-09-08 11:16:44 +00:00
Casper Hornstrup
831938b9ee Reverted latest changes
svn path=/trunk/; revision=3474
2002-09-08 10:47:47 +00:00
Casper Hornstrup
17c0b5798e Reverted latest changes.
svn path=/trunk/; revision=3473
2002-09-08 10:23:54 +00:00
Casper Hornstrup
06d3fda385 Fixed declaration of WSHGetWSAProtocolInfo
svn path=/trunk/; revision=3471
2002-09-07 19:40:57 +00:00
Casper Hornstrup
96a7d97dac Fixed declaration of WSHGetWSAProtocolInfo
svn path=/trunk/; revision=3470
2002-09-07 19:20:08 +00:00
Casper Hornstrup
fb914ea8cb Remove some debugging code.
svn path=/trunk/; revision=3469
2002-09-07 17:08:31 +00:00
Casper Hornstrup
59448c64c0 Fixed typo.
svn path=/trunk/; revision=3468
2002-09-07 16:44:12 +00:00
Casper Hornstrup
5f42259b67 Added MSVCRT.DLL private headers.
svn path=/trunk/; revision=3467
2002-09-07 15:18:12 +00:00
Casper Hornstrup
387d432884 Use free Windows DDK and compile with latest MinGW releases.
svn path=/trunk/; revision=3466
2002-09-07 15:13:13 +00:00
Eric Kohl
fb29fa8a10 Added new 'bootcd' target.
Removed/disabled debugging code.
SetupLdr must not call BiosInt13ExtensionsSupported() to check extended int13 capabilities because they are already used to boot a CD and some BIOSes return incorrect results when a CD-ROM drive is checked.

svn path=/trunk/; revision=3465
2002-09-06 22:38:10 +00:00
Emanuele Aliberti
81a79af1eb USER32.EqualRect(): partial implementation.
svn path=/trunk/; revision=3462
2002-09-05 21:50:53 +00:00
Emanuele Aliberti
17974568f9 Just one more line. Little is known about MCBs.
svn path=/trunk/; revision=3461
2002-09-05 20:41:05 +00:00
Eric Kohl
28da6203e2 Got iso-fs working again.
Implemented very simple setup loader.

svn path=/trunk/; revision=3460
2002-09-05 15:31:45 +00:00
Robert Kopferl
449e39d06a Added some stubs in order to
implement them some time

svn path=/trunk/; revision=3459
2002-09-04 22:19:47 +00:00
Eric Kohl
296c5258a4 Check for a busy device in AtapiInterrupt().
svn path=/trunk/; revision=3458
2002-09-04 21:33:26 +00:00
David Welch
9191240ab4 Added missing file.
svn path=/trunk/; revision=3457
2002-09-04 18:09:31 +00:00
Eric Kohl
3e871a4ef6 Added code to identify the cdrom drive when ReactOS is booted from a CD because the bios does not provide any usable information.
The Boot-CD must be labeled 'REACTOS'.

svn path=/trunk/; revision=3456
2002-09-04 13:58:56 +00:00
David Welch
afe56d0970 Implemented part of window properties support
Convert WM_GETTEXT messages when sending between windows
Added Steven's bitmaps to the user32 resources
Fixed some bugs when creating a DIB
Implemented LoadBitmap

svn path=/trunk/; revision=3455
2002-09-03 22:44:21 +00:00
Casper Hornstrup
068a37b1cd Don't try to build modules that won't build.
Support latest MinGW releases.
Support building on linux.

svn path=/trunk/; revision=3454
2002-09-03 18:44:19 +00:00
Steven Edwards
f8310e0ce2 Added binary resources from Wine for user32.
To be replaced latter by wrc format

svn path=/trunk/; revision=3453
2002-09-02 23:35:00 +00:00
Steven Edwards
9ca848afd6 Fixed another stub for the WINE dlls.
svn path=/trunk/; revision=3452
2002-09-02 20:30:25 +00:00
Steven Edwards
b3a582dbdd Fix export to get WineMine to load.
svn path=/trunk/; revision=3451
2002-09-02 18:48:32 +00:00
David Welch
b163519757 Don't reinitialize the VGA on an enable surface if it is already initialized
Implemented patblt and rectangle fill
Offset drawing by the origin of the DC
Other GUI fixes

svn path=/trunk/; revision=3450
2002-09-01 20:39:56 +00:00
Robert Dickenson
a8c82f2bfb Added some exports.
svn path=/trunk/; revision=3449
2002-09-01 04:27:51 +00:00
Robert Dickenson
96561f80c2 Seem to have missed updating these previously....
svn path=/trunk/; revision=3448
2002-09-01 04:17:05 +00:00
David Welch
c81c209798 Non-client painting fixes.
svn path=/trunk/; revision=3447
2002-08-31 23:18:47 +00:00
KJK::Hyperion
cbc3029db7 Defined missing virtual memory query/set information types
svn path=/trunk/; revision=3446
2002-08-31 18:33:21 +00:00
Eric Kohl
fd7d5a399f Build FREELDR.SYS and SETUPLDR.SYS in a single make run.
Fixed build process for SETUPLDR.SYS.

svn path=/trunk/; revision=3445
2002-08-31 18:09:31 +00:00
Eric Kohl
bd3e14d1f7 Added a workaround for broken BIOSes.
Load SETUPLDR.SYS instead of FREELDR.SYS.
Disabled waiting for key.

svn path=/trunk/; revision=3444
2002-08-31 18:00:25 +00:00
KJK::Hyperion
08d5474187 PSAPI (re)licensed under LGPL to be shared with WinE, as per Steven's request. Interfaces (headers and import library definitions) and trivial sources put in the public domain
svn path=/trunk/; revision=3443
2002-08-31 17:11:24 +00:00
KJK::Hyperion
75cabefb26 LGPL 2.1
svn path=/trunk/; revision=3442
2002-08-31 17:07:30 +00:00
KJK::Hyperion
a0cbde7bb0 PSAPI: all the annoying stuff (enumeration and search, basically) has been taken care of. Only profiling remains to be implemented.
Check out the subsystem-independent routines in enum/ (FWIW: the whole DLL only imports two calls from kernel32.dll, SetLastError and AreFileApisANSI): they've been tested, and they could make for a great static library, to implement task manager, tlist, ToolHelp API, etc. Maybe a future addition to mingwnt?

svn path=/trunk/; revision=3441
2002-08-31 15:36:56 +00:00
David Welch
c0b94f90f9 Implemented GetAncestor and IsWindowVisible
Save and restore the trap frame around exceptions
Allow nested w32 callbacks

svn path=/trunk/; revision=3440
2002-08-30 02:47:37 +00:00
KJK::Hyperion
6332533037 PSAPI almost finished
svn path=/trunk/; revision=3439
2002-08-29 23:57:54 +00:00
David Welch
3ede8f0814 Fixed when changing the attributes of an area larger than the mapped area.
Unprotect pages before applying relocations
Create a module entry before fixing up imports to support recursive
dependencies
Added missing symbol to user32

svn path=/trunk/; revision=3438
2002-08-29 22:12:16 +00:00
Robert Dickenson
27e2be0d83 Added start of utility application zoomin.
svn path=/trunk/; revision=3437
2002-08-29 20:28:13 +00:00
Robert Dickenson
d173db00ea Added command line handling from wine regedit, removed stdafx rubbish.
Builds cleanly and executes but no run-time testing as yet - beware.

svn path=/trunk/; revision=3436
2002-08-29 18:42:38 +00:00
KJK::Hyperion
0a0f2c9c13 Corrected source paths for Event Log service and RPC subsystem
svn path=/trunk/; revision=3435
2002-08-28 23:13:08 +00:00
Robert Kopferl
6c040588b1 *** empty log message ***
svn path=/trunk/; revision=3434
2002-08-28 22:31:56 +00:00
Jason Filby
69b5fb7882 A few new definitions related to windowing
svn path=/trunk/; revision=3433
2002-08-28 22:03:44 +00:00
Jason Filby
bf5d7b47c9 Initial nonclient code
svn path=/trunk/; revision=3432
2002-08-28 21:58:00 +00:00
Hartmut Birr
444da66580 Replaced 'jmp $+3' with 'jmp label'.
svn path=/trunk/; revision=3431
2002-08-28 20:53:20 +00:00
Robert Kopferl
4bad48b791 added a preliminary WideCharToMultyByte(). This impl. only cuts of the upper 9 Bit and makes no use of NLS - its a Hack
svn path=/trunk/; revision=3430
2002-08-28 19:31:09 +00:00
Robert Dickenson
8a22ec305f Respond to WM_MEASUREITEM with the font height.
svn path=/trunk/; revision=3429
2002-08-28 19:01:49 +00:00
Eric Kohl
5857837550 Added detection of PCI Bus Master Controllers.
svn path=/trunk/; revision=3428
2002-08-28 18:36:18 +00:00
Robert Kopferl
07c788111d added some CP_ definitions
svn path=/trunk/; revision=3427
2002-08-28 17:52:00 +00:00
Robert Kopferl
b767c78d56 added CodePage symbols inside a #if 0
svn path=/trunk/; revision=3426
2002-08-28 17:47:09 +00:00
Hartmut Birr
2fe8ed1c18 *** empty log message ***
svn path=/trunk/; revision=3425
2002-08-28 07:32:39 +00:00
Hartmut Birr
f454afa33c Changed parameters for IoPageRead/IoPageWrite/IoSynchronousPageWrite.
Removed referencing of the event/file object.

svn path=/trunk/; revision=3424
2002-08-28 07:19:10 +00:00
Hartmut Birr
a5a8fc4a5a Removed dereferencing of the event/file object for paging IO.
svn path=/trunk/; revision=3423
2002-08-28 07:17:22 +00:00
Hartmut Birr
2066bfecef Added/enabled IoAcquireRemoveLockEx, IoInitializeRemoveLockEx, IoPageRead,
IoReleaseRemoveLockAndWaitEx, IoReleaseRemoveLockEx.

svn path=/trunk/; revision=3422
2002-08-28 07:15:14 +00:00
Hartmut Birr
1b9c730b99 Moved IoPageRead from io.h to iofuncs.h.
Changed parameters for IoPageRead/IoPageWrite/IoSynchronousPageWrite.
Fixed the length calculation in CcZeroData.

svn path=/trunk/; revision=3421
2002-08-28 07:13:04 +00:00
Hartmut Birr
fdd13c6ff5 Changed the parameters for InterlockedCompareExchange.
svn path=/trunk/; revision=3420
2002-08-28 07:08:26 +00:00
Hartmut Birr
9b2f541051 Set the allocation size in IoCreateFile.
svn path=/trunk/; revision=3419
2002-08-28 07:05:14 +00:00
Hartmut Birr
9ad20399e9 Added memcpy/memset with inline assembler implementation for target i386.
svn path=/trunk/; revision=3418
2002-08-28 07:03:10 +00:00
Brian Palmer
0f2ad47bfb Fix for disk error while Loading FreeLoader... discovered by Dave Albert
In ReadSectorsCHS it was pop'ing values off the stack that hadn't been push'ed

svn path=/trunk/; revision=3417
2002-08-28 04:46:17 +00:00
Steven Edwards
7a32bdf315 update .cvsignore
svn path=/trunk/; revision=3416
2002-08-28 00:03:29 +00:00
Steven Edwards
1810bf3caa add .cvsignore
svn path=/trunk/; revision=3415
2002-08-28 00:03:09 +00:00
Steven Edwards
258b472dd7 copy gstart.exe to C:\reactos\system32
svn path=/trunk/; revision=3414
2002-08-27 23:59:17 +00:00
David Welch
78126b68a6 More painting fixes.
svn path=/trunk/; revision=3413
2002-08-27 23:32:21 +00:00
David Welch
25788364e8 Misc. painting fixes.
svn path=/trunk/; revision=3412
2002-08-27 23:29:40 +00:00
Jason Filby
c75df46270 Minor fix
svn path=/trunk/; revision=3411
2002-08-27 21:20:45 +00:00
Jason Filby
cb6d74f998 BeginPaint and EndPaint now functional
svn path=/trunk/; revision=3410
2002-08-27 20:32:03 +00:00
Robert Dickenson
74c9931dbf Created new module for library IPRTPRIO.DLL
svn path=/trunk/; revision=3409
2002-08-27 13:22:30 +00:00
Hartmut Birr
b6e3b83941 Repleaced wcsicmp with _wcsicmp in ScLookupServiceByServiceName.
wcsicmp is imported from msvcrt.dll and _wcsicmp from ntdll.dll.

svn path=/trunk/; revision=3408
2002-08-27 06:41:58 +00:00
Robert Dickenson
3b451c4642 Added required support for WinHelp exports in user32.lib
svn path=/trunk/; revision=3407
2002-08-27 06:41:33 +00:00
Hartmut Birr
a9a618aeb0 Using ReadCacheSegment for reading a cache segment in MiReadPage.
Fixed the attribute in a call to MmCreateVirtualMapping in MmNotPresentFaultSectionView.
Removed a wrong call to MmUnlockAddressSpace in MmUnmapViewOfSection.

svn path=/trunk/; revision=3406
2002-08-27 06:40:32 +00:00
Robert Dickenson
4463ef833f Added entry points for WinHelpA and WinHelpW exports.
svn path=/trunk/; revision=3405
2002-08-27 06:40:15 +00:00
Hartmut Birr
69b3035df8 Changed from CreateFileW for opening a directory to the new
function InternalOpenDirectoryW. InternalOpenDirectory uses
NtCreateFile instead of CreateFileW.

svn path=/trunk/; revision=3404
2002-08-27 06:38:23 +00:00
Hartmut Birr
efcf4c3d7f Added testing for a valid proccess pointer in
MmWritePagePhysicalAddress/MmPageOutPhysicalAddress.
Moved the call to ObDereferenceObject to the end in
MmWritePagePhysicalAddress/MmPageOutPhysicalAddress.

svn path=/trunk/; revision=3403
2002-08-27 06:36:32 +00:00
Hartmut Birr
06226b583c Added CloseInProcess to the structure OBJECT_HEADER.
Check for close operation in ObReferenceObjectByPointer,
ObpPerformRetentionChecks, ObfReferenceObject.

svn path=/trunk/; revision=3402
2002-08-27 06:34:22 +00:00
Hartmut Birr
9e3bef3b3c Fixed the calculation of the ActiveCount member from structure ERESOURCE.
svn path=/trunk/; revision=3401
2002-08-27 06:31:55 +00:00
Robert Dickenson
58bbc5be5d Created new application template dialog for testing and demonstration.
svn path=/trunk/; revision=3400
2002-08-27 00:53:34 +00:00
David Welch
7a3564314a Added missing prototype.
svn path=/trunk/; revision=3399
2002-08-26 23:22:53 +00:00
David Welch
df75d0d97f Fixes for painting.
svn path=/trunk/; revision=3398
2002-08-26 23:20:54 +00:00
Hartmut Birr
3f6d544a66 Initialized Peb->WindowFlags (instead of Flags) with dwFlags in CreateWindowW.
svn path=/trunk/; revision=3397
2002-08-26 22:07:01 +00:00
David Welch
024738024e 2002-08-26 David Welch <welch@computer2.darkstar.org>
* lib/gdi32/misc/dllmain.c (GdiDllInitialize): Don't initialize
	win32k.sys for each process.
	* subsys/csrss/init.c (CsrServerInitialization): Initialize
	win32k.sys as well.

2002-08-26  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ps/process.c (NtCreateProcess): Reference the
	parent process's handle using ExGetPreviousMode.

2002-08-26  David Welch  <welch@computer2.darkstar.org>

	* lib/user32/misc/dllmain.c (Init): Initialize gdi32 as well.

2002-08-26  David Welch  <welch@computer2.darkstar.org>

	* iface/addsys/genw32k.c (main, process): Generate a set of
	stubs for csrss as well.

svn path=/trunk/; revision=3396
2002-08-26 13:06:03 +00:00
David Welch
f7c5c8bcd2 Oops, fixed compile errors.
svn path=/trunk/; revision=3395
2002-08-26 12:27:48 +00:00
David Welch
87579ff3f0 Copy all the startup info to the new process.
svn path=/trunk/; revision=3394
2002-08-26 11:24:29 +00:00
Jason Filby
84a242512b DCE header file
svn path=/trunk/; revision=3393
2002-08-25 15:56:54 +00:00
Steven Edwards
2df0829929 Stick the import lib in the right place.
svn path=/trunk/; revision=3392
2002-08-25 10:20:51 +00:00
Robert Dickenson
9971dc596a More CVS sugar.
svn path=/trunk/; revision=3391
2002-08-25 07:22:29 +00:00
Robert Dickenson
9c63868251 Added a whole lot of CVS sugar so I can use WinCVS flat mode more effectively.
svn path=/trunk/; revision=3390
2002-08-25 07:16:37 +00:00
Robert Dickenson
94aa216cf4 Fixed some broken stuff, added some cvs sugur.
svn path=/trunk/; revision=3389
2002-08-25 06:59:34 +00:00
Robert Dickenson
381af4ae02 Fixes for building with __MINGW32_VERSION 2.1
svn path=/trunk/; revision=3388
2002-08-25 06:47:16 +00:00
Jason Filby
1231d02b03 Initial code for NtUserGetDC
svn path=/trunk/; revision=3387
2002-08-24 11:09:17 +00:00
KJK::Hyperion
34b85a88a2 Removed superfluous DPRINTs
svn path=/trunk/; revision=3386
2002-08-24 03:50:49 +00:00
Eric Kohl
bdf9e628c0 Fixed dependency file deletion bug.
svn path=/trunk/; revision=3385
2002-08-24 01:45:37 +00:00
Eric Kohl
4abbed187f Added welcome/autorun application
svn path=/trunk/; revision=3384
2002-08-23 16:17:12 +00:00
Eric Kohl
e8d3ef310d Added welcome/autorun application (test bitmaps)
svn path=/trunk/; revision=3383
2002-08-23 16:15:47 +00:00
Emanuele Aliberti
b07c25b369 Fixes for building the imports libraries.
svn path=/trunk/; revision=3382
2002-08-23 12:41:55 +00:00
Emanuele Aliberti
d4dc1756c4 Makefile fixes to compile.
svn path=/trunk/; revision=3381
2002-08-23 12:40:56 +00:00
Robert Dickenson
0b318e24d3 Added new include file.
svn path=/trunk/; revision=3380
2002-08-23 08:28:43 +00:00
Robert Dickenson
90d386b1c0 Added some exports.
svn path=/trunk/; revision=3379
2002-08-23 08:27:46 +00:00
Robert Dickenson
8f61fc390c Modified to use new include file reactos/include/snmp.h to be committed shortly.
svn path=/trunk/; revision=3378
2002-08-23 08:26:52 +00:00
Robert Dickenson
f4dca9cd17 Added entries for new network applications.
svn path=/trunk/; revision=3377
2002-08-23 08:24:13 +00:00
Robert Dickenson
3a41864fff Created framework for new network utility applications.
svn path=/trunk/; revision=3376
2002-08-23 08:23:28 +00:00
Eric Kohl
ed21a6af20 -Implemented ReadConsoleOutputCharacterA and CsrReadConsoleOutputChar
-Added null pointer check to FillConsoleOutputCharacterA
-Added parameter names and removed 'undocumented' label for
GetConsoleFontSize and GetCurrentConsoleFont
-Added definition of CONSOLE_FONT_INFO struct
-Added call to SetLastError(ERROR_OUTOFMEMORY) to a number of
RtlAllocateHeap return value checks

Patch by Marty Dill

svn path=/trunk/; revision=3375
2002-08-22 15:21:57 +00:00
Brian Palmer
d3991649c5 Changes in v1.7.5 (8/21/2002) (brianp)
- biosvid.S (BiosVideoDisableBlinkBit): Added code to
  disable the blink bit in the text mode character
  attribute byte so that the full range of
  background colors can be used.

svn path=/trunk/; revision=3374
2002-08-22 05:33:59 +00:00
Brian Palmer
f64597ef92 Initial commit for utility to install FreeLoader under Linux
svn path=/trunk/; revision=3373
2002-08-21 03:34:01 +00:00
Brian Palmer
367cfa7085 Changes in v1.7.4 (8/20/2002) (brianp)
- Boot sector code now reports to freeldr.sys the partition
  that it was installed on. This is specified by a byte
  value in the boot sector code. By default the boot partition
  is set to zero which indicates the active (bootable)
  partition, unless the installer sets the value to non-zero.
  If FreeLoader is installed on a partition other than
  the active (bootable) partition then the installer must
  set this byte to that partition number. Otherwise
  FreeLoader will not be able to find freeldr.ini.
- i386trap.S: Added debug macros BREAKPOINT(),
  INSTRUCTION_BREAKPOINTX(), MEMORY_READWRITE_BREAKPOINTX(), &
  MEMORY_WRITE_BREAKPOINTX().
- partition.c (DiskGetPartitionEntry): Add the relative offset
  of the extended partition to the partitions start sector.
- ext2.c (Ext2ReadBlockPointerList, Ext2CopyIndirectBlockPointers,
  Ext2CopyDoubleIndirectBlockPointers, Ext2CopyTripleIndirectBlockPointers):
  Rewrote the block pointer functions so they actually work.
- ini_init.c (IniFileInitialize, IniOpenIniFile): Looks for freeldr.ini
  on both the active (bootable) partition and the partition
  passed in from the boot sector code.
- meminit.c (MmInitializeMemoryManager, MmFixupSystemMemoryMap,
  MmGetEndAddressOfAnyMemory, MmGetAddressablePageCountIncludingHoles,
  MmInitPageLookupTable): Fixed bug that would cause FreeLoader to
  have an off-by-one error when accessing the last entry in the
  page lookup table on systems with 4GB of memory (or memory mapped
  at the end of the address space).

svn path=/trunk/; revision=3372
2002-08-21 03:32:49 +00:00
KJK::Hyperion
d8bd5ccb4a New macros InitializeUnicodeString(), RtlInitUnicodeStringFromLiteral() and UNICODE_STRING_INITIALIZATOR(), for fast, compile-time initialization of UNICODE_STRING variables
svn path=/trunk/; revision=3371
2002-08-20 20:37:19 +00:00
Jason Filby
51f0384fc0 Improved HLine algorithm; improvement carried over to FillSolid
svn path=/trunk/; revision=3370
2002-08-19 22:01:12 +00:00
Eugene Ingerman
6b30cb44dd Added color translation for solid color brushes.
svn path=/trunk/; revision=3369
2002-08-19 21:49:45 +00:00
Jason Filby
5add7bd9d8 Fixed VGADDIFillSolid - now fast, although ugly (will clean it up still)
svn path=/trunk/; revision=3368
2002-08-18 22:11:06 +00:00
Hartmut Birr
92de298b36 - Added a check for valid result pointers in GetDiskFreeSpaceExW.
- Changed from CreateFileW to NtCreateFile in GetVolumeInformationW.
  CreateFileW doesn't allow to open directories.

svn path=/trunk/; revision=3367
2002-08-18 21:07:59 +00:00
Hartmut Birr
0127899031 Rewrote _stat functions. This functions can't use _fstat.
svn path=/trunk/; revision=3366
2002-08-18 21:04:52 +00:00
KJK::Hyperion
82557ffc26 RtlGetProcessHeap() is not a function in Microsoft Windows
svn path=/trunk/; revision=3365
2002-08-18 18:50:27 +00:00
KJK::Hyperion
8a7fe191c9 CreateFileW: corrected a couple of buglets, added handling of GENERIC_ALL access, packed with DPRINTs to catch the bug that breaks gcc and cmd (sorry, last time I touch something I can't test)
svn path=/trunk/; revision=3364
2002-08-18 16:01:11 +00:00
Jason Filby
6c96aec67d Use clip.h instead of enum.h
svn path=/trunk/; revision=3363
2002-08-18 13:55:11 +00:00
Eugene Ingerman
95d847d794 1. CLIPOBJ_bEnum, CLIPOBJ_cEnumStart - implemented internal clip region enumeration.
2. Implemented PaintRgn. Added test to gditest.
3. Removed enum.c enum.h (duplicates for clip.c clip.h).

svn path=/trunk/; revision=3362
2002-08-18 07:02:57 +00:00
KJK::Hyperion
cfd7b8b886 Cleaned up CreateFileW. Please check out the FIXMEs
svn path=/trunk/; revision=3361
2002-08-18 04:20:21 +00:00
KJK::Hyperion
9a20837e5c Added definition of FILE_OPEN_FOR_RECOVERY
svn path=/trunk/; revision=3360
2002-08-18 04:19:27 +00:00
Robert Dickenson
aca2356310 Minor cosmetic changes to define, fixup workaround of windres bug.
svn path=/trunk/; revision=3359
2002-08-17 17:26:14 +00:00
Robert Dickenson
2cac3f921d Rudimentiary drivebar support added.
svn path=/trunk/; revision=3358
2002-08-17 17:23:18 +00:00
Hartmut Birr
7376639aea Call VfatSetAllocationSizeInformation only if the file size is increased (VfatWrite).
svn path=/trunk/; revision=3357
2002-08-17 16:51:07 +00:00
Robert Dickenson
85acea80c6 Added new module for iphlpapi.dll
svn path=/trunk/; revision=3356
2002-08-17 16:23:13 +00:00
Robert Dickenson
4115f5826a Newline at EOF to fix warning
svn path=/trunk/; revision=3355
2002-08-17 16:18:54 +00:00
Robert Dickenson
d078405603 Added TOOLS_PATH macro and default target similar to that in reactos/rules.mak
svn path=/trunk/; revision=3354
2002-08-17 16:06:29 +00:00
Robert Dickenson
faa53591e2 Added NDISVERSION define for our target NDIS support level, currently commented out pending testing.
svn path=/trunk/; revision=3353
2002-08-17 16:02:08 +00:00
Robert Dickenson
8141b34d44 fixed clean rule to match other makefile standard
svn path=/trunk/; revision=3352
2002-08-17 15:58:38 +00:00
Robert Dickenson
ee57fdbbc9 Fixed typo in header comment.
svn path=/trunk/; revision=3351
2002-08-17 15:57:22 +00:00
Robert Dickenson
2bcc926b73 Added new module for snmpapi.dll
svn path=/trunk/; revision=3350
2002-08-17 15:48:21 +00:00
Hartmut Birr
4b6ce94d5d Disabled/removed debug messages.
svn path=/trunk/; revision=3349
2002-08-17 15:46:36 +00:00
Hartmut Birr
d7f19d41ea Changed the values for the page file size from the registry from Byte to MByte.
svn path=/trunk/; revision=3348
2002-08-17 15:31:03 +00:00
Hartmut Birr
e0c35e0076 Zero out the page in MmTransferOwnershipPage.
svn path=/trunk/; revision=3347
2002-08-17 15:29:18 +00:00
Hartmut Birr
c463dfec1b Change the type of the parameter PhysicalAddress in MmDisableVirtualMapping.
svn path=/trunk/; revision=3346
2002-08-17 15:27:54 +00:00
Hartmut Birr
9443ca8347 Set the extension length to 0 if there is no extension (RtlGenerate8dot3Name).
svn path=/trunk/; revision=3345
2002-08-17 15:23:50 +00:00
Hartmut Birr
ea5ed93302 Fixed the size for memory unmapping from boot process.
svn path=/trunk/; revision=3344
2002-08-17 15:22:33 +00:00
Hartmut Birr
4e9dc21691 Removed freeing of IRP's MDL in ScsiClassIoComplete.
svn path=/trunk/; revision=3343
2002-08-17 15:21:12 +00:00
Hartmut Birr
675afa7691 Setup the correct stack location for completion routines in IofCompleteRequest.
This change correct also the called completion routine in IoSecondStageCompletion
(ntoskrnl\io\cleanup.c).

svn path=/trunk/; revision=3342
2002-08-17 15:20:33 +00:00
Hartmut Birr
74e8579c8f Removed the absolute path (c:\reactos\system32) to smss.exe.
svn path=/trunk/; revision=3341
2002-08-17 15:17:59 +00:00
Robert Dickenson
9baabd888d Removed modules to go into shell32. New control panel launcher based on same wine program.
svn path=/trunk/; revision=3340
2002-08-17 15:16:38 +00:00
Hartmut Birr
6130c02167 - Release streaming file object for directories in vfatReleaseFCB.
- Removed initialization of caching in vfatAttacheFCBToFileObject.
  The cache for files is initialized at the first read/write operation.
- Merged vfatExtendSpace and VfatSetAllocationSizeInformation in one function.

svn path=/trunk/; revision=3339
2002-08-17 15:15:50 +00:00
Hartmut Birr
01d5ad9279 - Disabled write caching for meta data (FAT, directories) in
CcSetDirtyPinedData. There is no working shutdown function
  for writing back each modified cache segment. A reboot or
  crash can damage the disk.
- Added CcRosReferenceCache and CcRosDereferenceCache.
- Check at each call to CcRosInitializeFileCache if the cache was
  initialized for the file stream by a previous call to this function.
- Check at each call to CcRosReleaseFileCache if this is possible
  to delete the caching for the file stream.

svn path=/trunk/; revision=3338
2002-08-17 15:14:26 +00:00
Hartmut Birr
572bbc6ea5 Increment/Decrement the cache reference count on each create/delete
operation for a section. This prevents the cache from uninitialization
for a mapped file (data or image) at the cleanup of a given file object
or force the uninitialization if the last section of a file is deleted.

svn path=/trunk/; revision=3337
2002-08-17 15:12:49 +00:00
David Welch
c62229b967 2002-08-17 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): Ensure the
	process isn't freed in the middle of our operations.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation): Fixed.

svn path=/trunk/; revision=3336
2002-08-17 14:14:20 +00:00
David Welch
1a46ca7d8a 2002-08-17 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ps/create.c (PiDeleteThread): Don't dereference
	the thread's process while holding the thread list lock.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/section.c (MmMapViewOfSection): Check there is
	enough space for all parts of an image before mapping it; if
	there isn't enough space free at the preferred base address
	then try to choose a different one.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/mpw.c (MmInitMpwThread): Run the MPW thread at
	idle priority.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/kmap.c (ExUnmapPage, ExAllocatePageWithPhysPage,
	MiFreeNonPagedPoolRegion, MiAllocNonPagedPoolRegion): Maintain
	a hint of the next free page; makes running with whole page
	allocation more bearable.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/anonmem.c (MmPageOutVirtualMemory): Show an
	out of swap space message if we are out of swap space.
	* ntoskrnl/mm/section.c (MmPageOutSectionView): Show an
	out of swap space message if we are out of swap space.
	* ntoskrnl/mm/pagefile.c (MmAllocSwapPage): Don't automatically
	show an out of swap space message on failure.
	* ntoskrnl/mm/pagefile.c (MmShowOutOfSpaceMessagePagingFile): New
	function to notify the user that the pagefile is full.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* drivers/lib/zlib/Makefile: Create a dummy zlib.sym

svn path=/trunk/; revision=3335
2002-08-17 01:42:03 +00:00
Eugene Ingerman
1052bedeed Updated memory area const names.
svn path=/trunk/; revision=3334
2002-08-16 22:03:07 +00:00
David Welch
99c4e70f22 2002-08-16 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/npool.c (ExAllocateWholePageBlock): Converted
	to use PHYSICAL_ADDRESS type for page address.

2002-08-16  David Welch  <welch@computer2.darkstar.org>

	* subsys/win32k/ntuser/class.c (W32kCreateClass): Corrected
	typo when calculating the offset into the class object to
	put the class name string.

2002-08-16  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ps/thread.c (PsDispatchThreadNoLock): Don't call
	the reaper function directly; set an event to wake up a seperate
	reaper thread.
	* ntoskrnl/ps/thread.c (PsReaperThreadMain): New function that
	waits for a notification and then calls PsReapThreads.
	* ntoskrnl/ps/thread.c (PsInitThreadManagement): Create the
	reaper thread.

svn path=/trunk/; revision=3333
2002-08-16 01:39:17 +00:00
David Welch
a4e3a21cfa Export LdrFindResourceDirectory_U
Remove LdrFindResourceDirectory_U stub

svn path=/trunk/; revision=3332
2002-08-15 16:11:01 +00:00
David Welch
8cec2e609d 2002-08-14 David Welch <welch@computer2.darkstar.org>
* subsys/smss/init.c (SmPagingFilesQueryRoutine): If possible
	take the size of the paging file from the registry.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/section.c (MmCreateDataFileSection): Extend the
	section if necessary.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/pagefile.c (NtCreatePagingFile): Set the file
	size using the FileAllocationInformation class.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/anonmem.c (MmWritePageVirtualMemory): Implemented
	function to write anonymous memory pages to the swap file.
	* ntoskrnl/mm/anonmem.c (MmFreeVirtualMemoryPage): Free any
	swap page associated with the page.
	* ntoskrnl/mm/mpw.c (MmWriteDirtyPages): New function to find
	pages to write to disk.
	* ntoskrnl/mm/mpw.c (MmMpwThreadMain): Implemented MPW functionality.
	* ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): New function
	to write a single page back to disk.
	* ntoskrnl/mm/rmap.c (MmSetCleanAllRmaps, MmSetDirtyAllRmaps,
	MmIsDirtyPageRmap): New rmap function to support the MPW thread.
	* ntoskrnl/mm/section.c (MmWritePageSectionView): Implemented
	function to write back section pages.
	* ntoskrnl/mm/section.c (MmFreeSectionPage): Free any swap
	entry associated with the page; mark pages shared with
	the cache as dirty if necessary.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set name of
	the module into the module text structure.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/io/rw.c (NtReadFile, NtWriteFile): Use the correct
	test for whether to wait for the completion of i/o.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/cm/ntfunc.c (NtFlushKey): Request synchronous i/o
	from NtOpenFile.
	* ntoskrnl/cm/regfile (CmiInitPermanentRegistryHive): Request
	synchronous i/o from NtCreateFile.
	* ntoskrnl/dbg/kdb_stabs.c (LdrpLoadModuleSymbols): Request
	synchronous i/o from NtOpenFile.
	* ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Request synchronous i/o
	from NtOpenFile.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/cc/view.c (CcRosSuggestFreeCacheSegment): Maintain the
	correct reference count.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/cc/view.c (CcRosFlushCacheSegment): New function to
	write back a modified cache segment.
	* ntoskrnl/cc/view.c (CcRosFlushDirtyPages): New function to
	flush some dirty pages from the cache.
	* ntoskrnl/cc/view.c (CcRosMarkDirtyCacheSegment): New function to
	mark a cache segment modified while mapped into memory as dirty.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/cc/pin.c (CcMapData, CcUnpinData, CcSetDirtyPinnedData):
	Store the dirty status in the BCB; don't write back dirty data
	immediately.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* include/ntos/mm.h: Added SEC_XXXX defines from 'Windows NT/2000
	Native API Reference'

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/ea.c (VfatSetExtendedAttributes): Empty
	placeholder for extended attribute functions.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation):
	Added function to set allocation size.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/fcb.c (vfatFCBInitializeCache): Renamed
	to vfatFCBInitializeCacheFromVolume.
	* drivers/fs/vfat/fcb.c (vfatMakeFCBFromDirEntry): Don't
	initialise the cache with a file object representing the
	volume unless the FCB is for a directory.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/create.c (VfatPagingFileCreate): Added a
	new function for handling paging file only code.
	* drivers/fs/vfat/create.c (VfatSupersedeFile): Added a
	new function for doing a file supersede.
	* drivers/fs/vfat/create.c (VfatCreateFile): Reformatted and
	adjusted control flow. Set allocation size and extended attributes
	on create.
	* drivers/fs/vfat/create.c (VfatCreate): Removed goto.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/cleanup.c (VfatCleanupFile): Renamed
	updEntry to VfatUpdateEntry.
	* drivers/fs/vfat/close.c (VfatCloseFile): Renamed
	updEntry to VfatUpdateEntry.
	* drivers/fs/vfat/dirwr.c (updEntry): Renamed to
	VfatUpdateEntry.
	* drivers/fs/vfat/dirwr.c (addEntry): Renamed to
	VfatAddEntry.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* apps/tests/sectest/sectest.c (main): Fixed formatting.

svn path=/trunk/; revision=3331
2002-08-14 20:58:39 +00:00
Eric Kohl
54865265f0 Implemented and fixed several ACL and SD functions.
Patch by Alexandru Matei.

svn path=/trunk/; revision=3330
2002-08-13 20:41:22 +00:00
Eric Kohl
ce083074cf Added missing newline
svn path=/trunk/; revision=3329
2002-08-10 21:58:14 +00:00
Eric Kohl
5e4fc8c66d Added compression stubs
svn path=/trunk/; revision=3328
2002-08-10 21:57:41 +00:00
David Welch
383eddd11e 2002-08-10 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/i386/page.c (MmSetPageProtect): Fixed
	behaviour when called on the system address space.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/virtual.c (MmQueryAnonMem, MmProtectAnonMem,
	NtAllocateVirtualMemory, NtFreeVirtualMemory): Renamed
	segments to regions; moved region code to seperate file.
	Implemented NtQueryVirtualMemory and NtProtectVirtualMemory
	for anonymous memory areas.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/anonmem.c: Moved functions relating to
	areas created with NtAllocateVirtualMemory to a
	seperate file.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/section.c (MmQuerySectionView): Implemented
	NtQueryVirtualMemory for section views.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/section.c (MmAccessFaultSectionView,
	MmNotPresentFaultSectionView, MmProtectSectionView,
	MmMapViewOfSegment, MmAlterViewAttributes): Implemented
	NtProtectVirtualMemory for section views.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ke/main.c: Removed SEH test code.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* lib/ntdll/ldr/utils.c (LdrFixupImports): Remove the readonly
	protection from the IAT before writing to it.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* lib/ntdll/ldr/utils.c (LdrAdjustDllName): Properly null terminate
	the base name of the DLL.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set the text segment
	of modules to readonly after loading.

svn path=/trunk/; revision=3327
2002-08-10 16:41:20 +00:00
Eric Kohl
6809339d27 Fixed several function prototypes.
svn path=/trunk/; revision=3326
2002-08-09 22:57:48 +00:00
Brian Palmer
10e943e65d Preliminary EXT2 boot sector code
Fixed bug in FAT32 boot sector where it wasn't properly updating the sector load address

svn path=/trunk/; revision=3325
2002-08-09 17:34:24 +00:00
David Welch
95fbecfd46 2002-08-09 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/ps/create.c (NtCreateThread): Call PsSuspendThread
	if NtCreateThread has CreateSuspended as TRUE.
	* ntoskrnl/ps/suspend.c (PsSuspendThread, PsResumeThread,
	PiSuspendThreadKernelRoutine): Fixed suspend functionality.

2002-08-09  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ke/i386/usertrap.c (print_user_address): Copy
	the LDR variable from the right address.

2002-08-09  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ke/apc.c (KiDeliverNormalApc): Check for
	kernel APCs pending on exit from the kernel.
	* ntoskrnl/ke/apc.c (KiDeliverNormalApc, KiDeliverUserApc,
	KiDeliverApc): Set the APC's inserted flag to FALSE after
	removing it from the thread's queue.

2002-08-09  David Welch  <welch@computer2.darkstar.org>

	* lib/kernel32/thread/thread.c (ThreadStartup): Don't
	call DLL entrypoints; this is done by LdrInitializeThunk.
	* lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call
	DLLs in initialization order; take the loader lock before
	calling.

2002-08-09  David Welch  <welch@computer2.darkstar.org>

	* apps/tests/thread/thread.c (main): Test suspend and
	resume functionality.

svn path=/trunk/; revision=3324
2002-08-09 17:23:57 +00:00
David Welch
5a801d58c3 2002-08-08 David Welch <welch@computer2.darkstar.org>
* ntoskrnl/mm/section (NtQuerySection): Return the
	right result length.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ke/usertrap.c (print_user_address): Check for
	a NULL LDR structure in the PEB; copy the LDR pointer in
	safely.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ke/apc.c (KiDeliverUserApc): Deliver all present
	APCs; release the APC spinlock while acccessing user memory.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* include/internal/ps.h: Adjusted offsets into the ETHREAD
	structure.
	* include/internal/ps.h: Removed redundant members from the
	KTHREAD structure.
	* ntoskrnl/ke/kthread.c (KeInitializeThread): Removed
	redundant members from the KTHREAD structure.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/dbg/kdb.c (KdbEnterDebuggerException): New
	function to enter the debugger on an exception.
	* ntoskrnl/kd/kdebug.c (KdInitSystem): Initialize the
	local kernel debugger if enabled.
	* ntoskrnl/ke/catch.c (KiDispatchException): Enter the
	local kernel debugger on an exception.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* include/ntdll/ldr.h: Added definition for a DLL entrypoint.
	* lib/kernel32/process/create.c (KlCreateFirstThread): Put
	the argument to the NtProcessStartup function on the stack.
	* lib/kernel32/process/create.c (KlInitPeb): Read the
	base address of the new image from the PEB.
	* lib/kernel32/process/create.c (CreateProcessW): Start the
	first thread at the entrypoint of the new image.
	* lib/ntdll/ldr/startup.c (LdrInitializeThunk): If the
	function is called after the initial startup then just call the
	entrypoints for the loaded DLLs with DLL_THREAD_ATTACH. Don't
	call the entrypoint of the image.
	* lib/ntdll/rtl/process.c (RtlpCreateFirstThread): Put the
	argument to the NtProcessStartup function on the stack.
	* lib/ntdll/rtl/process.c (KlInitPeb): Read the base address of
	the new image from the PEB.
	* lib/ntdll/rtl/process.c (RtlCreateUserProcess): Start the
	first thread at the entrypoint of the new image.
	* ntoskrnl/ke/i386/bthread.S (PsBeginThreadWithContextInternal):
	Use the system call path to begin a usermode thread.
	* ntoskrnl/ke/i386/thread.c (Ke386InitThreadWithContext): Convert
	the supplied context into a trap frame.
	* ntoskrnl/ldr/init.c (LdrLoadInitialProcess): Put the PEB argument
	to the NtProcessStartup function on the new stack; start the
	first thread at the entrypoint of the image.
	* ntoskrnl/ps/create.c (NtCreateThread): Create an APC to call
	LdrInitializeThunk in the context of a new thread before its
	entrypoint.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/cleanup.c (VfatCleanupFile): Uninitialise
	the cache on file cleanup.
	* drivers/fs/vfat/fcb.c (vfatReleaseFcb): Don't uninitialise
	the cache on file close.
	* ntoskrnl/cc/copy.c: Renamed zero page global variable.
	* ntoskrnl/cc/view.c: Added cache delete function.

svn path=/trunk/; revision=3323
2002-08-08 17:54:16 +00:00
Brian Palmer
7cbe6176ad Defined FAST_SYMLINK_MAX_NAME_SIZE
svn path=/trunk/; revision=3322
2002-08-08 04:46:46 +00:00
Brian Palmer
793d60fcff Changes in v1.7.2 (8/7/2002) (brianp)
- Fragment size must be equal to the block size

svn path=/trunk/; revision=3321
2002-08-08 04:38:43 +00:00
Brian Palmer
3cb41fbb8b Changes in v1.7.1 (8/7/2002) (brianp)
- Symbolic links on EXT2/3 are now supported

svn path=/trunk/; revision=3320
2002-08-08 04:28:08 +00:00
Brian Palmer
f5ac842ed4 Fix for compiling in non-debug (release) mode. (Reduces binary size from 128k to 82k currently)
svn path=/trunk/; revision=3319
2002-08-07 05:37:07 +00:00
Brian Palmer
70d2e3812d Changes in v1.7 (8/6/2002) (brianp)
- EXT2/EXT3 file system support.
- Does not yet support symbolic links or booting from an EXT2/3 partition.
- Fixed bug in UI code.
- Added '%%' format specifier to printf()-like functions.
- Added functions __udivdi3 & __umoddi3 so that 64-bit division is now supported.
- Changed types BYTE, WORD, DWORD, LONG, ULONG to U8, U16, U32, S32, U32
  so that you know the size of the variable across different
  architectures with different sized words & dwords, etc.
- Types CHAR, UCHAR, PCHAR, PUCHAR, WCHAR, PWCHAR have not been
  changed yet (I haven't decided exactly how I'm going to handle unicode)

(isn't this an awesome commit? ;-) Just look at that list of files)

svn path=/trunk/; revision=3318
2002-08-07 05:13:18 +00:00
Jason Filby
aac9125953 Updated version file to 0.0.20
svn path=/trunk/; revision=3316
2002-08-05 19:57:47 +00:00
Robert Dickenson
aa405ed6f1 Added combobox to drivebar, yet to get working. Whole application needs alot of cleanup.
Fixed up makefile plus dependancies and now builds (and runs) with ros-tools.

svn path=/trunk/; revision=3315
2002-08-04 18:40:49 +00:00
Eugene Ingerman
c724d71f77 Fixed a bug in the new Engxxx objects code.
svn path=/trunk/; revision=3314
2002-08-04 18:21:59 +00:00
Eugene Ingerman
7325b379e2 Rewrote gdi (Engxxx) objects.
svn path=/trunk/; revision=3313
2002-08-04 09:55:11 +00:00
Eugene Ingerman
94706d121d Added more tests to gditest.c
svn path=/trunk/; revision=3312
2002-08-04 09:53:19 +00:00
Eugene Ingerman
d9243a0a4b Removed deprecated file.
svn path=/trunk/; revision=3311
2002-08-04 09:52:05 +00:00
Eric Kohl
cfa1943b4f Don't alloc an extra console upon startup.
Added correct calculation of free disk size for drives larger than 2GB.

svn path=/trunk/; revision=3309
2002-08-01 10:29:18 +00:00
Eric Kohl
4201812a7e Added RtlCopyLuidAndAttributesArray() and RtlCopySidAndAttributesArray().
svn path=/trunk/; revision=3308
2002-07-29 15:37:06 +00:00
Eric Kohl
5295bac977 Added cache flush counters.
svn path=/trunk/; revision=3307
2002-07-29 15:29:58 +00:00
Brian Palmer
410b3629c3 Changes in v1.6.2 (7/28/2002) (brianp)
- Fix for GetFatEntry16 bug (fathelp.asm) by Mike Lerwill

svn path=/trunk/; revision=3306
2002-07-29 06:49:58 +00:00
Eric Kohl
8e93e09163 Added missing fastcall list functions
svn path=/trunk/; revision=3305
2002-07-27 13:02:37 +00:00
Robert Kopferl
d35d4191c1 -Nearly compiles doscalls
-Added  an mixing header to have ntddk and os2 included without conflicts

svn path=/trunk/; revision=3304
2002-07-26 00:23:13 +00:00
Eric Kohl
554d0a03f4 Implemented RtlTimeToElapsedTimeFields().
svn path=/trunk/; revision=3303
2002-07-25 16:58:58 +00:00
Eric Kohl
873c86599e Implemented RtlTimeToElapsedtimeFields().
svn path=/trunk/; revision=3302
2002-07-25 16:57:49 +00:00
Eric Kohl
9a04ad5955 Added compression functions (not usabel yet).
svn path=/trunk/; revision=3301
2002-07-25 13:18:31 +00:00
Eric Kohl
a79a9cbba6 Implemented IoCheckDesiredAccess() and IoGetInitialStack().
svn path=/trunk/; revision=3300
2002-07-24 17:49:31 +00:00
Robert Kopferl
d6e258cc9e free os2.h version
svn path=/trunk/; revision=3299
2002-07-23 13:00:46 +00:00
Robert Kopferl
a6c291342a *** empty log message ***
svn path=/trunk/; revision=3298
2002-07-23 13:00:11 +00:00
Robert Kopferl
77fce8841d update
svn path=/trunk/; revision=3297
2002-07-23 12:30:01 +00:00
Robert Dickenson
58d70d404f Added control panel applet icons to the list control imagelist. Next I'll make them lauch!
svn path=/trunk/; revision=3296
2002-07-23 08:24:54 +00:00
Jurgen van Gael
3ce45b038f OpenSCManager waits for services.exe to initialize
svn path=/trunk/; revision=3295
2002-07-23 08:16:05 +00:00
Eugene Ingerman
57a74268f7 Fixed bugs in region operations code (should run region tests correctly now)
svn path=/trunk/; revision=3294
2002-07-23 08:03:15 +00:00
Brian Palmer
ac37c58b98 Fix for disk caching while doing drive remapping
svn path=/trunk/; revision=3293
2002-07-23 06:46:55 +00:00
Robert Dickenson
0e96a84263 Whatever it is I changed, it's now backed up before I go to bed.
svn path=/trunk/; revision=3292
2002-07-22 21:12:26 +00:00
Robert Dickenson
916c8b493b Basic Control Panel created.
svn path=/trunk/; revision=3291
2002-07-22 21:05:41 +00:00
Eric Kohl
c1652a2ee6 Read drive number from the command line.
Added some sanity checks.

svn path=/trunk/; revision=3290
2002-07-22 17:53:12 +00:00
Eugene Ingerman
5faa3537c3 Missing file.
svn path=/trunk/; revision=3289
2002-07-22 17:42:52 +00:00
Robert Dickenson
63850f4969 Added missing file and some hex string conversion routines. Now displays registry data.
svn path=/trunk/; revision=3288
2002-07-22 14:41:40 +00:00
Steven Edwards
11a446cf74 Commited as binary
svn path=/trunk/; revision=3287
2002-07-22 11:12:38 +00:00
Steven Edwards
b2e2bb7f04 Removed to recommit as binary
svn path=/trunk/; revision=3286
2002-07-22 11:11:55 +00:00
Eugene Ingerman
2bda045a8e Added GetRegionData gdi function. Added region test. Fixed some bugs.
svn path=/trunk/; revision=3285
2002-07-22 07:55:49 +00:00
Brian Palmer
1aa76f94bd Added BIOS drive mapping functionality
svn path=/trunk/; revision=3284
2002-07-22 03:44:08 +00:00
Eric Kohl
c747481470 Moved WS_EX_CLIENTEDGE to the correct location.
svn path=/trunk/; revision=3283
2002-07-21 22:57:06 +00:00
Robert Dickenson
48266252bf Almost completed dialog layouts contributed by Ian McLean.
svn path=/trunk/; revision=3282
2002-07-21 18:28:26 +00:00
David Welch
45d7740d94 Renamed kernel.map -> ntoskrnl.map
svn path=/trunk/; revision=3280
2002-07-20 21:49:35 +00:00
Eugene Ingerman
d525647699 Use kernel.map (text format ntoskrnl symbols) instead of ntosknl.sym in pice. Fixed several bugs.
svn path=/trunk/; revision=3279
2002-07-20 20:27:22 +00:00
Jurgen van Gael
6fc62fb9b0 GCC 3.1 compatibility
svn path=/trunk/; revision=3278
2002-07-20 16:54:58 +00:00
Robert Dickenson
0efb5bd01d Updated version information.
svn path=/trunk/; revision=3277
2002-07-20 16:43:35 +00:00
Robert Dickenson
f3e89b62de Added new section to support default applications:
/* ReactOS default Application Registry Root Path */
#define RES_STR_ROSAPP_REGISTRY_ROOT	"Software\\ReactWare"

svn path=/trunk/; revision=3276
2002-07-20 16:38:55 +00:00
Robert Dickenson
e6ccc243b9 Updated with changes to version information.
svn path=/trunk/; revision=3275
2002-07-20 16:37:12 +00:00
Robert Dickenson
51278afbc0 Updated with an improvement to the registry save/restore module.
svn path=/trunk/; revision=3274
2002-07-20 16:35:34 +00:00
Robert Dickenson
f4629b5599 Updated with latest progress. How does one read a default registry value???
svn path=/trunk/; revision=3273
2002-07-20 16:29:26 +00:00
Robert Dickenson
ad319a46cf Updated with latest progress. Started on a worker thread for network enumerating and file change notifications.
svn path=/trunk/; revision=3272
2002-07-20 16:24:45 +00:00
Eric Kohl
86dc3a88d2 Added check for loaded system start drivers.
Create control pipe before a service is started.

svn path=/trunk/; revision=3271
2002-07-20 13:34:10 +00:00
Eric Kohl
ed77972722 Minor improvements.
svn path=/trunk/; revision=3270
2002-07-20 13:32:26 +00:00
Eric Kohl
951f903bda Added some experimental code
svn path=/trunk/; revision=3269
2002-07-20 13:31:34 +00:00
Eric Kohl
db6e84c404 Implemented FileAllInformation.
svn path=/trunk/; revision=3268
2002-07-20 11:44:37 +00:00
Eric Kohl
aa3245dd92 Fixed [Nt/Zw]QueryAttributeFile() and [Nt/Zw]QueryFullAttributesFile() prototypes.
svn path=/trunk/; revision=3267
2002-07-20 01:00:34 +00:00
Eric Kohl
41598868d1 Implemented FileNetworkOpenInformation.
svn path=/trunk/; revision=3266
2002-07-20 00:57:36 +00:00
Eric Kohl
f91b107c89 Fixed 'clean' rule because rdel cannot delete itself.
svn path=/trunk/; revision=3265
2002-07-19 12:31:49 +00:00
Eugene Ingerman
72c8bf3db3 Fixed typo. Now can disable kernel debugger by setting KDBG = 0 in config.
svn path=/trunk/; revision=3264
2002-07-19 03:56:47 +00:00
Steven Edwards
0504b08b95 Cleanup make and install, Moved all of the incompleate stuff to the end of make.
svn path=/trunk/; revision=3263
2002-07-19 02:11:11 +00:00
Eugene Ingerman
8d9c181908 Implemented some of gdi region functions.
svn path=/trunk/; revision=3262
2002-07-18 21:59:18 +00:00
Eugene Ingerman
52102e72fc Export MmCopyFrom/ToCaller from ntoskrnl. Added MulDiv.
svn path=/trunk/; revision=3261
2002-07-18 21:49:59 +00:00
Robert Dickenson
76e2e2e22f Added listview updating.
svn path=/trunk/; revision=3260
2002-07-18 20:27:52 +00:00
Eric Kohl
8553d39828 Moved _SET_PARTITON_INFORMATION to a common location.
svn path=/trunk/; revision=3259
2002-07-18 19:56:31 +00:00
Eric Kohl
a54c9ddecb Fixed a typo.
svn path=/trunk/; revision=3258
2002-07-18 18:18:17 +00:00
Robert Dickenson
b3b4923b11 Added properties dialog.
svn path=/trunk/; revision=3257
2002-07-18 18:18:12 +00:00
Robert Dickenson
53dd918713 Updated with cleanup of treeview module.
svn path=/trunk/; revision=3256
2002-07-18 18:16:42 +00:00
Eric Kohl
fb4e8713ea Added _purecall().
svn path=/trunk/; revision=3255
2002-07-18 18:15:09 +00:00
Eric Kohl
dbd109d357 Removed some obsolete definitions of __unit64.
Added a few missing newlines.

svn path=/trunk/; revision=3254
2002-07-18 18:12:59 +00:00
Eric Kohl
b0c64e3f9f Added IOCTL_DISK_SET_PARTITION_INFO.
Added checks for user induced errors.
Added basic shutdown/flush support.

svn path=/trunk/; revision=3253
2002-07-18 18:09:59 +00:00
Eric Kohl
3b8674494e Build and install beep and null driver.
svn path=/trunk/; revision=3252
2002-07-18 00:31:40 +00:00
Eric Kohl
99197ba099 Reported sector size must always be a power of 2.
svn path=/trunk/; revision=3251
2002-07-18 00:30:22 +00:00
Eric Kohl
fc1193592b Fixed access to non-existent device extension.
svn path=/trunk/; revision=3250
2002-07-18 00:29:19 +00:00
David Welch
2e467c56a3 Symbol loading working in kdb.
svn path=/trunk/; revision=3249
2002-07-18 00:25:31 +00:00
David Welch
90bd33d955 Print stack frames as densely as possible.
svn path=/trunk/; revision=3248
2002-07-17 23:11:37 +00:00
David Welch
d7c17b103d Updated .cvsignore file
svn path=/trunk/; revision=3247
2002-07-17 22:57:58 +00:00
David Welch
bbeb8dbe36 KDB stabs file.
svn path=/trunk/; revision=3246
2002-07-17 22:57:18 +00:00
David Welch
e646abc58c Fixed null pointer exceptions.
Removed private install script.
Moved stabs reading to a seperate file.
Added hooks for the kernel debugger.

svn path=/trunk/; revision=3245
2002-07-17 22:56:11 +00:00
David Welch
82ad78524a Remove crash testing code.
svn path=/trunk/; revision=3244
2002-07-17 21:28:37 +00:00
David Welch
9d6848e6ed Fixed some bugs.
svn path=/trunk/; revision=3243
2002-07-17 21:04:57 +00:00
Robert Dickenson
21214f6b8c Updated treeview and listview functionality.
svn path=/trunk/; revision=3242
2002-07-16 23:22:19 +00:00
Robert Dickenson
1ad1b97103 Updated treeview and listview functionality.
svn path=/trunk/; revision=3241
2002-07-16 22:18:29 +00:00
Robert Dickenson
74571d0428 Added save and restore of calculator mode using registry.
svn path=/trunk/; revision=3240
2002-07-16 21:54:17 +00:00
Robert Dickenson
8e12d121dc Added framework for new application - calc.
svn path=/trunk/; revision=3239
2002-07-16 19:15:12 +00:00
Steven Edwards
3c63d04d0d Fixed warning about missing include
svn path=/trunk/; revision=3238
2002-07-15 22:48:56 +00:00
Steven Edwards
83ed1ffe5f added hcalc target
svn path=/trunk/; revision=3237
2002-07-15 22:41:07 +00:00
Steven Edwards
9eb8af7e68 Added Makefile for hcalc calc replacement. Works.
svn path=/trunk/; revision=3236
2002-07-15 22:40:36 +00:00
Steven Edwards
7a09dc279a Fix no new line at end of file gcc 3.1 warrnings
svn path=/trunk/; revision=3235
2002-07-15 22:29:32 +00:00
Robert Dickenson
a4ae51d977 Minor mod.
svn path=/trunk/; revision=3234
2002-07-15 20:02:06 +00:00
Robert Dickenson
2f8748afe5 Updates with progress on calling standard dialogs, FileOpen, SelectFont and more...
svn path=/trunk/; revision=3233
2002-07-15 20:01:15 +00:00
Robert Dickenson
cc89fd7bba Updates with progress on TreeView, ChildWnd type and more...
svn path=/trunk/; revision=3232
2002-07-15 20:00:02 +00:00
Hartmut Birr
4f0371f4af Changed the ordering for allocating the inquiry buffer and zeroing the srb in ScsiPortInquire.
svn path=/trunk/; revision=3231
2002-07-15 18:25:17 +00:00
Eric Kohl
3886e2f66b Dump the first MFT cluster and some file attributes.
svn path=/trunk/; revision=3230
2002-07-15 15:37:33 +00:00
Steven Edwards
d34f38d43f Fix end of line warning for gcc 3.1
svn path=/trunk/; revision=3229
2002-07-15 11:26:07 +00:00
Steven Edwards
8ef0e02d6f Fix end of line warning
svn path=/trunk/; revision=3228
2002-07-15 11:11:17 +00:00
Steven Edwards
7e1f00545a Fix winebuild of regsvr32
svn path=/trunk/; revision=3227
2002-07-15 10:54:13 +00:00
Rex Jolliff
4177237053 a test
svn path=/trunk/; revision=3226
2002-07-15 05:24:27 +00:00
Steven Edwards
c979d633b1 Import of DJ Dalories hcalc window calculator
svn path=/trunk/; revision=3225
2002-07-15 04:55:44 +00:00
Robert Dickenson
1713f73a79 sync minor mod.
svn path=/trunk/; revision=3224
2002-07-14 22:38:37 +00:00
Brian Palmer
17731321a4 *** empty log message ***
svn path=/trunk/; revision=3223
2002-07-14 22:33:06 +00:00
Robert Dickenson
a0f2e6b8ca Split window control, listview and treeview moved to child window.
svn path=/trunk/; revision=3222
2002-07-14 21:03:10 +00:00
Robert Dickenson
dbbae605b7 Split window control, listview and treeview moved to child window.
svn path=/trunk/; revision=3221
2002-07-14 20:38:52 +00:00
Robert Dickenson
45552bacf0 Updated with minor modifications only.
svn path=/trunk/; revision=3220
2002-07-14 18:00:54 +00:00
Robert Dickenson
cf0bb98945 Updated with progress. Still far to go....
svn path=/trunk/; revision=3219
2002-07-14 17:59:36 +00:00
Steven Edwards
5705c99d2a Added touch to the makefile
svn path=/trunk/; revision=3218
2002-07-14 16:01:28 +00:00
Robert Dickenson
8919efa70d Removed obsolete cpp versions of files.
svn path=/trunk/; revision=3217
2002-07-14 15:22:53 +00:00
Hartmut Birr
0ff8db0de8 Close the files after loading.
svn path=/trunk/; revision=3216
2002-07-14 07:48:17 +00:00
Eugene Ingerman
a0e70e46a2 Added reference counting and deferred deletion for GDI objects.
svn path=/trunk/; revision=3215
2002-07-13 21:37:27 +00:00
Casper Hornstrup
e39975e5f1 Fix typo
svn path=/trunk/; revision=3214
2002-07-13 20:56:53 +00:00
Casper Hornstrup
66b0087b28 If symbols are available then pass them to the OS as multiboot modules
svn path=/trunk/; revision=3213
2002-07-13 12:55:07 +00:00
Casper Hornstrup
84b74a9cd9 2002-07-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* rules.mak (RSYM): Define.
	* include/ddk/zwtypes.h (DebugDbgLoadSymbols): Add to enum
	_DEBUG_CONTROL_CODE.
	* include/ntdll/ldr.h (LDR_SYMBOL_INFO, LdrpLoadUserModuleSymbols): Add.
	(LdrLoadModuleSymbols): Remove.
	* include/ntos/kdbgsyms.h (ST_FILENAME, ST_FUNCTION,
	ST_LINENUMBER): Add.
	(SYMBOL). Make Name an ANSI_STRING.
	(IMAGE_SYMBOL_INFO, AreSymbolsParsed): Add.
	* lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call
	LdrpLoadUserModuleSymbols() not LdrLoadModuleSymbols().
	* lib/ntdll/ldr/utils.c (LdrLoadModuleSymbols): Rename to
	LdrpLoadUserModuleSymbols.
	(LdrpLoadUserModuleSymbols): Use DebugDbgLoadSymbols debug control code.
	(LdrLoadDll): assert if out of memory.
	(LdrLoadDll): Call
	LdrpLoadUserModuleSymbols(), not LdrLoadModuleSymbols().
	* lib/ntdll/string/ctype.c (_pctype): #undef.
	* ntoskrnl/dbg/dbgctrl.c (NtSystemDebugControl): Call
	LdrLoadUserModuleSymbols on DebugDbgLoadSymbols.
	* ntoskrnl/include/internal/ldr.h (LdrGetAddressInformation): Add.
	* ntoskrnl/include/internal/module.h (MODULE_TEXT_SECTION): Make SymbolInfo
	an IMAGE_SYMBOL_INFO.
	* ntoskrnl/ke/i386/exp.c (LdrGetAddressInformation): Add prototype.
	(print_address): Change #ifdef KDBG to #ifdef DBG.
	(KiDoubleFaultHandler, KiDumpTrapFrame, KeDumpStackFrames): Dump
	one stack frame per line.
	* ntoskrnl/ke/i386/multiboot.S: Create pagetables for more kernel
	address space so larger modules can be passed from the boot loader.
	* ntoskrnl/ke/i386/usertrap.c (LdrGetAddressInformation): Add prototype.
	(print_user_address): Print symbols using LdrGetAddressInformation().
	* ntoskrnl/ldr/loader.c (SYMBOLFILE_HEADER, IMAGE_SYMBOL_INFO_CACHE,
	STAB_ENTRY, N_FUN, N_SLINE, N_SO, SymbolListHead): Add.
	(TAG_SYM_BUF): Remove.
	(LdrInitDebug): Remove unneeded code.
	(LdrInit1): Prepare for loading symbols.
	(LdrpReadLine, HexL, LdrpParseLine, LdrpLoadModuleSymbolsFromBuffer,
	LdrpLoadUserModuleSymbolsFromBuffer): Remove.
	(LdrpParseImageSymbols, LdrpGetFileName, LdrpGetFunctionName,
	LdrpGetLineNumber, LdrGetAddressInformation, LdrpLookupUserSymbolInfo): Add.
	(LdrpLoadModuleSymbols, LdrInitializeBootStartDriver): Change to use new
	symbol structures.
	(LdrLoadUserModuleSymbols): Cache symbol buffers.
	(LdrUnloadModuleSymbols): Implement.
	(LdrLoadModule, LdrUnloadModule): Change #ifdef KDBG to #ifdef DBG.
	(LdrPEProcessModule): Split a line into two lines.
	(LdrPEProcessModule): Setup for loading symbols.
	* ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Open with FILE_SHARE_READ.
	* ntoskrnl/ps/process.c (PiFreeSymbols): Call LdrUnloadModuleSymbols() to
	free symbols.
	(PiDeleteProcess): Change #ifdef KDBG to #ifdef DBG.
	* ntoskrnl/rtl/ctype.c (_pctype): #undef.
	* ntoskrnl/rtl/string.c (strncpy): Terminate destination string.
	* tools/Makefile (rsym): Add target.
	* tools/helper.mk: Include config and use -g if DBG = 1.

svn path=/trunk/; revision=3212
2002-07-13 12:44:09 +00:00
Casper Hornstrup
3e56065829 2002-07-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile (install_before): Install system.hiv to correct location.

svn path=/trunk/; revision=3211
2002-07-13 11:45:13 +00:00
Eric Kohl
684b660d77 Fixed a typo
svn path=/trunk/; revision=3210
2002-07-13 11:31:02 +00:00
Robert Dickenson
54a958627a Corrected makefiles for all tests and added new application GetSysMetrics.
svn path=/trunk/; revision=3209
2002-07-10 20:10:16 +00:00
Robert Dickenson
8c8c369504 Updated with changes due to file manager and registry editor work.
svn path=/trunk/; revision=3208
2002-07-10 18:41:10 +00:00
Robert Dickenson
0a8fa54c83 Updated with latest work. Still far to go...
svn path=/trunk/; revision=3207
2002-07-10 18:39:21 +00:00
Eric Kohl
aaf641d620 Implemented the ability to create suspended threads.
svn path=/trunk/; revision=3206
2002-07-10 15:17:35 +00:00
Eric Kohl
cae7cd6a6c Renamed some thread states.
svn path=/trunk/; revision=3205
2002-07-10 15:15:00 +00:00
Eric Kohl
2ecad3b855 ConnectNamedPipe(): STATUS_PIPE_CONNECTED reports a successful connect.
svn path=/trunk/; revision=3204
2002-07-10 15:09:57 +00:00
Robert Dickenson
4684f7fe0e cleanup
svn path=/trunk/; revision=3203
2002-07-09 21:47:54 +00:00
Robert Dickenson
c63a30db15 Fixed missing module in makefile.
svn path=/trunk/; revision=3202
2002-07-09 21:46:46 +00:00
Robert Dickenson
00bd48992d Added some options dialog procedures.
svn path=/trunk/; revision=3201
2002-07-09 21:40:02 +00:00
Robert Dickenson
b2afb794ec Added some resources.
svn path=/trunk/; revision=3200
2002-07-09 20:42:46 +00:00
Robert Dickenson
95e5b26b81 Added new template multiple document interface application.
svn path=/trunk/; revision=3199
2002-07-09 19:53:58 +00:00
Robert Dickenson
d28f38708e Removed obsolete files.
svn path=/trunk/; revision=3198
2002-07-09 19:49:08 +00:00
Robert Dickenson
131548b463 Committing latest progress, still much TODO:
svn path=/trunk/; revision=3197
2002-07-09 19:46:14 +00:00
Robert Dickenson
8fafe08ea7 Added network information utility, net\niclist.
svn path=/trunk/; revision=3196
2002-07-09 19:41:53 +00:00
Robert Dickenson
11d5861527 cleanup
svn path=/trunk/; revision=3195
2002-07-09 19:40:50 +00:00
Robert Dickenson
3f876808eb Created new network utility niclist for displaying list of packet capture devices.
svn path=/trunk/; revision=3194
2002-07-09 19:34:41 +00:00
Steven Edwards
51fbd50e50 More wine dlls/programs
svn path=/trunk/; revision=3193
2002-07-09 03:15:41 +00:00
Steven Edwards
6270465595 Updated for wine
svn path=/trunk/; revision=3192
2002-07-08 12:35:50 +00:00
Steven Edwards
500bd3f56c Fixed typo
svn path=/trunk/; revision=3191
2002-07-08 07:19:38 +00:00
Steven Edwards
f562ef75b8 Fixed more of wine
svn path=/trunk/; revision=3190
2002-07-07 20:03:52 +00:00
Robert Dickenson
ee5be2916e Added entry for new coder.
svn path=/trunk/; revision=3189
2002-07-07 19:47:04 +00:00
Steven Edwards
8c8444aecb Removed by mistake
svn path=/trunk/; revision=3188
2002-07-07 10:44:03 +00:00
Steven Edwards
cb2bfa2afb Syncing of WINE dlls
svn path=/trunk/; revision=3187
2002-07-06 22:36:44 +00:00
Eric Kohl
5e114ab271 Revert last patch.
svn path=/trunk/; revision=3186
2002-07-06 17:38:06 +00:00
Steven Edwards
8fc03ec0f6 Remove wine's rpcrt for the list of targets
svn path=/trunk/; revision=3185
2002-07-06 10:39:18 +00:00
Steven Edwards
3c971f2b7b new config.h
svn path=/trunk/; revision=3184
2002-07-06 10:08:29 +00:00
Robert Dickenson
050dbf13f5 Updated with progress work.
svn path=/trunk/; revision=3182
2002-07-06 02:44:16 +00:00
Eric Kohl
8e101e71d4 Added the ability to expand embedded environment variables to RtlExpandEnvironmentVariable().
svn path=/trunk/; revision=3181
2002-07-05 17:23:05 +00:00
David Welch
54ab6db1c4 Added some missing files.
svn path=/trunk/; revision=3180
2002-07-04 20:12:28 +00:00
David Welch
3c453d5dc1 2002-07-04 David Welch <welch@computer2.darkstar.org>
* subsys/win32k/include/callback.h: Fixed callback argument
	definitions.
	* subsys/win32k/ntuser/winpos.c: Implemented some more of the windows
	sizing/moving code.
	* subsys/win32k/ntuser/painting.c: Implemented some more of the
	window painting code.
	* subsys/win32k/objects/coord.c: Implemented LPtoDP and DPtoLP.
	* subsys/win32k/objects/region.c: Added stubs for some more
	region functions.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the
	process desktop handle as well.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/se/token.c: Don't call the ZwXXX variant of
	system calls when in system context.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/Makefile: Added file with MDA output code.
	* ntoskrnl/kd/kdebug.c: Recognize MDA as a destination for
	debug output.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* lib/user32/windows/defwnd.c: Implemented some more of the
	default window handler.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* lib/user32/misc/stubs.c: Removed some stubs to seperate files.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* lib/user32/user32.def: Export ScreenToClient otherwise we
	get problems when code in user32 tries to call it.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/win32k/region.h: Added prototypes for some missing
	region functions.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/win32k/ntuser.h: Added prototypes for some missing
	NtUserXXX functions.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/user32/wininternal.h: Added some constants for
	private GetDCEx styles that WINE needs.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/user32/callback.h: Fixed callbacks for messages with
	parameters.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/napi/win32.h (W32THREAD): Added pointer to the
	thread's desktop.
	* include/napi/win32.h (W32PROCESS): Removed handle table,
	added a pointer to the process's window station.
	* subsys/win32k/ntuser/guicheck.c (W32kGuiCheck): Reference
	a process's window station on the first win32k system call. Reference
	a thread's desktop on the first win32k system call.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/messages.h: Added some missing WM_XXX constants.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* drivers/dd/ide/makefile: Compiling with debugging messages
	needs libgcc to be linked in.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* iface/addsys/genw32k.c: Generate a variable with the
	number of system calls.
	* iface/native/genntdll.c: Generate a proper stack frame for
	the user system call stubs.
	* ntoskrnl/ke/i386/syscall.S: Generate a proper stack frame for
	the handler for system calls.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* Makefile: Build the GUI startup application.
	* subsys/system/gstart/gstart.c: Application to start up
	the GUI.

svn path=/trunk/; revision=3179
2002-07-04 19:56:38 +00:00
Steven Edwards
9033534bb4 Fix Wine Resource Compiler Path
svn path=/trunk/; revision=3178
2002-07-04 18:16:42 +00:00
Robert Dickenson
d5251a1991 Fixed incorrect order of resource strings to identifiers.
svn path=/trunk/; revision=3177
2002-07-03 19:33:40 +00:00
Robert Dickenson
157460c518 New File Manager application - winfile.
svn path=/trunk/; revision=3176
2002-07-03 19:32:52 +00:00
Robert Dickenson
bfab1ffb07 Added entries for regedit, regedt32 and taskmgr.
svn path=/trunk/; revision=3175
2002-07-03 18:13:30 +00:00
Robert Dickenson
2c0cbaa9e2 Cleanup after first check-in.
svn path=/trunk/; revision=3174
2002-07-03 18:12:53 +00:00
Robert Dickenson
7fe69e5501 Cleanup after extracting regedit code.
svn path=/trunk/; revision=3173
2002-07-03 18:11:49 +00:00
Robert Dickenson
dc8c16d0fc Created new application - regedit.
svn path=/trunk/; revision=3172
2002-07-03 17:52:20 +00:00
Robert Dickenson
a13ca47ccb Minor updates, added status bar support from TaskMgr.
svn path=/trunk/; revision=3171
2002-07-02 17:37:20 +00:00
Robert Dickenson
06560b36fd Started ReactOS regedt32 application. Mainframe, menus and makefile only.
svn path=/trunk/; revision=3170
2002-07-02 16:57:56 +00:00
Robert Dickenson
bdbc30455a Fixes to performance page resizing and font.bmp updated.
svn path=/trunk/; revision=3169
2002-07-02 15:43:04 +00:00
Brian Palmer
4b42b078ed Recommitting files as binary.
svn path=/trunk/; revision=3168
2002-07-02 04:16:12 +00:00
Brian Palmer
6de3925ad4 Removed corrupt binary files that were added as text files.
svn path=/trunk/; revision=3167
2002-07-02 04:13:43 +00:00
Robert Dickenson
aea5d54245 Fixed font bitmap and minor window placement mods.
svn path=/trunk/; revision=3166
2002-06-30 14:52:10 +00:00
Eugene Ingerman
994b70bb48 Video mode switching when entering pice shell.
svn path=/trunk/; revision=3165
2002-06-30 02:45:44 +00:00
Eugene Ingerman
d01d6a21a7 Ignore v86 faults (for now).
svn path=/trunk/; revision=3164
2002-06-30 02:41:29 +00:00
Eugene Ingerman
a6b20c5fda Added NFLAGS when calling nasm.
svn path=/trunk/; revision=3163
2002-06-30 02:40:24 +00:00
Robert Dickenson
7ec506fe21 no message
svn path=/trunk/; revision=3162
2002-06-29 20:14:26 +00:00
Robert Dickenson
d08fc97f99 Some work on resizing performance page.
svn path=/trunk/; revision=3161
2002-06-29 20:01:17 +00:00
Robert Dickenson
b7d141eefe Added macro for passing RCFLAGS to resource compiler.
svn path=/trunk/; revision=3160
2002-06-29 18:21:00 +00:00
Robert Dickenson
51036c7f74 Updated for building with GCC.
Added graphcntrl for performance page.
Various fixes and additions.

svn path=/trunk/; revision=3159
2002-06-29 18:13:03 +00:00
Brian Palmer
7fc762dac1 Changes in v1.4 (6/27/2002)
- Added separate configuration for a SETUPLDR version

svn path=/trunk/; revision=3158
2002-06-28 00:50:16 +00:00
Eric Kohl
1f6b602dc5 Added check for loaded module prior to loading it.
svn path=/trunk/; revision=3157
2002-06-27 17:52:32 +00:00
Eric Kohl
5b7f97ebf6 Stop the system if SystemRoot cannot be created or is not accessible.
svn path=/trunk/; revision=3156
2002-06-27 17:47:55 +00:00
Eric Kohl
32dfc1175f Set missing OBJ_OPENLINK attribute in IoDeleteSymbolicLinkObject().
svn path=/trunk/; revision=3155
2002-06-27 17:46:53 +00:00
Eric Kohl
1020b229fe Fixed SystemRoot accessibility check.
svn path=/trunk/; revision=3154
2002-06-27 17:45:45 +00:00
Brian Palmer
c2f51ccadd Makefile now generates a sorted symbol file - freeldr.sym
svn path=/trunk/; revision=3153
2002-06-26 22:44:07 +00:00
Brian Palmer
3d14932152 Fixed Makefile so it will work when you do a clean checkout and the tools aren't already built.
svn path=/trunk/; revision=3152
2002-06-26 22:32:43 +00:00
Hartmut Birr
ccf3e5b082 Fixed a typo.
svn path=/trunk/; revision=3151
2002-06-26 18:39:50 +00:00
Hartmut Birr
402fdf5780 Fixed some calculatations in ObmpGetObjectHandle.
svn path=/trunk/; revision=3150
2002-06-26 18:38:24 +00:00
Hartmut Birr
317666175c Added PCM_PARTIAL_RESOURCE_LIST.
svn path=/trunk/; revision=3149
2002-06-26 18:37:36 +00:00
Hartmut Birr
518b1b7a13 Changed the sector size from BLOCKSIZE to the size from the boot sector.
svn path=/trunk/; revision=3148
2002-06-26 18:36:41 +00:00
Eric Kohl
40fe11fc2b Added 'Multi UNC Provider' driver stub.
Added NTFS driver stub.

svn path=/trunk/; revision=3147
2002-06-25 22:25:17 +00:00
Eric Kohl
24c84ca4b7 Added NTFS driver stub.
svn path=/trunk/; revision=3146
2002-06-25 22:23:06 +00:00
Eric Kohl
ef401a1081 Added 'Multi UNC Provider' driver stub.
svn path=/trunk/; revision=3145
2002-06-25 22:21:41 +00:00
Eric Kohl
0892a6b53a Added eventlog service stub.
Added rpc server stub.

svn path=/trunk/; revision=3144
2002-06-25 21:14:26 +00:00
Eric Kohl
b7bc22228a Added rpc server stub.
svn path=/trunk/; revision=3143
2002-06-25 21:11:11 +00:00
Eric Kohl
5190929b04 Added eventlog service stub.
svn path=/trunk/; revision=3142
2002-06-25 21:10:14 +00:00
Eric Kohl
e8b989193d Implemented CallNamedPipeW() and TransactNamedPipe().
svn path=/trunk/; revision=3141
2002-06-25 18:49:38 +00:00
David Welch
409ca20cca One case only please.
svn path=/trunk/; revision=3138
2002-06-22 11:59:46 +00:00
Robert Dickenson
8a68c12c32 Updated with latest changes for including new net modules.
svn path=/trunk/; revision=3136
2002-06-21 21:05:32 +00:00
Robert Dickenson
ea7f10019b Added required definitions for the packet driver to build.
svn path=/trunk/; revision=3135
2002-06-21 20:40:51 +00:00
Eugene Ingerman
1c6674aa68 Fixed typo/bug in W32kCallWindowProc.
svn path=/trunk/; revision=3134
2002-06-21 04:14:07 +00:00
Eric Kohl
5bba28324f Fixed a long-standing hack to open symbolic link objects.
svn path=/trunk/; revision=3133
2002-06-20 21:31:39 +00:00
Eric Kohl
27a682e098 Fixed severe bugs in the default value handling of RegSetValue() and RegQueryValue().
Implemented simple registry links.
Added creation of the CurrentControlSet link.

svn path=/trunk/; revision=3132
2002-06-20 16:31:59 +00:00
Eugene Ingerman
669dabbc82 Updated PICE to work with recent kernel changes. Changed kernel module handling.
svn path=/trunk/; revision=3131
2002-06-20 04:46:11 +00:00
Eric Kohl
79d575aef4 Implemented registry links (REG_LINK).
Create the 'CurrentControlSet' link after the registry has been initialized.

svn path=/trunk/; revision=3130
2002-06-19 22:32:47 +00:00
Eric Kohl
5c4728ed0a Added registry link tests.
svn path=/trunk/; revision=3129
2002-06-19 22:27:43 +00:00
Robert Dickenson
a493f4baea Added new library packet.dll
svn path=/trunk/; revision=3128
2002-06-19 15:50:29 +00:00
Robert Dickenson
0f848a3fd1 Added packet.sys to target list.
svn path=/trunk/; revision=3127
2002-06-19 15:46:32 +00:00
Robert Dickenson
2ce7a61b0b Fixed invalid paths. Added packet to target list.
svn path=/trunk/; revision=3126
2002-06-19 15:45:48 +00:00
Robert Dickenson
d45d540c92 Added new exports
svn path=/trunk/; revision=3125
2002-06-19 15:44:47 +00:00
Robert Dickenson
b61d3e84c2 Added new driver 'packet', ported from the Windows Packet Capture Driver project.
svn path=/trunk/; revision=3124
2002-06-19 15:43:15 +00:00
Robert Dickenson
d8141822e2 Added .cvsingore file.
svn path=/trunk/; revision=3123
2002-06-19 06:38:03 +00:00
Robert Dickenson
c2b9c68cbf Created new module for wshirda.dll
svn path=/trunk/; revision=3122
2002-06-19 06:26:11 +00:00
KJK::Hyperion
2d2ac84025 PSAPI meta-source files moved in the standard location
svn path=/trunk/; revision=3121
2002-06-18 22:36:43 +00:00
KJK::Hyperion
1a9ed68d15 PSAPI initial commit
svn path=/trunk/; revision=3120
2002-06-18 22:16:53 +00:00
David Welch
77a2974988 Moved win32 callback support into a new file.
svn path=/trunk/; revision=3119
2002-06-18 22:03:48 +00:00
David Welch
5f997bca7b 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* tools/helper.mk: Make an import library a proper target
	depending on the .def file.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* subsys/win32k/ntuser/window.c (NtUserGetWindowLong): Began
	implementation.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* subsys/win32k/misc/object.c (ObmCreateHandle): Return the
	correct handle value.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* subsys/win32k/makefile: Make win32k depend on the file containing
	the service table.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/ke/i386/stkswitch.S (KeSwitchStackAndRet,
	KePushAndStackSwitchAndSysRet): Push one value only.
	* ntoskrnl/ps/w32call.c (NtCallbackReturn, NtW32Call): Moved
	these functions to a new file. Restore the old trap frame after
	returning from a callback.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* lib/user32/windows/message.c (CallWindowProcA, CallWindowProcW):
	Convert message to Unicode or ASCII if necessary.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* include/user32/callback.h: Added WM_CREATE and WM_NCCALCSIZE
	callbacks.
	* lib/user32/windows/window.c (User32SendCREATEMessageForKernel,
	User32SendNCCREATEMessageForKernel): Implemented.
	* subsys/win32k/ntuser/callback.c (W32kSendCREATEMessage):
	Implemented.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* include/structs.h: Added Unicode and ASCII versions of
	CREATESTRUCT.

svn path=/trunk/; revision=3118
2002-06-18 21:51:11 +00:00
Brian Palmer
3acd677b53 Fixed GetBiosMemoryMap() function.
svn path=/trunk/; revision=3117
2002-06-18 21:40:27 +00:00
Eric Kohl
9fb8f57561 IoDestroyDriverList(): Free memory of group and service entries.
IopCreateServiceListEntry(): simplified function and reduced memory consumption.

svn path=/trunk/; revision=3116
2002-06-18 07:11:44 +00:00
Eric Kohl
b29a9b85b9 RtlQueryRegistryValues() must treat REG_MULTI_SZ and REG_EXPAND_SZ values like REG_SZ values upon direct queries.
svn path=/trunk/; revision=3115
2002-06-18 07:07:42 +00:00
joeg
57c8a1c6e3 apps/tests/tokentest.c
* Fix stupidity that prevented tokentest
  from compiling

svn path=/trunk/; revision=3114
2002-06-17 23:13:35 +00:00
joeg
941ae04aa2 ntoskrnl/ps/process.c
* Call SepCreateSystemProcessToken() when creating the
  initial system process.  Cleanup the token during
  in PiDeleteProcess().

* Call SepInitializeNewProcess() during NtCreateProcess
  to copy the parent processes token to the new process.

ntoskrnl/include/internal/se.h
ntoskrnl/se/token.c

* Change name of SepDuplicationToken() [which was unimplemented]
  to SepDuplicateToken().  Implement it.

* Implement new functions (which are used by process.c)
  SepInitializeNewProcess() and SepCreateSystemToken().

* Correctly (I think) set Token->ImpersonationLevel in
  NtCreateToken().

apps/tests/tokentest/tokentest.c

* Dump the current processes token.

svn path=/trunk/; revision=3113
2002-06-17 22:52:32 +00:00
joeg
0f1c17eda0 ntoskrnl/ke/main.c
* Move SeInit2() to before we initialize process
  management so we can create an initial system
  token to go with the initial system process.

ntoskrnl/ps/process.c
* Implement NtOpenProcessToken() by calling
  _NtOpenProcessToken() -- why do we have
  both of these?

* Fix bug in _NtOpenProcessToken() that
  caused us to crash creating the token
  handle.

* Return STATUS_INVALID_INFO_CLASS from
  NtQueryInformationProcess() and
  NtSetInformationProcess() for information classes
  documented as unqueryable or unsettable
  by Gary Nebbet in his book "Native API Reference".

* Fix bug in NtSetInformationProcess() where it
  assigns the primary token -- it derefeneced the
  old token if SeExchangePrimaryToken() failed;
  it should have derferenced it if it succeeded.

svn path=/trunk/; revision=3112
2002-06-17 22:16:34 +00:00
Robert Dickenson
eebe5809fd Created new empty module for buiding ws2help.dll
Yet to define parameters and return values for all exports.

svn path=/trunk/; revision=3111
2002-06-17 19:33:45 +00:00
Eric Kohl
81a07ed6a6 Improved driver loading sequence with respect to the group order.
Added ability to run user-mode services.

svn path=/trunk/; revision=3110
2002-06-17 15:47:32 +00:00
Eric Kohl
1b52f5ff18 Implemented direct query of REG_EXPAND_SZ values.
svn path=/trunk/; revision=3109
2002-06-17 15:42:30 +00:00
Steven Edwards
df3c5b992e added simple tcp server test
svn path=/trunk/; revision=3108
2002-06-17 06:01:17 +00:00
David Welch
279f0b0ed5 2002-06-16 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* tools/help.mk: Make the install target depend on all the
	files to be installed.

2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/ps/thread.c (NtCallbackReturn): Set TSS.Esp0 to the
	top of the old stack.
	* ntoskrnl/ps/thread.c (NtW32Call): Set TSS.Esp0 to the top of
	the new stack. Free the callback stack correctly. Don't copy
	portion of the trap frame that doesn't exist in non-v86-mode
	interrupts.
	* ntoskrnl/ps/thread.c (PsFreeCallbackStack): New function to
	free a stack allocated with PsAllocateCallbackStack.

2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* drivers/dd/null/makefile: Commented out local LDFLAGS as
	these cause bad relocations in the stripped image.

2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* config: Corrected spelling error.

svn path=/trunk/; revision=3107
2002-06-16 21:41:16 +00:00
Jason Filby
78f1caa4a9 NtW32Call: replace sizeof(KTRAP_FRAME) with 124 bytes
svn path=/trunk/; revision=3106
2002-06-16 20:52:07 +00:00
Eric Kohl
e6b5136b65 Fixed wrong interpretation of value cell size in NtSetValueKey().
svn path=/trunk/; revision=3105
2002-06-16 20:00:34 +00:00
Casper Hornstrup
7c5d3bb9ef Revert last change
svn path=/trunk/; revision=3104
2002-06-16 17:25:58 +00:00
Casper Hornstrup
1a1942d5c0 Avoid importing _pctype when using mingw-runtime 2.0.
svn path=/trunk/; revision=3103
2002-06-16 16:27:22 +00:00
Eric Kohl
d783d4d686 Fixed loading of symbol files.
Implemented automatic loading of PICE.

svn path=/trunk/; revision=3102
2002-06-16 11:45:06 +00:00
Steven Edwards
56deabe577 Updated Makefile to fix building
svn path=/trunk/; revision=3101
2002-06-16 06:05:28 +00:00
Steven Edwards
a8b847f532 Fixed include path in ramdriver
svn path=/trunk/; revision=3100
2002-06-16 06:02:17 +00:00
Steven Edwards
4d831f2242 Fixed building of Serial Mouse driver (still broken)
svn path=/trunk/; revision=3099
2002-06-16 04:47:56 +00:00
Eric Kohl
7c25d62093 Changed calling convention of EngXxx funtions to STDCALL.
Added missing includes.

svn path=/trunk/; revision=3096
2002-06-15 21:44:08 +00:00
Eric Kohl
37c39cc09a Changed the calling convention used by the video miniport/port driver interface and the display driver/win32k interface (DrvXxx functions) to STDCALL.
The EngXxx and other funtions will be changed in a second step.

svn path=/trunk/; revision=3095
2002-06-15 14:58:25 +00:00
Hartmut Birr
8dd702a72b Fixed saving of esp in KePushAndStackSwitchAndSysRet.
svn path=/trunk/; revision=3094
2002-06-15 14:57:29 +00:00
Jason Filby
97970adc7d Fixed missing initialization in PsAllocateCallback
svn path=/trunk/; revision=3093
2002-06-15 11:27:28 +00:00
Eric Kohl
5e1123c888 Cleanup, add display of token values being passed into ZwCreateToken() as well as display of values coming out of the token.
(Patch by Joseph Galbraith)

svn path=/trunk/; revision=3092
2002-06-15 10:13:35 +00:00
Eric Kohl
6017a8515d Enable %wZ and %Z format specifiers (remove #if 0).
Fix check for NULL Buffer (it was checking for non-null Buffer).
Fix length field when printing unicode strings; it was printing twice as many characters as it should have.
(Patch by Joseph Galbraith)

svn path=/trunk/; revision=3091
2002-06-15 10:12:43 +00:00
Eric Kohl
165c6d209a Fix bug in RtlEqualSid() that caused all sids with the same sub-authority count to compare equal.
Teach RtlpAddKnownAce() some status values other than STATUS_UNSUCCESSFUL.
(Patch by Joseph Galbraith)

svn path=/trunk/; revision=3090
2002-06-15 10:10:43 +00:00
Eric Kohl
fd874ecc14 Fix bug in RtlpAddKnownAce() that caused it to place the SID in the wrong location.
Teach RtlpAddKnownAce() some status values other than STATUS_UNSUCCESSFUL.
(Patch by Joseph Galbraith)

svn path=/trunk/; revision=3089
2002-06-15 10:09:17 +00:00
Jason Filby
b6b3e3f14e Bugfix: correct memory allocation calculation
svn path=/trunk/; revision=3088
2002-06-14 20:56:17 +00:00
Jason Filby
b592122ee6 Fixed another typo
svn path=/trunk/; revision=3087
2002-06-14 19:07:32 +00:00
Jason Filby
0a5b749896 Fixed some typos
svn path=/trunk/; revision=3086
2002-06-14 18:55:09 +00:00
Casper Hornstrup
5b804e36db Don't install static libraries.
svn path=/trunk/; revision=3085
2002-06-14 17:17:38 +00:00
Jason Filby
a0c16e128a GuiCheck for NtUserRegisterClassExWOW
svn path=/trunk/; revision=3081
2002-06-14 15:21:43 +00:00
Eric Kohl
260116f684 Fixed direct reference to a driver object.
svn path=/trunk/; revision=3080
2002-06-14 14:24:28 +00:00
Eric Kohl
01b92c6de5 Pass pointer to CSRSS process on first create request.
svn path=/trunk/; revision=3079
2002-06-14 14:23:14 +00:00
Eric Kohl
69c0982e64 Added vga driver
svn path=/trunk/; revision=3078
2002-06-14 14:19:28 +00:00
Casper Hornstrup
7e27a9348f Delete dependency files on clean
svn path=/trunk/; revision=3077
2002-06-14 13:20:08 +00:00
Casper Hornstrup
49051a245f Use standard mingw32 prefix on linux.
svn path=/trunk/; revision=3076
2002-06-14 13:04:18 +00:00
Casper Hornstrup
8d0ecd86c9 Make clean rule depend on tools rule
svn path=/trunk/; revision=3075
2002-06-14 11:06:03 +00:00
Eric Kohl
503826a739 Fixed automatic loading of required modules.
Cleaned up module loading interface.

svn path=/trunk/; revision=3074
2002-06-14 07:49:58 +00:00
David Welch
fd2a5c35a4 Split up some stubs into their own files.
svn path=/trunk/; revision=3068
2002-06-13 20:36:40 +00:00
Hartmut Birr
e019c02170 Reseting the conversion qualifier for each new value from the format string.
svn path=/trunk/; revision=3063
2002-06-13 16:45:02 +00:00
Eric Kohl
e2822009d7 Fixed driver unloading upon failing initialization.
svn path=/trunk/; revision=3062
2002-06-13 15:14:28 +00:00
Brian Palmer
63ea3fb94c Cross-platform tools added to Makefiles.
svn path=/trunk/; revision=3061
2002-06-13 00:39:49 +00:00
Eric Kohl
6ab0a870c1 Updated the system hive and the boot driver list.
svn path=/trunk/; revision=3060
2002-06-12 23:38:28 +00:00
Eric Kohl
6f7c3842bc Now ZwLoadDriver() uses the registry path instead of a file name to load a driver.
svn path=/trunk/; revision=3059
2002-06-12 23:35:55 +00:00
Eric Kohl
9d3870ce78 Cleaned up the driver loading routines.
svn path=/trunk/; revision=3058
2002-06-12 23:33:15 +00:00
Eric Kohl
2137580260 Use the registry to load system start drivers.
svn path=/trunk/; revision=3057
2002-06-12 23:30:36 +00:00
Eric Kohl
0f47c75c9a Use NtSetSystemInformation() to load win32k.sys because it is not a driver but a kernel extension.
svn path=/trunk/; revision=3056
2002-06-12 23:26:56 +00:00
Eric Kohl
c16bc4c28d RtlpGetRegistryHandle(): Don't remove a leading backslash if an absolute registry path is used.
svn path=/trunk/; revision=3055
2002-06-12 23:24:19 +00:00
Casper Hornstrup
debb46b5c3 BugCheck if no boot drivers are passed to ntoskrnl.exe
svn path=/trunk/; revision=3054
2002-06-12 14:06:29 +00:00
Casper Hornstrup
a07b0d8b8e * Call RtlCreateUnicodeString() instead of RtlInitUnicodeString() when
initializing the DeviceNode->ServiceName, since IopFreeDeviceNode()
  will use RtlFreeUnicodeString() on it.

* Call ObDereferenceObject() instead of ExFreePool() to release the
  DeviceObject if DriverEntry fails.
  Patch from Joseph Galbraith.

svn path=/trunk/; revision=3053
2002-06-12 14:05:03 +00:00
Rex Jolliff
72a2cedd0a another test of commit mailer
svn path=/trunk/; revision=3052
2002-06-12 02:32:14 +00:00
Rex Jolliff
c2c993d6bb a test of commit mailer
svn path=/trunk/; revision=3051
2002-06-12 01:59:50 +00:00
David Welch
05ad1d3198 2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* subsys/system/winlogon/winlogon.c (WinMain): Check for
	failure when creating a window system.

2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/ob/handle.c (ObDuplicateObject): Added this internal
	function for duplicating objects.
	* ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the parent
	process's window station to the child process.
	* ntoskrnl/ps/process.c (PsInitProcessManagement): Initialize the
	first process's window station.

2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/mm/marea.c (MmCreateMemoryArea): Initialise
	page operation structure members.
	* ntoskrnl/mm/pageop.c (MmReleasePageOp, MmGetPageOp): Increment
	or decrement the page operation count in the memory area.
	* ntoskrnl/mm/virtual.c (MmNotPresentFaultVirtualMemory,
	MmPageOutVirtualMemory): Check for a deleted memory area before
	handling the fault.
	* ntoskrnl/mm/virtual.c (MmFreeVirtualMemory): Wait for all
	page operations to finish before freeing the memory area.

2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/ke/i386/syscall.S (interrupt_handler2e): Corrected
	test for previous mode, upper 16-bit of CS on the stack after an
	interrupt are arbitary.

2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* lib/user32/misc/winsta.c: Cleaned up indentation.

2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* apps/tests/winhello/winhello.c (WinMain, MainWndProc):
	Cleaned up formatting, some more error checks.

2002-06-04  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/mm/virtual.c (MmSecureVirtualMemory,
	MmUnsecureVirtualMemory, NtQueryVirtualMemory): Corrected indentation.

svn path=/trunk/; revision=3050
2002-06-11 22:09:03 +00:00
Casper Hornstrup
669a991546 Add multi and expand registry key type support.
svn path=/trunk/; revision=3049
2002-06-11 20:10:36 +00:00
Eric Kohl
30a776c6e9 Fixed LdrpCompareModuleNames() to accept fully qualified path names too.
svn path=/trunk/; revision=3048
2002-06-11 18:37:23 +00:00
Brian Palmer
a89e08d368 Caches the current FAT sector so it doesn't read again if it doesn't have to.
svn path=/trunk/; revision=3047
2002-06-11 16:58:31 +00:00
Casper Hornstrup
65ae3074e9 Kill warnings.\n Use DbgPrint for debugging registry.
svn path=/trunk/; revision=3046
2002-06-11 16:23:20 +00:00
Brian Palmer
8bab1a8f2d Optimized FAT32 bootsector to read more than 1 sector at a time on systems supporting LBA calls.
svn path=/trunk/; revision=3045
2002-06-11 05:41:45 +00:00
Eric Kohl
6ac81e7954 Changed data structure which represents driver objects from MODULE_OBJECT to DRIVER_OBJECT.
Now a DriverEntry's RegistryPath string is usable automagically.

svn path=/trunk/; revision=3044
2002-06-10 23:04:48 +00:00
Hartmut Birr
0ddc3e2715 Reference/Dereference the process object in PiTerminateProcess.
svn path=/trunk/; revision=3043
2002-06-10 21:37:45 +00:00
Hartmut Birr
0dbc90e4e0 Unmap the pages first and than remove the entries from the allocation map in MmUnmapLockedPages.
svn path=/trunk/; revision=3042
2002-06-10 21:36:31 +00:00
Hartmut Birr
16068960f0 Replaced all calls to MmDereferencePage with MmReleasePageMemoryConsumer.
Added handling for multiple referenced pages in MmReleasePageMemoryConsumer.

svn path=/trunk/; revision=3041
2002-06-10 21:34:38 +00:00
Hartmut Birr
a64eec7e49 Added flushing of file streams.
svn path=/trunk/; revision=3040
2002-06-10 21:28:36 +00:00
Hartmut Birr
495dfc660f Rewrote fread/fwrite for a better/faster handling of reads/writes requests.
svn path=/trunk/; revision=3039
2002-06-10 21:26:36 +00:00
Hartmut Birr
9ac5422074 Fixed ftell for streams which are opened for reading and writing.
svn path=/trunk/; revision=3038
2002-06-10 21:23:34 +00:00
Hartmut Birr
f0cb69cade Fixed fflush for non dirty file streams.
svn path=/trunk/; revision=3037
2002-06-10 21:21:06 +00:00
Hartmut Birr
b971a7adc6 Fixed a minor bug in updEntry.
svn path=/trunk/; revision=3036
2002-06-10 21:19:18 +00:00
Hartmut Birr
f3e094f2f0 Updating the directory entries in VfatWrite only, if the allocation size has changed.
Added zeroing for files, if the write starts after the current end of the file.

svn path=/trunk/; revision=3035
2002-06-10 21:17:57 +00:00
Hartmut Birr
20a4914b89 Added updating of directory entries in VfatCleanupFile/VfatCloseFile.
svn path=/trunk/; revision=3034
2002-06-10 21:15:58 +00:00
Hartmut Birr
87e32585f2 Fixed a minor bug in CcSetFileSizes.
svn path=/trunk/; revision=3033
2002-06-10 21:13:26 +00:00
Hartmut Birr
8393c73b3b Implemented CcZeroData.
svn path=/trunk/; revision=3032
2002-06-10 21:11:56 +00:00
Eric Kohl
c4d4559cce Moved io/drvlck.c to mm.
Minimize access to the module object via the object manager.
Use module list for internal module management.
Protect module list with a spinlock.

svn path=/trunk/; revision=3031
2002-06-10 08:50:55 +00:00
Eric Kohl
c9e12ce035 Handle multi-string group order list properly.
svn path=/trunk/; revision=3030
2002-06-09 13:28:49 +00:00
Emanuele Aliberti
10514a1fd8 PSXSS: It seems the renamed csrterm did not get in the repository.
PSXSS: I try again.

svn path=/trunk/; revision=3029
2002-06-09 08:37:07 +00:00
Brian Palmer
662162a601 Fixed bug that was preventing FreeLoader from booting on FAT32 systems.
svn path=/trunk/; revision=3028
2002-06-09 00:03:58 +00:00
Brian Palmer
20327bf11a Changes in v1.3.1 (6/8/2002)
- Implemented MmAllocateMemoryAtAddress()
- Fixed Linux boot code to go through the memory manager to allocate memory at 1MB

svn path=/trunk/; revision=3027
2002-06-08 19:20:01 +00:00
Emanuele Aliberti
6eab84796a Mostly path fixing after new modules layout is in effect.
I renamed the terminal emulator CSRTERM: now it is named POSIXW32,
because it is a a door to reach the POSIX+ subsystem FROM the Win32
subsystem.

svn path=/trunk/; revision=3026
2002-06-08 16:28:05 +00:00
Eric Kohl
bb14287865 - Implement NtCreateToken()
- Implement RtlGetAce()
- Fix bug which cause RtlCreateAcl() to always fail.
- Cleanup parameter names and fix bug that caused a buffer overrun in RtlCopySidAndAttributesArray()
- When referencing the token object in NtQueryInformationToken() pass in either TOKEN_QUERY access or TOKEN_QUERY_SOURCE access. Passing in zero led to ObReferenceObjectByHandle() always failing with ACCESS_DENIED.
- Fixed NtQueryInformationToken() to check the buffer length and return STATUS_BUFFER_TO_SMALL and the required length.
- Ensure that the ReturnLength is set correctly when NtQueryInformationToken() succeeds. Previously, it was set to the number of bytes unused in the user buffer in some cases or not set at all.
- Handle case of NULL default dacl correctly in NtQueryInformationToken()
- Update main makefile to build apps\utils.
- Update makefiles in apps\utils to have the correct PATH_TO_TOP.
- Update main makefile to build apps\tests\tokentest

Written by Joseph Galbraith.

svn path=/trunk/; revision=3024
2002-06-07 23:00:20 +00:00
Eric Kohl
33cc33c731 Let services.exe load the auto-start drivers.
svn path=/trunk/; revision=3023
2002-06-07 20:11:03 +00:00
Hartmut Birr
e1a2eb2f0b Fixed the return value in GetFileSize.
svn path=/trunk/; revision=3022
2002-06-07 16:54:04 +00:00
Hartmut Birr
23ed00e90e Fixed the allocation size for the fat in VfatMount.
svn path=/trunk/; revision=3021
2002-06-07 16:53:18 +00:00
Eugene Ingerman
9910fb19ec Updated paths after directory was moved.
svn path=/trunk/; revision=3020
2002-06-07 05:35:04 +00:00
Eric Kohl
421ce5c9dc Fixed broken handling of SCSI port capabilities.
svn path=/trunk/; revision=3019
2002-06-06 23:20:08 +00:00
Brian Palmer
0bb513eddf Makefile fixes
svn path=/trunk/; revision=3018
2002-06-06 21:33:13 +00:00
Jason Filby
aa8aca9ec4 Don't define CC in makefile
svn path=/trunk/; revision=3017
2002-06-06 20:36:52 +00:00
Eric Kohl
6a97fcb4f7 Added full short name (8.3 name) support.
svn path=/trunk/; revision=3016
2002-06-06 19:01:04 +00:00
Eric Kohl
cf6fb9b64c Fixed another silly bug.
svn path=/trunk/; revision=3015
2002-06-06 18:59:50 +00:00
Jason Filby
51fddda8d4 Implemented NtUserPeekMessage
svn path=/trunk/; revision=3014
2002-06-06 17:50:16 +00:00
Eric Kohl
bee2ec8653 Added partial suppport for short names (8.3 names).
svn path=/trunk/; revision=3013
2002-06-06 16:20:52 +00:00
Eric Kohl
f9769b54cf Fixed a typo in RtlGenerate8dot3Name().
Added more tests to RtlIsNameLegalDOS8Dot3().

svn path=/trunk/; revision=3012
2002-06-06 16:17:26 +00:00
Eric Kohl
819490ac07 Fixed the copy length in RtlQueryRegistryValues(). Found by Hartmut Birr.
svn path=/trunk/; revision=3011
2002-06-06 14:03:58 +00:00
Brian Palmer
ac99fa1fdc Changes in v1.3 (6/5/2002)
- Added protected mode exception handling in case FreeLoader crashes
- Reworked memory manager to use all of extended memory
- Reworked UI code, now supports multiple text-mode resolutions

svn path=/trunk/; revision=3010
2002-06-06 05:58:37 +00:00
Hartmut Birr
998a072d3f Fixed the alocation size in NtRegisterThreadTerminatePort.
svn path=/trunk/; revision=3009
2002-06-05 19:38:08 +00:00
Hartmut Birr
a7c919c505 Created the object handle only if the object is created successful in ObCreateObject.
This fixes some crashs after changing to a nonexisting drive and
a message like 'Parent is a Directory which is not a device type'.

svn path=/trunk/; revision=3008
2002-06-05 19:37:12 +00:00
Hartmut Birr
2422bc4676 Fixed the wrong parameter odering in a call to memset in EiAddSharedOwner.
svn path=/trunk/; revision=3007
2002-06-05 19:36:10 +00:00
Hartmut Birr
69671d74e1 Fixed the copy length in RtlQueryRegistryValues.
svn path=/trunk/; revision=3006
2002-06-05 19:35:04 +00:00
Hartmut Birr
926cc1342f Fixed a test after a memory allocation in CmiInitPermanentRegistryHive.
svn path=/trunk/; revision=3005
2002-06-05 19:34:08 +00:00
Hartmut Birr
d55c657a07 Fixed the error string odering.
svn path=/trunk/; revision=3004
2002-06-05 19:33:11 +00:00
Hartmut Birr
6e8befbaa7 Fixed the declaration of _alloca/alloca.
svn path=/trunk/; revision=3003
2002-06-05 19:32:20 +00:00
Hartmut Birr
b37ed73013 Fixed the value CurrentTransferPages for splited requests in ScsiClassReadWrite.
svn path=/trunk/; revision=3002
2002-06-05 19:31:39 +00:00
Eric Kohl
9078342c24 Implemented RtlGenerate8dot3Name() and RtlIsNameLegalDOS8Dot3().
svn path=/trunk/; revision=3001
2002-06-05 16:53:36 +00:00
David Welch
3d3be3df27 2002-06-04 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
* ntoskrnl/ke/i386/exp.c (KiDoubleFaultHandler): Print CR3
	correctly.

2002-06-04  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/include/internal/ps.h: Added KTHREAD_STACK_LIMIT definition.
	* ntoskrnl/ke/i386/tskswitch.S (Ki386ContextSwitch): Force all the
	pages of the kernel stack to be accessible from this process.

2002-06-04  David Welch  <welch@cwcom.net>

	* ntoskrnl/cc/view.c (ReadCacheSegmentChain): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/cc/copy.c (CcRosCreateCacheSegment): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/cc/copy.c (CcFreeCachePage): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/include/internal/mm.h: Changed prototypes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/include/internal/ps.h (KPROCESS): Changed type of
	page directory base to PHYSICAL_ADDRESS.
	* ntoskrnl/include/internal/i386/mm.h: Changed prototypes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/ke/kthread.c (KeFreeStackPage): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/ke/kthread.c (KeInitializeThread): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/ke/process.c (KeAttachProcess, KeDetachProcess): Changes
	to use PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/ke/kernel.c (PcrPages, KeApplicationProcessorInit): Changes
	to use PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/balance.c (MM_ALLOCATION_REQUEST): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/balance.c (MmReleasePageMemoryConsumer): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/balance.c (MmRequestPageMemoryConsumer): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/cont.c (MmFreeContinuousPage): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/cont.c (MmAllocateContinuousAlignedMemory): Changes to
	use PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/freelist.c (MmTransferOwnershipPage,
	MmGetLRUFirstUserPage, MmGetLRUNextUserPage, MmGetContinuousPages,
	MmInitializePageList, MmSetFlagsPage, MmSetRmapListHeadPage,
	MmGetRmapListHeadPage, MmMarkPageMapped, MmMarkPageUnmapped,
	MmGetFlagsPage, MmSetSavedSwapEntryPage, MmGetSavedSwapEntryPage,
	MmReferencePage, MmGetReferenceCountPage, MmIsUsablePage,
	MmDereferencePage, MmGetLockCountPage, MmLockPage, MmUnlockPage,
	MmAllocPage): Changes to use PHYSICAL_ADDRESS type for physical
	addresses.
	* ntoskrnl/mm/iospace.c (MmMapIoSpace): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/kmap.c (ExAllocatePage, MiZeroPage, MiCopyFromUserPage,
	ExAllocatePageWithPhysPage): Changes to use PHYSICAL_ADDRESS type for
	physical addresses.
	* ntoskrnl/mm/marea.c (MmFreeMemoryArea): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/mdl.c (MmUnlockPages, MmMapLockedPages,
	MmProbeAndLockPages): Changes to use PHYSICAL_ADDRESS type for
	physical addresses.
	* ntoskrnl/mm/mm.c (MmSharedDataPagePhysicalAddress,
	MmCommitPagedPoolAddress, MmNotPresentFault): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/mminit.c (MmInitVirtualMemory): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/ncache.c (MmAllocateNonCachedMemory,
	MmFreeNonCachedPage): Changes to use PHYSICAL_ADDRESS type for
	physical addresses.
	* ntoskrnl/mm/npool.c (grow_kernel_pool): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/rmap.c (MmPageOutPhysicalAddress, MmInsertRmap,
	MmDeleteAllRmaps, MmDeleteRmap): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/section.c (MiReadPage, MmNotPresentFaultSectionView,
	MmAccessFaultSectionView, MmPageOutDeleteMapping,
	MmPageOutSectionView, MmFreeSectionPage): Changes to use
	PHYSICAL_ADDRESS type for physical addresses.
	* ntoskrnl/mm/slab.c (ExGrowSlabCache): Changes to use
	PHYSICAL_ADDRESS type for physical address.
	* ntoskrnl/mm/virtual.c (MmPageOutVirtualMemory,
	MmNotPresentFaultVirtualMemory, MmFreeVirtualMemoryPage): Changes to
	use PHYSICAL_ADDRESS type for physical address.
	* ntoskrnl/mm/wset.c (MmTrimUserMemory): Changes to use
	PHYSICAL_ADDRESS type for physical address.
	* ntoskrnl/mm/page.c (Mmi386ReleaseMmInfo, MmCopyMmInfo,
	MmGetPhysicalAddressForProcess, MmCreateVirtualMapping,
	MmCreateVirtualMappingUnsafe, MmCreateVirtualMappingForProcess,
	MmDeleteVirtualMapping): Changes to use PHYSICAL_ADDRESS type for
	physical address.
	* ntoskrnl/ps/process (PsInitProcessManagment): Changes to use
	PHYSICAL_ADDRESS type for physical address.
	* ntoskrnl/ps/thread.c (PsAllocateCallbackStack): Changes to use
	PHYSICAL_ADDRESS type for physical address.

2002-06-04  David Welch  <welch@cwcom.net>

	* Lots of change since the ChangeLog was last updated.

svn path=/trunk/; revision=3000
2002-06-04 15:26:58 +00:00
Eric Kohl
a7a6f4a353 Fixed typo!
svn path=/trunk/; revision=2999
2002-06-04 14:14:07 +00:00
Eric Kohl
0fae9a2eac Fixed token type initialization.
svn path=/trunk/; revision=2998
2002-06-04 13:44:06 +00:00
Casper Hornstrup
a31f8b8f88 Corrected install.bat
svn path=/trunk/; revision=2997
2002-06-02 22:19:11 +00:00
Nedko Arnaudov
63409d34cf Ignore some intermediate files
svn path=/trunk/; revision=2996
2002-06-02 21:16:44 +00:00
Casper Hornstrup
1504a1115c Compile with new layout
svn path=/trunk/; revision=2995
2002-06-02 19:25:02 +00:00
Robert Kopferl
3d8bcf9d02 reorganized some files
svn path=/trunk/; revision=2994
2002-05-30 15:11:47 +00:00
Eric Kohl
9238b6279b Replaced linux partition type constants.
svn path=/trunk/; revision=2993
2002-05-29 21:41:41 +00:00
Eric Kohl
f07010f0fe Replaces linux partition type constants.
svn path=/trunk/; revision=2992
2002-05-29 21:39:06 +00:00
Eric Kohl
a6945246c2 Minor cleanup
svn path=/trunk/; revision=2991
2002-05-28 16:11:17 +00:00
Eric Kohl
b5f307997d Wait for BUSY to clear prior to selecting a drive. Disabled old code.
svn path=/trunk/; revision=2990
2002-05-28 09:34:18 +00:00
Eric Kohl
4cd4c7a855 Build a fake partition table for removable media drives.
svn path=/trunk/; revision=2989
2002-05-28 09:29:07 +00:00
Eric Kohl
d92e35924c Fix to support removable media (512 bytes per sector only!).
svn path=/trunk/; revision=2988
2002-05-28 09:25:09 +00:00
Hartmut Birr
a6f55d8cf7 Fixed creation of paging file in SmPagingFilesQueryRoutine.
svn path=/trunk/; revision=2987
2002-05-27 18:24:44 +00:00
Hartmut Birr
5d9e939c65 Fixed returned file length in GetFileInformationByHandle.
svn path=/trunk/; revision=2986
2002-05-27 18:23:49 +00:00
Eric Kohl
69494ad0b8 Silenced debug messages.
svn path=/trunk/; revision=2985
2002-05-26 20:25:49 +00:00
Eric Kohl
f193742266 Implemented command retries.
Improved error handling.

svn path=/trunk/; revision=2984
2002-05-26 20:24:42 +00:00
Eric Kohl
af5a948adf Always update disk geometry.
svn path=/trunk/; revision=2983
2002-05-26 20:23:22 +00:00
Eric Kohl
5aad28cf99 Silenced debug messages.
svn path=/trunk/; revision=2982
2002-05-26 20:20:39 +00:00
Eric Kohl
32e8099716 Enabled driver letter assignment for removable drives.
svn path=/trunk/; revision=2981
2002-05-26 20:18:18 +00:00
Eric Kohl
9ca6cf1169 Made NTFS-Partitions mountable.
svn path=/trunk/; revision=2980
2002-05-25 13:32:51 +00:00
Eric Kohl
a9f79206fa Fixed timeout for unpopulated ide channels.
Fixed inquiry data block for unpopulated ide channels.
Minor cleanup.

svn path=/trunk/; revision=2979
2002-05-25 13:30:53 +00:00
Eric Kohl
66bc07c8b9 Fixed severe bug in drive detection code.
Minor cleanup.

svn path=/trunk/; revision=2978
2002-05-24 22:28:11 +00:00
Eric Kohl
6ff87bd4f1 Fixed a severe bug in RtlQueryRegistryValues() and implemented support for REG_EXPAND_SZ.
Read the system environment from the registry.

svn path=/trunk/; revision=2977
2002-05-24 18:08:39 +00:00
Eric Kohl
dffbf01285 Added import of REG_EXPAND_SZ registry values.
Added media change support.
Added 'BootExecute'-feature to smss.
Added autochk dummy application.

svn path=/trunk/; revision=2976
2002-05-24 07:52:09 +00:00
Emanuele Aliberti
890bc030ff Build failed, then I removed it and checked it out again but ^Ms were there again.
I just removed the ^M at EOF. Maybe this time it works.

svn path=/trunk/; revision=2975
2002-05-23 20:59:22 +00:00
Eric Kohl
02fd65a6dc Use NT-compatible (VPB-based) mounting mechanism.
svn path=/trunk/; revision=2974
2002-05-23 09:53:26 +00:00
Brian Palmer
e5423f156b Compared the output of fat.asm from nasm v0.98 and nasm v0.98.32.
Modified fat.asm to produce the same output under both versions.

svn path=/trunk/; revision=2973
2002-05-22 22:15:28 +00:00
Eric Kohl
8e529b4411 Read settings from the registry.
svn path=/trunk/; revision=2972
2002-05-22 15:55:51 +00:00
Eric Kohl
47ee8afc68 Fixed Unload routine prototype.
svn path=/trunk/; revision=2971
2002-05-21 19:29:00 +00:00
David Welch
f4623b38f3 ntoskrnl/cc/view.c: CcRosTrimCache: Added a comment describing the
function.
ntoskrnl/ex/fmutex.c: ExAcquireFastMutexUnsafe: Reverted incorrect fix.
ntoskrnl/mm/section.c: MmUnmapViewOfSection: Removed acquiring the address
space lock; this is always done by the caller.
ntoskrnl/mm/section.c: NtUnmapViewOfSection: Hold the address space lock
over calls to MmUnmapViewOfSection.

svn path=/trunk/; revision=2970
2002-05-19 14:09:35 +00:00
Casper Hornstrup
10100f9649 Fixed a bug in ExAquireFastMutexUnsafe
svn path=/trunk/; revision=2969
2002-05-19 13:53:02 +00:00
David Welch
daad760238 services/fs/cdfs/.cvsignore: Added .cvsignore file
ntoskrnl/ex/fmutex.c: ExAcquireFastMutex: Added an check for recursively
acquiring a FAST_MUTEX.
ntoskrnl/include/internal/mm.h: ADDRESS_SPACE: Changed lock from a KMUTEX
to a FAST_MUTEX.
ntoskrnl/mm/aspace: MmLockAddressSpace, MmUnlockAddressSpace,
MmInitializeAddressSpace: Changed lock from a KMUTEX to a FAST_MUTEX
ntoskrnl/mm/mdl.c: MmInitializeMdlImplementation, MmMapLockedPages,
MmUnmapLockedPages: Use a special region that doesn't need the address
space lock for mapping MDLs.
ntoskrnl/mm/mminit.c: MmInit2: Call MDL initialization routine.
ntoskrnl/mm/section.c: MmMapViewOfSegment: Changed to a static function,
don't lock the address space since it is done by the caller.
ntoskrnl/ps/thread.c: PsDumpThreads: Fixed garbage prints in stack dump.

svn path=/trunk/; revision=2968
2002-05-17 23:01:57 +00:00
KJK::Hyperion
aec0b9bcfc New calls and new exported functions
svn path=/trunk/; revision=2967
2002-05-17 02:21:54 +00:00
KJK::Hyperion
da32d20e2c Miscellaneous calls
svn path=/trunk/; revision=2966
2002-05-17 02:16:16 +00:00
KJK::Hyperion
2d949174b9 Preliminary code for fork()
svn path=/trunk/; revision=2965
2002-05-17 02:12:55 +00:00
KJK::Hyperion
bce8535f50 Started implementing sys/stat.h calls
svn path=/trunk/; revision=2964
2002-05-17 02:10:41 +00:00
KJK::Hyperion
75a810da7d TLS calls (currently unused)
svn path=/trunk/; revision=2963
2002-05-17 02:07:14 +00:00
KJK::Hyperion
69ca37d697 Temporary code for debugging purposes
svn path=/trunk/; revision=2962
2002-05-17 02:04:39 +00:00
KJK::Hyperion
d24e468cb0 Fixed some embarassing errors
svn path=/trunk/; revision=2961
2002-05-17 01:55:34 +00:00
KJK::Hyperion
a2da78fa4e errno finally thread-safe
svn path=/trunk/; revision=2960
2002-05-17 01:52:03 +00:00
KJK::Hyperion
a97804075b Temporary code for debugging purposes
svn path=/trunk/; revision=2959
2002-05-17 01:49:53 +00:00
KJK::Hyperion
084950fd26 Temporary code
svn path=/trunk/; revision=2958
2002-05-17 01:47:13 +00:00
KJK::Hyperion
34a6708f44 Fixed assert() macro, fixed header
svn path=/trunk/; revision=2957
2002-05-17 01:42:41 +00:00
KJK::Hyperion
9523648137 SysV IPC headers
svn path=/trunk/; revision=2956
2002-05-17 01:37:15 +00:00
Eric Kohl
cca52d053b Modified LdrLoadModule() to return NTSTATUS.
Added missing definitions.

svn path=/trunk/; revision=2955
2002-05-16 06:41:30 +00:00
Eric Kohl
2d27974602 Added experimental support for FAT and NTFS FSDs.
Silenced debug messges.

svn path=/trunk/; revision=2954
2002-05-15 18:05:00 +00:00
Eric Kohl
1875c5ebb2 Added file system recognizer driver.
Implemented file system driver loading.
Minor cleanup.

svn path=/trunk/; revision=2953
2002-05-15 09:42:19 +00:00
Eric Kohl
3991d36943 Silenced debug message.
svn path=/trunk/; revision=2952
2002-05-14 23:17:12 +00:00
Eric Kohl
58cf63221a Fixed several cache-related bugs.
Silenced debug messages.

svn path=/trunk/; revision=2951
2002-05-14 23:16:23 +00:00
David Welch
fb21de32de Reverted the MPW changes (keep these in a seperate branch)
svn path=/trunk/; revision=2950
2002-05-14 21:19:21 +00:00
Casper Hornstrup
7922a9018d Added section test
svn path=/trunk/; revision=2947
2002-05-13 20:16:26 +00:00
Casper Hornstrup
c804ca06be Use ULONG_PTR instead of ULONG when doing pointer arithmetics.
Use ULONG_PTR for physical adresses and PVOID for virtual addresses.
Added several consistency checks in the memory memory manager.

svn path=/trunk/; revision=2946
2002-05-13 18:10:41 +00:00
Eric Kohl
5e4527aff7 Added file and directory caching.
Improved verify support.
Fixed a joliet filename bug.

svn path=/trunk/; revision=2945
2002-05-09 15:53:02 +00:00
Casper Hornstrup
e37bad87b8 Support multiple debug targets at the same time.
E.g. to use both serial logging on COM1 and GDB remote debugging on COM2 use:
/DEBUGPORT=COM1 /COM2 /DEBUGPORT=GDB
Made PICE compile with GCC 3.2.

svn path=/trunk/; revision=2944
2002-05-08 17:05:32 +00:00
Hartmut Birr
f82f2801bb Removed reseting of IrpFlags in ScsiPortDispatchScsi.
svn path=/trunk/; revision=2943
2002-05-07 23:13:24 +00:00
Hartmut Birr
51b30bed9f Opened files for redirection inheritable.
Printed error messages in main to stderr. If the output is redirected,
the error message isn't printed in the redirection.

svn path=/trunk/; revision=2942
2002-05-07 23:05:33 +00:00
Hartmut Birr
0e177cc7b9 Fixed a memory leakage in MmCreateImageSection.
Fixed a bug in MmNotPresentFaultSectionView.
Removed some wrong calls to ObDereferenceObject in MmMapViewOfSection.

svn path=/trunk/; revision=2941
2002-05-07 22:53:05 +00:00
Hartmut Birr
72d2c10489 Implemented CsrTerminateProcess.
svn path=/trunk/; revision=2940
2002-05-07 22:46:23 +00:00
Hartmut Birr
be75fc2273 Fixed the range test for handles in CsrGetObject/CsrReleaseObject.
svn path=/trunk/; revision=2939
2002-05-07 22:45:40 +00:00
Hartmut Birr
cbfefd1beb Create console active event inheritable.
svn path=/trunk/; revision=2938
2002-05-07 22:44:23 +00:00
Hartmut Birr
b6c40390d2 Fixed return value in CdfsGetFsSizeInformation.
svn path=/trunk/; revision=2937
2002-05-07 22:42:46 +00:00
Hartmut Birr
0ef49e3484 Modified reading of pipes.
Fixed some bugs.

svn path=/trunk/; revision=2936
2002-05-07 22:41:22 +00:00
Hartmut Birr
311a376750 Modified closing of pipes.
svn path=/trunk/; revision=2935
2002-05-07 22:40:35 +00:00
Hartmut Birr
cd1ca716e4 Added testing for inheritable objects/handles.
svn path=/trunk/; revision=2934
2002-05-07 22:39:26 +00:00
Hartmut Birr
8844bece5a Added testing for inheritable objects in NtDuplicateObject/ObCreateHandleTable.
Modified ObCreateHandleTable. The target handle table has now the same layout as the source table.

svn path=/trunk/; revision=2933
2002-05-07 22:38:29 +00:00
Hartmut Birr
136a40d069 Lock address space at returning in MmNotPresentFaultVirtualMemory.
svn path=/trunk/; revision=2932
2002-05-07 22:36:46 +00:00
Hartmut Birr
a2b0f101ef Fixed a wrong index in MmProbeAndLockPages.
svn path=/trunk/; revision=2931
2002-05-07 22:35:02 +00:00
Hartmut Birr
a76424cbbb Lock/unlock address space in KeReleasThread.
svn path=/trunk/; revision=2930
2002-05-07 22:34:17 +00:00
Hartmut Birr
d05ba1b39e Fixed the command line.
svn path=/trunk/; revision=2929
2002-05-07 22:33:07 +00:00
Hartmut Birr
ad703f36f3 Added handling for pipe closing.
svn path=/trunk/; revision=2928
2002-05-07 22:32:13 +00:00
Hartmut Birr
eb12656476 Started piping implementation.
svn path=/trunk/; revision=2927
2002-05-07 22:31:26 +00:00
Hartmut Birr
f88bb45115 Started piping implementation.
Fixed the command line for popen.

svn path=/trunk/; revision=2926
2002-05-07 22:27:42 +00:00
Hartmut Birr
b343539680 Added csrss notification in ExitProcess.
svn path=/trunk/; revision=2925
2002-05-07 22:26:29 +00:00
Hartmut Birr
e11e2826a9 Added support for piping.
svn path=/trunk/; revision=2924
2002-05-07 22:25:40 +00:00
Hartmut Birr
deb8a30fce Added basic support for console handles in DuplicateHandle.
svn path=/trunk/; revision=2923
2002-05-07 22:24:52 +00:00
Hartmut Birr
8b88e468e5 Fixed return value in CloseConsoleHandle.
svn path=/trunk/; revision=2922
2002-05-07 22:23:17 +00:00
Hartmut Birr
889631b2b9 Added handling for lpSecurityAttributes (for inheitable handles) in CreatePipe.
svn path=/trunk/; revision=2921
2002-05-07 22:22:28 +00:00
Hartmut Birr
652f529412 Do not call NtFlushBuffersFile for console handles.
svn path=/trunk/; revision=2920
2002-05-07 22:21:47 +00:00
Hartmut Birr
8aa6e0e7f6 Added handling for lpSecurityAttributes (for inheritable handles) in CreateFileW.
svn path=/trunk/; revision=2919
2002-05-07 22:21:02 +00:00
Hartmut Birr
b5d90aa2e5 Added O_NOINHERIT.
svn path=/trunk/; revision=2918
2002-05-07 22:20:00 +00:00
David Welch
2503ffd406 Added some comments.
svn path=/trunk/; revision=2916
2002-05-06 22:25:50 +00:00
David Welch
f1694d4913 Some additions to the USER code; nothing is working yet.
svn path=/trunk/; revision=2915
2002-05-06 22:20:32 +00:00
Hartmut Birr
2593e9b43d Added support for accessing the raw volume.
Rewrote the read/write functions.

svn path=/trunk/; revision=2914
2002-05-05 20:20:15 +00:00
Hartmut Birr
2ca90e6988 Implemented VfatGetUserBuffer and VfatLockUserBuffer.
svn path=/trunk/; revision=2913
2002-05-05 20:19:45 +00:00
Hartmut Birr
cc92156f65 Added support for accessing the raw volume.
Disabled some debug messages.

svn path=/trunk/; revision=2912
2002-05-05 20:19:14 +00:00
Hartmut Birr
d31b1c24ca Added support for accessing the raw volume.
svn path=/trunk/; revision=2911
2002-05-05 20:18:33 +00:00
KJK::Hyperion
11cc443546 made _read() non-greedy - it now returns as soon as any amount of data has been read. It's the expected behavior for line-buffered streams (KJK::Hyperion)
svn path=/trunk/; revision=2910
2002-05-05 17:18:50 +00:00
Casper Hornstrup
ee0b635648 Corrected mailing lists link
svn path=/trunk/; revision=2909
2002-05-05 15:30:01 +00:00
Casper Hornstrup
9ee98eeca9 Fixed warnings and errors so ReactOS can be compiled with GCC 3.2.
Removed unused ntoskrnl/rtl/bitops.c

svn path=/trunk/; revision=2908
2002-05-05 14:57:45 +00:00
Phillip Susi
b0188a2a7a Fixed ReadConsoleInput() to not wait for a newline
svn path=/trunk/; revision=2907
2002-05-05 03:45:21 +00:00
Brian Palmer
86b351ce41 Changes in v1.2.2 (5/4/2002)
- Fixed memory leak in menu.c

svn path=/trunk/; revision=2906
2002-05-04 09:25:47 +00:00
Brian Palmer
5d75740eea Quick Makefile fix
svn path=/trunk/; revision=2905
2002-05-04 08:19:22 +00:00
Brian Palmer
ab6d9f2a6b Changes in v1.2.1 (5/3/2002)
- Makefile updates
- Optimized the Makefile
- Removed recursive make functionality (builds much faster now)
- Places all output into one single directory
- Added automagically generated dependencies

svn path=/trunk/; revision=2904
2002-05-03 23:56:18 +00:00
David Welch
42bf54f96d Fixed irq problems.
Print more information on kernel mode exceptions.
Translate grub style command lines.

svn path=/trunk/; revision=2903
2002-05-02 23:45:33 +00:00
Jason Filby
930e00507c Proper line spacing and implemented cls
svn path=/trunk/; revision=2902
2002-05-02 09:10:00 +00:00
Eric Kohl
bff0ad1c2b Implemented read support.
Disabled debug messages.

svn path=/trunk/; revision=2901
2002-05-01 21:52:05 +00:00
Eric Kohl
7e9f288b08 Fixed FCB management functions.
Added file and directory information.
Fixed several minor bugs.
Disabled most of the debug messages.

svn path=/trunk/; revision=2900
2002-05-01 13:15:42 +00:00
Brian Palmer
467e8c55cc Changes in v1.2 (4/30/2002)
- All Linux kernels are supported (zImage & bzImage, loaded high & low)
- Initrd support
- FreeLoader now compiles under Mingw32 instead of just DJGPP, but
  the Mingw32 linker seems to output a corrupt binary.

svn path=/trunk/; revision=2899
2002-04-30 06:26:33 +00:00
Eric Kohl
b5d501b385 Improved default value handling in RtlQueryRegistryValues().
svn path=/trunk/; revision=2898
2002-04-29 23:20:44 +00:00
KJK::Hyperion
488ec274f1 Fixed bugs in null device drivers, added zero stream device
svn path=/trunk/; revision=2897
2002-04-29 23:06:42 +00:00
KJK::Hyperion
bceb83614d Fixed order of TARGET_LFLAGS in the command lines of rules for kernel-mode targets
Added "nostrip" rule for static libraries, currently does nothing new

svn path=/trunk/; revision=2896
2002-04-29 23:02:12 +00:00
Hartmut Birr
2a609b87c4 Added wild card expansion for argv.
svn path=/trunk/; revision=2895
2002-04-28 22:38:11 +00:00
Hartmut Birr
9412a16ec8 Added S_IFREG for files only.
svn path=/trunk/; revision=2894
2002-04-28 22:37:36 +00:00
Hartmut Birr
0bb4cfa71e Added _fcloseall for DLL_PROCESS_DETACH.
svn path=/trunk/; revision=2893
2002-04-28 22:37:00 +00:00
Brian Palmer
a28d727f4e Fixed FAT short file name buffer overflow that was causing some long filenames not to work correctly.
svn path=/trunk/; revision=2892
2002-04-28 20:31:42 +00:00
Hartmut Birr
efa19d923d Added support for bat/cmd files.
Added support for shell piping.

svn path=/trunk/; revision=2891
2002-04-27 19:26:54 +00:00
Hartmut Birr
ade2b9c4eb Fixed a bug in findDirSpace().
svn path=/trunk/; revision=2890
2002-04-27 19:25:57 +00:00
Hartmut Birr
418853bd8f Added seting of exit status in NtTerminateProcess.
svn path=/trunk/; revision=2889
2002-04-27 19:25:16 +00:00
Hartmut Birr
4aead93e6e Fixed a bug in MmUnmapLockedPages.
svn path=/trunk/; revision=2888
2002-04-27 19:24:45 +00:00
Hartmut Birr
83bcc22c5e Added npfs.sys to the automatic loaded drivers.
svn path=/trunk/; revision=2887
2002-04-27 19:24:15 +00:00
Hartmut Birr
18501a22c4 Added IoFileObjectType to ObReferenceObjectByHandle. If the function is not called with a file handle, there occures a page fault.
Moved dereferencing of the file object to IoSecondStageCompletion.

svn path=/trunk/; revision=2886
2002-04-27 19:23:33 +00:00
Hartmut Birr
10e98570f5 Changed to event object from file object.
svn path=/trunk/; revision=2885
2002-04-27 19:22:55 +00:00
Hartmut Birr
474ffaeded Fixed the test for FO_SYNCHONOUS_IO.
svn path=/trunk/; revision=2884
2002-04-27 19:22:09 +00:00
Hartmut Birr
ce8cda7cc1 Moved dereferencing of file objects to IoSecondStageCompletion.
svn path=/trunk/; revision=2883
2002-04-27 19:21:32 +00:00
Hartmut Birr
a253312fcf Moved '/DEBUGPORT=SCREEN' from loadros to (a)boot.bat.
svn path=/trunk/; revision=2882
2002-04-27 19:20:29 +00:00
Hartmut Birr
608baa209c Removed S_IFREG for files.
svn path=/trunk/; revision=2881
2002-04-27 19:17:25 +00:00
Hartmut Birr
ff2c349be8 Fixed a minor bug.
svn path=/trunk/; revision=2880
2002-04-27 19:16:53 +00:00
Hartmut Birr
d5b7bf25ee Moved CloseFile within MoveFileExW.
svn path=/trunk/; revision=2879
2002-04-27 19:15:43 +00:00
Hartmut Birr
4e33db4f34 Made GetTempFileNameA/W workable.
svn path=/trunk/; revision=2878
2002-04-27 19:15:00 +00:00
Hartmut Birr
80d859daab Added a trailing '\' to the directory in GetTempPathW.
svn path=/trunk/; revision=2877
2002-04-27 19:14:30 +00:00
Hartmut Birr
a82ce4daf4 Fixed a memory leakage in DeleteFileW.
svn path=/trunk/; revision=2876
2002-04-27 19:13:41 +00:00
Hartmut Birr
6d95c53a84 Fixed a memory leakage in CreateFileW.
svn path=/trunk/; revision=2875
2002-04-27 19:13:15 +00:00
Eric Kohl
e2ccc04cc8 Release MDL on IRP-completion. Thanks to Hartmut Birr.
svn path=/trunk/; revision=2874
2002-04-27 19:01:24 +00:00
Eric Kohl
4e09f73d4d Added code to import REG_MULTI_SZ values.
svn path=/trunk/; revision=2873
2002-04-27 19:00:14 +00:00
Eric Kohl
23f679e571 Added media change support (untested).
Added directory listing (works only on the root directory).

svn path=/trunk/; revision=2872
2002-04-26 23:21:28 +00:00
Eric Kohl
321c888721 Fixed drive map in the shared user page.
svn path=/trunk/; revision=2871
2002-04-26 19:59:25 +00:00
Eric Kohl
f46d1f34e3 Simplified access to the shared user page.
Update TickCountLow on timer ticks.

svn path=/trunk/; revision=2870
2002-04-26 13:12:34 +00:00
Eric Kohl
8ae62fd2db Removed direct debug output.
Replaced direct calls to bios routines.

svn path=/trunk/; revision=2869
2002-04-25 22:24:24 +00:00
Eric Kohl
7111fc6bfa Added the original copyright from isolinux.
Added 'Press any key to boot from CD' feature.
Changed load path to '\REACTOS\FREELDR.SYS'.

svn path=/trunk/; revision=2868
2002-04-25 14:22:25 +00:00
Brian Palmer
a9450f5a72 FreeLoader version 1.0!
Supports booting Linux bzImage kernels
No initrd support (yet)
No zImage support (yet)
No ext2 file system support (yet)
Forward slashes '/' as well as backslashes '\' can be used for path names in FAT & ISO-9660
Fixed bug in LBA code where is was only reading one sector even if you asked for more
Fixed bug in FAT code, was also present in ISO-9660 code

svn path=/trunk/; revision=2867
2002-04-25 02:48:15 +00:00
Eric Kohl
8c136a909a Implemented request-splitting.
svn path=/trunk/; revision=2866
2002-04-24 22:20:50 +00:00
Eric Kohl
c1e3c3d7fe Added ISO-9660 support.
svn path=/trunk/; revision=2865
2002-04-23 09:08:59 +00:00
Eric Kohl
13206a61a1 Added ISO-9660 boot sector description.
svn path=/trunk/; revision=2864
2002-04-22 12:05:07 +00:00
Eric Kohl
bba0443d8d Added .cvsignore file.
Added cdrom bootsector.

svn path=/trunk/; revision=2863
2002-04-22 10:02:35 +00:00
Phillip Susi
2b6504d6a9 Some more fixes to the IO manager routines to use the KEVENT in the FILE_OBJECT correctly
svn path=/trunk/; revision=2862
2002-04-20 03:46:40 +00:00
Phillip Susi
951c94bc9a Fixed stat() to set the S_IFREG flag to indicate that the file is a normal file
svn path=/trunk/; revision=2861
2002-04-20 03:33:12 +00:00
Phillip Susi
bd99ddf7af KiInterruptDispatch was leaving interrupts disabled when dropping to PASSIVE_LEVEL to run the idle thread
I'm not quite sure I have it reenable interrupts at a safe place, but at least it does enable them

svn path=/trunk/; revision=2860
2002-04-20 03:21:35 +00:00
Eric Kohl
50015e56ee Fixed a silly bug! I forgot to move an #include line. :-/
svn path=/trunk/; revision=2859
2002-04-19 20:27:20 +00:00
Eric Kohl
b88eb21a16 Restricted mounting of file systems (e.g. don't try to mount a cdrom file system to a harddisk).
Moved helper functions of IoVerifyVolume().
Minor improvements to IoVerifyVolume().

svn path=/trunk/; revision=2858
2002-04-19 10:10:29 +00:00
Robert Kopferl
3665f8cac4 documentatnio
and slight mods

svn path=/trunk/; revision=2857
2002-04-18 23:49:42 +00:00
Robert Kopferl
a333340f0b my idea of a dirstruct
svn path=/trunk/; revision=2856
2002-04-18 23:48:12 +00:00
Eric Kohl
1fbe5019da Fixed a typo that caused cdfs mounts to fail ('CdRom0' vs 'Cdrom0'). :-/
Removed old drive letter assignment code.

svn path=/trunk/; revision=2855
2002-04-17 18:26:53 +00:00
Eric Kohl
d3e627f08c Moved the hardcoded command line string to loadros.
svn path=/trunk/; revision=2854
2002-04-17 11:56:33 +00:00
Eric Kohl
d3b50da3ce Added a dos command line buffer and hardcoded the kernel command line for ntoskrnl.exe.
svn path=/trunk/; revision=2853
2002-04-17 11:55:37 +00:00
Brian Palmer
c44d02099d Added LBA support to FAT12/16 boot sector
Now the FAT12/16 boot sector properly works on all FAT12/16 partition types (1, 4, 6, 0xe)
Fixed a few small bugs

svn path=/trunk/; revision=2852
2002-04-16 06:11:08 +00:00
Eric Kohl
3730336e4d Split the driver into more files.
Replaced FCB code.
Improved the mount code.

svn path=/trunk/; revision=2851
2002-04-15 20:39:49 +00:00
Eric Kohl
e00643eb28 Removed obsolete 'optimization'.
svn path=/trunk/; revision=2850
2002-04-15 12:38:01 +00:00
Emanuele Aliberti
3febeb4ae5 Minor fixes-
svn path=/trunk/; revision=2847
2002-04-14 18:06:39 +00:00
Phillip Susi
9c79266654 Fixed idle loop to use HLT to save power and cpu time under vmware
svn path=/trunk/; revision=2846
2002-04-14 16:01:19 +00:00
Phillip Susi
03c68cbfb4 HiSetIrql() was leaving interrupts disabled, fixed.
svn path=/trunk/; revision=2845
2002-04-14 16:00:27 +00:00
Steven Edwards
81345fd691 Still working on making dflat32 a dll. Alot of this will be cleaned up in the
next few weeks. I'm going through the DFLAT api doc and fixing the export
names and then going to try to build a simple hello dflat application.

svn path=/trunk/; revision=2844
2002-04-14 10:15:06 +00:00
Eugene Ingerman
531d8f275d Fixed potential zero pointer reference.
svn path=/trunk/; revision=2843
2002-04-12 17:54:07 +00:00
Eric Kohl
c423031b39 Added basic iso-9660 file system driver. Thanks to Art Yerkes.
svn path=/trunk/; revision=2842
2002-04-12 15:43:38 +00:00
Emanuele Aliberti
bb24d01a48 PSX: early code for the PSXSS server program. Currently it is a W32 console application,
therefore it is not a proper subsystem, but it will be converted to native as soon as
it begins working. It probably does NOT work under ROS. I tested it under NT 4.0 SP 6a.
To see what it creates in the system name sapce, run WinObj, and HandleEx. If you
run csrterm.exe, it tries to connect to psxss.exe, but then dies because the API to
tell psxss to create a PSX process it not implemented yet. PSXDLL.DLL will connect
to \POSIX+\ApiPort (initial code in psx/lib/psxdll/misc/init.c is mute).

svn path=/trunk/; revision=2841
2002-04-10 21:30:22 +00:00
Emanuele Aliberti
f6c21b1a91 PSX: updated internal PSXSS system calls table generator.
svn path=/trunk/; revision=2840
2002-04-10 21:13:30 +00:00
Emanuele Aliberti
b9b1d40823 PSX: more work on the terminal emulator that runs in the W32 subsystem.
svn path=/trunk/; revision=2839
2002-04-10 21:12:41 +00:00
Eric Kohl
f1bc2201f0 Implemented IOCTL_CDROM_GET_DRIVE_GEOMETRY.
Some fixes to enable mounting of cdroms.

svn path=/trunk/; revision=2838
2002-04-10 17:02:22 +00:00
Eric Kohl
62b86daaf8 Moved IoVerifyVolume().
Made CDROM and TAPE devices mountable.

svn path=/trunk/; revision=2837
2002-04-10 09:58:45 +00:00
Steven Edwards
b6a1093b95 Disregard this, I hit remove by mistake and am adding it back
svn path=/trunk/; revision=2836
2002-04-10 07:47:56 +00:00
Steven Edwards
80bd55a9d0 Disregard this, I hit remove by mistake and am adding it back
svn path=/trunk/; revision=2835
2002-04-10 07:44:09 +00:00
Steven Edwards
1e8b9112f0 fix some warnings in the makefile and added a time_t test
svn path=/trunk/; revision=2834
2002-04-10 07:18:40 +00:00
Steven Edwards
5a5caf8ad5 A even more simple windowing test.
This should be our first goal before winhello

svn path=/trunk/; revision=2833
2002-04-10 03:52:30 +00:00
Phillip Susi
b1caf2b5e9 Reworked quite a bit of IO manager code to fix several bugs:
1) fixed create.c to use a null file name when opening the raw device, instead of a file name with a single null terminator char

2) fixed cleanup.c create.c dir.c file.c fs.c page.c rw.c to use the KEVENT object in the FILE_OBJECT when it needs one to wait on, or if there is no FILE_OBJECT, the KEVENT MUST be allocated from non paged pool, NOT the stack.

svn path=/trunk/; revision=2832
2002-04-07 18:36:13 +00:00
Phillip Susi
6ce277b452 MAJOR BUGFIX: ide.sys was not returning iostatus information when it completed requests ( error code, and length transfered )
svn path=/trunk/; revision=2831
2002-04-07 18:28:49 +00:00
Emanuele Aliberti
5a81c98a15 Fixed makefile for building import libraries for the PSX subsystem DK.
svn path=/trunk/; revision=2830
2002-04-07 14:21:13 +00:00
Emanuele Aliberti
2888319d30 Wrong port: CSRTERM.EXE will connect to \POSIX+\SessionPort not to
\POSIX+\ApiPort.

svn path=/trunk/; revision=2829
2002-04-07 14:06:46 +00:00
Emanuele Aliberti
6bdcbd1bb7 Minor change.
svn path=/trunk/; revision=2828
2002-04-07 13:56:16 +00:00
Emanuele Aliberti
8c130e007e Version info script added.
Modified to link against /dk/psx/lib/psxdll.a

svn path=/trunk/; revision=2827
2002-04-07 13:53:51 +00:00
Steven Edwards
80362e4ed7 added Hartmuts KeDetachProcess(); and attach patch for GCC.
svn path=/trunk/; revision=2826
2002-04-07 09:24:36 +00:00
Emanuele Aliberti
3cbf8c1de6 PSX: The tool to build internal system calls tables and auxiliary C files.
svn path=/trunk/; revision=2825
2002-04-06 16:07:34 +00:00
Emanuele Aliberti
0c3dba541d Minor fixes: some more code needed to make it work.
This one actually connects to the PSXSS.EXE process.

svn path=/trunk/; revision=2824
2002-04-06 16:00:46 +00:00
Eric Kohl
c19d6a953f Fixed crash in environment variable evaluation.
svn path=/trunk/; revision=2822
2002-04-05 12:53:21 +00:00
Steven Edwards
2c38da05a1 Added BSD touch utillity.
svn path=/trunk/; revision=2821
2002-04-03 03:57:56 +00:00
Hartmut Birr
224bb37961 Fixed a bug in RtlDestroyHeap, that will cause a page fault, if more than one subheap exist.
svn path=/trunk/; revision=2820
2002-04-03 00:04:01 +00:00
Eric Kohl
bcde238ede Added mapping of scsi error codes to status codes.
Retries are still disabled.

svn path=/trunk/; revision=2816
2002-04-01 23:51:09 +00:00
Hartmut Birr
6c88e069c4 Fixed a typo.
svn path=/trunk/; revision=2815
2002-04-01 22:18:01 +00:00
Hartmut Birr
9e6b238365 Fixed a wrong length check in RtlAnsiStringToUnicodeString()/RtlOemStringToUnicodeString().
svn path=/trunk/; revision=2814
2002-04-01 22:13:15 +00:00
Hartmut Birr
0bdd211873 Fixed the length calculation in RtlCreateProcessParameters().
svn path=/trunk/; revision=2813
2002-04-01 22:11:52 +00:00
Hartmut Birr
b17ab99f15 Fixed a wrong parameter for a call to ZwFreeVirtualMemory(). This fixes a page fault at address 0 (cr2 = 0).
Fixed the calculation of the maximum heap count in RtlInitializeHeapManager().

svn path=/trunk/; revision=2812
2002-04-01 22:11:12 +00:00
Hartmut Birr
c75ecda469 Added ansi to unicode translation for the environment in CreateProcessA().
Changed handling for current directory in CreateProcessAW().
Changed size calculation for the environment in KlInitPeb().
Changed determaining of program name and command line in CreateProcessW().
Added conversion for some handles in CreateProcessW().

svn path=/trunk/; revision=2811
2002-04-01 22:09:59 +00:00
Hartmut Birr
de299abd9a Fixed some wrong size calculations in GetEnvironmentStringsA().
Fixed a wrong return value in GetEnvironmentVariableA().

svn path=/trunk/; revision=2810
2002-04-01 22:08:20 +00:00
Hartmut Birr
6c10b3528a Rewrote OpenFile().
svn path=/trunk/; revision=2809
2002-04-01 22:06:51 +00:00
Hartmut Birr
e806f90b71 Fixed handling for non existing files.
svn path=/trunk/; revision=2808
2002-04-01 22:05:43 +00:00
Hartmut Birr
ea5f41e8a5 Added handling for std handles.
svn path=/trunk/; revision=2807
2002-04-01 22:03:56 +00:00
Hartmut Birr
7497838509 Changed to a separat heap for malloc/calloc/realloc/free.
svn path=/trunk/; revision=2806
2002-04-01 22:03:13 +00:00
Hartmut Birr
ae374594ce Removed fixed size of environment vars.
svn path=/trunk/; revision=2805
2002-04-01 22:01:33 +00:00
Hartmut Birr
2cda2c03b3 Fixed error handling in _filebuf().
svn path=/trunk/; revision=2804
2002-04-01 22:00:02 +00:00
Hartmut Birr
3005268105 Removed fixed size of args and envblock in go32_exec() (gcc uses a very large cmd line).
Added closing of thread and/or process handle at exit in _spawnve().
Added debug messages.

svn path=/trunk/; revision=2803
2002-04-01 21:58:45 +00:00
Hartmut Birr
4d142d61ac Added closing of process handle at exit.
svn path=/trunk/; revision=2802
2002-04-01 21:56:56 +00:00
Hartmut Birr
aaeb01a3e1 Changed heap validation.
svn path=/trunk/; revision=2801
2002-04-01 21:55:50 +00:00
Hartmut Birr
0ea281268b Added heap initialization for malloc/calloc/realloc/free.
Added debug messages.
Removed fixed count for environment.

svn path=/trunk/; revision=2800
2002-04-01 21:55:09 +00:00
Hartmut Birr
e129158330 Added debug messages.
Added LN to CR/LN translation for text files.

svn path=/trunk/; revision=2799
2002-04-01 21:52:45 +00:00
Hartmut Birr
5cd1300eac Added debug messages.
Added special handling for std file descriptors.

svn path=/trunk/; revision=2798
2002-04-01 21:51:59 +00:00
Hartmut Birr
e8b5ff7de0 Added CR-removing for text files.
Added debug messages.

svn path=/trunk/; revision=2797
2002-04-01 21:50:56 +00:00
Hartmut Birr
db69b4ae79 Fixed initialization of new fileno_modes in __fileno_alloc().
Added setting of errno in _open().
Added debug messages.

svn path=/trunk/; revision=2796
2002-04-01 21:47:31 +00:00
Hartmut Birr
50c7ca2780 Added debug messages.
svn path=/trunk/; revision=2795
2002-04-01 21:38:50 +00:00
Hartmut Birr
a45170ea27 Added ntdll.a to TARGET_SDKLIBS
svn path=/trunk/; revision=2794
2002-04-01 21:33:27 +00:00
Steven Edwards
3a6f36f512 typedef int key_t; was defined twice
svn path=/trunk/; revision=2793
2002-03-31 04:37:19 +00:00
Steven Edwards
e158da64af Minor cosmetic cleanup....sorry I'm a little obsessive compulsive
svn path=/trunk/; revision=2792
2002-03-31 04:25:15 +00:00
Steven Edwards
7c813ceacd added bootc.lst to aboot.bat. I dont know if the ACPI driver is
still working like this.

svn path=/trunk/; revision=2791
2002-03-31 04:23:35 +00:00
Eric Kohl
59c881e5c3 Fixed a serious typo.
svn path=/trunk/; revision=2790
2002-03-30 01:59:01 +00:00
Steven Edwards
63e2886299 Making dflat32 a dll. Its a little broken ATM.
svn path=/trunk/; revision=2789
2002-03-28 12:15:40 +00:00
Eric Kohl
fabd313f2a Added support for .lst files. Thanks to Art Yerkes.
svn path=/trunk/; revision=2788
2002-03-27 22:26:25 +00:00
Steven Edwards
29e7f88439 Updated Makefile for wine_unicode.dll wrc and winebuild.
Added wrc to rules.mk

These are not used yet.

svn path=/trunk/; revision=2787
2002-03-27 04:38:58 +00:00
Eric Kohl
c620a68b29 Implemented the SENSE_REQUEST command.
svn path=/trunk/; revision=2786
2002-03-27 00:35:52 +00:00
Robert Kopferl
196b746efd *** empty log message ***
svn path=/trunk/; revision=2785
2002-03-26 01:42:02 +00:00
Eric Kohl
aa38bd158b Cosmetic changes
svn path=/trunk/; revision=2784
2002-03-25 21:56:55 +00:00
Eric Kohl
c773562024 Started improving error handling and retries.
svn path=/trunk/; revision=2783
2002-03-25 21:56:19 +00:00
Hartmut Birr
5ede96eff7 Fixed the length of the command line.
svn path=/trunk/; revision=2782
2002-03-25 21:11:13 +00:00
Hartmut Birr
f4a1a5dd8e Rewrote SearchPathW().
svn path=/trunk/; revision=2781
2002-03-25 21:09:18 +00:00
Hartmut Birr
329e4b6888 Fixed negativ positions in SetFilePointer().
svn path=/trunk/; revision=2780
2002-03-25 21:07:17 +00:00
Emanuele Aliberti
68230ee1f4 Minor change: CVS Id placeholder fixed or added.
svn path=/trunk/; revision=2779
2002-03-24 18:55:39 +00:00
Emanuele Aliberti
1c80c9b655 Linker warning fixed.
svn path=/trunk/; revision=2778
2002-03-24 18:52:10 +00:00
Eric Kohl
1bac32612a Initialized device lock event.
svn path=/trunk/; revision=2777
2002-03-24 15:30:44 +00:00
Eric Kohl
e3879d11ec Set feature register for atapi commands.
svn path=/trunk/; revision=2776
2002-03-24 15:29:57 +00:00
Steven Edwards
7f0bfc685d Started work on seperating dflat32 console graphics library in to a dll
inital header import.

svn path=/trunk/; revision=2775
2002-03-24 15:29:09 +00:00
Casper Hornstrup
9ab896569c Added tree traversal routines for tree data structures.
svn path=/trunk/; revision=2774
2002-03-23 19:44:46 +00:00
Robert Kopferl
aea2b71437 initial comit
svn path=/trunk/; revision=2773
2002-03-23 19:23:28 +00:00
KJK::Hyperion
e23995664a updated clean rule
svn path=/trunk/; revision=2772
2002-03-23 18:13:33 +00:00
Casper Hornstrup
59562362a8 Support non-paged version of binary tree, splay tree and hash table.
svn path=/trunk/; revision=2771
2002-03-23 13:53:22 +00:00
Eric Kohl
716ec9c7cf Disabled annoying debug message.
svn path=/trunk/; revision=2770
2002-03-22 23:07:40 +00:00
Eric Kohl
4fd3b07f1d Started using lookaside lists for SRBs.
Fixed a typo.

svn path=/trunk/; revision=2769
2002-03-22 23:06:58 +00:00
Eric Kohl
a97f4f1164 Disabled debug output.
svn path=/trunk/; revision=2768
2002-03-22 23:05:44 +00:00
Eric Kohl
24f7c7d9bb Pass correct Cdb size.
svn path=/trunk/; revision=2767
2002-03-22 23:05:13 +00:00
Casper Hornstrup
c08aa00a0e Added a binary tree implementation
Added a splay tree implementation
Added a hash table implementation

svn path=/trunk/; revision=2766
2002-03-22 20:58:23 +00:00
Eric Kohl
be5628fdc9 Started support for removable disk drives.
svn path=/trunk/; revision=2765
2002-03-22 20:35:09 +00:00
Eric Kohl
0b0f4a17d0 Fixed default geometry.
svn path=/trunk/; revision=2764
2002-03-22 20:34:15 +00:00
Eric Kohl
270385e857 Added default disk geometry.
svn path=/trunk/; revision=2763
2002-03-22 20:32:36 +00:00
Eric Kohl
a613171558 Fixed atapi block size bug.
svn path=/trunk/; revision=2762
2002-03-22 20:31:26 +00:00
KJK::Hyperion
3b1645e839 some types and constants modified for compatibility with Microsoft POSIX
svn path=/trunk/; revision=2761
2002-03-22 01:26:28 +00:00
KJK::Hyperion
4e0441ed70 dummy include files for compatibility with Microsoft POSIX
svn path=/trunk/; revision=2760
2002-03-22 01:24:49 +00:00
KJK::Hyperion
3fdc53241d useless commit: fixed comment
svn path=/trunk/; revision=2759
2002-03-21 22:50:06 +00:00
KJK::Hyperion
a910a28a31 added read and write syscalls to psxdll, rule for csrapi.a
svn path=/trunk/; revision=2758
2002-03-21 22:49:24 +00:00
KJK::Hyperion
abded70d84 Csr API (temporary - for testing purposes only)
svn path=/trunk/; revision=2757
2002-03-21 22:48:38 +00:00
KJK::Hyperion
8bc9429074 more forward exports to NTDLL
svn path=/trunk/; revision=2756
2002-03-21 22:47:05 +00:00
KJK::Hyperion
75deecc48d implemented read and write system calls
svn path=/trunk/; revision=2755
2002-03-21 22:46:30 +00:00
KJK::Hyperion
9e44e1b4a3 finally working spawn
svn path=/trunk/; revision=2754
2002-03-21 22:43:27 +00:00
KJK::Hyperion
01011e86cc various fixes
svn path=/trunk/; revision=2753
2002-03-21 22:43:13 +00:00
KJK::Hyperion
acbed041bb removed unused variable
svn path=/trunk/; revision=2752
2002-03-21 22:41:53 +00:00
KJK::Hyperion
2584adcb3b fixed code to determine file inode - should work now
svn path=/trunk/; revision=2751
2002-03-21 22:41:20 +00:00
KJK::Hyperion
ecf734386e problem with CVS...
svn path=/trunk/; revision=2750
2002-03-21 22:40:48 +00:00
KJK::Hyperion
82e00a0128 fixed code to determine file inode - should work now
svn path=/trunk/; revision=2749
2002-03-21 22:38:13 +00:00
Eric Kohl
54802d46db Changed drive assignment.
svn path=/trunk/; revision=2748
2002-03-21 19:35:58 +00:00
Eric Kohl
4b4b2c0194 Boot new disk and cdrom drivers instead of ide.sys.
svn path=/trunk/; revision=2747
2002-03-20 21:06:27 +00:00
Eric Kohl
5fa7b5d2e6 Added isotest utility.
svn path=/trunk/; revision=2746
2002-03-20 21:04:46 +00:00
Eric Kohl
68cf79c0ef Try to read disk capacity on startup.
svn path=/trunk/; revision=2745
2002-03-20 20:00:07 +00:00
Eric Kohl
ff879e4069 Fixed minor bugs.
svn path=/trunk/; revision=2744
2002-03-20 19:55:08 +00:00
Eric Kohl
4b81987f15 Fixed minor bug.
svn path=/trunk/; revision=2743
2002-03-20 19:54:06 +00:00
Steven Edwards
5edcdad825 Minor updates. Hope to use in the build system at some point.
svn path=/trunk/; revision=2742
2002-03-20 02:59:42 +00:00
Brian Palmer
25ca1a385c Rewrote .ini file code - should be much faster (especially in bochs)
Leading whitespace in a line is now ignored
Changed .ini file comment character from '#' to ';' to be compatible with MS
There is still a mysterious memory allocation failed bug however!?

svn path=/trunk/; revision=2741
2002-03-20 00:39:32 +00:00
Hartmut Birr
4eaf05b3e3 Disabled the cache access for the page file in VfatReadFile()/VfatWriteFile().
Fixed a return value in NextCluster().

svn path=/trunk/; revision=2740
2002-03-19 02:29:32 +00:00
Eric Kohl
42922e8b27 Implemented ATAPI support.
svn path=/trunk/; revision=2739
2002-03-19 00:48:52 +00:00
Hartmut Birr
5731706583 Fixed creation of environment variable SystemDrive.
svn path=/trunk/; revision=2738
2002-03-18 22:44:42 +00:00
Hartmut Birr
d09531b121 All:
Changed directory and fat access to pining-interface.
Removed unused values from DEVICE_EXTENSION structure.
Changed calculation of available and free clusters.
Changed mount and type determining procedure.
Moved some functions to fsctl.c

volume.c:
Added FAT32 fs type.

dirw.c:
Fixed a directory creation bug on FAT32 (Thanks to Eric Kohl).
Fixed a directory deletion bug.

dir.c:
Fixed a dead lock in DoQuery.
Fixed some memory leakages.

svn path=/trunk/; revision=2737
2002-03-18 22:37:13 +00:00
Eric Kohl
2c21decf9c Fixed Nt/ZwCreatePagingFile() prototype.
svn path=/trunk/; revision=2736
2002-03-18 16:16:47 +00:00
Hartmut Birr
aac1177de4 Implemented RamdrvDispatchDeviceControl for IOCTL_DISK_GET_DRIVE_GEOMETRY.
svn path=/trunk/; revision=2735
2002-03-17 22:31:11 +00:00
Hartmut Birr
933c073785 Implemented FloppyDispatchDeviceControl for IOCTL_DISK_GET_DRIVE_GEOMETRY (not complete).
svn path=/trunk/; revision=2734
2002-03-17 22:28:22 +00:00
Emanuele Aliberti
3f6956a59c PSX: file needed to compile csrterm.
svn path=/trunk/; revision=2733
2002-03-17 22:19:37 +00:00
Emanuele Aliberti
ab561cad5a Initial code for the VT-100 terminal emulator that runs in the W32
subsystem and connects to the PSXSS.EXE (WIP).

svn path=/trunk/; revision=2732
2002-03-17 22:15:39 +00:00
KJK::Hyperion
8571b1561a Moved zlib in reactos/lib/zlib and updated to version 1.1.4
svn path=/trunk/; revision=2731
2002-03-17 21:21:39 +00:00
KJK::Hyperion
dc5296ac57 Moved zlib in reactos/lib/zlib and updated to version 1.1.4
svn path=/trunk/; revision=2730
2002-03-17 21:08:37 +00:00
KJK::Hyperion
5d114d5f6c Added zlib version 1.1.4 to the source tree (contains several bugfixes, some security related). Currently, makefile.reactos is called to make a static zlib.a, not by the master makefile, but by reactos/apps/cabman/makefile, since it's the only part of ReactOS that uses zlib, at the moment
Should this be fixed? should zlib be a DLL? please comment!

svn path=/trunk/; revision=2729
2002-03-17 21:05:05 +00:00
Hartmut Birr
9a02e2c18b Fixed the return value in GetEnvironmentVariable().
svn path=/trunk/; revision=2728
2002-03-17 17:56:57 +00:00
Hartmut Birr
3e432831b1 Added the packed attribute to some structures.
svn path=/trunk/; revision=2727
2002-03-17 17:53:34 +00:00
Hartmut Birr
d9ded3d529 Added a trailing null entry in NtQueryDirectoryObject().
svn path=/trunk/; revision=2726
2002-03-17 17:51:33 +00:00
Hartmut Birr
11edaf36b0 Fixed the copy length in GetSystemDirectory().
svn path=/trunk/; revision=2725
2002-03-17 17:49:56 +00:00
Hartmut Birr
c5dba326b2 Increased the debug print buffer.
svn path=/trunk/; revision=2724
2002-03-17 17:48:17 +00:00
Hartmut Birr
52ec7b4aa1 Fixed the maximum length in DbgPrint().
svn path=/trunk/; revision=2723
2002-03-17 17:23:03 +00:00
Hartmut Birr
6f1ce04e39 Fixed a parameter for IRPMN_MOUNT_VOLUME.
svn path=/trunk/; revision=2722
2002-03-17 17:21:44 +00:00
Eric Kohl
6574059d88 Fixed a 'ghost drives' bug.
svn path=/trunk/; revision=2721
2002-03-17 15:47:31 +00:00
Eric Kohl
831af58934 Improved registry initialization.
svn path=/trunk/; revision=2720
2002-03-16 19:57:26 +00:00
Eric Kohl
c35bee1fdd Added ISA-Bus initialization by Hartmut Birr.
svn path=/trunk/; revision=2719
2002-03-16 16:13:57 +00:00
Eric Kohl
e451a9e365 Moved CreateSystemRootLink() away.
svn path=/trunk/; revision=2718
2002-03-16 00:00:13 +00:00
Casper Hornstrup
e210855943 assertmsg() macro
svn path=/trunk/; revision=2717
2002-03-15 23:24:43 +00:00
Casper Hornstrup
190f4b2256 Configuration manager cleanup.
Added consistency checks.

svn path=/trunk/; revision=2716
2002-03-15 19:46:07 +00:00
Casper Hornstrup
bcc0a8a082 assertmsg() macro
svn path=/trunk/; revision=2715
2002-03-15 19:44:16 +00:00
Eric Kohl
8155941183 Fixed device characteristics.
svn path=/trunk/; revision=2714
2002-03-15 16:35:41 +00:00
Eric Kohl
70bf7d3e28 Added write-ability for ATA devices (harddisks).
svn path=/trunk/; revision=2713
2002-03-15 16:34:52 +00:00
Hartmut Birr
2c92fa8738 Fixed return value in ReadFile().
svn path=/trunk/; revision=2712
2002-03-14 16:35:53 +00:00
Hartmut Birr
b53f18ea54 Fixed a wrong pointer calculation in RtlpCopyParameterString().
svn path=/trunk/; revision=2711
2002-03-14 16:32:49 +00:00
Casper Hornstrup
dd9ae3aba1 Added arcname.o to makefile
svn path=/trunk/; revision=2710
2002-03-13 23:37:25 +00:00
Eric Kohl
7628f451d5 Fixed some function prototypes.
svn path=/trunk/; revision=2709
2002-03-13 20:41:28 +00:00
Eric Kohl
94860ff5bb Moved creation of ARC names into ntoskrnl.
svn path=/trunk/; revision=2708
2002-03-13 01:53:00 +00:00
Eric Kohl
576dc2f69b Moved creation of ARC names into ntoskrnl.
svn path=/trunk/; revision=2707
2002-03-13 01:30:34 +00:00
Eric Kohl
724d0e6c2f Implemented IOCTL_DISK_GET_PARTITION_INFO.
Removed internal disk size limit.

svn path=/trunk/; revision=2706
2002-03-12 20:16:53 +00:00
Brian Palmer
c08d8bcfb9 Fixed bug in LBA code.
svn path=/trunk/; revision=2705
2002-03-12 19:55:08 +00:00
KJK::Hyperion
0ae6e2be42 prototype for __PdxSpawnPosixProcess()
svn path=/trunk/; revision=2704
2002-03-11 20:51:59 +00:00
KJK::Hyperion
fde508f3f3 added __PdxProcessDataToProcessParameters()
svn path=/trunk/; revision=2703
2002-03-11 20:51:16 +00:00
KJK::Hyperion
5c3b75ab41 added missing include
svn path=/trunk/; revision=2702
2002-03-11 20:50:49 +00:00
KJK::Hyperion
0283e02202 updated to reflect modifications to the code
svn path=/trunk/; revision=2701
2002-03-11 20:49:09 +00:00
KJK::Hyperion
b62ac8152f initial code for process attach
svn path=/trunk/; revision=2700
2002-03-11 20:48:25 +00:00
KJK::Hyperion
6d05bb6b7a added a TODO
svn path=/trunk/; revision=2699
2002-03-11 20:48:08 +00:00
KJK::Hyperion
65b82fb4d2 __PdxSpawnPosixProcess() now initializes process parameters too. Almost working!
svn path=/trunk/; revision=2698
2002-03-11 20:46:38 +00:00
KJK::Hyperion
5306bd86fb Added __PdxProcessDataToProcessParameters()
svn path=/trunk/; revision=2697
2002-03-11 20:45:07 +00:00
Brian Palmer
1bd3b67ed2 Reworked LoadAndBootPartition() function, got rid of warnings.
svn path=/trunk/; revision=2696
2002-03-11 18:50:17 +00:00
KJK::Hyperion
1058361a99 typo
svn path=/trunk/; revision=2695
2002-03-10 18:06:08 +00:00
KJK::Hyperion
885b79ec17 added some exports, and tweaked the makefile
svn path=/trunk/; revision=2694
2002-03-10 17:10:30 +00:00
KJK::Hyperion
2e992926e3 finally (and hopefully) functional __PdxSpawnPosixProcess. To be tested
svn path=/trunk/; revision=2693
2002-03-10 17:09:46 +00:00
KJK::Hyperion
cabe571090 __PdxSerializeProcessData and __PdxUnserializeProcessData calls
svn path=/trunk/; revision=2692
2002-03-10 17:04:07 +00:00
KJK::Hyperion
e2f5d4b2f6 prototypes for __PdxSerializeProcessData and __PdxUnserializeProcessData
svn path=/trunk/; revision=2691
2002-03-10 17:03:18 +00:00
Phillip Susi
5126871fcf Some fixes for the expression evaluator:
Evaluate static symbols
Evaulate local symbols
Still has bugs locating type definitions, at least for pointer types
There also seems to be a bug matching up lines of source with the correct instruction addresses

svn path=/trunk/; revision=2690
2002-03-09 20:51:43 +00:00
Emanuele Aliberti
48e308623c I added Steven Edwards and KJK::Hyperion to the rccp.
More to come as soon as I finish scanning the cvs-commit list.

svn path=/trunk/; revision=2689
2002-03-09 16:04:50 +00:00
Hartmut Birr
5fbc8d0a6e Fixed a dead lock between an APC (delivered from IoCompleteRequest)
and a call to KeWaitForSingleObject.

svn path=/trunk/; revision=2688
2002-03-08 17:04:03 +00:00
Eric Kohl
7828679470 Silenced it.
Minor cleanup.

svn path=/trunk/; revision=2687
2002-03-08 12:03:28 +00:00
Eric Kohl
13ea277979 Added IOCTL_DISK_GET_PARTITION_INFO.
Silenced it.

svn path=/trunk/; revision=2686
2002-03-08 12:01:26 +00:00
Eric Kohl
c10817479d Silenced it.
svn path=/trunk/; revision=2685
2002-03-08 11:59:49 +00:00
Eric Kohl
339287ad60 Recognizes CD-ROM drives.
svn path=/trunk/; revision=2684
2002-03-08 11:59:08 +00:00
Eric Kohl
c309738334 Improved recognition of ATAPI devices.
Minor cleanup.

svn path=/trunk/; revision=2683
2002-03-08 11:58:23 +00:00
KJK::Hyperion
9ccb920754 Fixed typo
svn path=/trunk/; revision=2682
2002-03-07 06:08:00 +00:00
KJK::Hyperion
d57ab3df35 introducing __PdxSpawnPosixProcess(). Still some linker warnings, will solve tomorrow
svn path=/trunk/; revision=2681
2002-03-07 06:07:31 +00:00
KJK::Hyperion
a681b85839 FdTable field in the process data is no more a pointer
svn path=/trunk/; revision=2680
2002-03-07 06:03:11 +00:00
KJK::Hyperion
eb3d1a3163 created datatype for the denormalized process data block
svn path=/trunk/; revision=2679
2002-03-07 05:48:35 +00:00
KJK::Hyperion
b9dbbc8eb8 preliminary spawn code (untested yet)
svn path=/trunk/; revision=2678
2002-03-07 05:46:03 +00:00
Emanuele Aliberti
57c6671059 Little work on InitializeFmIfs
svn path=/trunk/; revision=2677
2002-03-07 00:24:24 +00:00
Brian Palmer
513784c84a Fixed a bug in the LBA extensions detection code.
Fixed a bug in the root directory size calculations for FAT12 & FAT16 (I must have been smoking something when I wrote that).
Started work on new .ini file code, the old stuff is just way too slow.

svn path=/trunk/; revision=2676
2002-03-06 18:32:22 +00:00
Eric Kohl
dfbd52f882 Handles are no longer used to create type objects.
svn path=/trunk/; revision=2675
2002-03-06 12:40:47 +00:00
Steven Edwards
3fd9aedce9 added tapi32.dll and wintrust.dll to ROS_BUILD_WINE
svn path=/trunk/; revision=2674
2002-03-05 12:48:40 +00:00
Eric Kohl
3783d01bf9 Fixed remainingcalls to ObGetReferenceCount() and ObGetHandleCount().
svn path=/trunk/; revision=2673
2002-03-05 11:33:12 +00:00
Eric Kohl
8532827baf Added ObGetObjectHandleCount().
svn path=/trunk/; revision=2672
2002-03-05 00:20:54 +00:00
Eric Kohl
193d7e020b Fixed a typo.
svn path=/trunk/; revision=2671
2002-03-05 00:05:28 +00:00
Eric Kohl
c6d18aba96 Enabled reading of multiple sectors.
svn path=/trunk/; revision=2670
2002-03-04 22:31:51 +00:00
Steven Edwards
ab94337372 added urlmon.dll to ROS_BUILD_WINE
svn path=/trunk/; revision=2669
2002-03-04 12:42:30 +00:00
Eric Kohl
2867dd6eab Fixed stupid bugs.
svn path=/trunk/; revision=2668
2002-03-03 23:46:01 +00:00
Eric Kohl
6146ce21ba no message
svn path=/trunk/; revision=2667
2002-03-03 19:47:58 +00:00
Eric Kohl
d4186cf428 Fixed a typo, thanks to Hartmut Birr.
Completion routine will called only once.

svn path=/trunk/; revision=2666
2002-03-03 19:39:10 +00:00
Phillip Susi
16c7c6fa94 Fixed path separator issue for people using cmd instead of sh
svn path=/trunk/; revision=2665
2002-03-03 17:52:01 +00:00
KJK::Hyperion
f090eec7df mistakes in templates second part
svn path=/trunk/; revision=2664
2002-03-03 17:24:04 +00:00
KJK::Hyperion
7631564040 whoops - silly mistake in templates
svn path=/trunk/; revision=2663
2002-03-03 17:23:29 +00:00
Steven Edwards
3c460dc0c3 build and install mapi32.dll as part of ROS_BUILD_WINE
svn path=/trunk/; revision=2662
2002-03-03 10:51:51 +00:00
Eric Kohl
4c0500171e Implemented IOCTL_DISK_GET_PARTITION_INFO.
Fixed bug in IOCTL_DISK_GET_DRIVE_GEOMETRY.

svn path=/trunk/; revision=2660
2002-03-01 23:18:35 +00:00
Eric Kohl
82b7a361af Started implementing type objects.
Some object manager cleanup.

svn path=/trunk/; revision=2659
2002-03-01 00:47:40 +00:00
Hartmut Birr
3accb67df3 Fixed the 'event wait bug' in MmRequestPageMemoryConsumer.
svn path=/trunk/; revision=2658
2002-02-28 17:44:48 +00:00
Eric Kohl
e96e35d335 Removed useless controller object.
svn path=/trunk/; revision=2657
2002-02-27 22:50:31 +00:00
Brian Palmer
b764471786 Improved memory management
The heap now sets it's size at run time instead of being hard coded

svn path=/trunk/; revision=2656
2002-02-27 21:33:59 +00:00
David Welch
463cc8858c Applied Harmut Birr's patch
svn path=/trunk/; revision=2655
2002-02-27 01:12:26 +00:00
Brian Palmer
ad979612af Fix for buffer conflict between fat code and cache code - by Mike Lerwill
svn path=/trunk/; revision=2654
2002-02-26 23:17:22 +00:00
Eric Kohl
e6b4f4973d Free an SRB after use.
svn path=/trunk/; revision=2653
2002-02-26 23:02:14 +00:00
Phillip Susi
fd4c65ede9 Fixed _vsnprintf() to actually use the buffer size limit to prevent buffer overflows
Sorry, but I had to re indent and tabify this code, I could not read it because it was all screwed up before.

svn path=/trunk/; revision=2652
2002-02-26 05:59:00 +00:00
Brian Palmer
c66e8c39d3 Added full disk partition management functions
Extended partitions are supported (untested)
If you call OpenDrive() with Partition == 0 you get the active (or bootable) partition
Partitions 1 - 4 are the primary partitions
Partitions 5 - n are the extended partitions
Also added disk parameter detection code (always assumes 512 byte sector size, I don't like that but I don't see any other way)

svn path=/trunk/; revision=2651
2002-02-26 00:26:35 +00:00
Phillip Susi
f83db8cc84 Fixed debug print to not overflow the stack on long prints.
Increased buffer from 512 to 1024 bytes, and truncate string using _vsnprintf()

svn path=/trunk/; revision=2650
2002-02-25 22:45:04 +00:00
Phillip Susi
9594f61e1f Fixed typeo in etags target
svn path=/trunk/; revision=2649
2002-02-25 21:51:43 +00:00
Phillip Susi
75c16ac538 Removed incorrect path seperator replacement
svn path=/trunk/; revision=2648
2002-02-25 05:07:35 +00:00
Emanuele Aliberti
21a85d799e Minor changes for making apps/baresh compile (tough it doesn't work yet).
svn path=/trunk/; revision=2647
2002-02-24 22:14:05 +00:00
Emanuele Aliberti
20037ec24c Modified demo LPC server and client with verbose output.
svn path=/trunk/; revision=2646
2002-02-24 17:44:22 +00:00
Jason Filby
0a549d94c9 New 0019 release date
svn path=/trunk/; revision=2644
2002-02-24 13:10:37 +00:00
Eric Kohl
265859b2aa Fixed showstopper!
svn path=/trunk/; revision=2643
2002-02-23 23:08:58 +00:00
Steven Edwards
558200355f dll baseaddress list, may be used as part of future build process.
Please help keep it up2date.

svn path=/trunk/; revision=2642
2002-02-23 03:52:18 +00:00
Eric Kohl
14f393cb80 Added some more prototypes
svn path=/trunk/; revision=2641
2002-02-22 17:57:57 +00:00
Eric Kohl
e21b78b3e3 Added ObGetObjectPointerCount() and SetokenImpersonationLevel().
svn path=/trunk/; revision=2640
2002-02-22 13:36:24 +00:00
Jason Filby
fc7aea5826 Version 0.0.19
svn path=/trunk/; revision=2639
2002-02-21 22:48:39 +00:00
Eric Kohl
e8082ff034 Removed common TOKEN_CONTROL structure.
svn path=/trunk/; revision=2638
2002-02-20 22:51:48 +00:00
Eric Kohl
8393800e76 Started security manager initialization.
Some cleanup.

svn path=/trunk/; revision=2637
2002-02-20 20:16:49 +00:00
KJK::Hyperion
19ad3d7a30 purely cosmetic commit: edited the introductory comments of several files to uniform them to a common format, added $Id$ macro to all files, cleanup from legacy stuff, fully commented templates
svn path=/trunk/; revision=2636
2002-02-20 09:17:58 +00:00
KJK::Hyperion
e858ec1801 whoops - forgot to commit header files
svn path=/trunk/; revision=2635
2002-02-20 07:13:22 +00:00
KJK::Hyperion
ad8ae0a2f5 now introducing the POSIX+ client DLL! (my first check-in, hope I don't f*** up something)
svn path=/trunk/; revision=2634
2002-02-20 07:06:52 +00:00
Eric Kohl
4e9d91b819 Removed unused code.
svn path=/trunk/; revision=2633
2002-02-19 14:06:36 +00:00
Eric Kohl
40a007aba1 - Fixed object creation. Named objects are now automatically attached to a parent directory object.
- Minor header cleanup.

svn path=/trunk/; revision=2632
2002-02-19 00:09:25 +00:00
Hartmut Birr
46cef7fc9b Fixed the 'Frequent Crasher Bug'.
svn path=/trunk/; revision=2631
2002-02-18 18:41:23 +00:00
Hartmut Birr
be9ed281e0 Fixed some overruns with a not zero terminated string and a given precision specification.
svn path=/trunk/; revision=2630
2002-02-18 18:39:31 +00:00
Hartmut Birr
d1cfd4ffdb Changed from Nt to Zw functions in VGAResetDevice.
svn path=/trunk/; revision=2629
2002-02-16 22:00:52 +00:00
Jason Filby
c9d3381474 disable debugging messages
svn path=/trunk/; revision=2628
2002-02-16 00:51:02 +00:00
Hartmut Birr
3ea1b601d2 Restore the 80x50 mode in VGAResetDevice().
svn path=/trunk/; revision=2627
2002-02-15 20:17:10 +00:00
Hartmut Birr
409ce02fa7 In W32kDeleteDC call UnreferenceDriver only for non memory DC.
This will fix the second gditest bug.

svn path=/trunk/; revision=2626
2002-02-15 20:14:43 +00:00
Eric Kohl
9ca5a97711 Removed obsolete functions/protypes HalInitFirstTask() and HalSwitchTask().
Renamed misleading function HalReleaseTask() to KeReleaseThread().

svn path=/trunk/; revision=2625
2002-02-15 14:47:55 +00:00
Brian Palmer
67d2ffb153 Fixed bug in partition table code where it incorrectly calculated the partition start sector
svn path=/trunk/; revision=2624
2002-02-14 23:11:05 +00:00
Hartmut Birr
40910fe910 Set the min size of an allocated block to the size of the free block header.
This fix the gditest bug.

svn path=/trunk/; revision=2623
2002-02-14 00:07:23 +00:00
Jason Filby
b90a7afc42 No need to load vgamp.sys on startup
svn path=/trunk/; revision=2622
2002-02-12 12:30:46 +00:00
Jason Filby
252d2dbf1d Reenable CSRSS process detection
svn path=/trunk/; revision=2621
2002-02-12 12:00:28 +00:00
Casper Hornstrup
f57567e347 Capture debug prints in PICE.
Break into PICE on control+d.

svn path=/trunk/; revision=2620
2002-02-10 20:21:40 +00:00
Eric Kohl
7a5ecf6515 Implemented expansion of REG_MULTI_SZ.
svn path=/trunk/; revision=2619
2002-02-10 13:55:45 +00:00
Casper Hornstrup
bfe7eb862e Display driver name when loading it.
svn path=/trunk/; revision=2618
2002-02-10 13:35:37 +00:00
Casper Hornstrup
7115aab674 Added Private ICE to main makefile.
svn path=/trunk/; revision=2617
2002-02-10 02:02:15 +00:00
Casper Hornstrup
59c5e836e1 Made it easier to add new keyboard layouts.
Added Danish keyboard layout (DK).

svn path=/trunk/; revision=2616
2002-02-10 02:01:31 +00:00
Eric Kohl
0ce194ac1a Fixed wrong string length calculation in RtlAppendUnicodeToString().
svn path=/trunk/; revision=2615
2002-02-09 23:29:50 +00:00
Casper Hornstrup
0fdb820f0b Oops...don't load that driver.
svn path=/trunk/; revision=2614
2002-02-09 19:20:44 +00:00
Casper Hornstrup
430a416722 Accept /DEBUGPORT=GDB and /DEBUGPORT=PICE on command line.
Break into debugger on KeBugCheckEx() if available.
Fixed typo in readme.txt.

svn path=/trunk/; revision=2613
2002-02-09 18:41:24 +00:00
Eugene Ingerman
effa2fbabb Fixed locals and evaluation in pice.
svn path=/trunk/; revision=2612
2002-02-09 07:34:05 +00:00
Brian Palmer
bfa03497ad CacheInitializeDrive() no longer retains old cache data on removable drives
Fixed small bug where it could possibly try to read more sectors than the BIOS supports

svn path=/trunk/; revision=2611
2002-02-08 23:58:12 +00:00
Casper Hornstrup
1cc5bd55b6 Removed or changed debug prints printed at boot.
svn path=/trunk/; revision=2610
2002-02-08 02:57:10 +00:00
Steven Edwards
565837d1f1 updated to install winhello and winefile
svn path=/trunk/; revision=2609
2002-02-07 03:22:04 +00:00
Steven Edwards
168b55e958 cleanup + finger client
svn path=/trunk/; revision=2608
2002-02-07 01:32:20 +00:00
Eric Kohl
1d0d9fbf9f Implemented [Nt/Zw]QueryMultipleValueKey().
svn path=/trunk/; revision=2607
2002-02-06 01:23:10 +00:00
Hartmut Birr
52d2359910 Fixed some bugs in vfatMakeAbsoluteFilename/VfatOpenFile with relative filenames.
svn path=/trunk/; revision=2606
2002-02-05 21:32:30 +00:00
Hartmut Birr
b95ed3ddf1 Fixed a bug in DoQuery with empty serach pattern strings after the first call to DoQuery.
svn path=/trunk/; revision=2605
2002-02-05 21:31:03 +00:00
Eric Kohl
48fa361844 Added system.hiv to boot modules.
svn path=/trunk/; revision=2604
2002-02-05 15:53:20 +00:00
Eric Kohl
916157c159 Implemented value enumeration in RtlQueryRegistryValues().
svn path=/trunk/; revision=2603
2002-02-05 15:42:41 +00:00
Eric Kohl
5d67a14618 Fixed name string length and termination for KeyValueBasicInformation and KeyValueFullInformation.
svn path=/trunk/; revision=2602
2002-02-05 02:48:56 +00:00
Phillip Susi
1815855fb6 Fixed linkage to unbzip2.sys, working again
svn path=/trunk/; revision=2601
2002-02-05 02:30:13 +00:00
Phillip Susi
2a7825f502 Balenced paged and non paged pool sizes to 100 megs each, instead of 4 paged and 400 non
svn path=/trunk/; revision=2600
2002-02-05 02:24:29 +00:00
Casper Hornstrup
14a6c7e57d Removed old HAL.
svn path=/trunk/; revision=2599
2002-02-04 22:13:02 +00:00
Steven Edwards
9808ba2cb8 Fixed a typo - Guido de Jong
svn path=/trunk/; revision=2598
2002-02-04 13:08:58 +00:00
Eric Kohl
1768fa6632 Fixed a typo.
svn path=/trunk/; revision=2597
2002-02-04 01:21:03 +00:00
Emanuele Aliberti
09ce94865b Rollback to old LPC_MESSAGE_HEADER.
svn path=/trunk/; revision=2596
2002-02-03 22:32:18 +00:00
Eric Kohl
246369a31b Updates to the disk driver stack.
svn path=/trunk/; revision=2595
2002-02-03 20:21:59 +00:00
Eugene Ingerman
95410deae9 Fix for current source line unassembly bug in pice.
svn path=/trunk/; revision=2594
2002-02-03 01:10:16 +00:00
Eric Kohl
cca6500c93 Fixed broken serial debug logging.
The gdb interface is enabled by the /GDB option on the command line.

svn path=/trunk/; revision=2593
2002-02-02 20:13:42 +00:00
Phillip Susi
01ab93badd Oops! binary libraries should't be in CVS!
svn path=/trunk/; revision=2592
2002-02-02 18:00:54 +00:00
Phillip Susi
ccaafe31cf Use LARGE_INTEGER for section view size, as expected by NtCreateSection
Original Patch by Guido de Jong

svn path=/trunk/; revision=2591
2002-02-02 17:15:22 +00:00
Phillip Susi
51357bf8aa Changed NULL to 0 where integer expected, to get rid of warning
Patch by Guido de Jong.

svn path=/trunk/; revision=2590
2002-02-02 17:14:40 +00:00
Hartmut Birr
c64bcfabad Fixed a buffer overflow in DoQuery, if the unicode string (search pattern) isn't zero-terminated.
Fixed the returned length for the file names.
Fixed the returned status at the end of a directory scan.

svn path=/trunk/; revision=2589
2002-02-02 14:04:55 +00:00
Phillip Susi
a5549b5653 Build unbzip2.sys as export driver, instead of unbzip2.dll
svn path=/trunk/; revision=2587
2002-01-31 20:26:25 +00:00
Phillip Susi
f17ca2d3d9 Link to unbzip2.sys
svn path=/trunk/; revision=2586
2002-01-31 20:22:12 +00:00
Phillip Susi
8e5647c51a A few minor changes
svn path=/trunk/; revision=2585
2002-01-31 20:22:00 +00:00
Eric Kohl
8acb48f0de Added cdrom class driver skeleton.
svn path=/trunk/; revision=2584
2002-01-31 15:02:12 +00:00
Eric Kohl
ae35748cfa Disk driver stack update.
svn path=/trunk/; revision=2583
2002-01-31 14:58:52 +00:00
Eugene Ingerman
760f3874ca no message
svn path=/trunk/; revision=2582
2002-01-31 05:30:06 +00:00
Eugene Ingerman
1cdf4f9806 Fixed source code display on breakpoint in pice.
svn path=/trunk/; revision=2581
2002-01-31 05:29:28 +00:00
Steven Edwards
c331ef4c1b fix a couple of warnings - Guido de Jong
svn path=/trunk/; revision=2580
2002-01-31 04:22:50 +00:00
Eugene Ingerman
8d8acf54de Debug output cleanup.
svn path=/trunk/; revision=2579
2002-01-30 20:42:04 +00:00
Eugene Ingerman
23b672891b Porting pice. Workaround for a bug in gcc. Some other small stuff.
svn path=/trunk/; revision=2578
2002-01-30 19:45:24 +00:00
Eugene Ingerman
87b5401bff Porting pice. Bug fixes for disassembly.
svn path=/trunk/; revision=2577
2002-01-29 07:22:26 +00:00
Eugene Ingerman
e8e9853e27 Porting pice. Bug fixes.
svn path=/trunk/; revision=2576
2002-01-29 04:21:17 +00:00
Steven Edwards
ae77777da5 added finger to makefile
svn path=/trunk/; revision=2575
2002-01-28 08:38:22 +00:00
Steven Edwards
c8abcc5cb4 Take care of some warnings and remove a unused header in finger
svn path=/trunk/; revision=2574
2002-01-28 08:37:34 +00:00
Steven Edwards
b80ba17572 finger client for reactos
svn path=/trunk/; revision=2573
2002-01-28 07:17:21 +00:00
David Welch
130144b797 Fixed clean rule
svn path=/trunk/; revision=2572
2002-01-27 17:28:16 +00:00
David Welch
c34c3cfae4 Added missing files
Updated .cvsignore files

svn path=/trunk/; revision=2571
2002-01-27 14:47:44 +00:00
David Welch
0f6c1e0177 Added missing file
svn path=/trunk/; revision=2570
2002-01-27 14:08:00 +00:00
David Welch
7d915349e5 Fixes for problems with win32k
svn path=/trunk/; revision=2569
2002-01-27 03:25:45 +00:00
Eric Kohl
f48e849f05 Basic work on disk driver stack (still incomplete).
svn path=/trunk/; revision=2568
2002-01-27 01:25:49 +00:00
David Welch
8dff4a88dc More user work
svn path=/trunk/; revision=2567
2002-01-27 01:11:24 +00:00
Phillip Susi
c4a09186d3 Fixed vma command to show kernel memory space too, not just user
svn path=/trunk/; revision=2566
2002-01-27 00:34:59 +00:00
Phillip Susi
eea1010947 Fixed page fault handler to walk the correct memory space ( kernel or user ) depending on where the address is
svn path=/trunk/; revision=2565
2002-01-27 00:33:36 +00:00
Casper Hornstrup
b2f22718cc Remove build tools on make clean.
Patches from Guido de Jong.

svn path=/trunk/; revision=2564
2002-01-26 23:56:15 +00:00
Steven Edwards
6be4e2ac3a Updated license information for whois and ncftp.
svn path=/trunk/; revision=2563
2002-01-26 21:44:32 +00:00
David Welch
1a131779a2 Updated ntoskrnl win32 support
svn path=/trunk/; revision=2562
2002-01-26 21:22:48 +00:00
David Welch
aebf70e07f Present large reads to the filesystem from CcCopyRead
svn path=/trunk/; revision=2561
2002-01-26 21:21:02 +00:00
Phillip Susi
b51e21217f Fixed keyboard scancode maps for US keyboards
svn path=/trunk/; revision=2560
2002-01-26 19:46:36 +00:00
Eric Kohl
26c5adcb95 Added support for IRP_MJ_SCSI
svn path=/trunk/; revision=2559
2002-01-26 17:59:25 +00:00
Emanuele Aliberti
35fb40b8b7 LPC message types changed from macros to a enum type (LPC_TYPE).
svn path=/trunk/; revision=2558
2002-01-26 11:19:18 +00:00
Phillip Susi
8779eb9ec7 Read files in non cached mode, much faster this way
svn path=/trunk/; revision=2557
2002-01-26 08:09:21 +00:00
Phillip Susi
48908e14cc Fixed IoCreateFile to recognize the FILE_NO_INTERMEDIATE_BUFFERING flag
svn path=/trunk/; revision=2556
2002-01-26 06:20:16 +00:00
Phillip Susi
72e047dd5b Fixed bug in SwitchTable
svn path=/trunk/; revision=2555
2002-01-26 05:54:25 +00:00
Eugene Ingerman
6c0fa06e39 Porting pice. Fixed bug in interrupt handling.
svn path=/trunk/; revision=2554
2002-01-26 05:17:45 +00:00
Steven Edwards
12359f4a27 Updated to install whois and edit
svn path=/trunk/; revision=2553
2002-01-26 03:23:25 +00:00
Steven Edwards
8d8fea751b updated makefile to build regsvr32
svn path=/trunk/; revision=2552
2002-01-26 01:37:35 +00:00
Eugene Ingerman
5850033b27 Added a few definitions for pice.
svn path=/trunk/; revision=2551
2002-01-26 01:11:04 +00:00
Phillip Susi
ab6e9ba7b7 Fixed a file IO calls to handle failure correctly
svn path=/trunk/; revision=2550
2002-01-25 01:46:51 +00:00
Phillip Susi
5f282abf99 Fixed infinite recursive call in debug print
svn path=/trunk/; revision=2549
2002-01-25 01:45:54 +00:00
Eric Kohl
56275af6c3 Fixed drive identification bug.
svn path=/trunk/; revision=2548
2002-01-24 10:04:50 +00:00
Brian Palmer
148e40a24e Reworked the boot sector & boot drive code
You can again use FreeLoader to dual boot between two drives or a boot sector file

svn path=/trunk/; revision=2547
2002-01-24 00:59:16 +00:00
Casper Hornstrup
5a6adb4f13 Added GNU Debugger stub for remote debugging.
Fixed bugs in NtQueryDirectoryObject.
Added static library target.

svn path=/trunk/; revision=2546
2002-01-23 23:39:26 +00:00
Brian Palmer
198a544138 Removed code to save screen contents before entering freeldr
Moved all architecture specific code to the arch & arch/i386 directories
Renamed asmcode.* to arch.*

svn path=/trunk/; revision=2545
2002-01-23 19:57:42 +00:00
Brian Palmer
fd75e7d985 Improved disk error reporting
svn path=/trunk/; revision=2544
2002-01-22 23:56:08 +00:00
Steven Edwards
4694f10044 updated to build whois client
svn path=/trunk/; revision=2543
2002-01-22 00:10:09 +00:00
Steven Edwards
f853dfb8a1 BSD 4.x whois client for win32.
svn path=/trunk/; revision=2542
2002-01-21 23:13:45 +00:00
Phillip Susi
905afd86d0 Removed duplicate definition of IO_COUNTERS structure
svn path=/trunk/; revision=2541
2002-01-21 22:35:30 +00:00
Phillip Susi
e5d54247ac Fixed several warnings by #includeing ctype.h, and marking several very long integral constants with the LL suffix
svn path=/trunk/; revision=2540
2002-01-21 22:34:55 +00:00
Hartmut Birr
57bf0a56e5 Added ntoskrnl.sym to install rule.
svn path=/trunk/; revision=2539
2002-01-21 22:34:36 +00:00
Phillip Susi
63546989b5 Replased improper use of NULL with 0 to get rid of warnings
svn path=/trunk/; revision=2538
2002-01-21 22:32:59 +00:00
Hartmut Birr
f32fe94b88 Removed IoGetCurrentIrpStackLocation from some functions.
svn path=/trunk/; revision=2537
2002-01-21 22:30:27 +00:00
Hartmut Birr
8a8f132dbf Added the packed attribute to IO_STACK_LOCATION.
svn path=/trunk/; revision=2536
2002-01-21 22:28:45 +00:00
Hartmut Birr
b4ee5e08ee Changed the macros IoGetCurrentIrpStackLocation and IoGetNextIrpStackLocation to the old state.
svn path=/trunk/; revision=2535
2002-01-21 22:27:36 +00:00
Eric Kohl
28c174051d Fixed some function declarations.
svn path=/trunk/; revision=2534
2002-01-21 11:42:04 +00:00
Eugene Ingerman
88650ed55e Porting pice. Bug fixes.
svn path=/trunk/; revision=2533
2002-01-21 10:03:50 +00:00
Emanuele Aliberti
656f7cb1f4 Test crt0 for the PSX subsystem.
svn path=/trunk/; revision=2532
2002-01-20 21:24:49 +00:00
Emanuele Aliberti
e031e6192e Bare shell for testing the PSX subsystem (not ready yet).
svn path=/trunk/; revision=2531
2002-01-20 21:22:29 +00:00
Brian Palmer
b26dfc9d77 Fixed bug that occurred during DEBUG builds
svn path=/trunk/; revision=2530
2002-01-19 09:40:29 +00:00
Eric Kohl
a2760cfdd4 Disabled nls file loading
svn path=/trunk/; revision=2529
2002-01-19 03:30:28 +00:00
Brian Palmer
5db0abce79 Better LBA support
Correctly determines FAT type based on cluster count instead of partition id

svn path=/trunk/; revision=2528
2002-01-19 00:37:06 +00:00
Eric Kohl
c5c65dd160 Fixed obvious typos.
svn path=/trunk/; revision=2527
2002-01-18 22:43:51 +00:00
Eric Kohl
c78f940a00 Added missing prototype.
svn path=/trunk/; revision=2526
2002-01-18 22:42:25 +00:00
Brian Palmer
41e1df9977 Recommitting file as binary
svn path=/trunk/; revision=2525
2002-01-18 19:20:32 +00:00
Brian Palmer
b80569cee7 Accidentally committed this file without the -kb flag
svn path=/trunk/; revision=2524
2002-01-18 19:19:43 +00:00
Brian Palmer
ec2583c6d5 Added disk cache
Optimized disk reads so it reads a track at a time or 64k if LBA

svn path=/trunk/; revision=2523
2002-01-18 05:59:58 +00:00
Emanuele Aliberti
ff0495900e Year, in the copyright string, updated.
svn path=/trunk/; revision=2522
2002-01-17 23:26:26 +00:00
Emanuele Aliberti
e5d9890c6c KERNEL_VERSION macro removed from reactos/version.h.
Use the dinamically generated macros in reactos/buildno.h.

svn path=/trunk/; revision=2521
2002-01-17 23:22:58 +00:00
Emanuele Aliberti
43348bb6dc FsRtlIsNtstatusExpected fixed (Bo Branten reported the bug).
svn path=/trunk/; revision=2520
2002-01-17 23:17:39 +00:00
Hartmut Birr
035f768d4a Added some fixes for accessing the page file.
svn path=/trunk/; revision=2519
2002-01-15 21:54:51 +00:00
Casper Hornstrup
550ffd05d5 Fixed compilation error.
svn path=/trunk/; revision=2518
2002-01-15 20:08:48 +00:00
Eugene Ingerman
b438e48231 Porting pice. Forgot this one.
svn path=/trunk/; revision=2517
2002-01-15 04:37:08 +00:00
Eugene Ingerman
3595be74a5 Porting pice. Intermediate checkin. Now compiles and runs a little bit.
svn path=/trunk/; revision=2516
2002-01-15 04:35:14 +00:00
David Welch
793bbe0455 Implemented NtW32Call and NtCallbackReturn
Updated some .cvsignore files

svn path=/trunk/; revision=2515
2002-01-15 02:51:32 +00:00
Phillip Susi
e136b71248 NtW32Call was causing a compile error and didn't do anything anyhow, so I changed it back to be UNIMPLEMENTED so things will compile.
By the way, what is this function for?

svn path=/trunk/; revision=2514
2002-01-15 01:42:57 +00:00
David Welch
0267a0a1c8 More missing files.
svn path=/trunk/; revision=2513
2002-01-15 00:43:18 +00:00
Eugene Ingerman
2aceac7176 Porting pice. Intermediate checkin. Now compiles.
svn path=/trunk/; revision=2512
2002-01-14 22:04:09 +00:00
David Welch
f36ace9e25 More missing files
svn path=/trunk/; revision=2511
2002-01-14 09:12:22 +00:00
Eric Kohl
d2b345f07d Fixed registry bug.
svn path=/trunk/; revision=2510
2002-01-14 04:51:15 +00:00
Eric Kohl
13b04f00b5 Added atapi disk driver stack (disabled).
svn path=/trunk/; revision=2509
2002-01-14 01:49:47 +00:00
Eric Kohl
f541fc1ccf Install disk drivers and *.nls files.
svn path=/trunk/; revision=2508
2002-01-14 01:47:44 +00:00
Eric Kohl
b25339ac84 Improved disk driver stack.
svn path=/trunk/; revision=2507
2002-01-14 01:45:03 +00:00
Eric Kohl
89ff8f7de2 Split rtl.h into rtl.h and rtltypes.h.
svn path=/trunk/; revision=2506
2002-01-14 01:41:08 +00:00
David Welch
47910ad286 Added missing files
svn path=/trunk/; revision=2505
2002-01-14 01:11:58 +00:00
David Welch
43b2190795 Began work on message queue and default window procedure
svn path=/trunk/; revision=2504
2002-01-13 22:52:08 +00:00
Emanuele Aliberti
a600e78a7a Minor changes and some interfaces updated in FsRtl.
svn path=/trunk/; revision=2503
2002-01-13 22:02:31 +00:00
Eugene Ingerman
2c1c5c45b1 Porting pice. Intermediate checkin.
svn path=/trunk/; revision=2502
2002-01-13 08:47:32 +00:00
Eric Kohl
fd4d47ccfc Ignore '\r' in HalDisplayString().
svn path=/trunk/; revision=2499
2002-01-10 01:01:27 +00:00
Eric Kohl
25c85c7dfe KeBugCheck() calls KeBugCheckEx().
KeBugCheckEx() displays additional bug message.

svn path=/trunk/; revision=2498
2002-01-10 00:59:32 +00:00
Eric Kohl
1208d849d0 Added message table to resouces.
Fixed a duplicate message definition.

svn path=/trunk/; revision=2497
2002-01-10 00:57:30 +00:00
Eric Kohl
17b74887c6 Fixed type casts.
svn path=/trunk/; revision=2496
2002-01-10 00:55:23 +00:00
David Welch
fe7d926068 More swapping fixes
svn path=/trunk/; revision=2495
2002-01-09 03:00:21 +00:00
Eugene Ingerman
3a8ce6bf63 Porting pice. Changed symbolic information handling.
svn path=/trunk/; revision=2494
2002-01-08 20:44:18 +00:00
David Welch
8cb9f1dd16 More swapping fixes
svn path=/trunk/; revision=2493
2002-01-08 00:49:02 +00:00
Jason Filby
b93878d368 regsvr32 from Jurgen Van Gael
svn path=/trunk/; revision=2492
2002-01-07 21:12:10 +00:00
Jason Filby
5e182b5ed0 olectl.h from Jurgen Van Gael
svn path=/trunk/; revision=2491
2002-01-07 21:10:33 +00:00
Hartmut Birr
da2423a49a Fixed the mapping of MmPageArray.
This solves the >134MB crash.

svn path=/trunk/; revision=2490
2002-01-05 11:31:05 +00:00
Casper Hornstrup
a9c89818ae Added application that will display statistics for ReactOS source code.
svn path=/trunk/; revision=2489
2002-01-04 23:50:58 +00:00
Casper Hornstrup
598cb0cb4c Fixed compilation of wmc.
svn path=/trunk/; revision=2488
2002-01-04 23:40:13 +00:00
David Welch
cc47e7056e Zero page list
svn path=/trunk/; revision=2487
2002-01-04 23:39:07 +00:00
Eugene Ingerman
fa8eafcb38 Porting pice. Added coff symbol parsing to pice, and some other small things.
svn path=/trunk/; revision=2486
2002-01-04 23:37:29 +00:00
Hartmut Birr
fae2e4844a Fixed a wrong initialisation in PiDeleteProcess().
svn path=/trunk/; revision=2485
2002-01-04 22:35:26 +00:00
Hartmut Birr
6837f9c4ef Fixed the return value for the root key in GetMaxValueNameLength().
svn path=/trunk/; revision=2484
2002-01-04 22:07:38 +00:00
Eric Kohl
0d5652813b Started kernel queue implementation.
Added win32k support functions.

svn path=/trunk/; revision=2483
2002-01-04 13:09:37 +00:00
David Welch
f376a8013e Fixes so wmc compiled on non-windows platforms
svn path=/trunk/; revision=2482
2002-01-04 03:12:13 +00:00
Casper Hornstrup
e2bd4b9b87 Removed reference to bitops.h
svn path=/trunk/; revision=2481
2002-01-04 00:23:54 +00:00
David Welch
c79d00b49a Fixed LPC section bug
svn path=/trunk/; revision=2480
2002-01-03 22:52:29 +00:00
Eric Kohl
059a7a0f64 Implemented process and thread notification routines.
svn path=/trunk/; revision=2479
2002-01-03 18:02:34 +00:00
Eric Kohl
041c7d16a5 Added massage table.
svn path=/trunk/; revision=2478
2002-01-03 14:52:05 +00:00
Eric Kohl
1806f623e7 Implemented PsLookupXxx() functions.
svn path=/trunk/; revision=2477
2002-01-03 14:03:05 +00:00
Casper Hornstrup
3221f88ce3 Free memory for symbols when process is terminated.
svn path=/trunk/; revision=2476
2002-01-03 12:48:02 +00:00
Hartmut Birr
a4178da184 Fixed the length for the registry key HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION.
svn path=/trunk/; revision=2475
2002-01-03 11:09:35 +00:00
Casper Hornstrup
09bfe41894 Free memory for symbols when process is terminated.
svn path=/trunk/; revision=2474
2002-01-02 21:00:55 +00:00
Eric Kohl
7a30c6749a Removed old codepage tables.
svn path=/trunk/; revision=2473
2002-01-02 00:53:51 +00:00
Eric Kohl
00aa97da88 Added binary .nls files.
svn path=/trunk/; revision=2472
2002-01-02 00:51:37 +00:00
Eric Kohl
ab4a7cd152 Added nls tool.
svn path=/trunk/; revision=2471
2002-01-02 00:48:14 +00:00
David Welch
6ade027031 More cygwin fixes
svn path=/trunk/; revision=2470
2002-01-01 05:09:50 +00:00
David Welch
3273c93173 Fixed bug with cygwin1.dll (still doesn't work)
svn path=/trunk/; revision=2469
2002-01-01 03:29:16 +00:00
David Welch
e5a34ef337 Fixed some swapping bugs and deadlocks
svn path=/trunk/; revision=2468
2002-01-01 00:21:57 +00:00
David Welch
3ea11463b3 Swapping to disk
svn path=/trunk/; revision=2467
2001-12-31 19:06:49 +00:00
Steven Edwards
36214fbd89 Updates for console telnet for win32
svn path=/trunk/; revision=2466
2001-12-31 18:30:20 +00:00
Steven Edwards
ab18809029 Updates for ReactOS build system
svn path=/trunk/; revision=2465
2001-12-31 18:25:36 +00:00
Steven Edwards
0dd9d2664c Fixes for real this time for new telnet client
svn path=/trunk/; revision=2464
2001-12-31 17:37:11 +00:00
Steven Edwards
5d7f30939a Fixes for new telnet client
svn path=/trunk/; revision=2463
2001-12-31 17:14:08 +00:00
David Welch
a155c42316 Virtual memory support
svn path=/trunk/; revision=2462
2001-12-31 01:53:46 +00:00
Steven Edwards
02e3483cf5 Updated readme information
svn path=/trunk/; revision=2461
2001-12-30 20:29:54 +00:00
Steven Edwards
5dc19ca3d1 Updating parts rosapps to ReactOS build system
new bat installer for rosapps.

svn path=/trunk/; revision=2460
2001-12-30 20:26:43 +00:00
Steven Edwards
87e06102cd Updates for Midnight Commander and telnet
svn path=/trunk/; revision=2459
2001-12-30 10:07:14 +00:00
Steven Edwards
c98929fa7e New Telnet Client
svn path=/trunk/; revision=2458
2001-12-30 10:05:48 +00:00
Steven Edwards
f0c5d1e87f Midnight Commander for Win32 Makefile Update
svn path=/trunk/; revision=2457
2001-12-30 10:02:48 +00:00
Steven Edwards
e5c0c7185e Midnight Commander for Win32
svn path=/trunk/; revision=2456
2001-12-30 10:02:14 +00:00
Steven Edwards
2a2768dea3 updated wine dlls and programs install script.
svn path=/trunk/; revision=2455
2001-12-30 08:04:23 +00:00
Steven Edwards
4a95d5eee9 updated wine dlls and programs install script.
svn path=/trunk/; revision=2454
2001-12-30 07:31:07 +00:00
Steven Edwards
86bda6b3d9 Added ncftp to rosapps
svn path=/trunk/; revision=2453
2001-12-30 06:31:25 +00:00
Steven Edwards
289a784eef compleated the removal of net_apps from makefile, fix build with readfile build
svn path=/trunk/; revision=2452
2001-12-30 05:49:13 +00:00
Steven Edwards
b3486a5605 removed $(net_apps) from build for reactos
svn path=/trunk/; revision=2451
2001-12-30 05:43:45 +00:00
Steven Edwards
0c57ecc79f updated gditest.c
Thanks to Richard Campbell

svn path=/trunk/; revision=2450
2001-12-30 04:35:55 +00:00
Steven Edwards
4a13352942 moved ping to rosapps/net
svn path=/trunk/; revision=2449
2001-12-30 04:34:20 +00:00
Steven Edwards
78f37dc93e Updated make and install for move of netapps to rosapps
svn path=/trunk/; revision=2448
2001-12-30 04:31:34 +00:00
Steven Edwards
2ee9a6c165 Removed ncftp
svn path=/trunk/; revision=2447
2001-12-30 04:27:43 +00:00
Steven Edwards
3d9541523b Updates for move of net apps to rosapps
svn path=/trunk/; revision=2446
2001-12-30 04:23:18 +00:00
Steven Edwards
f355097ad2 Updates for move of net apps to rosapps
svn path=/trunk/; revision=2445
2001-12-30 04:12:47 +00:00
Steven Edwards
174bb8c3d3 Move network apps to rosapps
svn path=/trunk/; revision=2444
2001-12-30 04:06:25 +00:00
David Welch
3fd3d008eb Trim cache
svn path=/trunk/; revision=2443
2001-12-29 14:32:22 +00:00
Eric Kohl
2fbbe48059 Add NLS information.
svn path=/trunk/; revision=2442
2001-12-28 21:24:48 +00:00
Eric Kohl
5a38010118 Added NLS-file loader.
svn path=/trunk/; revision=2441
2001-12-28 21:21:27 +00:00
Eric Kohl
d6278aba2a Fixed a bug.
svn path=/trunk/; revision=2440
2001-12-28 21:17:37 +00:00
David Welch
aee376797f Memory balancer
svn path=/trunk/; revision=2439
2001-12-28 00:04:45 +00:00
David Welch
47ba969751 Set WP bit in CR0
Fix protection for paged pool
Start on cache improvements

svn path=/trunk/; revision=2438
2001-12-27 23:56:42 +00:00
David Welch
48149a428f More fixes
svn path=/trunk/; revision=2437
2001-12-27 00:00:11 +00:00
David Welch
ff9a3a9a79 Misc fixes.
svn path=/trunk/; revision=2436
2001-12-26 23:34:07 +00:00
Steven Edwards
515231623e Updates for ncftp 3.0.3 for reactos
svn path=/trunk/; revision=2435
2001-12-20 19:05:45 +00:00
Steven Edwards
de04b33937 ncftp for win32 3.0.3
svn path=/trunk/; revision=2434
2001-12-20 18:50:07 +00:00
David Welch
cc824ce464 Fixed fast mutex implementation (they are NOT recursive)
Implemented paged pool
Removed duplicate dependency tool source file

svn path=/trunk/; revision=2433
2001-12-20 03:56:10 +00:00
Steven Edwards
cbd8e654dc Updated makefile to build winefilemanager
svn path=/trunk/; revision=2432
2001-12-16 05:27:16 +00:00
Eugene Ingerman
3edb1beb95 Porting pice. Added pe parsing in loader.
svn path=/trunk/; revision=2431
2001-12-15 23:50:07 +00:00
Emanuele Aliberti
a7d526433d A general Makefile for building the POSIX+ development kit.
svn path=/trunk/; revision=2430
2001-12-15 11:04:26 +00:00
Emanuele Aliberti
8c97b5dd72 A general Makefile for building the native/kernel-mode development kit.
svn path=/trunk/; revision=2429
2001-12-15 11:02:40 +00:00
Emanuele Aliberti
074449ffe5 A general Makefile for building the Win32(tm) development kit.
svn path=/trunk/; revision=2428
2001-12-15 11:00:53 +00:00
Emanuele Aliberti
485cee30c2 process/session.c in the makefile.
svn path=/trunk/; revision=2427
2001-12-11 23:18:16 +00:00
Phillip Susi
e27c5fbd2f Moved $(MK_GCCLIBS) to correct place on gcc command line
svn path=/trunk/; revision=2426
2001-12-11 06:00:07 +00:00
Brian Palmer
8c29563890 Added Task Manager to cvs repository
Won't build yet due to old headers included with MingW32

svn path=/trunk/; revision=2425
2001-12-10 01:19:33 +00:00
Eric Kohl
10231d15e7 Added preliminary system hive file.
svn path=/trunk/; revision=2424
2001-12-09 04:58:44 +00:00
Casper Hornstrup
1ba52efab8 Fixed compilation error
svn path=/trunk/; revision=2423
2001-12-07 22:42:38 +00:00
Emanuele Aliberti
a5208b8fca Added prototype for ProcessIdToSessionId().
svn path=/trunk/; revision=2422
2001-12-07 11:24:34 +00:00
Emanuele Aliberti
d36ee56715 A stub file for TS APIs in kernel32.
svn path=/trunk/; revision=2421
2001-12-07 11:19:49 +00:00
Eugene Ingerman
ef93b48310 Porting pice. Added keyboard hook and some file functions.
svn path=/trunk/; revision=2420
2001-12-06 09:20:57 +00:00
David Welch
8c3f4003e7 Removed bitops.h
svn path=/trunk/; revision=2419
2001-12-06 00:54:54 +00:00
Eric Kohl
909d916ca5 Implemented file system change notification.
svn path=/trunk/; revision=2418
2001-12-05 12:14:13 +00:00
Eric Kohl
116270d2e0 Added missing create parameters to IoCreateFile().
svn path=/trunk/; revision=2417
2001-12-05 12:11:55 +00:00
David Welch
64ebe91f78 Fixed security define spelling
Added duplication notification

svn path=/trunk/; revision=2416
2001-12-05 01:40:25 +00:00
Eric Kohl
eaf3de3006 Replaced binary constants by corresponding flags.
svn path=/trunk/; revision=2415
2001-12-04 20:47:54 +00:00
David Welch
fc1ce2a0d3 Remove debugging changes.
svn path=/trunk/; revision=2414
2001-12-02 23:37:25 +00:00
David Welch
7a15ff20db Implemented LPC sections
Changed WriteConsoleOutput to pass data in the section

svn path=/trunk/; revision=2413
2001-12-02 23:34:43 +00:00
Phillip Susi
b7f6ddaf9a Fixed typeo that prevented compilation
svn path=/trunk/; revision=2412
2001-12-01 20:57:23 +00:00
Eugene Ingerman
87d07db47c Fixed small bug in keyboard driver that prevented filter driver from working. Added keyboard hook.
svn path=/trunk/; revision=2410
2001-11-30 01:38:24 +00:00
Eric Kohl
6be5fe1285 Implemented PsGetProcessExitTime() and PsIsThreadTerminating().
svn path=/trunk/; revision=2409
2001-11-29 16:41:22 +00:00
Steven Edwards
3684c3d179 found out shell has kill built it
svn path=/trunk/; revision=2408
2001-11-29 07:24:48 +00:00
Brian Palmer
c157992a67 Fixed Makefile problem
Added tool to fix Win2k/XP NTVDM bug so DJGPP works without crashing

svn path=/trunk/; revision=2407
2001-11-29 01:56:04 +00:00
Emanuele Aliberti
45422998d5 Base files (incomplete) for PSAPI.DLL.
svn path=/trunk/; revision=2406
2001-11-28 23:35:16 +00:00
Emanuele Aliberti
ad6cb832a4 *** empty log message ***
svn path=/trunk/; revision=2404
2001-11-28 16:11:36 +00:00
Brian Palmer
12e0be217f Re-organized things a slight bit.
Split up stdlib.c and renamed it to rtl.
Separated disk functions from file system functions.

svn path=/trunk/; revision=2403
2001-11-28 10:26:53 +00:00
The ReactOS Team
abc01da30c This commit was manufactured by cvs2svn to create branch 'avendor'.
svn path=/branches/avendor/; revision=2401
2001-11-28 01:38:00 +00:00
Steven Edwards
d4d6b6dbf7 Initial revision
svn path=/trunk/; revision=2400
2001-11-28 01:37:59 +00:00
The ReactOS Team
7aeca22fed This commit was manufactured by cvs2svn to create branch 'avendor'.
svn path=/branches/avendor/; revision=2398
2001-11-27 14:24:15 +00:00
Steven Edwards
d3b8d085e2 Initial revision
svn path=/trunk/; revision=2397
2001-11-27 14:24:14 +00:00
Eric Kohl
16e5929c1c Added system hive support.
Started hardware detection.

svn path=/trunk/; revision=2396
2001-11-27 12:42:47 +00:00
Eric Kohl
7a1bc8eaca Added system hive support.
svn path=/trunk/; revision=2395
2001-11-26 22:33:20 +00:00
Eric Kohl
0aee7968ad Added 'dword' data type.
svn path=/trunk/; revision=2394
2001-11-25 18:28:00 +00:00
David Welch
8fd78223cb include/csrss/csrss.h: Include a define for the size of the common
part of the csrss message header.
lib/kernel32/misc/console.c: WriteConsole: Use the same meanings for the
Length argument to CsrClientCallServer as all other callers.
lib/kernel32/misc/console.c: WriteConsoleOutput: Break up long requests
(not very efficently).
lib/ntdll/csr/lpc.c: CsrClientCallServer: Fill out DataSize and
MessageSize correctly.
lib/kernel32/misc/dllmain.c: DllMain: Die if we can't connect to csrss.
ntoskrnl/include/internal/ntoskrnl.c: Increase size of non-paged pool
ntoskrnl/ke/i386/exp.c: On double fault print loops in the stack trace
only once.
ntoskrnl/ke/i386/usertrap.c: Corrected checking in stack trace.
ntoskrnl/lpc/send.c: NtRequestWaitReplyPort: Check message consistency and
copy in safely.
ntoskrnl/mm/aspace.c: MmLockAddressSpace: Don't bother locking if we are
the only thread running.
ntoskrnl/mm/kmap.c: Implementing support functions for whole page
allocation.
ntoskrnl/mm/npool.c: Implementing allocation mode where every block is
allocated in a whole page and placed against the end so writes beyond the
allocated portion are caught immediately.

svn path=/trunk/; revision=2393
2001-11-25 15:21:11 +00:00
Jason Filby
2ddebe867f Moved W32THREAD to teb.h
svn path=/trunk/; revision=2392
2001-11-24 14:08:54 +00:00
Eric Kohl
3c7c6e909d Added some security/access functions.
svn path=/trunk/; revision=2389
2001-11-22 02:37:32 +00:00
Eric Kohl
396df5ce12 Implemented RtlImpersonateSelf().
svn path=/trunk/; revision=2388
2001-11-21 22:31:18 +00:00
Eric Kohl
d1d89cd409 Fixed PsRevertToSelf().
svn path=/trunk/; revision=2387
2001-11-21 18:44:50 +00:00
Steven Edwards
f1ea6d86e7 add mkdir C:\bin for wineapps
svn path=/trunk/; revision=2386
2001-11-20 23:49:03 +00:00
Hartmut Birr
94048a055d Fixed a bug in FAT12FindAvailableCluster.
svn path=/trunk/; revision=2385
2001-11-20 23:40:26 +00:00
Rex Jolliff
c900b97902 added default rule for .cpp files
svn path=/trunk/; revision=2384
2001-11-20 21:56:54 +00:00
Eric Kohl
5f56974966 Implemented read/write.
svn path=/trunk/; revision=2383
2001-11-20 20:35:10 +00:00
David Welch
229104bb31 Split kernel and user-mode exception handling
svn path=/trunk/; revision=2382
2001-11-20 02:31:21 +00:00
David Welch
b981b14821 Fixed zsh crash bug, it still doesn't work however
svn path=/trunk/; revision=2381
2001-11-20 02:29:45 +00:00
Jason Filby
0e27bfa7dd Fix for CreateCompatibleDC
svn path=/trunk/; revision=2380
2001-11-19 12:06:23 +00:00
Eric Kohl
303f10c6fd Fixed a few compiler warinings.
svn path=/trunk/; revision=2379
2001-11-18 20:20:42 +00:00
David Welch
57300d2523 Oops, used copy to caller instead of copy from caller
svn path=/trunk/; revision=2378
2001-11-18 01:28:50 +00:00
David Welch
189a5e8404 Fixed bugs with vim
svn path=/trunk/; revision=2377
2001-11-18 00:31:24 +00:00
Eric Kohl
5d289c12b2 Fixed GetExtendedMemorySize(). My i486-DX4/75 didn't like the old routine.
svn path=/trunk/; revision=2376
2001-11-17 00:00:33 +00:00
Eric Kohl
60a1a5d26d Updated for booting from C:
svn path=/trunk/; revision=2375
2001-11-16 20:27:59 +00:00
Eric Kohl
228ec52af6 Added loading the HAL.
svn path=/trunk/; revision=2374
2001-11-16 20:25:37 +00:00
Eric Kohl
dfd00972c9 Fixed warnings.
svn path=/trunk/; revision=2373
2001-11-16 20:24:43 +00:00
Brian Palmer
3662f1f720 BIOS Int 13h Extensions Support
New .ini file format (sort of) - changed some parameter names, etc.
More efficient .ini file parsing code
More efficient use of memory, smaller image file
Total rewrite of file system code (the old stuff sucked)
VFAT Long File Names now supported!
ReactOS is the only boot type supported currently, disabled all others (temporarily)

svn path=/trunk/; revision=2372
2001-11-15 07:48:33 +00:00
Eric Kohl
709cd514ab Implemented MmMapViewOfSection().
svn path=/trunk/; revision=2368
2001-11-13 22:46:49 +00:00
Steven Edwards
0de577f6cd Remove my old port of the winelib notepad
svn path=/trunk/; revision=2366
2001-11-11 18:21:32 +00:00
Steven Edwards
a36b062468 install script for wine dlls and programs
svn path=/trunk/; revision=2365
2001-11-11 18:16:52 +00:00
Casper Hornstrup
c23a2d7aee Fixed typo
svn path=/trunk/; revision=2364
2001-11-09 15:50:34 +00:00
Eric Kohl
cdd8ad011c Added message compiler.
svn path=/trunk/; revision=2363
2001-11-09 12:37:15 +00:00
Eric Kohl
51f2c2d3d0 Added message compiler.
svn path=/trunk/; revision=2362
2001-11-09 12:27:02 +00:00
Eric Kohl
af8dfb404f Implemented abandoning of mutexes/mutants.
svn path=/trunk/; revision=2361
2001-11-08 13:58:13 +00:00
Eric Kohl
7ab413e8de Fixed thread termination bug when a mutex must be abandoned.
svn path=/trunk/; revision=2360
2001-11-08 01:09:20 +00:00
David Welch
a122417a8a Fixed thread termination bug
svn path=/trunk/; revision=2359
2001-11-07 22:36:47 +00:00
Eric Kohl
1355fed119 Added mutex test application.
svn path=/trunk/; revision=2358
2001-11-07 16:42:15 +00:00
Eric Kohl
679c19d7f8 Added GetInterruptVector() routine to PCI bus handler.
svn path=/trunk/; revision=2357
2001-11-07 02:27:33 +00:00
Phillip Susi
01009ce267 Re enabled mounting more than one filesystem
svn path=/trunk/; revision=2356
2001-11-07 02:21:19 +00:00
Eric Kohl
7a232306cc Attach/detach mutant(mutex) to/from owning thread.
Fixed return value of KeWaitForMultipleObjects() on timeout.

svn path=/trunk/; revision=2355
2001-11-07 02:17:22 +00:00
James Tabor
7e8fb651af Fix export wvsnprintfA and W from user32.dll
svn path=/trunk/; revision=2354
2001-11-05 21:00:31 +00:00
David Welch
18992fbe14 Don't check for critical sections when delivering special kernel mode APCs
svn path=/trunk/; revision=2353
2001-11-05 20:49:30 +00:00
Emanuele Aliberti
e0308e50e8 tlist clone (partial).
Tested under NT 4.0.1382 SP6a EN_US.
NOT tested under ROS, but it should NOT work, since
NtQuerySystemInformation misses at least one info class needed
by the application.

svn path=/trunk/; revision=2352
2001-11-04 21:53:20 +00:00
Eric Kohl
156f7ec157 Implemented mutant object.
svn path=/trunk/; revision=2350
2001-11-04 00:18:40 +00:00
Casper Hornstrup
558496bca6 New target 'implib' to avoid cicular references.
Integrate WINE into the build system.

svn path=/trunk/; revision=2349
2001-11-03 16:48:07 +00:00
Eric Kohl
5db2a7d92d Disabled secondary channel by default
svn path=/trunk/; revision=2348
2001-11-03 16:34:58 +00:00
Hartmut Birr
547896ce6f Reworked code for handling of asynchonous i/o requests.
svn path=/trunk/; revision=2347
2001-11-02 22:57:14 +00:00
Hartmut Birr
c2c9804f47 Reworked code for handling of asynchonous i/o requests.
svn path=/trunk/; revision=2346
2001-11-02 22:47:36 +00:00
Hartmut Birr
75bfca5f83 Fixed a minor bug in vfatMakeRootFCB().
Reworked code for handling of asynchonous i/o requests.

svn path=/trunk/; revision=2345
2001-11-02 22:40:50 +00:00
Hartmut Birr
b5e7b94ea7 Speed optimization in FATxxFindAvailableCluster().
svn path=/trunk/; revision=2344
2001-11-02 22:35:31 +00:00
Hartmut Birr
2723d14c06 Added some modifications for asyncronous i/o requests (for vfatfs).
svn path=/trunk/; revision=2343
2001-11-02 22:22:33 +00:00
Hartmut Birr
ab19671382 Fixed a bug in GetVolumeInformationA()
svn path=/trunk/; revision=2342
2001-11-02 22:08:28 +00:00
Eric Kohl
c0ddd03a2f Fixed a typo.
svn path=/trunk/; revision=2341
2001-11-02 09:17:52 +00:00
Eric Kohl
b639c5def9 Implemented basic ANSI/OEM <--> Unicode translation tables.
svn path=/trunk/; revision=2340
2001-11-02 09:10:49 +00:00
Rex Jolliff
286d73f7e6 Initial attempt at a handle table for GDI objects. Needs testing and fixing i am sure.
svn path=/trunk/; revision=2339
2001-11-02 06:10:11 +00:00
Eric Kohl
ec23fa085b Removed PCI_COMMON_CONFIG
svn path=/trunk/; revision=2338
2001-11-01 23:17:10 +00:00
Eric Kohl
91540343f5 Set sector size to 512 bytes.
svn path=/trunk/; revision=2337
2001-11-01 17:48:13 +00:00
Eric Kohl
66b3542076 Enabled secondary IDE channel for PCI and ISA bus
Fixed BytesPerSector hack
Minor cleanup

svn path=/trunk/; revision=2336
2001-11-01 14:51:57 +00:00
Hartmut Birr
ae482ce24e Fixed some bugs in VfatGetStandardInformation().
Implemented VfatGetInternalInformation().

svn path=/trunk/; revision=2335
2001-11-01 10:44:11 +00:00
Hartmut Birr
24f81ff1c1 Enabled the check of the correct buffer size in some functions.
svn path=/trunk/; revision=2334
2001-11-01 10:41:53 +00:00
Hartmut Birr
287fa79a6a Fixed the type of st_dev in stat.
svn path=/trunk/; revision=2333
2001-11-01 10:39:54 +00:00
Hartmut Birr
dbf14d8c26 Initialized statbuf->st_mode in _stat() and _fstati64().
svn path=/trunk/; revision=2332
2001-11-01 10:37:58 +00:00
Hartmut Birr
1dafd03c3d Fixed some bugs in GetFileInformationByHandle().
svn path=/trunk/; revision=2331
2001-11-01 10:35:15 +00:00
Eric Kohl
998550e404 Moved/added some declarations
Fixed atapi drive identification

svn path=/trunk/; revision=2330
2001-11-01 00:30:29 +00:00
Eric Kohl
6d21eb028c Moved/added some declarations
Fixed ide drive identification

svn path=/trunk/; revision=2329
2001-11-01 00:28:57 +00:00
Jason Filby
af347caa8c Kludge: draw within screen until we have clipping working
svn path=/trunk/; revision=2328
2001-10-31 21:08:00 +00:00
David Welch
7e2973b768 Fix for advapi32 failing to load (it had imported symbols from itself)
svn path=/trunk/; revision=2325
2001-10-31 01:03:04 +00:00
David Welch
2179744c2c Fixed bug causing crash when running mc
svn path=/trunk/; revision=2324
2001-10-31 00:03:07 +00:00
David Welch
6efd918a8b Zero pages before allocated.
svn path=/trunk/; revision=2323
2001-10-29 02:39:38 +00:00
Hartmut Birr
2a1ac328ed Clear the allocated page for a bss section (in MmNotPresentFaultSectionView).
svn path=/trunk/; revision=2322
2001-10-27 15:55:45 +00:00
The ReactOS Team
36e1bb60e8 This commit was manufactured by cvs2svn to create branch 'avendor'.
svn path=/branches/avendor/; revision=2320
2001-10-25 23:22:09 +00:00
Steven Edwards
4f6b97db87 Initial revision
svn path=/trunk/; revision=2319
2001-10-25 23:22:02 +00:00
Eugene Ingerman
03c7fccace Porting pice.
svn path=/trunk/; revision=2318
2001-10-23 21:33:17 +00:00
The ReactOS Team
74e77bb16f This commit was manufactured by cvs2svn to create branch 'avendor'.
svn path=/branches/avendor/; revision=2316
2001-10-23 21:15:45 +00:00
Steven Edwards
f475b72c8c Initial revision
svn path=/trunk/; revision=2315
2001-10-23 21:15:37 +00:00
Phillip Susi
a69fa0c124 Changed path to vgaddi.dll to use SystemRoot instead of C:
svn path=/trunk/; revision=2314
2001-10-23 00:22:04 +00:00
Eugene Ingerman
5b13cb7208 Porting pice.
svn path=/trunk/; revision=2313
2001-10-22 05:02:47 +00:00
Casper Hornstrup
f238a86a0b Create named pipe for SCM
svn path=/trunk/; revision=2312
2001-10-21 19:09:06 +00:00
Casper Hornstrup
7cb3efcca8 Prototype fixes.
svn path=/trunk/; revision=2311
2001-10-21 19:07:28 +00:00
Casper Hornstrup
75ebd197fa Open named pipe to SCM
svn path=/trunk/; revision=2310
2001-10-21 19:06:42 +00:00
Casper Hornstrup
f611cbbe42 NPFS read/write functionality.
svn path=/trunk/; revision=2309
2001-10-21 18:58:32 +00:00
Eugene Ingerman
26090a1b08 Missed these files from the last commit.
svn path=/trunk/; revision=2308
2001-10-21 04:46:15 +00:00
Eugene Ingerman
096c6a9c99 Changed some driver functions to follow nt standard. Ported several functions.
svn path=/trunk/; revision=2307
2001-10-21 04:05:48 +00:00
Eugene Ingerman
0356076d35 Original source code for linux kernel debugger. To be ported to reactos.
svn path=/trunk/; revision=2306
2001-10-21 03:45:27 +00:00
Eric Kohl
f81d856c00 Implemented waiting for server pipe (WaitNamedPipe()).
svn path=/trunk/; revision=2305
2001-10-20 15:30:07 +00:00
Eric Kohl
fc27cfa0c9 Fixed WaitNamedPipe().
svn path=/trunk/; revision=2304
2001-10-20 15:28:03 +00:00
Phillip Susi
145c90c778 Fixed typeo that prevented compilation
svn path=/trunk/; revision=2303
2001-10-17 20:02:52 +00:00
Eric Kohl
20bec3cf6b Implemented useful rename command.
svn path=/trunk/; revision=2302
2001-10-17 18:30:10 +00:00
Phillip Susi
32ec8c6868 Only pass file name as module name, not full path
svn path=/trunk/; revision=2301
2001-10-17 01:34:07 +00:00
Phillip Susi
bafcaf58e4 Removed use of crtdll from all apps, let them use msvcrt.dll instead
svn path=/trunk/; revision=2300
2001-10-16 22:45:40 +00:00
Emanuele Aliberti
84114428d7 Fixes to compile the whole set of ROS applications.
Hartmut Birr added to the ROS console parade.

svn path=/trunk/; revision=2299
2001-10-16 21:02:02 +00:00
Phillip Susi
f89bf61ed5 Imported bzip2 modified to build a decompression only dll for use by the ramdisk driver
svn path=/trunk/; revision=2298
2001-10-16 20:59:19 +00:00
Phillip Susi
718510b28a Fixed bug parsing redirections
svn path=/trunk/; revision=2297
2001-10-14 18:30:56 +00:00
Phillip Susi
34fca92d6d Share read access to files opened for redirection
svn path=/trunk/; revision=2296
2001-10-14 18:30:28 +00:00
Hartmut Birr
ee9ea15fe0 Fixed calling convention for ApcRoutine().
Patch by Guido de Jong.

svn path=/trunk/; revision=2295
2001-10-12 19:13:01 +00:00
Eric Kohl
0a88910738 Made qsort() thread-safe.
svn path=/trunk/; revision=2294
2001-10-11 23:37:47 +00:00
Hartmut Birr
061fadc77a Fixed a bug, when there is a write operation to the root directory, vfat crashs.
svn path=/trunk/; revision=2293
2001-10-11 15:39:51 +00:00
Hartmut Birr
ef4b8d4947 Fixed a minor bug in MmAllocateSection().
svn path=/trunk/; revision=2292
2001-10-10 22:40:36 +00:00
Hartmut Birr
78869da85f Added/Removed some definitions.
svn path=/trunk/; revision=2291
2001-10-10 22:20:48 +00:00
Hartmut Birr
644d1f6676 Rewritten the read and write functions.
Changed the cache access from vfat..Region to Cc...Data() and CcCopy...().

svn path=/trunk/; revision=2290
2001-10-10 22:19:51 +00:00
Hartmut Birr
20625a2073 Changed the initialization for the fat cache in VfatMount().
svn path=/trunk/; revision=2289
2001-10-10 22:18:58 +00:00
Hartmut Birr
12f5d25024 Removed vfatRequestAndValidateRegion() and vfatReleaseRegion().
Added some initializations in vfatMakeRootFCB() and vfatMakeFcbFromDirEntry().

svn path=/trunk/; revision=2288
2001-10-10 22:17:42 +00:00
Hartmut Birr
6df323c21b Changed the cache access from CcRos...CacheSegment() to Cc...Data().
svn path=/trunk/; revision=2287
2001-10-10 22:16:46 +00:00
Hartmut Birr
068a4a38d5 Changed the directory access to Cc...Data().
Removed the useing of dummy FileObjects in some calls to VfatReadFile()/VfatWriteFile().

svn path=/trunk/; revision=2286
2001-10-10 22:15:51 +00:00
Hartmut Birr
069a01eede Changed the cache access from vfat...Region() to Cc...Data().
svn path=/trunk/; revision=2285
2001-10-10 22:14:34 +00:00
Hartmut Birr
a23989370d Fixed the returned size in VfatGetFile...Information().
svn path=/trunk/; revision=2284
2001-10-10 22:13:26 +00:00
Hartmut Birr
b61f55deae Added cache access for GetEntyName() and FindFile().
Fixed a minor bug in VfatCreateFile().
Added update of the cachesize in VfatCreateFile(), when a the file size is set zero.

svn path=/trunk/; revision=2283
2001-10-10 22:12:34 +00:00
Hartmut Birr
1e43cf0d82 Added cc/copy.c, cc/pin.c and cc/misc.c to OBJECTS_CC.
svn path=/trunk/; revision=2282
2001-10-10 22:08:27 +00:00
Hartmut Birr
5004973b9a Removed CcRosRequestCacheSegment()and CcRosReleaseCacheSegment().
Added CcCopyRead(), CcCopyWrite(), CcMapData(), CcSetDirtyPinnedData(),
CcUnpinData() and CcSetFileSizes().

svn path=/trunk/; revision=2281
2001-10-10 22:07:15 +00:00
Hartmut Birr
937606fd25 Removed update of FileOffset from IoReadWriteCompletion().
svn path=/trunk/; revision=2280
2001-10-10 21:58:40 +00:00
Hartmut Birr
535721b797 Added a new parameter to IoPageWrite().
svn path=/trunk/; revision=2279
2001-10-10 21:57:00 +00:00
Hartmut Birr
93742336bb Added CcRosFreeCacheSegment(), ReadCacheSegment() and WriteCacheSegment().
svn path=/trunk/; revision=2278
2001-10-10 21:55:13 +00:00
Hartmut Birr
74be6cd705 Added some initializations in CcRosInitializeCache().
svn path=/trunk/; revision=2277
2001-10-10 21:50:15 +00:00
Hartmut Birr
a92ab23917 Implemented CcMapdata(), CcUnpinData() and CsSetDirtyPinnedData().
svn path=/trunk/; revision=2276
2001-10-10 21:49:15 +00:00
Hartmut Birr
4bda2fbdb1 Implemented CcSetFileSizes().
svn path=/trunk/; revision=2275
2001-10-10 21:48:09 +00:00
Hartmut Birr
4fd4a97760 Implemented CcCopyRead(), CcCopyWrite() and some other functions.
svn path=/trunk/; revision=2274
2001-10-10 21:46:13 +00:00
Eric Kohl
a1d321e7b8 Added _abnormal_termination() stub.
svn path=/trunk/; revision=2273
2001-10-10 19:41:35 +00:00
Hartmut Birr
767a20760d Fixed a dead lock in GetNextCluster.
Fixed a bug in FAT32FindAvailableCluster.

svn path=/trunk/; revision=2268
2001-10-07 08:58:29 +00:00
Eric Kohl
d3a9cfe663 Fixed __doserrno type.
svn path=/trunk/; revision=2267
2001-10-04 16:06:36 +00:00
Hartmut Birr
ae6141ba18 Fixed the 'higher 4 bit fat32'-bug.
svn path=/trunk/; revision=2266
2001-10-03 18:23:02 +00:00
Eric Kohl
0f0199f381 Implemented _doserrno().
svn path=/trunk/; revision=2265
2001-10-03 02:15:55 +00:00
Rex Jolliff
9df4133568 some changes to support load of LiteStep
svn path=/trunk/; revision=2264
2001-10-01 16:36:27 +00:00
Rex Jolliff
e446466964 fix to work around dlltool not supporting specified ordinals in export list
svn path=/trunk/; revision=2263
2001-10-01 16:31:12 +00:00
Phillip Susi
3c655e1278 Do not bugcheck on ExFreePool( 0 )
svn path=/trunk/; revision=2262
2001-09-29 19:40:49 +00:00
David Welch
decca5781a Fixes.
svn path=/trunk/; revision=2261
2001-09-27 02:14:35 +00:00
David Welch
387d128462 APplied MiReadPage fix
svn path=/trunk/; revision=2260
2001-09-25 19:52:28 +00:00
David Welch
c0589a9fec Fixes.
svn path=/trunk/; revision=2259
2001-09-25 19:41:38 +00:00
Casper Hornstrup
6e4a29babf Fix for compile error
svn path=/trunk/; revision=2258
2001-09-24 10:19:58 +00:00
Casper Hornstrup
9a6d677db3 Initial OS level SEH support.
svn path=/trunk/; revision=2257
2001-09-24 01:09:51 +00:00
Casper Hornstrup
0948ab6596 Initial OS level SEH support.
svn path=/trunk/; revision=2256
2001-09-24 00:51:17 +00:00
Casper Hornstrup
2eb7adef67 Compile using gcc 3.0
Fixed alot of warnings when using gcc 3.0

svn path=/trunk/; revision=2255
2001-09-23 22:14:10 +00:00
Casper Hornstrup
09237b9213 Enumerate legacy devices
svn path=/trunk/; revision=2254
2001-09-16 13:19:32 +00:00
Casper Hornstrup
9baaca2418 Added PCI bus driver skeleton
svn path=/trunk/; revision=2253
2001-09-16 13:18:24 +00:00
Eric Kohl
1ea7189ed9 Added new atapi driver. It can only scan the pci busses and create scsi port devices for identified ide channels.
svn path=/trunk/; revision=2252
2001-09-09 21:32:28 +00:00
Eric Kohl
dcc3b51487 Added pci bus scanner to find ide controllers. Hardware reset is used when no controller was found.
svn path=/trunk/; revision=2251
2001-09-09 21:28:05 +00:00
David Welch
c4cd9be8de Fixed all no-FPU bugs
svn path=/trunk/; revision=2250
2001-09-09 13:32:20 +00:00
Hartmut Birr
3ad515a2de Change the size of the kernel page table from 1 to 8 pages.
ROS can now boot with up to 4 GB real memory (tested with a modified bochs and 1.5GB).

svn path=/trunk/; revision=2249
2001-09-09 12:26:05 +00:00
Hartmut Birr
a8a4e37cba Change the return value in CreateFileW() from FALSE to INVALID_HANDLE_VALUE.
svn path=/trunk/; revision=2248
2001-09-09 12:21:37 +00:00
Hartmut Birr
1689533ef4 Fixed a bug, that will add a '.' when the ext string is empty.
svn path=/trunk/; revision=2247
2001-09-09 12:13:15 +00:00
Hartmut Birr
5ee0bf283e Fixed a bug in KdpPrintString().
When serial debug was enabled, than the bochs debug dosn't work.

svn path=/trunk/; revision=2246
2001-09-09 09:47:18 +00:00
Jason Filby
aebc047c8c Small fixes
svn path=/trunk/; revision=2245
2001-09-09 09:20:06 +00:00
David Welch
d9975bf64a Try again; enable MP and NE and disable EM
svn path=/trunk/; revision=2244
2001-09-09 00:08:39 +00:00
Emanuele Aliberti
ef3bb24149 Added skeleton for PSXX.DLL, the X11 client library for the POSIX+ subsystem.
svn path=/trunk/; revision=2243
2001-09-08 22:13:16 +00:00
David Welch
8fd176384c Hopefully initialize FPU properly
svn path=/trunk/; revision=2242
2001-09-08 20:08:08 +00:00
Jason Filby
9e9c096bed more freetype cleanup
svn path=/trunk/; revision=2241
2001-09-08 12:12:41 +00:00
Jason Filby
0c257f84a5 More freetype cleanup
svn path=/trunk/; revision=2240
2001-09-08 12:11:48 +00:00
Eric Kohl
3920464d8e Implemented LdrFindEntryForAddress() and LdrQueryProcessModuleInformation().
svn path=/trunk/; revision=2239
2001-09-08 12:06:59 +00:00
Jason Filby
bdea50f54c Cleaning up FreeType library
svn path=/trunk/; revision=2238
2001-09-08 11:55:35 +00:00
Eric Kohl
0c901951af Create mandatory keys for resource management.
svn path=/trunk/; revision=2237
2001-09-08 09:02:08 +00:00
Eric Kohl
b62d5e3184 Return a better status code in ObReferenceObjectByPointer().
svn path=/trunk/; revision=2236
2001-09-08 08:57:59 +00:00
Emanuele Aliberti
cf1883980d Added some Job related info and little cleanup.
svn path=/trunk/; revision=2235
2001-09-07 21:38:44 +00:00
Emanuele Aliberti
fc64f4511b Added CVS Id.
svn path=/trunk/; revision=2234
2001-09-07 21:37:47 +00:00
Emanuele Aliberti
64fe62dd6d Minor changes.
svn path=/trunk/; revision=2233
2001-09-07 21:35:45 +00:00
David Welch
008868b972 Implemented NtQueryTime
svn path=/trunk/; revision=2232
2001-09-06 22:47:39 +00:00
David Welch
6cb5e548e2 Fixed problem with __NTOSKRNL__ not being defined by the compiler
Implemented some APIs

svn path=/trunk/; revision=2231
2001-09-06 20:26:36 +00:00
Eric Kohl
1701b0b02f Implemented IoReportHalUsage().
svn path=/trunk/; revision=2230
2001-09-05 09:21:47 +00:00
Eric Kohl
3fa6827bcd Fixed hive import bug.
svn path=/trunk/; revision=2229
2001-09-04 21:06:27 +00:00
Eric Kohl
0cb3991a23 Implemented RegSaveKey[A/W]().
Added missing calls to MapDefaultKey().

svn path=/trunk/; revision=2228
2001-09-03 23:11:59 +00:00
Emanuele Aliberti
63d1ecea6e LsaXXX stubs added.
svn path=/trunk/; revision=2227
2001-09-03 20:42:44 +00:00
Casper Hornstrup
c997de334b Fixed compilation error.
svn path=/trunk/; revision=2226
2001-09-02 19:48:19 +00:00
Emanuele Aliberti
df39763241 KERNEL32.GetPriorityClass fixed.
svn path=/trunk/; revision=2225
2001-09-02 17:59:44 +00:00
David Welch
750b45e5a3 Added generic capture functions.
svn path=/trunk/; revision=2224
2001-09-02 17:31:00 +00:00
David Welch
97771b1487 Implemented NtSetEnvironmentVariable
svn path=/trunk/; revision=2223
2001-09-02 17:29:52 +00:00
David Welch
0bb08690eb Implemented NtQuerySystemEnvironmentValue
svn path=/trunk/; revision=2222
2001-09-02 15:38:46 +00:00
Casper Hornstrup
145dc8c01d Removed dbgprints
svn path=/trunk/; revision=2221
2001-09-02 12:19:34 +00:00
Casper Hornstrup
c6548b080f Ported 32-bit OLE32 functions from WINE.
svn path=/trunk/; revision=2220
2001-09-02 09:16:23 +00:00
Casper Hornstrup
247c229fc0 Ported 32-bit OLE32 functions from WINE.
svn path=/trunk/; revision=2219
2001-09-02 09:10:47 +00:00
Rex Jolliff
301b03bb9b LiteStep needs GetUserName aliased
svn path=/trunk/; revision=2218
2001-09-01 19:39:23 +00:00
Rex Jolliff
787bcc5f53 add current directory to default search path so programs can find their own dlls
svn path=/trunk/; revision=2217
2001-09-01 19:36:30 +00:00
Casper Hornstrup
b83d417811 Implemented many console & registry functions to get registry explorer running.
Load services from registry - part 1 (disabled due to bug in registry).

svn path=/trunk/; revision=2216
2001-09-01 15:36:45 +00:00
David Welch
17897f7c03 Use the directory tree created by the install target for Linux
installation
Print an informative message in all instances where CreateSystemRootLink
fails
Corrected tools/helper.mk, use the right dll name when building an import
library but also give the target the same name as the import library.
Corrected bad target directory for install target in apps/test

svn path=/trunk/; revision=2215
2001-09-01 11:55:38 +00:00
Casper Hornstrup
e9276ee142 Reverting last change, because MK_IMPLIB is used to determine if an import library should be generated.
svn path=/trunk/; revision=2214
2001-09-01 10:38:49 +00:00
Emanuele Aliberti
b837fe0841 NTDLL.CsrClientCallServer: more info on the interface.
svn path=/trunk/; revision=2212
2001-08-31 20:06:17 +00:00
David Welch
6ad77c02b3 More Linux compilation fixes
svn path=/trunk/; revision=2211
2001-08-31 19:30:16 +00:00
Eric Kohl
a28f736301 Fixed calling conventions
svn path=/trunk/; revision=2210
2001-08-30 23:51:08 +00:00
David Welch
68ceda5ada More Linux compilation fixes.
svn path=/trunk/; revision=2209
2001-08-30 23:35:06 +00:00
David Welch
7cd6d8936d More fixes for Linux compilation.
svn path=/trunk/; revision=2208
2001-08-30 23:23:16 +00:00
David Welch
bb328ae107 Fixes for compilation on Linux
svn path=/trunk/; revision=2207
2001-08-30 23:01:30 +00:00
David Welch
a5d8a7ac82 Don't remake import libraries unnecessarily, use the same extension for
the target as the file which is actually built.

svn path=/trunk/; revision=2206
2001-08-30 22:20:11 +00:00
David Welch
dffb0e9a7a Changed internal/config.h -> roscfg.h in a number of files.
Use a proper prefix for executing programs in tools/Makefile.

svn path=/trunk/; revision=2205
2001-08-30 20:38:20 +00:00
David Welch
888fe38dca Added some more descriptive comments.
svn path=/trunk/; revision=2204
2001-08-30 19:48:21 +00:00
Rex Jolliff
0c52657980 preliminary implementation of boot hive import. exposes memory problem in registry routines
svn path=/trunk/; revision=2203
2001-08-29 05:06:31 +00:00
Jason Filby
5a73b65484 Remove ugly hack for the current display DC
svn path=/trunk/; revision=2202
2001-08-28 18:16:32 +00:00
Eric Kohl
b3ab3efa96 Fixed callback calling conventions (part 2).
svn path=/trunk/; revision=2201
2001-08-27 01:29:07 +00:00
Eric Kohl
20f65a3fb9 Fixed callback calling conventions (part 1).
svn path=/trunk/; revision=2200
2001-08-26 17:30:21 +00:00
Eric Kohl
a9a6bae87b Added partinfo application.
svn path=/trunk/; revision=2199
2001-08-25 17:03:30 +00:00
Eric Kohl
c276551b2b No longer in use
svn path=/trunk/; revision=2198
2001-08-23 21:44:15 +00:00
Eric Kohl
9934c830e0 Moved buildno into tools directory
svn path=/trunk/; revision=2197
2001-08-23 21:43:32 +00:00
Casper Hornstrup
d094202f91 Boot script for ACPI target
svn path=/trunk/; revision=2196
2001-08-23 17:35:17 +00:00
Casper Hornstrup
a50141ac65 Pass ACPI driver on command line
svn path=/trunk/; revision=2195
2001-08-23 17:34:00 +00:00
Casper Hornstrup
5d518a1695 Fixes for APCI bus driver.
svn path=/trunk/; revision=2194
2001-08-23 17:32:04 +00:00
Casper Hornstrup
c5d8547022 Compile correctly when target is ACPI.
svn path=/trunk/; revision=2193
2001-08-23 16:31:27 +00:00
Casper Hornstrup
aa20d5b1d5 Integrated winhello into new build system
svn path=/trunk/; revision=2192
2001-08-23 16:14:57 +00:00
Eric Kohl
b36ed4b1fc Copy ntoskrnl and boot drivers to new location.
Copy hall.dll too.

svn path=/trunk/; revision=2191
2001-08-23 15:37:10 +00:00
Eric Kohl
1b9adb989a Don't use msvcrt as default runtime library for console apps. Let the linker use its default runtime library.
svn path=/trunk/; revision=2190
2001-08-23 15:34:00 +00:00
Eric Kohl
356f44b7de Forward exports to HAL.DLL after splitting HAL.
svn path=/trunk/; revision=2189
2001-08-23 15:26:57 +00:00
Rex Jolliff
d6107fdbb1 DriverEntry is now called with correct parameters
Minor Fix to new build logic

svn path=/trunk/; revision=2188
2001-08-22 03:53:53 +00:00
Casper Hornstrup
be1ee02554 Global configuration moved to include/roscfg.h
svn path=/trunk/; revision=2187
2001-08-21 21:51:43 +00:00
Casper Hornstrup
36402e5aa4 Module wide .cvsignore for:
*.sys, *.exe, *.dll, *.a, *.o, *.coff

Seperated the HALs from ntoskrnl.exe

Added template HAL

svn path=/trunk/; revision=2186
2001-08-21 20:18:27 +00:00
Casper Hornstrup
3f69ca4cc4 Major update of the build system:
- Created helper makefile for all targets
- Made most makefiles simpler by using the helper makefile
- Moved build tools into ./tools

Updated installation instructions

svn path=/trunk/; revision=2185
2001-08-21 20:13:17 +00:00
Emanuele Aliberti
aaada25107 Preliminary directory tree for the "development kits".
svn path=/trunk/; revision=2184
2001-08-21 18:06:43 +00:00
Jason Filby
ec838a6880 Win32 GUI Hello World
svn path=/trunk/; revision=2183
2001-08-20 19:50:21 +00:00
Emanuele Aliberti
a004822e63 Definition of LPC_DEBUG_MESSAGE added in napi/lpc.h.
svn path=/trunk/; revision=2182
2001-08-16 20:56:05 +00:00
Jason Filby
5b66798cd7 Change versioning infor for 0.0.18
svn path=/trunk/; revision=2181
2001-08-16 19:42:15 +00:00
Eric Kohl
bf4cedbfce Removed useless file.
This one caused too much trouble.

svn path=/trunk/; revision=2180
2001-08-16 15:11:02 +00:00
Eric Kohl
55000d5cf0 Fixed compiler warnings.
svn path=/trunk/; revision=2179
2001-08-16 15:09:35 +00:00
Hartmut Birr
73cbc9cc37 There was the wrong file handle in a call to FindClose().
svn path=/trunk/; revision=2178
2001-08-16 10:07:42 +00:00
Emanuele Aliberti
3869ce90e5 Minor fixes in KERNEL32.TerminateThread() and in
KERNEL32.TerminateProcess().

svn path=/trunk/; revision=2177
2001-08-15 20:35:39 +00:00
Emanuele Aliberti
5a9b7bebbc Minor fix in CSR.GetTitle().
svn path=/trunk/; revision=2176
2001-08-14 22:00:21 +00:00
Hartmut Birr
f293bda38a Restoring 1.1
There was a mistake by commiting share.c.

svn path=/trunk/; revision=2175
2001-08-14 21:14:05 +00:00
Hartmut Birr
7ee896cad1 ReadAccess and DeleteAcces was initialized with wrong values (in IoCheckShareAccess() and IoSetShareAccess()). share.c
svn path=/trunk/; revision=2174
2001-08-14 21:05:10 +00:00
Hartmut Birr
41e8ef1540 Change the attribute from FILE_DIRECTORY_FILE to
FILE_NON_DIRECTORY_FILE in DeleteFileW().

svn path=/trunk/; revision=2173
2001-08-14 20:50:47 +00:00
Hartmut Birr
d0f2100e07 Enabled the call to ObDereferenceObject for some
IRP_MJ_xxx functions in IoSecondStageCompletion().

svn path=/trunk/; revision=2172
2001-08-14 20:49:05 +00:00
Hartmut Birr
cc2e3f0806 Added support for directory/file removing/deleting.
Fixed the overwriting bug between addEntry() and updEntry().
Change FindFile() from serach with a sector and index to search with a single index.

svn path=/trunk/; revision=2171
2001-08-14 20:47:30 +00:00
Emanuele Aliberti
52a23385a1 CSR.GetTitle implemented.
Some cleanup in the csrss.exe code.

svn path=/trunk/; revision=2170
2001-08-14 12:57:16 +00:00
Hartmut Birr
1f36dc8a8a Fixed the return value in Fat12GetNextCluster().
svn path=/trunk/; revision=2169
2001-08-14 08:06:26 +00:00
Eric Kohl
b0c7df1b9a Implemented IOCTL_DISK_GET_DRIVE_LAYOUT.
svn path=/trunk/; revision=2168
2001-08-13 16:43:36 +00:00
Eric Kohl
25f3f80f1e Fixed interpretation of BIOS memory map.
Patch by Hartmut Birr.

svn path=/trunk/; revision=2167
2001-08-13 16:39:01 +00:00
Brian Palmer
9dd23174c8 Fixed nasm calling bug.
svn path=/trunk/; revision=2166
2001-08-10 06:44:31 +00:00
Hartmut Birr
8eeb1a96b8 VfatReadBigCluster()/VfatReadSmallCluster()/
VfatWriteBigCluster()/VfatWriteSmallCluster():
- Fixed a bug, that will read data over the end
  of the given buffer or write wrong data to
  the disk, when there is a read without caching
  and the start is on the cluster boundery and
  the end not.
VfatReadSmallCluster()/VfatWriteSmallCluster():
- A cache segment is set to valid, when all clusters
  in the segment are readed or written.
VfatWriteSmallCluster():
- The Parameter Extend is set to TRUE (overwritten),
  when the data need a new cluster.
VfatReadFile()/VfatWriteFile():
- Added special handling for the root directory on
  fat12/fat16, so that a read or write operation
  does not touche the cluster area.
- Added some error handling.

svn path=/trunk/; revision=2165
2001-08-08 19:04:13 +00:00
Eric Kohl
c0cbc28359 Fixed incorrect calling conventions.
svn path=/trunk/; revision=2164
2001-08-07 15:44:40 +00:00
Hartmut Birr
0af72b1ead Fixed a bug in VfatWriteFile().
For partitions with clusters < 4k,
there was calculated the wrong start cluster.

svn path=/trunk/; revision=2163
2001-08-07 15:38:04 +00:00
Eric Kohl
65d55d8863 Changed stack allocation.
Fixed bugs in NtAllocateVirtualMemory().
Disabled NtProtectVirtualMemory().

svn path=/trunk/; revision=2162
2001-08-07 14:13:45 +00:00
Eric Kohl
2e249e1b26 Changed stack allocation.
Fixed bugs in NtAllocateVirtualMemory().
Disabled NtProtectVirtualMemory().

svn path=/trunk/; revision=2161
2001-08-07 14:01:42 +00:00
Eric Kohl
cc7a62391e Fixed nasm calling bug.
svn path=/trunk/; revision=2160
2001-08-07 07:15:24 +00:00
Brian Palmer
d32f7b5e5b Added support for debug prints over a RS232 line.
svn path=/trunk/; revision=2159
2001-08-07 06:19:43 +00:00
Brian Palmer
1b761836a3 Simple Win32 boot sector installer. Will not work under Win9x.
svn path=/trunk/; revision=2158
2001-08-07 05:37:13 +00:00
Hartmut Birr
e163d9c89c Fixed a bug in FindCloseFile().
The return value was allways FALSE.
Cmd's 'dir /s' will now work.

svn path=/trunk/; revision=2157
2001-08-06 18:37:23 +00:00
Hartmut Birr
6167160a26 Fixed a bug in SetFilePointer(),
when the starting point is the end of the file.
test-fseek will now work.

svn path=/trunk/; revision=2156
2001-08-06 18:35:15 +00:00
Eric Kohl
6d07d7107b Fixed stupid typo.
svn path=/trunk/; revision=2155
2001-08-05 21:48:25 +00:00
Hartmut Birr
8fa2bb273a Removed changes 1.26/1.27
svn path=/trunk/; revision=2154
2001-08-05 16:35:52 +00:00
Hartmut Birr
ae35912b3a Disabled debug message in VfatReadFile()/VfatWriteFile().
svn path=/trunk/; revision=2153
2001-08-04 11:10:36 +00:00
Hartmut Birr
34b4c8f40b Added updating of FileObject->CurrentByteOffset in VfatRead()/VfatWrite.
svn path=/trunk/; revision=2152
2001-08-04 11:02:47 +00:00
Hartmut Birr
b4a4e5c0be Fixed a bug in CopyFileExW().
The write count is set to the previous returned read length.

svn path=/trunk/; revision=2151
2001-08-04 10:40:38 +00:00
Emanuele Aliberti
4073da2472 Minor fix.
svn path=/trunk/; revision=2149
2001-08-03 21:49:14 +00:00
Eric Kohl
4b420ec7f6 Fixed stack allocation for initial process (smss.exe).
svn path=/trunk/; revision=2148
2001-08-03 19:52:12 +00:00
Hartmut Birr
27346f997d Fixed a bug in addEntry().
The short names are generated and validated correctly.

svn path=/trunk/; revision=2147
2001-08-03 19:01:17 +00:00
Hartmut Birr
de97756973 Added support for file/directory finding by short names.
svn path=/trunk/; revision=2146
2001-08-03 19:00:41 +00:00
Emanuele Aliberti
6fc5560247 I implemented KERNEL32.RaiseException().
svn path=/trunk/; revision=2145
2001-08-03 17:39:09 +00:00
Eric Kohl
e183b6028f Rewrote stack allocation.
svn path=/trunk/; revision=2144
2001-08-03 17:21:38 +00:00
Eugene Ingerman
e2e13b71ce Lock address space before calling MmCreateMemoryArea.
svn path=/trunk/; revision=2143
2001-08-03 09:36:19 +00:00
Phillip Susi
3208a93c26 Some more simple etags make rules
svn path=/trunk/; revision=2142
2001-08-02 20:25:17 +00:00
Phillip Susi
10b469cbd4 Added missing ascii/unicode defines for GetDiskFreeSpaceEx
svn path=/trunk/; revision=2141
2001-08-02 20:24:13 +00:00
Phillip Susi
933eb642dd Added rule to make etags files... cheap hack right now, should be cleaned up later
svn path=/trunk/; revision=2140
2001-08-02 20:22:24 +00:00
Phillip Susi
1c6b3f753a Added SetWindowOrgEx and SetViewportOrgEx
svn path=/trunk/; revision=2139
2001-08-02 20:20:17 +00:00
Phillip Susi
a33633bdad Changed debug print of WSTR from %wZ to %S, was causing crash
svn path=/trunk/; revision=2138
2001-08-02 15:55:15 +00:00
Hartmut Birr
a252566666 Fixed a minor bug in __getmainargs()/__GetMainArgs().
The parser for argc/argv inserts '\0'-characters in the buffer (CommandLineA).
The next call to GetCommandLineA() returns only the first parameter (program name).

svn path=/trunk/; revision=2137
2001-08-02 12:39:35 +00:00
Casper Hornstrup
e3a75fb4da no message
svn path=/branches/avendor/; revision=1279
2000-08-01 18:43:38 +00:00
The ReactOS Team
ce122bcdea This commit was manufactured by cvs2svn to create branch 'avendor'.
svn path=/branches/avendor/; revision=1278
2000-08-01 18:43:38 +00:00
4820 changed files with 623459 additions and 377864 deletions

View File

@@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@@ -1,145 +0,0 @@
# FreeLoader by Brian Palmer
# FREELDR.INI - FreeLoader Initialization file
#
# Each line must be less than 1024 characters long
# and must be either a section heading (i.e. [section_name])
# or a setting (i.e. name=value) or a blank line.
# Comments start with a '#' character.
# Background colors can be any one of the following:
# Black
# Blue
# Green
# Cyan
# Red
# Magenta
# Brown
# Gray
# Text colors can be any one of the background
# colors and any of the following:
# DarkGray
# LightBlue
# LightGreen
# LightCyan
# LightRed
# LightMagenta
# Yellow
# White
# [FREELOADER] Section Commands:
#
# MessageBox - displays the specified text in a message box upon bootup
# MessageLine - adds a new line of text to a message box (must come before MessageBox command)
# TitleText - text that is displayed in the title box
# StatusBarColor - color of status bar's background
# StatusBarTextColor - color of status bar's text
# BackdropTextColor - color of the backdrop's fill
# BackdropColor - color of the backdrop's background
# BackdropFillStyle - backdrop fill style - can be Light, Medium, or Dark
# TitleBoxTextColor - title box text color
# TitleBoxColor - title box background color
# MessageBoxTextColor - message box text color
# MessageBoxColor - message box background color
# MenuTextColor - menu text color
# MenuColor - menu color
# TextColor - normal text color
# SelectedTextColor - selected text color
# SelectedColor - selected text background color
# TimeOut - sets the timeout (in seconds) before the first OS listed gets booted automagically
# [OS-General] Section Commands:
#
# BootType - sets the boot type: ReactOS, Linux, BootSector, Partition, Drive
# BootDrive - sets the boot drive: 0 - first floppy, 1 - second floppy, 0x80 - first hard disk, 0x81 - second hard disk
# BootPartition - sets the boot partition
# [BootSector OSType] Section Commands:
#
# BootSector - sets the filename of the bootsector to be loaded
# [ReactOS OSType] Section Commands:
#
# SystemPath - sets the system root path (must be a valid ARC - Path):
# multi(0)disk(0)rdisk(0)partition(1)\reactos
# multi(0)disk(0)fdisk(0)
# Options - sets the command line options for the kernel being booted
# Kernel - sets the kernel filename
# Driver - sets the name of one or more drivers to be loaded (one entry per driver)
[FREELOADER]
MessageLine=Welcome to FreeLoader!
MessageLine=Copyright (c) 2000 by Brian Palmer <brianp@sginet.com>
MessageLine=
MessageBox=Edit your FREELDR.INI file to change your boot settings.
TitleText=Boot Menu
StatusBarColor=Cyan
StatusBarTextColor=Black
BackdropTextColor=White
BackdropColor=Blue
BackdropFillStyle=Medium
TitleBoxTextColor=White
TitleBoxColor=Red
MessageBoxTextColor=White
MessageBoxColor=Blue
MenuTextColor=White
MenuColor=Blue
TextColor=Yellow
SelectedTextColor=Black
SelectedColor=Gray
OS=ReactOS (HD)
OS=ReactOS (Floppy)
#OS=ReactOS (Debug)
#OS=Linux
OS=3<> Floppy (A:)
OS=Microsoft Windows (C:)
OS=Drive D:
#TimeOut=0
# Load ReactOS from harddisk (drive C:)
# - does not work on large harddisks
[ReactOS (HD)]
BootType=ReactOS
SystemPath=multi(0)disk(0)rdisk(0)partition(1)\reactos
Options=/DEBUGPORT=SCREEN
Kernel=NTOSKRNL.EXE
Driver=IDE.SYS
Driver=VFATFS.SYS
# Load ReactOS from floppy (drive A:)
[ReactOS (Floppy)]
BootType=ReactOS
SystemPath=multi(0)disk(0)fdisk(0)
Options=/DEBUGPORT=SCREEN
Kernel=NTOSKRNL.EXE
Driver=IDE.SYS
Driver=VFATFS.SYS
#[ReactOS (Debug)]
#BootType=ReactOS
#BootDrive=0
#Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=19200
#Kernel=\NTOSKRNL.EXE
#Driver=\DRIVERS\IDE.SYS
#Driver=\DRIVERS\VFATFS.SYS
#[Linux]
# Linux boot type not implemented yet
#BootType=Partition
#BootDrive=0x80
#BootPartition=2
[3<> Floppy (A:)]
BootType=Drive
BootDrive=0
[Microsoft Windows (C:)]
BootType=Drive
BootDrive=0x80
[Drive D:]
BootType=Partition
BootDrive=0x81
BootPartition=1

View File

@@ -1,43 +0,0 @@
#
# FreeLoader
# Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
export CC = gcc
export LD = ld
export AR = ar
export RM = cmd /C del
export CP = cmd /C copy
export NASM = nasm
export MAKE = make
.PHONY : bootsect freeldr install clean
all: bootsect freeldr install
bootsect:
$(MAKE) -C bootsect
freeldr: bootsect
$(MAKE) -C freeldr
install:
$(MAKE) -C install
clean:
$(RM) *.bin

View File

@@ -1,54 +0,0 @@
#
# FreeLoader
# Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
export CC = gcc
export LD = ld
export AR = ar
export RM = cmd /C del
export CP = cmd /C copy
export NASM = nasm
.PHONY : clean
all: fat.bin fat32.bin bin2c.exe split.exe stubit.exe
fat.bin: fat.asm bin2c.exe split.exe
$(NASM) -o fat_tmp.bin -f bin fat.asm
split fat_tmp.bin fat.bin fatstub.bin 512
$(RM) fat_tmp.bin
bin2c fat.bin fat.h fat_data
fat32.bin: fat32.asm bin2c.exe
$(NASM) -o fat32.bin -f bin fat32.asm
bin2c fat32.bin fat32.h fat32_data
bin2c.exe: bin2c.c
$(CC) -o bin2c.exe bin2c.c
split.exe: split.c
$(CC) -o split.exe split.c
stubit.exe: stubit.c
$(CC) -o stubit.exe stubit.c
clean:
$(RM) *.bin
$(RM) *.exe
$(RM) *.h

View File

@@ -1,48 +0,0 @@
#include <stdio.h>
FILE *in;
FILE *out;
int main(int argc, char *argv[])
{
unsigned char ch;
int cnt = 0;
if (argc < 4)
{
printf("usage: bin2c infile.bin outfile.h array_name\n");
return -1;
}
if ((in = fopen(argv[1], "rb")) == NULL)
{
printf("Couldn't open data file.\n");
return -1;
}
if ((out = fopen(argv[2], "wb")) == NULL)
{
printf("Couldn't open output file.\n");
return -1;
}
fprintf(out, "unsigned char %s[] = {\n", argv[3]);
ch = fgetc(in);
while (!feof(in))
{
if (cnt != 0)
fprintf(out, ", ");
if (!(cnt % 16))
fprintf(out, "\n");
fprintf(out, "0x%02x", (int)ch);
cnt++;
ch = fgetc(in);
}
fprintf(out, "\n};");
fclose(in);
fclose(out);
return 0;
}

View File

@@ -1,494 +0,0 @@
; FAT.ASM
; FAT12/16 Boot Sector
; Copyright (c) 1998, 2001 Brian Palmer
; This is a FAT12/16 file system boot sector
; that searches the entire root directory
; for the file freeldr.sys and loads it into
; memory.
;
; The stack is set to 0000:7C00 so that the first
; DWORD pushed will be placed at 0000:7BFC
;
; When it locates freeldr.sys on the disk it will
; load the first sector of the file to 0000:7E00
; With the help of this sector we should be able
; to load the entire file off the disk, no matter
; how fragmented it is.
;
; We load the entire FAT table into memory at
; 7000:0000. This improves the speed of floppy disk
; boots dramatically.
org 7c00h
segment .text
bits 16
start:
jmp short main
nop
OEMName db 'FrLdr1.0'
BytesPerSector dw 512
SectsPerCluster db 1
ReservedSectors dw 1
NumberOfFats db 2
MaxRootEntries dw 224
TotalSectors dw 2880
MediaDescriptor db 0f0h
SectorsPerFat dw 9
SectorsPerTrack dw 18
NumberOfHeads dw 2
HiddenSectors dd 0
TotalSectorsBig dd 0
BootDrive db 0
Reserved db 0
ExtendSig db 29h
SerialNumber dd 00000000h
VolumeLabel db 'NO NAME '
FileSystem db 'FAT12 '
main:
cli
cld
xor ax,ax
mov ss,ax
mov bp,7c00h
mov sp,bp ; Setup a stack
mov ax,cs ; Setup segment registers
mov ds,ax ; Make DS correct
mov es,ax ; Make ES correct
sti ; Enable ints now
mov [BYTE bp+BootDrive],dl ; Save the boot drive
xor ax,ax ; Zero out AX
; Reset disk controller
int 13h
jnc Continue1
jmp BadBoot ; Reset failed...
Continue1:
; Now we must find our way to the first sector of the root directory
xor ax,ax
xor dx,dx
mov al,[BYTE bp+NumberOfFats] ; Number of fats
mul WORD [BYTE bp+SectorsPerFat] ; Times sectors per fat
add ax,WORD [BYTE bp+HiddenSectors]
adc dx,WORD [BYTE bp+HiddenSectors+2] ; Add the number of hidden sectors
add ax,WORD [BYTE bp+ReservedSectors] ; Add the number of reserved sectors
adc dx,byte 0 ; Add carry bit
push ax ; Store it on the stack
push dx ; Save 32-bit logical start sector
push ax
push dx ; Save it for later use also
; DX:AX now has the number of the starting sector of the root directory
; Now calculate the size of the root directory
mov ax,0020h ; Size of dir entry
mul WORD [BYTE bp+MaxRootEntries] ; Times the number of entries
mov bx,[BYTE bp+BytesPerSector]
add ax,bx
dec ax
div bx ; Divided by the size of a sector
; AX now has the number of root directory sectors
xchg ax,cx ; Now CX has number of sectors
pop dx
pop ax ; Restore logical sector start
push cx ; Save number of root dir sectors for later use
mov bx,7c0h ; We will load the root directory
add bx,byte 20h ; Right after the boot sector in memory
mov es,bx
xor bx,bx ; We will load it to [0000:7e00h]
call ReadSectors ; Read the sectors
; Now we have to find our way through the root directory to
; The OSLOADER.SYS file
mov bx,[BYTE bp+MaxRootEntries]; Search entire root directory
mov ax,7e0h ; We loaded at 07e0:0000
mov es,ax
xor di,di
mov si,filename
mov cx,11
rep cmpsb ; Compare filenames
jz FoundFile ; If same we found it
dec bx
jnz FindFile
jmp ErrBoot
FindFile:
mov ax,es ; We didn't find it in the previous dir entry
add ax,byte 2 ; So lets move to the next one
mov es,ax ; And search again
xor di,di
mov si,filename
mov cx,11
rep cmpsb ; Compare filenames
jz FoundFile ; If same we found it
dec bx ; Keep searching till we run out of dir entries
jnz FindFile ; Last entry?
jmp ErrBoot
FoundFile:
; We found freeldr.sys on the disk
; so we need to load the first 512
; bytes of it to 0000:7E00
xor di,di ; ES:DI has dir entry
xor dx,dx
mov ax,WORD [es:di+1ah]; Get start cluster
dec ax ; Adjust start cluster by 2
dec ax ; Because the data area starts on cluster 2
xor ch,ch
mov cl,BYTE [BYTE bp+SectsPerCluster] ; Times sectors per cluster
mul cx
pop cx ; Get number of sectors for root dir
add ax,cx ; Add it to the start sector of freeldr.sys
adc dx,byte 0
pop cx ; Get logical start sector of
pop bx ; Root directory
add ax,bx ; Now we have DX:AX with the logical start
adc dx,cx ; Sector of OSLOADER.SYS
mov cx,1 ; We will load 1 sector
push WORD [es:di+1ah] ; Save start cluster
mov bx,7e0h
mov es,bx
xor bx,bx
call ReadSectors ; Load it
pop ax ; Restore start cluster
jmp LoadFile
; Reads logical sectors into [ES:BX]
; DX:AX has logical sector number to read
; CX has number of sectors to read
; CarryFlag set on error
ReadSectors:
push ax
push dx
push cx
xchg ax,cx
xchg ax,dx
xor dx,dx
div WORD [BYTE bp+SectorsPerTrack]
xchg ax,cx
div WORD [BYTE bp+SectorsPerTrack] ; Divide logical by SectorsPerTrack
inc dx ; Sectors numbering starts at 1 not 0
xchg cx,dx
div WORD [BYTE bp+NumberOfHeads] ; Number of heads
mov dh,dl ; Head to DH, drive to DL
mov dl,[BYTE bp+BootDrive] ; Drive number
mov ch,al ; Cylinder in CX
ror ah,1 ; Low 8 bits of cylinder in CH, high 2 bits
ror ah,1 ; in CL shifted to bits 6 & 7
or cl,ah ; Or with sector number
mov ax,0201h
int 13h ; DISK - READ SECTORS INTO MEMORY
; AL = number of sectors to read, CH = track, CL = sector
; DH = head, DL = drive, ES:BX -> buffer to fill
; Return: CF set on error, AH = status (see AH=01h), AL = number of sectors read
jc BadBoot
pop cx
pop dx
pop ax
inc ax ;Increment Sector to Read
jnz NoCarry
inc dx
NoCarry:
push bx
mov bx,es
add bx,byte 20h
mov es,bx
pop bx
; Increment read buffer for next sector
loop ReadSectors ; Read next sector
ret
; Displays a bad boot message
; And reboots
BadBoot:
mov si,msgDiskError ; Bad boot disk message
call PutChars ; Display it
mov si,msgAnyKey ; Press any key message
call PutChars ; Display it
jmp Reboot
; Displays an error message
; And reboots
ErrBoot:
mov si,msgFreeLdr ; FreeLdr not found message
call PutChars ; Display it
mov si,msgAnyKey ; Press any key message
call PutChars ; Display it
Reboot:
xor ax,ax
int 16h ; Wait for a keypress
int 19h ; Reboot
PutChars:
lodsb
or al,al
jz short Done
mov ah,0eh
mov bx,07h
int 10h
jmp short PutChars
Done:
retn
msgDiskError db 'Disk error',0dh,0ah,0
msgFreeLdr db 'FREELDR.SYS not found',0dh,0ah,0
msgAnyKey db 'Press any key to continue.',0dh,0ah,0
filename db 'FREELDR SYS'
times 510-($-$$) db 0 ; Pad to 510 bytes
dw 0aa55h ; BootSector signature
; End of bootsector
;
; Now starts the extra boot code that we will store
; in the first 512 bytes of freeldr.sys
LoadFile:
; Display "Loading FreeLoader..." message
push ax
mov si,msgLoading ; Loading message
call PutChars ; Display it
pop ax
; AX has start cluster of freeldr.sys
push ax
call ReadFatIntoMemory
pop ax
mov bx,7e0h
mov es,bx
LoadFile2:
push ax
call IsFat12
pop ax
jnc LoadFile3
cmp ax,0ff8h ; Check to see if this is the last cluster in the chain
jmp LoadFile4
LoadFile3:
cmp ax,0fff8h
LoadFile4:
jae LoadFile_Done ; If so continue, if not then read then next one
push ax
xor bx,bx ; Load ROSLDR starting at 0000:8000h
push es
call ReadCluster
pop es
xor bx,bx
mov bl,BYTE [BYTE bp+SectsPerCluster]
shl bx,5 ; BX = BX * 512 / 16
mov ax,es ; Increment the load address by
add ax,bx ; The size of a cluster
mov es,ax
call IsFat12
pop ax
push es
jnc LoadFile5
call GetFatEntry12 ; Get the next entry
jmp LoadFile6
LoadFile5:
call GetFatEntry16
LoadFile6:
pop es
jmp LoadFile2 ; Load the next cluster (if any)
LoadFile_Done:
mov dl,BYTE [BYTE bp+BootDrive]
xor ax,ax
push ax
mov ax,8000h
push ax ; We will do a far return to 0000:8000h
retf ; Transfer control to ROSLDR
; Reads the entire FAT into memory at 7000:0000
ReadFatIntoMemory:
mov ax,WORD [BYTE bp+HiddenSectors]
mov dx,WORD [BYTE bp+HiddenSectors+2]
add ax,WORD [BYTE bp+ReservedSectors]
adc dx,byte 0
mov cx,WORD [BYTE bp+SectorsPerFat]
mov bx,7000h
mov es,bx
xor bx,bx
call ReadSectors
ret
; Returns the FAT entry for a given cluster number for 16-bit FAT
; On entry AX has cluster number
; On return AX has FAT entry for that cluster
GetFatEntry16:
xor dx,dx
mov cx,2 ; AX = AX * 2 (since FAT16 entries are 2 bytes)
mul cx
shl dx,0fh
mov bx,7000h
add bx,dx
mov es,bx
mov bx,ax ; Restore FAT entry offset
mov ax,WORD [es:bx] ; Get FAT entry
ret
; Returns the FAT entry for a given cluster number for 12-bit FAT
; On entry AX has cluster number
; On return AX has FAT entry for that cluster
GetFatEntry12:
push ax
mov cx,ax
shr ax,1
add ax,cx ; AX = AX * 1.5 (AX = AX + (AX / 2)) (since FAT12 entries are 12 bits)
mov bx,7000h
mov es,bx
mov bx,ax ; Put FAT entry offset into BX
mov ax,WORD [es:bx] ; Get FAT entry
pop cx ; Get cluster number from stack
and cx,1
jz UseLow12Bits
and ax,0fff0h
shr ax,4
jmp GetFatEntry12_Done
UseLow12Bits:
and ax,0fffh
GetFatEntry12_Done:
ret
; Reads cluster number in AX into [ES:0000]
ReadCluster:
; StartSector = ((Cluster - 2) * SectorsPerCluster) + + ReservedSectors + HiddenSectors;
dec ax
dec ax
xor dx,dx
movzx bx,BYTE [BYTE bp+SectsPerCluster]
mul bx
push ax
push dx
; Now calculate the size of the root directory
mov ax,0020h ; Size of dir entry
mul WORD [BYTE bp+MaxRootEntries] ; Times the number of entries
mov bx,WORD [BYTE bp+BytesPerSector]
add ax,bx
dec ax
div bx ; Divided by the size of a sector
mov cx,ax
; CX now has the number of root directory sectors
xor dx,dx
movzx ax,BYTE [BYTE bp+NumberOfFats]
mul WORD [BYTE bp+SectorsPerFat]
add ax,WORD [BYTE bp+ReservedSectors]
adc dx,byte 0
add ax,WORD [BYTE bp+HiddenSectors]
adc dx,WORD [BYTE bp+HiddenSectors+2]
add ax,cx
adc dx,byte 0
pop cx
pop bx
add ax,bx
adc dx,cx
xor bx,bx ; We will load it to [ES:0000], ES loaded before function call
movzx cx,BYTE [BYTE bp+SectsPerCluster]
call ReadSectors
ret
; Returns CF = 1 if this is a FAT12 file system
; Otherwise CF = 0 for FAT16
IsFat12:
; Now calculate the size of the root directory
mov ax,0020h ; Size of dir entry
mul WORD [BYTE bp+MaxRootEntries] ; Times the number of entries
mov bx,WORD [BYTE bp+BytesPerSector]
add ax,bx ; Plus (BytesPerSector - 1)
dec ax
div bx ; Divided by the size of a sector
; AX now has the number of root directory sectors
mov bx,ax
; Now we must find our way to the first sector of the root directory
xor ax,ax
xor dx,dx
mov al,BYTE [BYTE bp+NumberOfFats] ; Number of fats
mul WORD [BYTE bp+SectorsPerFat] ; Times sectors per fat
add ax,WORD [BYTE bp+HiddenSectors]
adc dx,WORD [BYTE bp+HiddenSectors+2] ; Add the number of hidden sectors
add ax,[BYTE bp+ReservedSectors] ; Add the number of reserved sectors
adc dx,byte 0 ; Add carry bit
add ax,bx
adc dx,byte 0 ; Add carry bit
; DX:AX now has the number of the starting sector of the data area
xor cx,cx
mov bx,WORD [BYTE bp+TotalSectors]
cmp bx,byte 0
jnz IsFat12_2
mov bx,WORD [BYTE bp+TotalSectorsBig]
mov cx,WORD [BYTE bp+TotalSectorsBig+2]
; CX:BX now contains the number of sectors on the volume
IsFat12_2:
sub bx,ax ; Subtract data area start sector
sub cx,dx ; from total sectors of volume
mov ax,bx
mov dx,cx
; DX:AX now contains the number of data sectors on the volume
movzx bx,BYTE [BYTE bp+SectsPerCluster]
div bx
; AX now has the number of clusters on the volume
stc
cmp ax,4085
jb IsFat12_Done
clc
IsFat12_Done:
ret
times 998-($-$$) db 0 ; Pad to 998 bytes
msgLoading db 'Loading FreeLoader...',0dh,0ah,0
dw 0aa55h ; BootSector signature

View File

@@ -1,380 +0,0 @@
; FAT32.ASM
; FAT32 Boot Sector
; Copyright (c) 1998, 2000, 2001 Brian Palmer
org 7c00h
segment .text
bits 16
start:
jmp short main
nop
OEMName db 'FrLdr1.0'
BytesPerSector dw 512
SectsPerCluster db 1
ReservedSectors dw 32
NumberOfFats db 2
MaxRootEntries dw 0 ; Always zero for FAT32 volumes
TotalSectors dw 0 ; Always zero for FAT32 volumes
MediaDescriptor db 0f8h
SectorsPerFat dw 0 ; Always zero for FAT32 volumes
SectorsPerTrack dw 18
NumberOfHeads dw 2
HiddenSectors dd 0
TotalSectorsBig dd 0
; FAT32 Inserted Info
SectorsPerFatBig dd 0
ExtendedFlags dw 0
FSVersion dw 0
RootDirStartCluster dd 0
FSInfoSector dw 0
BackupBootSector dw 6
Reserved1 times 12 db 0
; End FAT32 Inserted Info
BootDrive db 0
Reserved db 0
ExtendSig db 29h
SerialNumber dd 00000000h
VolumeLabel db 'NO NAME '
FileSystem db 'FAT32 '
main:
cli
cld
xor ax,ax
mov ss,ax
mov sp,7c00h ; Setup a stack
mov ax,cs ; Setup segment registers
mov ds,ax ; Make DS correct
mov es,ax ; Make ES correct
sti ; Enable ints now
mov [BootDrive],dl ; Save the boot drive
xor ax,ax ; Zero out AX
cmp word [TotalSectors],byte 0x00 ; Check the old 16-bit value of TotalSectors
jnz ErrBoot ; If it is non-zero then exit with an error
cmp word [FSVersion],byte 0x00 ; Check the file system version word
ja ErrBoot ; If it is not zero then exit with an error
; Reset disk controller
int 13h
jnc LoadExtraBootCode
jmp BadBoot ; Reset failed...
LoadExtraBootCode:
; First we have to load our extra boot code at
; sector 14 into memory at [0000:7e00h]
xor dx,dx
mov ax,0eh
add ax,WORD [HiddenSectors]
adc dx,WORD [HiddenSectors+2] ; Add the number of hidden sectors
mov cx,1
mov bx,7e0h
mov es,bx ; Read sector to [0000:7e00h]
xor bx,bx
call ReadSectors
jmp StartSearch
; Reads logical sectors into [ES:BX]
; DX:AX has logical sector number to read
; CX has number of sectors to read
; CarryFlag set on error
ReadSectors:
push ax
push dx
push cx
xchg ax,cx
xchg ax,dx
xor dx,dx
div WORD [SectorsPerTrack]
xchg ax,cx
div WORD [SectorsPerTrack] ; Divide logical by SectorsPerTrack
inc dx ; Sectors numbering starts at 1 not 0
xchg cx,dx
div WORD [NumberOfHeads] ; Number of heads
mov dh,dl ; Head to DH, drive to DL
mov dl,[BootDrive] ; Drive number
mov ch,al ; Cylinder in CX
ror ah,1 ; Low 8 bits of cylinder in CH, high 2 bits
ror ah,1 ; in CL shifted to bits 6 & 7
or cl,ah ; Or with sector number
mov ax,0201h
int 13h ; DISK - READ SECTORS INTO MEMORY
; AL = number of sectors to read, CH = track, CL = sector
; DH = head, DL = drive, ES:BX -> buffer to fill
; Return: CF set on error, AH = status (see AH=01h), AL = number of sectors read
jc BadBoot
pop cx
pop dx
pop ax
inc ax ;Increment Sector to Read
jnz NoCarry
inc dx
NoCarry:
push bx
mov bx,es
add bx,byte 20h
mov es,bx
pop bx
; Increment read buffer for next sector
loop ReadSectors ; Read next sector
ret
; Displays a bad boot message
; And reboots
BadBoot:
mov si,msgDiskError ; Bad boot disk message
call PutChars ; Display it
mov si,msgAnyKey ; Press any key message
call PutChars ; Display it
jmp Reboot
; Displays an error message
; And reboots
ErrBoot:
mov si,msgFreeLdr ; FreeLdr not found message
call PutChars ; Display it
mov si,msgAnyKey ; Press any key message
call PutChars ; Display it
Reboot:
xor ax,ax
int 16h ; Wait for a keypress
int 19h ; Reboot
PutChars:
lodsb
or al,al
jz short Done
mov ah,0eh
mov bx,07h
int 10h
jmp short PutChars
Done:
retn
msgDiskError db 'Disk error',0dh,0ah,0
msgFreeLdr db 'FREELDR.SYS not found',0dh,0ah,0
msgAnyKey db 'Press any key to continue.',0dh,0ah,0
filename db 'FREELDR SYS'
times 510-($-$$) db 0 ; Pad to 510 bytes
dw 0aa55h ; BootSector signature
; End of bootsector
;
; Now starts the extra boot code that we will store
; at sector 14 on a FAT32 volume
;
; To remain multi-boot compatible with other operating
; systems we must not overwrite anything other than
; the bootsector which means we will have to use
; a different sector like 14 to store our extra boot code
;
; Note: Win2k uses sector 12 for this purpose
StartSearch:
; Now we must get the first cluster of the root directory
mov eax,DWORD [RootDirStartCluster]
cmp eax,0ffffff8h ; Check to see if this is the last cluster in the chain
jb ContinueSearch ; If not continue, if so BadBoot
jmp ErrBoot
ContinueSearch:
mov bx,800h
mov es,bx ; Read cluster to [0000:8000h]
call ReadCluster ; Read the cluster
; Now we have to find our way through the root directory to
; The OSLOADER.SYS file
xor bx,bx
mov bl,[SectsPerCluster]
shl bx,4 ; BX = BX * 512 / 32
mov ax,800h ; We loaded at 0800:0000
mov es,ax
xor di,di
mov si,filename
mov cx,11
rep cmpsb ; Compare filenames
jz FoundFile ; If same we found it
dec bx
jnz FindFile
jmp ErrBoot
FindFile:
mov ax,es ; We didn't find it in the previous dir entry
add ax,2 ; So lets move to the next one
mov es,ax ; And search again
xor di,di
mov si,filename
mov cx,11
rep cmpsb ; Compare filenames
jz FoundFile ; If same we found it
dec bx ; Keep searching till we run out of dir entries
jnz FindFile ; Last entry?
; Get the next root dir cluster and try again until we run out of clusters
mov eax,DWORD [RootDirStartCluster]
call GetFatEntry
mov [RootDirStartCluster],eax
jmp StartSearch
FoundFile:
; Display "Loading FreeLoader..." message
mov si,msgLoading ; Loading message
call PutChars ; Display it
xor di,di ; ES:DI has dir entry
xor dx,dx
mov ax,WORD [es:di+14h] ; Get start cluster high word
shl eax,16
mov ax,WORD [es:di+1ah] ; Get start cluster low word
mov bx,800h
mov es,bx
FoundFile2:
cmp eax,0ffffff8h ; Check to see if this is the last cluster in the chain
jae FoundFile3 ; If so continue, if not then read then next one
push eax
xor bx,bx ; Load ROSLDR starting at 0000:8000h
push es
call ReadCluster
pop es
xor bx,bx
mov bl,[SectsPerCluster]
shl bx,5 ; BX = BX * 512 / 16
mov ax,es ; Increment the load address by
add ax,bx ; The size of a cluster
mov es,ax
pop eax
push es
call GetFatEntry ; Get the next entry
pop es
jmp FoundFile2 ; Load the next cluster (if any)
FoundFile3:
mov dl,[BootDrive]
xor ax,ax
push ax
mov ax,8000h
push ax ; We will do a far return to 0000:8000h
retf ; Transfer control to ROSLDR
; Returns the FAT entry for a given cluster number
; On entry EAX has cluster number
; On return EAX has FAT entry for that cluster
GetFatEntry:
shl eax,2 ; EAX = EAX * 4 (since FAT32 entries are 4 bytes)
mov ecx,eax ; Save this for later in ECX
xor edx,edx
movzx ebx,WORD [BytesPerSector]
push ebx
div ebx ; FAT Sector Number = EAX / BytesPerSector
movzx ebx,WORD [ReservedSectors]
add eax,ebx ; FAT Sector Number += ReservedSectors
mov ebx,DWORD [HiddenSectors]
add eax,ebx ; FAT Sector Number += HiddenSectors
pop ebx
dec ebx
and ecx,ebx ; FAT Offset Within Sector = ECX % BytesPerSector
; EAX holds logical FAT sector number
; ECX holds FAT entry offset
; Now we have to check the extended flags
; to see which FAT is the active one
; and use it, or if they are mirrored then
; no worries
movzx ebx,WORD [ExtendedFlags] ; Get extended flags and put into ebx
and bx,0x0f ; Mask off upper 8 bits
jz GetFatEntry2 ; If fat is mirrored then skip fat calcs
cmp bl,[NumberOfFats] ; Compare bl to number of fats
jc GetFatEntry1
jmp ErrBoot ; If bl is bigger than numfats exit with error
GetFatEntry1:
mov edx,eax ; Put logical FAT sector number in edx
mov eax,[SectorsPerFatBig] ; Get the number of sectors occupied by one fat in eax
mul ebx ; Multiplied by the active FAT index we have in ebx
add eax,edx ; Add the current FAT sector offset
GetFatEntry2:
push ecx
ror eax,16
mov dx,ax
ror eax,16
; DX:AX holds logical FAT sector number
mov bx,7000h
mov es,bx
xor bx,bx ; We will load it to [7000:0000h]
mov cx,1
call ReadSectors
jnc GetFatEntry3
jmp BadBoot
GetFatEntry3:
mov bx,7000h
mov es,bx
pop ecx
mov eax,DWORD [es:ecx] ; Get FAT entry
and eax,0fffffffh ; Mask off reserved bits
ret
; Reads cluster number in EAX into [ES:0000]
ReadCluster:
; StartSector = ((Cluster - 2) * SectorsPerCluster) + ReservedSectors + HiddenSectors;
dec eax
dec eax
xor edx,edx
movzx ebx,BYTE [SectsPerCluster]
mul ebx
push eax
xor edx,edx
movzx eax,BYTE [NumberOfFats]
mul DWORD [SectorsPerFatBig]
movzx ebx,WORD [ReservedSectors]
add eax,ebx
add eax,DWORD [HiddenSectors]
pop ebx
add eax,ebx ; EAX now contains the logical sector number of the cluster
ror eax,16
mov dx,ax
ror eax,16
xor bx,bx ; We will load it to [ES:0000], ES loaded before function call
movzx cx,BYTE [SectsPerCluster]
call ReadSectors
ret
times 998-($-$$) db 0 ; Pad to 998 bytes
msgLoading db 'Loading FreeLoader...',0dh,0ah,0
dw 0aa55h ; BootSector signature

View File

@@ -1,55 +0,0 @@
#include <stdio.h>
FILE *in;
FILE *out;
FILE *new;
int main(int argc, char *argv[])
{
unsigned char ch;
int cnt;
int split_offset;
if (argc < 5)
{
printf("usage: split infile.bin outfile.bin newfile.bin split_offset\n");
return -1;
}
if ((in = fopen(argv[1], "rb")) == NULL)
{
printf("Couldn't open data file.\n");
return -1;
}
if ((out = fopen(argv[2], "wb")) == NULL)
{
printf("Couldn't open output file.\n");
return -1;
}
if ((new = fopen(argv[3], "wb")) == NULL)
{
printf("Couldn't open new file.\n");
return -1;
}
split_offset = atoi(argv[4]);
for (cnt=0; cnt<split_offset; cnt++)
{
ch = fgetc(in);
fputc(ch, out);
}
ch = fgetc(in);
while (!feof(in))
{
fputc(ch, new);
ch = fgetc(in);
}
fclose(in);
fclose(out);
fclose(new);
return 0;
}

View File

@@ -1,52 +0,0 @@
#include <stdio.h>
FILE *in;
FILE *in2;
FILE *out;
int main(int argc, char *argv[])
{
unsigned char ch;
if (argc < 4)
{
printf("usage: stubit infile1.bin infile2.sys outfile.bin\n");
return -1;
}
if ((in = fopen(argv[1], "rb")) == NULL)
{
printf("Couldn't open data file.\n");
return -1;
}
if ((in2 = fopen(argv[2], "rb")) == NULL)
{
printf("Couldn't open data file.\n");
return -1;
}
if ((out = fopen(argv[3], "wb")) == NULL)
{
printf("Couldn't open output file.\n");
return -1;
}
ch = fgetc(in);
while (!feof(in))
{
fputc(ch, out);
ch = fgetc(in);
}
ch = fgetc(in2);
while (!feof(in2))
{
fputc(ch, out);
ch = fgetc(in2);
}
fclose(in);
fclose(in2);
fclose(out);
return 0;
}

View File

@@ -1,464 +0,0 @@
;
; Win2k FAT32 Boot Sector
;
; Brian Palmer <brianp@sginet.com>
;
;
; The BP register is initialized to 0x7c00, the start of
; the boot sector. The SP register is initialized to
; 0x7bf4, leaving 12 bytes of data storage space above
; the stack.
;
; The DWORD that gets stored at 0x7bf4 is 0xffffffff ??
;
; The DWORD that gets stored at 0x7bf8 is the count of
; total sectors of the volume, calculated from the BPB.
;
; The DWORD that gets stored at 0x7bfc is the logical
; sector number of the start of the data area.
;
segment .text
bits 16
start:
jmp short main
nop
OEMName db 'MSWIN4.0'
BytesPerSector dw 512
SectsPerCluster db 1
ReservedSectors dw 1
NumberOfFats db 2
MaxRootEntries dw 0 ;512 - Always zero for FAT32 volumes
TotalSectors dw 0 ;2880 - Always zero for FAT32 volumes
MediaDescriptor db 0f8h
SectorsPerFat dw 0 ;9 - Always zero for FAT32 volumes
SectorsPerTrack dw 18
NumberOfHeads dw 2
HiddenSectors dd 0
TotalSectorsBig dd 0
; FAT32 Inserted Info
SectorsPerFatBig dd 0
ExtendedFlags dw 0
FSVersion dw 0
RootDirStartCluster dd 0
FSInfoSector dw 0
BackupBootSector dw 6
Reserved1 times 12 db 0
; End FAT32 Inserted Info
BootDrive db 0
Reserved db 0
ExtendSig db 29h
SerialNumber dd 00000000h
VolumeLabel db 'NO NAME '
FileSystem db 'FAT32 '
main:
00007C5A 33C9 xor cx,cx
00007C5C 8ED1 mov ss,cx ; Setup the stack
00007C5E BCF47B mov sp,0x7bf4 ; Give us 12 bytes of space above the stack
00007C61 8EC1 mov es,cx
00007C63 8ED9 mov ds,cx
00007C65 BD007C mov bp,0x7c00
00007C68 884E02 mov [bp+0x2],cl ; Zero out the nop instruction?? (3rd byte of the boot sector)
00007C6B 8A5640 mov dl,[bp+BootDrive]
00007C6E B408 mov ah,0x8
00007C70 CD13 int 0x13 ; Int 13, func 8 - Get Drive Parameters
00007C72 7305 jnc drive_param_ok ; If no error jmp
drive_param_error:
00007C74 B9FFFF mov cx,0xffff ; We couldn't determine the drive parameters
00007C77 8AF1 mov dh,cl ; So just set the CHS to 0xff
drive_param_ok:
00007C79 660FB6C6 movzx eax,dh ; Store the number of heads in eax
00007C7D 40 inc ax ; Make it one-based because the bios returns it zero-based
00007C7E 660FB6D1 movzx edx,cl ; Store the sectors per track in edx
00007C82 80E23F and dl,0x3f ; Mask off the cylinder bits
00007C85 F7E2 mul dx ; Multiply the sectors per track with the heads, result in dx:ax
00007C87 86CD xchg cl,ch ; Switch the cylinder with the sectors
00007C89 C0ED06 shr ch,0x6 ; Move the top two cylinder bits down where they should be
00007C8C 41 inc cx ; Make it one-based because the bios returns it zero-based
00007C8D 660FB7C9 movzx ecx,cx
00007C91 66F7E1 mul ecx ; Multiply the cylinders with (heads * sectors) [stored in dx:ax already]
00007C94 668946F8 mov [bp-0x8],eax ; This value is the number of total sectors on the disk, so save it for later
00007C98 837E1600 cmp word [bp+TotalSectors],byte +0x0 ; Check the old 16-bit value of TotalSectors
00007C9C 7538 jnz print_ntldr_error_message ; If it is non-zero then exit with an error
00007C9E 837E2A00 cmp word [bp+FSVersion],byte +0x0 ; Check the file system version word
00007CA2 7732 ja print_ntldr_error_message ; If it is not zero then exit with an error
;
; We are now ready to load our second sector of boot code
; But first, a bit of undocumented information about how
; Win2k stores it's second sector of boot code.
;
; The FAT32 filesystem was designed so that you can store
; multiple sectors of boot code. The boot sector of a FAT32
; volume is actually three sectors long. Microsoft extended
; the BPB so much that you can't fit enough code in the
; boot sector to make it work. So they extended it. Sector 0
; is the traditional boot sector, sector 1 is the FSInfo sector,
; and sector 2 is used to store extra boot code to make up
; for the lost space the BPB takes.
;
; Now this creates an interesting problem. Suppose for example
; that the user has Win98 and Win2k installed. The Win2k
; boot sector is stored at sector 0 and the Win98 boot sector is
; stored as BOOTSECT.DOS on the file system. Now if Win2k were
; to store it's second sector of boot code in sector 2 like
; the fat spec says to do then when you try to dual boot back
; to Win98 the Win98 boot sector will load Win2k's second
; sector of boot code. Understand? ;-)
;
; To get around this problem Win2k stores it's second sector
; of boot code elsewhere. This sector is always stored at sector 13
; on the file system. Now don't ask me what happens when you don't
; have enough reserved sectors to store it, but I've never seen a
; FAT32 volume that didn't have at least 32 reserved sectors.
;
00007CA4 668B461C mov eax,[bp+HiddenSectors] ; Get the count of hidden sectors
00007CA8 6683C00C add eax,byte +0xc ; Add 12 to that value so that we are loading the 13th sector of the volume
00007CAC BB0080 mov bx,0x8000 ; Read the sector to address 0x8000
00007CAF B90100 mov cx,0x1 ; Read just one sector
00007CB2 E82B00 call read_sectors ; Read it
00007CB5 E94803 jmp 0x8000 ; Jump to the next sector of boot code
print_disk_error_message:
00007CB8 A0FA7D mov al,[DISK_ERR_offset_from_0x7d00]
putchars:
00007CBB B47D mov ah,0x7d
00007CBD 8BF0 mov si,ax
get_another_char:
00007CBF AC lodsb
00007CC0 84C0 test al,al
00007CC2 7417 jz reboot
00007CC4 3CFF cmp al,0xff
00007CC6 7409 jz print_reboot_message
00007CC8 B40E mov ah,0xe
00007CCA BB0700 mov bx,0x7
00007CCD CD10 int 0x10
00007CCF EBEE jmp short get_another_char
print_reboot_message:
00007CD1 A0FB7D mov al,[RESTART_ERR_offset_from_0x7d00]
00007CD4 EBE5 jmp short putchars
print_ntldr_error_message:
00007CD6 A0F97D mov al,[NTLDR_ERR_offset_from_0x7d00]
00007CD9 EBE0 jmp short putchars
reboot:
00007CDB 98 cbw
00007CDC CD16 int 0x16
00007CDE CD19 int 0x19
read_sectors:
00007CE0 6660 pushad
00007CE2 663B46F8 cmp eax,[bp-0x8]
00007CE6 0F824A00 jc near 0x7d34
00007CEA 666A00 o32 push byte +0x0
00007CED 6650 push eax
00007CEF 06 push es
00007CF0 53 push bx
00007CF1 666810000100 push dword 0x10010
00007CF7 807E0200 cmp byte [bp+0x2],0x0
00007CFB 0F852000 jnz near 0x7d1f
00007CFF B441 mov ah,0x41
00007D01 BBAA55 mov bx,0x55aa
00007D04 8A5640 mov dl,[bp+BootDrive]
00007D07 CD13 int 0x13
00007D09 0F821C00 jc near 0x7d29
00007D0D 81FB55AA cmp bx,0xaa55
00007D11 0F851400 jnz near 0x7d29
00007D15 F6C101 test cl,0x1
00007D18 0F840D00 jz near 0x7d29
00007D1C FE4602 inc byte [bp+0x2]
00007D1F B442 mov ah,0x42
00007D21 8A5640 mov dl,[bp+BootDrive]
00007D24 8BF4 mov si,sp
00007D26 CD13 int 0x13
00007D28 B0F9 mov al,0xf9
00007D2A 6658 pop eax
00007D2C 6658 pop eax
00007D2E 6658 pop eax
00007D30 6658 pop eax
00007D32 EB2A jmp short 0x7d5e
00007D34 6633D2 xor edx,edx
00007D37 660FB74E18 movzx ecx,word [bp+SectorsPerTrack]
00007D3C 66F7F1 div ecx
00007D3F FEC2 inc dl
00007D41 8ACA mov cl,dl
00007D43 668BD0 mov edx,eax
00007D46 66C1EA10 shr edx,0x10
00007D4A F7761A div word [bp+NumberOfHeads]
00007D4D 86D6 xchg dl,dh
00007D4F 8A5640 mov dl,[bp+BootDrive]
00007D52 8AE8 mov ch,al
00007D54 C0E406 shl ah,0x6
00007D57 0ACC or cl,ah
00007D59 B80102 mov ax,0x201
00007D5C CD13 int 0x13
00007D5E 6661 popad
00007D60 0F8254FF jc near print_disk_error_message
00007D64 81C30002 add bx,0x200
00007D68 6640 inc eax
00007D6A 49 dec cx
00007D6B 0F8571FF jnz near read_sectors
00007D6F C3 ret
NTLDR db 'NTLDR '
filler times 49 db 0
NTLDR_ERR db 0dh,0ah,'NTLDR is missing',0ffh
DISK_ERR db 0dh,0ah,'Disk error',0ffh
RESTART_ERR db 0dh,0ah,'Press any key to restart',0dh,0ah
more_filler times 16 db 0
NTLDR_offset_from_0x7d00 db 0
NTLDR_ERR_offset_from_0x7d00 db 0ach
DISK_ERR_offset_from_0x7d00 db 0bfh
RESTART_ERR_offset_from_0x7d00 db 0cch
dw 0
dw 0aa55h
;
; And that ends the code that makes up the traditional boot sector
; From here on out is a disassembly of the extra sector of boot
; code required for a FAT32 volume. Win2k stores this code at
; sector 13 on the file system.
;
00008000 660FB64610 movzx eax,byte [bp+NumberOfFats] ; Put the number of fats into eax
00008005 668B4E24 mov ecx,[bp+SectorsPerFatBig] ; Put the count of sectors per fat into ecx
00008009 66F7E1 mul ecx ; Multiply them, edx:eax = (eax * ecx)
0000800C 6603461C add eax,[bp+HiddenSectors] ; Add the hidden sectors to eax
00008010 660FB7560E movzx edx,word [bp+ReservedSectors] ; Put the count of reserved sectors into edx
00008015 6603C2 add eax,edx ; Add it to eax
00008018 668946FC mov [bp-0x4],eax ; eax now contains the start of the data area, so save it for later
0000801C 66C746F4FFFFFFFF mov dword [bp-0xc],0xffffffff ; Save 0xffffffff for later??
00008024 668B462C mov eax,[bp+RootDirStartCluster] ; Put the starting cluster of the root directory into eax
00008028 6683F802 cmp eax,byte +0x2 ; Check and see if the root directory starts at cluster 2 or above
0000802C 0F82A6FC jc near print_ntldr_error_message ; If not exit with error
00008030 663DF8FFFF0F cmp eax,0xffffff8 ; Check and see if the root directory start cluster is and end of cluster chain indicator
00008036 0F839CFC jnc near print_ntldr_error_message ; If so exit with error
search_root_directory_cluster:
0000803A 6650 push eax ; Save root directory start cluster on stack
0000803C 6683E802 sub eax,byte +0x2 ; Adjust it because the first two fat entries are unused so the third entry marks the first data area cluster
00008040 660FB65E0D movzx ebx,byte [bp+SectsPerCluster] ; Put the number of sectors per cluster in ebx
00008045 8BF3 mov si,bx ; Now store it also in si register
00008047 66F7E3 mul ebx ; Multiply sectors per cluster with root directory start cluster
0000804A 660346FC add eax,[bp-0x4] ; Add the start sector of the data area
read_directory_sector:
0000804E BB0082 mov bx,0x8200 ; We now have the start sector of the root directory, so load it to 0x8200
00008051 8BFB mov di,bx ; Put the address of the root directory sector in di also
00008053 B90100 mov cx,0x1 ; Read one sector
00008056 E887FC call read_sectors ; Perform the read
check_entry_for_ntldr:
00008059 382D cmp [di],ch ; Check the first byte of the root directory entry for zero
0000805B 741E jz ntldr_not_found ; If so then NTLDR is missing so exit with error
0000805D B10B mov cl,0xb ; Put the value 11 in cl so we can compare an 11-byte filename
0000805F 56 push si ; Save si (which contains the number of sectors per cluster)
00008060 BE707D mov si,NTLDR ;0x7d70 ; Check and see if "NTLDR" is the first file entry
00008063 F3A6 repe cmpsb ; Do the compare
00008065 5E pop si ; Restore sectors per cluster into si
00008066 741B jz ntldr_found ; If we found it then continue, else check next entry
00008068 03F9 add di,cx ; Add 0 to di? the next entry is 0x15 bytes away
0000806A 83C715 add di,byte +0x15 ; Add 0x15 to di
0000806D 3BFB cmp di,bx ; Check to see if we have reached the end of our sector we loaded, read_sectors sets bx = end address of data loaded
0000806F 72E8 jc check_entry_for_ntldr ; If we haven't reached the end then check the next entry
00008071 4E dec si ; decrement si, si holds the number of sectors per cluster
00008072 75DA jnz read_directory_sector ; If it's not zero then search the next sector for NTLDR
00008074 6658 pop eax ; If we got here that means we didn't find NTLDR in the previous root directory cluster, so restore eax with the start cluster
00008076 E86500 call get_fat_entry ; Get the next cluster in the fat chain
00008079 72BF jc search_root_directory_cluster ; If we reached end-of-file marker then don't jump, otherwise continue search
ntldr_not_found:
0000807B 83C404 add sp,byte +0x4
0000807E E955FC jmp print_ntldr_error_message
ntldr_load_segment_address dw 0x2000
ntldr_found:
00008083 83C404 add sp,byte +0x4 ; Adjust stack to remove root directory start cluster
00008086 8B7509 mov si,[di+0x9] ; Put start cluster high word in si
00008089 8B7D0F mov di,[di+0xf] ; Put start cluster low word in di
0000808C 8BC6 mov ax,si ; Put high word in ax
0000808E 66C1E010 shl eax,0x10 ; Shift it into position
00008092 8BC7 mov ax,di ; Put low word in ax, now eax contains start cluster of NTLDR
00008094 6683F802 cmp eax,byte +0x2 ; Check and see if the start cluster of NTLDR starts at cluster 2 or above
00008098 0F823AFC jc near print_ntldr_error_message ; If not exit with error
0000809C 663DF8FFFF0F cmp eax,0xffffff8 ; Check and see if the start cluster of NTLDR is and end of cluster chain indicator
000080A2 0F8330FC jnc near print_ntldr_error_message ; If so exit with error
load_next_ntldr_cluster:
000080A6 6650 push eax ; Save NTLDR start cluster for later
000080A8 6683E802 sub eax,byte +0x2 ; Adjust it because the first two fat entries are unused so the third entry marks the first data area cluster
000080AC 660FB64E0D movzx ecx,byte [bp+SectsPerCluster] ; Put the sectors per cluster into ecx
000080B1 66F7E1 mul ecx ; Multiply sectors per cluster by the start cluster, we now have the logical start sector
000080B4 660346FC add eax,[bp-0x4] ; Add the start of the data area logical sector
000080B8 BB0000 mov bx,0x0 ; Load NTLDR to offset zero
000080BB 06 push es ; Save es
000080BC 8E068180 mov es,[ntldr_load_segment_address] ; Get the segment address to load NTLDR to
000080C0 E81DFC call read_sectors ; Load the first cluster
000080C3 07 pop es ; Restore es
000080C4 6658 pop eax ; Restore eax to NTLDR start cluster
000080C6 C1EB04 shr bx,0x4 ; bx contains the amount of data we transferred, so divide it by 16
000080C9 011E8180 add [ntldr_load_segment_address],bx ; Add that value to the segment
000080CD E80E00 call get_fat_entry ; Get the next cluster in eax
000080D0 0F830200 jnc near jump_to_ntldr ; If we have reached the end of file then lets get to NTLDR
000080D4 72D0 jc load_next_ntldr_cluster ; If not, then load another cluster
jump_to_ntldr:
000080D6 8A5640 mov dl,[bp+BootDrive] ; Put the boot drive in dl
000080D9 EA00000020 jmp 0x2000:0x0 ; Jump to NTLDR
get_fat_entry:
000080DE 66C1E002 shl eax,0x2 ; Multiply cluster by 4
000080E2 E81100 call load_fat_sector ; Load the fat sector
000080E5 26668B01 mov eax,[es:bx+di] ; Get the fat entry
000080E9 6625FFFFFF0F and eax,0xfffffff ; Mask off the most significant 4 bits
000080EF 663DF8FFFF0F cmp eax,0xffffff8 ; Compare it to end of file marker to set the flags correctly
000080F5 C3 ret ; Return to caller
load_fat_sector:
000080F6 BF007E mov di,0x7e00 ; We will load the fat sector to 0x7e00
000080F9 660FB74E0B movzx ecx,word [bp+SectsPerCluster] ; Get the sectors per cluster
000080FE 6633D2 xor edx,edx ; We will divide (cluster * 4) / sectorspercluster
00008101 66F7F1 div ecx ; eax is already set before we get to this routine
00008104 663B46F4 cmp eax,[bp-0xc] ; Compare eax to 0xffffffff (initially, we set this value later)
00008108 743A jz load_fat_sector_end ; If it is the same return
0000810A 668946F4 mov [bp-0xc],eax ; Update that value
0000810E 6603461C add eax,[bp+HiddenSectors] ; Add the hidden sectors
00008112 660FB74E0E movzx ecx,word [bp+ReservedSectors] ; Add the reserved sectors
00008117 6603C1 add eax,ecx ; To the hidden sectors + the value we computed earlier
0000811A 660FB75E28 movzx ebx,word [bp+ExtendedFlags] ; Get extended flags and put into ebx
0000811F 83E30F and bx,byte +0xf ; Mask off upper 8 bits
00008122 7416 jz load_fat_sector_into_memory ; If fat is mirrored then skip fat calcs
00008124 3A5E10 cmp bl,[bp+NumberOfFats] ; Compare bl to number of fats
00008127 0F83ABFB jnc near print_ntldr_error_message ; If bl is bigger than numfats exit with error
0000812B 52 push dx ; Save dx
0000812C 668BC8 mov ecx,eax ; Put the current fat sector offset into ecx
0000812F 668B4624 mov eax,[bp+SectorsPerFatBig] ; Get the number of sectors occupied by one fat
00008133 66F7E3 mul ebx ; Multiplied by the active fat index
00008136 6603C1 add eax,ecx ; Add the current fat sector offset
00008139 5A pop dx ; Restore dx
load_fat_sector_into_memory:
0000813A 52 push dx ; Save dx, what is so important in dx??
0000813B 8BDF mov bx,di ; Put 0x7e00 in bx
0000813D B90100 mov cx,0x1 ; Load one sector
00008140 E89DFB call read_sectors ; Perform the read
00008143 5A pop dx ; Restore dx
load_fat_sector_end:
00008144 8BDA mov bx,dx ; Put it into bx, what is this value??
00008146 C3 ret ; Return
00008147 0000 add [bx+si],al
00008149 0000 add [bx+si],al
0000814B 0000 add [bx+si],al
0000814D 0000 add [bx+si],al
0000814F 0000 add [bx+si],al
00008151 0000 add [bx+si],al
00008153 0000 add [bx+si],al
00008155 0000 add [bx+si],al
00008157 0000 add [bx+si],al
00008159 0000 add [bx+si],al
0000815B 0000 add [bx+si],al
0000815D 0000 add [bx+si],al
0000815F 0000 add [bx+si],al
00008161 0000 add [bx+si],al
00008163 0000 add [bx+si],al
00008165 0000 add [bx+si],al
00008167 0000 add [bx+si],al
00008169 0000 add [bx+si],al
0000816B 0000 add [bx+si],al
0000816D 0000 add [bx+si],al
0000816F 0000 add [bx+si],al
00008171 0000 add [bx+si],al
00008173 0000 add [bx+si],al
00008175 0000 add [bx+si],al
00008177 0000 add [bx+si],al
00008179 0000 add [bx+si],al
0000817B 0000 add [bx+si],al
0000817D 0000 add [bx+si],al
0000817F 0000 add [bx+si],al
00008181 0000 add [bx+si],al
00008183 0000 add [bx+si],al
00008185 0000 add [bx+si],al
00008187 0000 add [bx+si],al
00008189 0000 add [bx+si],al
0000818B 0000 add [bx+si],al
0000818D 0000 add [bx+si],al
0000818F 0000 add [bx+si],al
00008191 0000 add [bx+si],al
00008193 0000 add [bx+si],al
00008195 0000 add [bx+si],al
00008197 0000 add [bx+si],al
00008199 0000 add [bx+si],al
0000819B 0000 add [bx+si],al
0000819D 0000 add [bx+si],al
0000819F 0000 add [bx+si],al
000081A1 0000 add [bx+si],al
000081A3 0000 add [bx+si],al
000081A5 0000 add [bx+si],al
000081A7 0000 add [bx+si],al
000081A9 0000 add [bx+si],al
000081AB 0000 add [bx+si],al
000081AD 0000 add [bx+si],al
000081AF 0000 add [bx+si],al
000081B1 0000 add [bx+si],al
000081B3 0000 add [bx+si],al
000081B5 0000 add [bx+si],al
000081B7 0000 add [bx+si],al
000081B9 0000 add [bx+si],al
000081BB 0000 add [bx+si],al
000081BD 0000 add [bx+si],al
000081BF 0000 add [bx+si],al
000081C1 0000 add [bx+si],al
000081C3 0000 add [bx+si],al
000081C5 0000 add [bx+si],al
000081C7 0000 add [bx+si],al
000081C9 0000 add [bx+si],al
000081CB 0000 add [bx+si],al
000081CD 0000 add [bx+si],al
000081CF 0000 add [bx+si],al
000081D1 0000 add [bx+si],al
000081D3 0000 add [bx+si],al
000081D5 0000 add [bx+si],al
000081D7 0000 add [bx+si],al
000081D9 0000 add [bx+si],al
000081DB 0000 add [bx+si],al
000081DD 0000 add [bx+si],al
000081DF 0000 add [bx+si],al
000081E1 0000 add [bx+si],al
000081E3 0000 add [bx+si],al
000081E5 0000 add [bx+si],al
000081E7 0000 add [bx+si],al
000081E9 0000 add [bx+si],al
000081EB 0000 add [bx+si],al
000081ED 0000 add [bx+si],al
000081EF 0000 add [bx+si],al
000081F1 0000 add [bx+si],al
000081F3 0000 add [bx+si],al
000081F5 0000 add [bx+si],al
000081F7 0000 add [bx+si],al
000081F9 0000 add [bx+si],al
000081FB 0000 add [bx+si],al
000081FD 0055AA add [di-0x56],dl ; We can't forget the infamous boot signature

View File

@@ -1,7 +0,0 @@
cd bootsect
call make.bat
cd..
cd freeldr
make
copy freeldr.sys ..
cd ..

View File

@@ -1,114 +0,0 @@
#
# FreeLoader
# Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
export CC = gcc
export LD = ld
export AR = ar
export RM = cmd /C del
export CP = cmd /C copy
#FLAGS = -Wall -nostdinc -fno-builtin
FLAGS = -Wall -fno-builtin -DDEBUG
# asmcode.o has to be first in the link line because it contains the startup code
OBJS = asmcode.a asmcode.o mb.o boot.o freeldr.o stdlib.o fs.a fs.o fs_fat.o \
reactos.o tui.o menu.o miscboot.o options.o linux.o multiboot.o arcname.o \
mem.o memory.o debug.o parseini.o
ASM_OBJS = asmcode.o mb.o boot.o mem.o
C_OBJS = freeldr.o stdlib.o fs.a reactos.o tui.o menu.o miscboot.o options.o linux.o \
multiboot.o arcname.o memory.o debug.o parseini.o
.PHONY : clean
all: freeldr.sys
freeldr.sys: asmcode.a c_code.a
$(LD) -N -Ttext=0x8000 --oformat=binary -o freeldr.sys asmcode.a c_code.a
asmcode.a: $(ASM_OBJS)
$(LD) -r -o asmcode.a $(ASM_OBJS)
c_code.a: $(C_OBJS)
$(LD) -r -o c_code.a $(C_OBJS)
asmcode.o: asmcode.S asmcode.h Makefile
$(CC) $(FLAGS) -o asmcode.o -c asmcode.S
freeldr.o: freeldr.c freeldr.h stdlib.h fs.h reactos.h tui.h asmcode.h menu.h miscboot.h Makefile
$(CC) $(FLAGS) -o freeldr.o -c freeldr.c
stdlib.o: stdlib.c freeldr.h stdlib.h Makefile
$(CC) $(FLAGS) -o stdlib.o -c stdlib.c
fs.a: fs.o fs_fat.o Makefile
$(LD) -r -o fs.a fs.o fs_fat.o
fs.o: fs.c freeldr.h fs.h stdlib.h tui.h asmcode.h Makefile
$(CC) $(FLAGS) -o fs.o -c fs.c
fs_fat.o: fs_fat.c freeldr.h fs.h stdlib.h tui.h Makefile
$(CC) $(FLAGS) -o fs_fat.o -c fs_fat.c
reactos.o: reactos.c freeldr.h reactos.h stdlib.h fs.h tui.h multiboot.h Makefile
$(CC) $(FLAGS) -o reactos.o -c reactos.c
multiboot.o: multiboot.c freeldr.h stdlib.h fs.h multiboot.h tui.h Makefile
$(CC) $(FLAGS) -o multiboot.o -c multiboot.c
mb.o: mb.S asmcode.h multiboot.h Makefile
$(CC) $(FLAGS) -o mb.o -c mb.S
tui.o: tui.c freeldr.h stdlib.h tui.h Makefile
$(CC) $(FLAGS) -o tui.o -c tui.c
menu.o: menu.c freeldr.h stdlib.h tui.h menu.h Makefile
$(CC) $(FLAGS) -o menu.o -c menu.c
boot.o: boot.S asmcode.h Makefile
$(CC) $(FLAGS) -o boot.o -c boot.S
miscboot.o: miscboot.c freeldr.h asmcode.h stdlib.h fs.h tui.h miscboot.h Makefile
$(CC) $(FLAGS) -o miscboot.o -c miscboot.c
options.o: options.c freeldr.h stdlib.h tui.h options.h Makefile
$(CC) $(FLAGS) -o options.o -c options.c
linux.o: linux.c freeldr.h stdlib.h tui.h linux.h Makefile
$(CC) $(FLAGS) -o linux.o -c linux.c
arcname.o: arcname.c freeldr.h arcname.h stdlib.h Makefile
$(CC) $(FLAGS) -o arcname.o -c arcname.c
mem.o: mem.S asmcode.h Makefile
$(CC) $(FLAGS) -o mem.o -c mem.S
memory.o: memory.c memory.h Makefile
$(CC) $(FLAGS) -o memory.o -c memory.c
debug.o: debug.c debug.h Makefile
$(CC) $(FLAGS) -o debug.o -c debug.c
parseini.o: parseini.c parseini.h Makefile
$(CC) $(FLAGS) -o parseini.o -c parseini.c
clean:
$(RM) *.o
$(RM) *.a
$(RM) freeldr.sys

View File

@@ -1,75 +0,0 @@
/*
* FreeLoader - arcname.c
*
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
* Copyright (C) 2001 Eric Kohl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "arcname.h"
#include "stdlib.h"
BOOL DissectArcPath(char *ArcPath, char *BootPath, PULONG BootDrive, PULONG BootPartition)
{
char *p;
if (_strnicmp(ArcPath, "multi(0)disk(0)", 15) != 0)
return FALSE;
p = ArcPath + 15;
if (_strnicmp(p, "fdisk(", 6) == 0)
{
/*
* floppy disk path:
* multi(0)disk(0)fdisk(x)\path
*/
p = p + 6;
*BootDrive = atoi(p);
p = strchr(p, ')');
if (p == NULL)
return FALSE;
p++;
*BootPartition = 0;
}
else if (_strnicmp(p, "rdisk(", 6) == 0)
{
/*
* hard disk path:
* multi(0)disk(0)rdisk(x)partition(y)\path
*/
p = p + 6;
*BootDrive = atoi(p) + 0x80;
p = strchr(p, ')');
if ((p == NULL) || (_strnicmp(p, ")partition(", 11) != 0))
return FALSE;
p = p + 11;
*BootPartition = atoi(p);
p = strchr(p, ')');
if ((p == NULL) || (*BootPartition == 0))
return FALSE;
p++;
}
else
{
return FALSE;
}
strcpy(BootPath, p);
return TRUE;
}

View File

@@ -1,29 +0,0 @@
/*
* FreeLoader - arcname.h
*
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
* Copyright (C) 2001 Eric Kohl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __ARCNAME_H
#define __ARCNAME_H
BOOL DissectArcPath(char *ArcPath, char *BootPath, PULONG BootDrive, PULONG BootPartition);
//BOOL ConvertBiosDriveToArcName(PUCHAR ArcName, ULONG BiosDriveNumber);
//ULONG ConvertArcNameToBiosDrive(PUCHAR ArcName);
#endif // defined __ARCNAME_H

File diff suppressed because it is too large Load Diff

View File

@@ -1,65 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* Defines needed for switching between real and protected mode */
#define NULL_DESC 0x00 /* NULL descriptor */
#define PMODE_CS 0x08 /* PMode code selector, base 0 limit 4g */
#define PMODE_DS 0x10 /* PMode data selector, base 0 limit 4g */
#define RMODE_CS 0x18 /* RMode code selector, base 0 limit 64k */
#define RMODE_DS 0x20 /* RMode data selector, base 0 limit 64k */
#define KERNEL_BASE 0xC0000000
//#define USER_CS 0x08
//#define USER_DS 0x10
//#define KERNEL_CS 0x20
//#define KERNEL_DS 0x28
#define KERNEL_CS 0x08
#define KERNEL_DS 0x10
#define CR0_PE_SET 0x00000001 /* OR this value with CR0 to enable pmode */
#define CR0_PE_CLR 0xFFFFFFFE /* AND this value with CR0 to disable pmode */
#define NR_TASKS 128 /* Space reserved in the GDT for TSS descriptors */
#define STACK16ADDR 0x7000 /* The 16-bit stack top will be at 0000:7000 */
#define STACK32ADDR 0x60000 /* The 32-bit stack top will be at 6000:0000, or 0x60000 */
#define FILESYSADDR 0x80000 /* The filesystem data address will be at 8000:0000, or 0x80000 */
#define FATCLUSTERBUF 0x60000 /* The fat filesystem's cluster buffer */
#define SCREENBUFFER 0x68000 /* The screen contents will be saved here */
#define FREELDRINIADDR 0x6C000 /* The freeldr.ini load address will be at 6000:C000, or 0x6C000 */
#define SCRATCHSEG 0x7000 /* The 512-byte fixed scratch area will be at 7000:0000, or 0x70000 */
#define SCRATCHOFF 0x0000 /* The 512-byte fixed scratch area will be at 7000:0000, or 0x70000 */
#define SCRATCHAREA 0x70000 /* The 512-byte fixed scratch area will be at 7000:0000, or 0x70000 */
/* Makes "x" a global variable or label */
#define EXTERN(x) .global x; x:
#ifndef ASM
void enable_a20(void);
#endif /* ! ASM */

View File

@@ -1,47 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
.text
.code16
#define ASM
#include "asmcode.h"
#include "multiboot.h"
.code32
EXTERN(_JumpToBootCode)
call switch_to_real
.code16
/* Set the boot drive */
movb (_BootDrive),%dl
ljmpl $0x0000,$0x7C00
.code32
EXTERN(_JumpToLinuxBootCode)
call switch_to_real
.code16
/* Set the boot drive */
movb (_BootDrive),%dl
ljmpl $0x0200,$0x9000

View File

@@ -1,83 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "debug.h"
#include "stdlib.h"
ULONG DebugPrintMask = DPRINT_WARNING | DPRINT_MEMORY;
void DebugPrint(ULONG Mask, char *format, ...)
{
int *dataptr = (int *) &format;
char c, *ptr, str[16];
char buffer[512];
char *p = buffer;
// Mask out unwanted debug messages
if (!(Mask & DebugPrintMask))
{
return;
}
dataptr++;
while ((c = *(format++)))
{
if (c != '%')
{
*p = c;
p++;
}
else
switch (c = *(format++))
{
case 'd': case 'u': case 'x':
*convert_to_ascii(str, c, *((unsigned long *) dataptr++)) = 0;
ptr = str;
while (*ptr)
{
*p = *(ptr++);
p++;
}
break;
case 'c':
*p = (*(dataptr++))&0xff;
p++;
break;
case 's':
ptr = (char *)(*(dataptr++));
while ((c = *(ptr++)))
{
*p = c;
p++;
}
break;
}
}
*p=0;
print(buffer);
}

View File

@@ -1,57 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __DEBUG_H
#define __DEBUG_H
#define DPRINT_WARNING 0x00000001 // OR this with DebugPrintMask to enable debugger messages and other misc stuff
#define DPRINT_MEMORY 0x00000002 // OR this with DebugPrintMask to enable memory management messages
void DebugPrint(ULONG Mask, char *format, ...);
#define BugCheck0(format) \
{ \
DebugPrint(DPRINT_WARNING, "Fatal Error: %s:%d\n", __FILE__, __LINE__); \
DebugPrint(DPRINT_WARNING, format); \
for (;;); \
}
#define BugCheck1(format, arg1) \
{ \
DebugPrint(DPRINT_WARNING, "Fatal Error: %s:%d\n", __FILE__, __LINE__); \
DebugPrint(DPRINT_WARNING, format, arg1); \
for (;;); \
}
#define BugCheck2(format, arg1, arg2) \
{ \
DebugPrint(DPRINT_WARNING, "Fatal Error: %s:%d\n", __FILE__, __LINE__); \
DebugPrint(DPRINT_WARNING, format, arg1, arg2); \
for (;;); \
}
#define BugCheck3(format, arg1, arg2, arg3) \
{ \
DebugPrint(DPRINT_WARNING, "Fatal Error: %s:%d\n", __FILE__, __LINE__); \
DebugPrint(DPRINT_WARNING, format, arg1, arg2, arg3); \
for (;;); \
}
#endif // defined __DEBUG_H

View File

@@ -1,128 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "stdlib.h"
#include "fs.h"
#include "reactos.h"
#include "tui.h"
#include "asmcode.h"
#include "menu.h"
#include "miscboot.h"
#include "linux.h"
#include "memory.h"
#include "parseini.h"
// Variable BootDrive moved to asmcode.S
//ULONG BootDrive = 0; // BIOS boot drive, 0-A:, 1-B:, 0x80-C:, 0x81-D:, etc.
ULONG BootPartition = 0; // Boot Partition, 1-4
BOOL UserInterfaceUp = FALSE; // Tells us if the user interface is displayed
PUCHAR ScreenBuffer = (PUCHAR)(SCREENBUFFER); // Save buffer for screen contents
int CursorXPos = 0; // Cursor's X Position
int CursorYPos = 0; // Cursor's Y Position
OSTYPE OSList[16];
int nNumOS = 0;
int nTimeOut = -1; // Time to wait for the user before booting
void BootMain(void)
{
int i;
char name[1024];
char value[1024];
int nOSToBoot;
enable_a20();
SaveScreen(ScreenBuffer);
CursorXPos = wherex();
CursorYPos = wherey();
printf("Loading FreeLoader...\n");
InitMemoryManager((PVOID)0x100000, 0x20000);
if (!ParseIniFile())
{
printf("Press any key to reboot.\n");
getch();
return;
}
clrscr();
hidecursor();
// Draw the backdrop and title box
DrawBackdrop();
UserInterfaceUp = TRUE;
if (nNumOS == 0)
{
DrawStatusText(" Press ENTER to reboot");
MessageBox("Error: there were no operating systems listed in freeldr.ini.\nPress ENTER to reboot.");
clrscr();
showcursor();
RestoreScreen(ScreenBuffer);
return;
}
DrawStatusText(" Press ENTER to continue");
// Find all the message box settings and run them
for (i=1; i<=GetNumSectionItems("FREELOADER"); i++)
{
ReadSectionSettingByNumber("FREELOADER", i, name, value);
if (stricmp(name, "MessageBox") == 0)
MessageBox(value);
if (stricmp(name, "MessageLine") == 0)
MessageLine(value);
}
for (;;)
{
nOSToBoot = RunMenu();
switch (OSList[nOSToBoot].nOSType)
{
case OSTYPE_REACTOS:
LoadAndBootReactOS(OSList[nOSToBoot].name);
break;
case OSTYPE_LINUX:
MessageBox("Cannot boot this OS type yet!");
break;
case OSTYPE_BOOTSECTOR:
LoadAndBootBootSector(nOSToBoot);
break;
case OSTYPE_PARTITION:
LoadAndBootPartition(nOSToBoot);
break;
case OSTYPE_DRIVE:
LoadAndBootDrive(nOSToBoot);
break;
}
DrawBackdrop();
}
MessageBox("Press any key to reboot.");
RestoreScreen(ScreenBuffer);
showcursor();
gotoxy(CursorXPos, CursorYPos);
}

View File

@@ -1,83 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __FREELDR_H
#define __FREELDR_H
/* just some stuff */
#define VERSION "FreeLoader v0.8"
#define COPYRIGHT "Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>"
#define ROSLDR_MAJOR_VERSION 0
#define ROSLDR_MINOR_VERSION 8
#define ROSLDR_PATCH_VERSION 0
#define size_t unsigned int
#define BOOL int
#define NULL 0
#define TRUE 1
#define FALSE 0
#define BYTE unsigned char
#define WORD unsigned short
#define DWORD unsigned long
#define CHAR char
#define PCHAR char *
#define UCHAR unsigned char
#define PUCHAR unsigned char *
#define WCHAR unsigned short
#define PWCHAR unsigned short *
#define LONG long
#define ULONG unsigned long
#define PULONG unsigned long *
#define PDWORD DWORD *
#define PWORD WORD *
#define VOID void
#define PVOID VOID*
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
#define OSTYPE_REACTOS 1
#define OSTYPE_LINUX 2
#define OSTYPE_BOOTSECTOR 3
#define OSTYPE_PARTITION 4
#define OSTYPE_DRIVE 5
typedef struct
{
char name[260];
int nOSType; // ReactOS or Linux or a bootsector, etc.
} OSTYPE, *POSTYPE;
extern ULONG BootDrive; // BIOS boot drive, 0-A:, 1-B:, 0x80-C:, 0x81-D:, etc.
extern ULONG BootPartition; // Boot Partition, 1-4
extern BOOL UserInterfaceUp; // Tells us if the user interface is displayed
extern PUCHAR ScreenBuffer; // Save buffer for screen contents
extern int CursorXPos; // Cursor's X Position
extern int CursorYPos; // Cursor's Y Position
extern OSTYPE OSList[16]; // The OS list
extern int nNumOS; // Number of OSes listed
extern int nTimeOut; // Time to wait for the user before booting
void BootMain(void);
#endif // defined __FREELDR_H

View File

@@ -1,426 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "fs.h"
#include "stdlib.h"
#include "tui.h"
#include "asmcode.h"
#define FS_DO_ERROR(s) \
{ \
if (UserInterfaceUp) \
MessageBox(s); \
else \
{ \
printf(s); \
printf("\nPress any key\n"); \
getch(); \
} \
}
int nSectorBuffered = -1; // Tells us which sector was read into SectorBuffer[]
BYTE SectorBuffer[512]; // 512 byte buffer space for read operations, ReadOneSector reads to here
int FSType = NULL; // Type of filesystem on boot device, set by OpenDiskDrive()
char *pFileSysData = (char *)(FILESYSADDR); // Load address for filesystem data
char *pFat32FATCacheIndex = (char *)(FILESYSADDR); // Load address for filesystem data
BOOL OpenDiskDrive(int nDrive, int nPartition)
{
int num_bootable_partitions = 0;
int boot_partition = 0;
int partition_type = 0;
int head, sector, cylinder;
int offset;
// Check and see if it is a floppy drive
if (nDrive < 0x80)
{
// Read boot sector
if (!biosdisk(_DISK_READ, nDrive, 0, 0, 1, 1, SectorBuffer))
{
FS_DO_ERROR("Disk Read Error");
return FALSE;
}
// Check for validity
if (*((WORD*)(SectorBuffer + 0x1fe)) != 0xaa55)//(SectorBuffer[0x1FE] != 0x55) || (SectorBuffer[0x1FF] != 0xAA))
{
FS_DO_ERROR("Invalid boot sector magic (0xaa55)");
return FALSE;
}
}
else
{
// Read master boot record
if (!biosdisk(_DISK_READ, nDrive, 0, 0, 1, 1, SectorBuffer))
{
FS_DO_ERROR("Disk Read Error");
return FALSE;
}
// Check for validity
if (*((WORD*)(SectorBuffer + 0x1fe)) != 0xaa55)//(SectorBuffer[0x1FE] != 0x55) || (SectorBuffer[0x1FF] != 0xAA))
{
FS_DO_ERROR("Invalid partition table magic (0xaa55)");
return FALSE;
}
if (nPartition == 0)
{
// Check for bootable partitions
if (SectorBuffer[0x1BE] == 0x80)
num_bootable_partitions++;
if (SectorBuffer[0x1CE] == 0x80)
{
num_bootable_partitions++;
boot_partition = 1;
}
if (SectorBuffer[0x1DE] == 0x80)
{
num_bootable_partitions++;
boot_partition = 2;
}
if (SectorBuffer[0x1EE] == 0x80)
{
num_bootable_partitions++;
boot_partition = 3;
}
// Make sure there was only one bootable partition
if (num_bootable_partitions > 1)
{
FS_DO_ERROR("Too many boot partitions");
return FALSE;
}
offset = 0x1BE + (boot_partition * 0x10);
}
else
offset = 0x1BE + ((nPartition-1) * 0x10);
partition_type = SectorBuffer[offset + 4];
// Check for valid partition
if (partition_type == 0)
{
FS_DO_ERROR("Invalid boot partition");
return FALSE;
}
head = SectorBuffer[offset + 1];
sector = (SectorBuffer[offset + 2] & 0x3F);
cylinder = SectorBuffer[offset + 3];
if (SectorBuffer[offset + 2] & 0x80)
cylinder += 0x200;
if (SectorBuffer[offset + 2] & 0x40)
cylinder += 0x100;
// Read partition boot sector
if (!biosdisk(_DISK_READ, nDrive, head, cylinder, sector, 1, SectorBuffer))
{
FS_DO_ERROR("Disk Read Error");
return FALSE;
}
// Check for validity
if (*((WORD*)(SectorBuffer + 0x1fe)) != 0xaa55)//(SectorBuffer[0x1FE] != 0x55) || (SectorBuffer[0x1FF] != 0xAA))
{
FS_DO_ERROR("Invalid boot sector magic (0xaa55)");
return FALSE;
}
}
// Reset data
nBytesPerSector = 0;
nSectorsPerCluster = 0;
nReservedSectors = 0;
nNumberOfFATs = 0;
nRootDirEntries = 0;
nTotalSectors16 = 0;
nSectorsPerFAT16 = 0;
nSectorsPerTrack = 0;
nNumberOfHeads = 0;
nHiddenSectors = 0;
nTotalSectors32 = 0;
nSectorsPerFAT32 = 0;
nExtendedFlags = 0;
nFileSystemVersion = 0;
nRootDirStartCluster = 0;
nRootDirSectorStart = 0;
nDataSectorStart = 0;
nSectorsPerFAT = 0;
nRootDirSectors = 0;
nTotalSectors = 0;
nNumberOfClusters = 0;
// Get data
memcpy(&nBytesPerSector, SectorBuffer + BPB_BYTESPERSECTOR, 2);
memcpy(&nSectorsPerCluster, SectorBuffer + BPB_SECTORSPERCLUSTER, 1);
memcpy(&nReservedSectors, SectorBuffer + BPB_RESERVEDSECTORS, 2);
memcpy(&nNumberOfFATs, SectorBuffer + BPB_NUMBEROFFATS, 1);
memcpy(&nRootDirEntries, SectorBuffer + BPB_ROOTDIRENTRIES, 2);
memcpy(&nTotalSectors16, SectorBuffer + BPB_TOTALSECTORS16, 2);
memcpy(&nSectorsPerFAT16, SectorBuffer + BPB_SECTORSPERFAT16, 2);
memcpy(&nSectorsPerTrack, SectorBuffer + BPB_SECTORSPERTRACK, 2);
memcpy(&nNumberOfHeads, SectorBuffer + BPB_NUMBEROFHEADS, 2);
memcpy(&nHiddenSectors, SectorBuffer + BPB_HIDDENSECTORS, 4);
memcpy(&nTotalSectors32, SectorBuffer + BPB_TOTALSECTORS32, 4);
memcpy(&nSectorsPerFAT32, SectorBuffer + BPB_SECTORSPERFAT32, 4);
memcpy(&nExtendedFlags, SectorBuffer + BPB_EXTENDEDFLAGS32, 2);
memcpy(&nFileSystemVersion, SectorBuffer + BPB_FILESYSTEMVERSION32, 2);
memcpy(&nRootDirStartCluster, SectorBuffer + BPB_ROOTDIRSTARTCLUSTER32, 4);
// Calc some stuff
if (nTotalSectors16 != 0)
nTotalSectors = nTotalSectors16;
else
nTotalSectors = nTotalSectors32;
if (nSectorsPerFAT16 != 0)
nSectorsPerFAT = nSectorsPerFAT16;
else
nSectorsPerFAT = nSectorsPerFAT32;
nRootDirSectorStart = (nNumberOfFATs * nSectorsPerFAT) + nReservedSectors;
nRootDirSectors = ((nRootDirEntries * 32) + (nBytesPerSector - 1)) / nBytesPerSector;
nDataSectorStart = nReservedSectors + (nNumberOfFATs * nSectorsPerFAT) + nRootDirSectors;
nNumberOfClusters = (nTotalSectors - nDataSectorStart) / nSectorsPerCluster;
// Determine FAT type
if (nNumberOfClusters < 4085)
{
/* Volume is FAT12 */
nFATType = FAT12;
}
else if (nNumberOfClusters < 65525)
{
/* Volume is FAT16 */
nFATType = FAT16;
}
else
{
/* Volume is FAT32 */
nFATType = FAT32;
// Check version
// we only work with version 0
if (*((WORD*)(SectorBuffer + BPB_FILESYSTEMVERSION32)) != 0)
{
FS_DO_ERROR("Error: FreeLoader is too old to work with this FAT32 filesystem.\nPlease update FreeLoader.");
return FALSE;
}
}
FSType = FS_FAT;
// Buffer the FAT table if it is small enough
if ((FSType == FS_FAT) && (nFATType == FAT12))
{
if (!ReadMultipleSectors(nReservedSectors, nSectorsPerFAT, pFileSysData))
return FALSE;
}
else if ((FSType == FS_FAT) && (nFATType == FAT16))
{
if (!ReadMultipleSectors(nReservedSectors, nSectorsPerFAT, pFileSysData))
return FALSE;
}
else if ((FSType == FS_FAT) && (nFATType == FAT32))
{
// The FAT table is too big to be buffered so
// we will initialize our cache and cache it
// on demand
for (offset=0; offset<256; offset++)
((int*)pFat32FATCacheIndex)[offset] = -1;
}
return TRUE;
}
BOOL ReadMultipleSectors(int nSect, int nNumberOfSectors, void *pBuffer)
{
BOOL bRetVal;
int PhysicalSector;
int PhysicalHead;
int PhysicalTrack;
int nNum;
nSect += nHiddenSectors;
while (nNumberOfSectors)
{
PhysicalSector = 1 + (nSect % nSectorsPerTrack);
PhysicalHead = (nSect / nSectorsPerTrack) % nNumberOfHeads;
PhysicalTrack = nSect / (nSectorsPerTrack * nNumberOfHeads);
if (PhysicalSector > 1)
{
if (nNumberOfSectors >= (nSectorsPerTrack - (PhysicalSector - 1)))
nNum = (nSectorsPerTrack - (PhysicalSector - 1));
else
nNum = nNumberOfSectors;
}
else
{
if (nNumberOfSectors >= nSectorsPerTrack)
nNum = nSectorsPerTrack;
else
nNum = nNumberOfSectors;
}
bRetVal = biosdisk(_DISK_READ, BootDrive, PhysicalHead, PhysicalTrack, PhysicalSector, nNum, pBuffer);
if (!bRetVal)
{
FS_DO_ERROR("Disk Error");
return FALSE;
}
pBuffer += (nNum * 512);
nNumberOfSectors -= nNum;
nSect += nNum;
}
return TRUE;
}
BOOL ReadOneSector(int nSect)
{
BOOL bRetVal;
int PhysicalSector;
int PhysicalHead;
int PhysicalTrack;
nSectorBuffered = nSect;
nSect += nHiddenSectors;
PhysicalSector = 1 + (nSect % nSectorsPerTrack);
PhysicalHead = (nSect / nSectorsPerTrack) % nNumberOfHeads;
PhysicalTrack = nSect / (nSectorsPerTrack * nNumberOfHeads);
bRetVal = biosdisk(_DISK_READ, BootDrive, PhysicalHead, PhysicalTrack, PhysicalSector, 1, SectorBuffer);
if (!bRetVal)
{
FS_DO_ERROR("Disk Error");
return FALSE;
}
return TRUE;
}
BOOL OpenFile(char *filename, FILE *pFile)
{
switch(FSType)
{
case FS_FAT:
if(!FATOpenFile(filename, &(pFile->fat)))
return FALSE;
pFile->filesize = pFile->fat.dwSize;
break;
default:
FS_DO_ERROR("Error: Unknown filesystem.");
return FALSE;
break;
}
return TRUE;
}
/*
* ReadFile()
* returns number of bytes read or EOF
*/
int ReadFile(FILE *pFile, int count, void *buffer)
{
switch(FSType)
{
case FS_FAT:
return FATRead(&(pFile->fat), count, buffer);
default:
FS_DO_ERROR("Error: Unknown filesystem.");
return EOF;
}
return 0;
}
DWORD GetFileSize(FILE *pFile)
{
return pFile->filesize;
}
DWORD Rewind(FILE *pFile)
{
switch (FSType)
{
case FS_FAT:
pFile->fat.dwCurrentCluster = pFile->fat.dwStartCluster;
pFile->fat.dwCurrentReadOffset = 0;
break;
default:
FS_DO_ERROR("Error: Unknown filesystem.");
break;
}
return pFile->filesize;
}
int feof(FILE *pFile)
{
switch (FSType)
{
case FS_FAT:
if (pFile->fat.dwCurrentReadOffset >= pFile->fat.dwSize)
return TRUE;
else
return FALSE;
break;
default:
FS_DO_ERROR("Error: Unknown filesystem.");
return TRUE;
break;
}
return TRUE;
}
int fseek(FILE *pFile, DWORD offset)
{
switch (FSType)
{
case FS_FAT:
return FATfseek(&(pFile->fat), offset);
break;
default:
FS_DO_ERROR("Error: Unknown filesystem.");
break;
}
return -1;
}

View File

@@ -1,182 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __FS_FAT_H
#define __FS_FAT_H
// Bootsector BPB defines
#define BPB_JMPBOOT 0
#define BPB_OEMNAME 3
#define BPB_BYTESPERSECTOR 11
#define BPB_SECTORSPERCLUSTER 13
#define BPB_RESERVEDSECTORS 14
#define BPB_NUMBEROFFATS 16
#define BPB_ROOTDIRENTRIES 17
#define BPB_TOTALSECTORS16 19
#define BPB_MEDIADESCRIPTOR 21
#define BPB_SECTORSPERFAT16 22
#define BPB_SECTORSPERTRACK 24
#define BPB_NUMBEROFHEADS 26
#define BPB_HIDDENSECTORS 28
#define BPB_TOTALSECTORS32 32
// Fat12/16 extended BPB defines
#define BPB_DRIVENUMBER16 36
#define BPB_RESERVED16_1 37
#define BPB_BOOTSIGNATURE16 38
#define BPB_VOLUMESERIAL16 39
#define BPB_VOLUMELABEL16 43
#define BPB_FILESYSTEMTYPE16 54
// Fat32 extended BPB defines
#define BPB_SECTORSPERFAT32 36
#define BPB_EXTENDEDFLAGS32 40
#define BPB_FILESYSTEMVERSION32 42
#define BPB_ROOTDIRSTARTCLUSTER32 44
#define BPB_FILESYSTEMINFOSECTOR32 48
#define BPB_BACKUPBOOTSECTOR32 50
#define BPB_RESERVED32_1 52
#define BPB_DRIVENUMBER32 64
#define BPB_RESERVED32_2 65
#define BPB_BOOTSIGNATURE32 66
#define BPB_VOLUMESERIAL32 67
#define BPB_VOLUMELABEL32 71
#define BPB_FILESYSTEMTYPE32 82
/*
* Structure of MSDOS directory entry
*/
typedef struct //_DIRENTRY
{
BYTE cFileName[11]; /* Filename + extension */
BYTE cAttr; /* File attributes */
BYTE cReserved[10]; /* Reserved area */
WORD wTime; /* Time last modified */
WORD wData; /* Date last modified */
WORD wCluster; /* First cluster number */
DWORD dwSize; /* File size */
} DIRENTRY, * PDIRENTRY;
/*
* Structure of internal file control block
*/
typedef struct //_FCB
{
BYTE cAttr; /* Open attributes */
BYTE cSector; /* Sector within cluster */
PDIRENTRY pDirptr; /* Pointer to directory entry */
WORD wDirSector; /* Directory sector */
WORD wFirstCluster; /* First cluster in file */
WORD wLastCluster; /* Last cluster read/written */
WORD wNextCluster; /* Next cluster to read/write */
WORD wOffset; /* Read/Write offset within sector */
DWORD dwSize; /* File size */
BYTE cBuffer[512]; /* Data transfer buffer */
} FCB, * PFCB;
typedef struct //_FAT_STRUCT
{
DWORD dwStartCluster; // File's starting cluster
DWORD dwCurrentCluster; // Current read cluster number
DWORD dwSize; // File size
DWORD dwCurrentReadOffset;// Amount of data already read
} FAT_STRUCT, * PFAT_STRUCT;
typedef struct //_FILE
{
//DIRENTRY de;
//FCB fcb;
FAT_STRUCT fat;
unsigned long filesize;
} FILE;
extern int nSectorBuffered; // Tells us which sector was read into SectorBuffer[]
extern BYTE SectorBuffer[512]; // 512 byte buffer space for read operations, ReadOneSector reads to here
extern int nFATType;
extern DWORD nBytesPerSector; // Bytes per sector
extern DWORD nSectorsPerCluster; // Number of sectors in a cluster
extern DWORD nReservedSectors; // Reserved sectors, usually 1 (the bootsector)
extern DWORD nNumberOfFATs; // Number of FAT tables
extern DWORD nRootDirEntries; // Number of root directory entries (fat12/16)
extern DWORD nTotalSectors16; // Number of total sectors on the drive, 16-bit
extern DWORD nSectorsPerFAT16; // Sectors per FAT table (fat12/16)
extern DWORD nSectorsPerTrack; // Number of sectors in a track
extern DWORD nNumberOfHeads; // Number of heads on the disk
extern DWORD nHiddenSectors; // Hidden sectors (sectors before the partition start like the partition table)
extern DWORD nTotalSectors32; // Number of total sectors on the drive, 32-bit
extern DWORD nSectorsPerFAT32; // Sectors per FAT table (fat32)
extern DWORD nExtendedFlags; // Extended flags (fat32)
extern DWORD nFileSystemVersion; // File system version (fat32)
extern DWORD nRootDirStartCluster; // Starting cluster of the root directory (fat32)
extern DWORD nRootDirSectorStart; // Starting sector of the root directory (fat12/16)
extern DWORD nDataSectorStart; // Starting sector of the data area
extern DWORD nSectorsPerFAT; // Sectors per FAT table
extern DWORD nRootDirSectors; // Number of sectors of the root directory (fat32)
extern DWORD nTotalSectors; // Total sectors on the drive
extern DWORD nNumberOfClusters; // Number of clusters on the drive
extern int FSType; // Type of filesystem on boot device, set by OpenDiskDrive()
extern char *pFileSysData; // Load address for filesystem data
extern char *pFat32FATCacheIndex; // Load address for filesystem data
BOOL OpenDiskDrive(int nDrive, int nPartition); // Opens the disk drive device for reading
BOOL ReadMultipleSectors(int nSect, int nNumberOfSectors, void *pBuffer);// Reads a sector from the open device
BOOL ReadOneSector(int nSect); // Reads one sector from the open device
BOOL OpenFile(char *filename, FILE *pFile); // Opens a file
int ReadFile(FILE *pFile, int count, void *buffer); // Reads count bytes from pFile into buffer
DWORD GetFileSize(FILE *pFile);
DWORD Rewind(FILE *pFile); // Rewinds a file and returns it's size
int feof(FILE *pFile);
int fseek(FILE *pFILE, DWORD offset);
BOOL FATLookupFile(char *file, PFAT_STRUCT pFatStruct);
int FATGetNumPathParts(char *name);
BOOL FATGetFirstNameFromPath(char *buffer, char *name);
void FATParseFileName(char *buffer, char *name);
DWORD FATGetFATEntry(DWORD nCluster);
BOOL FATOpenFile(char *szFileName, PFAT_STRUCT pFatStruct);
int FATReadCluster(DWORD nCluster, char *cBuffer);
int FATRead(PFAT_STRUCT pFatStruct, int nNumBytes, char *cBuffer);
int FATfseek(PFAT_STRUCT pFatStruct, DWORD offset);
#define EOF -1
#define ATTR_NORMAL 0x00
#define ATTR_READONLY 0x01
#define ATTR_HIDDEN 0x02
#define ATTR_SYSTEM 0x04
#define ATTR_VOLUMENAME 0x08
#define ATTR_DIRECTORY 0x10
#define ATTR_ARCHIVE 0x20
#define FS_FAT 1
#define FS_NTFS 2
#define FS_EXT2 3
#define FAT12 1
#define FAT16 2
#define FAT32 3
#endif // #defined __FS_FAT_H

View File

@@ -1,541 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "fs.h"
#include "stdlib.h"
#include "tui.h"
#include "asmcode.h"
int nFATType = FAT12;
DWORD nBytesPerSector; // Bytes per sector
DWORD nSectorsPerCluster; // Number of sectors in a cluster
DWORD nReservedSectors; // Reserved sectors, usually 1 (the bootsector)
DWORD nNumberOfFATs; // Number of FAT tables
DWORD nRootDirEntries; // Number of root directory entries (fat12/16)
DWORD nTotalSectors16; // Number of total sectors on the drive, 16-bit
DWORD nSectorsPerFAT16; // Sectors per FAT table (fat12/16)
DWORD nSectorsPerTrack; // Number of sectors in a track
DWORD nNumberOfHeads; // Number of heads on the disk
DWORD nHiddenSectors; // Hidden sectors (sectors before the partition start like the partition table)
DWORD nTotalSectors32; // Number of total sectors on the drive, 32-bit
DWORD nSectorsPerFAT32; // Sectors per FAT table (fat32)
DWORD nExtendedFlags; // Extended flags (fat32)
DWORD nFileSystemVersion; // File system version (fat32)
DWORD nRootDirStartCluster; // Starting cluster of the root directory (fat32)
DWORD nRootDirSectorStart; // Starting sector of the root directory (fat12/16)
DWORD nDataSectorStart; // Starting sector of the data area
DWORD nSectorsPerFAT; // Sectors per FAT table
DWORD nRootDirSectors; // Number of sectors of the root directory (fat32)
DWORD nTotalSectors; // Total sectors on the drive
DWORD nNumberOfClusters; // Number of clusters on the drive
BOOL FATReadRootDirectoryEntry(int nDirEntry, void *pDirEntryBuf)
{
DWORD nDirEntrySector;
int nOffsetWithinSector;
nDirEntrySector = nRootDirSectorStart + ((nDirEntry * 32) / nBytesPerSector);
if (!ReadOneSector(nDirEntrySector))
return FALSE;
nOffsetWithinSector = (nDirEntry * 32) % nBytesPerSector;
memcpy(pDirEntryBuf, SectorBuffer + nOffsetWithinSector, 32);
if (*((char *)pDirEntryBuf) == 0x05)
*((char *)pDirEntryBuf) = 0xE5;
return TRUE;
}
BOOL FATReadDirectoryEntry(DWORD nDirStartCluster, int nDirEntry, void *pDirEntryBuf)
{
DWORD nRealDirCluster;
int nSectorWithinCluster;
int nOffsetWithinSector;
int nSectorToRead;
int i;
i = (nDirEntry * 32) / (nSectorsPerCluster * nBytesPerSector);
//if ((nDirEntry * 32) % (nSectorsPerCluster * nBytesPerSector))
// i++;
for (nRealDirCluster = nDirStartCluster; i; i--)
nRealDirCluster = FATGetFATEntry(nRealDirCluster);
nSectorWithinCluster = ((nDirEntry * 32) % (nSectorsPerCluster * nBytesPerSector)) / nBytesPerSector;
nSectorToRead = ((nRealDirCluster - 2) * nSectorsPerCluster) + nDataSectorStart + nSectorWithinCluster;
if (!ReadOneSector(nSectorToRead))
return FALSE;
nOffsetWithinSector = (nDirEntry * 32) % nBytesPerSector;
memcpy(pDirEntryBuf, SectorBuffer + nOffsetWithinSector, 32);
if (*((char *)pDirEntryBuf) == 0x05)
*((char *)pDirEntryBuf) = 0xE5;
return TRUE;
}
/*
* FATLookupFile()
* This function searches the file system for the
* specified filename and fills in a FAT_STRUCT structure
* with info describing the file, etc. returns true
* if the file exists or false otherwise
*/
BOOL FATLookupFile(char *file, PFAT_STRUCT pFatStruct)
{
int i, j;
int numparts;
char filename[12];
BYTE direntry[32];
int nNumDirEntries;
FAT_STRUCT fatstruct;
BOOL bFound;
DWORD cluster;
memset(pFatStruct, 0, sizeof(FAT_STRUCT));
// Check and see if the first character is '\' and remove it if so
if (*file == '\\')
file++;
// Figure out how many sub-directories we are nested in
numparts = FATGetNumPathParts(file);
// Loop once for each part
for (i=0; i<numparts; i++)
{
// Make filename compatible with MSDOS dir entry
if (!FATGetFirstNameFromPath(filename, file))
return FALSE;
// Advance to the next part of the path
for (; (*file != '\\') && (*file != '\0'); file++);
file++;
// If we didn't find the correct sub-directory the fail
if ((i != 0) && !bFound)
return FALSE;
bFound = FALSE;
// Check if we are pulling from the root directory of a fat12/fat16 disk
if ((i == 0) && ((nFATType == FAT12) || (nFATType == FAT16)))
nNumDirEntries = nRootDirEntries;
else if ((i == 0) && (nFATType == FAT32))
{
cluster = nRootDirStartCluster;
fatstruct.dwSize = nSectorsPerCluster * nBytesPerSector;
while((cluster = FATGetFATEntry(cluster)) < 0x0FFFFFF8)
fatstruct.dwSize += nSectorsPerCluster * nBytesPerSector;
fatstruct.dwStartCluster = nRootDirStartCluster;
nNumDirEntries = fatstruct.dwSize / 32;
}
else
nNumDirEntries = fatstruct.dwSize / 32;
// Loop through each directory entry
for (j=0; j<nNumDirEntries; j++)
{
// Read the entry
if ((i == 0) && ((nFATType == FAT12) || (nFATType == FAT16)))
{
if (!FATReadRootDirectoryEntry(j, direntry))
return FALSE;
}
else
{
if (!FATReadDirectoryEntry(fatstruct.dwStartCluster, j, direntry))
return FALSE;
}
if (memcmp(direntry, filename, 11) == 0)
{
fatstruct.dwStartCluster = 0;
fatstruct.dwCurrentCluster = 0;
memcpy(&fatstruct.dwStartCluster, direntry + 26, sizeof(WORD));
memcpy(&fatstruct.dwCurrentCluster, direntry + 20, sizeof(WORD));
fatstruct.dwStartCluster += (fatstruct.dwCurrentCluster * 0x10000);
if (direntry[11] & ATTR_DIRECTORY)
{
fatstruct.dwSize = nSectorsPerCluster * nBytesPerSector;
cluster = fatstruct.dwStartCluster;
switch (nFATType)
{
case FAT12:
while((cluster = FATGetFATEntry(cluster)) < 0xFF8)
fatstruct.dwSize += nSectorsPerCluster * nBytesPerSector;
break;
case FAT16:
while((cluster = FATGetFATEntry(cluster)) < 0xFFF8)
fatstruct.dwSize += nSectorsPerCluster * nBytesPerSector;
break;
case FAT32:
while((cluster = FATGetFATEntry(cluster)) < 0x0FFFFFF8)
fatstruct.dwSize += nSectorsPerCluster * nBytesPerSector;
break;
}
}
// If we have more parts to go and this isn't a directory then fail
if ((i < (numparts-1)) && !(direntry[11] & ATTR_DIRECTORY))
return FALSE;
// If this is supposed to be a file and it is a directory then fail
if ((i == (numparts-1)) && (direntry[11] & ATTR_DIRECTORY))
return FALSE;
bFound = TRUE;
break;
}
}
}
if(!bFound)
return FALSE;
memcpy(&pFatStruct->dwStartCluster, direntry + 26, sizeof(WORD));
memcpy(&pFatStruct->dwCurrentCluster, direntry + 20, sizeof(WORD));
pFatStruct->dwStartCluster += (pFatStruct->dwCurrentCluster * 0x10000);
pFatStruct->dwCurrentCluster = pFatStruct->dwStartCluster;
memcpy(&pFatStruct->dwSize, direntry + 28, sizeof(DWORD));
pFatStruct->dwCurrentReadOffset = 0;
return TRUE;
}
/*
* FATGetNumPathParts()
* This function parses a path in the form of dir1\dir2\file1.ext
* and returns the number of parts it has (i.e. 3 - dir1,dir2,file1.ext)
*/
int FATGetNumPathParts(char *name)
{
int i, num;
for(i=0,num=0; i<(int)strlen(name); i++)
{
if(name[i] == '\\')
num++;
}
num++;
return num;
}
/*
* FATGetFirstNameFromPath()
* This function parses a path in the form of dir1\dir2\file1.ext
* and puts the first name of the path (e.g. "dir1") in buffer
* compatible with the MSDOS directory structure
*/
BOOL FATGetFirstNameFromPath(char *buffer, char *name)
{
int i;
char temp[260];
// Copy all the characters up to the end of the
// string or until we hit a '\' character
// and put them in temp
for(i=0; i<(int)strlen(name); i++)
{
if(name[i] == '\\')
break;
else
temp[i] = name[i];
}
temp[i] = 0;
// If the filename is too long then fail
if(strlen(temp) > 12)
return FALSE;
FATParseFileName(buffer, temp);
return TRUE;
}
/*
* FATParseFileName()
* This function parses "name" which is in the form of file.ext
* and puts it in "buffer" in the form of "FILE EXT" which
* is compatible with the MSDOS directory structure
*/
void FATParseFileName(char *buffer, char *name)
{
int i, j;
i = 0;
j = 0;
while(i < 8)
buffer[i++] = (name[j] && (name[j] != '.')) ? toupper(name[j++]) : ' ';
if(name[j] == '.')
j++;
while(i < 11)
buffer[i++] = name[j] ? toupper(name[j++]) : ' ';
buffer[i] = 0;
}
/*
* FATGetFATEntry()
* returns the FAT entry for a given cluster number
*/
DWORD FATGetFATEntry(DWORD nCluster)
{
DWORD fat;
int FATOffset;
int ThisFATSecNum;
int ThisFATEntOffset;
int Idx;
BOOL bEntryFound;
switch(nFATType)
{
case FAT12:
FATOffset = nCluster + (nCluster / 2);
ThisFATSecNum = (FATOffset / nBytesPerSector);
ThisFATEntOffset = (FATOffset % nBytesPerSector);
fat = *((WORD *) (pFileSysData + (ThisFATSecNum * nBytesPerSector) + ThisFATEntOffset));
if (nCluster & 0x0001)
fat = fat >> 4; /* Cluster number is ODD */
else
fat = fat & 0x0FFF; /* Cluster number is EVEN */
return fat;
break;
case FAT16:
FATOffset = (nCluster * 2);
//ThisFATSecNum = nReservedSectors + (FATOffset / nBytesPerSector);
//ThisFATEntOffset = (FATOffset % nBytesPerSector);
//if (!ReadOneSector(ThisFATSecNum))
// return NULL;
//fat = *((WORD *) &SectorBuffer[ThisFATEntOffset]);
fat = *((WORD *) (pFileSysData + FATOffset));
return fat;
break;
case FAT32:
//if (!ReadOneSector(ThisFATSecNum))
// return NULL;
//fat = *((DWORD *) &SectorBuffer[ThisFATEntOffset]) & 0x0FFFFFFF;
//return fat;
// This code manages the fat32 fat table entry cache
// The cache is at address FILESYSADDR which is 128k in size
// The first two sectors will contain an array of DWORDs that
// Specify what fat sector is cached. The first two DWORDs
// should be zero.
FATOffset = (nCluster * 4);
ThisFATSecNum = nReservedSectors + (FATOffset / nBytesPerSector);
ThisFATEntOffset = (FATOffset % nBytesPerSector);
// Now we go through our cache and see if we already have the sector cached
bEntryFound = FALSE;
for (Idx=2; Idx<256; Idx++)
{
if (((int*)pFat32FATCacheIndex)[Idx] == ThisFATSecNum)
{
bEntryFound = TRUE;
break;
}
}
if (bEntryFound)
{
// Get the fat entry
fat = (*((DWORD *) (pFat32FATCacheIndex +
(Idx * nBytesPerSector) + ThisFATEntOffset))) & 0x0FFFFFFF;
}
else
{
if (!ReadOneSector(ThisFATSecNum))
return NULL;
// Move each sector down in the cache to make room for new sector
for (Idx=255; Idx>2; Idx--)
{
memcpy(pFat32FATCacheIndex + (Idx * nBytesPerSector), pFat32FATCacheIndex + ((Idx - 1) * nBytesPerSector), nBytesPerSector);
((int*)pFat32FATCacheIndex)[Idx] = ((int*)pFat32FATCacheIndex)[Idx - 1];
}
// Insert it into the cache
memcpy(pFat32FATCacheIndex + (2 * nBytesPerSector), SectorBuffer, nBytesPerSector);
((int*)pFat32FATCacheIndex)[2] = ThisFATSecNum;
// Get the fat entry
fat = (*((DWORD *) (pFat32FATCacheIndex +
(2 * nBytesPerSector) + ThisFATEntOffset))) & 0x0FFFFFFF;
}
return fat;
break;
}
return NULL;
}
/*
* FATOpenFile()
* Tries to open the file 'name' and returns true or false
* for success and failure respectively
*/
BOOL FATOpenFile(char *szFileName, PFAT_STRUCT pFatStruct)
{
if(!FATLookupFile(szFileName, pFatStruct))
return FALSE;
/* Fill in file control information */
pFatStruct->dwCurrentCluster = pFatStruct->dwStartCluster;
pFatStruct->dwCurrentReadOffset = 0;
return TRUE;
}
/*
* FATReadCluster()
* Reads the specified cluster into memory
* and returns the number of bytes read
*/
int FATReadCluster(DWORD nCluster, char *cBuffer)
{
int nStartSector;
nStartSector = ((nCluster - 2) * nSectorsPerCluster) + nDataSectorStart;
ReadMultipleSectors(nStartSector, nSectorsPerCluster, cBuffer);
return (nSectorsPerCluster * nBytesPerSector);
}
/*
* FATRead()
* Reads nNumBytes from open file and
* returns the number of bytes read
*/
int FATRead(PFAT_STRUCT pFatStruct, int nNumBytes, char *cBuffer)
{
int nSectorWithinCluster;
int nOffsetWithinSector;
int nOffsetWithinCluster;
int nNum;
int nBytesRead = 0;
// If all the data is read return zero
if (pFatStruct->dwCurrentReadOffset >= pFatStruct->dwSize)
return 0;
// If they are trying to read more than there is to read
// then adjust the amount to read
if ((pFatStruct->dwCurrentReadOffset + nNumBytes) > pFatStruct->dwSize)
nNumBytes = pFatStruct->dwSize - pFatStruct->dwCurrentReadOffset;
while (nNumBytes)
{
// Check and see if the read offset is aligned to a cluster boundary
// if so great, if not then read the rest of the current cluster
if ((pFatStruct->dwCurrentReadOffset % (nSectorsPerCluster * nBytesPerSector)) != 0)
{
nSectorWithinCluster = ((pFatStruct->dwCurrentReadOffset / nBytesPerSector) % nSectorsPerCluster);
nOffsetWithinSector = (pFatStruct->dwCurrentReadOffset % nBytesPerSector);
nOffsetWithinCluster = (pFatStruct->dwCurrentReadOffset % (nSectorsPerCluster * nBytesPerSector));
// Read the cluster into the scratch area
FATReadCluster(pFatStruct->dwCurrentCluster, (char *)FATCLUSTERBUF);
nNum = (nSectorsPerCluster * nBytesPerSector) - (pFatStruct->dwCurrentReadOffset % (nSectorsPerCluster * nBytesPerSector));
if (nNumBytes >= nNum)
{
memcpy(cBuffer, (char *)(FATCLUSTERBUF + nOffsetWithinCluster), nNum);
nBytesRead += nNum;
cBuffer += nNum;
pFatStruct->dwCurrentReadOffset += nNum;
pFatStruct->dwCurrentCluster = FATGetFATEntry(pFatStruct->dwCurrentCluster);
nNumBytes -= nNum;
}
else
{
memcpy(cBuffer, (char *)(FATCLUSTERBUF + nOffsetWithinCluster), nNumBytes);
nBytesRead += nNumBytes;
cBuffer += nNumBytes;
pFatStruct->dwCurrentReadOffset += nNumBytes;
nNumBytes -= nNumBytes;
}
}
else
{
// Read the cluster into the scratch area
FATReadCluster(pFatStruct->dwCurrentCluster, (char *)FATCLUSTERBUF);
nNum = (nSectorsPerCluster * nBytesPerSector);
if (nNumBytes >= nNum)
{
memcpy(cBuffer, (char *)(FATCLUSTERBUF), nNum);
nBytesRead += nNum;
cBuffer += nNum;
pFatStruct->dwCurrentReadOffset += nNum;
pFatStruct->dwCurrentCluster = FATGetFATEntry(pFatStruct->dwCurrentCluster);
nNumBytes -= nNum;
}
else
{
memcpy(cBuffer, (char *)(FATCLUSTERBUF), nNumBytes);
nBytesRead += nNumBytes;
cBuffer += nNumBytes;
pFatStruct->dwCurrentReadOffset += nNumBytes;
nNumBytes -= nNumBytes;
}
}
}
return nBytesRead;
}
int FATfseek(PFAT_STRUCT pFatStruct, DWORD offset)
{
DWORD cluster;
int numclusters;
numclusters = offset / (nSectorsPerCluster * nBytesPerSector);
for (cluster=pFatStruct->dwStartCluster; numclusters > 0; numclusters--)
cluster = FATGetFATEntry(cluster);
pFatStruct->dwCurrentCluster = cluster;
pFatStruct->dwCurrentReadOffset = offset;
return 0;
}

View File

@@ -1,101 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "asmcode.h"
#include "miscboot.h"
#include "stdlib.h"
#include "fs.h"
#include "tui.h"
#include "linux.h"
void LoadAndBootLinux(int DriveNum, int Partition, char *vmlinuz, char *cmd_line)
{
FILE file;
char temp[260];
char bootsector[512];
char setup[2048];
int len;
BootDrive = DriveNum;
BootPartition = Partition;
if (!OpenDiskDrive(BootDrive, BootPartition))
{
MessageBox("Failed to open boot drive.");
return;
}
if (!OpenFile(vmlinuz, &file))
{
strcpy(temp, vmlinuz);
strcat(temp, " not found.");
MessageBox(temp);
return;
}
// Read boot sector
if (ReadFile(&file, 512, bootsector) != 512)
{
MessageBox("Disk Read Error");
return;
}
MessageBox("bootsector loaded");
// Read setup code
if (ReadFile(&file, 2048, setup) != 2048)
{
MessageBox("Disk Read Error");
return;
}
MessageBox("setup loaded");
// Read kernel code
len = GetFileSize(&file) - (2048 + 512);
//len = 0x200;
if (ReadFile(&file, len, (void*)0x100000) != len)
{
MessageBox("Disk Read Error");
return;
}
MessageBox("kernel loaded");
// Check for validity
if (*((WORD*)(bootsector + 0x1fe)) != 0xaa55)
{
MessageBox("Invalid boot sector magic (0xaa55)");
return;
}
if (*((DWORD*)(setup + 2)) != 0x53726448)
{
MessageBox("Invalid setup magic (\"HdrS\")");
return;
}
memcpy((void*)0x90000, bootsector, 512);
memcpy((void*)0x90200, setup, 2048);
RestoreScreen(ScreenBuffer);
showcursor();
gotoxy(CursorXPos, CursorYPos);
stop_floppy();
JumpToLinuxBootCode();
}

View File

@@ -1,27 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __LINUX_H
#define __LINUX_H
void JumpToLinuxBootCode(void); // Implemented in boot.S
void LoadAndBootLinux(int DriveNum, int Partition, char *vmlinuz, char *cmd_line);
#endif // defined __LINUX_H

View File

@@ -1,262 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
.text
.code16
#define ASM
#include "asmcode.h"
#include "multiboot.h"
/*
* Here we assume the kernel is loaded at 1mb
* This boots the kernel
*/
.code32
EXTERN(_boot_reactos)
call switch_to_real
.code16
/* Save cursor position */
movw $3,%ax //! Reset video mode
int $0x10
movb $10,%bl
movb $12,%ah
int $0x10
movw $0x1112,%ax // Use 8x8 font
xorb %bl,%bl
int $0x10
movw $0x1200,%ax // Use alternate print screen
movb $0x20,%bl
int $0x10
movb $1,%ah // Define cursor (scan lines 6 to 7)
movw $0x0607,%cx
int $0x10
movb $1,%ah
movw $0x600,%cx
int $0x10
movb $6,%ah // Scroll active page up
movb $0x32,%al // Clear 25 lines
movw $0,%cx // Upper left of scroll
movw $0x314F,%dx // Lower right of scroll
movb $(1*0x10+1),%bh // Use normal attribute on blanked line
int $0x10 // Video-IO
movw $0,%dx
movb $0,%dh
movb $2,%ah
movb $0,%bh
int $0x10
movw $0,%dx
movb $0,%dh
movb $2,%ah
movb $0,%bh
int $0x10
call _multi_boot
// Should never get here
cli
hlt
/*
* After you have setup the _mb_header and _mb_info structures
* then call this routine to transfer control to the kernel.
* This routine must be entered in 16-bit mode.
*/
.code16
EXTERN(_multi_boot)
cli
/*
* Setup various variables
*/
movw %ds,%bx
movzwl %bx,%eax
shll $4,%eax
addl %eax,kernel_gdtbase
/*
* Load the absolute address of the multiboot information structure
*/
movl $_mb_info,%ebx
/*
* load gdt
*/
lgdt kernel_gdtptr
/*
* Enter pmode and clear prefetch queue
*/
movl %cr0,%eax
orl $0x10001,%eax
movl %eax,%cr0
jmp next
next:
/*
* NOTE: This must be position independant (no references to
* non absolute variables)
*/
/*
* Initalize segment registers
*/
movw $KERNEL_DS,%ax
movw %ax,%ds
movw %ax,%ss
movw %ax,%es
movw %ax,%fs
movw %ax,%gs
/*
* Initalize eflags
*/
pushl $0
popfl
/*
* Load the multiboot magic value into eax
*/
movl $0x2badb002,%eax
/*
* Jump to start of 32 bit code at 0xc0000000 + 0x1000
*/
pushl $KERNEL_CS
pushl _mb_entry_addr
lretl
//ljmpl $KERNEL_CS,$(0x0200000+0x1000)
//ljmpl $KERNEL_CS,(_mb_entry_addr)
//ljmpl $KERNEL_CS,$(KERNEL_BASE+0x1000)
.p2align 2 /* force 4-byte alignment */
kernel_gdt:
.word 0 // Zero descriptor
.word 0
.word 0
.word 0
.word 0xffff // Kernel code descriptor
.word 0x0000 //
.word 0x9a00 // base 0h limit 4gb
.word 0x00cf
.word 0xffff // Kernel data descriptor
.word 0x0000 //
.word 0x9200 // base 0h limit 4gb
.word 0x00cf
kernel_gdtptr:
.word (3*8)-1 /* Limit */
kernel_gdtbase:
.long kernel_gdt /* Base Address */
EXTERN(_mb_header)
_mb_magic:
.long 0 // unsigned long magic;
_mb_flags:
.long 0 // unsigned long flags;
_mb_checksum:
.long 0 // unsigned long checksum;
_mb_header_addr:
.long 0 // unsigned long header_addr;
_mb_load_addr:
.long 0 // unsigned long load_addr;
_mb_load_end_addr:
.long 0 // unsigned long load_end_addr;
_mb_bss_end_addr:
.long 0 // unsigned long bss_end_addr;
_mb_entry_addr:
.long 0 // unsigned long entry_addr;
//
// Boot information structure
//
EXTERN(_mb_info)
_multiboot_flags:
.long 0
_multiboot_mem_lower:
.long 0
_multiboot_mem_upper:
.long 0
_multiboot_boot_device:
.long 0
_multiboot_cmdline:
.long 0
_multiboot_mods_count:
.long 0
_multiboot_mods_addr:
.long 0
_multiboot_syms:
.rept 12
.byte 0
.endr
_multiboot_mmap_length:
.long 0
_multiboot_mmap_addr:
.long 0
_multiboot_drives_count:
.long 0
_multiboot_drives_addr:
.long 0
_multiboot_config_table:
.long 0
_multiboot_boot_loader_name:
.long 0
_multiboot_apm_table:
.long 0
EXTERN(_multiboot_modules)
.rept (64 * /*multiboot_module_size*/ 16)
.byte 0
.endr
EXTERN(_multiboot_module_strings)
.rept (64*256)
.byte 0
.endr
EXTERN(_multiboot_memory_map_descriptor_size)
.long 0
EXTERN(_multiboot_memory_map)
.rept (64 * /*sizeof(memory_map_t)*/24)
.byte 0
.endr
EXTERN(_multiboot_kernel_cmdline)
.rept 255
.byte 0
.endr

View File

@@ -1,198 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
.text
.code16
#define ASM
#include "asmcode.h"
#include "multiboot.h"
.code32
EXTERN(_GetExtendedMemorySize)
//
// get extended memory size in KB
//
pushl %edx
pushl %ecx
pushl %ebx
call switch_to_real
.code16
movw $0xe801,%ax
int $0x15
jc .oldstylemem
cmpw $0,%ax
je .cmem
andl $0xffff,%ebx
shll $6,%ebx
andl $0xffff,%eax
add %ebx,%eax
jmp .done_mem
.cmem:
cmpw $0,%cx
je .oldstylemem
andl $0xffff,%edx
shll $6,%edx
andl $0xffff,%ecx
addl %ecx,%edx
movl %edx,%eax
jmp .done_mem
.oldstylemem:
// int 15h opt e801 don't work , try int 15h, option 88h
movb $0x88,%ah
int $0x15
cmp $0,%ax
je .cmosmem
movzwl %ax,%eax
jmp .done_mem
.cmosmem:
// int 15h opt 88h don't work , try read cmos
xorl %eax,%eax
movb $0x31,%al
outb %al,$0x70
inb $0x71,%al
andl $0xffff,%eax // clear carry
shll $8,%eax
.done_mem:
/* Save return value */
movl %eax,%edx
call switch_to_prot
.code32
/* Restore return value */
movl %edx,%eax
popl %ebx
popl %ecx
popl %edx
ret
.code32
EXTERN(_GetConventionalMemorySize)
//
// get conventional memory size in KB
//
pushl %edx
call switch_to_real
.code16
xorl %eax,%eax
int $0x12
/*xorl %eax,%eax
movb $0x30,%al
outb %al,$0x70
inb $0x71,%al
andl $0xffff,%eax*/ // clear carry
/* Save return value */
movl %eax,%edx
call switch_to_prot
.code32
/* Restore return value */
movl %edx,%eax
popl %edx
ret
.code32
_gbmm_mem_map_length:
.long 0
_gbmm_memory_map_addr:
.long 0
EXTERN(_GetBiosMemoryMap)
//
// Retrieve BIOS memory map if available
//
pushl %edx
pushl %ecx
pushl %ebx
pushl %edi
movl $0,_gbmm_mem_map_length
/* Get memory map address off stack */
movl 0x10(%esp),%eax
movl %eax,_gbmm_memory_map_addr
call switch_to_real
.code16
xorl %ebx,%ebx
movl _gbmm_memory_map_addr,%edi
.mmap_next:
movl $0x534D4150,%edx // 'SMAP'
movl $/*sizeof(memory_map_t)*/24,%ecx
movl 0xE820,%eax
int $0x15
jc .done_mmap
cmpl $0x534D4150,%eax // 'SMAP'
jne .done_mmap
addl $/*sizeof(memory_map_t)*/24,%edi
addl $/*sizeof(memory_map_t)*/24,_gbmm_mem_map_length
cmpl $0,%ebx
jne .mmap_next
.done_mmap:
call switch_to_prot
.code32
/* Get return value */
movl _gbmm_mem_map_length,%eax
popl %edi
popl %ebx
popl %ecx
popl %edx
ret

View File

@@ -1,281 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "memory.h"
#include "stdlib.h"
#include "debug.h"
#define MEM_BLOCK_SIZE 256
typedef struct
{
BOOL MemBlockAllocated; // Is this block allocated or free
ULONG BlocksAllocated; // Block length, in multiples of 256 bytes
} MEMBLOCK, *PMEMBLOCK;
PVOID HeapBaseAddress = NULL;
ULONG HeapLengthInBytes = 0;
ULONG HeapMemBlockCount = 0;
PMEMBLOCK HeapMemBlockArray = NULL;
#ifdef DEBUG
ULONG AllocationCount = 0;
VOID VerifyHeap(VOID);
VOID IncrementAllocationCount(VOID);
VOID DecrementAllocationCount(VOID);
VOID MemAllocTest(VOID);
#endif DEBUG
VOID InitMemoryManager(PVOID BaseAddress, ULONG Length)
{
ULONG MemBlocks;
// Calculate how many memory blocks we have
MemBlocks = (Length / MEM_BLOCK_SIZE);
// Adjust the heap length so we can reserve
// enough storage space for the MEMBLOCK array
Length -= (MemBlocks * sizeof(MEMBLOCK));
// Initialize our tracking variables
HeapBaseAddress = BaseAddress;
HeapLengthInBytes = Length;
HeapMemBlockCount = (HeapLengthInBytes / MEM_BLOCK_SIZE);
HeapMemBlockArray = (PMEMBLOCK)(HeapBaseAddress + HeapLengthInBytes);
// Clear the memory
ZeroMemory(HeapBaseAddress, HeapLengthInBytes);
ZeroMemory(HeapMemBlockArray, (HeapMemBlockCount * sizeof(MEMBLOCK)));
#ifdef DEBUG
DebugPrint(DPRINT_MEMORY, "Memory Manager initialized. BaseAddress = 0x%x Length = 0x%x. %d blocks in heap.\n", BaseAddress, Length, HeapMemBlockCount);
//MemAllocTest();
#endif
}
PVOID AllocateMemory(ULONG NumberOfBytes)
{
ULONG BlocksNeeded;
ULONG Idx;
ULONG NumFree;
PVOID MemPointer;
#ifdef DEBUG
VerifyHeap();
#endif DEBUG
// Find out how many blocks it will take to
// satisfy this allocation
BlocksNeeded = ROUND_UP(NumberOfBytes, MEM_BLOCK_SIZE) / MEM_BLOCK_SIZE;
// Now loop through our array of blocks and
// see if we have enough space
for (Idx=0,NumFree=0; Idx<HeapMemBlockCount; Idx++)
{
// Check this block and see if it is already allocated
// If so reset our counter and continue the loop
if (HeapMemBlockArray[Idx].MemBlockAllocated)
{
NumFree = 0;
continue;
}
else
{
// It is free memory so lets increment our count
NumFree++;
}
// If we have found enough blocks to satisfy the request
// then we're done searching
if (NumFree >= BlocksNeeded)
{
break;
}
}
Idx++;
// If we don't have enough available mem
// then return NULL
if (NumFree < BlocksNeeded)
{
return NULL;
}
// Subtract the block count from Idx and we have
// the start block of the memory
Idx -= NumFree;
// Now we know which block to give them
MemPointer = HeapBaseAddress + (Idx * MEM_BLOCK_SIZE);
// Now loop through and mark all the blocks as allocated
for (NumFree=0; NumFree<BlocksNeeded; NumFree++)
{
HeapMemBlockArray[Idx + NumFree].MemBlockAllocated = TRUE;
HeapMemBlockArray[Idx + NumFree].BlocksAllocated = NumFree ? 0 : BlocksNeeded; // Mark only the first block with the count
}
#ifdef DEBUG
IncrementAllocationCount();
DebugPrint(DPRINT_MEMORY, "Allocated %d bytes (%d blocks) of memory starting at block %d. AllocationCount: %d\n", NumberOfBytes, BlocksNeeded, Idx, AllocationCount);
#endif DEBUG
// Now return the pointer
return MemPointer;
}
VOID FreeMemory(PVOID MemBlock)
{
ULONG BlockNumber;
ULONG BlockCount;
ULONG Idx;
#ifdef DEBUG
VerifyHeap();
// Make sure we didn't get a bogus pointer
if ((MemBlock < HeapBaseAddress) || (MemBlock > (HeapBaseAddress + HeapLengthInBytes)))
{
BugCheck1("Bogus memory pointer (0x%x) passed to FreeMemory()\n", MemBlock);
}
#endif DEBUG
// Find out the block number if the first
// block of memory they allocated
BlockNumber = (MemBlock - HeapBaseAddress) / MEM_BLOCK_SIZE;
BlockCount = HeapMemBlockArray[BlockNumber].BlocksAllocated;
#ifdef DEBUG
// Make sure we didn't get a bogus pointer
if ((BlockCount < 1) || (BlockCount > HeapMemBlockCount))
{
BugCheck1("Invalid block count in heap page header. HeapMemBlockArray[BlockNumber].BlocksAllocated = %d\n", HeapMemBlockArray[BlockNumber].BlocksAllocated);
}
#endif
// Loop through our array and mark all the
// blocks as free
for (Idx=BlockNumber; Idx<(BlockNumber + BlockCount); Idx++)
{
HeapMemBlockArray[Idx].MemBlockAllocated = FALSE;
HeapMemBlockArray[Idx].BlocksAllocated = 0;
}
#ifdef DEBUG
DecrementAllocationCount();
DebugPrint(DPRINT_MEMORY, "Freed %d blocks of memory starting at block %d. AllocationCount: %d\n", BlockCount, BlockNumber, AllocationCount);
#endif DEBUG
}
#ifdef DEBUG
VOID VerifyHeap(VOID)
{
ULONG Idx;
ULONG Idx2;
ULONG Count;
// Loop through the array and verify that
// everything is kosher
for (Idx=0; Idx<HeapMemBlockCount; Idx++)
{
// Check if this block is allocation
if (HeapMemBlockArray[Idx].MemBlockAllocated)
{
// This is the first block in the run so it
// had better have a length that is within range
if ((HeapMemBlockArray[Idx].BlocksAllocated < 1) || (HeapMemBlockArray[Idx].BlocksAllocated > (HeapMemBlockCount - Idx)))
{
BugCheck1("Allocation length out of range in heap table. HeapMemBlockArray[Idx].BlocksAllocated = %d\n", HeapMemBlockArray[Idx].BlocksAllocated);
}
// Now go through and verify that the rest of
// this run has the blocks marked allocated
// with a length of zero but don't check the
// first one because we already did
Count = HeapMemBlockArray[Idx].BlocksAllocated;
for (Idx2=1; Idx2<Count; Idx2++)
{
// Make sure it's allocated
if (HeapMemBlockArray[Idx + Idx2].MemBlockAllocated != TRUE)
{
BugCheck0("Heap table indicates hole in memory allocation. HeapMemBlockArray[Idx + Idx2].MemBlockAllocated != TRUE\n");
}
// Make sure the length is zero
if (HeapMemBlockArray[Idx + Idx2].BlocksAllocated != 0)
{
BugCheck0("Allocation chain has non-zero value in non-first block in heap table. HeapMemBlockArray[Idx + Idx2].BlocksAllocated != 0\n");
}
}
// Move on to the next run
Idx += Count;
}
else
{
// Nope, not allocated so make sure the length is zero
if (HeapMemBlockArray[Idx].BlocksAllocated != 0)
{
BugCheck0("Free block is start of memory allocation. HeapMemBlockArray[Idx].BlocksAllocated != 0\n");
}
}
}
}
VOID IncrementAllocationCount(VOID)
{
AllocationCount++;
}
VOID DecrementAllocationCount(VOID)
{
AllocationCount--;
}
VOID MemAllocTest(VOID)
{
PVOID MemPtr1;
PVOID MemPtr2;
PVOID MemPtr3;
PVOID MemPtr4;
PVOID MemPtr5;
MemPtr1 = AllocateMemory(4096);
printf("MemPtr1: 0x%x\n", (int)MemPtr1);
getch();
MemPtr2 = AllocateMemory(4096);
printf("MemPtr2: 0x%x\n", (int)MemPtr2);
getch();
MemPtr3 = AllocateMemory(4096);
printf("MemPtr3: 0x%x\n", (int)MemPtr3);
getch();
FreeMemory(MemPtr2);
getch();
MemPtr4 = AllocateMemory(2048);
printf("MemPtr4: 0x%x\n", (int)MemPtr4);
getch();
MemPtr5 = AllocateMemory(4096);
printf("MemPtr5: 0x%x\n", (int)MemPtr5);
getch();
}
#endif DEBUG

View File

@@ -1,38 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __MEMORY_H
#define __MEMORY_H
#include "multiboot.h"
VOID InitMemoryManager(PVOID BaseAddress, ULONG Length);
PVOID AllocateMemory(ULONG NumberOfBytes);
VOID FreeMemory(PVOID MemBlock);
// These functions are implemented in mem.S
int GetExtendedMemorySize(void); // Returns extended memory size in KB
int GetConventionalMemorySize(void); // Returns conventional memory size in KB
int GetBiosMemoryMap(memory_map_t *mem_map); // Fills mem_map structure with BIOS memory map and returns length of memory map
#endif // defined __MEMORY_H

View File

@@ -1,192 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "stdlib.h"
#include "tui.h"
#include "menu.h"
#include "options.h"
static int nOSListBoxLeft;
static int nOSListBoxRight;
static int nOSListBoxTop;
static int nOSListBoxBottom;
static int nOSSelected = 0; // Currently selected OS (zero based)
int RunMenu(void)
{
int key;
int second;
BOOL bDone = FALSE;
if (nTimeOut > 0)
nTimeOut++; // Increment the timeout since 0 doesn't count for a second
// Initialise the menu
InitMenu();
// Update the menu
DrawMenu();
second = getsecond();
// Loop
do
{
// Check for a keypress
if (kbhit())
{
// Cancel the timeout
if (nTimeOut != -1)
{
nTimeOut = -1;
DrawMenu();
}
// Get the key
key = getch();
// Is it extended?
if (key == 0)
key = getch(); // Yes - so get the extended key
// Process the key
switch (key)
{
case KEY_UP:
if (nOSSelected)
{
nOSSelected--;
// Update the menu
DrawMenu();
}
break;
case KEY_DOWN:
if (nOSSelected < (nNumOS-1))
{
nOSSelected++;
// Update the menu
DrawMenu();
}
break;
case KEY_ENTER:
bDone = TRUE;
break;
case KEY_F8:
DoOptionsMenu();
DrawBackdrop();
DrawMenu();
break;
}
}
// Update the date & time
UpdateDateTime();
if (nTimeOut > 0)
{
if (getsecond() != second)
{
second = getsecond();
nTimeOut--;
// Update the menu
DrawMenu();
}
}
if (nTimeOut == 0)
bDone = TRUE;
}
while (!bDone);
return nOSSelected;
}
void InitMenu(void)
{
int i;
int height = 1; // Allow room for top & bottom borders
int width = 0;
for(i=0; i<nNumOS; i++)
{
height++;
if(strlen(OSList[i].name) > width)
width = strlen(OSList[i].name);
}
width += 18; // Allow room for left & right borders, plus 8 spaces on each side
// Calculate the OS list box area
nOSListBoxLeft = (nScreenWidth - width) / 2;
nOSListBoxRight = nOSListBoxLeft + width;
nOSListBoxTop = (nScreenHeight - height) / 2 + 1;
nOSListBoxBottom = nOSListBoxTop + height;
nOSSelected = 0;
}
void DrawMenu(void)
{
int i, j;
char text[260];
char temp[260];
int space, space_left, space_right;
// Update the status bar
DrawStatusText(" Use \x18\x19 to select, ENTER to boot. Press F8 for advanced options.");
DrawBox(nOSListBoxLeft, nOSListBoxTop, nOSListBoxRight, nOSListBoxBottom, D_VERT, D_HORZ, TRUE, TRUE, ATTR(cMenuFgColor, cMenuBgColor));
for(i=0; i<nNumOS; i++)
{
space = (nOSListBoxRight - nOSListBoxLeft - 2) - strlen(OSList[i].name);
space_left = (space / 2) + 1;
space_right = (space - space_left) + 1;
text[0] = '\0';
for(j=0; j<space_left; j++)
strcat(text, " ");
strcat(text, OSList[i].name);
for(j=0; j<space_right; j++)
strcat(text, " ");
if(i == nOSSelected)
{
DrawText(nOSListBoxLeft+1, nOSListBoxTop+1+i, text, ATTR(cSelectedTextColor, cSelectedTextBgColor));
}
else
{
DrawText(nOSListBoxLeft+1, nOSListBoxTop+1+i, text, ATTR(cTextColor, cMenuBgColor));
}
}
if (nTimeOut >= 0)
{
strcpy(text, "[ Time Remaining: ");
itoa(nTimeOut, temp, 10);
strcat(text, temp);
strcat(text, " ]");
DrawText(nOSListBoxRight - strlen(text) - 1, nOSListBoxBottom, text, ATTR(cMenuFgColor, cMenuBgColor));
}
}

View File

@@ -1,27 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __MENU_H
#define __MENU_H
int RunMenu(void);
void InitMenu(void);
void DrawMenu(void);
#endif // #defined __MENU_H

View File

@@ -1,230 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "asmcode.h"
#include "miscboot.h"
#include "stdlib.h"
#include "fs.h"
#include "tui.h"
#include "parseini.h"
void LoadAndBootBootSector(int nOSToBoot)
{
FILE file;
char name[260];
char value[260];
char szFileName[1024];
int i;
// Find all the message box settings and run them
for (i=1; i<=GetNumSectionItems(OSList[nOSToBoot].name); i++)
{
ReadSectionSettingByNumber(OSList[nOSToBoot].name, i, name, value);
if (stricmp(name, "MessageBox") == 0)
MessageBox(value);
if (stricmp(name, "MessageLine") == 0)
MessageLine(value);
}
if (!ReadSectionSettingByName(OSList[nOSToBoot].name, "BootDrive", value))
{
MessageBox("Boot drive not specified for selected OS!");
return;
}
BootDrive = atoi(value);
BootPartition = 0;
if (ReadSectionSettingByName(OSList[nOSToBoot].name, "BootPartition", value))
BootPartition = atoi(value);
if (!ReadSectionSettingByName(OSList[nOSToBoot].name, "BootSector", value))
{
MessageBox("Boot sector file not specified for selected OS!");
return;
}
if (!OpenDiskDrive(BootDrive, BootPartition))
{
MessageBox("Failed to open boot drive.");
return;
}
strcpy(szFileName, value);
if (!OpenFile(szFileName, &file))
{
strcat(value, " not found.");
MessageBox(value);
return;
}
// Read boot sector
if (ReadFile(&file, 512, (void*)0x7c00) != 512)
{
MessageBox("Disk Read Error");
return;
}
// Check for validity
if (*((WORD*)(0x7c00 + 0x1fe)) != 0xaa55)
{
MessageBox("Invalid boot sector magic (0xaa55)");
return;
}
RestoreScreen(ScreenBuffer);
showcursor();
gotoxy(CursorXPos, CursorYPos);
stop_floppy();
JumpToBootCode();
}
void LoadAndBootPartition(int nOSToBoot)
{
char name[260];
char value[260];
int head, sector, cylinder;
int offset;
int i;
// Find all the message box settings and run them
for (i=1; i<=GetNumSectionItems(OSList[nOSToBoot].name); i++)
{
ReadSectionSettingByNumber(OSList[nOSToBoot].name, i, name, value);
if (stricmp(name, "MessageBox") == 0)
MessageBox(value);
if (stricmp(name, "MessageLine") == 0)
MessageLine(value);
}
if (!ReadSectionSettingByName(OSList[nOSToBoot].name, "BootDrive", value))
{
MessageBox("Boot drive not specified for selected OS!");
return;
}
BootDrive = atoi(value);
if (!ReadSectionSettingByName(OSList[nOSToBoot].name, "BootPartition", value))
{
MessageBox("Boot partition not specified for selected OS!");
return;
}
BootPartition = atoi(value);
if (!biosdisk(_DISK_READ, BootDrive, 0, 0, 1, 1, SectorBuffer))
{
MessageBox("Disk Read Error");
return;
}
// Check for validity
if (*((WORD*)(SectorBuffer + 0x1fe)) != 0xaa55)
{
MessageBox("Invalid partition table magic (0xaa55)");
return;
}
offset = 0x1BE + ((BootPartition-1) * 0x10);
// Check for valid partition
if (SectorBuffer[offset + 4] == 0)
{
MessageBox("Invalid boot partition");
return;
}
head = SectorBuffer[offset + 1];
sector = (SectorBuffer[offset + 2] & 0x3F);
cylinder = SectorBuffer[offset + 3];
if (SectorBuffer[offset + 2] & 0x80)
cylinder += 0x200;
if (SectorBuffer[offset + 2] & 0x40)
cylinder += 0x100;
// Read partition boot sector
if (!biosdisk(_DISK_READ, BootDrive, head, cylinder, sector, 1, (void*)0x7c00))
{
MessageBox("Disk Read Error");
return;
}
// Check for validity
if (*((WORD*)(0x7c00 + 0x1fe)) != 0xaa55)
{
MessageBox("Invalid boot sector magic (0xaa55)");
return;
}
RestoreScreen(ScreenBuffer);
showcursor();
gotoxy(CursorXPos, CursorYPos);
stop_floppy();
JumpToBootCode();
}
void LoadAndBootDrive(int nOSToBoot)
{
char name[260];
char value[260];
int i;
// Find all the message box settings and run them
for (i=1; i<=GetNumSectionItems(OSList[nOSToBoot].name); i++)
{
ReadSectionSettingByNumber(OSList[nOSToBoot].name, i, name, value);
if (stricmp(name, "MessageBox") == 0)
MessageBox(value);
if (stricmp(name, "MessageLine") == 0)
MessageLine(value);
}
if (!ReadSectionSettingByName(OSList[nOSToBoot].name, "BootDrive", value))
{
MessageBox("Boot drive not specified for selected OS!");
return;
}
BootDrive = atoi(value);
if (!biosdisk(_DISK_READ, BootDrive, 0, 0, 1, 1, (void*)0x7c00))
{
MessageBox("Disk Read Error");
return;
}
// Check for validity
if (*((WORD*)(0x7c00 + 0x1fe)) != 0xaa55)
{
MessageBox("Invalid boot sector magic (0xaa55)");
return;
}
RestoreScreen(ScreenBuffer);
showcursor();
gotoxy(CursorXPos, CursorYPos);
stop_floppy();
JumpToBootCode();
}

View File

@@ -1,29 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __BOOT_H
#define __BOOT_H
void JumpToBootCode(void); // Implemented in boot.S
void LoadAndBootBootSector(int nOSToBoot);
void LoadAndBootPartition(int nOSToBoot);
void LoadAndBootDrive(int nOSToBoot);
#endif // defined __BOOT_H

View File

@@ -1,157 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "asmcode.h"
#include "stdlib.h"
#include "fs.h"
#include "multiboot.h"
#include "tui.h"
#include "parseini.h"
unsigned long next_module_load_base = 0;
BOOL MultiBootLoadKernel(FILE *KernelImage)
{
DWORD ImageHeaders[2048];
int Idx;
DWORD dwHeaderChecksum;
DWORD dwFileLoadOffset;
DWORD dwDataSize;
DWORD dwBssSize;
/*
* Load the first 8192 bytes of the kernel image
* so we can search for the multiboot header
*/
ReadFile(KernelImage, 8192, ImageHeaders);
/*
* Now find the multiboot header and copy it
*/
for (Idx=0; Idx<2048; Idx++)
{
// Did we find it?
if (ImageHeaders[Idx] == MULTIBOOT_HEADER_MAGIC)
{
// Yes, copy it and break out of this loop
memcpy(&mb_header, &ImageHeaders[Idx], sizeof(multiboot_header_t));
break;
}
}
/*
* If we reached the end of the 8192 bytes without
* finding the multiboot header then return error
*/
if (Idx == 2048)
{
MessageBox("No multiboot header found!");
return FALSE;
}
/*printf("multiboot header:\n");
printf("0x%x\n", mb_header.magic);
printf("0x%x\n", mb_header.flags);
printf("0x%x\n", mb_header.checksum);
printf("0x%x\n", mb_header.header_addr);
printf("0x%x\n", mb_header.load_addr);
printf("0x%x\n", mb_header.load_end_addr);
printf("0x%x\n", mb_header.bss_end_addr);
printf("0x%x\n", mb_header.entry_addr);
getch();*/
/*
* Calculate the checksum and make sure it matches
*/
dwHeaderChecksum = mb_header.magic;
dwHeaderChecksum += mb_header.flags;
dwHeaderChecksum += mb_header.checksum;
if (dwHeaderChecksum != 0)
{
MessageBox("Multiboot header checksum invalid!");
return FALSE;
}
/*
* Get the file offset, this should be 0, and move the file pointer
*/
dwFileLoadOffset = (Idx * sizeof(DWORD)) - (mb_header.header_addr - mb_header.load_addr);
fseek(KernelImage, dwFileLoadOffset);
/*
* Load the file image
*/
dwDataSize = (mb_header.load_end_addr - mb_header.load_addr);
ReadFile(KernelImage, dwDataSize, (void*)mb_header.load_addr);
/*
* Initialize bss area
*/
dwBssSize = (mb_header.bss_end_addr - mb_header.load_end_addr);
memset((void*)mb_header.load_end_addr, 0, dwBssSize);
next_module_load_base = ROUND_UP(mb_header.bss_end_addr, /*PAGE_SIZE*/4096);
return TRUE;
}
BOOL MultiBootLoadModule(FILE *ModuleImage, char *ModuleName)
{
DWORD dwModuleSize;
module_t* pModule;
char* ModuleNameString;
/*
* Get current module data structure and module name string array
*/
pModule = &multiboot_modules[mb_info.mods_count];
ModuleNameString = multiboot_module_strings[mb_info.mods_count];
dwModuleSize = GetFileSize(ModuleImage);
pModule->mod_start = next_module_load_base;
pModule->mod_end = next_module_load_base + dwModuleSize;
strcpy(ModuleNameString, ModuleName);
pModule->string = (unsigned long)ModuleNameString;
/*
* Load the file image
*/
ReadFile(ModuleImage, dwModuleSize, (void*)next_module_load_base);
next_module_load_base = ROUND_UP(pModule->mod_end, /*PAGE_SIZE*/4096);
mb_info.mods_count++;
return TRUE;
}
int GetBootPartition(char *OperatingSystemName)
{
int BootPartitionNumber = -1;
char value[1024];
if (ReadSectionSettingByName(OperatingSystemName, "BootPartition", value))
{
BootPartitionNumber = atoi(value);
}
return BootPartitionNumber;
}

View File

@@ -1,155 +0,0 @@
/* multiboot.h - the header for Multiboot */
/* Copyright (C) 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __MULTIBOOT_H
#define __MULTIBOOT_H
/* Macros. */
/* The magic number for the Multiboot header. */
#define MULTIBOOT_HEADER_MAGIC 0x1BADB002
/* The flags for the Multiboot header. */
#define MULTIBOOT_HEADER_FLAGS 0x00010003
/* The magic number passed by a Multiboot-compliant boot loader. */
#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002
/* The size of our stack (16KB). */
#define STACK_SIZE 0x4000
/* C symbol format. HAVE_ASM_USCORE is defined by configure. */
#ifdef HAVE_ASM_USCORE
# define EXT_C(sym) _ ## sym
#else
# define EXT_C(sym) sym
#endif
#define MB_INFO_FLAG_MEM_SIZE 0x00000001
#define MB_INFO_FLAG_BOOT_DEVICE 0x00000002
#define MB_INFO_FLAG_COMMAND_LINE 0x00000004
#define MB_INFO_FLAG_MODULES 0x00000008
#define MB_INFO_FLAG_AOUT_SYMS 0x00000010
#define MB_INFO_FLAG_ELF_SYMS 0x00000020
#define MB_INFO_FLAG_MEMORY_MAP 0x00000040
#define MB_INFO_FLAG_DRIVES 0x00000080
#define MB_INFO_FLAG_CONFIG_TABLE 0x00000100
#define MB_INFO_FLAG_BOOT_LOADER_NAME 0x00000200
#define MB_INFO_FLAG_APM_TABLE 0x00000400
#define MB_INFO_FLAG_GRAPHICS_TABLE 0x00000800
#ifndef ASM
/* Do not include here in boot.S. */
/* Types. */
/* The Multiboot header. */
typedef struct multiboot_header
{
unsigned long magic;
unsigned long flags;
unsigned long checksum;
unsigned long header_addr;
unsigned long load_addr;
unsigned long load_end_addr;
unsigned long bss_end_addr;
unsigned long entry_addr;
} multiboot_header_t;
/* The symbol table for a.out. */
typedef struct aout_symbol_table
{
unsigned long tabsize;
unsigned long strsize;
unsigned long addr;
unsigned long reserved;
} aout_symbol_table_t;
/* The section header table for ELF. */
typedef struct elf_section_header_table
{
unsigned long num;
unsigned long size;
unsigned long addr;
unsigned long shndx;
} elf_section_header_table_t;
/* The Multiboot information. */
typedef struct multiboot_info
{
unsigned long flags;
unsigned long mem_lower;
unsigned long mem_upper;
unsigned long boot_device;
unsigned long cmdline;
unsigned long mods_count;
unsigned long mods_addr;
union
{
aout_symbol_table_t aout_sym;
elf_section_header_table_t elf_sec;
} u;
unsigned long mmap_length;
unsigned long mmap_addr;
} multiboot_info_t;
/* The module structure. */
typedef struct module
{
unsigned long mod_start;
unsigned long mod_end;
unsigned long string;
unsigned long reserved;
} module_t;
/* The memory map. Be careful that the offset 0 is base_addr_low
but no size. */
typedef struct memory_map
{
//unsigned long size;
unsigned long base_addr_low;
unsigned long base_addr_high;
unsigned long length_low;
unsigned long length_high;
unsigned long type;
unsigned long reserved;
} memory_map_t;
multiboot_header_t mb_header; // Multiboot header structure defined in kernel image file
multiboot_info_t mb_info; // Multiboot info structure passed to kernel
char multiboot_kernel_cmdline[255]; // Command line passed to kernel
module_t multiboot_modules[64]; // Array to hold boot module info loaded for the kernel
char multiboot_module_strings[64][256]; // Array to hold module names
unsigned long multiboot_memory_map_descriptor_size;
memory_map_t multiboot_memory_map; // Memory map
void boot_reactos(void);
#include "fs.h" // Included FILE structure definition
BOOL MultiBootLoadKernel(FILE *KernelImage);
BOOL MultiBootLoadModule(FILE *ModuleImage, char *ModuleName);
int GetBootPartition(char *OperatingSystemName);
#endif /* ! ASM */
#endif // defined __MULTIBOOT_H

View File

@@ -1,395 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "stdlib.h"
#include "tui.h"
#include "options.h"
#include "miscboot.h"
void DoOptionsMenu(void)
{
int OptionsMenuItemCount = 1; // Count is 1 because we don't show the "Set ReactOS Boot Flags" menu item yet
char OptionsMenuItems[2][80] = { "Boot Wizard", "Set ReactOS Boot Flags" /* i.e. Safe Mode, Last Known Good Configuration */ };
int OptionsMenuItemSelected = 0;
while (OptionsMenuItemSelected != -1)
{
OptionsMenuItemSelected = RunOptionsMenu(OptionsMenuItems, OptionsMenuItemCount, OptionsMenuItemSelected, "[Advanced Options]");
switch (OptionsMenuItemSelected)
{
case 0:
DoDiskOptionsMenu();
break;
}
}
}
void DoDiskOptionsMenu(void)
{
char DiskMenuItems[25][80];
int DiskMenuItemCount = 0;
int FloppyDiskMenuItemCount = 0;
int HardDiskMenuItemCount = 0;
int DiskMenuItemSelected = 0;
char temp[255];
int i;
FloppyDiskMenuItemCount = (int)*((char *)((0x40 * 16) + 0x10)); // Get number of floppy disks from bios data area 40:10
if (FloppyDiskMenuItemCount & 1)
FloppyDiskMenuItemCount = (FloppyDiskMenuItemCount >> 6) + 1;
else
FloppyDiskMenuItemCount = 0;
HardDiskMenuItemCount = (int)*((char *)((0x40 * 16) + 0x75)); // Get number of hard disks from bios data area 40:75
DiskMenuItemCount = FloppyDiskMenuItemCount + HardDiskMenuItemCount;
for (i=0; i<FloppyDiskMenuItemCount; i++)
{
strcpy(DiskMenuItems[i], "Floppy Disk ");
itoa(i + 1, temp, 10);
strcat(DiskMenuItems[i], temp);
}
for (i=0; i<HardDiskMenuItemCount; i++)
{
strcpy(DiskMenuItems[i + FloppyDiskMenuItemCount], "Hard Disk ");
itoa(i + 1, temp, 10);
strcat(DiskMenuItems[i + FloppyDiskMenuItemCount], temp);
strcat(DiskMenuItems[i + FloppyDiskMenuItemCount], " (");
itoa((get_heads(i+0x80) * get_cylinders(i+0x80) * get_sectors(i+0x80)) / 2048, temp, 10);
strcat(DiskMenuItems[i + FloppyDiskMenuItemCount], temp);
strcat(DiskMenuItems[i + FloppyDiskMenuItemCount], " MB)");
}
DiskMenuItemSelected = 0;
while (DiskMenuItemSelected != -1)
{
DiskMenuItemSelected = RunOptionsMenu(DiskMenuItems, DiskMenuItemCount, DiskMenuItemSelected, "[Boot Wizard]");
if (DiskMenuItemSelected != -1)
{
if (DiskMenuItemSelected < FloppyDiskMenuItemCount)
DoBootOptionsMenu(DiskMenuItemSelected, DiskMenuItems[DiskMenuItemSelected]);
else
DoBootOptionsMenu((DiskMenuItemSelected - FloppyDiskMenuItemCount) + 0x80, DiskMenuItems[DiskMenuItemSelected]);
}
}
}
void DoBootOptionsMenu(int BootDriveNum, char *BootDriveText)
{
int BootOptionsMenuItemCount = 2;
char BootOptionsMenuItems[2][80] = { "Boot To ", "Pick A Boot Partition" };
int BootOptionsMenuItemSelected = 0;
strcat(BootOptionsMenuItems[0], BootDriveText);
while (BootOptionsMenuItemSelected != -1)
{
BootOptionsMenuItemSelected = RunOptionsMenu(BootOptionsMenuItems, BootOptionsMenuItemCount, BootOptionsMenuItemSelected, "[Boot Options]");
switch (BootOptionsMenuItemSelected)
{
case 0:
BootDrive = BootDriveNum;
if (!biosdisk(_DISK_READ, BootDrive, 0, 0, 1, 1, (void*)0x7c00))
{
MessageBox("Disk Read Error");
return;
}
// Check for validity
if (*((WORD*)(0x7c00 + 0x1fe)) != 0xaa55)
{
MessageBox("Invalid boot sector magic (0xaa55)");
return;
}
RestoreScreen(ScreenBuffer);
showcursor();
gotoxy(CursorXPos, CursorYPos);
stop_floppy();
JumpToBootCode();
break;
case 1:
if (BootDriveNum < 0x80)
{
MessageBox("This option is not available for a floppy disk.");
continue;
}
else
DoBootPartitionOptionsMenu(BootDriveNum);
break;
}
}
}
void DoBootPartitionOptionsMenu(int BootDriveNum)
{
struct
{
int partition_num;
int partition_type;
int head, sector, cylinder;
} BootPartitions[8];
int BootOptionsMenuItemCount = 0;
char BootOptionsMenuItems[8][80];
int BootOptionsMenuItemSelected = 0;
int head, sector, cylinder;
int offset;
int i;
char temp[25];
BootDrive = BootDriveNum;
if (!biosdisk(_DISK_READ, BootDrive, 0, 0, 1, 1, SectorBuffer))
{
MessageBox("Disk Read Error");
return;
}
// Check for validity
if (*((WORD*)(SectorBuffer + 0x1fe)) != 0xaa55)
{
MessageBox("Invalid partition table magic (0xaa55)");
return;
}
offset = 0x1BE;
for (i=0; i<4; i++)
{
// Check for valid partition
if (SectorBuffer[offset + 4] != 0)
{
BootPartitions[BootOptionsMenuItemCount].partition_num = i;
BootPartitions[BootOptionsMenuItemCount].partition_type = SectorBuffer[offset + 4];
BootPartitions[BootOptionsMenuItemCount].head = SectorBuffer[offset + 1];
BootPartitions[BootOptionsMenuItemCount].sector = (SectorBuffer[offset + 2] & 0x3F);
BootPartitions[BootOptionsMenuItemCount].cylinder = SectorBuffer[offset + 3];
if (SectorBuffer[offset + 2] & 0x80)
BootPartitions[BootOptionsMenuItemCount].cylinder += 0x200;
if (SectorBuffer[offset + 2] & 0x40)
BootPartitions[BootOptionsMenuItemCount].cylinder += 0x100;
strcpy(BootOptionsMenuItems[BootOptionsMenuItemCount], "Boot To Partition ");
itoa(i+1, temp, 10);
strcat(BootOptionsMenuItems[BootOptionsMenuItemCount], temp);
strcat(BootOptionsMenuItems[BootOptionsMenuItemCount], " (Type: 0x");
itoa(BootPartitions[BootOptionsMenuItemCount].partition_type, temp, 16);
if (strlen(temp) < 2)
strcat(BootOptionsMenuItems[BootOptionsMenuItemCount], "0");
strcat(BootOptionsMenuItems[BootOptionsMenuItemCount], temp);
strcat(BootOptionsMenuItems[BootOptionsMenuItemCount], ")");
BootOptionsMenuItemCount++;
}
offset += 0x10;
}
while (BootOptionsMenuItemSelected != -1)
{
BootOptionsMenuItemSelected = RunOptionsMenu(BootOptionsMenuItems, BootOptionsMenuItemCount, BootOptionsMenuItemSelected, "[Boot Partition Options]");
if (BootOptionsMenuItemSelected != -1)
{
head = BootPartitions[BootOptionsMenuItemCount].head;
sector = BootPartitions[BootOptionsMenuItemCount].sector;
cylinder = BootPartitions[BootOptionsMenuItemCount].cylinder;
// Read partition boot sector
if (!biosdisk(_DISK_READ, BootDrive, head, cylinder, sector, 1, (void*)0x7c00))
{
MessageBox("Disk Read Error");
return;
}
// Check for validity
if (*((WORD*)(0x7c00 + 0x1fe)) != 0xaa55)
{
MessageBox("Invalid boot sector magic (0xaa55)");
return;
}
RestoreScreen(ScreenBuffer);
showcursor();
gotoxy(CursorXPos, CursorYPos);
stop_floppy();
JumpToBootCode();
}
}
}
int RunOptionsMenu(char OptionsMenuItems[][80], int OptionsMenuItemCount, int nOptionSelected, char *OptionsMenuTitle)
{
int key;
int second;
BOOL bDone = FALSE;
int nOptionsMenuBoxLeft;
int nOptionsMenuBoxRight;
int nOptionsMenuBoxTop;
int nOptionsMenuBoxBottom;
// Initialise the menu
InitOptionsMenu(&nOptionsMenuBoxLeft, &nOptionsMenuBoxTop, &nOptionsMenuBoxRight, &nOptionsMenuBoxBottom, OptionsMenuItemCount);
DrawBackdrop();
// Update the menu
DrawOptionsMenu(OptionsMenuItems, OptionsMenuItemCount, nOptionSelected, OptionsMenuTitle, nOptionsMenuBoxLeft, nOptionsMenuBoxTop, nOptionsMenuBoxRight, nOptionsMenuBoxBottom);
second = getsecond();
// Loop
do
{
// Check for a keypress
if (kbhit())
{
// Cancel the timeout
if (nTimeOut != -1)
{
nTimeOut = -1;
DrawOptionsMenu(OptionsMenuItems, OptionsMenuItemCount, nOptionSelected, OptionsMenuTitle, nOptionsMenuBoxLeft, nOptionsMenuBoxTop, nOptionsMenuBoxRight, nOptionsMenuBoxBottom);
}
// Get the key
key = getch();
// Is it extended?
if (key == 0)
key = getch(); // Yes - so get the extended key
// Process the key
switch (key)
{
case KEY_UP:
if (nOptionSelected)
{
nOptionSelected--;
// Update the menu
DrawOptionsMenu(OptionsMenuItems, OptionsMenuItemCount, nOptionSelected, OptionsMenuTitle, nOptionsMenuBoxLeft, nOptionsMenuBoxTop, nOptionsMenuBoxRight, nOptionsMenuBoxBottom);
}
break;
case KEY_DOWN:
if (nOptionSelected < (OptionsMenuItemCount - 1))
{
nOptionSelected++;
// Update the menu
DrawOptionsMenu(OptionsMenuItems, OptionsMenuItemCount, nOptionSelected, OptionsMenuTitle, nOptionsMenuBoxLeft, nOptionsMenuBoxTop, nOptionsMenuBoxRight, nOptionsMenuBoxBottom);
}
break;
case KEY_ENTER:
//MessageBox("The Advanced Options are still being implemented.");
bDone = TRUE;
break;
case KEY_ESC:
nOptionSelected = -1;
bDone = TRUE;
break;
}
}
// Update the date & time
UpdateDateTime();
if (nTimeOut > 0)
{
if (getsecond() != second)
{
second = getsecond();
nTimeOut--;
// Update the menu
DrawOptionsMenu(OptionsMenuItems, OptionsMenuItemCount, nOptionSelected, OptionsMenuTitle, nOptionsMenuBoxLeft, nOptionsMenuBoxTop, nOptionsMenuBoxRight, nOptionsMenuBoxBottom);
}
}
if (nTimeOut == 0)
bDone = TRUE;
}
while (!bDone);
return nOptionSelected;
}
void InitOptionsMenu(int *nOptionsMenuBoxLeft, int *nOptionsMenuBoxTop, int *nOptionsMenuBoxRight, int *nOptionsMenuBoxBottom, int OptionsMenuItemCount)
{
int height = OptionsMenuItemCount;
int width = 20;
height += 1; // Allow room for top & bottom borders
width += 18; // Allow room for left & right borders, plus 8 spaces on each side
// Calculate the OS list box area
*nOptionsMenuBoxLeft = (nScreenWidth - width) / 2;
*nOptionsMenuBoxRight = *nOptionsMenuBoxLeft + width;
*nOptionsMenuBoxTop = (nScreenHeight - height) / 2 + 1;
*nOptionsMenuBoxBottom = *nOptionsMenuBoxTop + height;
}
void DrawOptionsMenu(char OptionsMenuItems[][80], int OptionsMenuItemCount, int nOptionSelected, char *OptionsMenuTitle, int nOptionsMenuBoxLeft, int nOptionsMenuBoxTop, int nOptionsMenuBoxRight, int nOptionsMenuBoxBottom)
{
int i, j;
char text[260];
int space, space_left, space_right;
// Update the status bar
DrawStatusText(" Use \x18\x19 to select, then press ENTER. Press ESC to go back.");
DrawBox(nOptionsMenuBoxLeft, nOptionsMenuBoxTop, nOptionsMenuBoxRight, nOptionsMenuBoxBottom, D_VERT, D_HORZ, TRUE, TRUE, ATTR(cMenuFgColor, cMenuBgColor));
DrawText(nOptionsMenuBoxLeft + (((nOptionsMenuBoxRight - nOptionsMenuBoxLeft) - strlen(OptionsMenuTitle)) / 2) + 1, nOptionsMenuBoxTop, OptionsMenuTitle, ATTR(cMenuFgColor, cMenuBgColor));
for(i=0; i<OptionsMenuItemCount; i++)
{
space = (nOptionsMenuBoxRight - nOptionsMenuBoxLeft - 2) - strlen(OptionsMenuItems[i]);
space_left = (space / 2) + 1;
space_right = (space - space_left) + 1;
text[0] = '\0';
for(j=0; j<space_left; j++)
strcat(text, " ");
strcat(text, OptionsMenuItems[i]);
for(j=0; j<space_right; j++)
strcat(text, " ");
if(i == nOptionSelected)
{
DrawText(nOptionsMenuBoxLeft+1, nOptionsMenuBoxTop+1+i, text, ATTR(cSelectedTextColor, cSelectedTextBgColor));
}
else
{
DrawText(nOptionsMenuBoxLeft+1, nOptionsMenuBoxTop+1+i, text, ATTR(cTextColor, cMenuBgColor));
}
}
}

View File

@@ -1,31 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __OPTIONS_H
#define __OPTIONS_H
void DoOptionsMenu(void);
void DoDiskOptionsMenu(void);
void DoBootOptionsMenu(int BootDriveNum, char *BootDriveText);
void DoBootPartitionOptionsMenu(int BootDriveNum);
int RunOptionsMenu(char OptionsMenuItems[][80], int OptionsMenuItemCount, int nOptionSelected, char *OptionsMenuTitle);
void InitOptionsMenu(int *nOptionsMenuBoxLeft, int *nOptionsMenuBoxTop, int *nOptionsMenuBoxRight, int *nOptionsMenuBoxBottom, int OptionsMenuItemCount);
void DrawOptionsMenu(char OptionsMenuItems[][80], int OptionsMenuItemCount, int nOptionSelected, char *OptionsMenuTitle, int nOptionsMenuBoxLeft, int nOptionsMenuBoxTop, int nOptionsMenuBoxRight, int nOptionsMenuBoxBottom);
#endif // #defined __OPTIONS_H

View File

@@ -1,522 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "parseini.h"
#include "tui.h"
#include "fs.h"
#include "stdlib.h"
#include "memory.h"
PUCHAR FreeLoaderIniFileData = NULL;
ULONG FreeLoaderIniFileSize = 0;
BOOL ParseIniFile(void)
{
int i;
char name[1024];
char value[1024];
FILE Freeldr_Ini; // File handle for freeldr.ini
// Open the boot drive for file access
if (!OpenDiskDrive(BootDrive, 0))
{
printf("Error opening boot drive for file access.\n");
return FALSE;
}
// Try to open freeldr.ini or fail
if (!OpenFile("freeldr.ini", &Freeldr_Ini))
{
printf("FREELDR.INI not found.\nYou need to re-install FreeLoader.\n");
return FALSE;
}
// Get the file size & allocate enough memory for it
FreeLoaderIniFileSize = GetFileSize(&Freeldr_Ini);
FreeLoaderIniFileData = AllocateMemory(FreeLoaderIniFileSize);
// If we are out of memory then return FALSE
if (FreeLoaderIniFileData == NULL)
{
printf("Out of memory while loading FREELDR.INI.\n");
return FALSE;
}
// Read freeldr.ini off the disk
ReadFile(&Freeldr_Ini, FreeLoaderIniFileSize, FreeLoaderIniFileData);
// Make sure the [FREELOADER] section exists
if (!GetNumSectionItems("FREELOADER"))
{
printf("Section [FREELOADER] not found in FREELDR.INI.\nYou need to re-install FreeLoader.\n");
return FALSE;
}
// Validate the settings in the [FREELOADER] section
for (i=1; i<=GetNumSectionItems("FREELOADER"); i++)
{
ReadSectionSettingByNumber("FREELOADER", i, name, value);
if (!IsValidSetting(name, value))
{
printf("Invalid setting in freeldr.ini.\nName: \"%s\", Value: \"%s\"\n", name, value);
printf("Press any key to continue.\n");
getch();
}
else
SetSetting(name, value);
}
return TRUE;
}
ULONG GetNextLineOfFileData(PUCHAR Buffer, ULONG BufferSize, ULONG CurrentOffset)
{
ULONG Idx;
// Loop through grabbing chars until we hit the end of the
// file or we encounter a new line char
for (Idx=0; (CurrentOffset < FreeLoaderIniFileSize); CurrentOffset++)
{
// If we haven't exceeded our buffer size yet
// then store another char
if (Idx < (BufferSize - 1))
{
Buffer[Idx++] = FreeLoaderIniFileData[CurrentOffset];
}
// Check for new line char
if (FreeLoaderIniFileData[CurrentOffset] == '\n')
{
CurrentOffset++;
break;
}
}
// Terminate the string
Buffer[Idx] = '\0';
// Get rid of newline & linefeed characters (if any)
if((Buffer[strlen(Buffer)-1] == '\n') || (Buffer[strlen(Buffer)-1] == '\r'))
Buffer[strlen(Buffer)-1] = '\0';
if((Buffer[strlen(Buffer)-1] == '\n') || (Buffer[strlen(Buffer)-1] == '\r'))
Buffer[strlen(Buffer)-1] = '\0';
// Send back new offset
return CurrentOffset;
}
ULONG GetOffsetOfFirstLineOfSection(PUCHAR SectionName)
{
char str[1024];
char real_section[1024];
ULONG freeldr_ini_offset;
BOOL SectionFound = FALSE;
// Get the real section name
strcpy(real_section, "[");
strcat(real_section, SectionName);
strcat(real_section, "]");
// Get to the beginning of the file
freeldr_ini_offset = 0;
// Find the section
while (freeldr_ini_offset < FreeLoaderIniFileSize)
{
// Read a line
freeldr_ini_offset = GetNextLineOfFileData(str, 1024, freeldr_ini_offset);
// Skip comments
if (str[0] == '#')
continue;
// Skip blank lines
if (!strlen(str))
continue;
// If it isn't a section header then continue on
if (str[0] != '[')
continue;
// Check and see if we found it
if (stricmp(str, real_section) == 0)
{
SectionFound = TRUE;
break;
}
}
// If we didn't find the section then we're outta here
if (!SectionFound)
return 0;
return freeldr_ini_offset;
}
ULONG GetNumSectionItems(PUCHAR SectionName)
{
UCHAR str[1024];
ULONG num_items = 0;
ULONG freeldr_ini_offset;
// Get to the beginning of the section
freeldr_ini_offset = GetOffsetOfFirstLineOfSection(SectionName);
// If the section wasn't found then exit
if (freeldr_ini_offset == 0)
{
return 0;
}
// Now count how many settings are in this section
while (freeldr_ini_offset < FreeLoaderIniFileSize)
{
// Read a line
freeldr_ini_offset = GetNextLineOfFileData(str, 1024, freeldr_ini_offset);
// Skip comments
if (str[0] == '#')
continue;
// Skip blank lines
if (!strlen(str))
continue;
// If we hit a new section then we're done
if (str[0] == '[')
break;
num_items++;
}
return num_items;
}
BOOL ReadSectionSettingByNumber(PUCHAR SectionName, ULONG SettingNumber, PUCHAR SettingName, PUCHAR SettingValue)
{
UCHAR str[1024];
ULONG num_items = 0;
ULONG i;
ULONG freeldr_ini_offset;
// Get to the beginning of the section
freeldr_ini_offset = GetOffsetOfFirstLineOfSection(SectionName);
// If the section wasn't found then exit
if (freeldr_ini_offset == 0)
{
return 0;
}
// Now find the setting we are looking for
while (freeldr_ini_offset < FreeLoaderIniFileSize)
{
// Read a line
freeldr_ini_offset = GetNextLineOfFileData(str, 1024, freeldr_ini_offset);
// Skip comments
if (str[0] == '#')
continue;
// Skip blank lines
if (!strlen(str))
continue;
// If we hit a new section then we're done
if (str[0] == '[')
break;
// Increment setting number
num_items++;
// Check and see if we found the setting
if (num_items == SettingNumber)
{
for (i=0; i<strlen(str); i++)
{
// Check and see if this character is the separator
if (str[i] == '=')
{
SettingName[i] = '\0';
strcpy(SettingValue, str+i+1);
return TRUE;
}
else
SettingName[i] = str[i];
}
}
}
return FALSE;
}
BOOL ReadSectionSettingByName(PUCHAR SectionName, PUCHAR SettingName, PUCHAR SettingValue)
{
UCHAR str[1024];
UCHAR temp[1024];
ULONG i;
ULONG freeldr_ini_offset;
// Get to the beginning of the section
freeldr_ini_offset = GetOffsetOfFirstLineOfSection(SectionName);
// If the section wasn't found then exit
if (freeldr_ini_offset == 0)
{
return 0;
}
// Now find the setting we are looking for
while (freeldr_ini_offset < FreeLoaderIniFileSize)
{
// Read a line
freeldr_ini_offset = GetNextLineOfFileData(str, 1024, freeldr_ini_offset);
// Skip comments
if (str[0] == '#')
continue;
// Skip blank lines
if (!strlen(str))
continue;
// If we hit a new section then we're done
if (str[0] == '[')
break;
// Extract the setting name
for (i=0; i<strlen(str); i++)
{
if (str[i] != '=')
temp[i] = str[i];
else
{
temp[i] = '\0';
break;
}
}
// Check and see if we found the setting
if (stricmp(temp, SettingName) == 0)
{
for (i=0; i<strlen(str); i++)
{
// Check and see if this character is the separator
if (str[i] == '=')
{
strcpy(SettingValue, str+i+1);
return TRUE;
}
}
}
}
return FALSE;
}
BOOL IsValidSetting(char *setting, char *value)
{
if(stricmp(setting, "MessageBox") == 0)
return TRUE;
else if(stricmp(setting, "MessageLine") == 0)
return TRUE;
else if(stricmp(setting, "TitleText") == 0)
return TRUE;
else if(stricmp(setting, "StatusBarColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "StatusBarTextColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "BackdropTextColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "BackdropColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "BackdropFillStyle") == 0)
{
if(IsValidFillStyle(value))
return TRUE;
}
else if(stricmp(setting, "TitleBoxTextColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "TitleBoxColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "MessageBoxTextColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "MessageBoxColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "MenuTextColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "MenuColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "TextColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "SelectedTextColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "SelectedColor") == 0)
{
if(IsValidColor(value))
return TRUE;
}
else if(stricmp(setting, "OS") == 0)
return TRUE;
else if(stricmp(setting, "TimeOut") == 0)
return TRUE;
/*else if(stricmp(setting, "") == 0)
return TRUE;
else if(stricmp(setting, "") == 0)
return TRUE;
else if(stricmp(setting, "") == 0)
return TRUE;
else if(stricmp(setting, "") == 0)
return TRUE;
else if(stricmp(setting, "") == 0)
return TRUE;
else if(stricmp(setting, "") == 0)
return TRUE;
else if(stricmp(setting, "") == 0)
return TRUE;*/
return FALSE;
}
void SetSetting(char *setting, char *value)
{
char v[260];
if(stricmp(setting, "TitleText") == 0)
strcpy(szTitleBoxTitleText, value);
else if(stricmp(setting, "StatusBarColor") == 0)
cStatusBarBgColor = TextToColor(value);
else if(stricmp(setting, "StatusBarTextColor") == 0)
cStatusBarFgColor = TextToColor(value);
else if(stricmp(setting, "BackdropTextColor") == 0)
cBackdropFgColor = TextToColor(value);
else if(stricmp(setting, "BackdropColor") == 0)
cBackdropBgColor = TextToColor(value);
else if(stricmp(setting, "BackdropFillStyle") == 0)
cBackdropFillStyle = TextToFillStyle(value);
else if(stricmp(setting, "TitleBoxTextColor") == 0)
cTitleBoxFgColor = TextToColor(value);
else if(stricmp(setting, "TitleBoxColor") == 0)
cTitleBoxBgColor = TextToColor(value);
else if(stricmp(setting, "MessageBoxTextColor") == 0)
cMessageBoxFgColor = TextToColor(value);
else if(stricmp(setting, "MessageBoxColor") == 0)
cMessageBoxBgColor = TextToColor(value);
else if(stricmp(setting, "MenuTextColor") == 0)
cMenuFgColor = TextToColor(value);
else if(stricmp(setting, "MenuColor") == 0)
cMenuBgColor = TextToColor(value);
else if(stricmp(setting, "TextColor") == 0)
cTextColor = TextToColor(value);
else if(stricmp(setting, "SelectedTextColor") == 0)
cSelectedTextColor = TextToColor(value);
else if(stricmp(setting, "SelectedColor") == 0)
cSelectedTextBgColor = TextToColor(value);
else if(stricmp(setting, "OS") == 0)
{
if(nNumOS >= 16)
{
printf("Error: you can only boot to at most 16 different operating systems.\n");
printf("Press any key to continue\n");
getch();
return;
}
if(!GetNumSectionItems(value))
{
printf("Error: OS \"%s\" listed.\n", value);
printf("It does not have it's own [section], or it is empty.\n");
printf("Press any key to continue\n");
getch();
return;
}
strcpy(OSList[nNumOS].name, value);
if (!ReadSectionSettingByName(value, "BootType", v))
{
printf("Unknown BootType for OS \"%s\"\n", value);
printf("Press any key to continue\n");
getch();
return;
}
if (stricmp(v, "ReactOS") == 0)
OSList[nNumOS].nOSType = OSTYPE_REACTOS;
else if (stricmp(v, "Linux") == 0)
OSList[nNumOS].nOSType = OSTYPE_LINUX;
else if (stricmp(v, "BootSector") == 0)
OSList[nNumOS].nOSType = OSTYPE_BOOTSECTOR;
else if (stricmp(v, "Partition") == 0)
OSList[nNumOS].nOSType = OSTYPE_PARTITION;
else if (stricmp(v, "Drive") == 0)
OSList[nNumOS].nOSType = OSTYPE_DRIVE;
else
{
printf("Unknown BootType for OS \"%s\"\n", value);
printf("Press any key to continue\n");
getch();
return;
}
nNumOS++;
}
else if(stricmp(setting, "TimeOut") == 0)
nTimeOut = atoi(value);
}

View File

@@ -1,33 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __PARSEINI_H
#define __PARSEINI_H
BOOL ParseIniFile(void);
ULONG GetNextLineOfFileData(PUCHAR Buffer, ULONG BufferSize, ULONG CurrentOffset); // Gets the next line of text (up to BufferSize) after CurrentOffset and returns the offset of the next line
ULONG GetOffsetOfFirstLineOfSection(PUCHAR SectionName); // Returns the offset of the first line in the section or zero if the section wasn't found
ULONG GetNumSectionItems(PUCHAR SectionName); // returns the number of items in a particular section (i.e. [FREELOADER])
BOOL ReadSectionSettingByNumber(PUCHAR SectionName, ULONG SettingNumber, PUCHAR SettingName, PUCHAR SettingValue); // Reads the num'th value from section
BOOL ReadSectionSettingByName(PUCHAR SectionName, PUCHAR SettingName, PUCHAR SettingValue); // Reads the value named name from section
BOOL IsValidSetting(char *setting, char *value);
void SetSetting(char *setting, char *value);
#endif // defined __PARSEINI_H

View File

@@ -1,266 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "asmcode.h"
#include "reactos.h"
#include "stdlib.h"
#include "fs.h"
#include "tui.h"
#include "multiboot.h"
#include "arcname.h"
#include "memory.h"
#include "parseini.h"
BOOL LoadReactOSKernel(PUCHAR OperatingSystemName);
BOOL LoadReactOSDrivers(PUCHAR OperatingSystemName);
void LoadAndBootReactOS(PUCHAR OperatingSystemName)
{
FILE file;
char name[1024];
char value[1024];
char szFileName[1024];
char szBootPath[256];
int i;
int nNumDriverFiles=0;
int nNumFilesLoaded=0;
char MsgBuffer[256];
/*
* Setup multiboot information structure
*/
mb_info.flags = MB_INFO_FLAG_MEM_SIZE | MB_INFO_FLAG_BOOT_DEVICE | MB_INFO_FLAG_COMMAND_LINE | MB_INFO_FLAG_MODULES;
mb_info.mem_lower = GetConventionalMemorySize();
mb_info.mem_upper = GetExtendedMemorySize();
mb_info.boot_device = 0xffffffff;
mb_info.cmdline = (unsigned long)multiboot_kernel_cmdline;
mb_info.mods_count = 0;
mb_info.mods_addr = (unsigned long)multiboot_modules;
mb_info.mmap_length = GetBiosMemoryMap(&multiboot_memory_map);
if (mb_info.mmap_length)
{
mb_info.mmap_addr = (unsigned long)&multiboot_memory_map;
mb_info.flags |= MB_INFO_FLAG_MEMORY_MAP;
//printf("memory map length: %d\n", mb_info.mmap_length);
//printf("dumping memory map:\n");
//for (i=0; i<(mb_info.mmap_length / 4); i++)
//{
// printf("0x%x\n", ((unsigned long *)&multiboot_memory_map)[i]);
//}
//getch();
}
//printf("low_mem = %d\n", mb_info.mem_lower);
//printf("high_mem = %d\n", mb_info.mem_upper);
/*
* Make sure the system path is set in the .ini file
*/
if (!ReadSectionSettingByName(OperatingSystemName, "SystemPath", value))
{
MessageBox("System path not specified for selected operating system.");
return;
}
/*
* Verify system path
*/
if (!DissectArcPath(value, szBootPath, &BootDrive, &BootPartition))
{
sprintf(MsgBuffer,"Invalid system path: '%s'", value);
MessageBox(MsgBuffer);
return;
}
/* set boot drive and partition */
((char *)(&mb_info.boot_device))[0] = (char)BootDrive;
((char *)(&mb_info.boot_device))[1] = (char)BootPartition;
/* copy ARC path into kernel command line */
strcpy(multiboot_kernel_cmdline, value);
/*
* Read the optional kernel parameters (if any)
*/
if (ReadSectionSettingByName(OperatingSystemName, "Options", value))
{
strcat(multiboot_kernel_cmdline, " ");
strcat(multiboot_kernel_cmdline, value);
}
/* append a backslash */
if ((strlen(szBootPath)==0) ||
szBootPath[strlen(szBootPath)] != '\\')
strcat(szBootPath, "\\");
/*
* Find the kernel image name
*/
if(!ReadSectionSettingByName(OperatingSystemName, "Kernel", value))
{
MessageBox("Kernel image file not specified for selected operating system.");
return;
}
DrawBackdrop();
DrawStatusText(" Loading...");
DrawProgressBar(0);
/*
* Try to open boot drive
*/
if (!OpenDiskDrive(BootDrive, BootPartition))
{
MessageBox("Failed to open boot drive.");
return;
}
/*
* Parse the ini file and count the kernel and drivers
*/
for (i=1; i<=GetNumSectionItems(OperatingSystemName); i++)
{
/*
* Read the setting and check if it's a driver
*/
ReadSectionSettingByNumber(OperatingSystemName, i, name, value);
if ((stricmp(name, "Kernel") == 0) || (stricmp(name, "Driver") == 0))
nNumDriverFiles++;
}
/*
* Find the kernel image name
* and try to load the kernel off the disk
*/
if(ReadSectionSettingByName(OperatingSystemName, "Kernel", value))
{
/*
* Set the name and try to open the PE image
*/
strcpy(szFileName, szBootPath);
strcat(szFileName, value);
if (!OpenFile(szFileName, &file))
{
strcat(value, " not found.");
MessageBox(value);
return;
}
/*
* Update the status bar with the current file
*/
strcpy(name, " Reading ");
strcat(name, value);
while (strlen(name) < 80)
strcat(name, " ");
DrawStatusText(name);
/*
* Load the kernel image
*/
MultiBootLoadKernel(&file);
nNumFilesLoaded++;
DrawProgressBar((nNumFilesLoaded * 100) / nNumDriverFiles);
}
/*
* Parse the ini file and load the kernel and
* load all the drivers specified
*/
for (i=1; i<=GetNumSectionItems(OperatingSystemName); i++)
{
/*
* Read the setting and check if it's a driver
*/
ReadSectionSettingByNumber(OperatingSystemName, i, name, value);
if (stricmp(name, "Driver") == 0)
{
/*
* Set the name and try to open the PE image
*/
strcpy(szFileName, szBootPath);
strcat(szFileName, value);
if (!OpenFile(szFileName, &file))
{
strcat(value, " not found.");
MessageBox(value);
return;
}
/*
* Update the status bar with the current file
*/
strcpy(name, " Reading ");
strcat(name, value);
while (strlen(name) < 80)
strcat(name, " ");
DrawStatusText(name);
/*
* Load the driver
*/
MultiBootLoadModule(&file, szFileName);
nNumFilesLoaded++;
DrawProgressBar((nNumFilesLoaded * 100) / nNumDriverFiles);
}
else if (stricmp(name, "MessageBox") == 0)
{
DrawStatusText(" Press ENTER to continue");
MessageBox(value);
}
else if (stricmp(name, "MessageLine") == 0)
MessageLine(value);
else if (stricmp(name, "ReOpenBootDrive") == 0)
{
if (!OpenDiskDrive(BootDrive, BootPartition))
{
MessageBox("Failed to open boot drive.");
return;
}
}
}
/*
* Clear the screen and redraw the backdrop and status bar
*/
DrawBackdrop();
DrawStatusText(" Press any key to boot");
/*
* Wait for user
*/
strcpy(name, "Kernel and Drivers loaded.\nPress any key to boot ");
strcat(name, OperatingSystemName);
strcat(name, ".");
//MessageBox(name);
RestoreScreen(ScreenBuffer);
/*
* Now boot the kernel
*/
stop_floppy();
boot_reactos();
}

View File

@@ -1,27 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __ROSBOOT_H
#define __ROSBOOT_H
void LoadAndBootReactOS(PUCHAR OperatingSystemName);
#endif // defined __ROSBOOT_H

View File

@@ -1,380 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "stdlib.h"
/*
* print() - prints unformatted text to stdout
*/
void print(char *str)
{
int i;
for(i=0; i<strlen(str); i++)
putchar(str[i]);
}
/*
* convert_to_ascii() - converts a number to it's ascii equivalent
* from:
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1996 Erich Boleyn <erich@uruk.org>
*/
char *convert_to_ascii(char *buf, int c, ...)
{
unsigned long num = *((&c) + 1), mult = 10;
char *ptr = buf;
if (c == 'x')
mult = 16;
if ((num & 0x80000000uL) && c == 'd')
{
num = (~num)+1;
*(ptr++) = '-';
buf++;
}
do
{
int dig = num % mult;
*(ptr++) = ( (dig > 9) ? dig + 'a' - 10 : '0' + dig );
}
while (num /= mult);
/* reorder to correct direction!! */
{
char *ptr1 = ptr-1;
char *ptr2 = buf;
while (ptr1 > ptr2)
{
int c = *ptr1;
*ptr1 = *ptr2;
*ptr2 = c;
ptr1--;
ptr2++;
}
}
return ptr;
}
/*
* printf() - prints formatted text to stdout
* from:
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1996 Erich Boleyn <erich@uruk.org>
*/
void printf(char *format, ... )
{
int *dataptr = (int *) &format;
char c, *ptr, str[16];
dataptr++;
while ((c = *(format++)))
{
if (c != '%')
putchar(c);
else
switch (c = *(format++))
{
case 'd': case 'u': case 'x':
*convert_to_ascii(str, c, *((unsigned long *) dataptr++)) = 0;
ptr = str;
while (*ptr)
putchar(*(ptr++));
break;
case 'c': putchar((*(dataptr++))&0xff); break;
case 's':
ptr = (char *)(*(dataptr++));
while ((c = *(ptr++)))
putchar(c);
break;
}
}
}
void sprintf(char *buffer, char *format, ... )
{
int *dataptr = (int *) &format;
char c, *ptr, str[16];
char *p = buffer;
dataptr++;
while ((c = *(format++)))
{
if (c != '%')
{
*p = c;
p++;
}
else
switch (c = *(format++))
{
case 'd': case 'u': case 'x':
*convert_to_ascii(str, c, *((unsigned long *) dataptr++)) = 0;
ptr = str;
while (*ptr)
{
*p = *(ptr++);
p++;
}
break;
case 'c':
*p = (*(dataptr++))&0xff;
p++;
break;
case 's':
ptr = (char *)(*(dataptr++));
while ((c = *(ptr++)))
{
*p = c;
p++;
}
break;
}
}
*p=0;
}
int strlen(char *str)
{
int len;
for(len=0; str[len] != '\0'; len++);
return len;
}
char *itoa(int value, char *string, int radix)
{
if(radix == 16)
*convert_to_ascii(string, 'x', value) = 0;
else
*convert_to_ascii(string, 'd', value) = 0;
return string;
}
int toupper(int c)
{
if((c >= 'a') && (c <= 'z'))
c -= 32;
return c;
}
int tolower(int c)
{
if((c >= 'A') && (c <= 'Z'))
c += 32;
return c;
}
int memcmp(const void *buf1, const void *buf2, size_t count)
{
size_t i;
const char *buffer1 = buf1;
const char *buffer2 = buf2;
for(i=0; i<count; i++)
{
if(buffer1[i] == buffer2[i])
continue;
else
return (buffer1[i] - buffer2[i]);
}
return 0;
}
void *memcpy(void *dest, const void *src, size_t count)
{
size_t i;
char *buf1 = dest;
const char *buf2 = src;
for(i=0; i<count; i++)
buf1[i] = buf2[i];
return dest;
}
void *memset(void *dest, int c, size_t count)
{
size_t i;
char *buf1 = dest;
for(i=0; i<count; i++)
buf1[i] = c;
return dest;
}
char *strcpy(char *dest, char *src)
{
char *ret = dest;
while(*src)
*dest++ = *src++;
*dest = 0;
return ret;
}
char *strcat(char *dest, char *src)
{
char *ret = dest;
while(*dest)
dest++;
while(*src)
*dest++ = *src++;
*dest = 0;
return ret;
}
char *strchr(const char *s, int c)
{
char cc = c;
while (*s)
{
if (*s == cc)
return (char *)s;
s++;
}
if (cc == 0)
return (char *)s;
return 0;
}
int strcmp(const char *string1, const char *string2)
{
while(*string1 == *string2)
{
if(*string1 == 0)
return 0;
string1++;
string2++;
}
return *(unsigned const char *)string1 - *(unsigned const char *)(string2);
}
int stricmp(const char *string1, const char *string2)
{
while(tolower(*string1) == tolower(*string2))
{
if(*string1 == 0)
return 0;
string1++;
string2++;
}
return (int)tolower(*string1) - (int)tolower(*string2);
}
int _strnicmp(const char *string1, const char *string2, size_t length)
{
if (length == 0)
return 0;
do
{
if (toupper(*string1) != toupper(*string2++))
return toupper(*(unsigned const char *)string1) - toupper(*(unsigned const char *)--string2);
if (*string1++ == 0)
break;
}
while (--length != 0);
return 0;
}
char *fgets(char *string, int n, FILE *stream)
{
int i;
for(i=0; i<(n-1); i++)
{
if(feof(stream))
{
i++;
break;
}
ReadFile(stream, 1, string+i);
if(string[i] == '\n')
{
i++;
break;
}
}
string[i] = '\0';
return string;
}
int atoi(char *string)
{
int base;
int result = 0;
char *str;
if((string[0] == '0') && (string[1] == 'x'))
{
base = 16;
str = string + 2;
}
else
{
base = 10;
str = string;
}
while(1)
{
if((*str < '0') || (*str > '9'))
break;
result *= base;
result += (*str - '0');
str++;
}
return result;
}

View File

@@ -1,81 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __STDLIB_H
#define __STDLIB_H
#include "fs.h"
void putchar(int ch); // Implemented in asmcode.S
void clrscr(void); // Implemented in asmcode.S
int kbhit(void); // Implemented in asmcode.S
int getch(void); // Implemented in asmcode.S
void gotoxy(int x, int y); // Implemented in asmcode.S
int getyear(void); // Implemented in asmcode.S
int getday(void); // Implemented in asmcode.S
int getmonth(void); // Implemented in asmcode.S
int gethour(void); // Implemented in asmcode.S
int getminute(void); // Implemented in asmcode.S
int getsecond(void); // Implemented in asmcode.S
void hidecursor(void); // Implemented in asmcode.S
void showcursor(void); // Implemented in asmcode.S
int wherex(void); // Implemented in asmcode.S
int wherey(void); // Implemented in asmcode.S
int strlen(char *str);
char *strcpy(char *dest, char *src);
char *strcat(char *dest, char *src);
char *strchr(const char *s, int c);
int strcmp(const char *string1, const char *string2);
int stricmp(const char *string1, const char *string2);
int _strnicmp(const char *string1, const char *string2, size_t length);
char *itoa(int value, char *string, int radix);
int toupper(int c);
int tolower(int c);
int memcmp(const void *buf1, const void *buf2, size_t count);
void *memcpy(void *dest, const void *src, size_t count);
void *memset(void *dest, int c, size_t count);
char *fgets(char *string, int n, FILE *stream);
int atoi(char *string);
#define ZeroMemory(Destination, Length) memset(Destination, 0, Length)
void print(char *str);
void printf(char *fmt, ...);
void sprintf(char *buffer, char *format, ...);
char *convert_to_ascii(char *buf, int c, ...);
int biosdisk(int cmd, int drive, int head, int track, int sector, int nsects, void *buffer); // Implemented in asmcode.S
void stop_floppy(void); // Implemented in asmcode.S
int get_heads(int drive); // Implemented in asmcode.S
int get_cylinders(int drive); // Implemented in asmcode.S
int get_sectors(int drive); // Implemented in asmcode.S
/* Values for biosdisk() */
#define _DISK_RESET 0 // Unimplemented
#define _DISK_STATUS 1 // Unimplemented
#define _DISK_READ 2 // Reads a sector into memory
#define _DISK_WRITE 3 // Unimplemented
#define _DISK_VERIFY 4 // Unimplemented
#define _DISK_FORMAT 5 // Unimplemented
#endif // defined __STDLIB_H

View File

@@ -1,572 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "stdlib.h"
#include "tui.h"
int nScreenWidth = 80; // Screen Width
int nScreenHeight = 25; // Screen Height
char cStatusBarFgColor = COLOR_BLACK; // Status bar foreground color
char cStatusBarBgColor = COLOR_CYAN; // Status bar background color
char cBackdropFgColor = COLOR_WHITE; // Backdrop foreground color
char cBackdropBgColor = COLOR_BLUE; // Backdrop background color
char cBackdropFillStyle = MEDIUM_FILL; // Backdrop fill style
char cTitleBoxFgColor = COLOR_WHITE; // Title box foreground color
char cTitleBoxBgColor = COLOR_RED; // Title box background color
char cMessageBoxFgColor = COLOR_WHITE; // Message box foreground color
char cMessageBoxBgColor = COLOR_BLUE; // Message box background color
char cMenuFgColor = COLOR_WHITE; // Menu foreground color
char cMenuBgColor = COLOR_BLUE; // Menu background color
char cTextColor = COLOR_YELLOW; // Normal text color
char cSelectedTextColor = COLOR_BLACK; // Selected text color
char cSelectedTextBgColor = COLOR_GRAY; // Selected text background color
char szTitleBoxTitleText[260] = "Boot Menu"; // Title box's title text
char szMessageBoxLineText[4000] = "";
void DrawBackdrop(void)
{
// Fill in the backdrop
FillArea(0, 0, nScreenWidth-1, nScreenHeight-1, cBackdropFillStyle, ATTR(cBackdropFgColor, cBackdropBgColor));
// Draw the title box
DrawBox(1, 1, nScreenWidth, 5, D_VERT, D_HORZ, TRUE, FALSE, ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
// Draw version
DrawText(3, 2, VERSION, ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
// Draw copyright
DrawText(3, 3, "by Brian Palmer", ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
DrawText(3, 4, "<brianp@sginet.com>", ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
// Draw help text
//DrawText(nScreenWidth-15, 4, /*"F1 for Help"*/"F8 for Options", ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
// Draw title
DrawText((nScreenWidth/2)-(strlen(szTitleBoxTitleText)/2), 3, szTitleBoxTitleText, ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
// Draw date
DrawText(nScreenWidth-9, 2, "01/02/03", ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
// Draw time
DrawText(nScreenWidth-9, 3, "10:12:34", ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
// Draw status bar
DrawStatusText("");
// Update the date & time
UpdateDateTime();
}
/*
* FillArea()
* This function assumes coordinates are zero-based
*/
void FillArea(int nLeft, int nTop, int nRight, int nBottom, char cFillChar, char cAttr /* Color Attributes */)
{
char *screen = (char *)SCREEN_MEM;
int i, j;
for(i=nTop; i<=nBottom; i++)
{
for(j=nLeft; j<=nRight; j++)
{
screen[((i*2)*nScreenWidth)+(j*2)] = cFillChar;
screen[((i*2)*nScreenWidth)+(j*2)+1] = cAttr;
}
}
}
/*
* DrawShadow()
* This function assumes coordinates are zero-based
*/
void DrawShadow(int nLeft, int nTop, int nRight, int nBottom)
{
char *screen = (char *)SCREEN_MEM;
int i;
// Shade the bottom of the area
if(nBottom < (nScreenHeight-1))
{
for(i=nLeft+2; i<=nRight; i++)
screen[(((nBottom+1)*2)*nScreenWidth)+(i*2)+1] = ATTR(COLOR_GRAY, COLOR_BLACK);
}
// Shade the right of the area
if(nRight < (nScreenWidth-1))
{
for(i=nTop+1; i<=nBottom; i++)
screen[((i*2)*nScreenWidth)+((nRight+1)*2)+1] = ATTR(COLOR_GRAY, COLOR_BLACK);
}
if(nRight+1 < (nScreenWidth-1))
{
for(i=nTop+1; i<=nBottom; i++)
screen[((i*2)*nScreenWidth)+((nRight+2)*2)+1] = ATTR(COLOR_GRAY, COLOR_BLACK);
}
// Shade the bottom right corner
if((nRight < (nScreenWidth-1)) && (nBottom < (nScreenHeight-1)))
screen[(((nBottom+1)*2)*nScreenWidth)+((nRight+1)*2)+1] = ATTR(COLOR_GRAY, COLOR_BLACK);
if((nRight+1 < (nScreenWidth-1)) && (nBottom < (nScreenHeight-1)))
screen[(((nBottom+1)*2)*nScreenWidth)+((nRight+2)*2)+1] = ATTR(COLOR_GRAY, COLOR_BLACK);
}
/*
* DrawBox()
* This function assumes coordinates are one-based
*/
void DrawBox(int nLeft, int nTop, int nRight, int nBottom, int nVertStyle, int nHorzStyle, int bFill, int bShadow, char cAttr)
{
char cULCorner, cURCorner, cLLCorner, cLRCorner;
char cHorz, cVert;
nLeft--;
nTop--;
nRight--;
nBottom--;
cHorz = nHorzStyle;
cVert = nVertStyle;
if(nHorzStyle == HORZ)
{
if(nVertStyle == VERT)
{
cULCorner = UL;
cURCorner = UR;
cLLCorner = LL;
cLRCorner = LR;
}
else // nVertStyle == D_VERT
{
cULCorner = VD_UL;
cURCorner = VD_UR;
cLLCorner = VD_LL;
cLRCorner = VD_LR;
}
}
else // nHorzStyle == D_HORZ
{
if(nVertStyle == VERT)
{
cULCorner = HD_UL;
cURCorner = HD_UR;
cLLCorner = HD_LL;
cLRCorner = HD_LR;
}
else // nVertStyle == D_VERT
{
cULCorner = D_UL;
cURCorner = D_UR;
cLLCorner = D_LL;
cLRCorner = D_LR;
}
}
// Fill in box background
if(bFill)
FillArea(nLeft, nTop, nRight, nBottom, ' ', cAttr);
// Fill in corners
FillArea(nLeft, nTop, nLeft, nTop, cULCorner, cAttr);
FillArea(nRight, nTop, nRight, nTop, cURCorner, cAttr);
FillArea(nLeft, nBottom, nLeft, nBottom, cLLCorner, cAttr);
FillArea(nRight, nBottom, nRight, nBottom, cLRCorner, cAttr);
// Fill in left line
FillArea(nLeft, nTop+1, nLeft, nBottom-1, cVert, cAttr);
// Fill in top line
FillArea(nLeft+1, nTop, nRight-1, nTop, cHorz, cAttr);
// Fill in right line
FillArea(nRight, nTop+1, nRight, nBottom-1, cVert, cAttr);
// Fill in bottom line
FillArea(nLeft+1, nBottom, nRight-1, nBottom, cHorz, cAttr);
if(bShadow)
DrawShadow(nLeft, nTop, nRight, nBottom);
}
/*
* DrawText()
* This function assumes coordinates are one-based
*/
void DrawText(int nX, int nY, char *text, char cAttr)
{
char *screen = (char *)SCREEN_MEM;
int i, j;
nX--;
nY--;
// Draw the text
for(i=nX, j=0; text[j]; i++,j++)
{
screen[((nY*2)*nScreenWidth)+(i*2)] = text[j];
screen[((nY*2)*nScreenWidth)+(i*2)+1] = cAttr;
}
}
void DrawStatusText(char *text)
{
int i;
DrawText(1, nScreenHeight, text, ATTR(cStatusBarFgColor, cStatusBarBgColor));
for(i=strlen(text)+1; i<=nScreenWidth; i++)
DrawText(i, nScreenHeight, " ", ATTR(cStatusBarFgColor, cStatusBarBgColor));
}
void UpdateDateTime(void)
{
char date[260];
char time[260];
char temp[20];
int hour, minute, second, bPM=FALSE;
switch(getmonth())
{
case 1:
strcpy(date, "January ");
break;
case 2:
strcpy(date, "February ");
break;
case 3:
strcpy(date, "March ");
break;
case 4:
strcpy(date, "April ");
break;
case 5:
strcpy(date, "May ");
break;
case 6:
strcpy(date, "June ");
break;
case 7:
strcpy(date, "July ");
break;
case 8:
strcpy(date, "August ");
break;
case 9:
strcpy(date, "September ");
break;
case 10:
strcpy(date, "October ");
break;
case 11:
strcpy(date, "November ");
break;
case 12:
strcpy(date, "December ");
break;
}
itoa(getday(), temp, 10);
if((getday() == 1) || (getday() == 21) || (getday() == 31))
strcat(temp, "st");
else if((getday() == 2) || (getday() == 22))
strcat(temp, "nd");
else if((getday() == 3) || (getday() == 23))
strcat(temp, "rd");
else
strcat(temp, "th");
strcat(date, temp);
strcat(date, " ");
itoa(getyear(), temp, 10);
strcat(date, temp);
// Draw the date
DrawText(nScreenWidth-strlen(date)-1, 2, date, ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
hour = gethour();
if(hour > 12)
{
hour -= 12;
bPM = TRUE;
}
if (hour == 0)
hour = 12;
minute = getminute();
second = getsecond();
itoa(hour, temp, 10);
strcpy(time, " ");
strcat(time, temp);
strcat(time, ":");
itoa(minute, temp, 10);
if(minute < 10)
strcat(time, "0");
strcat(time, temp);
strcat(time, ":");
itoa(second, temp, 10);
if(second < 10)
strcat(time, "0");
strcat(time, temp);
if(bPM)
strcat(time, " PM");
else
strcat(time, " AM");
// Draw the time
DrawText(nScreenWidth-strlen(time)-1, 3, time, ATTR(cTitleBoxFgColor, cTitleBoxBgColor));
}
void SaveScreen(char *buffer)
{
char *screen = (char *)SCREEN_MEM;
int i;
for(i=0; i < (nScreenWidth * nScreenHeight * 2); i++)
buffer[i] = screen[i];
}
void RestoreScreen(char *buffer)
{
char *screen = (char *)SCREEN_MEM;
int i;
for(i=0; i < (nScreenWidth * nScreenHeight * 2); i++)
screen[i] = buffer[i];
}
void MessageBox(char *text)
{
int width = 8;
int height = 1;
int curline = 0;
int i , j, k;
int x1, x2, y1, y2;
char savebuffer[8000];
char temp[260];
char key;
SaveScreen(savebuffer);
strcat(szMessageBoxLineText, text);
// Find the height
for(i=0; i<strlen(szMessageBoxLineText); i++)
{
if(szMessageBoxLineText[i] == '\n')
height++;
}
// Find the width
for(i=0,j=0,k=0; i<height; i++)
{
while((szMessageBoxLineText[j] != '\n') && (szMessageBoxLineText[j] != 0))
{
j++;
k++;
}
if(k > width)
width = k;
k = 0;
j++;
}
// Calculate box area
x1 = (nScreenWidth - (width+2))/2;
x2 = x1 + width + 3;
y1 = ((nScreenHeight - height - 2)/2) + 1;
y2 = y1 + height + 4;
// Draw the box
DrawBox(x1, y1, x2, y2, D_VERT, D_HORZ, TRUE, TRUE, ATTR(cMessageBoxFgColor, cMessageBoxBgColor));
// Draw the text
for(i=0,j=0; i<strlen(szMessageBoxLineText)+1; i++)
{
if((szMessageBoxLineText[i] == '\n') || (szMessageBoxLineText[i] == 0))
{
temp[j] = 0;
j = 0;
DrawText(x1+2, y1+1+curline, temp, ATTR(cMessageBoxFgColor, cMessageBoxBgColor));
curline++;
}
else
temp[j++] = szMessageBoxLineText[i];
}
// Draw OK button
strcpy(temp, " OK ");
DrawText(x1+((x2-x1)/2)-3, y2-2, temp, ATTR(COLOR_BLACK, COLOR_GRAY));
for(;;)
{
if(kbhit())
{
key = getch();
if(key == KEY_EXTENDED)
key = getch();
if(key == KEY_ENTER)
break;
else if(key == KEY_SPACE)
break;
}
UpdateDateTime();
}
RestoreScreen(savebuffer);
UpdateDateTime();
strcpy(szMessageBoxLineText, "");
}
void MessageLine(char *text)
{
strcat(szMessageBoxLineText, text);
strcat(szMessageBoxLineText, "\n");
}
BOOL IsValidColor(char *color)
{
if(stricmp(color, "Black") == 0)
return TRUE;
else if(stricmp(color, "Blue") == 0)
return TRUE;
else if(stricmp(color, "Green") == 0)
return TRUE;
else if(stricmp(color, "Cyan") == 0)
return TRUE;
else if(stricmp(color, "Red") == 0)
return TRUE;
else if(stricmp(color, "Magenta") == 0)
return TRUE;
else if(stricmp(color, "Brown") == 0)
return TRUE;
else if(stricmp(color, "Gray") == 0)
return TRUE;
else if(stricmp(color, "DarkGray") == 0)
return TRUE;
else if(stricmp(color, "LightBlue") == 0)
return TRUE;
else if(stricmp(color, "LightGreen") == 0)
return TRUE;
else if(stricmp(color, "LightCyan") == 0)
return TRUE;
else if(stricmp(color, "LightRed") == 0)
return TRUE;
else if(stricmp(color, "LightMagenta") == 0)
return TRUE;
else if(stricmp(color, "Yellow") == 0)
return TRUE;
else if(stricmp(color, "White") == 0)
return TRUE;
return FALSE;
}
char TextToColor(char *color)
{
if(stricmp(color, "Black") == 0)
return COLOR_BLACK;
else if(stricmp(color, "Blue") == 0)
return COLOR_BLUE;
else if(stricmp(color, "Green") == 0)
return COLOR_GREEN;
else if(stricmp(color, "Cyan") == 0)
return COLOR_CYAN;
else if(stricmp(color, "Red") == 0)
return COLOR_RED;
else if(stricmp(color, "Magenta") == 0)
return COLOR_MAGENTA;
else if(stricmp(color, "Brown") == 0)
return COLOR_BROWN;
else if(stricmp(color, "Gray") == 0)
return COLOR_GRAY;
else if(stricmp(color, "DarkGray") == 0)
return COLOR_DARKGRAY;
else if(stricmp(color, "LightBlue") == 0)
return COLOR_LIGHTBLUE;
else if(stricmp(color, "LightGreen") == 0)
return COLOR_LIGHTGREEN;
else if(stricmp(color, "LightCyan") == 0)
return COLOR_LIGHTCYAN;
else if(stricmp(color, "LightRed") == 0)
return COLOR_LIGHTRED;
else if(stricmp(color, "LightMagenta") == 0)
return COLOR_LIGHTMAGENTA;
else if(stricmp(color, "Yellow") == 0)
return COLOR_YELLOW;
else if(stricmp(color, "White") == 0)
return COLOR_WHITE;
return COLOR_BLACK;
}
BOOL IsValidFillStyle(char *fill)
{
if(stricmp(fill, "Light") == 0)
return TRUE;
else if(stricmp(fill, "Medium") == 0)
return TRUE;
else if(stricmp(fill, "Dark") == 0)
return TRUE;
return FALSE;
}
char TextToFillStyle(char *fill)
{
if(stricmp(fill, "Light") == 0)
return LIGHT_FILL;
else if(stricmp(fill, "Medium") == 0)
return MEDIUM_FILL;
else if(stricmp(fill, "Dark") == 0)
return DARK_FILL;
return LIGHT_FILL;
}
void DrawProgressBar(int nPos)
{
int left, top, right, bottom;
int width = 50; // Allow for 50 "bars"
int height = 2;
int i;
if(nPos > 100)
nPos = 100;
left = (nScreenWidth - width - 4) / 2;
right = left + width + 3;
top = (nScreenHeight - height - 2) / 2;
top += 4;
bottom = top + height + 1;
// Draw the box
DrawBox(left, top, right, bottom, VERT, HORZ, TRUE, TRUE, ATTR(cMenuFgColor, cMenuBgColor));
// Draw the "Loading..." text
DrawText(70/2, top+1, "Loading...", ATTR(cTextColor, cMenuBgColor));
// Draw the percent complete
for(i=0; i<(nPos/2); i++)
DrawText(left+2+i, top+2, "\xDB", ATTR(cTextColor, cMenuBgColor));
// Draw the rest
for(; i<50; i++)
DrawText(left+2+i, top+2, "\xB2", ATTR(cTextColor, cMenuBgColor));
UpdateDateTime();
}

View File

@@ -1,162 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1999, 2000 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __TUI_H
#define __TUI_H
#define SCREEN_MEM 0xB8000
extern int nScreenWidth; // Screen Width
extern int nScreenHeight; // Screen Height
extern char cStatusBarFgColor; // Status bar foreground color
extern char cStatusBarBgColor; // Status bar background color
extern char cBackdropFgColor; // Backdrop foreground color
extern char cBackdropBgColor; // Backdrop background color
extern char cBackdropFillStyle; // Backdrop fill style
extern char cTitleBoxFgColor; // Title box foreground color
extern char cTitleBoxBgColor; // Title box background color
extern char cMessageBoxFgColor; // Message box foreground color
extern char cMessageBoxBgColor; // Message box background color
extern char cMenuFgColor; // Menu foreground color
extern char cMenuBgColor; // Menu background color
extern char cTextColor; // Normal text color
extern char cSelectedTextColor; // Selected text color
extern char cSelectedTextBgColor; // Selected text background color
extern char szTitleBoxTitleText[260]; // Title box's title text
// Fills the entire screen with a backdrop
void DrawBackdrop(void);
// Fills the area specified with cFillChar and cAttr
void FillArea(int nLeft, int nTop, int nRight, int nBottom, char cFillChar, char cAttr /* Color Attributes */);
// Draws a shadow on the bottom and right sides of the area specified
void DrawShadow(int nLeft, int nTop, int nRight, int nBottom);
// Draws a box around the area specified
void DrawBox(int nLeft, int nTop, int nRight, int nBottom, int nVertStyle, int nHorzStyle, int bFill, int bShadow, char cAttr);
// Draws text at coordinates specified
void DrawText(int nX, int nY, char *text, char cAttr);
// Draws text at the very bottom line on the screen
void DrawStatusText(char *text);
// Updates the date and time
void UpdateDateTime(void);
// Saves the screen so that it can be restored later
void SaveScreen(char *buffer);
// Restores the screen from a previous save
void RestoreScreen(char *buffer);
// Displays a message box on the screen with an ok button
void MessageBox(char *text);
// Adds a line of text to the message box buffer
void MessageLine(char *text);
// Returns true if color is valid
BOOL IsValidColor(char *color);
// Converts the text color into it's equivalent color value
char TextToColor(char *color);
// Returns true if fill is valid
BOOL IsValidFillStyle(char *fill);
// Converts the text fill into it's equivalent fill value
char TextToFillStyle(char *fill);
// Draws the progress bar showing nPos percent filled
void DrawProgressBar(int nPos);
/*
* Combines the foreground and background colors into a single attribute byte
*/
#define ATTR(cFore, cBack) ((cBack << 4)|cFore)
/*
* Fill styles for DrawBackdrop()
*/
#define LIGHT_FILL 0xB0
#define MEDIUM_FILL 0xB1
#define DARK_FILL 0xB2
/*
* Screen colors
*/
#define COLOR_BLACK 0
#define COLOR_BLUE 1
#define COLOR_GREEN 2
#define COLOR_CYAN 3
#define COLOR_RED 4
#define COLOR_MAGENTA 5
#define COLOR_BROWN 6
#define COLOR_GRAY 7
#define COLOR_DARKGRAY 8
#define COLOR_LIGHTBLUE 9
#define COLOR_LIGHTGREEN 10
#define COLOR_LIGHTCYAN 11
#define COLOR_LIGHTRED 12
#define COLOR_LIGHTMAGENTA 13
#define COLOR_YELLOW 14
#define COLOR_WHITE 15
/* Add COLOR_BLINK to a background to cause blinking */
#define COLOR_BLINK 8
/*
* Defines for IBM box drawing characters
*/
#define HORZ (0xc4) /* Single horizontal line */
#define D_HORZ (0xcd) /* Double horizontal line.*/
#define VERT (0xb3) /* Single vertical line */
#define D_VERT (0xba) /* Double vertical line. */
/* Definitions for corners, depending on HORIZ and VERT */
#define UL (0xda)
#define UR (0xbf) /* HORZ and VERT */
#define LL (0xc0)
#define LR (0xd9)
#define D_UL (0xc9)
#define D_UR (0xbb) /* D_HORZ and D_VERT */
#define D_LL (0xc8)
#define D_LR (0xbc)
#define HD_UL (0xd5)
#define HD_UR (0xb8) /* D_HORZ and VERT */
#define HD_LL (0xd4)
#define HD_LR (0xbe)
#define VD_UL (0xd6)
#define VD_UR (0xb7) /* HORZ and D_VERT */
#define VD_LL (0xd3)
#define VD_LR (0xbd)
// Key codes
#define KEY_EXTENDED 0x00
#define KEY_ENTER 0x0D
#define KEY_SPACE 0x20
#define KEY_UP 0x48
#define KEY_DOWN 0x50
#define KEY_LEFT 0x4B
#define KEY_RIGHT 0x4D
#define KEY_ESC 0x1B
#define KEY_F1 0x3B
#define KEY_F2 0x3C
#define KEY_F3 0x3D
#define KEY_F4 0x3E
#define KEY_F5 0x3F
#define KEY_F6 0x40
#define KEY_F7 0x41
#define KEY_F8 0x42
#define KEY_F9 0x43
#define KEY_F10 0x44
#endif // #defined __TUI_H

View File

@@ -1,5 +0,0 @@
cd bootsect
call install.bat
cd..
copy freeldr.sys a:\FREELDR.SYS
copy freeldr.ini a:\FREELDR.INI

View File

@@ -1,18 +0,0 @@
FreeLoader notes
To build FreeLoader you will need DJGPP because Mingw32 doesn't support 16-bit code
FreeLoader does not currently work with extended partitions.
Linux booting support needs to be added.
ext2 filesystem support needs to be added.
Current memory layout:
0000:0000 - 0000:0FFF: Interrupt vector table & BIOS data
0000:1000 - 0000:6FFF: Real mode stack area
0000:7000 - xxxx:xxxx: FreeLoader program & data area
xxxx:xxxx - 6000:0000: Protected mode stack area & heap
6000:0000 - 6000:C000: Filesystem data buffer
6000:C000 - 7000:0000: FREELDR.INI loaded here
7000:0000 - 7000:FFFF: scratch area for any function's use (ie sector buffer for biosdisk()) - can be overwritten by any function
8000:0000 - 9000:FFFF: fat table entry buffer
A000:0000 - FFFF:FFFF: reserved

View File

@@ -1,2 +1,19 @@
dist
errors
reactos
*.sys
*.exe
*.dll
*.cpl
*.a
*.o
*.d
*.coff
*.dsp
*.dsw
*.aps
*.ncb
*.opt
*.sym
*.plg
*.bak
*.zip

View File

@@ -1,7 +1,4 @@
file ntoskrnl/ntoskrnl.nostrip.exe
#add-symbol-file lib/ntdll/ntdll.dll 0x77f61000
#add-symbol-file lib/kernel32/kernel32.dll 0x77f01000
#add-symbol-file apps/exp/exp.exe 0x401000
#add-symbol-file subsys/csrss/csrss.exe 0x401000
#add-symbol-file subsys/smss/smss.exe 0x401000
break exp.c:254
directory /mnt/windows/CvsHome/reactos/ntoskrnl
symbol-file ntoskrnl/ntoskrnl.nostrip.exe -mapped
set remotebaud 115200
target remote com2

File diff suppressed because it is too large Load Diff

View File

@@ -1,39 +1,75 @@
1. Build environment
To build the system you need either mingw32 installed on Windows or a
mingw32 cross compiler running on unix.
To build the system you need either mingw32 installed on Windows or a mingw32
cross compiler running on unix. You may obtain MinGW binaries that build
ReactOS from http://www.reactos.com.
2. Building
To build from Windows run make. To build from unix, edit rules.mak and change
the PREFIX variable to the correct value for your cross-compiler, then run
'make'.
2. Building ReactOS
To build from Windows run 'make' (wihout the quotes) from the top directory.
To build from unix, edit rules.mak and change the PREFIX variable to the
correct value for your cross-compiler, then run 'make'.
3. Installation
Installation isn't yet automated, sorry. The system can only be installed on
the first partition which must be formatted for DOS. Set up a directory
structure like the following
The system can only be installed on the first partition on the first harddisk.
The partition must be formatted as FAT16 or FAT32. The system can only be
started from DOS and not from a Windows DOS-prompt.
make directories C:\reactos,C:\reactos\system32,C:\reactos\system32\drivers
ReactOS can be installed from the source distribution or from the binary
distribution. The two ways to install ReactOS are explained below.
Copy apps/system/shell/shell.exe to C:\reactos\system32
Copy subsys/smss/smss.exe to C:\reactos\system32
Copy apps/system/winlogon/winlogon.exe to C:\reactos\system32
Copy apps/system/services/services.exe to C:\reactos\system32
Copy services/input/keyboard/keyboard.sys to C:\reactos\system32\drivers
Copy services/dd/blue/blue.sys to C:\reactos\system32\drivers
Copy lib/ntdll/ntdll.dll to C:\reactos\system32
Copy lib/kernel32/kernel32.dll to C:\reactos\system32
Copy lib/crtdll/crtdll.dll to C:\reactos\system32
The system can only be started from DOS. Copy the following files,
services/dd/ide/ide.sys, services/fs/vfat/vfatfsd.sys
ntoskrnl/ntoskrnl.exe and loaders/dos/loadros.com, to a suitable
directory, such as C:\. The system can then be booted with the
command 'loadros.com ntoskrnl.exe ide.sys vfatfs.sys'.
3.1 Installation from sources
To install ReactOS after building it, type 'make install'. This will create
the directory 'reactos' in the top directory. Copy this directory to the root
of your first partition on your first harddisk. This is usually c:\ on a
Windows machine.
If you don't want to copy the files manually every time you run a 'make install',
you can specify the directory where the files are to be copied to during
installation.
In rules.mak find the variable INSTALL_DIR and change the assigned value to the
name of the directory where the files are to be copied to. If you are using
Windows this could be:
INSTALL_DIR = c:\reactos
If you are on linux this could be:
INSTALL_DIR = /mnt/windows/reactos
Save the changes to rules.mak and run 'make install' to install the files to
the new location.
3.2 Installation from binany distribution
To install ReactOS from the binary distribution, extract the archive contents
to c:\reactos. Remember to extract the files with full paths.
4. Booting ReactOS
Startup in DOS mode. 'cd' to c:\reactos and type 'boot' and press <enter>.
ReactOS will now boot and when it has booted, you are asked for a username and
password. Just press <enter> twice as ReactOS does not currently have user
validation. A simple shell is started where you can use simple commands like
'cd' and 'dir'.
You may also want to try running the enhanced shell, cmd.exe, found in
the rosapps CVS module. For more information see the doc directory
the rosapps CVS module.
5. Help
If you run into problems or have suggestions for making ReactOS better, please
surf to the address below and subscribe to one or more of the mailing lists.
http://www.reactos.com/index.php?tab=discussion&section=lists
ReactOS Development Team

5
reactos/Jamfile Normal file
View File

@@ -0,0 +1,5 @@
# Main jamfile for ReactOS
SubDir ROS_TOP ;
SubInclude ROS_TOP Lib ;

54
reactos/Jamrules Normal file
View File

@@ -0,0 +1,54 @@
# customization for ReactOS goes here
# The SharedLibrary and SharedLibraryFromObjects rules were
# borrowed from here:
# http://www.differentpla.net/~roger/devel/jam/tutorial/shared_lib/index.html
SUFSHR = .dll ;
RM = rm ; # rm comes with MinGW, and the default del doesn't work in some cases
rule SharedLibrary
{
SharedLibraryFromObjects $(<) : $(>:S=$(SUFOBJ)) ;
Objects $(>) ;
}
rule SharedLibraryFromObjects
{
local _s _t ;
# Add grist to file names
# Add suffix to dll
_s = [ FGristFiles $(>) ] ;
_t = [ FAppendSuffix $(<) : $(SUFSHR) ] ;
if $(_t) != $(<)
{
DEPENDS $(<) : $(_t) ;
NOTFILE $(<) ;
}
# make compiled sources a dependency of target
DEPENDS exe : $(_t) ;
DEPENDS $(_t) : $(_s) ;
MakeLocate $(_t) : $(LOCATE_TARGET) ;
Clean clean : $(_t) ;
Link $(_t) : $(_s) ;
}
# nasm needs to know the output file first, or it doesn't
# recognize -I :(
actions As
{
$(AS) -o $(<) $(ASFLAGS) -I$(HDRS) $(>)
}
AS = nasm ;
# why isn't DEFINES working? :(
#DEFINES += _M_IX86 ;
CCFLAGS += -D_M_IX86 ;

504
reactos/LGPL.txt Normal file
View File

@@ -0,0 +1,504 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +0,0 @@
0.0.14: Converted to PE format
All system libraries are now dlls
0.0.13: Mostly bugfixes (I think)
0.0.12: Added support for multiple processes (not really tested)
System calls
kernel32 now compiles (only as a static library)
Fixed invalid tss bug (hopefully)
Added section support
Added some of the ZwxxxVirtual calls
Added prototype caching functions (only the Minix fsd actually
uses them)
Added handle access and type checking
Prototype APC implementation (no support for user APCs)

View File

@@ -1,13 +1,21 @@
About Reactos
========================
ReactOS Version 0.1.x
Updated March 19th, 2003
========================
1. What is Reactos
1. What is ReactOS?
A project aiming to make an approximate clone of Windows NT, compatible
with most Windows applications.
ReactOS is an Open Source effort to develop a quality operating system
that is compatible with Windows NT applications and drivers.
The project has a website at http://www.reactos.com/
The ReactOS project, although currently focused on Windows NT 4.0
compatibility, is always keeping an eye towards compatibility with
future Windows NT releases, that is, Windows 2000 (NT 5.0) and
Windows XP (NT 5.1).
2. Building Reactos
More information is available at http://www.reactos.com.
2. Building ReactOS
See the INSTALL file for more details.
@@ -17,8 +25,4 @@ See the doc subdirectory for some sparse notes
4. Who is responsible
See the CREDITS file
5. Recent developments
See the NEWS file
See the CREDITS file

3
reactos/aboot.bat Normal file
View File

@@ -0,0 +1,3 @@
loadros system32\ntoskrnl.exe system32\hal.dll system32\drivers\acpi.sys /DEBUGPORT=SCREEN bootc.lst
rem comment added and changed for no reason

View File

@@ -1,33 +0,0 @@
#include <windows.h>
extern int main(int args, char* argv[], char* environ[]);
static unsigned int _argc = 0;
static char** _argv = NULL;
static char** _environ = NULL;
int mainCRTStartup(PWSTR args)
{
int nRet;
// SetUnhandledExceptionFilter(NULL);
// _fpreset();
// __GetMainArgs(&_argc, &_argv, &_environ, 0);
nRet = main(_argc, _argv, _environ);
// _cexit();
ExitProcess(nRet);
}
int WinMainCRTStartup()
{
return mainCRTStartup(NULL);
}
void __main(void)
{
}

View File

@@ -0,0 +1,87 @@
#
# ReactOS test applications makefile
#
PATH_TO_TOP = ../..
include $(PATH_TO_TOP)/rules.mak
# Test applications
# alive apc args atomtest bench bitblt consume copymove count dump_shared_data
# event file gditest hello isotest lpc messagebox mstest mutex nptest
# patblt pteb regtest sectest shm thread vmtest winhello shaptest
TEST_APPS = alive apc args atomtest bench bitblt consume copymove count \
dump_shared_data event file gditest hello isotest lpc messagebox \
mstest mutex event file gditest hello isotest lpc messagebox mstest \
mutex nptest pteb regtest sectest shm thread tokentest vmtest \
winhello dibtest lock hivetest shaptest wm_paint multiwin icontest
TEST_MISC =
all: $(TEST_APPS) $(TEST_MISC)
depends:
implib: $(TEST_APPS:%=%_implib) \
$(TEST_MISC:%=%_implib)
clean: $(TEST_APPS:%=%_clean) \
$(TEST_MISC:%=%_clean)
install: $(TEST_APPS:%=%_install) \
$(TEST_MISC:%=%_install)
dist: $(TEST_APPS:%=%_dist) \
$(TEST_MISC:%=%_dist)
.PHONY: all depends implib clean install dist
#
# Test Applications
#
$(TEST_APPS): %:
$(MAKE) -C $*
$(TEST_APPS:%=%_implib): %_implib:
$(MAKE) -C $* implib
$(TEST_APPS:%=%_clean): %_clean:
$(MAKE) -C $* clean
$(TEST_APPS:%=%_dist): %_dist:
$(MAKE) -C $* dist
$(TEST_APPS:%=%_install): %_install:
$(MAKE) -C $* install
.PHONY: $(TEST_APPS) $(TEST_APPS:%=%_implib) $(TEST_APPS:%=%_clean) $(TEST_APPS:%=%_install) $(TEST_APPS:%=%_dist)
#
# Misc Test Applications
#
$(TEST_MISC): %:
$(MAKE) -C tests/$*
$(TEST_MISC:%=%_implib): %_implib:
$(MAKE) -C tests/$* implib
$(TEST_MISC:%=%_clean): %_clean:
$(MAKE) -C tests/$* clean
$(TEST_MISC:%=%_dist): %_dist:
$(MAKE) -C tests/$* dist
$(TEST_MISC:%=%_install): %_install:
$(MAKE) -C tests/$* install
.PHONY: $(TEST_MISC) $(TEST_MISC:%=%_implib) $(TEST_MISC:%=%_clean) $(TEST_MISC:%=%_install) $(TEST_MISC:%=%_dist)
etags:
find . -name "*.[ch]" -print | etags --language=c -
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,47 +1,21 @@
#
#
#
PATH_TO_TOP=../..
# $Id: Makefile,v 1.6 2002/06/02 19:24:57 chorns Exp $
TARGET_NAME=alive
PATH_TO_TOP = ../../..
OBJECTS=\
$(TARGET_NAME).o
TARGET_NORC = yes
LIBRARIES=\
$(PATH_TO_TOP)/lib/kernel32/kernel32.a\
$(PATH_TO_TOP)/lib/crtdll/crtdll.a\
$(PATH_TO_TOP)/lib/user32/user32.a
TARGET_TYPE = program
PROGS=\
$(TARGET_NAME).exe
TARGET_APPTYPE = console
BASE_CFLAGS = -I$(PATH_TO_TOP)/include
TARGET_NAME = alive
all: $(PROGS)
TARGET_SDKLIBS = kernel32.a user32.a
.phony: all
clean:
- $(RM) $(TARGET_NAME).o $(TARGET_NAME).exe $(TARGET_NAME).sym
.phony: clean
install: $(PROGS:%=$(FLOPPY_DIR)/apps/%)
$(PROGS:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
$(CP) $* $(FLOPPY_DIR)/apps/$*
dist: $(PROGS:%=$(PATH_TO_TOP)/$(DIST_DIR)/apps/%)
$(PROGS:%=$(PATH_TO_TOP)/$(DIST_DIR)/apps/%): $(PATH_TO_TOP)/$(DIST_DIR)/apps/%: %
$(CP) $* $(PATH_TO_TOP)/$(DIST_DIR)/apps/$*
$(TARGET_NAME).exe: $(OBJECTS)
$(CC)\
$(OBJECTS)\
$(LIBRARIES)\
-o $(TARGET_NAME).exe
$(NM) --numeric-sort $(TARGET_NAME).exe > $(TARGET_NAME).sym
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -20,7 +20,7 @@ int main(int argc, char* argv[])
NTSTATUS Status;
HANDLE FileHandle;
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING FileName;
UNICODE_STRING FileName = UNICODE_STRING_INITIALIZER(L"\\C:\\a.txt");
IO_STATUS_BLOCK IoStatus;
CHAR Buffer[256];
HANDLE EventHandle;
@@ -42,8 +42,6 @@ int main(int argc, char* argv[])
}
printf("Opening file\n");
RtlInitUnicodeString(&FileName,
L"\\C:\\a.txt");
InitializeObjectAttributes(&ObjectAttributes,
&FileName,
0,

View File

@@ -1,38 +1,21 @@
#
#
#
PATH_TO_TOP = ../..
# $Id: makefile,v 1.9 2002/06/02 19:24:57 chorns Exp $
CFLAGS = -g
PATH_TO_TOP = ../../..
OBJECTS= apc.o
PROGS= apc.exe
TARGET_NORC = yes
BASE_CFLAGS = -I../../include
LIBS = ../../lib/crtdll/crtdll.a ../../lib/kernel32/kernel32.a \
../../lib/ntdll/ntdll.a
TARGET_TYPE = program
all: $(PROGS)
TARGET_APPTYPE = console
.phony: all
TARGET_NAME = apc
clean:
- $(RM) apc.o apc.exe apc.sym
TARGET_SDKLIBS = ntdll.a kernel32.a
.phony: clean
TARGET_OBJECTS = $(TARGET_NAME).o
install: $(PROGS:%=$(FLOPPY_DIR)/apps/%)
include $(PATH_TO_TOP)/rules.mak
$(PROGS:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
$(CP) $* $(FLOPPY_DIR)/apps/$*
include $(TOOLS_PATH)/helper.mk
dist: $(PROGS:%=../../$(DIST_DIR)/apps/%)
$(PROGS:%=../../$(DIST_DIR)/apps/%): ../../$(DIST_DIR)/apps/%: %
$(CP) $* ../../$(DIST_DIR)/apps/$*
apc.exe: $(OBJECTS) $(LIBS)
$(CC) $(OBJECTS) $(LIBS) -o apc.exe
$(NM) --numeric-sort apc.exe > apc.sym
include ../../rules.mak
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,34 +1,19 @@
#
#
#
PATH_TO_TOP = ../..
# $Id: makefile,v 1.15 2002/06/02 19:24:57 chorns Exp $
OBJECTS= args.o
PROGS= args.exe
PATH_TO_TOP = ../../..
BASE_CFLAGS = -I../../include
TARGET_NORC = yes
all: $(PROGS)
TARGET_TYPE = program
.phony: all
TARGET_APPTYPE = console
clean:
- $(RM) args.o args.exe args.sym
TARGET_NAME = args
.phony: clean
TARGET_OBJECTS = $(TARGET_NAME).o
install: $(PROGS:%=$(FLOPPY_DIR)/apps/%)
include $(PATH_TO_TOP)/rules.mak
$(PROGS:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
$(CP) $* $(FLOPPY_DIR)/apps/$*
include $(TOOLS_PATH)/helper.mk
dist: $(PROGS:%=../../$(DIST_DIR)/apps/%)
$(PROGS:%=../../$(DIST_DIR)/apps/%): ../../$(DIST_DIR)/apps/%: %
$(CP) $* ../../$(DIST_DIR)/apps/$*
args.exe: $(OBJECTS)
$(CC) $(OBJECTS) -o args.exe
$(NM) --numeric-sort args.exe > args.sym
include ../../rules.mak
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,34 +1,21 @@
#
#
#
PATH_TO_TOP = ../..
# $Id: makefile,v 1.5 2002/06/02 19:24:57 chorns Exp $
OBJECTS = atomtest.o
PROGS = atomtest.exe
LIBS = ../../lib/crtdll/crtdll.a ../../lib/kernel32/kernel32.a \
../../lib/ntdll/ntdll.a
PATH_TO_TOP = ../../..
CLEAN_FILES = atomtest.o atomtest.exe
TARGET_NORC = yes
all: atomtest.exe
TARGET_TYPE = program
clean:
- $(RM) $(CLEAN_FILES)
TARGET_APPTYPE = console
.phony: clean
TARGET_NAME = atomtest
install: $(PROGS:%=$(FLOPPY_DIR)/apps/%)
TARGET_SDKLIBS = ntdll.a kernel32.a
$(PROGS:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
$(CP) $* $(FLOPPY_DIR)/apps/$*
TARGET_OBJECTS = $(TARGET_NAME).o
dist: $(PROGS:%=../../$(DIST_DIR)/apps/%)
include $(PATH_TO_TOP)/rules.mak
$(PROGS:%=../../$(DIST_DIR)/apps/%): ../../$(DIST_DIR)/apps/%: %
$(CP) $* ../../$(DIST_DIR)/apps/$*
include $(TOOLS_PATH)/helper.mk
atomtest.exe: $(OBJECTS) $(LIBS)
$(CC) $(OBJECTS) $(LIBS) -o atomtest.exe
$(NM) --numeric-sort atomtest.exe > atomtest.sym
include ../../rules.mak
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,31 +1,21 @@
#
#
#
PATH_TO_TOP = ../..
# $Id: makefile,v 1.10 2002/06/02 19:24:57 chorns Exp $
PROGS = bench-thread
PATH_TO_TOP = ../../..
all: $(PROGS:%=%.exe)
TARGET_NORC = yes
.phony: all
TARGET_TYPE = program
clean:
- $(RM) *.o *.exe *.sym
TARGET_APPTYPE = console
.phony: clean
TARGET_NAME = bench-thread
install: # $(PROGS:%=$(FLOPPY_DIR)/apps/%.exe)
TARGET_SDKLIBS = kernel32.a
$(PROGS:%=$(FLOPPY_DIR)/apps/%.exe): $(FLOPPY_DIR)/apps/%.exe: %.exe
$(CP) $*.exe $(FLOPPY_DIR)/apps/$*.exe
TARGET_OBJECTS = $(TARGET_NAME).o
dist: $(PROGS:%=../../$(DIST_DIR)/apps/%.exe)
include $(PATH_TO_TOP)/rules.mak
$(PROGS:%=../../$(DIST_DIR)/apps/%.exe): ../../$(DIST_DIR)/apps/%.exe: %.exe
$(CP) $*.exe ../../$(DIST_DIR)/apps/$*.exe
include $(TOOLS_PATH)/helper.mk
bench-thread.exe: bench-thread.c
$(CC) $(CFLAGS) bench-thread.c -lkernel32 -o bench-thread.exe
$(NM) --numeric-sort bench-thread.exe > bench-thread.sym
include ../../rules.mak
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -0,0 +1,137 @@
/*
* Windows 2000 Graphics API Black Book
* (BitBlt Bitmap Rendering Demo)
*
* Created by Damon Chandler <dmc27@ee.cornell.edu>
* Updates can be downloaded at: <www.coriolis.com>
*
* Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
* if you have any questions about this code.
*/
#include <windows.h>
HINSTANCE HInst;
const char* WndClassName = "GMainWnd";
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
LPARAM LParam);
int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
{
HInst = HInstance;
WNDCLASS wc;
memset(&wc, 0, sizeof(WNDCLASS));
wc.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
wc.lpfnWndProc = MainWndProc;
wc.hInstance = HInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
/* wc.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_BTNFACE + 1); */
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
wc.lpszClassName = WndClassName;
if (RegisterClass(&wc))
{
HWND HWnd =
CreateWindow(
WndClassName, TEXT("BitBlt Bitmap Rendering Demo"),
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
WS_VISIBLE | WS_CLIPSIBLINGS,
0, 0, 220, 230,
NULL, NULL, HInst, NULL
);
if (HWnd)
{
ShowWindow(HWnd, nCmdShow);
UpdateWindow(HWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
return 0;
}
/* image related */
BITMAP bmp;
LPCSTR filename = TEXT("lena.bmp");
HDC HMemDC = NULL;
HBITMAP HOldBmp = NULL;
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
LPARAM LParam)
{
switch (Msg)
{
case WM_CREATE:
{
/* create a memory DC */
HMemDC = CreateCompatibleDC(NULL);
if (HMemDC)
{
/* load a bitmap from file */
HBITMAP HBmp =
/* static_cast<HBITMAP> */(
LoadImage(HInst, filename, IMAGE_BITMAP,
0, 0, LR_LOADFROMFILE)
);
if (HBmp)
{
/* extract dimensions of the bitmap */
GetObject(HBmp, sizeof(BITMAP), &bmp);
/* associate the bitmap with the memory DC */
/* HOldBmp = static_cast<HBITMAP> */
(SelectObject(HMemDC, HBmp)
);
}
}
}
case WM_PAINT:
{
PAINTSTRUCT ps;
const HDC Hdc = BeginPaint(HWnd, &ps);
#if 0
try
#endif
{
/* TODO: add palette support (see Chapter 9)... */
BitBlt(Hdc, 20, 15,
bmp.bmWidth, bmp.bmHeight,
HMemDC, 0, 0,
SRCCOPY);
}
#if 0
catch (...)
#endif
{
EndPaint(HWnd, &ps);
}
EndPaint(HWnd, &ps);
break;
}
case WM_DESTROY:
{
/* clean up */
DeleteObject(SelectObject(HMemDC, HOldBmp));
DeleteDC(HMemDC);
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(HWnd, Msg, WParam, LParam);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@@ -0,0 +1,20 @@
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = bitblt
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -0,0 +1,6 @@
statst.exe
statst.nostrip.exe
statst.sym
statst.coff
*.d
*.o*.map

View File

@@ -0,0 +1,20 @@
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = buttontst
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -0,0 +1,108 @@
/* Based on Radoslaw Sokol's static control test. */
#include <windows.h>
static LPSTR BUTTON_CLASS = "BUTTON";
static LPSTR TEST_WND_CLASS = "TESTWND";
#ifdef NDEBUG
#define DPRINT(s) (void)0
#else
#define DPRINT(s) OutputDebugStringA("BUTTONTEST: " s "\n")
#endif
HINSTANCE AppInstance = NULL;
LRESULT WmCreate(
HWND Wnd)
{
UCHAR i;
DPRINT("WM_CREATE (enter).");
DPRINT("test 1");
CreateWindowEx(0, BUTTON_CLASS, "PushButton", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE,
10, 10, 150, 30, Wnd, NULL, AppInstance, NULL);
DPRINT("test 2");
CreateWindowEx(0, BUTTON_CLASS, "DefPushButton", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE,
10, 40, 150, 30, Wnd, NULL, AppInstance, NULL);
DPRINT("test 3");
CreateWindowEx(0, BUTTON_CLASS, "AutoRadioButton", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE,
10, 70, 150, 30, Wnd, NULL, AppInstance, NULL);
DPRINT("test 4");
CreateWindowEx(0, BUTTON_CLASS, "AutoCheckBox", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE,
10, 100, 150, 30, Wnd, NULL, AppInstance, NULL);
DPRINT("WM_CREATE (leave).");
return 0;
}
LRESULT CALLBACK TestWndProc(
HWND Wnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam)
{
switch (Msg) {
case WM_CREATE:
return WmCreate(Wnd);
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(Wnd, Msg, wParam, lParam);
}
}
int STDCALL WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
ATOM Result;
MSG Msg;
HWND MainWindow;
WNDCLASSEX TestWndClass = {0};
DPRINT("Application starting up.");
// Remember instance handle.
AppInstance = GetModuleHandle(NULL);
// Register test window class.
TestWndClass.cbSize = sizeof(WNDCLASSEX);
TestWndClass.lpfnWndProc = &TestWndProc;
TestWndClass.hInstance = AppInstance;
TestWndClass.hCursor = LoadCursor(0, IDC_ARROW);
TestWndClass.hbrBackground = CreateSolidBrush(RGB(255,255,230));
TestWndClass.lpszClassName = TEST_WND_CLASS;
Result = RegisterClassEx(&TestWndClass);
if (Result == 0) {
DPRINT("Error registering class.");
MessageBox(0, "Error registering test window class.",
"Button control test", MB_ICONSTOP | MB_OK);
ExitProcess(0);
}
// Create main window.
DPRINT("Creating main window.");
MainWindow = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
TEST_WND_CLASS, "Button test",
WS_OVERLAPPEDWINDOW, 50, 50, 180, 365,
NULL, NULL, AppInstance, NULL);
if (MainWindow == 0) {
DPRINT("Error creating main window.");
UnregisterClass(TEST_WND_CLASS, AppInstance);
MessageBox(0, "Error creating test window.",
"Static control test", MB_ICONSTOP | MB_OK);
ExitProcess(0);
}
DPRINT("Showing main window.");
ShowWindow(MainWindow, SW_SHOWNORMAL);
UpdateWindow(MainWindow);
// Run message loop.
DPRINT("Entering message loop.");
while (GetMessage(&Msg, NULL, 0, 0) > 0) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
// Unregister window class.
UnregisterClass(TEST_WND_CLASS, AppInstance);
DPRINT("Exiting.");
return Msg.wParam;
}

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,31 +1,19 @@
#
#
#
PATH_TO_TOP = ../..
# $Id: Makefile,v 1.7 2002/06/02 19:24:57 chorns Exp $
OBJECTS = consume.o
PROGS = consume.exe
LIBS =
CLEAN_FILES = consume.o consume.exe
PATH_TO_TOP = ../../..
all: consume.exe
TARGET_NORC = yes
clean:
- $(RM) $(CLEAN_FILES)
TARGET_TYPE = program
.phony: clean
TARGET_APPTYPE = console
install: $(PROGS:%=$(FLOPPY_DIR)/apps/%)
TARGET_NAME = consume
$(PROGS:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
$(CP) $* $(FLOPPY_DIR)/apps/$*
TARGET_OBJECTS = $(TARGET_NAME).o
dist: $(PROGS:%=../../$(DIST_DIR)/apps/%)
include $(PATH_TO_TOP)/rules.mak
$(PROGS:%=../../$(DIST_DIR)/apps/%): ../../$(DIST_DIR)/apps/%: %
$(CP) $* ../../$(DIST_DIR)/apps/$*
include $(TOOLS_PATH)/helper.mk
consume.exe: $(OBJECTS)
$(CC) $(OBJECTS) -o consume.exe
include ../../rules.mak
# EOF

View File

@@ -2,7 +2,9 @@
#include <string.h>
#include <windows.h>
ULONG x[(4 * 1024 * 1024) / 4096];
#define SIZE (65*1024*1024)
ULONG x[SIZE / 4096];
int main()
{
@@ -10,7 +12,7 @@ int main()
PUCHAR BaseAddress;
BaseAddress = VirtualAlloc(NULL,
4 * 1024 * 1024,
SIZE,
MEM_COMMIT,
PAGE_READONLY);
if (BaseAddress == NULL)
@@ -19,9 +21,9 @@ int main()
return(1);
}
printf("BaseAddress %p\n", BaseAddress);
for (i = 0; i < ((4 * 1024 * 1024) / 4096); i++)
for (i = 0; i < (SIZE / 4096); i++)
{
printf("%.6x, ", i*4096);
printf("%.8x ", i*4096);
x[i] = BaseAddress[i*4096];
}

View File

@@ -0,0 +1,4 @@
*.o
*.exe
*.sym
*.map

View File

@@ -0,0 +1,19 @@
# $Id: Makefile,v 1.1 2002/12/27 23:54:33 gvg Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = copymove
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -0,0 +1,302 @@
/*
* CopyFile, MoveFile and related routines test
*/
#include <ctype.h>
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
static TCHAR
FindOtherDrive()
{
DWORD drives = GetLogicalDrives();
BOOL found = FALSE;
TCHAR drive;
TCHAR rootdir[] = _T( "?:\\" );
TCHAR currentdir[MAX_PATH + 1];
if (0 != GetCurrentDirectory(MAX_PATH + 1, currentdir)) {
for (drive = _T('A'); ! found && drive <= _T('Z'); drive++) {
if (0 != (drives & (1 << (drive - _T('A'))))&&
drive != _totupper(currentdir[0])) {
rootdir[0] = drive;
found = (DRIVE_FIXED == GetDriveType(rootdir));
}
}
}
return found ? drive - 1 : _T( ' ' );
}
static void
DeleteTestFile(LPCTSTR filename)
{
SetFileAttributes(filename, FILE_ATTRIBUTE_NORMAL);
DeleteFile(filename);
}
static void
CreateTestFile(LPCTSTR filename, DWORD attributes)
{
HANDLE file;
char buffer[4096];
DWORD wrote;
int c;
DeleteTestFile(filename);
file = CreateFile(filename,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
0,
0);
if (INVALID_HANDLE_VALUE == file) {
fprintf(stderr, "CreateFile failed with code %d\n", GetLastError());
exit(1);
}
for(c = 0; c < sizeof(buffer); c++) {
buffer[c] = (char) c;
}
if (! WriteFile(file, buffer, sizeof(buffer), &wrote, NULL)) {
fprintf(stderr, "WriteFile failed with code %d\n", GetLastError());
exit(1);
}
CloseHandle(file);
if (! SetFileAttributes(filename, attributes)) {
fprintf(stderr, "SetFileAttributes failed with code %d\n", GetLastError());
exit(1);
}
}
static void
DeleteTestDir(LPCTSTR dirname)
{
RemoveDirectory(dirname);
}
static void
CreateTestDir(LPCTSTR dirname)
{
if (! CreateDirectory(dirname, NULL)) {
fprintf(stderr, "CreateDirectory failed with code %d\n", GetLastError());
exit(1);
}
}
static void
CheckTestFile(LPCTSTR filename, DWORD attributes)
{
HANDLE file;
char buffer[4096];
DWORD read;
int c;
DWORD diskattr;
file = CreateFile(filename,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
0,
0);
if (INVALID_HANDLE_VALUE == file) {
fprintf(stderr, "CreateFile failed with code %d\n", GetLastError());
exit(1);
}
if (! ReadFile(file, buffer, sizeof(buffer), &read, NULL)) {
fprintf(stderr, "ReadFile failed with code %d\n", GetLastError());
exit(1);
}
if (read != sizeof(buffer)) {
fprintf(stderr, "Trying to read %d bytes but got %d bytes\n", sizeof(buffer), read);
exit(1);
}
for(c = 0; c < sizeof(buffer); c++) {
if (buffer[c] != (char) c) {
fprintf(stderr, "File contents changed at position %d\n", c);
exit(1);
}
}
CloseHandle(file);
diskattr = GetFileAttributes(filename);
if (INVALID_FILE_ATTRIBUTES == diskattr) {
fprintf(stderr, "GetFileAttributes failed with code %d\n", GetLastError());
exit(1);
}
if (diskattr != attributes) {
fprintf(stderr, "Attribute mismatch, expected 0x%08x found 0x%08x\n", attributes, diskattr);
exit(1);
}
}
int
main(int argc, char *argv[])
{
TCHAR otherdrive;
TCHAR otherfile[ ] = _T("?:\\other.dat");
otherdrive = FindOtherDrive();
printf("Testing simple move\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(_T("end.dat"));
if (! MoveFile(_T("begin.dat"), _T("end.dat"))) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(_T("end.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(_T("end.dat"));
printf("Testing move of non-existing file\n");
DeleteTestFile(_T("begin.dat"));
DeleteTestFile(_T("end.dat"));
if (MoveFile(_T("begin.dat"), _T("end.dat"))) {
fprintf(stderr, "MoveFile succeeded but shouldn't have\n");
exit(1);
} else if (ERROR_FILE_NOT_FOUND != GetLastError()) {
fprintf(stderr, "MoveFile failed with unexpected code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(_T("end.dat"));
/* Not correctly implemented in ros, destination file is kept open after this */
#if 0
printf("Testing move to existing file\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
CreateTestFile(_T("end.dat"), FILE_ATTRIBUTE_ARCHIVE);
if (MoveFile(_T("begin.dat"), _T("end.dat"))) {
fprintf(stderr, "MoveFile succeeded but shouldn't have\n");
exit(1);
} else if (ERROR_ALREADY_EXISTS != GetLastError()) {
fprintf(stderr, "MoveFile failed with unexpected code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(_T("begin.dat"));
DeleteTestFile(_T("end.dat"));
#endif
/* Not implemented yet in ros */
#if 0
printf("Testing directory move\n");
CreateTestDir(_T("begin"));
CreateTestFile(_T("begin\\file.dat"), FILE_ATTRIBUTE_NORMAL);
DeleteTestDir(_T("end"));
if (! MoveFile(_T("begin"), _T("end"))) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(_T("end\\file.dat"), FILE_ATTRIBUTE_NORMAL);
DeleteTestFile(_T("end\\file.dat"));
DeleteTestDir(_T("end"));
#endif
printf("Testing file move to different directory\n");
CreateTestFile(_T("file.dat"), FILE_ATTRIBUTE_NORMAL);
CreateTestDir(_T("end"));
if (! MoveFile(_T("file.dat"), _T("end\\file.dat"))) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(_T("end\\file.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(_T("end\\file.dat"));
DeleteTestDir(_T("end"));
printf("Testing move of read-only file\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_READONLY);
DeleteTestFile(_T("end.dat"));
if (! MoveFile(_T("begin.dat"), _T("end.dat"))) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(_T("end.dat"), FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_READONLY);
DeleteTestFile(_T("end.dat"));
printf("Testing move to different drive\n");
if (_T(' ') != otherdrive) {
otherfile[0] = otherdrive;
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
if (! MoveFile(_T("begin.dat"), otherfile)) {
fprintf(stderr, "MoveFile failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(otherfile, FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
} else {
printf(" Test skipped, no other drive available\n");
}
printf("Testing move/overwrite of existing file\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
CreateTestFile(_T("end.dat"), FILE_ATTRIBUTE_ARCHIVE);
if (! MoveFileEx(_T("begin.dat"), _T("end.dat"), MOVEFILE_REPLACE_EXISTING)) {
fprintf(stderr, "MoveFileEx failed with code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(_T("begin.dat"));
DeleteTestFile(_T("end.dat"));
/* Not (correctly) implemented in ros yet */
#if 0
printf("Testing move/overwrite of existing readonly file\n");
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
CreateTestFile(_T("end.dat"), FILE_ATTRIBUTE_READONLY);
if (MoveFileEx(_T("begin.dat"), _T("end.dat"), MOVEFILE_REPLACE_EXISTING)) {
fprintf(stderr, "MoveFileEx succeeded but shouldn't have\n");
exit(1);
} else if (ERROR_ALREADY_EXISTS != GetLastError() &&
ERROR_ACCESS_DENIED != GetLastError()) {
fprintf(stderr, "MoveFileEx failed with unexpected code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(_T("begin.dat"));
DeleteTestFile(_T("end.dat"));
#endif
/* Not implemented in ros yet */
#if 0
printf("Testing move to different drive without COPY_ALLOWED\n");
if (_T(' ') != otherdrive) {
otherfile[0] = otherdrive;
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
if (MoveFileEx(_T("begin.dat"), otherfile, 0)) {
fprintf(stderr, "MoveFileEx succeeded but shouldn't have\n");
exit(1);
} else if (ERROR_NOT_SAME_DEVICE != GetLastError()) {
fprintf(stderr, "MoveFileEx failed with unexpected code %d\n", GetLastError());
exit(1);
}
DeleteTestFile(otherfile);
} else {
printf(" Test skipped, no other drive available\n");
}
#endif
printf("Testing move to different drive with COPY_ALLOWED\n");
if (_T(' ') != otherdrive) {
otherfile[0] = otherdrive;
CreateTestFile(_T("begin.dat"), FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
if (! MoveFileEx(_T("begin.dat"), otherfile, MOVEFILE_COPY_ALLOWED)) {
fprintf(stderr, "MoveFileEx failed with code %d\n", GetLastError());
exit(1);
}
CheckTestFile(otherfile, FILE_ATTRIBUTE_ARCHIVE);
DeleteTestFile(otherfile);
} else {
printf(" Test skipped, no other drive available\n");
}
printf("All tests successfully completed\n");
return 0;
}

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,47 +1,21 @@
#
#
#
PATH_TO_TOP=../..
# $Id: Makefile,v 1.6 2002/06/02 19:24:58 chorns Exp $
TARGET_NAME=count
PATH_TO_TOP = ../../..
OBJECTS=\
$(TARGET_NAME).o
TARGET_NORC = yes
LIBRARIES=\
$(PATH_TO_TOP)/lib/kernel32/kernel32.a\
$(PATH_TO_TOP)/lib/crtdll/crtdll.a\
$(PATH_TO_TOP)/lib/user32/user32.a
TARGET_TYPE = program
PROGS=\
$(TARGET_NAME).exe
TARGET_APPTYPE = console
BASE_CFLAGS = -I$(PATH_TO_TOP)/include
TARGET_NAME = count
all: $(PROGS)
TARGET_SDKLIBS = kernel32.a user32.a
.phony: all
clean:
- $(RM) $(TARGET_NAME).o $(TARGET_NAME).exe $(TARGET_NAME).sym
.phony: clean
install: $(PROGS:%=$(FLOPPY_DIR)/apps/%)
$(PROGS:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
$(CP) $* $(FLOPPY_DIR)/apps/$*
dist: $(PROGS:%=$(PATH_TO_TOP)/$(DIST_DIR)/apps/%)
$(PROGS:%=$(PATH_TO_TOP)/$(DIST_DIR)/apps/%): $(PATH_TO_TOP)/$(DIST_DIR)/apps/%: %
$(CP) $* $(PATH_TO_TOP)/$(DIST_DIR)/apps/$*
$(TARGET_NAME).exe: $(OBJECTS)
$(CC)\
$(OBJECTS)\
$(LIBRARIES)\
-o $(TARGET_NAME).exe
$(NM) --numeric-sort $(TARGET_NAME).exe > $(TARGET_NAME).sym
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -0,0 +1,196 @@
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#define CELL_SIZE 10
static RGBQUAD Colors[] =
{
{ 0x00, 0x00, 0x00, 0x00 }, // black
{ 0x00, 0x00, 0x80, 0x00 }, // red
{ 0x00, 0x80, 0x00, 0x00 }, // green
{ 0x00, 0x80, 0x80, 0x00 }, // brown
{ 0x80, 0x00, 0x00, 0x00 }, // blue
{ 0x80, 0x00, 0x80, 0x00 }, // magenta
{ 0x80, 0x80, 0x00, 0x00 }, // cyan
{ 0x80, 0x80, 0x80, 0x00 }, // dark gray
{ 0xc0, 0xc0, 0xc0, 0x00 }, // light gray
{ 0x00, 0x00, 0xFF, 0x00 }, // bright red
{ 0x00, 0xFF, 0x00, 0x00 }, // bright green
{ 0x00, 0xFF, 0xFF, 0x00 }, // bright yellow
{ 0xFF, 0x00, 0x00, 0x00 }, // bright blue
{ 0xFF, 0x00, 0xFF, 0x00 }, // bright magenta
{ 0xFF, 0xFF, 0x00, 0x00 }, // bright cyan
{ 0xFF, 0xFF, 0xFF, 0x00 } // bright white
};
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI
WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HWND hWnd;
wc.lpszClassName = "DibTestClass";
wc.lpfnWndProc = MainWndProc;
wc.style = CS_VREDRAW | CS_HREDRAW;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wc.lpszMenuName = NULL;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
if (RegisterClass(&wc) == 0)
{
fprintf(stderr, "RegisterClass failed (last error 0x%X)\n",
GetLastError());
return(1);
}
hWnd = CreateWindow("DibTestClass",
"DIB Test",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
25 * CELL_SIZE + 5,
25 * CELL_SIZE + 20,
NULL,
NULL,
hInstance,
NULL);
if (hWnd == NULL)
{
fprintf(stderr, "CreateWindow failed (last error 0x%X)\n",
GetLastError());
return(1);
}
ShowWindow(hWnd, nCmdShow);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
static void PaintCells(HDC WindowDC, WORD BitCount1, WORD BitCount2,
int XDest, int YDest)
{
HBRUSH Brush;
RECT Rect;
UINT row, col;
BITMAPINFO *BitmapInfo;
HBITMAP DIB1, DIB2;
HDC DC1, DC2;
BitmapInfo = malloc(sizeof(BITMAPINFO) + 15 * sizeof(RGBQUAD));
BitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
BitmapInfo->bmiHeader.biWidth = 4 * CELL_SIZE + 9;
BitmapInfo->bmiHeader.biHeight = -(4 * CELL_SIZE + 9); // it's top down (since BI_RGB is used, the sign is operative of direction)
BitmapInfo->bmiHeader.biPlanes = 1;
BitmapInfo->bmiHeader.biBitCount = BitCount1;
BitmapInfo->bmiHeader.biCompression = BI_RGB;
BitmapInfo->bmiHeader.biSizeImage = 0;
BitmapInfo->bmiHeader.biXPelsPerMeter = 0;
BitmapInfo->bmiHeader.biYPelsPerMeter = 0;
BitmapInfo->bmiHeader.biClrUsed = 16;
BitmapInfo->bmiHeader.biClrImportant = 16;
for (col = 0; col < 16; col++) {
BitmapInfo->bmiColors[col] = Colors[col];
}
DIB1 = CreateDIBSection(NULL, BitmapInfo, DIB_RGB_COLORS, NULL, NULL, 0);
DC1 = CreateCompatibleDC(NULL);
SelectObject(DC1, DIB1);
BitmapInfo->bmiHeader.biBitCount = BitCount2;
DIB2 = CreateDIBSection(NULL, BitmapInfo, DIB_RGB_COLORS, NULL, NULL, 0);
DC2 = CreateCompatibleDC(NULL);
SelectObject(DC2, DIB2);
free(BitmapInfo);
/* Now paint on the first bitmap */
for (row = 0; row < 4; row++)
{
for (col = 0; col < 4; col++)
{
Brush = CreateSolidBrush(RGB(Colors[4 * row + col].rgbRed,
Colors[4 * row + col].rgbGreen,
Colors[4 * row + col].rgbBlue));
Rect.left = CELL_SIZE * col + 5;
Rect.top = CELL_SIZE * row + 5;
Rect.right = Rect.left + CELL_SIZE;
Rect.bottom = Rect.top + CELL_SIZE;
FillRect(DC1, &Rect, Brush);
DeleteObject(Brush);
}
}
/* Copy the first bitmap to the second */
BitBlt(DC2, 4, 4, 4 * CELL_SIZE, 4 * CELL_SIZE, DC1, 5, 5, SRCCOPY);
/* Show results on screen */
BitBlt(WindowDC, XDest, YDest, 4 * CELL_SIZE, 4 * CELL_SIZE, DC2, 4, 4, SRCCOPY);
}
LRESULT CALLBACK MainWndProc(HWND Wnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC WindowDC;
switch(msg)
{
case WM_PAINT:
WindowDC = BeginPaint(Wnd, &ps);
PaintCells(WindowDC, 4, 4, 0, 0);
PaintCells(WindowDC, 4, 8, 5 * CELL_SIZE, 0);
PaintCells(WindowDC, 4, 16, 10 * CELL_SIZE, 0);
PaintCells(WindowDC, 4, 24, 15 * CELL_SIZE, 0);
PaintCells(WindowDC, 4, 32, 20 * CELL_SIZE, 0);
PaintCells(WindowDC, 8, 4, 0, 5 * CELL_SIZE);
PaintCells(WindowDC, 8, 8, 5 * CELL_SIZE, 5 * CELL_SIZE);
PaintCells(WindowDC, 8, 16, 10 * CELL_SIZE, 5 * CELL_SIZE);
PaintCells(WindowDC, 8, 24, 15 * CELL_SIZE, 5 * CELL_SIZE);
PaintCells(WindowDC, 8, 32, 20 * CELL_SIZE, 5 * CELL_SIZE);
PaintCells(WindowDC, 16, 4, 0, 10 * CELL_SIZE);
PaintCells(WindowDC, 16, 8, 5 * CELL_SIZE, 10 * CELL_SIZE);
PaintCells(WindowDC, 16, 16, 10 * CELL_SIZE, 10 * CELL_SIZE);
PaintCells(WindowDC, 16, 24, 15 * CELL_SIZE, 10 * CELL_SIZE);
PaintCells(WindowDC, 16, 32, 20 * CELL_SIZE, 10 * CELL_SIZE);
PaintCells(WindowDC, 24, 4, 0, 15 * CELL_SIZE);
PaintCells(WindowDC, 24, 8, 5 * CELL_SIZE, 15 * CELL_SIZE);
PaintCells(WindowDC, 24, 16, 10 * CELL_SIZE, 15 * CELL_SIZE);
PaintCells(WindowDC, 24, 24, 15 * CELL_SIZE, 15 * CELL_SIZE);
PaintCells(WindowDC, 24, 32, 20 * CELL_SIZE, 15 * CELL_SIZE);
PaintCells(WindowDC, 32, 4, 0, 20 * CELL_SIZE);
PaintCells(WindowDC, 32, 8, 5 * CELL_SIZE, 20 * CELL_SIZE);
PaintCells(WindowDC, 32, 16, 10 * CELL_SIZE, 20 * CELL_SIZE);
PaintCells(WindowDC, 32, 24, 15 * CELL_SIZE, 20 * CELL_SIZE);
PaintCells(WindowDC, 32, 32, 20 * CELL_SIZE, 20 * CELL_SIZE);
EndPaint(Wnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(Wnd, msg, wParam, lParam);
}
return 0;
}

View File

@@ -0,0 +1,21 @@
# $Id: makefile,v 1.2 2003/03/04 10:09:00 gvg Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = dibtest
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,9 +1,51 @@
#include <stdio.h>
#include <ntddk.h>
#include <napi/shared_data.h>
int main()
{
printf("TickCountLow: %x\n",
((PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE)->TickCountLow);
int i;
printf("TickCountLow: %x\n",
SharedUserData->TickCountLow);
printf("Drives: ");
for (i = 0; i < 26; i++)
{
printf("%c", (SharedUserData->DosDeviceMap & (1 << i))?'1':'0');
}
printf("\n");
for (i = 0; i < 26; i++)
{
if (SharedUserData->DosDeviceMap & (1 << i))
{
printf("%c: ", 'A'+i);
switch(SharedUserData->DosDeviceDriveType[i])
{
case DOSDEVICE_DRIVE_UNKNOWN:
printf("Unknown\n");
break;
case DOSDEVICE_DRIVE_CALCULATE:
printf("No root\n");
break;
case DOSDEVICE_DRIVE_REMOVABLE:
printf("Removable\n");
break;
case DOSDEVICE_DRIVE_FIXED:
printf("Fixed\n");
break;
case DOSDEVICE_DRIVE_REMOTE:
printf("Remote\n");
break;
case DOSDEVICE_DRIVE_CDROM:
printf("CD-ROM\n");
break;
case DOSDEVICE_DRIVE_RAMDISK:
printf("Ram disk\n");
break;
default:
printf("undefined type\n");
break;
}
}
}
printf("\n\n");
}

View File

@@ -1,32 +1,20 @@
#
#
#
PATH_TO_TOP = ../..
# $Id: makefile,v 1.6 2002/06/02 19:24:58 chorns Exp $
OBJECTS = dump_shared_data.o
PROGS = dump_shared_data.exe
LIBS =
CLEAN_FILES = dump_shared_data.o dump_shared_data.exe
PATH_TO_TOP = ../../..
all: dump_shared_data.exe
TARGET_NORC = yes
clean:
- $(RM) $(CLEAN_FILES)
TARGET_TYPE = program
.phony: clean
TARGET_APPTYPE = console
floppy: $(PROGS:%=$(FLOPPY_DIR)/apps/%)
TARGET_NAME = dump_shared_data
$(PROGS:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
$(CP) $* $(FLOPPY_DIR)/apps/$*
TARGET_OBJECTS = $(TARGET_NAME).o
dist: $(PROGS:%=../../$(DIST_DIR)/apps/%)
include $(PATH_TO_TOP)/rules.mak
$(PROGS:%=../../$(DIST_DIR)/apps/%): ../../$(DIST_DIR)/apps/%: %
$(CP) $* ../../$(DIST_DIR)/apps/$*
include $(TOOLS_PATH)/helper.mk
dump_shared_data.exe: $(OBJECTS)
$(CC) $(OBJECTS) -o dump_shared_data.exe
# EOF
BASE_CFLAGS = -I../../include
include ../../rules.mak

View File

@@ -0,0 +1,82 @@
#include <windows.h>
#include <stdio.h>
HFONT tf;
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI
WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HWND hWnd;
HWND hWnd2;
wc.lpfnWndProc = MainWndProc;
wc.style = CS_VREDRAW | CS_HREDRAW;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
wc.lpszMenuName = NULL;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
if (RegisterClass(&wc) == 0)
{
fprintf(stderr, "RegisterClass failed (last error 0x%X)\n",
GetLastError());
return(1);
}
hWnd = CreateWindow("EDIT",
"Edit Control Test",
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
0,
0,
320,
240,
NULL,
NULL,
hInstance,
NULL);
if (!hWnd)
{
fprintf(stderr, "CreateWindow failed (last error 0x%X)\n",
GetLastError());
return(1);
}
ShowWindow(hWnd, nCmdShow);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hDC;
switch(msg)
{
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}

View File

@@ -0,0 +1,20 @@
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = windows
TARGET_NAME = edit-control
TARGET_SDKLIBS = kernel32.a gdi32.a
TARGET_OBJECTS = edit.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,31 +1,21 @@
#
#
#
PATH_TO_TOP = ../..
# $Id: makefile,v 1.7 2002/06/02 19:24:58 chorns Exp $
PROGS = event
PATH_TO_TOP = ../../..
all: $(PROGS:%=%.exe)
TARGET_NORC = yes
.phony: all
TARGET_TYPE = program
clean:
- $(RM) *.o *.exe *.sym
TARGET_APPTYPE = console
.phony: clean
TARGET_NAME = event
install: # $(PROGS:%=$(FLOPPY_DIR)/apps/%.exe)
TARGET_SDKLIBS = kernel32.a
$(PROGS:%=$(FLOPPY_DIR)/apps/%.exe): $(FLOPPY_DIR)/apps/%.exe: %.exe
$(CP) $*.exe $(FLOPPY_DIR)/apps/$*.exe
TARGET_OBJECTS = $(TARGET_NAME).o
dist: $(PROGS:%=../../$(DIST_DIR)/apps/%.exe)
include $(PATH_TO_TOP)/rules.mak
$(PROGS:%=../../$(DIST_DIR)/apps/%.exe): ../../$(DIST_DIR)/apps/%.exe: %.exe
$(CP) $*.exe ../../$(DIST_DIR)/apps/$*.exe
include $(TOOLS_PATH)/helper.mk
event.exe: event.c
$(CC) $(CFLAGS) event.c -lkernel32 -o event.exe
$(NM) --numeric-sort event.exe > event.sym
include ../../rules.mak
# EOF

View File

@@ -0,0 +1,6 @@
*.o
*.d
*.exe
*.coff
*.sym
*.map

View File

@@ -1,43 +1,19 @@
#
#
#
PATH_TO_TOP = ../..
OBJECTS= file.o
PROGS= file.exe
BASE_CFLAGS = -I../../include
all: $(PROGS)
.phony: all
clean:
- $(RM) file.o file.exe file.sym
.phony: clean
install: $(PROGS:%=$(FLOPPY_DIR)/apps/%)
$(PROGS:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: %
$(CP) $* $(FLOPPY_DIR)/apps/$*
dist: $(PROGS:%=../../$(DIST_DIR)/apps/%)
$(PROGS:%=../../$(DIST_DIR)/apps/%): ../../$(DIST_DIR)/apps/%: %
$(CP) $* ../../$(DIST_DIR)/apps/$*
file.exe: $(OBJECTS)
$(CC) $(OBJECTS) $(BASE_CFLAGS) -o file.exe
$(NM) --numeric-sort file.exe > file.sym
include ../../rules.mak
# $Id: Makefile,v 1.8 2002/06/02 19:24:58 chorns Exp $
PATH_TO_TOP = ../../..
TARGET_NORC = yes
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_NAME = file
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,39 +0,0 @@
/***********************************************************
* File read/write test utility *
**********************************************************/
#include <windows.h>
#include <iostream>
#include <stdlib.h>
int main( void )
{
HANDLE file = CreateFile( "test.dat", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0 );
char buffer[4096];
if( file == INVALID_HANDLE_VALUE )
{
FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), 0, buffer, 4096, NULL );
cout << "Error opening file: " << buffer << endl;
return 1;
}
DWORD wrote;
for( int c = 0; c < 1024; c++ )
if( WriteFile( file, buffer, 4096, &wrote, NULL ) == FALSE )
{
FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), 0, buffer, 4096, NULL );
cout << "Error writing file: " << buffer << endl;
exit(2);
}
cout << "File written, trying to read now" << endl;
for( int c = 0; c < 1024; c++ )
if( ReadFile( file, buffer, 4096, &wrote, NULL ) == FALSE )
{
FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), 0, buffer, 4096, NULL );
cout << "Error reading file: " << buffer << endl;
exit(3);
}
cout << "Test passed" << endl;
return 0;
}

Some files were not shown because too many files have changed in this diff Show More