Compare commits

...

2942 Commits

Author SHA1 Message Date
The ReactOS Team
0eb7587ce9 This commit was manufactured by cvs2svn to create branch 'DBXSL'.
svn path=/branches/DBXSL/; revision=3065
2002-06-13 20:29:51 +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
Steven Edwards
d4d6b6dbf7 Initial revision
svn path=/trunk/; revision=2400
2001-11-28 01:37:59 +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
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
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
Eric Kohl
7e4a551cd5 Added .cvsignore
svn path=/trunk/; revision=2135
2001-08-02 08:09:11 +00:00
Hartmut Birr
5e85eb7d8e Fixed a minor bug in _filbuf().
When there was returned a character from stream,
the counter wasn't decremented.

svn path=/trunk/; revision=2134
2001-08-02 07:26:30 +00:00
Hartmut Birr
f1a3075ad7 Fixed a bug in FindFirstFileW() and FindNextFileW().
The lengs of the copied strings was wrong.

svn path=/trunk/; revision=2133
2001-08-01 19:26:41 +00:00
Emanuele Aliberti
a798ec1a86 I added a rule for .cpp source files.
svn path=/trunk/; revision=2132
2001-08-01 17:40:02 +00:00
Hartmut Birr
130bddfe9f Fixed a bug in vfatGetNextDirEntry().
A valid file name was generated from a deleted LFN entry.
An overrun occurred, when a directory has more then 19 deleted LFN entries.

svn path=/trunk/; revision=2131
2001-08-01 15:59:24 +00:00
Eric Kohl
cad3eb8c42 Added CMOS configuration space handler.
svn path=/trunk/; revision=2130
2001-08-01 10:39:50 +00:00
Hartmut Birr
4032632974 Fixed a minor bug in vfat8Dot3ToString,
that expands a short name from 'test.x' to 'test.x  '.

svn path=/trunk/; revision=2129
2001-08-01 10:12:33 +00:00
Emanuele Aliberti
7034b49d22 \t processing in SCREEN_BUFFER bugged.
Partial fix.

svn path=/trunk/; revision=2128
2001-07-31 20:47:44 +00:00
Emanuele Aliberti
d87b450266 Removed the bugged conio.c:ComputeOffsetBuffer()
(Phillip noted it). Restored the inline offset
computation in conio.c:CsrpWriteConsole().
Added \t and \r processing in conio.c:CsrpWriteConsole()
which leads to formatted SCREEN_BUFFERS to
be restored when you switch console.
Please test it.

svn path=/trunk/; revision=2127
2001-07-31 20:28:43 +00:00
Emanuele Aliberti
a44f8b0d7a Little CsrpWriteConsole() cleanup.
(WIP) Restoring a non active screen buffer is bugged:
control characters are NOT processed.

svn path=/trunk/; revision=2126
2001-07-30 11:56:54 +00:00
Emanuele Aliberti
e439100646 Minor changes.
svn path=/trunk/; revision=2125
2001-07-30 11:50:44 +00:00
Emanuele Aliberti
aaa8d41666 \r processing.
svn path=/trunk/; revision=2124
2001-07-30 11:49:38 +00:00
Rex Jolliff
fe1d0d581a some changes to support loading actual drivers
svn path=/trunk/; revision=2123
2001-07-30 03:05:30 +00:00
Rex Jolliff
5d5aba0812 added rdel to all rule
svn path=/trunk/; revision=2122
2001-07-30 01:02:51 +00:00
Eric Kohl
f478c3bb18 Major npfs update, missing typedefs.
svn path=/trunk/; revision=2121
2001-07-29 23:52:49 +00:00
Eric Kohl
8d40c0f964 Fixed more %Z / %wZ bugs.
svn path=/trunk/; revision=2120
2001-07-29 16:47:11 +00:00
Eric Kohl
a305fad232 Fixed msvcrt startup bug.
svn path=/trunk/; revision=2119
2001-07-29 16:42:35 +00:00
Eric Kohl
a600af1a27 Major npfs update.
svn path=/trunk/; revision=2118
2001-07-29 16:41:25 +00:00
Eric Kohl
ab405511d9 Fixed buggy 'install' rule.
svn path=/trunk/; revision=2117
2001-07-29 16:39:12 +00:00
Hartmut Birr
4ae9a4b859 Fixed a bug in _vsnprintf() with formats %wZ and %Z.
svn path=/trunk/; revision=2116
2001-07-29 12:42:40 +00:00
Phillip Susi
0d7487a18c Removed non existant header file include so it will compile
svn path=/trunk/; revision=2115
2001-07-28 15:24:04 +00:00
Emanuele Aliberti
ab529dfd67 Fixed makefile (missing specs).
svn path=/trunk/; revision=2114
2001-07-28 14:46:27 +00:00
Hartmut Birr
818f6c4bfc Fixed a bug FsdGetFsVolumeInformation().
The returned length was wrong.

svn path=/trunk/; revision=2113
2001-07-28 10:12:36 +00:00
Emanuele Aliberti
920ae420ee Make gditest draw a background.
Mostly PR to show we can do graphics...

svn path=/trunk/; revision=2112
2001-07-28 10:05:36 +00:00
Emanuele Aliberti
2f5809598e cmd, more, tee, y, notevil, sysutils linked to msvcrt.dll.
svn path=/trunk/; revision=2111
2001-07-28 08:02:05 +00:00
Emanuele Aliberti
3de844a224 *** empty log message ***
svn path=/trunk/; revision=2110
2001-07-28 07:57:24 +00:00
Hartmut Birr
28f723e21e Fixed the 'REACTOS' volume label bug.
svn path=/trunk/; revision=2109
2001-07-28 07:05:56 +00:00
Eric Kohl
85a1907ad6 Disabled a function-call that crashes all msvcrt-based apps.
Further investigation will be done.

svn path=/trunk/; revision=2108
2001-07-27 23:54:05 +00:00
Eric Kohl
d50f7d2496 Fixed a warning.
svn path=/trunk/; revision=2107
2001-07-27 10:15:48 +00:00
Eric Kohl
5cd5457f10 Removed specs files.
svn path=/trunk/; revision=2106
2001-07-26 16:52:53 +00:00
Eric Kohl
db88524e4f Fixed broken rule.
svn path=/trunk/; revision=2105
2001-07-26 12:36:33 +00:00
Eric Kohl
c98b85ff40 Updated .cvsignore and makefile.
svn path=/trunk/; revision=2104
2001-07-26 11:44:04 +00:00
Eric Kohl
c0333e56cd Vidport did not have an export table because of broken rule.
svn path=/trunk/; revision=2103
2001-07-26 11:40:59 +00:00
Hartmut Birr
2da14243ee Fixed bug in vfatMakeRootFCB().
svn path=/trunk/; revision=2102
2001-07-25 17:39:34 +00:00
Eric Kohl
6bad760721 Fixed bug in ReadVolumeLabel().
svn path=/trunk/; revision=2101
2001-07-25 08:58:21 +00:00
Eric Kohl
5844ee0a81 Updated driver list.
svn path=/trunk/; revision=2100
2001-07-25 08:31:22 +00:00
Eric Kohl
cf6085206f Remove unusable 'driver'.
svn path=/trunk/; revision=2099
2001-07-25 08:30:01 +00:00
Eric Kohl
8d6a03b3eb Added missing .cvsignore files.
Updated makefiles.

svn path=/trunk/; revision=2098
2001-07-25 08:29:15 +00:00
Eric Kohl
74893f61fb Minor update
svn path=/trunk/; revision=2097
2001-07-25 08:26:06 +00:00
Eric Kohl
b8cfaa435e Added missing .cvsignore files.
Updated makefiles.

svn path=/trunk/; revision=2096
2001-07-25 06:21:38 +00:00
Eric Kohl
7b23bdc4ac Documentation update.
Added preliminary road-map.

svn path=/trunk/; revision=2095
2001-07-24 20:49:57 +00:00
Eric Kohl
6c6bb5f62e More cleanups
svn path=/trunk/; revision=2094
2001-07-24 18:39:02 +00:00
Eric Kohl
72a83f69ee Updated makefile
svn path=/trunk/; revision=2093
2001-07-24 16:32:16 +00:00
Eric Kohl
1a42d9ea1c Minor updates.
svn path=/trunk/; revision=2092
2001-07-24 10:22:18 +00:00
Eric Kohl
e604d7b0fe Added disk class driver skeleton.
svn path=/trunk/; revision=2091
2001-07-24 10:21:15 +00:00
Eric Kohl
c0eef82d19 Moved lsass out of the way.
svn path=/trunk/; revision=2090
2001-07-24 10:18:39 +00:00
Eric Kohl
2f246b69d1 Added typedef for PCCHAR.
svn path=/trunk/; revision=2089
2001-07-23 12:54:35 +00:00
Eric Kohl
066d5b9dda Added storage drivers to the build process.
svn path=/trunk/; revision=2088
2001-07-23 06:15:27 +00:00
Eric Kohl
3df0bbbfce Added scsi class driver skeleton.
svn path=/trunk/; revision=2087
2001-07-23 06:13:48 +00:00
Emanuele Aliberti
9859f23c21 Skeleton for KERNEL32.GlobalMemoryStatus
svn path=/trunk/; revision=2086
2001-07-22 19:55:21 +00:00
Emanuele Aliberti
062243bc91 Minor path parametrization.
svn path=/trunk/; revision=2085
2001-07-21 20:16:09 +00:00
Eric Kohl
6429b16f0a Fixed dll build order
svn path=/trunk/; revision=2084
2001-07-21 20:08:42 +00:00
Emanuele Aliberti
97aa97fdd0 Minor fix.
svn path=/trunk/; revision=2083
2001-07-21 15:45:20 +00:00
Emanuele Aliberti
5e6df71477 Added version resource script.
svn path=/trunk/; revision=2082
2001-07-21 15:40:04 +00:00
Emanuele Aliberti
5cb7155212 Added version resource script.
svn path=/trunk/; revision=2081
2001-07-21 15:34:08 +00:00
Emanuele Aliberti
4ed1b71717 Ops! Target of a forwarded exported symbol should be as
decorated as the target itself.

svn path=/trunk/; revision=2080
2001-07-21 08:43:59 +00:00
Emanuele Aliberti
b4a32f4a4c Added forwarded exports to KERNEL32.
svn path=/trunk/; revision=2079
2001-07-21 08:41:12 +00:00
Emanuele Aliberti
ee0e06c2c1 Added version resource script.
svn path=/trunk/; revision=2078
2001-07-21 08:37:06 +00:00
Eric Kohl
b8ec1f6a56 Added scsiport driver skeleton.
svn path=/trunk/; revision=2077
2001-07-21 07:30:26 +00:00
Eric Kohl
75d57b4fa1 Enabled caching for FAT32 partitions.
Enabled FAT32 write code.
Various smaller fixes.
Patch by Hartmut Birr (part 2).

svn path=/trunk/; revision=2076
2001-07-20 08:00:21 +00:00
Eric Kohl
7192939c7d Restored _wmakepath(). Grrr. :-/
svn path=/trunk/; revision=2075
2001-07-19 18:53:29 +00:00
Eric Kohl
d24d5849fe Fixed bug in SetFileTime().
Patch by Hartmut Birr.

svn path=/trunk/; revision=2074
2001-07-19 18:42:02 +00:00
Eric Kohl
20a0131534 Fixed bug in _makepath().
Patch by Hartmut Birr.

svn path=/trunk/; revision=2073
2001-07-19 18:41:09 +00:00
Eric Kohl
e6063f185b Various fixes by Hartmut Birr.
svn path=/trunk/; revision=2072
2001-07-18 12:04:52 +00:00
Eric Kohl
1481663f41 Added mbstring functions.
svn path=/trunk/; revision=2071
2001-07-18 10:44:18 +00:00
Eric Kohl
c65dea5060 Added process and mbstring functions.
svn path=/trunk/; revision=2070
2001-07-18 09:23:02 +00:00
Eric Kohl
3edae5c9c1 Added process functions.
svn path=/trunk/; revision=2069
2001-07-18 09:22:04 +00:00
Eric Kohl
5cb6979b1a Added mbstring functions.
svn path=/trunk/; revision=2068
2001-07-18 09:20:23 +00:00
Eric Kohl
ccf31892a1 Fixed a tiny bug.
svn path=/trunk/; revision=2067
2001-07-18 09:18:10 +00:00
Eric Kohl
f488ede562 Fixed crash while mounting a FAT32 partition.
svn path=/trunk/; revision=2066
2001-07-17 07:48:06 +00:00
Rex Jolliff
5c2ae92c47 Added a stubbed oleaut32.dll and a little work on ole32.dll
svn path=/trunk/; revision=2065
2001-07-16 01:45:44 +00:00
Rex Jolliff
1f7f2ec88f move work on clean rule
svn path=/trunk/; revision=2064
2001-07-15 21:19:02 +00:00
Rex Jolliff
5ce255ed4c some work on clean rule
svn path=/trunk/; revision=2063
2001-07-15 18:06:23 +00:00
Eric Kohl
ac38bc6706 Named pipes and mail slots need a valid file object.
svn path=/trunk/; revision=2062
2001-07-15 15:36:31 +00:00
Eric Kohl
8e8502cc51 Create symbolic links for dos devices.
svn path=/trunk/; revision=2061
2001-07-15 13:46:16 +00:00
Casper Hornstrup
20da260a3c Temporary fix to prevent a crash when running in VMware (and possibly bochs too)
svn path=/trunk/; revision=2060
2001-07-14 21:10:31 +00:00
Eric Kohl
5b04ae25a4 Fixed a string overrun.
Patch by Hartmut Birr.

svn path=/trunk/; revision=2059
2001-07-14 18:21:23 +00:00
Nedko Arnaudov
372a3cc161 "Because of changes in winnt.h, some of security definitions must be used from there."
svn path=/trunk/; revision=2058
2001-07-14 07:01:38 +00:00
Eric Kohl
889f9e3c01 Added support for FAT16 partition with clustersize greater than page size.
Patch by Hartmut Birr.

svn path=/trunk/; revision=2057
2001-07-13 10:31:14 +00:00
Eric Kohl
6d64efee46 Moved interlocked and locale functions.
Implemented basic locale support.
Added some missing interlocked functions.

svn path=/trunk/; revision=2056
2001-07-12 17:23:42 +00:00
Eric Kohl
b03d2d1155 Added more functions to msvcrt.
svn path=/trunk/; revision=2055
2001-07-12 16:31:03 +00:00
Eric Kohl
562836fa81 Fixed a warning.
svn path=/trunk/; revision=2054
2001-07-12 11:59:51 +00:00
Eric Kohl
e9f2e019b1 Fixed warnings and errors.
svn path=/trunk/; revision=2053
2001-07-12 11:58:57 +00:00
Eric Kohl
577c72f5b0 Fixed compiling bug for gcc-2.95.3.
svn path=/trunk/; revision=2052
2001-07-11 20:26:58 +00:00
Casper Hornstrup
6f0b5babc4 Use fastcall in NDIS header.
svn path=/trunk/; revision=2050
2001-07-06 23:05:11 +00:00
Brian Palmer
17dc9b5270 Full memory management support (memory.c & memory.h & mem.S)
Preliminary debug code (debug.c & debug.h)
Reworked .ini file code (parseini.c & parseini.h)
Size optimizations (fat.asm & fat32.asm)
FAT12/16 boot sector now fully understands the FAT (fat.asm)

svn path=/trunk/; revision=2049
2001-07-06 22:05:05 +00:00
Eric Kohl
e575ed9544 Enabled FASTCALL calling convention
svn path=/trunk/; revision=2048
2001-07-06 21:32:43 +00:00
Eric Kohl
af1605f6f6 Added _wasctime() and _wctime().
svn path=/trunk/; revision=2047
2001-07-06 21:17:36 +00:00
Eric Kohl
4eca28a7a6 Fixed a windres warning
svn path=/trunk/; revision=2046
2001-07-06 21:15:20 +00:00
Eric Kohl
aa234d8870 Added missing _wmktemp().
svn path=/trunk/; revision=2045
2001-07-06 14:33:19 +00:00
Eric Kohl
10cde64c1f Added more missing functions
svn path=/trunk/; revision=2044
2001-07-06 12:53:03 +00:00
Rex Jolliff
131f7804ab some corrections to the stubs
svn path=/trunk/; revision=2043
2001-07-06 04:01:27 +00:00
Rex Jolliff
d152260ffa Added a stubbed shell32.dll
svn path=/trunk/; revision=2042
2001-07-06 02:47:17 +00:00
Eric Kohl
e5e74911b3 Added missing math and stdio functions
svn path=/trunk/; revision=2041
2001-07-06 00:58:15 +00:00
Eric Kohl
3bba37d64a Added missing math functions
svn path=/trunk/; revision=2040
2001-07-06 00:54:39 +00:00
Rex Jolliff
0e53a7424f added object handling routines for user objects in win32k.sys
svn path=/trunk/; revision=2039
2001-07-06 00:05:05 +00:00
Rex Jolliff
208eecc0f4 Partial directory caching (create calls cached, but dir info calls
still use non cached routines).

svn path=/trunk/; revision=2038
2001-07-05 01:51:53 +00:00
Casper Hornstrup
52ead14335 Fixed ne2000 driver so it will link correctly.
svn path=/trunk/; revision=2037
2001-07-04 21:24:02 +00:00
Casper Hornstrup
3a9de284ad Updated clean rules.
Implemented sequenced lists and lookaside lists.
Started on TCP/IP connection endpoints.
Save process window station in EPROCESS instead of PEB.
NOTICE: please do a make win32k_clean or you might experience a crash

svn path=/trunk/; revision=2036
2001-07-04 20:40:24 +00:00
Rex Jolliff
df84ec15d8 Fix for error in reading next extended partition when partition contains slack
or more than one non container partition.

svn path=/trunk/; revision=2035
2001-07-04 16:42:37 +00:00
Eric Kohl
eed177f191 Added conio functions
svn path=/trunk/; revision=2034
2001-07-04 16:39:37 +00:00
Rex Jolliff
d46de4a28a added some test cases to fsd tests
svn path=/trunk/; revision=2033
2001-07-04 03:07:54 +00:00
Eric Kohl
bd74b6b30a Added missing io functions from crtdll and implemented wide and 64 bit functions.
svn path=/trunk/; revision=2032
2001-07-03 22:18:42 +00:00
Eric Kohl
357a89921a Untangled crtdll/msvcrt header mess.
svn path=/trunk/; revision=2031
2001-07-03 13:21:22 +00:00
Eric Kohl
a6f8fd2f79 Oooops! This should not have heppened
svn path=/trunk/; revision=2030
2001-07-03 13:14:18 +00:00
Eric Kohl
83e63dc11b Untangled crtdll/msvcrt header mess.
svn path=/trunk/; revision=2029
2001-07-03 13:07:12 +00:00
Eric Kohl
0bbf23c333 Untangled crtdll/msvcrt header mess.
svn path=/trunk/; revision=2028
2001-07-03 12:56:48 +00:00
Eric Kohl
49ad46d964 Added some float and stdlib functions
svn path=/trunk/; revision=2027
2001-07-02 21:52:25 +00:00
Phillip Susi
8dacbd3ab0 Fixed LdrShutdownProcess() to only detach static dlls, any dynamically loaded ones should be FreeLibrary()d from the static dlls and then they will be detached
svn path=/trunk/; revision=2026
2001-07-02 20:27:41 +00:00
Eric Kohl
8cd4cde19c Added some code to map more predefined keys (like HKCU).
Implemented some ansi functions

svn path=/trunk/; revision=2025
2001-07-01 17:54:07 +00:00
Jason Filby
a9be5303eb Fixed warnings
svn path=/trunk/; revision=2024
2001-07-01 14:34:45 +00:00
Jason Filby
e9ff4263ca Wide characters to conform to LOGFONTW definition
svn path=/trunk/; revision=2023
2001-07-01 14:32:47 +00:00
Jason Filby
b7239a157c Defined LOGFONTW and now use it in DEVINFO
svn path=/trunk/; revision=2022
2001-07-01 14:31:46 +00:00
Jason Filby
93bd949df5 Bug fix
svn path=/trunk/; revision=2021
2001-06-30 17:43:05 +00:00
Emanuele Aliberti
b1cc45efd9 Fixed includes to compile.
svn path=/trunk/; revision=2020
2001-06-29 21:08:50 +00:00
Eric Kohl
965c424c85 Prepared loading of .nls files
svn path=/trunk/; revision=2019
2001-06-29 20:43:55 +00:00
Eric Kohl
b6da4ac7a1 Prepared loading of .nls files
svn path=/trunk/; revision=2018
2001-06-29 20:31:03 +00:00
Eric Kohl
29b5ab4122 Started moving common gdi32/w32k types into common header file.
svn path=/trunk/; revision=2017
2001-06-29 19:34:35 +00:00
Eric Kohl
8a477f58d7 Read partition tables only once while assigning drive letters.
svn path=/trunk/; revision=2016
2001-06-29 11:09:48 +00:00
Rex Jolliff
c967887093 oops, left in some debugging statements
svn path=/trunk/; revision=2015
2001-06-28 02:56:27 +00:00
Rex Jolliff
5eb89e0c5a fixed problem with extended partitions that contain only Linux logical partitions
svn path=/trunk/; revision=2014
2001-06-28 02:42:27 +00:00
Eric Kohl
b8e0d46292 Fixed typos and warnings.
svn path=/trunk/; revision=2013
2001-06-26 12:54:58 +00:00
Eric Kohl
edd3aa06a7 Fixed a lot of warnings.
svn path=/trunk/; revision=2012
2001-06-25 23:48:20 +00:00
Eric Kohl
25138c970a Oooops. Still something missing!
svn path=/trunk/; revision=2011
2001-06-25 18:57:41 +00:00
Eric Kohl
3454082412 Fixed a lot of warnings.
svn path=/trunk/; revision=2010
2001-06-25 18:51:31 +00:00
Eric Kohl
d450a93214 Fixed a lot of warnings.
svn path=/trunk/; revision=2009
2001-06-25 14:22:45 +00:00
Eric Kohl
6e9bf90969 Fixed a lot of warnings.
svn path=/trunk/; revision=2008
2001-06-25 12:32:56 +00:00
Eric Kohl
b9689b04fa Fixed a lot of warnings.
svn path=/trunk/; revision=2007
2001-06-25 09:30:45 +00:00
Phillip Susi
4a45379380 Added missing extern "C"
svn path=/trunk/; revision=2006
2001-06-24 17:58:13 +00:00
Phillip Susi
b5686dbcd2 Treat STATUS_PORT_DISCONNECTED as full error, now that LPC ports correctly deliver the LPC_PORT_CLOSED message.
svn path=/trunk/; revision=2005
2001-06-23 19:20:01 +00:00
Phillip Susi
db9f10747e Handles should be closed in the context of the dead process, not the system process.
For now, I just used KeAttachProcess() to do this, but this should be moved so it is called by the last thread of the process before it dies.

svn path=/trunk/; revision=2004
2001-06-23 19:15:14 +00:00
Phillip Susi
71f7e0cad5 Fixed LPC port implementation to use an internal semaphore, rather than an
event.  When using the event, if multiple messages were queued to the port
at once, the client would only get the first one, and then block rather than
read the next message.

I think that the port object should have a DISPATCHER_HEADER to make it a
full blown dispatcher object, allowing clients to wait on the port object.

svn path=/trunk/; revision=2003
2001-06-23 19:13:33 +00:00
Eric Kohl
1dfc10a465 Added protection against inclusion of conflicting prototypes.
svn path=/trunk/; revision=2002
2001-06-22 12:40:45 +00:00
Eric Kohl
a4356344c9 Minor fixes.
svn path=/trunk/; revision=2001
2001-06-22 12:36:23 +00:00
Eric Kohl
0514d0e92b Added symbol __NTDRIVER__ to identify drivers.
svn path=/trunk/; revision=2000
2001-06-22 12:30:02 +00:00
Eric Kohl
a25e9783d7 Replaced call to KeBugCheck().
svn path=/trunk/; revision=1999
2001-06-22 12:19:45 +00:00
Eric Kohl
770c504a74 Fixed 'clean' rule.
svn path=/trunk/; revision=1998
2001-06-22 12:17:24 +00:00
Phillip Susi
3e22e847c2 Implemented support for console titles
Display console title while swapping consoles with alt-tab
Use alt-tab now instead of alt-q

svn path=/trunk/; revision=1997
2001-06-22 02:11:44 +00:00
Phillip Susi
4eb1d89866 Set console title to "Winlogon"
svn path=/trunk/; revision=1996
2001-06-22 02:10:11 +00:00
Eric Kohl
932eaef816 Added missing directories to 'clean' rule.
svn path=/trunk/; revision=1995
2001-06-21 17:25:35 +00:00
Eric Kohl
294fa73123 Added missing io status blocks.
Fixed some warnings.

svn path=/trunk/; revision=1994
2001-06-21 13:14:41 +00:00
Rex Jolliff
9a56bea334 command line parse changed to not stop after first instance of each argument found
svn path=/trunk/; revision=1993
2001-06-21 04:12:19 +00:00
Brian Palmer
5efafbf03e Win2k FAT32 Boot Sector Disassembly
svn path=/trunk/; revision=1992
2001-06-20 20:31:35 +00:00
Eric Kohl
c280651aa2 Some more fixes for 'fastcall' support.
svn path=/trunk/; revision=1991
2001-06-20 20:00:36 +00:00
Eric Kohl
93eeaf2b3e First fixes to support fastcall:
- moved FILETIME
- removed inclusion of <windows.h> from ntoskrnl
- fixed typos

svn path=/trunk/; revision=1990
2001-06-20 13:00:53 +00:00
Eric Kohl
c79b121347 Implemented some more registry functions.
svn path=/trunk/; revision=1989
2001-06-19 15:09:16 +00:00
Eric Kohl
76f1b8fa3c Implemented RtlOpenCurrentUser().
svn path=/trunk/; revision=1988
2001-06-18 18:37:12 +00:00
Phillip Susi
439bc219e0 Enhanced floppy driver to read up to an entire track at a time
Not sure if I did this correctly, but it seems to work:

By accident, I noticed that it seems to return more than the sector you requested if you program the DMAC to transfer more than one sector of bytes, so I decided to go with it.

Minor fixes.

svn path=/trunk/; revision=1987
2001-06-18 03:14:24 +00:00
Phillip Susi
d28ae7e82f Check in of new ram disk driver, loads floppy image into ram on boot
svn path=/trunk/; revision=1986
2001-06-18 03:10:00 +00:00
Phillip Susi
a504708d4e Fixed console mode behavior with processed input but not line buffered mode
svn path=/trunk/; revision=1985
2001-06-18 03:07:37 +00:00
Phillip Susi
16588f8362 Put LoadString code back that was removed by someone...
svn path=/trunk/; revision=1984
2001-06-18 03:05:54 +00:00
Phillip Susi
a49c07b8f2 Fixed CreateProcess() to use the command line parameter like NT does
This still needs quite a bit more work to fix bugs and be 100% compatible with NT

svn path=/trunk/; revision=1983
2001-06-18 03:02:43 +00:00
Phillip Susi
045f617089 Corrected CreateProcess() command line parameter to be more compatible with NT
Fixed minor bugs with console mode being set incorrectly

svn path=/trunk/; revision=1982
2001-06-18 02:55:47 +00:00
Phillip Susi
35b12b3d8c Added .cvsignore to ignore cmd.coff
svn path=/trunk/; revision=1981
2001-06-17 23:10:07 +00:00
Eric Kohl
c4b00c80d8 Implemented some registry functions.
svn path=/trunk/; revision=1980
2001-06-17 22:54:36 +00:00
Emanuele Aliberti
ab5917c0c7 Fixed a typo.
svn path=/trunk/; revision=1979
2001-06-17 20:36:35 +00:00
Eric Kohl
fdbabc8ad9 Implemented AllocateLocallyUniqueId().
svn path=/trunk/; revision=1978
2001-06-17 20:20:21 +00:00
Emanuele Aliberti
1731f27560 NTDLL/csr: some more stubs; code split;
NTDLL/rtl: some more stubs; RtlRaiseStatus() implemented;
Minor changes.

svn path=/trunk/; revision=1977
2001-06-17 20:05:10 +00:00
Eric Kohl
c4bb1e256b Some csr additions
svn path=/trunk/; revision=1976
2001-06-17 09:25:03 +00:00
Eric Kohl
5a58cc8836 Changed ObCreateObject() to a more nt-compatible format.
Now it returns a status value.

svn path=/trunk/; revision=1975
2001-06-16 14:11:31 +00:00
Eric Kohl
ae8ba926ce Added unstripped driver to .cvsignore.
svn path=/trunk/; revision=1974
2001-06-16 09:54:43 +00:00
Eric Kohl
9d72cf785d Added some error checks.
svn path=/trunk/; revision=1973
2001-06-16 09:49:45 +00:00
Eric Kohl
9d04225d93 Fixed linker error.
svn path=/trunk/; revision=1972
2001-06-15 18:32:25 +00:00
Casper Hornstrup
a3ba68ae58 More work on winsock stack (ping is now working)
svn path=/trunk/; revision=1971
2001-06-15 17:48:43 +00:00
Eric Kohl
ae87e6af46 Fixes for gcc-2.95.3-4
Fixed typos

svn path=/trunk/; revision=1970
2001-06-15 11:15:32 +00:00
Jason Filby
2f3eb30871 From Eugene Ingerman:
Create default registry files is they don't exist
Modularized registry.c into more files, more manageable
Bug fix in IoCreateFile that didn't return IoStatusBlock
'dir' now works in Bochs - corrected parsing in VfatOpenFile

svn path=/trunk/; revision=1969
2001-06-14 21:05:08 +00:00
Eric Kohl
e180745ffa Added some error checks.
svn path=/trunk/; revision=1968
2001-06-14 10:02:59 +00:00
Eric Kohl
d8f25b3cb8 Implemented access to PCI configuration space
svn path=/trunk/; revision=1967
2001-06-13 22:17:01 +00:00
Eric Kohl
dbb696c65d Mostly STDCALL fixes.
svn path=/trunk/; revision=1966
2001-06-13 10:59:50 +00:00
Casper Hornstrup
8eba21d917 Window stations and desktops
svn path=/trunk/; revision=1965
2001-06-12 17:51:51 +00:00
Casper Hornstrup
db931ec021 Removed old wine code
svn path=/trunk/; revision=1964
2001-06-12 17:44:50 +00:00
Casper Hornstrup
bc8b4c3210 Removed old wine code
svn path=/trunk/; revision=1963
2001-06-12 17:35:46 +00:00
Casper Hornstrup
b0f6cfbe69 Removed old wine code
svn path=/trunk/; revision=1962
2001-06-12 17:30:27 +00:00
Brian Palmer
4750bc0160 Implemented memory detection & BIOS memory map
Added memory management prototypes

svn path=/trunk/; revision=1961
2001-06-12 16:12:50 +00:00
Eric Kohl
35850562c1 Added missing STDCALLs.
svn path=/trunk/; revision=1960
2001-06-12 12:36:58 +00:00
Eric Kohl
e8c61143ed Fixed some NT compatibility issues in Nt[Query/Set]InformationFile().
Fixed buffer size issues in volume functions.
Fixed several minor bugs.

svn path=/trunk/; revision=1959
2001-06-12 12:35:42 +00:00
Emanuele Aliberti
d1c18ff4e4 *** empty log message ***
svn path=/trunk/; revision=1958
2001-06-11 20:36:44 +00:00
Eric Kohl
4c892bc4e7 Implemented SetVolumeLabelW().
svn path=/trunk/; revision=1957
2001-06-11 19:54:05 +00:00
Eric Kohl
bf1b360a1e Fixed some NT compatibility issues in Nt[Query/Set]VolumeInformationFile().
svn path=/trunk/; revision=1956
2001-06-11 19:52:22 +00:00
Eric Kohl
80f8038f24 Fixed MaxRootEntries. This caused disk corruption.
svn path=/trunk/; revision=1955
2001-06-09 15:51:23 +00:00
Brian Palmer
dc36f333cf Forgot to add a semi-colon at end of statement
svn path=/trunk/; revision=1954
2001-06-08 23:20:14 +00:00
Brian Palmer
1d9101d6ea Separated multiboot kernel loader and reactos kernel loader so that support for other operating systems can be added
svn path=/trunk/; revision=1953
2001-06-08 23:12:40 +00:00
Eric Kohl
4c1911c2ca Use ARC-Path to boot ReactOS
svn path=/trunk/; revision=1952
2001-06-08 17:46:52 +00:00
Eric Kohl
18b431ed17 Added stubs for missing partition functions
svn path=/trunk/; revision=1951
2001-06-08 15:11:04 +00:00
Eric Kohl
624e3335e1 Implemented the most simple functions.
svn path=/trunk/; revision=1950
2001-06-07 21:27:45 +00:00
Eric Kohl
a68d65df79 Fixes to build win32k.sys again.
svn path=/trunk/; revision=1949
2001-06-07 21:22:32 +00:00
Eric Kohl
77fa055814 Replaced IDEGetPartitionTable() by call to IoReadPartitionTable()
Several minor fixes

svn path=/trunk/; revision=1948
2001-06-07 21:18:01 +00:00
Emanuele Aliberti
6d96f0e0cc Fixed includes to compile.
svn path=/trunk/; revision=1947
2001-06-07 20:38:53 +00:00
Jason Filby
51c0ed06fe Updated definition
svn path=/trunk/; revision=1946
2001-06-06 14:25:13 +00:00
Brian Palmer
4531d3752a Multiboot Kernel Compliance
svn path=/trunk/; revision=1945
2001-06-05 21:45:51 +00:00
Jason Filby
49e30c043c Bug fixes
svn path=/trunk/; revision=1944
2001-06-04 14:54:40 +00:00
Casper Hornstrup
f105303a7b Win32k native user stubs
svn path=/trunk/; revision=1943
2001-06-04 14:39:43 +00:00
Casper Hornstrup
465823fcc7 Default is screen debug output
svn path=/trunk/; revision=1942
2001-06-04 11:27:54 +00:00
Casper Hornstrup
514cb6a689 Raw IP and ICMP fixes
More work on winsock stack (not usable yet though)
Support for loading symbols for user mode modules

svn path=/trunk/; revision=1941
2001-06-04 11:26:13 +00:00
Jason Filby
3d24d1f443 Small fixes
svn path=/trunk/; revision=1940
2001-06-03 10:48:41 +00:00
Jason Filby
b6af1f6bab Prevent mouse from interfering with GDI drawing
svn path=/trunk/; revision=1939
2001-06-03 10:47:29 +00:00
Eric Kohl
c3b862d61d Fixed partition table bug
svn path=/trunk/; revision=1938
2001-06-02 15:53:26 +00:00
Jason Filby
4ce8aabb3c Faster moving mouse cursor
svn path=/trunk/; revision=1937
2001-06-02 08:44:46 +00:00
Jason Filby
a9d9714a23 Better looking mouse cursor
svn path=/trunk/; revision=1936
2001-06-02 08:43:48 +00:00
Eric Kohl
7d15b82aa0 Implemented RtlFindMessage() and Rtl[Query/Set]TimeZoneInformation().
svn path=/trunk/; revision=1935
2001-06-01 17:14:40 +00:00
Eric Kohl
efe6366a22 Implemented RtlFindMessage().
Implemented Rtl[Query/Set]TimeZoneInformation().
Implemented RtlQueryRegistryValues() partially.

svn path=/trunk/; revision=1933
2001-05-30 20:03:28 +00:00
Eric Kohl
553aab4bb7 Fixed a crash in NtCreateKey() when an existing key is opened
svn path=/trunk/; revision=1932
2001-05-30 14:40:36 +00:00
Eric Kohl
2c92d6e39b Fixed potential crash when empty ANSI_STRING or UNICODE_STRING is printed
svn path=/trunk/; revision=1931
2001-05-30 14:38:14 +00:00
Jason Filby
8c8de10906 Improve mouse driver stability a bit
svn path=/trunk/; revision=1930
2001-05-30 08:07:48 +00:00
Eric Kohl
5a12816c16 Fixed a typo
svn path=/trunk/; revision=1929
2001-05-27 23:03:51 +00:00
Casper Hornstrup
f821d295ad Double makefile in cvs
svn path=/trunk/; revision=1928
2001-05-27 16:37:24 +00:00
Casper Hornstrup
94fe75aeb4 Full make
svn path=/trunk/; revision=1927
2001-05-27 16:23:20 +00:00
Eric Kohl
eb7f6b07c8 Rewrote atom functions in kernel32
svn path=/trunk/; revision=1926
2001-05-27 15:40:31 +00:00
Eric Kohl
4790ca37b0 Implemented atoms in ntoskrnl and fixed a few bugs
svn path=/trunk/; revision=1925
2001-05-27 11:17:01 +00:00
Eric Kohl
803636da4a Implemented handle table and atom table
svn path=/trunk/; revision=1924
2001-05-26 17:49:18 +00:00
Eric Kohl
f9384f3cf8 Implemented handle table and atom table
svn path=/trunk/; revision=1923
2001-05-26 16:52:31 +00:00
Jason Filby
4c125c3021 Was not clearing screen on some cards
svn path=/trunk/; revision=1922
2001-05-26 10:25:22 +00:00
Jason Filby
2262d67ef2 Build mouclass and psaux
svn path=/trunk/; revision=1921
2001-05-26 10:20:07 +00:00
Jason Filby
c6287c59d3 Load PS/2 mouse and mouse class drivers on startup
svn path=/trunk/; revision=1920
2001-05-26 10:05:40 +00:00
Jason Filby
9726e9950b Minor update
svn path=/trunk/; revision=1919
2001-05-26 10:04:06 +00:00
Jason Filby
a91a0d77da VGA software cursor
svn path=/trunk/; revision=1918
2001-05-26 08:21:03 +00:00
Jason Filby
02e9af8bda Mouse driver improvements; callback between mouse class and GDI
svn path=/trunk/; revision=1917
2001-05-26 08:19:03 +00:00
Jason Filby
73b9ac6994 Initial GDI Mouse support, small DC fix
svn path=/trunk/; revision=1916
2001-05-26 08:15:40 +00:00
Eric Kohl
caae64da4b Fixed duplicate DELETE
svn path=/trunk/; revision=1915
2001-05-25 08:51:41 +00:00
Eric Kohl
0f9dfab704 Implemented file access/sharing check functions
svn path=/trunk/; revision=1914
2001-05-24 22:19:25 +00:00
Eric Kohl
ca61cc2444 Implemented resource (multiple-reader-single-writer) lock
svn path=/trunk/; revision=1913
2001-05-24 11:28:54 +00:00
Jurgen van Gael
56ab538abe Added the definition files for ole32.dll
svn path=/trunk/; revision=1912
2001-05-19 21:23:20 +00:00
Nedko Arnaudov
1d63ef67f5 added #ifdefs for clipboard feature
svn path=/trunk/; revision=1911
2001-05-16 21:19:06 +00:00
Jurgen van Gael
5fda84ce39 Put the CLSID definition between the ifdef statement for the guid, otherwise compiling ole32 would generate multiple definition error messages
svn path=/trunk/; revision=1910
2001-05-15 21:04:09 +00:00
Jurgen van Gael
079339b3b8 Sourc code for the first ole32.dll COM implementation
svn path=/trunk/; revision=1909
2001-05-15 12:22:18 +00:00
Jurgen van Gael
48da1fcf14 Added header files for ole32.dll COM implementation
svn path=/trunk/; revision=1908
2001-05-15 11:53:23 +00:00
Brian Palmer
afdf923c65 Initial revision
svn path=/trunk/; revision=1904
2001-05-15 03:50:25 +00:00
Casper Hornstrup
bbf48f20aa Removed the assertion
svn path=/trunk/; revision=1903
2001-05-13 13:35:37 +00:00
Eric Kohl
7d0f1e3433 Some named pipe improvements (not usable yet!).
svn path=/trunk/; revision=1902
2001-05-10 23:38:31 +00:00
Rex Jolliff
4c5a154f4d a few more changes to vfat driver
svn path=/trunk/; revision=1901
2001-05-10 06:30:23 +00:00
Rex Jolliff
9cfc87e333 extracted a few more FCB funcs
svn path=/trunk/; revision=1900
2001-05-10 04:02:21 +00:00
Eric Kohl
3c986c6d3a Use MinGW startup code (crt0)
svn path=/trunk/; revision=1899
2001-05-08 11:19:43 +00:00
Casper Hornstrup
432ae66313 oops...back to default configuration
svn path=/trunk/; revision=1898
2001-05-08 09:43:55 +00:00
Casper Hornstrup
fc6a12de18 Preparations for 32-bit/64-bit architectures
Added stubs for most user32.dll functions

svn path=/trunk/; revision=1897
2001-05-07 22:03:27 +00:00
Eric Kohl
3694ebf507 Cleanup
svn path=/trunk/; revision=1896
2001-05-06 22:39:13 +00:00
Eric Kohl
7398918d11 Fixed bootable partition bug
svn path=/trunk/; revision=1895
2001-05-06 22:32:34 +00:00
Emanuele Aliberti
cbcc365a25 Added dist rule.
svn path=/trunk/; revision=1894
2001-05-06 19:28:50 +00:00
Carl Nettelblad
a975142a8d Last change stop CD from working. That's fixed now.
svn path=/trunk/; revision=1893
2001-05-06 17:27:50 +00:00
Carl Nettelblad
96a0d04b3b Removed support for current directories on several drives at once from cmd.exe. Now in NTDLL.
svn path=/trunk/; revision=1892
2001-05-06 17:12:44 +00:00
Carl Nettelblad
8efef1784a Moving support for current dir on several drives from cmd.exe to NTDLL.
svn path=/trunk/; revision=1891
2001-05-06 16:09:03 +00:00
Casper Hornstrup
ba2a8ca045 Added ACPI bus manager
Added ACPI button driver

svn path=/trunk/; revision=1890
2001-05-05 19:15:44 +00:00
Casper Hornstrup
efc93e5ae8 Added runtime configuration of debug prints from kernel debugger (on a per file basis)
svn path=/trunk/; revision=1889
2001-05-05 19:13:10 +00:00
Nedko Arnaudov
6fb7445d87 added optional parameter to specify destination directory
svn path=/trunk/; revision=1888
2001-05-05 19:11:29 +00:00
Phillip Susi
a0fe0d14a0 Removed a bunch of junk from wine and fixed crash on loading
svn path=/trunk/; revision=1887
2001-05-05 18:09:30 +00:00
Eric Kohl
3f98a7dd14 Added makefile
svn path=/trunk/; revision=1886
2001-05-05 18:01:07 +00:00
Eric Kohl
4304c92e6e Fixed silly 'off by one' bug
svn path=/trunk/; revision=1885
2001-05-05 18:00:33 +00:00
Eric Kohl
d13046ca0f Added mailslot fs driver
svn path=/trunk/; revision=1884
2001-05-05 15:21:05 +00:00
Emanuele Aliberti
f7d5d08e6e PORT_MESSAGE_TYPE(m) macro added.
svn path=/trunk/; revision=1883
2001-05-05 12:52:49 +00:00
Eric Kohl
7c469f9c46 Added attributes to object parse method.
svn path=/trunk/; revision=1882
2001-05-05 09:33:16 +00:00
Emanuele Aliberti
ab494baccd Fixed NtQueryDirectoryObject.
svn path=/trunk/; revision=1881
2001-05-04 21:44:21 +00:00
Rex Jolliff
ac9d3e30fb Changed Cc interface func names to CcRos.
Changed CcReleaseFileCache to use and dereference FileObject in BCB
instead of the one passed.

svn path=/trunk/; revision=1880
2001-05-04 01:21:45 +00:00
Nedko Arnaudov
d9776acd0c Added detection of redirection. GetStdHandle() used instead of CreateFile(). Error message is shown to user when it tries to redirect.
svn path=/trunk/; revision=1879
2001-05-03 22:41:16 +00:00
Casper Hornstrup
278ce6bf50 Removed debug code
Compile correctly with pool validation enabled

svn path=/trunk/; revision=1878
2001-05-03 17:24:00 +00:00
Jason Filby
53de047b71 Truetype files from OpenOffice
svn path=/trunk/; revision=1877
2001-05-03 07:17:38 +00:00
Jason Filby
87f05689bc *** empty log message ***
svn path=/trunk/; revision=1876
2001-05-03 07:16:33 +00:00
Eric Kohl
96a826ad92 Moved some heap stubs
svn path=/trunk/; revision=1875
2001-05-03 06:13:05 +00:00
Eric Kohl
973bed37c6 Implemented missing mailslot functions
svn path=/trunk/; revision=1874
2001-05-03 06:10:29 +00:00
Eric Kohl
4be50fdc7e Implemented mailslot functions
svn path=/trunk/; revision=1873
2001-05-02 22:29:18 +00:00
Eric Kohl
9f1e5ac42c Implemented CsrNewThread()
Added some registry functions

svn path=/trunk/; revision=1872
2001-05-02 22:25:58 +00:00
Emanuele Aliberti
ff2adbb728 Added -r switch to objdir to recurse the system name space.
svn path=/trunk/; revision=1871
2001-05-02 20:50:06 +00:00
Eric Kohl
7de8ff7c3c Fixed typo
svn path=/trunk/; revision=1870
2001-05-02 19:04:25 +00:00
Jason Filby
a4a7d78546 Truetype fonts from OpenOffice
svn path=/trunk/; revision=1869
2001-05-02 17:27:00 +00:00
Jason Filby
ce4ce9b5e9 Files incorrectly committed in ASCII
svn path=/trunk/; revision=1868
2001-05-02 17:25:47 +00:00
Jason Filby
66044c37fd reverted to proper makefile
svn path=/trunk/; revision=1867
2001-05-02 15:11:19 +00:00
Jason Filby
98fc0115be accidental commit
svn path=/trunk/; revision=1866
2001-05-02 15:10:24 +00:00
Jason Filby
f5a5752043 minor fix
svn path=/trunk/; revision=1865
2001-05-02 13:46:29 +00:00
Jason Filby
02184a83d4 Update install files
svn path=/trunk/; revision=1864
2001-05-02 12:37:06 +00:00
Jason Filby
979adb975e Update to test new GDI functions
svn path=/trunk/; revision=1863
2001-05-02 12:35:48 +00:00
Jason Filby
5ee6fc75ae GDI32 support for new win32k functions
svn path=/trunk/; revision=1862
2001-05-02 12:35:06 +00:00
Jason Filby
c84d5016d1 Initial font and text support. Fixes to color palette support. Mask and transparent blt support.
svn path=/trunk/; revision=1861
2001-05-02 12:33:42 +00:00
Jason Filby
b27e3264a9 Updates to GDI include files
svn path=/trunk/; revision=1860
2001-05-02 12:31:04 +00:00
Jason Filby
1a4b287958 VGA driver support for TransparentBlt
svn path=/trunk/; revision=1859
2001-05-02 12:29:51 +00:00
Jason Filby
69a45c48b1 Correct palette info. Initial support for bitblt masks
svn path=/trunk/; revision=1858
2001-05-02 12:29:08 +00:00
Jason Filby
6be44d6e81 Correctly configure palette registers
svn path=/trunk/; revision=1857
2001-05-02 12:27:32 +00:00
Jason Filby
4167bc8912 Initial TrueType fonts
svn path=/trunk/; revision=1856
2001-05-02 12:26:15 +00:00
Jason Filby
83352970a1 Freetype 2 includes
svn path=/trunk/; revision=1855
2001-05-02 12:24:36 +00:00
Jason Filby
be9bb3fb3c Freetype 2
svn path=/trunk/; revision=1854
2001-05-02 12:21:38 +00:00
Rex Jolliff
38afc0ac8b Extracted vfat8dot3ToFilename from GetEntryName
Extracted vfatMakeAbsoluteFilename from vfatOpenFile
Extracted vfatGrabFCBFromTable from vfatOpenFile
Extracted vfatNewFCB from vfatOpenFile
Extracted vfatAddFCBToTable from vfatOpenFile
Removed RtlAnsiToUnicode, RtlCatAnsiToUnicode

svn path=/trunk/; revision=1853
2001-05-02 03:18:03 +00:00
Casper Hornstrup
87589daf4e Preparations for checked/free like builds (CPRINT == DbgPrint when DBG is defined).
Modified loadros to support loading symbol files early at startup.
Modified loadros to convey BIOS memory map to the kernel if available.
Began building PnP manager device tree.
Added shutdown command to shell.exe

svn path=/trunk/; revision=1852
2001-05-01 23:08:21 +00:00
Phillip Susi
58e60b3092 Don't crash if win32k.sys isn't there.. it's ok..
svn path=/trunk/; revision=1851
2001-05-01 23:06:25 +00:00
Casper Hornstrup
f98bbb1df7 Ported ACPI CA (from the nice guys at Intel) to ReactOS (ACPI bus driver).
Started on ISA PnP bus driver.

svn path=/trunk/; revision=1850
2001-05-01 23:00:05 +00:00
Casper Hornstrup
1debf1a12d Work on winsock stack and indentation corrections.
svn path=/trunk/; revision=1849
2001-05-01 22:44:07 +00:00
Casper Hornstrup
72c2af4ca7 Better RawIP support.
Minor fixes.

svn path=/trunk/; revision=1848
2001-05-01 22:34:01 +00:00
Emanuele Aliberti
8d5c635a36 NtQueryDirectoryObject rewritten.
apps/objdir.c fixed to work under nt4sp6a AND reactos.

svn path=/trunk/; revision=1847
2001-05-01 21:43:45 +00:00
Nedko Arnaudov
1afd43b049 ^ is used for escape sequences
svn path=/trunk/; revision=1846
2001-05-01 20:53:24 +00:00
Nedko Arnaudov
13eef5cc24 now it compiles
svn path=/trunk/; revision=1845
2001-05-01 19:42:56 +00:00
Rex Jolliff
d73834ea4f added a few more fsd tests
svn path=/trunk/; revision=1844
2001-05-01 17:36:04 +00:00
Eric Kohl
b76211b20a Mailslot and named pipe preparations
svn path=/trunk/; revision=1843
2001-05-01 11:09:01 +00:00
Rex Jolliff
dabd23ba77 added test set for fsd driver
svn path=/trunk/; revision=1842
2001-05-01 04:35:08 +00:00
Rex Jolliff
fdfb9053d9 BUGFIX: Primary partitions that appeared after extended in table were incorrectly mounted
changed some error messages from DPRINT to DbgPrint

svn path=/trunk/; revision=1841
2001-04-30 05:28:17 +00:00
Carl Nettelblad
7e0bfac662 This change shouldn't mess things up, if used together with latest vfat version.
NtQueryInformationFile is required to return valid name information for this to work.

svn path=/trunk/; revision=1840
2001-04-29 21:09:20 +00:00
Carl Nettelblad
59e33e46af Probably getting fcb.PathName handling right this time.
svn path=/trunk/; revision=1839
2001-04-29 21:08:14 +00:00
David Welch
8701c47012 Removed .dbg target
svn path=/trunk/; revision=1838
2001-04-28 22:59:16 +00:00
Phillip Susi
56d6a0c2b1 Undo last change removing config.h, which is now correctly auto generated
svn path=/trunk/; revision=1837
2001-04-26 14:26:23 +00:00
Phillip Susi
39b80bfefd Fixed definition of EPROCESS to work with the forward declaration in ketypes.h
svn path=/trunk/; revision=1836
2001-04-26 13:29:58 +00:00
David Welch
a1f93462d3 Explicitly create config.h
svn path=/trunk/; revision=1835
2001-04-26 13:23:38 +00:00
Phillip Susi
51ca2e3c1a Removed reference to kernel private header internal/ps.h
svn path=/trunk/; revision=1834
2001-04-26 13:23:01 +00:00
Phillip Susi
4420d9e0cb Added forward declaration for EPROCESS
svn path=/trunk/; revision=1833
2001-04-26 13:22:24 +00:00
Eric Kohl
18f8e8da80 Some minor cleanup
svn path=/trunk/; revision=1832
2001-04-26 11:31:33 +00:00
Phillip Susi
af3325ef66 Undo last change
svn path=/trunk/; revision=1831
2001-04-26 04:01:54 +00:00
Phillip Susi
6de9186661 Removed references to obsolete config.h preventing compilation
svn path=/trunk/; revision=1830
2001-04-26 03:58:33 +00:00
Phillip Susi
dff9686ea0 Close handles to shell process/thread
svn path=/trunk/; revision=1829
2001-04-26 01:36:32 +00:00
Phillip Susi
50f5d0807c Added Tail.Overlay.DriverContext to IRP structure
svn path=/trunk/; revision=1828
2001-04-26 01:31:35 +00:00
Phillip Susi
9b3a488664 Fixed bug in IoFlushAdapterBuffers
svn path=/trunk/; revision=1827
2001-04-26 01:30:17 +00:00
Phillip Susi
595a5bad20 Added a check for end of fat chain before end of recorded length
svn path=/trunk/; revision=1826
2001-04-26 01:28:54 +00:00
Phillip Susi
21cbb4fcc1 FAT12GetNextCluster still needs fixed to not assume entire FAT fits in one cache page
Fixed minor typos
Temporary fix for FAT12GetNextCluster to at least not overflow the cache page

svn path=/trunk/; revision=1825
2001-04-26 01:28:15 +00:00
Phillip Susi
dc3c360885 Floppy driver updates, managed to boot system from floppy
svn path=/trunk/; revision=1824
2001-04-26 01:24:31 +00:00
Nedko Arnaudov
197fe0acf4 escape char when setting string value changed to ^
svn path=/trunk/; revision=1823
2001-04-24 23:05:56 +00:00
Nedko Arnaudov
05a5575ff1 minor changes
svn path=/trunk/; revision=1822
2001-04-24 22:53:00 +00:00
Nedko Arnaudov
5ac5ed1e37 quotation handling bug fixed
svn path=/trunk/; revision=1821
2001-04-24 22:32:31 +00:00
Emanuele Aliberti
f57fc2af90 Some FsRtl API updated (stubs) to sync with ntifs.h v25 by Bo Branten.
Added a new DDK header file to group any symbol definition related to
NTIFS: ddk/fstypes.h. Now ddk/ntifs.h includes fstypes and fsfuncs.

svn path=/trunk/; revision=1820
2001-04-24 18:36:39 +00:00
Emanuele Aliberti
a9dc0b739e Compilation bug fixed (due to having used an "unknown" field in the
SYSTEM_MODULE_ENTRY object I updated yesterday).

svn path=/trunk/; revision=1819
2001-04-23 22:00:28 +00:00
Emanuele Aliberti
4fc0783845 Query/SetSystemInformation: added stubs for information classes 0-53 (up to nt5/w2k).
Updated the SYSTEM_INFORMATION_CLASS enumeration with members names from the Net, Dabak and Nebbett.

svn path=/trunk/; revision=1818
2001-04-22 23:06:57 +00:00
Casper Hornstrup
fa71c1ff6c Added kernel debugger help (type help for a list of commands)
svn path=/trunk/; revision=1817
2001-04-22 14:47:00 +00:00
David Welch
40ef0ef8e2 Set the fs register properly on entry to the kernel from an irq
svn path=/trunk/; revision=1816
2001-04-21 22:39:42 +00:00
Eric Kohl
cb2396496c Implemented PsCreateSystemProcess()
svn path=/trunk/; revision=1815
2001-04-21 12:39:33 +00:00
David Welch
71d0b655ac Ignore config.h
svn path=/trunk/; revision=1814
2001-04-20 12:59:59 +00:00
David Welch
6b9f511801 Remove config.h
svn path=/trunk/; revision=1813
2001-04-20 12:59:13 +00:00
Casper Hornstrup
f0e807621f Call KiUpdateSystemTime from KiInterruptDispatch if on first processor.
Mask correct interrupts at each IRQ level
Fixed APIC error on initialization

svn path=/trunk/; revision=1812
2001-04-20 12:42:23 +00:00
David Welch
e344bc3faa UP fixes, was enabling interrupts too early
svn path=/trunk/; revision=1811
2001-04-18 03:31:19 +00:00
David Welch
6dd0418c50 Forgot to test compilation under UP
UP is default

svn path=/trunk/; revision=1810
2001-04-17 23:53:16 +00:00
David Welch
d41145488c SMP scheduling fixes
Obey thread affinity
Fix bogus invariant in KeAcquireSpinLockAtDpcLevel
Protect display with spinlock

svn path=/trunk/; revision=1809
2001-04-17 23:39:26 +00:00
David Welch
f29036d97b Further SMP work (associate an idle thread with each processor)
svn path=/trunk/; revision=1808
2001-04-17 04:11:01 +00:00
David Welch
2cfadf3b41 per processor TSS
svn path=/trunk/; revision=1807
2001-04-16 23:29:55 +00:00
David Welch
2dfc5cfcd4 Missing file
svn path=/trunk/; revision=1806
2001-04-16 18:06:29 +00:00
David Welch
85f85e8462 Further SMP initialization work (now boots all processors on SMP bochs)
Preparation for per-processor GDT

svn path=/trunk/; revision=1805
2001-04-16 16:29:03 +00:00
Nedko Arnaudov
add5e2d89f Added base support for user settings.
svn path=/trunk/; revision=1804
2001-04-16 05:11:54 +00:00
Nedko Arnaudov
2957aa4ce5 Added support for escape sequences when setting string value.
svn path=/trunk/; revision=1803
2001-04-16 05:09:51 +00:00
Nedko Arnaudov
368db861e4 unexpected declaration removed :}
svn path=/trunk/; revision=1802
2001-04-16 05:07:23 +00:00
Nedko Arnaudov
7f0a6dcd48 Implemented: default settings, loading settings from registry key, settings for prompt, normal text colors and command text colors.
svn path=/trunk/; revision=1801
2001-04-16 05:03:29 +00:00
Nedko Arnaudov
2b246092f3 Argument parser now ignores escape sequences.
svn path=/trunk/; revision=1800
2001-04-16 04:58:31 +00:00
Nedko Arnaudov
616e4d5242 Prompt now supports customization. Implementation is based on customization string with escape sequences. The prompt currently recognizes only one sequence in the customization string, \w - the current path.
svn path=/trunk/; revision=1799
2001-04-16 04:53:31 +00:00
David Welch
aeb62db2e8 Default config
svn path=/trunk/; revision=1798
2001-04-16 02:02:43 +00:00
David Welch
65b55ec6c6 SMP detection work
Changed initialization back
Changed to NT IRQLs
Check for return from main

svn path=/trunk/; revision=1797
2001-04-16 02:02:07 +00:00
Casper Hornstrup
bdfcd5630a Fixes for NE2000 driver
svn path=/trunk/; revision=1796
2001-04-16 01:16:36 +00:00
Casper Hornstrup
8c8d19c080 Added PnP and Power structures
svn path=/trunk/; revision=1795
2001-04-16 00:52:12 +00:00
Casper Hornstrup
262859736d Added PnP and Power stubs
svn path=/trunk/; revision=1794
2001-04-16 00:51:19 +00:00
Casper Hornstrup
e8fc884c37 Added PnP and Power structures
svn path=/trunk/; revision=1793
2001-04-16 00:44:54 +00:00
Nedko Arnaudov
1648d6ba62 gdb2\Makefile
svn path=/trunk/; revision=1792
2001-04-15 23:43:12 +00:00
Nedko Arnaudov
2c11752216 RegistryExplorer.cpp
svn path=/trunk/; revision=1791
2001-04-15 22:17:50 +00:00
Nedko Arnaudov
a70a5e92d0 INSTALL
svn path=/trunk/; revision=1790
2001-04-15 22:08:23 +00:00
Casper Hornstrup
94309de6e4 Added Intel MultiProcessor Specification support
svn path=/trunk/; revision=1789
2001-04-13 16:12:26 +00:00
David Welch
33408fe398 Reduced the size of the kernel disk image by moving the initial page
tables and page directory to the bss and initializing them at runtime.

svn path=/trunk/; revision=1788
2001-04-12 00:56:04 +00:00
David Welch
c21076a36c buildno doesn't rewrite the include/reactos/buildno.h
Discard relocations and import table from ntoskrnl
Reorganise multiboot.S

svn path=/trunk/; revision=1787
2001-04-11 22:13:21 +00:00
Casper Hornstrup
db0d247af0 Added loading of symbols when modules are loaded.
Print symbols on stack frame dump.
Put symbols in \SystemRoot\Symbols.

svn path=/trunk/; revision=1786
2001-04-11 12:46:05 +00:00
David Welch
33267a7bd2 More sensible dependencies scheme for configuration
svn path=/trunk/; revision=1785
2001-04-10 22:13:23 +00:00
Eric Kohl
78232dab8b Added functions to run MS VC++ 5/6 apps
svn path=/trunk/; revision=1784
2001-04-10 19:20:37 +00:00
Eric Kohl
6a0be77508 Fixed crash if exported function does not exist
svn path=/trunk/; revision=1783
2001-04-10 19:14:27 +00:00
David Welch
3a788d44ee Trace facility
svn path=/trunk/; revision=1782
2001-04-10 18:15:22 +00:00
David Welch
e40a4953f2 .cvsignore file
svn path=/trunk/; revision=1781
2001-04-10 18:12:51 +00:00
David Welch
bd5d1d2adf Correct problem with keyboard input not being accepted
Added kernel debugger
Kernel configuration

svn path=/trunk/; revision=1780
2001-04-10 17:48:17 +00:00
David Welch
db0e348770 Reorganised cache segment data structure
svn path=/trunk/; revision=1779
2001-04-09 02:45:04 +00:00
jean
de935b3cf0 undo replacement of FILETIME by LARGE_INTEGER.
indeed LARGE_INTEGER cause bad alignement.

svn path=/trunk/; revision=1778
2001-04-07 15:06:17 +00:00
Phillip Susi
9b90a6532b Fixed IoCompleteRequest() to directly call completion function, rather than queue an APC, if the target thread == current thread, because the APC code doesn't seem to correctly handle queueing an APC to the current thread
svn path=/trunk/; revision=1777
2001-04-06 04:29:16 +00:00
Eric Kohl
b2a5aa012c Fixed global and local memory functions
svn path=/trunk/; revision=1776
2001-04-05 01:54:42 +00:00
David Welch
b7437fe01a Fix longstanding bug in keyboard driver
svn path=/trunk/; revision=1775
2001-04-04 22:21:32 +00:00
Eric Kohl
8d1e0c87b3 Fixed a severe typo
svn path=/trunk/; revision=1774
2001-04-03 20:18:21 +00:00
David Welch
b63d768a18 Keep DPC queue size correct
Share section pages with cache if possible
If doing a read direct from disk (not via the cache) don't copy the data
MDL fixes

svn path=/trunk/; revision=1773
2001-04-03 17:25:50 +00:00
Phillip Susi
0858e6f0fb Oops... forgot to use physical address when programming the dma controller
svn path=/trunk/; revision=1772
2001-04-02 23:54:37 +00:00
Phillip Susi
9dfa505536 Fixed DPC bug: when the DPC is run, it has been removed from the queue and therefore can be queued again, the old code did not allow the dpc to be queued again until after the first one returned
svn path=/trunk/; revision=1771
2001-04-02 04:07:49 +00:00
Jason Filby
da6d4130c3 fixed a stupid bug
svn path=/trunk/; revision=1770
2001-04-01 15:18:35 +00:00
David Welch
6ca8f2a32b Use unix style path seperators
svn path=/trunk/; revision=1769
2001-04-01 14:44:40 +00:00
David Welch
c53353dfcb Reverted previous change, unnecessary
svn path=/trunk/; revision=1768
2001-03-31 17:02:17 +00:00
Jason Filby
fd1d23c72f reference moved hal.h
svn path=/trunk/; revision=1767
2001-03-31 16:46:59 +00:00
Phillip Susi
c48815ca85 Moved header
svn path=/trunk/; revision=1766
2001-03-31 16:36:46 +00:00
Jason Filby
0d87c04fdb last typo, really!
svn path=/trunk/; revision=1765
2001-03-31 16:12:13 +00:00
Jason Filby
c321566c86 *** empty log message ***
svn path=/trunk/; revision=1764
2001-03-31 16:09:17 +00:00
Jason Filby
fac82fed75 typo
svn path=/trunk/; revision=1763
2001-03-31 16:05:55 +00:00
Phillip Susi
57dfac271e Added declaration for MmAllocateContiguousAlignedMemory
svn path=/trunk/; revision=1762
2001-03-31 16:02:07 +00:00
Phillip Susi
a758924464 Added FILE_XXX_ALIGNMENT defines
svn path=/trunk/; revision=1761
2001-03-31 16:01:42 +00:00
Phillip Susi
137c93f9c6 DMA support added
svn path=/trunk/; revision=1760
2001-03-31 16:01:03 +00:00
Jason Filby
f56e6b7e9e oops
svn path=/trunk/; revision=1759
2001-03-31 16:00:24 +00:00
Jason Filby
f22ea77911 disable freetype for now
svn path=/trunk/; revision=1758
2001-03-31 15:56:57 +00:00
Phillip Susi
d8538e9795 Massive floppy work
svn path=/trunk/; revision=1757
2001-03-31 15:53:56 +00:00
Phillip Susi
6b46ea08e7 Go back to stripping only debug syms, not everything, from ntoskrnl because the boot loader doesn't correctly process the image and create a BSS, so the BSS overwrites the debug info if it is there, or the first driver loaded if it is not.
svn path=/trunk/; revision=1756
2001-03-31 15:46:08 +00:00
Jason Filby
f3b6ab3603 Indentation corrected, new tests
svn path=/trunk/; revision=1755
2001-03-31 15:43:22 +00:00
Jason Filby
389375c4ee Indentation corrected, minor fixes
svn path=/trunk/; revision=1754
2001-03-31 15:40:34 +00:00
Jason Filby
14c634ca97 Identation corrected, many fixes and minor improvements, initial DIB support
svn path=/trunk/; revision=1753
2001-03-31 15:35:08 +00:00
David Welch
a934fd1c24 Fix for not valid PE module bug
svn path=/trunk/; revision=1752
2001-03-31 12:56:37 +00:00
David Welch
4e81d099cf Check for failed allocation
Split up kernel32 stubs
Print proper stack trace for user mode exceptions

svn path=/trunk/; revision=1751
2001-03-31 01:17:30 +00:00
Phillip Susi
5907d91e41 apps/uitest does not seem to exist, don't try to make it
svn path=/trunk/; revision=1750
2001-03-30 22:10:47 +00:00
David Welch
d135a77c67 Enable atom functions
Don't load NOLOAD sections
Print additional debugging information about module loading

svn path=/trunk/; revision=1749
2001-03-30 17:26:42 +00:00
David Welch
381057612c Don't map NOLOAD sections
svn path=/trunk/; revision=1748
2001-03-30 15:14:53 +00:00
Jason Filby
74412de062 Initialize the VGA to work with display driver's vgavideo.c
svn path=/trunk/; revision=1747
2001-03-29 17:45:50 +00:00
David Welch
fbb680dffd Strip everything from ntoskrnl
svn path=/trunk/; revision=1746
2001-03-29 17:24:43 +00:00
David Welch
877f965575 Remove debugging code
svn path=/trunk/; revision=1745
2001-03-29 02:25:10 +00:00
David Welch
ca5d9b1a2d Fixed int 10 problems
Guard pages for all thread stacks

svn path=/trunk/; revision=1744
2001-03-29 01:14:00 +00:00
David Welch
d9925196f3 Catch stack over/underflows
svn path=/trunk/; revision=1743
2001-03-28 14:24:05 +00:00
David Welch
bde0898ab5 Fixed page list initialization
svn path=/trunk/; revision=1742
2001-03-28 11:57:51 +00:00
Phillip Susi
eca8ca8582 Also removed call to ExAllocatePool from DPRINT1
Why the heck was this in DPRINT1 and not DPRINT?

svn path=/trunk/; revision=1741
2001-03-28 04:43:02 +00:00
Phillip Susi
b20a5f12ed Removed call to ExAllocatePool from CHECKPOINT1
svn path=/trunk/; revision=1740
2001-03-28 03:06:55 +00:00
David Welch
09ad24f08c Print addresses in stack frames even early in the boot
svn path=/trunk/; revision=1739
2001-03-27 21:43:43 +00:00
David Welch
634bb6b997 Set the io bitmap pointer beyond the TSS limit
svn path=/trunk/; revision=1738
2001-03-26 23:01:39 +00:00
Emanuele Aliberti
988ec8cb30 This is really a bare bones counter. It works with the last build.
Not really useful, but lets you watch ROS working for hours.
Counters slow down dramatically (486/66) when many instances are
running (3+). Also a subtle CSR console support bug appears: when
you switch console, if the restored one wrote below the bottom line,
current Y is not the bottom line anymore.

svn path=/trunk/; revision=1737
2001-03-26 21:30:20 +00:00
David Welch
8c86bcfe89 Fixes for page list initialization
V86 mode fixes

svn path=/trunk/; revision=1736
2001-03-26 20:46:53 +00:00
David Welch
51a205bc71 Fixed bug with calling RtlFreeUnicodeString too early in LdrFixupForward
svn path=/trunk/; revision=1735
2001-03-26 16:33:10 +00:00
Phillip Susi
b1601c09d8 Fixed incorrect assertion in IoAllocateController: assert_irql() seems to check for IRQL <= current IRQL, but this function must be called with current IRQL == DISPATCH_LEVEL, not <= DISPATCH_LEVEL.
svn path=/trunk/; revision=1734
2001-03-26 05:03:54 +00:00
Phillip Susi
cf4a06ff33 fixed bug in MmAllocateContiguousAlignedMemory due to uninitialized BaseAddress local
svn path=/trunk/; revision=1733
2001-03-26 04:38:39 +00:00
David Welch
e065bf41ff Bug fixes
svn path=/trunk/; revision=1732
2001-03-26 00:56:53 +00:00
David Welch
9b95a9991c Disable debug prints
svn path=/trunk/; revision=1731
2001-03-25 19:05:30 +00:00
David Welch
99a644a366 Further fixes
svn path=/trunk/; revision=1730
2001-03-25 18:56:13 +00:00
David Welch
c2d9004a56 Oops, forget this file
svn path=/trunk/; revision=1729
2001-03-25 11:48:18 +00:00
David Welch
51f1b4ac50 V86 mode fixes
Preparation for paging support

svn path=/trunk/; revision=1728
2001-03-25 03:34:30 +00:00
David Welch
9b3c1a2a1d Make the trap handlers work early in the boot process
svn path=/trunk/; revision=1727
2001-03-22 11:14:22 +00:00
Casper Hornstrup
5bbfcbdcde Pass RemainingPath for device type FILE_DEVICE_NETWORK
svn path=/trunk/; revision=1726
2001-03-21 23:30:20 +00:00
Casper Hornstrup
61c860daf7 Set FileObject in stack location in NtDeviceIoControlFile
svn path=/trunk/; revision=1725
2001-03-21 23:27:18 +00:00
Casper Hornstrup
547f4b4197 Fix for MmBuildMdlForNonPagedPool
svn path=/trunk/; revision=1724
2001-03-21 23:06:08 +00:00
Casper Hornstrup
0f3822bfb9 Added script for creating binary distribution
svn path=/trunk/; revision=1723
2001-03-21 22:34:24 +00:00
Casper Hornstrup
0b3adffd26 Added classes for cabinet handling
Added a cabinet manager

svn path=/trunk/; revision=1722
2001-03-21 22:32:33 +00:00
David Welch
591d955230 Bug fixes
svn path=/trunk/; revision=1721
2001-03-20 16:09:44 +00:00
Eric Kohl
7a86200cdc Use vidport-functions instead of ntdll-functions
svn path=/trunk/; revision=1720
2001-03-20 15:11:51 +00:00
Eric Kohl
04c0aa0853 Established forwarded exports in vidport.sys
svn path=/trunk/; revision=1719
2001-03-20 15:09:02 +00:00
Eric Kohl
e3b61f2e00 Established forwarded exports in win32k.sys
svn path=/trunk/; revision=1718
2001-03-20 15:06:22 +00:00
Phillip Susi
486ce0ad1a apps/exp does not seem to exist, prevents full make, removing
svn path=/trunk/; revision=1717
2001-03-20 03:09:01 +00:00
David Welch
32e24ab35e User exception handling doesn't work yet
svn path=/trunk/; revision=1716
2001-03-20 00:52:21 +00:00
David Welch
cebfcd7c5e One more bug in MmAllocateContiguousPages
Removed debugging code

svn path=/trunk/; revision=1715
2001-03-18 21:28:30 +00:00
David Welch
ffca6e4a0a Typo
svn path=/trunk/; revision=1714
2001-03-18 20:30:22 +00:00
Emanuele Aliberti
f8ad495ac2 Really simple application that displays how much time elaped.
svn path=/trunk/; revision=1713
2001-03-18 20:20:13 +00:00
Emanuele Aliberti
f907dc6e87 KERNEL32.GetSystemTimeAsFileTime prototype added.
svn path=/trunk/; revision=1712
2001-03-18 20:18:34 +00:00
David Welch
7e2c26824a Beginnings of user-mode debugging support.
svn path=/trunk/; revision=1711
2001-03-18 19:52:38 +00:00
David Welch
1e02a7d8d9 Allocate pages beginning from the top of memory
svn path=/trunk/; revision=1710
2001-03-18 19:37:54 +00:00
David Welch
d60628a01b Fixes for APC handling
Fixes for exceptions
Remove KeAddTimeoutThread
Beginnings of debug handling
Fixes for contiguous memory allocation
Cancel the thread timer before termination

svn path=/trunk/; revision=1709
2001-03-18 19:35:14 +00:00
Emanuele Aliberti
01846dd237 Stubs for LookupPrivilege* added.
svn path=/trunk/; revision=1708
2001-03-17 22:05:25 +00:00
David Welch
5d2401e39c More missing files
svn path=/trunk/; revision=1707
2001-03-17 12:20:13 +00:00
David Welch
1a0448a35b Bug fixes
Started work on exception handling

svn path=/trunk/; revision=1706
2001-03-17 11:11:11 +00:00
David Welch
58fc2c8cf8 Oops, missing files
svn path=/trunk/; revision=1705
2001-03-17 09:43:27 +00:00
David Welch
6fbeba1e7c Moved microkernel to the architecture specific directory
svn path=/trunk/; revision=1704
2001-03-16 23:05:00 +00:00
David Welch
2a613a30c4 Removed obsolete header files
Updated copyright notices

svn path=/trunk/; revision=1703
2001-03-16 18:11:24 +00:00
David Welch
9926c78c7f Removed obsolete file
svn path=/trunk/; revision=1702
2001-03-16 16:23:05 +00:00
David Welch
18015b2244 * include/ddk/zw.h: Corrected declarations of NtCreateProfile,
NtQueryIntervalProfile, NtSetIntervalProfile.
* include/ddk/zwtypes.h: Added definitions of KPROFILE_SOURCE.
* ntoskrnl/include/internal/ke.h: Added the interrupted EIP as a
parameter to KiUpdateSystemTime for profiling purposes.
* ntoskrnl/include/internal/nt: Added declaration for profiling
support initialization.
* ntoskrnl/ke/timer.c (KiUpdateSystemTime, KeExpireTimers): Call
the profiling code on a timer interrupt with the interrupt EIP.
* ntoskrnl/ke/i386/irq.c (KiDispatchInterrupt): Pass the
interrupted EIP to KiUpdateSystemTime.
* ntoskrnl/mm/virtual.c (NtReadVirtualMemory, NtWriteVirtualMemory):
Release the MDLs used properly.
* ntoskrnl/nt/nt.c: Call the profiling support initialization.
* ntoskrnl/nt/ntevent.c (NtCreateEvent): Don't try copying the
ObjectAttributes parameter if it is NULL.
* ntoskrnl/nt/profile.c: Implemented profiling.

svn path=/trunk/; revision=1701
2001-03-16 16:05:34 +00:00
David Welch
18f3b6c58b * ntoskrnl/include/internal/safe.h: Corrected typo.
* ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtQueryEvent):
  Corrected typos.
* ntoskrnl/rtl/mem.c: Missing header file.

svn path=/trunk/; revision=1700
2001-03-16 10:58:47 +00:00
David Welch
22dc9e2a5e * ntoskrnl/include/internal/safe.h: Add definitions for handling
potentially unsafe pointers.

svn path=/trunk/; revision=1699
2001-03-16 09:53:28 +00:00
David Welch
3744b5d4cf * ntoskrnl/include/internal/mm.h: Removed MmSafeCopyToUser and
MmSafeCopyFromUser as source files need these but don't want internal
  mm definitions.
* ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtPulseEvent,
  NtQueryEvent, NtResetEvent, NtSetEvent): Copy data to and from user mode
  safely.
* ntoskrnl/rtl/mem.c (MmCopyToCaller, MmCopyFromCaller): Helper functions
  for copying data to and from potentially unsafe pointers.

svn path=/trunk/; revision=1698
2001-03-16 09:50:38 +00:00
David Welch
549cb5b03d Further fixes
svn path=/trunk/; revision=1697
2001-03-16 00:00:47 +00:00
David Welch
2eb05bdbc5 Further dependency fixes
svn path=/trunk/; revision=1696
2001-03-15 23:41:31 +00:00
David Welch
7244e5bac9 Hopefully final dependencies fixes
svn path=/trunk/; revision=1695
2001-03-15 22:13:50 +00:00
David Welch
e7f98c9000 Missing file
svn path=/trunk/; revision=1694
2001-03-15 20:15:05 +00:00
David Welch
be2ca4fccd Oops, missing files
svn path=/trunk/; revision=1693
2001-03-15 18:52:45 +00:00
David Welch
a068c65d79 Oops, cope if the dependency list is empty
svn path=/trunk/; revision=1692
2001-03-15 18:49:17 +00:00
David Welch
c3c30d0692 Further dependency tracking fixes
svn path=/trunk/; revision=1691
2001-03-15 18:37:29 +00:00
David Welch
6fc1bdc912 Merge adjacent free blocks in the non-paged pool
Don't print the timer tick count to the screen

svn path=/trunk/; revision=1690
2001-03-14 23:19:14 +00:00
David Welch
d12635ff66 Remove part of the script
svn path=/trunk/; revision=1689
2001-03-14 16:36:26 +00:00
David Welch
5e5862c7fe More dependency fixes
svn path=/trunk/; revision=1688
2001-03-14 16:30:08 +00:00
David Welch
fc5f4ae9a5 Some work on portabilitity
svn path=/trunk/; revision=1687
2001-03-14 00:21:22 +00:00
David Welch
f7186d4cc3 Disable pool validation by default
svn path=/trunk/; revision=1686
2001-03-13 21:46:43 +00:00
David Welch
fba831e913 Reenable pool validation
svn path=/trunk/; revision=1685
2001-03-13 21:39:47 +00:00
Jason Filby
efbd594370 OLE32 header files from Jurgen Van Gael
svn path=/trunk/; revision=1684
2001-03-13 19:00:13 +00:00
David Welch
33702a0775 Retain reference to file objects so cached data isn't automatically loss
when the last handle is closed

svn path=/trunk/; revision=1683
2001-03-13 17:47:47 +00:00
David Welch
47ea39add9 Represent page-in operations by descriptors
svn path=/trunk/; revision=1682
2001-03-13 16:25:55 +00:00
David Welch
c20f2479b6 Further dependency tracking fixes
svn path=/trunk/; revision=1681
2001-03-12 19:23:48 +00:00
David Welch
7853be9c86 Escape '\' on UNIX
svn path=/trunk/; revision=1680
2001-03-12 17:32:54 +00:00
David Welch
6ea1527cfc Fixes for dependency tracking
svn path=/trunk/; revision=1679
2001-03-12 16:10:57 +00:00
David Welch
d520a12907 Close section handle after NtCreateProces in KERNEL32.CreateProcess
Cleanup after file object dereference
Cleanup after section object dereference

svn path=/trunk/; revision=1678
2001-03-09 14:40:28 +00:00
David Welch
6e9d388644 Reverted broken code
svn path=/trunk/; revision=1677
2001-03-08 22:48:42 +00:00
David Welch
6e89a9d21c Proper cleanup after processes
svn path=/trunk/; revision=1676
2001-03-08 22:06:02 +00:00
Carl Nettelblad
03e327f37f Current directory now always with correct casing.
svn path=/trunk/; revision=1675
2001-03-07 22:29:09 +00:00
David Welch
c5cdaa420a More .cvsignore files
svn path=/trunk/; revision=1674
2001-03-07 16:55:42 +00:00
David Welch
c706428a2b Added tagging of most allocates
Added facility to print out newly allocated blocks from the non paged pool

svn path=/trunk/; revision=1673
2001-03-07 16:48:45 +00:00
Eric Kohl
05428a2fea Added request routine for IRP_MJ_CLEANUP
svn path=/trunk/; revision=1672
2001-03-07 13:44:41 +00:00
David Welch
3073e95ed9 Print out the contents of the non-paged pool on SysRq+'A'
Bug fixes

svn path=/trunk/; revision=1671
2001-03-07 08:57:09 +00:00
Carl Nettelblad
f665b3f2f4 FILE_NAME_INFORMATION, returning correct casing thanks to changes in create.c
svn path=/trunk/; revision=1670
2001-03-06 23:36:35 +00:00
Carl Nettelblad
29552067b3 NtQueryObject in early test version and reorganization of NtQueryInformationFile.
svn path=/trunk/; revision=1669
2001-03-06 23:34:39 +00:00
Carl Nettelblad
870a302f96 Restoring NDEBUG flag again.
svn path=/trunk/; revision=1668
2001-03-06 23:31:44 +00:00
Carl Nettelblad
9e66717a35 Storing the real casing of names internally.
svn path=/trunk/; revision=1667
2001-03-06 23:28:42 +00:00
David Welch
43038e9c15 Hide dependency files
Wildcard characters are illegal in filenames

svn path=/trunk/; revision=1666
2001-03-06 17:28:25 +00:00
David Welch
e87e6d58ee And again.
svn path=/trunk/; revision=1665
2001-03-06 14:52:58 +00:00
David Welch
971b171d02 Minor dependency tracking fixes
svn path=/trunk/; revision=1664
2001-03-06 14:51:07 +00:00
David Welch
044ab2b0df Automatic dependency tracking
svn path=/trunk/; revision=1663
2001-03-06 14:41:18 +00:00
Eric Kohl
2d5f3d1c74 Fixed typos
Added more safety checks
Minor cleanup

svn path=/trunk/; revision=1662
2001-03-06 08:19:58 +00:00
Carl Nettelblad
de10767975 Additional fixes.
svn path=/trunk/; revision=1661
2001-03-06 06:20:36 +00:00
Eric Kohl
2ec9eaf736 Increased number of busy retries
svn path=/trunk/; revision=1660
2001-03-04 00:46:46 +00:00
Carl Nettelblad
d5d8d819b8 Reflecting changes in crtdll.
svn path=/trunk/; revision=1659
2001-03-03 13:28:28 +00:00
Carl Nettelblad
afe0e9f601 Fragmented directories and crosslinking related fixes.
svn path=/trunk/; revision=1658
2001-03-02 15:59:16 +00:00
Carl Nettelblad
d3e61a64dd Fixes for cmd copy command.
svn path=/trunk/; revision=1657
2001-03-02 15:45:31 +00:00
Eric Kohl
5149f0d29a Some atom prototype fixes
svn path=/trunk/; revision=1656
2001-03-01 15:36:34 +00:00
Eric Kohl
bf9d9a12e7 Fix for RtlUnicodeStringToInteger
svn path=/trunk/; revision=1655
2001-03-01 15:30:36 +00:00
David Welch
574a1b82f4 Changed wildcare handling (Carl Nettelblad)
svn path=/trunk/; revision=1654
2001-03-01 13:46:22 +00:00
David Welch
a2329a46e9 Fixed from Carl Nettelblad
svn path=/trunk/; revision=1653
2001-03-01 07:48:17 +00:00
Phillip Susi
c9a6908fb9 Fixed crash on help command, due to a buffer overflow. Thanks to jim4
svn path=/trunk/; revision=1652
2001-02-28 23:51:58 +00:00
Eric Kohl
ea6cacb6ed Various improvements by Carl Nettelblad.
svn path=/trunk/; revision=1651
2001-02-28 22:33:23 +00:00
David Welch
80ec0821f8 Allow allocating aligned, contiguous memory
svn path=/trunk/; revision=1650
2001-02-28 18:23:32 +00:00
Casper Hornstrup
327980fe31 Return affinity in HalpGetSystemInterruptVector
svn path=/trunk/; revision=1649
2001-02-25 12:54:37 +00:00
Casper Hornstrup
85e1649fc4 Fix for RtlUnicodeStringToInteger
svn path=/trunk/; revision=1648
2001-02-25 12:51:43 +00:00
Eric Kohl
c3dc053ba2 Fixed a horrible typo :-)
svn path=/trunk/; revision=1647
2001-02-22 23:46:45 +00:00
Eric Kohl
3121974d42 Implemented forwarded exports in kernel-mode
svn path=/trunk/; revision=1646
2001-02-21 18:19:19 +00:00
David Welch
c1c75ffd5e Fix from Mike Lerwill for KeStallExecutionProcessor
svn path=/trunk/; revision=1645
2001-02-20 14:43:46 +00:00
David Welch
15445cf1c8 Corrected va_arg bugs
Don't require c++ for compilation
Make sure the various stddef.h headers are kept seperate

svn path=/trunk/; revision=1644
2001-02-19 15:04:51 +00:00
David Welch
ac82b90278 Fix for memory management issue.
svn path=/trunk/; revision=1643
2001-02-18 22:16:05 +00:00
Phillip Susi
24fea578c1 Updated instructions
svn path=/trunk/; revision=1642
2001-02-18 21:35:21 +00:00
David Welch
209d2a0bdd Removed timer app
svn path=/trunk/; revision=1641
2001-02-18 21:04:09 +00:00
Phillip Susi
835e5e69e5 Ignore csrss.coff
svn path=/trunk/; revision=1640
2001-02-18 20:15:14 +00:00
Phillip Susi
dae0efdd4a Ignore keyboard.coff, keyboard.sys.unstripped
svn path=/trunk/; revision=1639
2001-02-18 20:11:41 +00:00
Phillip Susi
fd25f6dae0 Ignore vfatfs.coff
svn path=/trunk/; revision=1638
2001-02-18 20:10:32 +00:00
Phillip Susi
c57a9b4991 Ignore vidport.coff
svn path=/trunk/; revision=1637
2001-02-18 20:07:41 +00:00
Phillip Susi
2b3a1f40c1 Ignore vgamp.coff
svn path=/trunk/; revision=1636
2001-02-18 19:58:41 +00:00
Phillip Susi
689a632cf7 Ignore vgaddi.coff, vgaddi.dll
svn path=/trunk/; revision=1635
2001-02-18 19:56:14 +00:00
Phillip Susi
b65738db8d Ignore ide.sys.unstripped
svn path=/trunk/; revision=1634
2001-02-18 19:55:17 +00:00
Phillip Susi
4546061999 Ignore floppy.sys.unstripped
svn path=/trunk/; revision=1633
2001-02-18 19:54:37 +00:00
Phillip Susi
20612fed4c Ignore blue.sys.unstripped
svn path=/trunk/; revision=1632
2001-02-18 19:53:37 +00:00
Phillip Susi
99529fbb93 Missing .cvsignore
svn path=/trunk/; revision=1631
2001-02-18 19:47:42 +00:00
Phillip Susi
e9143b26d7 Fixes to waitable timer implementation
svn path=/trunk/; revision=1630
2001-02-18 19:43:15 +00:00
Phillip Susi
3d4886b292 Switched to using waitable timers instead of Sleep(), gives more accurate time cycles, also added some small optimizations
svn path=/trunk/; revision=1629
2001-02-18 19:31:38 +00:00
Emanuele Aliberti
349ae0c799 CMD: implemented IF [NOT] DEFINED variable command
CMD: fixed IF NOT EXIST file command

svn path=/trunk/; revision=1628
2001-02-18 18:51:46 +00:00
David Welch
f827a8f124 Fixed reference counting of page tables
Don't print addresses that aren't in the text segment of a module

svn path=/trunk/; revision=1627
2001-02-18 17:43:32 +00:00
Eric Kohl
d458692c89 Removed obsolete code
svn path=/trunk/; revision=1626
2001-02-17 17:42:46 +00:00
Eric Kohl
65a803db11 Added missing RtlGetProcessHeaps() prototype
svn path=/trunk/; revision=1625
2001-02-17 17:40:05 +00:00
Eric Kohl
0e40521339 Fixed timer access right
svn path=/trunk/; revision=1624
2001-02-17 00:07:49 +00:00
Eric Kohl
9f2db0a1d2 Established forwarded exports and removed superfluous functions
svn path=/trunk/; revision=1623
2001-02-17 00:02:32 +00:00
David Welch
beae346469 Changed irq handler from C to assembler
Began work on holding information about active page operations

svn path=/trunk/; revision=1622
2001-02-16 18:32:20 +00:00
David Welch
727b62c27f Fixed MmProbeAndLockPages issues pointed out by Philip Susi
svn path=/trunk/; revision=1621
2001-02-14 02:53:54 +00:00
Phillip Susi
07142de752 Darnit, don't override the rules.mak rule for building resources
svn path=/trunk/; revision=1620
2001-02-12 03:50:00 +00:00
Eric Kohl
933ff9a467 Changed version information for 0.0.17
svn path=/trunk/; revision=1619
2001-02-11 15:02:48 +00:00
Eric Kohl
b91cda60d8 RtlInitializeCriticalSection() returns NTSTATUS
svn path=/trunk/; revision=1618
2001-02-11 00:15:56 +00:00
David Welch
9359db14a0 Section and general memory manager enhancements including COW
svn path=/trunk/; revision=1617
2001-02-10 22:51:11 +00:00
Eric Kohl
29c4727f7a Preliminary command line fix
svn path=/trunk/; revision=1616
2001-02-10 22:30:21 +00:00
Eric Kohl
6922d2a9e5 GetModuleFileName[A/W] must cope with NULL module handles
svn path=/trunk/; revision=1615
2001-02-10 22:29:35 +00:00
Eric Kohl
af68ad91d4 Preparations for use of forwarded exports
svn path=/trunk/; revision=1614
2001-02-10 22:26:26 +00:00
Eric Kohl
03fd77240f Fixed typos
svn path=/trunk/; revision=1613
2001-02-10 22:23:30 +00:00
Emanuele Aliberti
b611b79b36 KERNEL32.GetProcessVersion partial implementation.
KERNEL32.GetSystemInfo about finished.

svn path=/trunk/; revision=1612
2001-02-10 22:01:50 +00:00
Emanuele Aliberti
37361ed1e8 GetProcessVersion prototype missing.
svn path=/trunk/; revision=1611
2001-02-10 22:00:20 +00:00
Eric Kohl
41280eeeb5 Implemented handling of forwarded exports
svn path=/trunk/; revision=1610
2001-02-10 10:04:39 +00:00
David Welch
c87bd2d365 More FAT32 fixes
svn path=/trunk/; revision=1609
2001-02-06 20:17:35 +00:00
David Welch
c93d52a405 Use import hint if present
svn path=/trunk/; revision=1608
2001-02-06 05:50:50 +00:00
Phillip Susi
ae14d5ffc6 If APC routines are supposed to be STDCALL, then they should all be, and a lot of code needs fixed. Because all of the existing code seems to not use STDCALL, neither should the normal routine. This was causing ntoskrnl to fail to compile
svn path=/trunk/; revision=1607
2001-02-06 05:12:42 +00:00
Phillip Susi
501fee0d15 Fixed makefile to use default rule for building resources, and fixed resource includes to use paths relative to the include dir given to windres by rules.mak
svn path=/trunk/; revision=1606
2001-02-06 03:58:34 +00:00
David Welch
bcc1b4e9a5 Implemented binary search of the export tables
svn path=/trunk/; revision=1605
2001-02-06 02:03:35 +00:00
David Welch
b2fe7525bf Reads of the FAT on FAT32 filesystems go through the cache, writes are
disabled

svn path=/trunk/; revision=1604
2001-02-06 00:41:19 +00:00
David Welch
076c1c6ac3 Fixed timer code
Fixed NtClose return in case of error
Added new APC-like primitive for terminating threads
Fixed restriction on size of working set

svn path=/trunk/; revision=1603
2001-02-06 00:11:20 +00:00
Phillip Susi
ae6b859854 Fixed clock increment for 10ms clock, and bug in computing relative time
svn path=/trunk/; revision=1602
2001-02-05 02:31:04 +00:00
Eric Kohl
fef0ed0d35 Implemented KeRemoveQueueApc() (not exported).
Implemented timer object.

svn path=/trunk/; revision=1601
2001-02-04 17:28:13 +00:00
Eric Kohl
543839bcee Implemented ObOpenObjectByPointer().
svn path=/trunk/; revision=1600
2001-02-03 23:25:06 +00:00
Eric Kohl
2a2b027dc1 Fixed command line size
Added workaround for broken command line support

svn path=/trunk/; revision=1599
2001-02-03 10:40:19 +00:00
Eric Kohl
62d9e11763 Reduced command line size in ReactOS mode
svn path=/trunk/; revision=1598
2001-02-03 10:37:51 +00:00
Eric Kohl
a7772a9954 Fixed command line size
svn path=/trunk/; revision=1597
2001-02-03 10:36:11 +00:00
Jason Filby
a34348ef4e *** empty log message ***
svn path=/trunk/; revision=1596
2001-02-03 10:29:54 +00:00
jean
47f77fa056 oops! leave make a pop, and caller of alloca make esp = esp +16.
svn path=/trunk/; revision=1595
2001-02-03 10:28:28 +00:00
Jason Filby
766ded4e0f Corrected line feeds so that DOS can run the .bat
svn path=/trunk/; revision=1594
2001-02-03 10:28:14 +00:00
Eric Kohl
ec9ef6951c Added access right mapping
Fixed access rights

svn path=/trunk/; revision=1593
2001-02-02 20:49:40 +00:00
jean
5f529d5a90 *** empty log message ***
svn path=/trunk/; revision=1592
2001-02-01 16:51:03 +00:00
jean
65249c23ae correct some bugs in spawn... functions
svn path=/trunk/; revision=1591
2001-02-01 16:44:19 +00:00
jean
c8f92d26a9 changes in alloca because gcc push only ebp at begin of function
svn path=/trunk/; revision=1590
2001-02-01 16:37:08 +00:00
jean
51c7c6091a fourth argument of WriteConsoleA is mandatory
svn path=/trunk/; revision=1589
2001-02-01 16:30:46 +00:00
Phillip Susi
3c5287c859 Forgot to commit bug fix for LoadString()
svn path=/trunk/; revision=1588
2001-02-01 00:04:44 +00:00
Phillip Susi
ed2b81a1b5 Minor fix
svn path=/trunk/; revision=1587
2001-01-31 03:03:20 +00:00
Phillip Susi
2965b6c9d7 Had to rearange some structure members
svn path=/trunk/; revision=1586
2001-01-31 02:27:04 +00:00
Phillip Susi
79c82716fa Bug fixes and redesign of a few ioctls
svn path=/trunk/; revision=1585
2001-01-31 02:24:46 +00:00
Phillip Susi
20916cab69 A few bug fixes
svn path=/trunk/; revision=1584
2001-01-31 02:23:52 +00:00
Phillip Susi
b93435c7db Bug fixes and speedup
svn path=/trunk/; revision=1583
2001-01-31 02:22:09 +00:00
Eric Kohl
1416a36841 Corrected unknown parameter
Added ObOpenObjectByPointer() stub

svn path=/trunk/; revision=1582
2001-01-29 00:32:13 +00:00
Emanuele Aliberti
7bfcc9b94c Stubs for some new LPC functions (w2k).
Added some base checking in NtCreatePort's parameters.

svn path=/trunk/; revision=1581
2001-01-29 00:13:22 +00:00
Eric Kohl
17b93d7d9b Added mapping of access rights
Removed user-mode types

svn path=/trunk/; revision=1580
2001-01-28 21:37:37 +00:00
Eric Kohl
c06ef435fb Added mapping of access rights
svn path=/trunk/; revision=1579
2001-01-28 17:42:56 +00:00
Eric Kohl
6c726dfe40 Added mapping of access rights
Improved 'open' function

svn path=/trunk/; revision=1578
2001-01-28 15:17:52 +00:00
Eric Kohl
9331d6391e Added mapping of access rights
svn path=/trunk/; revision=1577
2001-01-28 15:13:11 +00:00
Eric Kohl
d4850da19d Fixed a compiler warning
svn path=/trunk/; revision=1576
2001-01-28 01:20:20 +00:00
Emanuele Aliberti
ff1de6a212 Simple W32 telnet client.
Version resource added to ping and roshttpd.

svn path=/trunk/; revision=1575
2001-01-27 22:38:43 +00:00
Eric Kohl
5786d70e39 Fixed _iob bug
svn path=/trunk/; revision=1574
2001-01-27 20:56:44 +00:00
Eric Kohl
dc0568827a Fixed timer issues
svn path=/trunk/; revision=1573
2001-01-27 19:35:04 +00:00
Phillip Susi
2d87dedf3e OOps... that was already defined elsewhere...
svn path=/trunk/; revision=1572
2001-01-26 05:24:17 +00:00
jean
fb75aa1293 changes in _iob
svn path=/trunk/; revision=1571
2001-01-25 19:01:16 +00:00
jean
03832de6e4 *** empty log message ***
svn path=/trunk/; revision=1570
2001-01-25 18:59:49 +00:00
jean
12e9069480 correct some arguments for CreateFile
svn path=/trunk/; revision=1569
2001-01-25 18:55:33 +00:00
jean
98414449d5 *** empty log message ***
svn path=/trunk/; revision=1568
2001-01-25 18:51:26 +00:00
Phillip Susi
dee175afca Added LoadString() stringtable resource support
svn path=/trunk/; revision=1567
2001-01-25 05:39:31 +00:00
Phillip Susi
74e0c4a781 A few more console fixes
svn path=/trunk/; revision=1566
2001-01-25 05:37:03 +00:00
Phillip Susi
a6a0f5ae18 Added declarations for waitable timer functions
svn path=/trunk/; revision=1565
2001-01-25 05:36:21 +00:00
Phillip Susi
1ec1a6741c Fixed backwards parameters in FindResource()
svn path=/trunk/; revision=1564
2001-01-25 02:20:05 +00:00
Phillip Susi
a9527291d6 Fixed backspace handling
svn path=/trunk/; revision=1563
2001-01-24 05:13:12 +00:00
Phillip Susi
3943df51ea Fixed broken console code
svn path=/trunk/; revision=1562
2001-01-24 05:11:21 +00:00
Phillip Susi
89e2e7a616 Fixed kernel loader code also to handle uninitialized sections
svn path=/trunk/; revision=1561
2001-01-24 04:43:54 +00:00
Phillip Susi
207393f045 Both GetModuleHandleA and GetModuleHandleW need to handle NULL module name
svn path=/trunk/; revision=1560
2001-01-24 04:41:58 +00:00
Eric Kohl
42d7089e72 Removed fixed stack base address
svn path=/trunk/; revision=1559
2001-01-23 09:58:12 +00:00
Phillip Susi
6579aafa03 Undoing last commit, causes kernel to crash on boot. David, any idea why?
svn path=/trunk/; revision=1558
2001-01-23 04:46:08 +00:00
Phillip Susi
b6593ffc1b Fixed loader bug with uninitialized sections
svn path=/trunk/; revision=1557
2001-01-23 04:37:13 +00:00
Casper Hornstrup
e6c8459347 no message
svn path=/trunk/; revision=1556
2001-01-21 21:04:53 +00:00
Phillip Susi
782b28151b Applied David Welsh's fix for getting physical address from specified process instead of current one here as well
svn path=/trunk/; revision=1555
2001-01-21 19:00:59 +00:00
David Welch
10f230ae0a Fixed bug in NtFreeVirtualMemory reported by Philip Susi
Added all thread information classes
Began work on fixing suspend/resume

svn path=/trunk/; revision=1554
2001-01-21 14:54:30 +00:00
Phillip Susi
3f694e507f Keyboard driver should not translate \r to \n
svn path=/trunk/; revision=1553
2001-01-21 00:13:41 +00:00
Phillip Susi
f353289fba Reworked console code to use frame buffers and input queues
svn path=/trunk/; revision=1552
2001-01-21 00:11:54 +00:00
Phillip Susi
5d6f1d7dfa Added InterlockedXXX functions, probobly should use a different name
svn path=/trunk/; revision=1551
2001-01-21 00:09:05 +00:00
Phillip Susi
5c0fb84170 New console client support
svn path=/trunk/; revision=1550
2001-01-21 00:07:03 +00:00
Phillip Susi
b360ee177d Fixed a few bugs and enhanced performance
svn path=/trunk/; revision=1549
2001-01-21 00:05:53 +00:00
Eric Kohl
0f09a6d59c Added services.exe to boot sequence
svn path=/trunk/; revision=1548
2001-01-20 19:01:37 +00:00
Eric Kohl
03be08974e Added services.exe to boot sequence
svn path=/trunk/; revision=1547
2001-01-20 18:40:27 +00:00
Eric Kohl
300201892a Fixed severe bug in CreateEventW()
Implemented use of "\BaseNamedObjects" directory

svn path=/trunk/; revision=1546
2001-01-20 18:37:58 +00:00
Eric Kohl
86c7503953 Implemented ObOpenObjectByName()
svn path=/trunk/; revision=1545
2001-01-20 18:34:34 +00:00
Eric Kohl
3676b49d28 Completed mutex and semaphore implementation
Enabled some global memory functions

svn path=/trunk/; revision=1544
2001-01-20 12:20:43 +00:00
David Welch
703924d130 (Finally) implemented Philip Susi's suggestion for non-counting block
Moved suspend/resume code to seperate file

svn path=/trunk/; revision=1543
2001-01-19 15:09:01 +00:00
Eric Kohl
e443f083f2 Implemented system module Information
Got rid of cryptic driver names

svn path=/trunk/; revision=1542
2001-01-18 16:55:00 +00:00
jean
fd4c82a289 suppress use of FILE_READ_xx and FILE_WRITE_xxx defines.
not available for CreateFile ?

svn path=/trunk/; revision=1541
2001-01-18 15:04:06 +00:00
David Welch
a8660c1f02 Fixes for problems with NtReplyWaitReceive and KeWaitForSingleObject
svn path=/trunk/; revision=1540
2001-01-18 15:00:09 +00:00
jean
3116ca9df2 correct _environ assignment, because it's an array of pointers
and GetEnvironmentString return a pointer.

svn path=/trunk/; revision=1539
2001-01-18 14:43:25 +00:00
jean
d2833af32c incorrect use of FILE_xxx defines, not avalaible for CreateFile ?
svn path=/trunk/; revision=1538
2001-01-18 13:54:03 +00:00
jean
20ee4eb9a7 changes due to correction in ../misc/dllmain.c
for update of environ when calling putenv.

svn path=/trunk/; revision=1537
2001-01-18 13:25:33 +00:00
jean
7863eef29d *** empty log message ***
svn path=/trunk/; revision=1536
2001-01-18 13:23:26 +00:00
jean
d6e19c5407 correct environ affectation : it's an array of pointers
, and GetEnvironmentStrings return a pointer.

svn path=/trunk/; revision=1535
2001-01-18 13:21:51 +00:00
jean
a1da8a3ac2 *** empty log message ***
svn path=/trunk/; revision=1534
2001-01-18 13:18:05 +00:00
Emanuele Aliberti
efd7d3cbd8 Bootstrap title and short licence banner reformatted.
Please say your opinion about it.
Should the title line ("Starting ReactOS...") be the 1st line on the blue screen?

svn path=/trunk/; revision=1533
2001-01-17 19:07:13 +00:00
Emanuele Aliberti
394b6b568c Log file names macros added.
svn path=/trunk/; revision=1532
2001-01-17 19:04:15 +00:00
jean
824df27238 ibetter clean
svn path=/trunk/; revision=1531
2001-01-17 17:14:34 +00:00
jean
fcca9be111 better clean
svn path=/trunk/; revision=1530
2001-01-17 17:01:38 +00:00
David Welch
7a3409d80c Multiboot fixes
svn path=/trunk/; revision=1529
2001-01-17 15:38:03 +00:00
Eric Kohl
695a57cff6 Implemented SystemDeviceInformation info class
svn path=/trunk/; revision=1528
2001-01-17 02:02:39 +00:00
David Welch
0d8b4e3da6 FAT12 fixes
svn path=/trunk/; revision=1527
2001-01-16 23:22:03 +00:00
Phillip Susi
7b0b7c5396 Fixed bug with screen buffers larger than console window ( i.e. scrollback buffers )
svn path=/trunk/; revision=1526
2001-01-16 20:58:58 +00:00
David Welch
643441de17 Removed debugging prints
svn path=/trunk/; revision=1525
2001-01-16 15:43:42 +00:00
David Welch
25dc208536 Fix bug in MmAllocateContinuousPages spotted by Philip Susi
Fixed compilation bugs in roshttpd
Work on write support (still not working)

svn path=/trunk/; revision=1524
2001-01-16 09:55:02 +00:00
jean
7887cc9965 *** empty log message ***
svn path=/trunk/; revision=1523
2001-01-15 15:46:04 +00:00
jean
352d348f09 correct crash when running DllMain
svn path=/trunk/; revision=1522
2001-01-15 15:40:58 +00:00
Emanuele Aliberti
2faa9c1b95 Copyright string updated.
svn path=/trunk/; revision=1521
2001-01-14 23:27:36 +00:00
Emanuele Aliberti
db38d666da SYSTEMTIME type replaced by TIME.
svn path=/trunk/; revision=1520
2001-01-14 20:56:48 +00:00
Emanuele Aliberti
a04660d2b0 tz command fixed (info class 44).
svn path=/trunk/; revision=1519
2001-01-14 20:16:37 +00:00
Emanuele Aliberti
01531797b4 SYSTEM_TIME_ZONE_INFORMATION added.
svn path=/trunk/; revision=1518
2001-01-14 20:06:20 +00:00
Emanuele Aliberti
4a354f1128 FLG decoding added.
svn path=/trunk/; revision=1517
2001-01-14 19:59:43 +00:00
Emanuele Aliberti
a3a116651b FLG macros added.
svn path=/trunk/; revision=1516
2001-01-14 19:58:58 +00:00
Casper Hornstrup
52f51dc4b9 Small HTTP daemon
svn path=/trunk/; revision=1515
2001-01-14 18:35:17 +00:00
Casper Hornstrup
05ccbb2696 Some work on winsock stack
svn path=/trunk/; revision=1514
2001-01-14 17:44:38 +00:00
Eric Kohl
2dd3473a90 Added some hal functions
svn path=/trunk/; revision=1513
2001-01-14 15:36:55 +00:00
Eric Kohl
eaeab91ab2 Print driver names on initialization
svn path=/trunk/; revision=1512
2001-01-14 15:30:47 +00:00
Eric Kohl
7efa62275f Added shutdown description
svn path=/trunk/; revision=1511
2001-01-14 15:28:50 +00:00
Eric Kohl
36c7b523ee Fixed 'clean' rule
svn path=/trunk/; revision=1510
2001-01-14 15:27:15 +00:00
David Welch
eda06227b3 More small cluster size fixes
svn path=/trunk/; revision=1509
2001-01-14 15:05:53 +00:00
Emanuele Aliberti
51772d486a ADVAPI32.LookupAccountSidA and ADVAPI32.LookupAccountSidW stubs added.
svn path=/trunk/; revision=1508
2001-01-14 12:15:19 +00:00
Nedko Arnaudov
bf1b057da3 no message
svn path=/trunk/; revision=1507
2001-01-13 23:55:37 +00:00
David Welch
15491f14dd Fix for vfatfs on volumes with smaller cluster sizes
svn path=/trunk/; revision=1506
2001-01-13 18:38:09 +00:00
Emanuele Aliberti
df75bd846f PE image file dumper, by Sang Cho, adapted to ROS (wip).
svn path=/trunk/; revision=1505
2001-01-13 18:19:23 +00:00
Emanuele Aliberti
5d04b18c15 Obsolete regnav removed.
qsi updated (still wip).
Minor changes.

svn path=/trunk/; revision=1504
2001-01-13 18:17:17 +00:00
David Welch
d2b9b6d912 Removed use of intermediate buffering when reading from the cache
svn path=/trunk/; revision=1503
2001-01-13 12:40:21 +00:00
David Welch
e371c33d76 Removed debugging code from NTDLL loader
Make sure there is a space between the boot device and the kernel command
line
Vfat fixes

svn path=/trunk/; revision=1502
2001-01-12 21:00:08 +00:00
Phillip Susi
1c655ae05a Fixed compilation error with symbols _environ/_environ_dll
svn path=/trunk/; revision=1501
2001-01-11 02:38:34 +00:00
Nedko Arnaudov
1688a8d7c5 no message
svn path=/trunk/; revision=1500
2001-01-10 01:25:29 +00:00
David Welch
48b5533bd5 Some memory manager cleanups
Hopefully fixed vfat fsd reported by Philip Susi
FAT lookups go through cache

svn path=/trunk/; revision=1499
2001-01-08 02:14:06 +00:00
Eric Kohl
21c3a954d0 Updated 'clean' rule (added missing directories)
svn path=/trunk/; revision=1498
2001-01-07 18:45:21 +00:00
Eric Kohl
624869c3c3 Added some more runtime functions
svn path=/trunk/; revision=1497
2001-01-07 03:00:32 +00:00
Eric Kohl
8fe6e74b25 Indicate loading process by dots (in non-debug mode only)
svn path=/trunk/; revision=1496
2001-01-07 02:56:20 +00:00
Rex Jolliff
b12b25cd3d Fixed a bug in partition chain handling
svn path=/trunk/; revision=1495
2001-01-06 23:25:35 +00:00
Rex Jolliff
e4b73aa914 Fixed a problem with command line parsing
svn path=/trunk/; revision=1494
2001-01-06 21:40:13 +00:00
Eric Kohl
66aa4c41db Added some more functions
Got rid of spec file

svn path=/trunk/; revision=1493
2001-01-06 15:49:53 +00:00
Phillip Susi
83463a35cc Export SetLastErrorByStatus()
svn path=/trunk/; revision=1492
2001-01-05 05:39:18 +00:00
Eric Kohl
58f7f41275 Implemented NtSignalAndWaitForSingleObject()
svn path=/trunk/; revision=1491
2001-01-02 00:47:08 +00:00
David Welch
240c9da1da The VFAT filesystem driver now goes through the cache for reads, writing
is disabled.

svn path=/trunk/; revision=1490
2001-01-01 04:42:12 +00:00
David Welch
9e386e114c Fix for compilation bug
svn path=/trunk/; revision=1489
2000-12-30 04:19:42 +00:00
Eric Kohl
138b30dd40 Added HalAllocateAdapterChannel()
svn path=/trunk/; revision=1488
2000-12-30 01:41:52 +00:00
David Welch
ed20b9b6ba Implemented MmAllocateContinuousMemory
VFAT driver cleanups

svn path=/trunk/; revision=1487
2000-12-29 23:17:12 +00:00
Eric Kohl
1f1ae27105 Added / moved exception support functions
svn path=/trunk/; revision=1486
2000-12-29 13:49:15 +00:00
Eric Kohl
380b1db222 Implemented shutdown routine dummy
svn path=/trunk/; revision=1485
2000-12-29 13:45:01 +00:00
Eric Kohl
65c77b52d6 Implemented fsd shutdown support
svn path=/trunk/; revision=1484
2000-12-29 13:43:13 +00:00
Eric Kohl
66f91ccbf9 Fixed some undocumented functions and types
svn path=/trunk/; revision=1483
2000-12-28 20:38:28 +00:00
jean
7bd40a855a copy some functions from crtdll
svn path=/trunk/; revision=1482
2000-12-28 11:57:10 +00:00
jean
43999c2a2d copy of some functions from crtdll
svn path=/trunk/; revision=1481
2000-12-28 11:43:07 +00:00
jean
7a974c0294 *** empty log message ***
svn path=/trunk/; revision=1480
2000-12-28 11:39:33 +00:00
David Welch
0fc13a01ee Implemented /Device/PhysicalMemory
Corrected an LPC bug when terminating a process with threads waiting for
LPC messages

svn path=/trunk/; revision=1479
2000-12-28 03:38:08 +00:00
David Welch
7f10630ab4 Disable testing code
svn path=/trunk/; revision=1478
2000-12-26 05:34:27 +00:00
David Welch
390fd4f1fb Added support for calling BIOS functions
Partially implemented VideoPortInt10

svn path=/trunk/; revision=1477
2000-12-26 05:32:44 +00:00
David Welch
3b50cd9ca9 Fixed compilation bug
svn path=/trunk/; revision=1476
2000-12-24 03:35:54 +00:00
David Welch
8445b12452 All task switching is done in software.
Beginnings of v86 mode support.
Corrected locking bug when terminating multithreaded process.

svn path=/trunk/; revision=1475
2000-12-23 02:37:41 +00:00
Emanuele Aliberti
b6c91b703e _itow, _ltow, _ultow added to crtdll.
*** TO BE TESTED ***

svn path=/trunk/; revision=1474
2000-12-22 23:20:15 +00:00
Eric Kohl
91bcb7413f Implemented NtResumeThread() and NtSuspendThread()
Cleanup

svn path=/trunk/; revision=1473
2000-12-22 13:37:41 +00:00
Eric Kohl
64ba922c19 Implemented NtResumeThread() and NtSuspendThread()
Cleanup

svn path=/trunk/; revision=1472
2000-12-22 13:32:06 +00:00
jean
90beca63cb begin implementation of memory detection
svn path=/trunk/; revision=1471
2000-12-20 18:44:20 +00:00
Emanuele Aliberti
c6010e401e Version resource added to the command line utilities more, tee, and y.
svn path=/trunk/; revision=1470
2000-12-19 23:06:20 +00:00
Rex Jolliff
72e967e710 Fixed a problem with install rule
svn path=/trunk/; revision=1469
2000-12-19 20:20:16 +00:00
Eric Kohl
a391eec94c Implemented some verify functions.
svn path=/trunk/; revision=1468
2000-12-11 18:20:02 +00:00
David Welch
488f0ac078 Some work on file caching
Some work on the minix filesystem
Some work on v86 mode support
Implemented NtGetContextThread

svn path=/trunk/; revision=1467
2000-12-10 23:42:01 +00:00
Eric Kohl
4ac4987dd2 Implemented some verify functions.
svn path=/trunk/; revision=1466
2000-12-10 19:15:45 +00:00
Emanuele Aliberti
6d9f357735 Cleaning up before moving psxss to subsys/psx/server .
svn path=/trunk/; revision=1465
2000-12-10 16:57:07 +00:00
Emanuele Aliberti
1439a96e69 Cleaning up before moving psxdll in subsys/psx/client .
svn path=/trunk/; revision=1464
2000-12-10 16:44:50 +00:00
Emanuele Aliberti
7235c776e4 I added the -p option to make buildno simply print the current build number,
but not generate the reactos/buildno.h file.

svn path=/trunk/; revision=1463
2000-12-10 16:23:15 +00:00
Emanuele Aliberti
6faae58d64 Updated to be a proper secur32.dll version resource.
Still missing a proper description: where is secur32.dll from?

svn path=/trunk/; revision=1462
2000-12-09 22:37:14 +00:00
Phillip Susi
b2b12a1d09 Opps... can't just return from a native thread proc, have to TerminateProcess()
svn path=/trunk/; revision=1461
2000-12-09 06:29:29 +00:00
Phillip Susi
8bdd137c8f RtlCreateUserProcess was not checking for failure of mapping the executable file and returning that error
svn path=/trunk/; revision=1460
2000-12-09 04:34:52 +00:00
Casper Hornstrup
af9693f4da Fixed typo.
svn path=/trunk/; revision=1459
2000-12-08 22:09:17 +00:00
Casper Hornstrup
d3f5f7862f Fixed bug that caused a crash when creating an unnamed semaphore.
svn path=/trunk/; revision=1458
2000-12-08 22:08:02 +00:00
jean
4dc42b4202 SUPERSEDE implemented
svn path=/trunk/; revision=1457
2000-12-08 17:12:43 +00:00
Eric Kohl
2af149a27c Replaced hard-coded paths
svn path=/trunk/; revision=1456
2000-12-08 00:45:04 +00:00
Eric Kohl
07127c18af Fixed floppy driver bug!
The floppy controler is now recognized properly!!

svn path=/trunk/; revision=1455
2000-12-08 00:43:45 +00:00
jean
3d521d0a20 LdrFixupImports more verbose when DLL not found.
svn path=/trunk/; revision=1454
2000-12-07 17:00:12 +00:00
jean
02d3c2cb72 bug corrected in updating fat16
erase clusters before use.

svn path=/trunk/; revision=1453
2000-12-07 16:58:42 +00:00
Eric Kohl
d8748695f2 Run winlogon.exe instead of shell.exe
Replaced hard-coded paths

svn path=/trunk/; revision=1452
2000-12-05 18:14:07 +00:00
Eric Kohl
3ab0b1f9a2 Minor fixes
svn path=/trunk/; revision=1451
2000-12-05 18:11:51 +00:00
Eric Kohl
e69d5f4655 Fixed forwarding of current directory string
svn path=/trunk/; revision=1450
2000-12-05 18:08:24 +00:00
jean
a7d8f1c9ab corrected bugs in create operations
svn path=/trunk/; revision=1449
2000-12-05 17:12:16 +00:00
Eric Kohl
564101ab11 Moved system applications
svn path=/trunk/; revision=1448
2000-12-05 02:40:51 +00:00
Eric Kohl
c40c9f88c1 no message
svn path=/trunk/; revision=1447
2000-12-03 20:31:03 +00:00
Eric Kohl
d4ae36c1c5 no message
svn path=/trunk/; revision=1446
2000-12-03 20:29:44 +00:00
Eric Kohl
f01dd17793 Added some functions to msvcrt
svn path=/trunk/; revision=1445
2000-12-03 18:00:07 +00:00
Eric Kohl
a9828950fe Added some functions to msvcrt
svn path=/trunk/; revision=1444
2000-12-03 17:49:41 +00:00
Eric Kohl
b7a9c63dad Some minor fixes
svn path=/trunk/; revision=1443
2000-12-03 17:43:46 +00:00
Eric Kohl
9deb8f01da Fixed compiler warnings
svn path=/trunk/; revision=1442
2000-12-02 02:25:30 +00:00
jean
55feb47d30 added test arg in NtFlushKey
svn path=/trunk/; revision=1441
2000-12-01 12:44:15 +00:00
jean
45fcd58321 corrected bug in writing files : extend files before needed
svn path=/trunk/; revision=1440
2000-12-01 12:41:08 +00:00
jean
7cdd9a1c62 *** empty log message ***
svn path=/trunk/; revision=1439
2000-12-01 12:39:17 +00:00
jean
bd1cb1e820 many bugs corrected
now pass OK tests 1,2,3 and 5 of regtest

svn path=/trunk/; revision=1438
2000-11-27 14:54:28 +00:00
jean
c07ef00211 added test for NtFlushKey
added a loop, allowing to make several tests before exiting.

svn path=/trunk/; revision=1437
2000-11-27 14:21:04 +00:00
jean
e53fb528db correct bug in write operations
svn path=/trunk/; revision=1436
2000-11-23 15:53:37 +00:00
jean
565277e563 *** empty log message ***
svn path=/trunk/; revision=1435
2000-11-21 15:10:15 +00:00
jean
cf1b2d1b6c some changes to prepare write in hive files
svn path=/trunk/; revision=1434
2000-11-21 11:12:27 +00:00
Eric Kohl
716fa2a717 Modified makefiles for use with rcopy
Added a missing prototype

svn path=/trunk/; revision=1433
2000-11-20 19:59:14 +00:00
Eric Kohl
d456e5b838 Fixed bug (or better: typo)
svn path=/trunk/; revision=1432
2000-11-19 22:15:03 +00:00
Eric Kohl
a703d88253 Fixed tls code
svn path=/trunk/; revision=1431
2000-11-19 16:01:29 +00:00
Eric Kohl
41ac59fb91 Added tls bitmap initialization
svn path=/trunk/; revision=1430
2000-11-19 15:59:46 +00:00
Eric Kohl
885e8a3344 Fixed bitmap bug
svn path=/trunk/; revision=1429
2000-11-19 15:58:58 +00:00
Eric Kohl
bd08f2070e Fixed tiny display buglet
svn path=/trunk/; revision=1428
2000-11-19 15:57:27 +00:00
Jason Filby
4b0dec4293 minor fix
svn path=/trunk/; revision=1427
2000-11-16 21:45:54 +00:00
Eric Kohl
143ef3c5b1 Fixed a compiler warning
svn path=/trunk/; revision=1426
2000-11-16 00:32:12 +00:00
jean
575c0c896a bugs corrected
svn path=/trunk/; revision=1425
2000-11-10 15:41:46 +00:00
jean
fb51b0f647 reference/dereference of objects corrected
update time of heap when data changed
some other bugs corrected

svn path=/trunk/; revision=1424
2000-11-10 15:35:40 +00:00
Eric Kohl
93647509cc Fixed some system information stuff
svn path=/trunk/; revision=1423
2000-11-04 13:52:12 +00:00
Eric Kohl
3f82e28a32 Fixed compiler warning
svn path=/trunk/; revision=1422
2000-11-04 13:48:11 +00:00
Eric Kohl
e7f86f45fb Fixed linker warning about missing _NtProcessStartup()
svn path=/trunk/; revision=1421
2000-11-01 12:45:53 +00:00
Jason Filby
55a9a7623e minor fixes
svn path=/trunk/; revision=1420
2000-10-25 13:09:05 +00:00
Nedko Arnaudov
a248f1e7c3 GPL sync + delete value implemented
svn path=/trunk/; revision=1419
2000-10-24 20:17:42 +00:00
jean
2a81cebc82 fixed bugs
load registry file entirely

svn path=/trunk/; revision=1418
2000-10-24 12:13:12 +00:00
Eric Kohl
b60489a76a Removed obsolete linux header files
svn path=/trunk/; revision=1417
2000-10-22 16:36:53 +00:00
Eric Kohl
1c236a2886 Replaced linux io calls
Removed references to linux io headers

svn path=/trunk/; revision=1416
2000-10-22 13:30:19 +00:00
Eric Kohl
dab151f2f1 Implemented event pair
svn path=/trunk/; revision=1415
2000-10-22 11:30:00 +00:00
Eric Kohl
9267a79b9e Replaced linux io calls
svn path=/trunk/; revision=1414
2000-10-22 02:02:28 +00:00
Eric Kohl
1db1c12cf3 Fixed prototype
svn path=/trunk/; revision=1413
2000-10-22 02:01:42 +00:00
Eric Kohl
382d5a76c2 Removed duplicate code and replaced linux io calls
svn path=/trunk/; revision=1412
2000-10-22 01:59:51 +00:00
Eric Kohl
a83fd9fd73 Fixed warnings and indentation
svn path=/trunk/; revision=1411
2000-10-22 01:58:11 +00:00
Jason Filby
201009ddd9 *** empty log message ***
svn path=/trunk/; revision=1410
2000-10-18 10:42:07 +00:00
Jason Filby
14b2a471ce *** empty log message ***
svn path=/trunk/; revision=1409
2000-10-18 09:39:32 +00:00
Jason Filby
77d9f6fb99 *** empty log message ***
svn path=/trunk/; revision=1408
2000-10-18 09:11:01 +00:00
jean
bb44d63a00 add management of free blocks
svn path=/trunk/; revision=1407
2000-10-16 15:22:45 +00:00
jean
3f76d0e8a9 remove unimplemented functions
test more verbose

svn path=/trunk/; revision=1406
2000-10-16 15:05:19 +00:00
Jason Filby
76ba7eadb1 Improved bitblt and painting performance
Initial mouse pointer code

svn path=/trunk/; revision=1405
2000-10-14 22:58:24 +00:00
Jason Filby
06bf88e073 Minor fixes
svn path=/trunk/; revision=1404
2000-10-14 22:42:11 +00:00
Jason Filby
d17678ebd0 *** empty log message ***
svn path=/trunk/; revision=1403
2000-10-14 22:40:18 +00:00
David Welch
e9b7a9a972 Corrected typos in the minix driver
svn path=/trunk/; revision=1402
2000-10-11 20:57:19 +00:00
David Welch
9ab512dafc Correct implementation of user-mode APCs
svn path=/trunk/; revision=1401
2000-10-11 20:50:35 +00:00
jean
e7214e13b1 remove code for tests
svn path=/trunk/; revision=1400
2000-10-11 15:06:31 +00:00
jean
3199989397 added tests in apps/regtest
work on write hive registry
read tests successful for volatile and non volatile keys
write tests successful for volatile keys

svn path=/trunk/; revision=1399
2000-10-11 13:20:39 +00:00
Eric Kohl
3b8acca85c Minor update
svn path=/trunk/; revision=1398
2000-10-09 00:18:00 +00:00
Eric Kohl
e224120546 Fixed compiler warning
svn path=/trunk/; revision=1397
2000-10-09 00:12:01 +00:00
David Welch
d996724891 Fixed compilation bugs
Removed useless spec files

svn path=/trunk/; revision=1396
2000-10-08 23:44:46 +00:00
Eric Kohl
26aa5fb4dd Fixed a typo
svn path=/trunk/; revision=1395
2000-10-08 19:13:01 +00:00
Eric Kohl
69afd5910f Added nameless struct/union support for [U]LARGE_INTEGER
svn path=/trunk/; revision=1394
2000-10-08 19:11:28 +00:00
David Welch
8a74f96a65 Additional bug fixes
Removed spec file
Removed libgcc.a
Set FS register in thread contexts

svn path=/trunk/; revision=1393
2000-10-08 16:32:53 +00:00
Eric Kohl
8d1034c5fa Added atom table stubs
Implemented NtQuerySemaphore()
Implemented RtlConvertSidToUnicode()
Replaced more calls to Linux io functions
Some minor fixes

svn path=/trunk/; revision=1392
2000-10-08 12:56:45 +00:00
Eric Kohl
9e2f41853a Added atom table stubs
Implemented NtQuerySemaphore()
Implemented RtlConvertSidToUnicode()
Replaced more calls to Linux io functions
Some minor fixes

svn path=/trunk/; revision=1391
2000-10-08 12:51:25 +00:00
Nedko Arnaudov
4e21487a31 In GNU make, Variables and functions in all parts of a makefile are expanded when read, so include of rules.mak must be done before using variable defined in it.
svn path=/trunk/; revision=1390
2000-10-08 10:48:10 +00:00
Eric Kohl
a2d079723b Implemented missing KeRaiseIrqlToXxLevel() functions
svn path=/trunk/; revision=1389
2000-10-07 21:06:19 +00:00
Eric Kohl
5bea9979e8 Added check for existing 'SystemRoot' link target
svn path=/trunk/; revision=1388
2000-10-07 20:55:15 +00:00
David Welch
f1096bb7f0 Some bug fixes
svn path=/trunk/; revision=1387
2000-10-07 18:44:08 +00:00
David Welch
fe87b12edd Renamed makefile to Makefile
svn path=/trunk/; revision=1386
2000-10-07 13:44:24 +00:00
David Welch
a254e64d73 Added multiboot support to ntoskrnl
Updated loadros to boot new kernel
Corrected thread priority bugs
Removed Linux port io
Added system call entry/exit that updates PreviousMode
Changes to allow ntoskrnl to be built without optimization
Updated make system
Added PCR
Most components can be built without special spec file

svn path=/trunk/; revision=1385
2000-10-07 13:41:58 +00:00
Eric Kohl
15b935ba7c Implemented NtPulseEvent() and NtQueryEvent()
svn path=/trunk/; revision=1384
2000-10-06 22:54:58 +00:00
Eric Kohl
4a5bc9edc8 Minor fix
svn path=/trunk/; revision=1383
2000-10-06 22:54:41 +00:00
Eric Kohl
bd44cd188f obsolete
svn path=/trunk/; revision=1382
2000-10-06 16:54:38 +00:00
Eric Kohl
0a2b580710 Implemented IoCreateNotificationEvent() and IoCreateSynchronizationEvent()
svn path=/trunk/; revision=1381
2000-10-06 16:54:04 +00:00
Eric Kohl
6e63676205 Added missing STDCALLs
svn path=/trunk/; revision=1380
2000-10-05 19:17:25 +00:00
Eric Kohl
aa5a575bd0 Added registry shutdown function CmShutdownRegistry()
Updated shutdown sequence

svn path=/trunk/; revision=1379
2000-10-05 19:15:50 +00:00
Eric Kohl
beaf6eac44 Implmented NtFlushWriteBuffer()
svn path=/trunk/; revision=1378
2000-10-05 19:10:55 +00:00
jean
619ad3483b add some tests
svn path=/trunk/; revision=1377
2000-10-05 14:55:55 +00:00
jean
a1b7c80868 correct bugs
svn path=/trunk/; revision=1376
2000-10-05 14:55:25 +00:00
Emanuele Aliberti
ae69a8e1e4 Registry Explorer (console tool) by Nedko Arnaoudov added to the system utilities subtree.
Also here: http://www.geocities.com/registryexplorer/

svn path=/trunk/; revision=1375
2000-10-04 21:04:31 +00:00
Eric Kohl
f3632d15b8 Implemented GetFileType()
Some cleanup

svn path=/trunk/; revision=1374
2000-10-01 19:54:57 +00:00
jean
31f697ce8f work on registry
svn path=/trunk/; revision=1373
2000-09-29 15:03:21 +00:00
Eric Kohl
bd6afcb8ba Implemented CreatePipe()
svn path=/trunk/; revision=1372
2000-09-27 01:24:37 +00:00
Eric Kohl
99434057af Implemented some ascii functions
svn path=/trunk/; revision=1371
2000-09-27 01:22:31 +00:00
Phillip Susi
0ea51977f6 Fixed crash due to thread priority out of bonuds bug... not sure if I did this right, but it seems to fix the crash. Someone should probobly look at this.
svn path=/trunk/; revision=1370
2000-09-24 23:55:21 +00:00
jean
08982a387e read functions on file SYSTEM implemented
svn path=/trunk/; revision=1369
2000-09-22 15:08:55 +00:00
jean
572b3bf901 work on ntopenkey forkeys insystem hive
svn path=/trunk/; revision=1368
2000-09-21 13:45:42 +00:00
jean
56cd5f816c type of Name in KEY_BLOCK corrected
svn path=/trunk/; revision=1367
2000-09-18 09:39:18 +00:00
Casper Hornstrup
37d6d2f97f Added WinSock 2 DLL Stubs
svn path=/trunk/; revision=1366
2000-09-17 09:41:15 +00:00
Casper Hornstrup
7ec7480d5c Added ping application (won't work on ReactOS yet)
svn path=/trunk/; revision=1365
2000-09-17 09:40:33 +00:00
Casper Hornstrup
734dbaddef Small change in tdikrnl.h
svn path=/trunk/; revision=1364
2000-09-17 09:38:46 +00:00
Casper Hornstrup
b7eaee833c Added WinSock 2 Headers
svn path=/trunk/; revision=1363
2000-09-17 09:37:04 +00:00
Casper Hornstrup
ab2b4e0924 Added WinSock 2 DLL Stubs
svn path=/trunk/; revision=1362
2000-09-17 09:36:01 +00:00
Casper Hornstrup
2a734dfd02 Added WinSock 2 Helper DLL for TCP/IP (Stubs only)
svn path=/trunk/; revision=1361
2000-09-17 09:33:44 +00:00
jean
b0a3240f8e work on registry files
svn path=/trunk/; revision=1360
2000-09-14 14:45:06 +00:00
jean
522110434e report changes from 1.29
svn path=/trunk/; revision=1359
2000-09-13 11:46:35 +00:00
jean
ad66ea993a work on registry
svn path=/trunk/; revision=1358
2000-09-13 10:29:48 +00:00
jean
ee426ef891 work on registry
svn path=/trunk/; revision=1357
2000-09-13 09:51:58 +00:00
Rex Jolliff
79753f70ea added some book references
svn path=/trunk/; revision=1356
2000-09-13 03:54:09 +00:00
Emanuele Aliberti
192a6b11b4 Added Casper to the coders parade.
svn path=/trunk/; revision=1355
2000-09-12 23:21:20 +00:00
Emanuele Aliberti
f452b24998 Updated years in version info.
svn path=/trunk/; revision=1354
2000-09-12 23:20:15 +00:00
jean
380f53e057 remove ctrl-M
svn path=/trunk/; revision=1353
2000-09-12 10:43:56 +00:00
jean
7a86d15add declaration of NtLoadKey2 corrected.
svn path=/trunk/; revision=1352
2000-09-12 10:43:28 +00:00
jean
cfa0bfd3f1 changes in IRP for compatibility
svn path=/trunk/; revision=1351
2000-09-12 10:12:13 +00:00
Emanuele Aliberti
28d86222cd Version resource added to the system utilities.
svn path=/trunk/; revision=1350
2000-09-11 20:17:02 +00:00
Emanuele Aliberti
e7a0c9b4eb Little change to make version resource linked in ne2000.sys.
svn path=/trunk/; revision=1349
2000-09-10 20:00:13 +00:00
Eric Kohl
f6975e3ad4 Implemented driver shutdown registration
svn path=/trunk/; revision=1348
2000-09-10 13:54:01 +00:00
Emanuele Aliberti
18fb33cd77 RC script updated.
svn path=/trunk/; revision=1347
2000-09-10 10:14:39 +00:00
Eric Kohl
4b34e5c2de Implemented basic registry functions
svn path=/trunk/; revision=1346
2000-09-08 22:55:14 +00:00
Eric Kohl
16625529a2 Fixed [Nt/Zw]LoadKey2 prototype
svn path=/trunk/; revision=1345
2000-09-08 22:52:17 +00:00
Eric Kohl
6320160bea Ooops! I forgot that little thingy...
svn path=/trunk/; revision=1344
2000-09-08 19:39:31 +00:00
Eric Kohl
d7d755265d Fixed some bugs in the registry
Improved registry test app

svn path=/trunk/; revision=1343
2000-09-06 19:59:54 +00:00
Phillip Susi
e7365f8b00 Made PsGetCurrentThread STDCALL
svn path=/trunk/; revision=1342
2000-09-06 03:08:22 +00:00
Phillip Susi
11c7a09174 Initialize new Win32ThreadData member in ETHREAD
svn path=/trunk/; revision=1341
2000-09-06 03:08:08 +00:00
Phillip Susi
b9d500fbd4 Made ObAddEntryDirectory STDCALL
svn path=/trunk/; revision=1340
2000-09-06 03:06:55 +00:00
Phillip Susi
c76d475edb Made PsGetCurrentThread STDCALL
svn path=/trunk/; revision=1339
2000-09-06 03:00:10 +00:00
Phillip Susi
4ca3269e59 Added pointer to win32k data in ETHREAD
svn path=/trunk/; revision=1338
2000-09-06 02:57:24 +00:00
Phillip Susi
8dba8b5f8b Made ObAddEntryDirectory STDCALL
svn path=/trunk/; revision=1337
2000-09-06 02:56:53 +00:00
Phillip Susi
5df884f1d2 Added ObAdEntryDirectory and PsGetCurrentThread to kernel export list
svn path=/trunk/; revision=1336
2000-09-06 02:08:00 +00:00
Eric Kohl
991be350f7 Registry fixes (not usable yet)
Loader improvements

svn path=/trunk/; revision=1335
2000-09-05 23:03:09 +00:00
Eric Kohl
90a17ecf05 Added registry test app
svn path=/trunk/; revision=1334
2000-09-05 22:57:43 +00:00
Eric Kohl
fbac67d372 Implemented dll detach on thread termination
svn path=/trunk/; revision=1333
2000-09-05 13:53:27 +00:00
Eric Kohl
19e205fb97 Implemented dll detach on process termination
svn path=/trunk/; revision=1332
2000-09-05 11:01:03 +00:00
Eric Kohl
ed32877e90 Fixed some minor loader bugs
svn path=/trunk/; revision=1331
2000-09-04 19:05:03 +00:00
Eric Kohl
c0159ad5c8 Some minor fixes
svn path=/trunk/; revision=1330
2000-09-03 14:53:13 +00:00
Eric Kohl
3004e5b9bd Fixed mysterious registry bug
svn path=/trunk/; revision=1329
2000-09-03 14:46:49 +00:00
Eric Kohl
df314ce26e Improved internal dll handling
Implemented or fixed dll and resource functions

svn path=/trunk/; revision=1328
2000-09-01 17:09:50 +00:00
David Welch
dd7e38a19d Reverted back to revision 1.59 because my last commit overwrote recent
changes.

svn path=/trunk/; revision=1327
2000-08-31 00:11:15 +00:00
David Welch
8e0014c64b Added calibration of KeStallExecutionProcessor delay
Corrected compilation bugs in user32
Corrected compilation bugs related to anonymous structs in ndis code
Pass commandline from loadros
Corrected PIC mask calculation

svn path=/trunk/; revision=1326
2000-08-30 19:33:29 +00:00
Emanuele Aliberti
3b94410c8a Version resource was off the final binary image.
svn path=/trunk/; revision=1325
2000-08-29 20:10:49 +00:00
Eric Kohl
3f36421f86 Added/fixed resource 'loader'.
svn path=/trunk/; revision=1324
2000-08-28 21:49:11 +00:00
Casper Hornstrup
7550af7e4d Fixed user32.dll so it will compile
svn path=/trunk/; revision=1323
2000-08-28 19:36:49 +00:00
David Welch
8293c58f61 Added platform independant mkdir program
svn path=/trunk/; revision=1322
2000-08-27 23:06:36 +00:00
Eric Kohl
acaf5099d7 User-mode loader improvements
svn path=/trunk/; revision=1321
2000-08-27 22:37:45 +00:00
Casper Hornstrup
5c58f80d97 Fixed user32.dll so it will compile
svn path=/trunk/; revision=1320
2000-08-27 16:44:02 +00:00
Casper Hornstrup
9a1e13b7d8 Added Novell Eagle 2000 Driver
svn path=/trunk/; revision=1319
2000-08-27 16:35:31 +00:00
Casper Hornstrup
33252ab449 Basic NDIS 3.0 support
svn path=/trunk/; revision=1318
2000-08-27 16:31:41 +00:00
Casper Hornstrup
abd30f9819 Fixed bugs in TCP/IP driver
svn path=/trunk/; revision=1317
2000-08-27 16:28:59 +00:00
Eric Kohl
24d06e9f82 Replaced call to LdrLoadModule() by call to ZwSetSystemInformation()
svn path=/trunk/; revision=1316
2000-08-26 16:22:04 +00:00
Eric Kohl
1a10e72f31 Finished drive letter assignment
Implemented WinNT compatible ARC path (boot.ini)

svn path=/trunk/; revision=1315
2000-08-25 15:56:24 +00:00
Eric Kohl
6c2d255207 Minor ide driver cleanup
Implemented ARC names

svn path=/trunk/; revision=1314
2000-08-24 19:15:20 +00:00
Eric Kohl
495a30cb8e Fixed partition read bug
svn path=/trunk/; revision=1313
2000-08-22 21:10:28 +00:00
Eric Kohl
c27ed38f21 Fixed disk size and partition limits
svn path=/trunk/; revision=1312
2000-08-22 21:09:25 +00:00
Eric Kohl
e7dc6b7c4b xHalIoReadPartitionTable() can now handle partially corrupted partition tables
svn path=/trunk/; revision=1311
2000-08-22 14:10:59 +00:00
Eric Kohl
6f1d7ad00c Implemented IoReadPartitionTable().
Implemented proper drive letter assignment.

svn path=/trunk/; revision=1310
2000-08-21 00:15:54 +00:00
David Welch
8434fc42db Fixed memory manager bugs
Removed page directory references from machine independant code
Implemented page table reference counting
Added vm test application

svn path=/trunk/; revision=1309
2000-08-20 17:02:10 +00:00
Eric Kohl
7c29439d2b Fixed the real bug
svn path=/trunk/; revision=1308
2000-08-19 01:21:17 +00:00
Eric Kohl
1aa74074a2 Fixed an ugly bug
svn path=/trunk/; revision=1307
2000-08-19 00:02:55 +00:00
David Welch
ddfa2017c7 Added .o -> .sys rule to simplify driver makefiles
Added PATH_TO_ROOT variable to most makefiles
Added system independant install utility
Implemented prototype system for changing individual regions without a
memory area
Added some interesting articles from usenet

svn path=/trunk/; revision=1306
2000-08-18 22:27:09 +00:00
Eric Kohl
f7d76fbc5b Fixed port i/o functions
svn path=/trunk/; revision=1305
2000-08-18 17:25:54 +00:00
Eric Kohl
cc22ad9378 Fixed partition id bug
Moved some definitions

svn path=/trunk/; revision=1304
2000-08-18 17:24:17 +00:00
Eric Kohl
375b8055e3 Added preliminary pci bus scanner
svn path=/trunk/; revision=1303
2000-08-17 17:43:27 +00:00
Eric Kohl
7b9adffa48 Fixed some warnings
svn path=/trunk/; revision=1302
2000-08-15 12:50:35 +00:00
Eric Kohl
b4cd061025 Improved shared user page
Initialized windows and system directories

svn path=/trunk/; revision=1301
2000-08-15 12:44:47 +00:00
Emanuele Aliberti
f2e0104287 Win32 fiber stubs.
svn path=/trunk/; revision=1300
2000-08-14 14:34:12 +00:00
Emanuele Aliberti
47dfd4feaa Win32 fiber stubs
svn path=/trunk/; revision=1299
2000-08-14 14:33:24 +00:00
David Welch
6f6219e903 Added shared data test application
svn path=/trunk/; revision=1298
2000-08-12 19:37:03 +00:00
David Welch
3ae3b46dcd Updated CREDITS
Work on security
Updated heap code from wine implementation
Implemented kernel/user shared data page

svn path=/trunk/; revision=1297
2000-08-12 19:33:23 +00:00
Emanuele Aliberti
70a09d673c Fixed a pair of exported symbols' stack size.
svn path=/trunk/; revision=1296
2000-08-11 17:30:20 +00:00
Emanuele Aliberti
97b05ef460 Added symbolic link expansion.
svn path=/trunk/; revision=1295
2000-08-11 17:18:31 +00:00
Eric Kohl
6db1a5193f Removed M$ driver
svn path=/trunk/; revision=1294
2000-08-11 12:49:11 +00:00
Eric Kohl
891b9b74ee Removed unused file
svn path=/trunk/; revision=1293
2000-08-11 12:48:00 +00:00
Eric Kohl
c6c624ebe3 Renamed pseudo target 'floppy' to 'install'
Added workaround for corrupted dos header magic
Added some more rtl functions

svn path=/trunk/; revision=1292
2000-08-11 12:46:47 +00:00
jean
df3c817b6b little work on registry
svn path=/trunk/; revision=1291
2000-08-11 08:17:41 +00:00
Eric Kohl
71ea66b0b8 Fixed typo
svn path=/trunk/; revision=1290
2000-08-10 15:50:03 +00:00
Eric Kohl
f55fec7c32 Fixed compiler warnings
svn path=/trunk/; revision=1289
2000-08-08 17:42:33 +00:00
Eric Kohl
7a8a2f9e95 Fixed FLOPPY and DIST targets for net drivers
svn path=/trunk/; revision=1288
2000-08-08 17:41:41 +00:00
David Welch
c65edfad92 Integrated fixes from prep0016
Changes to the networking code to remove anonymous structures and unions
Fix for bug where RtlSetEnvironmentVariable didn't if it had acquired the
PEB lock before releasing it
Updating clean targets

svn path=/trunk/; revision=1286
2000-08-05 18:01:58 +00:00
Emanuele Aliberti
65ecb0b98b Simple utility to list the so called "DOS Devices", that is
symbolic links in the \?? directory of the Ob name space.

svn path=/trunk/; revision=1285
2000-08-04 21:49:31 +00:00
Casper Hornstrup
66d2f292ef Fixed compile issues with network code
svn path=/trunk/; revision=1284
2000-08-02 20:39:49 +00:00
David Welch
a859ee0c1e Added networking code from Casper Hornstrup
svn path=/trunk/; revision=1283
2000-08-02 00:24:26 +00:00
David Welch
b5ff23bb2f Added networking code from Casper Hornstrup
svn path=/trunk/; revision=1282
2000-08-02 00:02:53 +00:00
David Welch
792773e953 Added networking code from Casper Hornstrup
svn path=/trunk/; revision=1281
2000-08-01 23:54:06 +00:00
Casper Hornstrup
2c41cbbe57 Initial revision
svn path=/trunk/; revision=1277
2000-08-01 18:43:15 +00:00
David Welch
83f94cade6 Fixes from Casper Hornstrup
svn path=/trunk/; revision=1276
2000-07-30 18:22:35 +00:00
Eric Kohl
afde198a7d Implemented hal system interrupt functions
svn path=/trunk/; revision=1275
2000-07-24 23:51:46 +00:00
David Welch
07b9585e22 Added floppy makefile and version resource file
svn path=/trunk/; revision=1270
2000-07-19 14:25:35 +00:00
David Welch
768ab2e5dc Added timer constant fix from Genadi V. Zawidowski
svn path=/trunk/; revision=1269
2000-07-19 14:23:37 +00:00
David Welch
c3d5ea4e9b Removed broken dma code
Some work on memory managment
Initialize FPU
Reset CR0.TS after task switch but floating point state is *not* saved
Work on floppy driver
Add versions of ide and vfatfs drivers compiled with debugging information

svn path=/trunk/; revision=1268
2000-07-19 14:18:20 +00:00
Eric Kohl
6041051d6a Fixed 'echo.' and 'echoerr.'
svn path=/trunk/; revision=1267
2000-07-19 06:58:13 +00:00
Phillip Susi
fb416bf8e2 Updated shell.exe to be console mode aware
svn path=/trunk/; revision=1265
2000-07-11 04:40:00 +00:00
Phillip Susi
cc05ca5acb Implemented console modes
svn path=/trunk/; revision=1264
2000-07-11 04:09:25 +00:00
Phillip Susi
041f614e06 Minor bug fix
svn path=/trunk/; revision=1263
2000-07-11 04:08:43 +00:00
Phillip Susi
510af07f3c Removed calls to ExAllocatePool so code can be used in components that do not link to ntoskrnl.exe
svn path=/trunk/; revision=1262
2000-07-11 04:02:45 +00:00
Eric Kohl
85c3d3799b Moved interrupt code from hal into kernel
Implemented missing interrupt functions

svn path=/trunk/; revision=1261
2000-07-10 21:55:49 +00:00
Rex Jolliff
b4f80cb2e6 added files to be ignored
svn path=/trunk/; revision=1260
2000-07-09 17:34:05 +00:00
Rex Jolliff
a6613e4b6f added cvsignore file so that dir gets created
svn path=/trunk/; revision=1259
2000-07-09 17:32:49 +00:00
Rex Jolliff
f48fc3a954 added some files to be ignored by cvs
svn path=/trunk/; revision=1258
2000-07-09 17:31:32 +00:00
Eric Kohl
e97ef012de Fixed typos
svn path=/trunk/; revision=1257
2000-07-08 18:49:24 +00:00
David Welch
68375602c1 *** empty log message ***
svn path=/trunk/; revision=1256
2000-07-08 16:53:33 +00:00
Eric Kohl
fb7b00bd59 Added check for valid DC
svn path=/trunk/; revision=1255
2000-07-08 09:46:32 +00:00
Eric Kohl
0afbea5a1c Added checks for loaded drivers
svn path=/trunk/; revision=1254
2000-07-07 11:59:11 +00:00
Eric Kohl
8353127423 Fixed a typo
svn path=/trunk/; revision=1253
2000-07-07 11:56:04 +00:00
Eric Kohl
25557b0457 Added dist target
svn path=/trunk/; revision=1252
2000-07-07 11:55:02 +00:00
David Welch
8689a5cfe9 Corrected bug where user32.a wasn't being cleaned
Corrected bugs in paging implementation
Began work on MPW thread

svn path=/trunk/; revision=1251
2000-07-07 10:30:57 +00:00
Eric Kohl
0ea1d03808 Separated close request
Fixed bugs in create request

svn path=/trunk/; revision=1250
2000-07-07 02:14:14 +00:00
Eric Kohl
a20a2dd801 Implemented vpb spinlock
svn path=/trunk/; revision=1249
2000-07-07 02:10:50 +00:00
Phillip Susi
b81629c2a0 More DbgPrint to DPRINT changes, Implimented support for deleting DCs, causing switch back to text mode, and another change from nonpaged to paged pool
svn path=/trunk/; revision=1248
2000-07-07 01:20:53 +00:00
Phillip Susi
4568d2fd4c Converted more DbgPrints to DPRINT and allocate bitmaps from paged pool instead of non paged
svn path=/trunk/; revision=1247
2000-07-07 01:19:02 +00:00
Phillip Susi
96e4bf5c1f Bug fixes to win32k
svn path=/trunk/; revision=1246
2000-07-07 01:18:04 +00:00
Phillip Susi
418efd5de8 Implimented switch back to text mode after gditest
svn path=/trunk/; revision=1245
2000-07-07 01:16:50 +00:00
Phillip Susi
aa9ca10d75 One should not say the device does not exist causing the driver to fail to load... how the hell did this work before?
svn path=/trunk/; revision=1244
2000-07-07 01:06:35 +00:00
Phillip Susi
21489b923a Implimented reset to text mode
svn path=/trunk/; revision=1243
2000-07-07 01:05:33 +00:00
Phillip Susi
61ed9441a3 Converted a bunch of DbgPrint() calls to DPRINT()
svn path=/trunk/; revision=1242
2000-07-07 01:02:11 +00:00
Phillip Susi
a1ff5576a5 Implimented switch back to text mode after gditest
svn path=/trunk/; revision=1241
2000-07-07 00:59:41 +00:00
Phillip Susi
001c73ed14 Fixed ps code to terminate threads correctly
svn path=/trunk/; revision=1240
2000-07-07 00:49:02 +00:00
Phillip Susi
3ca24a2c2a Fixed [Ke/Nt]WaitForMultipleObjects() bug
svn path=/trunk/; revision=1239
2000-07-07 00:46:35 +00:00
Phillip Susi
db1ccdf290 Fixes to timeout code
svn path=/trunk/; revision=1238
2000-07-07 00:45:37 +00:00
Phillip Susi
84f943edc6 Fixed ps bug, proper termination of threads
svn path=/trunk/; revision=1237
2000-07-07 00:44:07 +00:00
Phillip Susi
67d46de5d3 Fixed typeo that was breaking NtReadFile() with async reads
svn path=/trunk/; revision=1236
2000-07-07 00:42:58 +00:00
Phillip Susi
10c1321106 Do not clean up mdl on paging requests, as the mm needs it still
svn path=/trunk/; revision=1235
2000-07-07 00:41:36 +00:00
Phillip Susi
7bf98ea309 Set IRP_PAGING_IO on mdl ( paging ) requests
svn path=/trunk/; revision=1234
2000-07-07 00:40:49 +00:00
Phillip Susi
2b37b9beea Exported NtOpenEvent()
svn path=/trunk/; revision=1233
2000-07-07 00:39:24 +00:00
Phillip Susi
194e86b860 Implimented DeleteDC()
svn path=/trunk/; revision=1232
2000-07-07 00:38:17 +00:00
Phillip Susi
2f1d0bf882 Minor fixes, enabled return to text mode
svn path=/trunk/; revision=1231
2000-07-07 00:36:36 +00:00
Phillip Susi
017479a5f0 Fixed left out paremter error
svn path=/trunk/; revision=1230
2000-07-06 20:53:27 +00:00
David Welch
d26222f310 Added experimental paging out code (wouldn't activate until the system is
out of memory)
Added stress test application (consumes memory)
Corrected mutex implementation
Moved csrss startup into kernel32 to avoid ugly messages on startup

svn path=/trunk/; revision=1229
2000-07-06 14:34:52 +00:00
Eric Kohl
671c1bc412 Append the '.exe' extension automatically
svn path=/trunk/; revision=1228
2000-07-05 18:07:08 +00:00
Eric Kohl
bea48dda7a Fixed 'cd \' bug
svn path=/trunk/; revision=1227
2000-07-05 18:05:21 +00:00
Phillip Susi
2946fd90c7 Removed duplicate and incorrect declaration for KeRaiseUserException
svn path=/trunk/; revision=1226
2000-07-04 20:02:35 +00:00
David Welch
f801003a51 Compilation fixes
svn path=/trunk/; revision=1225
2000-07-04 11:11:06 +00:00
David Welch
d351d182ef Added working set functions
Seperated memory manager initialization
Seperated trap functions
Removed process/thread definitions from ddk headers
Changed indentation back to sane style (please don't change)

svn path=/trunk/; revision=1224
2000-07-04 08:52:47 +00:00
Eric Kohl
9caffc49ae Fixed RtlNtStatusToDosError()
Implemented some more functions

svn path=/trunk/; revision=1223
2000-07-04 01:30:18 +00:00
Eric Kohl
bad7efb0e7 Final macro fixes
Minor fixes

svn path=/trunk/; revision=1222
2000-07-02 17:33:15 +00:00
Eric Kohl
add4b2d35b Simplified driver initialization
svn path=/trunk/; revision=1221
2000-07-02 10:54:41 +00:00
Eric Kohl
73437d2939 Fixed more macros
Merged/moved/deleted some files

svn path=/trunk/; revision=1220
2000-07-02 10:50:48 +00:00
David Welch
ed53dc2acc Removed unused header file
Fixed compilation errors resulting from header file changes
Fixed vga driver compilation under unix
Patched up use of *deprecated* inb/outb interfaces in vga driver

svn path=/trunk/; revision=1219
2000-07-01 23:18:59 +00:00
Eric Kohl
83e4b66c10 Fixed Ps macros
svn path=/trunk/; revision=1218
2000-07-01 22:38:15 +00:00
Eric Kohl
6abd233802 Replaced boot_param by LOADER_PARAMETER_BLOCK
Added missing dpc functions
Fixed some Ke macros

svn path=/trunk/; revision=1217
2000-07-01 18:27:03 +00:00
Emanuele Aliberti
95f8770ae2 Minor changes.
svn path=/trunk/; revision=1216
2000-07-01 17:07:02 +00:00
Eric Kohl
f3e6819471 Added hal dispatch tables.
Implemented PhysicalDrive links.
Started drive letter assignment.

svn path=/trunk/; revision=1214
2000-06-30 22:53:32 +00:00
David Welch
cc95f73421 Made header file usage more consistent
Tried to reduce dependancies between layers by moving ntoskrnl's private
header files inside its directory
Removed the need to include windows.h for ddk code
Removed obsolete testing code

svn path=/trunk/; revision=1213
2000-06-29 23:35:53 +00:00
David Welch
109fef6e75 Corrected bug when booting with loadros
Began work on fixing up APCs.

svn path=/trunk/; revision=1212
2000-06-27 19:20:45 +00:00
David Welch
17e1656941 Documented parts of the page fault path and flagged some possible locking
issues.
Implemented waiting on page i/o.

svn path=/trunk/; revision=1211
2000-06-26 19:41:43 +00:00
David Welch
fcf9dcd627 Fixed bug.
svn path=/trunk/; revision=1210
2000-06-25 17:41:01 +00:00
David Welch
6e00280f38 Removed from redundant files from the mm directory
Added some preliminary work on the pager
Fixed ntoskrnl/mm/npool.c (This may have been the cause of the
problems reported with loading win32k.sys)
Fixed problems with reporting space used to store physical page
information
Added code to support MmSafeCopy{To/From}User interface work
(untested)
Added Event member of the PHYSICAL_PAGE structure to implement Philip
Susi's suggestion
Reworked section page-in code (not really tested)
Replaced inline string functions with gcc builtins to make debugging easier

svn path=/trunk/; revision=1209
2000-06-25 03:59:17 +00:00
Emanuele Aliberti
a8ed3ed57e Fixed a path problem in the makefile that Phillip reported a few days ago.
Unix paths are handled correctly by DOS and Win32 kernels, but NOT by
command.com and cmd.exe shells. Therefore, when a path is to be handed to
a shell, use \ but when you hand it to any other program, use / instead.

svn path=/trunk/; revision=1208
2000-06-24 09:02:02 +00:00
Eric Kohl
3d2ca25cb4 Added counting physical discs
Fixed a compiler warning

svn path=/trunk/; revision=1207
2000-06-19 22:15:50 +00:00
Eric Kohl
57fc573524 Removed invalid includes
svn path=/trunk/; revision=1206
2000-06-19 16:42:31 +00:00
Eric Kohl
88cf03e85b Use SystemRoot link instead of LdrGetSystemDirectory()
svn path=/trunk/; revision=1205
2000-06-18 17:40:35 +00:00
Eric Kohl
5b2343f9f1 Not used any longer
svn path=/trunk/; revision=1204
2000-06-18 17:39:57 +00:00
Eric Kohl
539b0a1259 Fixed typo and added freetype dir to clean target
svn path=/trunk/; revision=1203
2000-06-18 17:37:57 +00:00
Eric Kohl
9f1e56d438 Implemented IoAttachDeviceByPointer() and IoGetDeviceObjectPointer().
svn path=/trunk/; revision=1202
2000-06-18 15:23:40 +00:00
Eric Kohl
44bdd793c1 Changed list functions to macros (or static inline functions).
svn path=/trunk/; revision=1201
2000-06-18 15:21:53 +00:00
Jason Filby
e3b8762528 Small change and removed unnecessary files
svn path=/trunk/; revision=1200
2000-06-18 12:29:32 +00:00
Jason Filby
943db2de5a Math functions required by win32k
svn path=/trunk/; revision=1199
2000-06-18 12:26:26 +00:00
Jason Filby
dd085499e8 Altered to use new and smaller math.c
svn path=/trunk/; revision=1198
2000-06-18 12:25:42 +00:00
Jason Filby
991cde2c53 Makefile changes for win32k
svn path=/trunk/; revision=1197
2000-06-18 12:25:00 +00:00
Jason Filby
669a590c02 Commented out test code that prevented compilation
svn path=/trunk/; revision=1196
2000-06-18 12:24:22 +00:00
Emanuele Aliberti
b441b2ed03 Base files for a compatible MSVCRT.DLL.
Currently useless.

svn path=/trunk/; revision=1195
2000-06-18 10:57:42 +00:00
David Welch
9d3cd59f17 Corrected build problem
svn path=/trunk/; revision=1194
2000-06-17 23:58:53 +00:00
Phillip Susi
e6bcb9741d Forgot to seek before trying to read back data, and added a check for the data integrity
svn path=/trunk/; revision=1193
2000-06-17 22:04:49 +00:00
Phillip Susi
4e91635e4a Fixed several erronious checks to detect things such as eof on directories too, not just files
svn path=/trunk/; revision=1192
2000-06-17 22:04:08 +00:00
Phillip Susi
274c4db921 Added missing DPRINT
svn path=/trunk/; revision=1191
2000-06-17 22:03:23 +00:00
Phillip Susi
ea455bcfce Fixed bug that fails to update files entries in the root, and added some error checking
svn path=/trunk/; revision=1190
2000-06-17 22:02:09 +00:00
Phillip Susi
8eb69e31d4 Fixed code that checks for a deleted directory entry ( which is really used to find a free entry ) to accept a blank ( never before used ) entry as free
svn path=/trunk/; revision=1189
2000-06-17 22:00:46 +00:00
Jason Filby
a32b900658 temporary float and math support
svn path=/trunk/; revision=1188
2000-06-16 21:13:18 +00:00
Jason Filby
ea1da2be56 missing updates
svn path=/trunk/; revision=1187
2000-06-16 20:58:56 +00:00
Jason Filby
efd7fbb22e missed update
svn path=/trunk/; revision=1186
2000-06-16 20:50:31 +00:00
Jason Filby
a25a8e2e02 GDI Improvements
svn path=/trunk/; revision=1185
2000-06-16 07:36:10 +00:00
Jason Filby
77ef48e705 VGA display driver improvements
svn path=/trunk/; revision=1184
2000-06-16 07:28:20 +00:00
Jason Filby
0b34b1b746 GDI improvements
svn path=/trunk/; revision=1183
2000-06-16 07:25:41 +00:00
Eric Kohl
94c0c4bab2 Improved symbolic links (reparsing).
Implemented SystemRoot and DosDevices links.

svn path=/trunk/; revision=1182
2000-06-15 18:39:25 +00:00
Eric Kohl
fb6c04efbd Implemented IoDeleteSymbolicLink() and NtCreateSymbolicLinkObject().
svn path=/trunk/; revision=1181
2000-06-13 15:51:13 +00:00
Eric Kohl
19e66992de Added cache manager prototypes.
Fixed Io macros.
Fixed and exported more hal functions.

svn path=/trunk/; revision=1180
2000-06-12 14:57:10 +00:00
Emanuele Aliberti
65a13ef159 Return type KIRQL fixed to allow compilation.
svn path=/trunk/; revision=1179
2000-06-09 22:22:32 +00:00
Eric Kohl
3cd7d0dcd3 Moved some functions into the hal.
Replaced some functions by macros.

svn path=/trunk/; revision=1178
2000-06-09 20:07:20 +00:00
Eric Kohl
0aac416a18 Update after server failure.
Fixed STDCALL issues in Ex functions.

svn path=/trunk/; revision=1177
2000-06-07 13:05:09 +00:00
Eric Kohl
d40e55b4e1 Fixed STDCALL issues in Ex functions
svn path=/trunk/; revision=1176
2000-06-05 22:12:06 +00:00
Eric Kohl
64c33bb910 Fixed STDCALL issues in Ke functions
Renamed KiTimerInterrupt() to KeUpdateSystemTime()
Added KeNumberProcessors variable

svn path=/trunk/; revision=1175
2000-06-04 19:51:05 +00:00
Emanuele Aliberti
077ac93718 Type definitions and macros previously in ntoskrnl/nt/port.c moved
in include/internal/port.h .

svn path=/trunk/; revision=1174
2000-06-04 17:32:44 +00:00
Emanuele Aliberti
9464b7005d Made and new ntoskrnl/lpc directory for the LPC subsystem.
Moved ntoskrnl/nt/port.c in ntoskrnl/lpc and split code into
smaller pieces. Little cleanup.

svn path=/trunk/; revision=1173
2000-06-04 17:27:39 +00:00
Eric Kohl
6d5e353126 Fixed clean target (didn't delete all .o files)
svn path=/trunk/; revision=1172
2000-06-04 17:15:47 +00:00
Eric Kohl
ceed9a079e Fixed paths
svn path=/trunk/; revision=1171
2000-06-04 17:14:25 +00:00
Eric Kohl
abc6758e63 Updated Ps* functions
Implemented PsGetVersion()

svn path=/trunk/; revision=1170
2000-06-03 21:36:32 +00:00
Emanuele Aliberti
8123995861 Minor changes.
svn path=/trunk/; revision=1169
2000-06-03 14:47:33 +00:00
Emanuele Aliberti
7fbe844acc Minor changes to kernel32.
svn path=/trunk/; revision=1168
2000-05-30 23:41:06 +00:00
Emanuele Aliberti
f53d713f9a Renamed NTDLL.RtlNtStatusToDosError() RtlNtStatusToDosErrorNoTeb().
Added NTDLL.RtlNtStatusToDosError() that calls RtlNtStatusToDosErrorNoTeb().
Still not understood why RtlNtStatusToDosError() stores in the TEB the given NtStatus.

svn path=/trunk/; revision=1167
2000-05-30 22:25:10 +00:00
Emanuele Aliberti
3918e5583d Added handle type to object name translation in qsi.
svn path=/trunk/; revision=1166
2000-05-28 17:44:53 +00:00
David Welch
279b8390a0 Fix for issue with closing non-existent or already closed handle
svn path=/trunk/; revision=1165
2000-05-27 12:48:59 +00:00
David Welch
06784b2b11 Added etags target
svn path=/trunk/; revision=1164
2000-05-26 14:25:50 +00:00
Phillip Susi
9f7a5635de big work on the console front
svn path=/trunk/; revision=1163
2000-05-26 06:06:42 +00:00
Phillip Susi
97f4345422 fixed color info
svn path=/trunk/; revision=1162
2000-05-26 06:06:05 +00:00
Phillip Susi
232a66904f big work on the console front
svn path=/trunk/; revision=1161
2000-05-26 05:43:33 +00:00
Phillip Susi
1410c2b0a4 a few fixes to the shell
svn path=/trunk/; revision=1160
2000-05-26 05:38:42 +00:00
Eric Kohl
dd76e08c86 Implemented:
- dbg functions
 - RtlFreeUserThreadStack()
 - rtl nls functions
 - rtl process heaps functions
Improved .def and .edf files

svn path=/trunk/; revision=1159
2000-05-25 15:55:35 +00:00
David Welch
3e519811c4 More bug fixes.
svn path=/trunk/; revision=1158
2000-05-24 22:29:38 +00:00
David Welch
1001fb267c Updated clean targets in various places
svn path=/trunk/; revision=1157
2000-05-14 13:10:01 +00:00
Emanuele Aliberti
6bd8ebc9e2 Added ifdef to skip a piece of code commited by mistake (I am still working on it, sorry!).
svn path=/trunk/; revision=1156
2000-05-14 09:34:14 +00:00
Emanuele Aliberti
0726ddaa11 Fixed bug reported by Michael Rich in kernel32 compilation.
svn path=/trunk/; revision=1155
2000-05-14 09:31:05 +00:00
Eric Kohl
f5c8f9fdab Added FLOPPY and DIST targets
svn path=/trunk/; revision=1154
2000-05-13 17:34:15 +00:00
Emanuele Aliberti
d7b4fba550 IoSetThreadHardErrorMode().
svn path=/trunk/; revision=1153
2000-05-13 14:56:47 +00:00
David Welch
598c0f3b1f Fixed typo.
svn path=/trunk/; revision=1152
2000-05-13 14:21:44 +00:00
David Welch
d173c588c7 Some fixes.
Began work on implementing named pipes.

svn path=/trunk/; revision=1151
2000-05-13 13:51:08 +00:00
Eric Kohl
1d034b8c4e Fixed typos in IoGetStackLimits()
svn path=/trunk/; revision=1150
2000-05-13 10:39:23 +00:00
Eric Kohl
3086566400 Fixed IoGetStackLimits()
svn path=/trunk/; revision=1149
2000-05-13 01:48:59 +00:00
Eric Kohl
17e86aad5d Implemented RtlCustomCPxx functions
svn path=/trunk/; revision=1148
2000-05-13 01:48:01 +00:00
Eric Kohl
bb665e58b7 Fixed some more ntoskrnl exports
svn path=/trunk/; revision=1147
2000-05-09 21:31:01 +00:00
Eric Kohl
5c644fe59b Fixed or added exported object type variables
svn path=/trunk/; revision=1146
2000-05-09 16:16:07 +00:00
Eric Kohl
a3160d79cd Implemented IOCTL to draw screen buffer
Changed screen buffer from array of bytes to array of CHAR_INFO

svn path=/trunk/; revision=1145
2000-05-08 23:27:52 +00:00
Eric Kohl
34010a1fcb Fixed ntoskrnl makefile
svn path=/trunk/; revision=1144
2000-05-07 23:04:43 +00:00
Emanuele Aliberti
78a6c60acd Some STDCALL/FASTCALL added in Ex code.
NTOSKRNL's makefile revised with redundant passes removed.

svn path=/trunk/; revision=1142
2000-05-01 14:15:03 +00:00
Emanuele Aliberti
fdf480d262 objdir made compilable.
svn path=/trunk/; revision=1141
2000-05-01 13:53:43 +00:00
Phillip Susi
32ea00da50 NtTerminateProcess did not terminate the current thread if it was a member of the process being terminated
svn path=/trunk/; revision=1140
2000-04-28 17:29:42 +00:00
Emanuele Aliberti
537f82fd1a A fix in the SYSTEM_HANDLE_INFORMATION structure.
svn path=/trunk/; revision=1139
2000-04-27 23:39:49 +00:00
Emanuele Aliberti
b13b811b5f I forgot to update the code that uses SYSTEM_TIME_INFORMATION.
svn path=/trunk/; revision=1138
2000-04-26 06:56:12 +00:00
Emanuele Aliberti
b3ea65f0e4 Partially implemented (handlers only)
NTOSKRNL.NtQuerySystemInformation() and
NTOSKRNL.NtSetSystemInformation().

---

Partially implemented (kernel32/process/proc.c)

KERNEL32.GetPriorityClass(),
KERNEL32.SetPriorityClass() and
NTDLL.CsrSetPriorityClass() (stub only).

Renamed (in include/csrss/csrss.h) priority
class macros:

#define CSR_PRIORITY_CLASS_NORMAL	(0x10)
#define CSR_PRIORITY_CLASS_IDLE		(0x20)
#define CSR_PRIORITY_CLASS_HIGH		(0x40)
#define CSR_PRIORITY_CLASS_REALTIME	(0x80)

---

Implemented (kernel32/misc/error.c)

#include <kernel32/error.h>

DWORD
STDCALL
SetLastErrorByStatus (
	NTSTATUS	Status
	);

to replace SetLastError(RtlNtStatusToDosError(Status))
in KERNEL32, and fixed

KERNEL32.SetLastError()
KERNEL32.GetLastError()

to use the field in NT_TEB (LastError is per thread
not per process).

---

Implemented (lib/kernel32/sysinfo.c) GetSystemInfo()
(to be completed).

---

Fixed rosapps/sysutils/makefile to use ROS import
libraries.

---

Added QSI to the system utilities set. The target is
writing a tool that can be used to query as much system
information as possible from user mode (to be finished
and tested only under nt4sp4/x86; it was NOT tested
under ROS: it crashes immediately and needs
NtQuerySystemInformation implemented!).

svn path=/trunk/; revision=1137
2000-04-25 23:22:57 +00:00
Phillip Susi
0c4a5f1e06 NtDeviceIoControllFile() was not specifying IoFileObjectType as the object type when referencing the file handle
svn path=/trunk/; revision=1136
2000-04-24 04:17:55 +00:00
Phillip Susi
5fea099598 Do not set std handles when AllocConsole() fails, I swear I fixed this before...
svn path=/trunk/; revision=1135
2000-04-24 01:52:24 +00:00
Phillip Susi
23b59ecccb Disabled debug prints
svn path=/trunk/; revision=1134
2000-04-23 18:01:21 +00:00
Phillip Susi
cbf17cd791 Disabled debug prints
svn path=/trunk/; revision=1133
2000-04-23 17:55:21 +00:00
Phillip Susi
0bb8878fc1 Dumped anoying debug print
svn path=/trunk/; revision=1132
2000-04-23 17:52:44 +00:00
Phillip Susi
0d569ee50b Added a event handle to reply struct
svn path=/trunk/; revision=1131
2000-04-23 17:51:35 +00:00
Phillip Susi
de82241cb1 Added declaration for InterlockedCompareExchange
svn path=/trunk/; revision=1130
2000-04-23 17:50:47 +00:00
Phillip Susi
7928fc621a Switched to CREATE_NEW_CONSOLE from DETACHED_PROCESS
svn path=/trunk/; revision=1129
2000-04-23 17:49:07 +00:00
Phillip Susi
cdd3a57119 Whole new win32 console support, with multiple virtual consoles and scrollback support
svn path=/trunk/; revision=1128
2000-04-23 17:44:53 +00:00
Phillip Susi
4f6c860da3 Was reporting geometry backwards, and needed to add a raw output mode
svn path=/trunk/; revision=1127
2000-04-23 17:42:57 +00:00
Phillip Susi
6ac6c50282 Patched up console code a bit
svn path=/trunk/; revision=1126
2000-04-23 17:41:40 +00:00
Phillip Susi
66780d1d02 CreateProcess was eating the flags, had to pass them on
svn path=/trunk/; revision=1125
2000-04-23 17:40:52 +00:00
Phillip Susi
ee3307e21d Fixed up Critical Section code
svn path=/trunk/; revision=1124
2000-04-20 05:29:27 +00:00
Phillip Susi
b01b3e0e97 Replaced a -- with an InterlockedDecrement
svn path=/trunk/; revision=1123
2000-04-17 03:09:04 +00:00
Eric Kohl
8b7920f796 Added some rtl functions
svn path=/trunk/; revision=1122
2000-04-15 23:14:32 +00:00
Eric Kohl
86a1100180 Implemented debugger functions
svn path=/trunk/; revision=1121
2000-04-14 01:50:38 +00:00
Boudewijn Dekker
4542601468 applied fixes to make a user32.dll
code is based on wine.

svn path=/trunk/; revision=1120
2000-04-13 20:59:11 +00:00
Boudewijn Dekker
99fb26fc8b .
svn path=/trunk/; revision=1119
2000-04-12 22:41:51 +00:00
Eric Kohl
7910a00791 Added kernel_parameters to boot_param
svn path=/trunk/; revision=1118
2000-04-12 17:34:27 +00:00
Jason Filby
93d95d8063 Fixed EngFreeMem def
svn path=/trunk/; revision=1117
2000-04-11 20:56:11 +00:00
Jason Filby
04a84d5ab8 Implemented DrvCopybits
Minor fixes

svn path=/trunk/; revision=1116
2000-04-10 20:17:34 +00:00
Eric Kohl
5b7a3113d5 Added system and isa bus handler
svn path=/trunk/; revision=1115
2000-04-09 15:58:13 +00:00
Eric Kohl
db593a0fb7 Fixed compiler warnings
svn path=/trunk/; revision=1114
2000-04-08 23:35:27 +00:00
Eric Kohl
51db0e6fed Moved KeStallExecutionProcessor() into HAL.
Added some security functions.

svn path=/trunk/; revision=1113
2000-04-08 19:10:50 +00:00
Eric Kohl
55c5bbf0be Fixed bug in COPY command
svn path=/trunk/; revision=1112
2000-04-08 14:50:47 +00:00
Phillip Susi
4be5d21243 Correted path to be system32 instead of system
svn path=/trunk/; revision=1111
2000-04-07 22:59:38 +00:00
Phillip Susi
fe9a733457 Removed LoadLibraryW from kernel32.edf, as it seems to not have an implementation and so would not compile. Wonder where the implementation whent?
svn path=/trunk/; revision=1110
2000-04-07 21:45:32 +00:00
Eric Kohl
654c8e7d00 Added more time functions
svn path=/trunk/; revision=1109
2000-04-07 12:45:22 +00:00
David Welch
53e0232c6c Began seperation of machine-dependant/independant sections of memory
manager
Did some more work on the dce/rpc implementation
Corrected loadros so the kernel can no longer write to read-only areas
of memory
Corrected alignment and size of initial stack

svn path=/trunk/; revision=1108
2000-04-07 02:24:03 +00:00
Eric Kohl
e3ce7008d7 Moved debug functions
svn path=/trunk/; revision=1107
2000-04-06 17:23:52 +00:00
Eric Kohl
9d90e8c107 Added some more security functions
svn path=/trunk/; revision=1106
2000-04-06 02:29:57 +00:00
Eric Kohl
48c46844eb Added hal functions
Fixed se functions

svn path=/trunk/; revision=1105
2000-04-05 15:52:45 +00:00
Eric Kohl
05bf1339f9 Added ace, acl and sid functions
svn path=/trunk/; revision=1104
2000-04-05 01:41:01 +00:00
David Welch
d54e68673b Correct LPC implementation
Removed thread leak in csrss
Added notification of port closing

svn path=/trunk/; revision=1103
2000-04-03 21:54:42 +00:00
Jason Filby
eb1f2f9bd1 Implemented DrvPaint and DrvBitBlt
Added tests for new routines
Minor fixes

svn path=/trunk/; revision=1102
2000-04-03 19:55:33 +00:00
Emanuele Aliberti
3b0f32720d Mm subsystem exports table complete.
svn path=/trunk/; revision=1101
2000-04-02 13:32:43 +00:00
Jason Filby
fccf1c26a7 All video related files now loaded by win32k
svn path=/trunk/; revision=1100
2000-04-02 13:09:50 +00:00
Jason Filby
b8d0ffaf38 Use NonPagedPool in EngAllocMem for now
svn path=/trunk/; revision=1099
2000-04-02 12:44:57 +00:00
Emanuele Aliberti
49f35db9e8 Version info for Named Pipe fs driver.
svn path=/trunk/; revision=1098
2000-04-01 14:20:21 +00:00
Emanuele Aliberti
1fc2971156 Version info for Minix driver.
svn path=/trunk/; revision=1097
2000-04-01 14:19:48 +00:00
Emanuele Aliberti
cdbe762497 Version info for ext2fs driver.
svn path=/trunk/; revision=1096
2000-04-01 14:19:07 +00:00
Jason Filby
248fe1f79d Implemented basic VGA routines
Implemented Eng\DrvLineTo

svn path=/trunk/; revision=1095
2000-04-01 12:31:29 +00:00
David Welch
9d6388ae05 Corrected mutex implementation
Added proper locking to the memory managment

svn path=/trunk/; revision=1093
2000-03-29 13:11:55 +00:00
Phillip Susi
3bd2a11130 Fixed typeo preventing compilation
svn path=/trunk/; revision=1092
2000-03-29 03:15:11 +00:00
David Welch
1be4f77bcb Corrected the handle generation algorithm in the kernel and csrss
Did some work on services.exe
Did some work on the service functions in advapi32
Made some progress in implementing npfs
Implemented a basic grammar for midl

svn path=/trunk/; revision=1091
2000-03-26 22:00:10 +00:00
Emanuele Aliberti
758ba695e1 Io subsystem clean-up. Every exported symbols is not STDCALL.
NtCreateFile renamed IoCreateFile and Nt{Create,Open}File call IoCreateFile.
Io data items added (to be fixed).

svn path=/trunk/; revision=1090
2000-03-26 19:38:32 +00:00
David Welch
79eff41abb Connected standard input/output to the console
Removed from superfluous assertions
Changed the ide read and write commands to work with bochs
Corrected bug in the csrss server

svn path=/trunk/; revision=1089
2000-03-24 22:25:39 +00:00
David Welch
0bd4cf0cbf Updated the minix driver
Moved console handling into csrss
Gave each process a name for debugging purposes

svn path=/trunk/; revision=1088
2000-03-22 18:36:00 +00:00
Eric Kohl
a1c9a520cf Modified kernel initialization sequence
Enabled bus handlers

svn path=/trunk/; revision=1087
2000-03-20 18:00:55 +00:00
Eric Kohl
dc3956d8ac Added some more status codes
svn path=/trunk/; revision=1086
2000-03-19 15:57:39 +00:00
Eric Kohl
802301d861 Implemented bus handler functions (not working yet)
Several STDCALL fixes

svn path=/trunk/; revision=1085
2000-03-19 13:35:38 +00:00
Eric Kohl
9887130ab7 Implemented bus handler functions (not working yet)
svn path=/trunk/; revision=1084
2000-03-19 13:33:39 +00:00
Eric Kohl
d4fc70afdc Implemented VideoPortDebugPrint()
svn path=/trunk/; revision=1083
2000-03-19 13:31:37 +00:00
Eric Kohl
bd02ee978f Added SYSTEM_TIME_INFORMATION
svn path=/trunk/; revision=1082
2000-03-19 13:30:30 +00:00
Emanuele Aliberti
bc30557a61 Some clean-up in ntoskrnl/mm. MmAllocateSection prototype moved in
internal/mm.h.

svn path=/trunk/; revision=1081
2000-03-19 09:14:52 +00:00
Eric Kohl
56132bfb44 Fixed path bugs
svn path=/trunk/; revision=1080
2000-03-18 19:55:53 +00:00
Jason Filby
c4ecfc894c Added forgotten .h files
svn path=/trunk/; revision=1079
2000-03-18 18:39:44 +00:00
Emanuele Aliberti
d6f6aad9e7 qsort in NTOSKRNL and some STDCALL declarations.
svn path=/trunk/; revision=1078
2000-03-18 15:12:19 +00:00
Eric Kohl
5e7a2202d1 Oops...
svn path=/trunk/; revision=1077
2000-03-18 14:37:43 +00:00
Eric Kohl
2c6fae9c20 Added image functions
Include pe.h in windows.h to avoid conflicts

svn path=/trunk/; revision=1076
2000-03-18 14:02:01 +00:00
Eric Kohl
1042f1ae27 Added security descriptor functions
svn path=/trunk/; revision=1075
2000-03-18 13:48:24 +00:00
Eric Kohl
753cb16c91 Fixed compiler warnings
svn path=/trunk/; revision=1074
2000-03-18 02:39:39 +00:00
Jason Filby
5d99a8740a last mod...
svn path=/trunk/; revision=1073
2000-03-17 22:19:44 +00:00
Jason Filby
1ba7343b1c Additional modifications
svn path=/trunk/; revision=1072
2000-03-17 22:14:31 +00:00
Jason Filby
2adbc636a8 Additional modifications
svn path=/trunk/; revision=1071
2000-03-17 21:56:43 +00:00
Jason Filby
c404283ff4 Additional modifications
svn path=/trunk/; revision=1070
2000-03-17 21:49:32 +00:00
Eric Kohl
d9d3272dc6 Fixed compiler warning
svn path=/trunk/; revision=1069
2000-03-17 21:46:41 +00:00
Jason Filby
690a781452 Added eng files
svn path=/trunk/; revision=1068
2000-03-17 21:44:02 +00:00
Jason Filby
e1d6086025 Miniport driver now loaded from win32k
Display and miniport drivers can now talk to each other
Sets the VGA video mode

svn path=/trunk/; revision=1067
2000-03-17 21:02:59 +00:00
Eric Kohl
40ee84e997 Oops! Typos...
svn path=/trunk/; revision=1066
2000-03-16 21:50:56 +00:00
Eric Kohl
ef5f880bac Fixed ANSI <--> Unicode conversions
svn path=/trunk/; revision=1065
2000-03-16 21:50:11 +00:00
David Welch
6088637c5e Oops.
svn path=/trunk/; revision=1064
2000-03-16 20:50:48 +00:00
Eric Kohl
0344745e30 Fixed a confusing error message
svn path=/trunk/; revision=1063
2000-03-16 20:02:44 +00:00
David Welch
337952bfb9 Implemented setting the fs register to point to the TEB
svn path=/trunk/; revision=1062
2000-03-16 18:44:57 +00:00
Eric Kohl
15c9809105 Fixed ANSI/OEM <--> Unicode conversions
svn path=/trunk/; revision=1061
2000-03-16 01:14:58 +00:00
Eric Kohl
b820741431 Fixed WIN32_FIND_DATA[A/W] structs and resulting bugs
svn path=/trunk/; revision=1060
2000-03-15 23:13:29 +00:00
Eric Kohl
67200bd4f9 Fixed ANSI/OEM <--> Unicode conversions
svn path=/trunk/; revision=1059
2000-03-15 18:30:30 +00:00
Eric Kohl
b2eb99d9f7 Obsolete!
svn path=/trunk/; revision=1058
2000-03-15 18:29:50 +00:00
Eric Kohl
9658579d48 Fixed ANSI/OEM <--> Unicode conversions
svn path=/trunk/; revision=1057
2000-03-15 12:25:47 +00:00
Eric Kohl
1c5d2b7204 Fixed ANSI/OEM <--> Unicode conversions
svn path=/trunk/; revision=1056
2000-03-14 23:09:23 +00:00
David Welch
fbfce3bc03 Updated install script
svn path=/trunk/; revision=1055
2000-03-13 23:16:46 +00:00
Eric Kohl
045a3dfdd2 Unused characters in long file name buffers (directory slots) must be filled with 0xFFFF.
svn path=/trunk/; revision=1054
2000-03-13 17:58:06 +00:00
Eric Kohl
2ef0c4177b Fixed a bug in rtlGetFullPathName_U()
svn path=/trunk/; revision=1053
2000-03-13 17:54:23 +00:00
Eric Kohl
6865b783cc Fixed file creation date and time
Implemented synchronization of all FATs (FAT16 only)
Fixed bug in directory creation

svn path=/trunk/; revision=1052
2000-03-12 23:28:59 +00:00
Eric Kohl
15094179f1 Add MD command
svn path=/trunk/; revision=1051
2000-03-12 23:24:51 +00:00
Eric Kohl
d9a0a586a8 Updated INTERFACE_TYPE
svn path=/trunk/; revision=1050
2000-03-12 01:22:37 +00:00
Eric Kohl
afa23cb264 Added some security functions
svn path=/trunk/; revision=1049
2000-03-12 01:18:18 +00:00
Eric Kohl
9488b3031c Fixed lots of status values
svn path=/trunk/; revision=1048
2000-03-12 01:15:09 +00:00
Emanuele Aliberti
a665da497e NTOKRNL.FsRtl notification and cache tunnels stubs added.
Possibly fixed the win32k.sys import error reported by Jason.

svn path=/trunk/; revision=1047
2000-03-11 00:51:36 +00:00
Emanuele Aliberti
f1d9e95a84 NTOSKRNL.FsRtl opportunistic lock stubs added.
svn path=/trunk/; revision=1046
2000-03-10 22:09:17 +00:00
Eric Kohl
91d68b2e7b Fixed compiler warning
svn path=/trunk/; revision=1045
2000-03-10 13:46:27 +00:00
Jason Filby
200afa376d Add VGA display driver
svn path=/trunk/; revision=1044
2000-03-10 12:45:45 +00:00
Jason Filby
836456a97d Small fix
svn path=/trunk/; revision=1043
2000-03-10 12:39:53 +00:00
Jason Filby
10f82cf988 Implemented DRIVER_BuildDDIFunctions
svn path=/trunk/; revision=1042
2000-03-09 21:04:10 +00:00
Eric Kohl
bf4806c502 Added time related functions
svn path=/trunk/; revision=1041
2000-03-09 16:01:25 +00:00
Eric Kohl
89871935c1 Implemented bitmap functions
svn path=/trunk/; revision=1040
2000-03-09 00:14:10 +00:00
Emanuele Aliberti
c3f375c672 win32k.sys exports script.
svn path=/trunk/; revision=1039
2000-03-08 22:39:04 +00:00
Emanuele Aliberti
267e86b00e Version info added to Eric's edit port.
svn path=/trunk/; revision=1038
2000-03-08 22:38:01 +00:00
Emanuele Aliberti
b129b2caea Some minor fixes.
svn path=/trunk/; revision=1037
2000-03-08 22:37:04 +00:00
Jason Filby
3da0b018e5 Moved display driver and got win32k loading it's entry point.
svn path=/trunk/; revision=1036
2000-03-08 21:23:14 +00:00
Eric Kohl
e2eb8c1697 Added more bitmap functions
Fixed some STDCALL issues

svn path=/trunk/; revision=1035
2000-03-08 01:55:34 +00:00
Eric Kohl
a12836346f Improved keyboard handling code
Fixed problems with differnet console sizes
Started function renaming

svn path=/trunk/; revision=1034
2000-03-08 01:49:37 +00:00
Emanuele Aliberti
1eed2a945a Added .Type and .Size attributes to the IRP object: so far nothing
seems broken.
Added __stdcall to some Io subsystem functions.
Attempt to implement IoIsOperationSynchronous().

svn path=/trunk/; revision=1033
2000-03-06 01:02:30 +00:00
Eric Kohl
79d0e047eb Added D-Flat/32 library
svn path=/trunk/; revision=1032
2000-03-05 19:58:08 +00:00
Emanuele Aliberti
2634e901be NTOSKRNL.FSRtl MDL stubs added.
svn path=/trunk/; revision=1031
2000-03-05 19:17:43 +00:00
Eric Kohl
9eac680002 Implemented kernel parameter line
Some kernel debugger improvements

svn path=/trunk/; revision=1030
2000-03-04 22:03:32 +00:00
Emanuele Aliberti
51df161b78 *** empty log message ***
svn path=/trunk/; revision=1029
2000-03-04 20:45:34 +00:00
Eric Kohl
2b0d467176 Moved spinlock.c and head.s from 'hal/x86' to 'ke'.
This is needed for the hal separation.

svn path=/trunk/; revision=1028
2000-03-04 13:44:59 +00:00
Eric Kohl
92857818cb Added bitmaps
Added some Rtl string functions
Various changes

svn path=/trunk/; revision=1026
2000-03-03 00:48:50 +00:00
Eric Kohl
fd304f0ef5 Fixed compiler warnings
svn path=/trunk/; revision=1025
2000-03-03 00:34:54 +00:00
Emanuele Aliberti
ef5b0066c7 *** empty log message ***
svn path=/trunk/; revision=1024
2000-03-01 23:41:35 +00:00
Emanuele Aliberti
395fb3c86f NTOSKRNL.FsRtlAllocate functions.
svn path=/trunk/; revision=1023
2000-03-01 22:52:28 +00:00
Eric Kohl
76f55a8a93 Fixed mp driver initialization bug and some other ones
svn path=/trunk/; revision=1022
2000-03-01 03:25:11 +00:00
Emanuele Aliberti
d53eeb0cee Added help command to shell.exe.
Minor changes.

svn path=/trunk/; revision=1021
2000-02-29 23:57:47 +00:00
Eric Kohl
c37b4fd7f1 Fixed some unicode initialization bugs
svn path=/trunk/; revision=1020
2000-02-27 18:01:44 +00:00
Eric Kohl
c0ad0d9b02 Added 'Path' and 'windir' system environment variables
svn path=/trunk/; revision=1019
2000-02-27 15:47:17 +00:00
Eric Kohl
853d9d4ae2 Fixed bugs in RtlExpandEnvironmentStrings_U() and RtlSetEnvironmentVariable()
svn path=/trunk/; revision=1018
2000-02-27 15:45:57 +00:00
Eric Kohl
6eb7010078 Fixed bugs in '%wZ' string output
svn path=/trunk/; revision=1017
2000-02-27 15:43:58 +00:00
Jason Filby
48db9468eb Minor fixes
svn path=/trunk/; revision=1016
2000-02-27 11:04:36 +00:00
Eric Kohl
fa81b6d260 Improved csrss (doesn't crash any more)
Improved kernel debugger code
Various minor improvements

svn path=/trunk/; revision=1015
2000-02-27 02:12:07 +00:00
Eric Kohl
012968e3dc Removed obsolete header include
svn path=/trunk/; revision=1014
2000-02-26 23:20:50 +00:00
Emanuele Aliberti
debfec7180 Some __stdcall declarations in ntoskrnl/hal.
A new include/ddk/kdfuncs.h header.

svn path=/trunk/; revision=1013
2000-02-26 22:41:35 +00:00
Emanuele Aliberti
4b80eae220 File locking NTOSKRNL.FsRtl stubs.
svn path=/trunk/; revision=1012
2000-02-26 16:22:27 +00:00
Boudewijn Dekker
ad382b39b3 changed struct FILE_OBJECT* to struct _FILE_OBJECT* at line 154
svn path=/trunk/; revision=1011
2000-02-26 09:58:06 +00:00
Eric Kohl
89875c3a44 Improved RtlCreateUserProcess()
svn path=/trunk/; revision=1010
2000-02-25 23:58:57 +00:00
Emanuele Aliberti
8f1ea8477c FsRtl stubs for DBCS names handling.
svn path=/trunk/; revision=1009
2000-02-25 23:27:51 +00:00
Eric Kohl
26253d8e9b Fixed PEB related bugs
svn path=/trunk/; revision=1008
2000-02-25 00:35:06 +00:00
Eric Kohl
0723b7c345 Removed useless debug messages and header files
svn path=/trunk/; revision=1007
2000-02-25 00:34:12 +00:00
Emanuele Aliberti
ac8c87276f Minor changes.
svn path=/trunk/; revision=1006
2000-02-24 23:38:26 +00:00
Emanuele Aliberti
00a4935163 *** empty log message ***
svn path=/trunk/; revision=1005
2000-02-24 23:31:27 +00:00
Emanuele Aliberti
9dc1aa60cb Changes for FsRtl added functions.
svn path=/trunk/; revision=1004
2000-02-24 23:27:52 +00:00
Emanuele Aliberti
9f87d15938 More stubs for NTOSKRNL.FsRtl: file name handling.
svn path=/trunk/; revision=1003
2000-02-24 23:25:16 +00:00
Eric Kohl
d7de328d0c Replaced direct io space mapping by call to MmMapIoSpace()
svn path=/trunk/; revision=1002
2000-02-24 13:16:40 +00:00
Eric Kohl
6165746875 Added gdi test program gditest.exe
svn path=/trunk/; revision=1001
2000-02-22 20:58:26 +00:00
Eric Kohl
7b02da36f7 Added GdiDllInitialize()
svn path=/trunk/; revision=1000
2000-02-22 20:55:57 +00:00
Eric Kohl
f8fe1ea0b1 Added W32kInitialize service (orig. name NtGdiInit)
svn path=/trunk/; revision=999
2000-02-22 20:53:11 +00:00
Eric Kohl
213e8b569c Fixed minor bugs interrupt_service2e()
svn path=/trunk/; revision=998
2000-02-22 20:50:07 +00:00
Rex Jolliff
5db4e55264 added support for shadow syscall table
svn path=/trunk/; revision=997
2000-02-22 07:27:30 +00:00
Eric Kohl
7cb2e823a0 Fixed minor bugs. 'ddk/ntddk.h' MUST ALWAYS be included FIST!!!!!
svn path=/trunk/; revision=996
2000-02-22 02:02:08 +00:00
Eric Kohl
d1341007cf Changed RtlCopyMemory() from function to macro
Improved system service table code

svn path=/trunk/; revision=995
2000-02-21 22:44:37 +00:00
Emanuele Aliberti
151f2f646e WIN32K Kernel API main include file (replaces win32k/win32k.h).
svn path=/trunk/; revision=994
2000-02-21 00:50:17 +00:00
Emanuele Aliberti
7d3fded0ba Added little prog. that builds the WIN32K.SYS service table
and the stubs to be used in GDI32.DLL.
Converted to __stdcall every W32k... call in WIN32K.SYS.
Fixed the entry point in GDI32.DLL.
WARNING: the thing compiles, but Jason reports it does not work as is
(he tested a preliminary stub piece of code).
Perhaps changing it (as Phillip proposes) or fixing it to make WIN32K.SYS
work the NT way is required (Hernan, are you there: I did not understand
well how the additional service tables work). Feel free to change it.

svn path=/trunk/; revision=993
2000-02-20 22:52:50 +00:00
Eric Kohl
b9bb1744aa Fixed bugs in process parameter and environment code
svn path=/trunk/; revision=992
2000-02-19 19:37:13 +00:00
Eric Kohl
e632116bee Fixed buggy RtlCompareString() and RtlCompareUnicodeString()
svn path=/trunk/; revision=991
2000-02-19 19:31:41 +00:00
Eric Kohl
f28a023c99 Fixed a bug - memmove() couldn't handle overlapping buffers
svn path=/trunk/; revision=990
2000-02-19 17:18:34 +00:00
Eric Kohl
b0780ae5d6 Fixed environment implementation
Fixed current directory implementation

svn path=/trunk/; revision=989
2000-02-18 01:01:06 +00:00
Eric Kohl
6bea08705e Fixed minor bugs and removed fixed start directory
svn path=/trunk/; revision=988
2000-02-18 00:53:11 +00:00
Eric Kohl
6708f0b87e Fixed environment implementation
Fixed current directory implementation

svn path=/trunk/; revision=987
2000-02-18 00:51:03 +00:00
Emanuele Aliberti
f0175145d6 Untested raw implementation of MultiByteToWideChar().
svn path=/trunk/; revision=986
2000-02-14 22:10:46 +00:00
David Welch
3cd2fc22d7 Fixed compilation bug
Made a start on some documentation in info format

svn path=/trunk/; revision=985
2000-02-14 14:13:34 +00:00
Boudewijn Dekker
b49921cb96 impl. NtGetTickCount
svn path=/trunk/; revision=984
2000-02-14 10:27:40 +00:00
David Welch
c110a36a78 Moved user-process loading into ZwCreateProcess
svn path=/trunk/; revision=983
2000-02-13 16:05:19 +00:00
Eric Kohl
ca7bca8f84 Fixed a bug in NtQueryVirtualMemory()
svn path=/trunk/; revision=982
2000-02-06 15:52:04 +00:00
Eric Kohl
5f71c29e2c Fixed _wcsnicmp()
svn path=/trunk/; revision=981
2000-02-05 23:46:14 +00:00
Eric Kohl
326a3cd58b Added some string functions
Added security descriptor functions
Implemented environment functions
Implemented current directory functions

svn path=/trunk/; revision=980
2000-02-05 16:08:49 +00:00
Eric Kohl
18c0c85dd8 Added CHECKPOINT macro
svn path=/trunk/; revision=978
2000-02-03 22:45:11 +00:00
Phillip Susi
480136bdf4 Fixed loader bugs, still needs reworked to create multiple sections
svn path=/trunk/; revision=977
2000-02-03 21:34:14 +00:00
Paolo Pantaleo
16ef6ef2af history command added and some minor changes to history interface
svn path=/trunk/; revision=976
2000-02-01 18:29:11 +00:00
Eric Kohl
33258c166f Fixed a stdcall bug
svn path=/trunk/; revision=975
2000-01-31 20:26:15 +00:00
Eric Kohl
f09ef9894a Fixed an invalid printf() format type
svn path=/trunk/; revision=974
2000-01-31 20:25:43 +00:00
Eric Kohl
19e258120e Fixed compiler warnings
svn path=/trunk/; revision=973
2000-01-31 20:24:41 +00:00
Eric Kohl
7c3e6e80c1 Fixed METAFILEPICT bug
svn path=/trunk/; revision=972
2000-01-31 20:23:54 +00:00
Hernan Ochoa
5dc3ee0414 Added $Id Tag for commit info
svn path=/trunk/; revision=971
2000-01-30 20:55:51 +00:00
Hernan Ochoa
90579ae67f Added $Id Tag for commit info
svn path=/trunk/; revision=970
2000-01-30 17:02:44 +00:00
Phillip Susi
5dff1d9789 ignore errors deleting files for make clean
svn path=/trunk/; revision=969
2000-01-29 20:32:12 +00:00
Hernan Ochoa
337692832a Added parameters checking, help, and some information about
when the program was compiled.

svn path=/trunk/; revision=968
2000-01-29 19:20:26 +00:00
David Welch
d633bd8168 Changed the loader so ZwCreateProcess now maps ntdll into memory
svn path=/trunk/; revision=967
2000-01-27 08:56:50 +00:00
Jason Filby
980d94c760 *** empty log message ***
svn path=/trunk/; revision=966
2000-01-26 21:10:16 +00:00
David Welch
d24a48cd94 More improvements to LPC code
Updated TEB structure
Changed selectors value to be closer to nt
Some bugfixes

svn path=/trunk/; revision=965
2000-01-26 10:07:30 +00:00
Phillip Susi
52404fd1c8 Fixed bug in IO manager that caused crash when trying to open a file on a non existant device
Fixed memory leaks in object manager

svn path=/trunk/; revision=964
2000-01-25 06:31:25 +00:00
Emanuele Aliberti
3a18299c0f Coders directory updated.
svn path=/trunk/; revision=963
2000-01-23 22:52:57 +00:00
Phillip Susi
c41488b99a Fixed syntax error
svn path=/trunk/; revision=962
2000-01-23 19:36:41 +00:00
Hernan Ochoa
3cd7e191a4 now NTOSKRNL exports KeServiceDescriptorTable just like
NT's NTOSKRNL does.

svn path=/trunk/; revision=961
2000-01-23 15:21:25 +00:00
Hernan Ochoa
185d2be0f1 added definitions for SSDT, SSPT, KeServiceDescriptorTable,
KeServiceDescriptorTableShadow, KeAddSystemService(),
KE_SERVIDE_DESCRIPTOR_TABLE_ENTRY.

svn path=/trunk/; revision=960
2000-01-23 15:19:05 +00:00
Hernan Ochoa
55bb357489 changed syscall tables. now it mimics NT style.
it has a SSDT a SSPT, a KeServiceDescriptorTable and a
KeServiceDescriptorTableShadow. modified the code
inside the int2e_handler() to use the new syscall tables.

svn path=/trunk/; revision=959
2000-01-23 15:17:06 +00:00
Hernan Ochoa
65a742ceaa changed syscall tables. now it mimics NT style.
it has a SSDT a SSPT, a KeServiceDescriptorTable and a
KeServiceDescriptorTableShadow. genntdll now also generates
some useful defines about min syscall number, max
syscall number, and number of syscalls.

svn path=/trunk/; revision=958
2000-01-23 15:14:42 +00:00
Phillip Susi
1220167730 New Read/Write File IO test utility
svn path=/trunk/; revision=957
2000-01-23 09:04:30 +00:00
Phillip Susi
2001008199 Fixed OutputDebugString() to use the new int 2D debug service
Moved include of rules.mak up to top so it picks up the HOST variable from there

svn path=/trunk/; revision=956
2000-01-23 08:16:20 +00:00
Emanuele Aliberti
74131ebded Added error reporting to lpcsrv and lpcclt.
svn path=/trunk/; revision=955
2000-01-22 22:22:48 +00:00
Emanuele Aliberti
5415f6f333 Fixed a stupid bug in time conversion code that generated abnormally high
build numbers.

svn path=/trunk/; revision=954
2000-01-22 14:25:48 +00:00
Phillip Susi
0ab77c8e74 Fixed a broken DPRINT
svn path=/trunk/; revision=953
2000-01-22 00:04:56 +00:00
Phillip Susi
51445f2db1 Made symbolic links permanent the proper way, with the perm flag, rather than leaking a refcount
svn path=/trunk/; revision=952
2000-01-21 23:59:53 +00:00
Phillip Susi
4d393f112a darnit... another debug print.. someone kick me
svn path=/trunk/; revision=951
2000-01-21 23:27:47 +00:00
Phillip Susi
a706ca2b64 Ooops... forgot some debug prints ( embarassed )
svn path=/trunk/; revision=950
2000-01-21 23:17:47 +00:00
Phillip Susi
e4008de214 Fixed makefile to include rules.mak first, so it gets the settings in there right
Fixed path parsing for \\.\

svn path=/trunk/; revision=949
2000-01-21 23:06:26 +00:00
Eric Kohl
2a24d175bf Replaced calls to aprintf() or dprintf() by DPRINT()
Removed old debugging code

svn path=/trunk/; revision=948
2000-01-20 22:57:01 +00:00
Eric Kohl
b6c944afcc Added missing format types to vfprintf()
Implemented vfwprintf()

svn path=/trunk/; revision=947
2000-01-20 22:49:12 +00:00
Emanuele Aliberti
90617da53d Minor changes.
svn path=/trunk/; revision=946
2000-01-20 22:14:45 +00:00
Emanuele Aliberti
b6de29fefb Two more FsRtl stubs.
svn path=/trunk/; revision=945
2000-01-20 22:14:08 +00:00
Emanuele Aliberti
8b078f86ae Updated fsfuncs.h with latest stubs prototypes.
svn path=/trunk/; revision=944
2000-01-20 22:11:48 +00:00
Eric Kohl
1b92b852eb Cleanup
Added '%I64' format type

svn path=/trunk/; revision=943
2000-01-19 19:48:20 +00:00
Eric Kohl
072eed4ad3 Fixed compiler warning
svn path=/trunk/; revision=942
2000-01-19 19:47:15 +00:00
Eric Kohl
75f2f5b22e Fixed ugly bug in the serial debugging code
svn path=/trunk/; revision=941
2000-01-19 16:24:15 +00:00
Rex Jolliff
90e1f4cbf9 changes to support v15 release
svn path=/trunk/; revision=939
2000-01-19 07:05:04 +00:00
Eric Kohl
921363d647 Changed debug output to use INT 2D
svn path=/trunk/; revision=938
2000-01-18 12:04:45 +00:00
Eric Kohl
8234dea660 Changed debug output to use INT 2D
Ooops! This one was missing! Sorry!

svn path=/trunk/; revision=937
2000-01-18 11:04:53 +00:00
Eric Kohl
88cb154d19 Changed debug output to use INT 2D
svn path=/trunk/; revision=936
2000-01-17 21:02:50 +00:00
Phillip Susi
faac123528 fixed tab completion with long file names
svn path=/trunk/; revision=935
2000-01-17 02:17:50 +00:00
Emanuele Aliberti
e857e97df1 Some more stubs for NDIS.SYS.
svn path=/trunk/; revision=934
2000-01-16 18:32:34 +00:00
Emanuele Aliberti
d508a1f0bf Added two missing names.
svn path=/trunk/; revision=933
2000-01-16 18:31:48 +00:00
Eric Kohl
013fc117b8 Added missing features and functions
Cleaned confusing file naming

svn path=/trunk/; revision=932
2000-01-14 02:23:25 +00:00
Eric Kohl
3d1f2d98ba Added missing printf() functions
Changed format %w to %S and %W to %wZ

svn path=/trunk/; revision=931
2000-01-12 19:05:32 +00:00
Eric Kohl
de66c40007 Disabled debugging messages
svn path=/trunk/; revision=930
2000-01-11 17:33:44 +00:00
Eric Kohl
6cc53dd4b3 Fixed process parameters
Simplified current directory code
Added %C and %S formats to printf()
Changed %w to %S
Fixed compiler warnings

svn path=/trunk/; revision=929
2000-01-11 17:32:13 +00:00
Eric Kohl
fb7f4582cd Fixed ctype and Rtl functions
svn path=/trunk/; revision=928
2000-01-11 01:16:50 +00:00
Emanuele Aliberti
a11a76eaef Some more NTOSKRNL.FsRtl stubs.
svn path=/trunk/; revision=927
2000-01-10 22:46:38 +00:00
Eric Kohl
be132afdf2 Added DbgPrint()
Fixed some Rtl functions
Added missing printf() and wprintf() functions

svn path=/trunk/; revision=926
2000-01-10 20:34:41 +00:00
Eric Kohl
686387f8e0 Removed fixed screen size code
svn path=/trunk/; revision=925
2000-01-09 23:16:41 +00:00
Eric Kohl
492a608e06 Fixed hal display bug
svn path=/trunk/; revision=924
2000-01-09 21:39:07 +00:00
Emanuele Aliberti
fd411d8b8c New year in c/r string.
svn path=/trunk/; revision=923
2000-01-08 16:17:50 +00:00
Eric Kohl
6f3d53f751 Added reading screen sizes from crt controller
svn path=/trunk/; revision=922
2000-01-07 18:57:33 +00:00
Emanuele Aliberti
462fe323eb A few more return structures for NtQuerySystemInformation
svn path=/trunk/; revision=921
2000-01-06 13:17:48 +00:00
David Welch
4d8c6a710b Removed debug messages from queuing code (sorry)
Added __int64 datatype to files that use it
Hid bug in ide driver (or somewhere) for now

svn path=/trunk/; revision=920
2000-01-06 00:26:16 +00:00
David Welch
623093eaaa Implemented more security functions
Moved general security types into new header file
Implemented ThreadImpersonationToken info class
Bug fixes to queuing code

svn path=/trunk/; revision=919
2000-01-05 21:57:00 +00:00
Eric Kohl
453f513ed3 Fixed ctype table and functions.
svn path=/trunk/; revision=918
2000-01-05 19:42:56 +00:00
Eric Kohl
57919a833e Fixed ctype table.
svn path=/trunk/; revision=917
2000-01-05 17:49:00 +00:00
David Welch
e6b5c8bfc7 Disabled pragma statement that was causing problems
svn path=/trunk/; revision=916
2000-01-02 14:21:04 +00:00
Eric Kohl
974095c413 Added mbtowc(), mbstowcs(), wctomb() and wcstombs()
svn path=/trunk/; revision=914
1999-12-30 14:39:43 +00:00
David Welch
a8ca53d761 Added some additional csrss work
Some fixes to the queueing code
Some fixes to the lpc code
Fix to section code

svn path=/trunk/; revision=913
1999-12-30 01:51:42 +00:00
Eric Kohl
c54d897571 Added even more missing functions
svn path=/trunk/; revision=912
1999-12-30 01:33:47 +00:00
Eric Kohl
17afcb4dfd Added some missing debug, math and ctype functions
svn path=/trunk/; revision=911
1999-12-29 17:13:27 +00:00
Eric Kohl
2284e742b3 Fixed implementation of register io functions
Added luid functions

svn path=/trunk/; revision=910
1999-12-29 01:37:30 +00:00
Eric Kohl
c7580dacf3 Last update for millenium release
Fixed some minor bugs
Fixed window title

svn path=/trunk/; revision=909
1999-12-28 23:13:38 +00:00
Eric Kohl
9446011fc1 Minor update
svn path=/trunk/; revision=908
1999-12-28 16:25:21 +00:00
Emanuele Aliberti
586433918e Some more NDIS stubs.
svn path=/trunk/; revision=907
1999-12-27 22:27:39 +00:00
Eric Kohl
b9579544e7 Removed cmd target
svn path=/trunk/; revision=906
1999-12-27 15:07:00 +00:00
Eric Kohl
005106acbb Fixed some more STDCALL issues
svn path=/trunk/; revision=905
1999-12-27 15:06:13 +00:00
Emanuele Aliberti
38d1018911 Added (io/create.c) IoCreateFile stub.
svn path=/trunk/; revision=904
1999-12-26 20:21:03 +00:00
Emanuele Aliberti
ea5959a772 Some missing __stdcall declarations added in headers and in code.
svn path=/trunk/; revision=903
1999-12-26 17:22:19 +00:00
Emanuele Aliberti
6b50f46c2f Some old Fs/Po code added to the makefile
svn path=/trunk/; revision=902
1999-12-26 16:36:46 +00:00
David Welch
4d5643a96a Added some security functions
Changes to csrss console support
Fixed bug in gdt.c

svn path=/trunk/; revision=901
1999-12-26 15:50:53 +00:00
Eric Kohl
128cfc8af0 Fixed compiler warnings
svn path=/trunk/; revision=900
1999-12-24 17:20:54 +00:00
Eric Kohl
a7a23b4dc3 Added missing test
svn path=/trunk/; revision=899
1999-12-24 17:16:32 +00:00
David Welch
dbd051cad4 Corrected additional object manager issues pointed by Philip Susi
Began added console i/o code to csrss (not working yet)
Corrected long standing page fault bug (not zeroing allocated page)

svn path=/trunk/; revision=898
1999-12-22 14:48:30 +00:00
Phillip Susi
1667a4589a fixed typeo
svn path=/trunk/; revision=897
1999-12-20 21:30:13 +00:00
Eric Kohl
6a617736e9 Fixed a compiler warning
svn path=/trunk/; revision=896
1999-12-20 21:05:53 +00:00
Phillip Susi
d832a87f14 fixed missing dereference and cleaned up code in NtCreateEvent
svn path=/trunk/; revision=895
1999-12-20 20:49:27 +00:00
David Welch
13541861b1 Fixed problem with handles not being released
Changed page fault handling to take account of the error code
Changed handle table locking

svn path=/trunk/; revision=894
1999-12-20 02:14:40 +00:00
Phillip Susi
dfa5f04c63 merged better assert code back into main trunk
svn path=/trunk/; revision=893
1999-12-18 19:50:24 +00:00
David Welch
cc5dc64c30 Worked around compiler bug in NtDelayExecution
Added some page free checking
Reorganised thread code a bit

svn path=/trunk/; revision=892
1999-12-18 17:48:23 +00:00
Emanuele Aliberti
8abc09ec0d Versio info actually linked in *.sys modules
svn path=/trunk/; revision=891
1999-12-18 10:17:42 +00:00
Emanuele Aliberti
5b86e3a918 RtlNtStatusToDosError and RtlNtStatusToPsxErrno declared __stdcall
svn path=/trunk/; revision=890
1999-12-18 10:16:11 +00:00
Emanuele Aliberti
e5b9e13d59 Minor changes
svn path=/trunk/; revision=889
1999-12-18 10:15:11 +00:00
Phillip Susi
bfaef27782 Added tracking of running threads in a process, and termination of process when all threads terminate
svn path=/trunk/; revision=888
1999-12-18 07:33:53 +00:00
Phillip Susi
4e94397e24 Added list of threads in process
svn path=/trunk/; revision=887
1999-12-18 07:28:28 +00:00
Phillip Susi
683932b845 changed to use proper type for dispatcher header, instead of PVOID in WAIT_BLOCK
svn path=/trunk/; revision=886
1999-12-17 23:30:48 +00:00
Phillip Susi
4ce5c9d3b4 fixed WaitForMultipleObjects()'s handling of the WaitAll flag
svn path=/trunk/; revision=885
1999-12-17 23:24:27 +00:00
Phillip Susi
6b53b3acea Working and tested KeWaitForXXX
svn path=/trunk/; revision=884
1999-12-17 23:23:36 +00:00
Eric Kohl
81547d8842 Added missing .cvsignore file
svn path=/trunk/; revision=883
1999-12-16 23:09:34 +00:00
Eric Kohl
1b0b103796 Added a time conversion function and fixed a little bug
(fat stores only 2 second steps)

svn path=/trunk/; revision=882
1999-12-16 23:08:17 +00:00
Phillip Susi
98a6084104 found that list corruption bug. it was also resulting in a meory spray
svn path=/trunk/; revision=881
1999-12-16 22:59:03 +00:00
Phillip Susi
96aed594a2 fixed CreateEvent() with NULL name
svn path=/trunk/; revision=879
1999-12-16 17:48:43 +00:00
Phillip Susi
ca6a107ee2 fixed a few bugs in wait code
svn path=/trunk/; revision=878
1999-12-16 05:13:06 +00:00
Phillip Susi
414cd229d9 new event test app
svn path=/trunk/; revision=877
1999-12-16 05:12:12 +00:00
Eric Kohl
a09b668be6 Added missing .cvsignore file
svn path=/trunk/; revision=876
1999-12-16 00:15:19 +00:00
Phillip Susi
7f63532d94 fixed timeout on wait functions
svn path=/trunk/; revision=875
1999-12-15 06:48:10 +00:00
Eric Kohl
8bbcdc3d4a Fixed current directory handling
Added new prompt functions
Fixed dangling pointer bug in copy command

svn path=/trunk/; revision=874
1999-12-15 00:50:41 +00:00
Phillip Susi
43d5d0b2f0 used proper type pointer instead of PVOID
svn path=/trunk/; revision=873
1999-12-14 18:44:38 +00:00
Phillip Susi
a409988b36 missing initialization of Thread->Tcb.WaitBlockList
svn path=/trunk/; revision=872
1999-12-14 18:35:19 +00:00
Phillip Susi
33009b967e bug fix with file object's name being freed but the pointer not NULLed
svn path=/trunk/; revision=871
1999-12-14 18:32:38 +00:00
Phillip Susi
4c2f15bfb9 fixed runnable thread counters
svn path=/trunk/; revision=870
1999-12-14 00:54:29 +00:00
David Welch
c40b27bbc4 Forgot to remove obsolete file
svn path=/trunk/; revision=869
1999-12-13 23:07:49 +00:00
David Welch
ac7a3aa542 Reworked APC and waiting code, seems more stable now
KeWaitForMultipleObjects is broken, shouldn't be difficult to fix
Corrected bug in ntdll ldr which prevented VC applications being loaded
Added thread testing application
Tried to make thread termination reentrant
Improved stack frame dump

svn path=/trunk/; revision=868
1999-12-13 22:04:41 +00:00
Phillip Susi
90e6a2244e missing GetEnvironmentStrings export, was supposed to be aliased to GetEnvironmentStringsA for some reason, as NT's exports it, and ros's cmd.exe imports it.
svn path=/trunk/; revision=867
1999-12-12 07:59:41 +00:00
Phillip Susi
8c2f4d55e3 David forgot to take out a debugging line? Prevented process termination on user mode exception
svn path=/trunk/; revision=866
1999-12-12 06:09:29 +00:00
Phillip Susi
9a22766e36 new APC code ready for prime time
svn path=/trunk/; revision=865
1999-12-12 03:56:53 +00:00
Phillip Susi
53b1677997 new APC code ready for prime time
svn path=/trunk/; revision=864
1999-12-12 03:48:47 +00:00
David Welch
2cecd9846d Removed typo.
svn path=/trunk/; revision=863
1999-12-12 01:04:09 +00:00
David Welch
f822a2a9d9 Backed out Philip Susi's changes for further testing
Returned kernel to working state.
Made exception handling more tolerant

svn path=/trunk/; revision=862
1999-12-12 00:59:39 +00:00
Phillip Susi
a590b25e46 fixed thread dispatcher bug with spin lock
svn path=/trunk/; revision=861
1999-12-12 00:49:00 +00:00
Phillip Susi
5d2dc4de65 fixed bug caused by my APC code
svn path=/trunk/; revision=860
1999-12-12 00:44:39 +00:00
Eric Kohl
55fef42029 Added abs() and labs()
svn path=/trunk/; revision=859
1999-12-12 00:20:29 +00:00
Eric Kohl
0ce89e21d9 fixed a compiler warning
svn path=/trunk/; revision=858
1999-12-12 00:08:41 +00:00
David Welch
910f27a570 Put in updated version of bitops header
Corrected bug in loader with mapping sections with zero VirtualSize
Corrected bug in the vfat driver that accessed freed memory
General cleanup of the vfat driver

svn path=/trunk/; revision=857
1999-12-11 21:14:49 +00:00
Phillip Susi
14ac854378 fixed DPC and APC calling code
svn path=/trunk/; revision=856
1999-12-11 17:31:16 +00:00
Phillip Susi
e0e40991af thread priorities, and some APC work
svn path=/trunk/; revision=855
1999-12-11 17:26:43 +00:00
Phillip Susi
db262c9a74 reworked the APC code, they shold now be delivered properly when the IRQL falls below APC_LEVEL, and when there are more than one queued.
Added support for KeAddThreadTimeout() to time out
Fixed wait code to use the WaitStatus of the thread when it wakes up

svn path=/trunk/; revision=854
1999-12-11 17:25:27 +00:00
Phillip Susi
81310b4307 added DPC for timers to KTHREAD, and fixed ApcState
svn path=/trunk/; revision=853
1999-12-11 17:19:32 +00:00
Phillip Susi
77c8585f1c added initialization for APCs
svn path=/trunk/; revision=852
1999-12-11 06:40:08 +00:00
Phillip Susi
43f46ed4f8 at least it compiles now...
svn path=/trunk/; revision=851
1999-12-11 06:39:30 +00:00
Eric Kohl
66f738dbd1 cleanup
svn path=/trunk/; revision=850
1999-12-11 01:44:29 +00:00
Eric Kohl
45043db6ff Added waiting for port requests
svn path=/trunk/; revision=849
1999-12-11 01:42:44 +00:00
Phillip Susi
b14104f1e7 ooops... fix that..
svn path=/trunk/; revision=848
1999-12-10 22:25:18 +00:00
Phillip Susi
424d757107 added initial priorities to threads and processes
svn path=/trunk/; revision=847
1999-12-10 22:07:23 +00:00
Eric Kohl
a1c7df6990 Fixed command line code.
Fixed Rtl string functions.

svn path=/trunk/; revision=846
1999-12-10 17:49:21 +00:00
David Welch
c7b7c5b0b6 Modified LPC implementation to be closer to nt.
Did some initial work on support for paging
Switched some test application from using our special startup code
Correctly bug in DPC code (possible fix for "releasing unacquired spinlock" error")

svn path=/trunk/; revision=845
1999-12-10 17:04:37 +00:00
Phillip Susi
815a52debe fixed IoCompleteRequest() to give priority boost even when target thread != current thread
svn path=/trunk/; revision=844
1999-12-09 19:39:45 +00:00
Paolo Pantaleo
dbf662da37 4nt's CTRL-D and CRTL-K support
svn path=/trunk/; revision=843
1999-12-09 19:20:47 +00:00
Eric Kohl
5d99e9003a dll name comparison in LdrFindDll() must be case-insensitive
svn path=/trunk/; revision=842
1999-12-09 19:14:45 +00:00
Eric Kohl
ec235d7468 Fixed HalQueryRealTimeClock and HalSetRealTimeClock.
Thanks to Adam Polanski.

svn path=/trunk/; revision=841
1999-12-09 08:16:26 +00:00
Rex Jolliff
f09720f7d7 some more video code
svn path=/trunk/; revision=840
1999-12-09 02:45:06 +00:00
Paolo Pantaleo
258912bf48 fixed a stupid bug in history
minor chage to GetConsoleHandle

svn path=/trunk/; revision=839
1999-12-08 18:18:23 +00:00
Eric Kohl
9d84d82bd7 pointer to PEB becomes first parameter in call to NtProcessStartup
svn path=/trunk/; revision=838
1999-12-08 12:59:35 +00:00
Phillip Susi
904da6e474 disable interrupts first, then do work. Use HLT also instead of busy wait
svn path=/trunk/; revision=837
1999-12-08 06:34:25 +00:00
Paolo Pantaleo
915ff9328d history cleanup added
svn path=/trunk/; revision=836
1999-12-07 18:17:17 +00:00
Paolo Pantaleo
61c3984818 TAS searches in internal commands too
svn path=/trunk/; revision=835
1999-12-07 18:16:24 +00:00
Eric Kohl
4a02ce0c1e fixed typo
svn path=/trunk/; revision=834
1999-12-07 17:23:42 +00:00
Paolo Pantaleo
f30ade19b8 new history implementation, not complete yet...
svn path=/trunk/; revision=833
1999-12-06 19:26:49 +00:00
Phillip Susi
9530a7d656 fixed handling of enter with blank line, also by my good pal, jim4
svn path=/trunk/; revision=832
1999-12-06 06:53:24 +00:00
Phillip Susi
5716745a13 fixed for 25 line mode as it should be, and scrolling by my good pal, jim4
svn path=/trunk/; revision=831
1999-12-06 06:43:45 +00:00
Phillip Susi
680589c149 fixed default bochs log port
svn path=/trunk/; revision=830
1999-12-06 05:48:34 +00:00
Eric Kohl
2efd99afb2 removed outdated cmd
svn path=/trunk/; revision=829
1999-12-06 00:30:09 +00:00
Eric Kohl
b001203a86 - implemented process parameter block (PPB) code
- improved process environment block (PEB) code
- improved environment code

svn path=/trunk/; revision=828
1999-12-06 00:25:14 +00:00
Phillip Susi
09edfdc32f forgot to initialize Create member of OBJECT_TYPE for threads
svn path=/trunk/; revision=827
1999-12-05 23:23:50 +00:00
Phillip Susi
ae12418822 fixed sync problem: set dpc lock field before, rather than after droping the spin lock
svn path=/trunk/; revision=826
1999-12-05 19:26:11 +00:00
Phillip Susi
f9d4545552 fixed sync bug by elevating IRQL
svn path=/trunk/; revision=825
1999-12-05 08:30:10 +00:00
Emanuele Aliberti
bb25ff0f3a Minor changes.
svn path=/trunk/; revision=824
1999-12-04 21:11:00 +00:00
Emanuele Aliberti
4b70175e11 RtlNtStatusToPsxErrno stub added.
svn path=/trunk/; revision=823
1999-12-04 21:03:22 +00:00
Emanuele Aliberti
ba58b241e5 Added version resource to dd and fs.
svn path=/trunk/; revision=822
1999-12-04 20:58:45 +00:00
Eric Kohl
7c574c2d6e fixed compiler warnings
svn path=/trunk/; revision=821
1999-12-04 14:54:50 +00:00
Phillip Susi
47551b9846 ignore buildno.h
svn path=/trunk/; revision=819
1999-12-04 08:02:27 +00:00
Phillip Susi
d0c1e25256 fixed timers and a wait functions, and a few bugs
svn path=/trunk/; revision=818
1999-12-04 07:40:53 +00:00
Phillip Susi
d4c340c696 fixed ide.sys to run under bochs, disabled support for more than one controller to do it. Let me know of this breaks on real hardware.
svn path=/trunk/; revision=817
1999-12-04 07:38:16 +00:00
Brian Palmer
43014d0391 Fixed bug in LdrPEProcessModule() so that it correctly section sizes
svn path=/trunk/; revision=816
1999-12-04 04:59:38 +00:00
Paolo Pantaleo
e28f90e740 now c:\ do not crash cmd
svn path=/trunk/; revision=815
1999-12-03 18:50:00 +00:00
David Welch
ead0eeacdd Some bug fixes.
Corrected LPC implementation.

svn path=/trunk/; revision=814
1999-12-02 20:53:55 +00:00
Boudewijn Dekker
cf693462e6 .
svn path=/trunk/; revision=813
1999-12-01 22:31:45 +00:00
Boudewijn Dekker
67ad8387f3 fixed some prototypes by adding stdcall attribute
svn path=/trunk/; revision=812
1999-12-01 22:30:48 +00:00
Eric Kohl
eae47571c9 fixed little bug
svn path=/trunk/; revision=811
1999-12-01 17:34:55 +00:00
Eric Kohl
2ea8bb5aa4 minor improvements
svn path=/trunk/; revision=810
1999-12-01 15:22:49 +00:00
Eric Kohl
13436cd7f7 - added environment functions
- moved ntdll-only prototypes into ntdll header file

svn path=/trunk/; revision=809
1999-12-01 15:18:54 +00:00
Eric Kohl
3bee100dae Cleanup
svn path=/trunk/; revision=808
1999-12-01 15:10:42 +00:00
Eric Kohl
2eccd28b8f Fixed a typo
svn path=/trunk/; revision=807
1999-12-01 15:08:31 +00:00
Paolo Pantaleo
d2c016b5ab just fixed a stupid bug
svn path=/trunk/; revision=806
1999-11-29 18:25:05 +00:00
Emanuele Aliberti
b72dc46819 Almost complete skeleton for tdi.sys,
yet headers are still missing.

svn path=/trunk/; revision=805
1999-11-28 07:59:29 +00:00
Eric Kohl
e2e5efb9d7 fixed a typo
svn path=/trunk/; revision=804
1999-11-28 01:55:41 +00:00
Paolo Pantaleo
6d3a97eb5e type accepts more than one file specification
F3 working in command line history (for now simply the same as up arrow)

svn path=/trunk/; revision=803
1999-11-27 19:14:59 +00:00
Eric Kohl
0d630c9ee3 added atoi() and atol()
svn path=/trunk/; revision=802
1999-11-27 11:32:43 +00:00
Eric Kohl
8b829113cb - changed InitializeObjectAttributes() from a function to a macro
- fixed STDCALL more issues
- changed some RtlLargeIntegerXxx functions to macros

svn path=/trunk/; revision=801
1999-11-27 03:32:55 +00:00
Brian Palmer
c18e7f06ce *** empty log message ***
svn path=/trunk/; revision=800
1999-11-26 21:45:23 +00:00
Jason Filby
dfa8364302 *** empty log message ***
svn path=/trunk/; revision=799
1999-11-26 20:53:32 +00:00
Eric Kohl
ed3ca3d52c More runtime functions
svn path=/trunk/; revision=798
1999-11-25 23:45:30 +00:00
Eric Kohl
e77c8000db Fixed typo
svn path=/trunk/; revision=797
1999-11-25 23:37:02 +00:00
Eric Kohl
05a567fce3 More runtime functions
svn path=/trunk/; revision=796
1999-11-25 23:35:24 +00:00
David Welch
9b614b887d Corrected ntdll mapping bug
Implemented prototype lpc mechanism

svn path=/trunk/; revision=795
1999-11-25 10:47:58 +00:00
Emanuele Aliberti
1a0765f6c5 Some NdisXYZ stubs for NDIS.SYS.
svn path=/trunk/; revision=794
1999-11-24 23:11:17 +00:00
Emanuele Aliberti
ec4a27aeb7 Initial makefile for NDIS.SYS
svn path=/trunk/; revision=793
1999-11-24 23:06:24 +00:00
David Welch
b986ce1cac Began converting minix fsd to work with new caching mechanism
Implemented user-mode APCs (still some bugs)
Began implementing shared memory, still some locking issues

svn path=/trunk/; revision=792
1999-11-24 11:51:55 +00:00
Emanuele Aliberti
e510811de7 Some fixes in the TDI initial files.
svn path=/trunk/; revision=791
1999-11-21 23:48:14 +00:00
Rex Jolliff
a7e6e9c1f8 more win32k code
svn path=/trunk/; revision=790
1999-11-21 18:39:11 +00:00
Eric Kohl
64915d3ebe Added missing STDCALL.
svn path=/trunk/; revision=789
1999-11-20 21:59:39 +00:00
Eric Kohl
c8689122b1 Fixed typo.
svn path=/trunk/; revision=788
1999-11-20 21:53:53 +00:00
Eric Kohl
e0c1e02c47 Fixed compiler warning
svn path=/trunk/; revision=787
1999-11-20 21:51:19 +00:00
Eric Kohl
b09592bf32 Major update to Rtl string functions.
svn path=/trunk/; revision=786
1999-11-20 21:49:23 +00:00
Emanuele Aliberti
174adb3955 Some more stubs files for the TDI kernel module.
svn path=/trunk/; revision=785
1999-11-20 20:41:29 +00:00
Emanuele Aliberti
8a20ddc7d4 Initial files for the TCP/IP stack kernel module.
svn path=/trunk/; revision=784
1999-11-20 20:36:46 +00:00
Emanuele Aliberti
82a0c31208 Initial networking code layout.
svn path=/trunk/; revision=783
1999-11-20 10:21:18 +00:00
Rex Jolliff
d25098ba0c added ignore file
svn path=/trunk/; revision=782
1999-11-18 19:25:35 +00:00
Rex Jolliff
aba30a453f added some DDI functions to table
svn path=/trunk/; revision=781
1999-11-18 18:58:16 +00:00
Boudewijn Dekker
fde8b62215 added misc/res.c
svn path=/trunk/; revision=780
1999-11-17 21:33:44 +00:00
Boudewijn Dekker
e04faee634 fixed some bugs in LdrLoadDll
svn path=/trunk/; revision=779
1999-11-17 21:32:57 +00:00
Boudewijn Dekker
0d7b93783b no message
svn path=/trunk/; revision=778
1999-11-17 21:30:00 +00:00
Boudewijn Dekker
b361e13fab implemented LoadResource/FlushViewOfFile
svn path=/trunk/; revision=777
1999-11-17 21:28:08 +00:00
Boudewijn Dekker
44744d8d36 implemented LoadResource
svn path=/trunk/; revision=776
1999-11-17 21:21:08 +00:00
Boudewijn Dekker
614f99e406 implemented FlushViewOfFile in kernel32
svn path=/trunk/; revision=775
1999-11-17 21:20:15 +00:00
Rex Jolliff
6e605e712e fixed reference to abs
svn path=/trunk/; revision=774
1999-11-17 21:17:10 +00:00
Rex Jolliff
96d5e2c715 Added top level ignore list
svn path=/trunk/; revision=773
1999-11-17 20:54:05 +00:00
Rex Jolliff
6767fd7f43 Fixed BMI typedef
svn path=/trunk/; revision=772
1999-11-17 20:50:37 +00:00
Eric Kohl
85a3f3844c Started NLS support and improved Rtl string functions.
svn path=/trunk/; revision=771
1999-11-15 16:02:50 +00:00
Eric Kohl
c114003cb5 Added some RtlLargeInteger functions.
svn path=/trunk/; revision=770
1999-11-15 16:01:32 +00:00
Eric Kohl
c52cbf8517 Fixed warning.
svn path=/trunk/; revision=769
1999-11-15 15:53:31 +00:00
Boudewijn Dekker
abd233d61a Implemented LdrFindResource_U and LdrAccessResource
svn path=/trunk/; revision=768
1999-11-14 13:04:46 +00:00
David Welch
b0ff680e0e 1) Corrected bugs in ERESOURCE code
and added test
2) Moved some files which are only
architecture-dependant out of the hal
3) Corrected timer implementation (it
should now be possible to use them as dispatcher
objects)
4) Corrected stupid bug in dpc code
5) Made thread list locking more sensible
6) Altered system call handler to build a
proper context in preparation for implementing APCs
7) Rationalised the waiting code

svn path=/trunk/; revision=767
1999-11-12 12:01:17 +00:00
Rex Jolliff
1a8f8005ae fixed clean rule
svn path=/trunk/; revision=766
1999-11-12 00:16:51 +00:00
Rex Jolliff
5bc02dd95a Changed to support linux build
svn path=/trunk/; revision=765
1999-11-11 21:22:08 +00:00
Eric Kohl
44866ccf87 Fixed include bug with rosapps module.
svn path=/trunk/; revision=764
1999-11-09 18:17:10 +00:00
Eric Kohl
d431c0fa6d Fixed bug with gcc 2.95.2
svn path=/trunk/; revision=763
1999-11-09 18:15:16 +00:00
Eric Kohl
58b907b668 Added some RtlLargeInteger functions.
svn path=/trunk/; revision=762
1999-11-09 18:09:57 +00:00
Eric Kohl
761e03c5a1 Fixed memory functions.
svn path=/trunk/; revision=761
1999-11-09 18:07:50 +00:00
Eric Kohl
ea4204ce87 Changed to new HAL functions.
svn path=/trunk/; revision=760
1999-11-09 18:07:03 +00:00
Eric Kohl
eae6fb6efc Implemented ExInterlocked functions.
svn path=/trunk/; revision=759
1999-11-09 18:00:14 +00:00
Eric Kohl
157d5b3fa2 Added APC support to NtDeviceIoControlFile().
svn path=/trunk/; revision=758
1999-11-07 14:08:11 +00:00
Emanuele Aliberti
63665d54ed advapi32 ACE and ACL stubs.
svn path=/trunk/; revision=757
1999-11-07 08:04:55 +00:00
Emanuele Aliberti
eb2d1c2110 advapi32 compiles OK.
Build number auto-generated (see apps/buildno, include/reactos/version.h,
include/reactos/buildno.h).
include/internal/version.h moved in include/reactos.
Added default search paths for includes in .rc rule (rules.mak).

svn path=/trunk/; revision=756
1999-11-07 08:03:28 +00:00
Eric Kohl
dbbb7e41f0 Keep DEL quiet when called from a batch file.
svn path=/trunk/; revision=754
1999-11-06 00:53:33 +00:00
Eric Kohl
6758f479ef New Y command and some fixes.
svn path=/trunk/; revision=753
1999-11-05 20:41:17 +00:00
Eric Kohl
18a01fd10d Implemented 4nt compatible color command.
svn path=/trunk/; revision=752
1999-11-04 11:29:36 +00:00
Emanuele Aliberti
cfb22d72df Typo in the NTOSKRNL import library fixed
svn path=/trunk/; revision=751
1999-11-04 06:41:47 +00:00
David Welch
83c2d22a5e Improved scheduling code
Fixed win32k.sys entrypoint (otherwise it crashes on startup)
Included unix install script
Broke waiting for a thread to terminate (but will fix later)
Added spinlock debugging code
Improved InterlockXXXX functions
Added hooks for monitoring system calls and thread startup

svn path=/trunk/; revision=750
1999-11-02 08:55:45 +00:00
Emanuele Aliberti
96c9969a90 Various changes related to calling convention fixes
svn path=/trunk/; revision=749
1999-10-31 22:44:39 +00:00
Emanuele Aliberti
f0f8791763 W32kSetTextColor, W32GetDCState16 needed __stdcall; changed the subsystem field from windows to native
svn path=/trunk/; revision=748
1999-10-31 22:43:40 +00:00
Emanuele Aliberti
31c5b7839f RtlFillMemory, RtlMoveMemory, RtlZeroMemory needed __stdcall
svn path=/trunk/; revision=747
1999-10-31 22:41:49 +00:00
Emanuele Aliberti
dabbe50e39 LoadLibraryA, GetProcAddress, FreeLibrary, GetModuleHandleA, WriteFileEx needed __stdcall
svn path=/trunk/; revision=746
1999-10-31 22:41:15 +00:00
Emanuele Aliberti
68fbd54f2c KeDelayExecutionThread exported by ntoskrnl with correct calling convention (__stdcall)
svn path=/trunk/; revision=745
1999-10-30 21:24:37 +00:00
Rex Jolliff
766e6a262e added more KMGDI functions
svn path=/trunk/; revision=744
1999-10-29 01:58:20 +00:00
Rex Jolliff
c1795e9778 fixed problem with redefined status values
svn path=/trunk/; revision=743
1999-10-28 23:37:58 +00:00
Rex Jolliff
f886c2b9d6 added several new functions
svn path=/trunk/; revision=742
1999-10-28 23:37:14 +00:00
Rex Jolliff
7d45bbd5da needed for compile
svn path=/trunk/; revision=741
1999-10-28 23:35:34 +00:00
Rex Jolliff
8d87ab9d07 added fix for compile under linux
svn path=/trunk/; revision=740
1999-10-28 23:34:47 +00:00
Eric Kohl
95fcdd0943 Fixed batch mode bugs.
svn path=/trunk/; revision=739
1999-10-28 23:09:59 +00:00
Rex Jolliff
11d7e1e18c Fixed problems with vidport and vga loading
svn path=/trunk/; revision=738
1999-10-28 06:58:05 +00:00
Eric Kohl
863afe8930 Disabled prompting when in batch mode.
svn path=/trunk/; revision=737
1999-10-27 22:46:53 +00:00
Rex Jolliff
788e4dc053 Fix import problems in win32k.sys
svn path=/trunk/; revision=736
1999-10-27 05:49:58 +00:00
Emanuele Aliberti
125a62f79a An attempt to fix the ntdll not found bug.
svn path=/trunk/; revision=735
1999-10-26 19:47:06 +00:00
Rex Jolliff
99d62b4808 added check for bootloader config hive
svn path=/trunk/; revision=734
1999-10-26 04:52:39 +00:00
Rex Jolliff
3c1e76b027 Some small fixes to reported build problems
svn path=/trunk/; revision=733
1999-10-25 06:58:09 +00:00
Eric Kohl
2bd986927c Added some time related functions.
svn path=/trunk/; revision=732
1999-10-24 17:52:17 +00:00
Rex Jolliff
ad5e850736 Changes to get video drivers and win32k to load
svn path=/trunk/; revision=731
1999-10-24 17:07:57 +00:00
Rex Jolliff
6cc79a481e added some Eng funcs into build list
svn path=/trunk/; revision=730
1999-10-23 22:40:49 +00:00
Rex Jolliff
c0b2b118a0 Cleanup to make buildable
svn path=/trunk/; revision=729
1999-10-23 22:39:27 +00:00
Rex Jolliff
a53e883bb0 Added definitions for some eng funcs
svn path=/trunk/; revision=728
1999-10-23 22:38:26 +00:00
Rex Jolliff
bb0715f8e7 Added IOCTL codes for video drivers
svn path=/trunk/; revision=727
1999-10-23 22:37:11 +00:00
Rex Jolliff
bc08c68af9 Added vidport.sys to auto loaded drivers
svn path=/trunk/; revision=726
1999-10-23 18:58:40 +00:00
Rex Jolliff
28df2503d3 fixed handling of boot drivers
svn path=/trunk/; revision=725
1999-10-23 18:56:04 +00:00
Rex Jolliff
a5dd3430d6 fixed dist and floppy rule
svn path=/trunk/; revision=724
1999-10-23 18:33:38 +00:00
Eric Kohl
36f33622cc Fixed bugs and added DIRS command.
svn path=/trunk/; revision=723
1999-10-23 18:17:37 +00:00
Eric Kohl
583a7209da Added BOOT.BAT
svn path=/trunk/; revision=722
1999-10-23 18:15:39 +00:00
Eric Kohl
727671f12a Added Ctrl-C/Ctrl-Break handler.
svn path=/trunk/; revision=721
1999-10-22 20:35:02 +00:00
Eric Kohl
13e2e79e44 Added missing exports.
svn path=/trunk/; revision=720
1999-10-21 16:13:39 +00:00
Eric Kohl
0300e2a9d1 Fixed floppy and dist targets.
svn path=/trunk/; revision=719
1999-10-21 16:12:16 +00:00
Eric Kohl
ec16aa4c44 Improved debug output and
added hal READ_XXX and WRITE_XXX functions.

svn path=/trunk/; revision=718
1999-10-21 13:11:12 +00:00
Eric Kohl
e6f624f0e7 Improved debug output and
added hal READ_XXX and WRITE_XXX functions.

svn path=/trunk/; revision=717
1999-10-21 13:00:09 +00:00
Eric Kohl
7228dc135c Improved debug output and
added hal READ_XXX and WRITE_XXX functions.

svn path=/trunk/; revision=716
1999-10-21 11:13:38 +00:00
Eric Kohl
d2e85caa9e Improved debug output and
added hal READ_XXX and WRITE_XXX functions.

svn path=/trunk/; revision=715
1999-10-21 10:59:32 +00:00
Rex Jolliff
bff71dc524 Changed name to conform with kernel naming convention
svn path=/trunk/; revision=714
1999-10-20 23:09:26 +00:00
Rex Jolliff
a0570e7cbe added ignore files
svn path=/trunk/; revision=713
1999-10-20 23:08:58 +00:00
Boudewijn Dekker
ff9ce85a65 implemented some ldr functions
svn path=/trunk/; revision=712
1999-10-18 21:55:30 +00:00
Boudewijn Dekker
f3d9743503 implemented LdrUnloadDll
svn path=/trunk/; revision=711
1999-10-18 21:37:16 +00:00
Boudewijn Dekker
a66a6e5dba implemented LoadLibray and FreeLibrary
svn path=/trunk/; revision=710
1999-10-17 18:18:44 +00:00
Boudewijn Dekker
8690858184 implemented a reference count on LdrLoadDll
svn path=/trunk/; revision=709
1999-10-17 18:16:45 +00:00
Eric Kohl
9e4fec3838 Updated info about debugging.
svn path=/trunk/; revision=708
1999-10-16 21:10:23 +00:00
Eric Kohl
8001413b88 More exported functions.
svn path=/trunk/; revision=707
1999-10-16 21:09:12 +00:00
Eric Kohl
bae73138e8 Moved serial and bochs debug output.
svn path=/trunk/; revision=706
1999-10-16 21:08:39 +00:00
Eric Kohl
dad291cf6f Some fixes.
svn path=/trunk/; revision=705
1999-10-16 12:41:42 +00:00
Eric Kohl
22b26024cd More exported functions.
svn path=/trunk/; revision=704
1999-10-16 12:40:57 +00:00
Eric Kohl
3e6e6c12ee Added missing ntdll include.
svn path=/trunk/; revision=703
1999-10-16 12:39:44 +00:00
Eric Kohl
93a0fa88d2 Fixed NtCreatePort() prototype.
svn path=/trunk/; revision=702
1999-10-16 12:38:53 +00:00
Eric Kohl
9b2fc03fc7 Fixed $(NASM_CMD) bug.
svn path=/trunk/; revision=701
1999-10-16 12:36:47 +00:00
Eric Kohl
7975fc7fe7 Minor improvements.
svn path=/trunk/; revision=700
1999-10-16 12:35:10 +00:00
Eric Kohl
a23adc0492 Fixed hal display and initialization code.
svn path=/trunk/; revision=699
1999-10-16 00:17:40 +00:00
Eric Kohl
36e229b42f Fixed a typo.
svn path=/trunk/; revision=698
1999-10-15 15:26:34 +00:00
Eric Kohl
29812be566 Fixed hal display and initialization code.
svn path=/trunk/; revision=697
1999-10-15 15:21:39 +00:00
Eric Kohl
4551dfba1e Replaced calls to _printk() by calls to DbgPrint().
svn path=/trunk/; revision=696
1999-10-14 16:54:17 +00:00
Eric Kohl
babfe77ea9 PEB will be created in NtCreateProcess.
svn path=/trunk/; revision=695
1999-10-13 22:35:55 +00:00
Emanuele Aliberti
81a9f1c4b0 Little changes in the psxdll library.
svn path=/trunk/; revision=694
1999-10-12 21:19:40 +00:00
Boudewijn Dekker
74031c2379 implemented LoadLibrary and some Rtl stubs
svn path=/trunk/; revision=693
1999-10-12 19:45:01 +00:00
Eric Kohl
348ccdd39f Added REBOOT command.
svn path=/trunk/; revision=692
1999-10-11 20:51:07 +00:00
Eric Kohl
1d4d689bf2 Added new display and reboot code.
svn path=/trunk/; revision=691
1999-10-11 20:50:33 +00:00
Eric Kohl
8578ba8ac6 Minor fix to teb allocation.
svn path=/trunk/; revision=690
1999-10-11 20:43:10 +00:00
Eric Kohl
a77eef4a53 Fixed header inclusion order.
svn path=/trunk/; revision=689
1999-10-10 19:53:46 +00:00
Eric Kohl
648301897c Fixed header inclusion order.
svn path=/trunk/; revision=687
1999-10-07 23:46:27 +00:00
Emanuele Aliberti
2076e94020 I removed a pair of stubs for the OpenFileMapping functions
svn path=/trunk/; revision=686
1999-10-03 23:19:15 +00:00
Eric Kohl
c2829c9869 Minor fixes.
svn path=/trunk/; revision=685
1999-10-03 22:20:33 +00:00
Eric Kohl
49f51f37f3 Added activate command.
svn path=/trunk/; revision=684
1999-10-03 22:16:14 +00:00
Eric Kohl
1e637da493 Added echos, echoerr and echoserr commands.
svn path=/trunk/; revision=683
1999-10-03 22:15:33 +00:00
Eric Kohl
51cbed48ab No longer needed.
svn path=/trunk/; revision=682
1999-10-03 22:14:40 +00:00
Eric Kohl
e8abc51177 Minor fixes.
svn path=/trunk/; revision=681
1999-10-03 22:12:57 +00:00
Eric Kohl
29f5cf1341 Added floppy and dist targets.
svn path=/trunk/; revision=680
1999-10-03 22:12:24 +00:00
Eric Kohl
c33edc6cb7 Made notevil screen size aware.
svn path=/trunk/; revision=679
1999-10-03 22:10:15 +00:00
Boudewijn Dekker
1d786dd865 Miscellaneous implementation of kernel32 stubs.
Changed the implementation of ReadFileEx.

svn path=/trunk/; revision=678
1999-10-02 20:20:44 +00:00
Eric Kohl
3174c5069a Fixed typo.
svn path=/trunk/; revision=676
1999-09-29 23:19:32 +00:00
Eric Kohl
d63c23131c Fixed multiple STATUS_xxxx inclusions.
svn path=/trunk/; revision=675
1999-09-29 23:15:14 +00:00
Eric Kohl
56e30e8907 Minor updates and fixes.
svn path=/trunk/; revision=674
1999-09-27 22:15:44 +00:00
Eric Kohl
1241612f69 Added MORE command.
svn path=/trunk/; revision=673
1999-09-27 22:13:59 +00:00
Boudewijn Dekker
ddc9e680c9 Added support for critical sections.
svn path=/trunk/; revision=672
1999-09-27 20:58:46 +00:00
Boudewijn Dekker
15e29ff254 Small addition to token.c
svn path=/trunk/; revision=671
1999-09-25 06:25:51 +00:00
Eric Kohl
52498a577a Minor fixes.
svn path=/trunk/; revision=670
1999-09-24 22:05:25 +00:00
Eric Kohl
ee3dc0f0c1 Added window command.
svn path=/trunk/; revision=669
1999-09-24 22:03:11 +00:00
Emanuele Aliberti
58eedf7620 RtlReAllocHeap should be RtlReAllocateHeap
svn path=/trunk/; revision=668
1999-09-12 22:09:34 +00:00
Emanuele Aliberti
e6359887bb RtlReAllocHeap should be RtlReAllocateHeap.
svn path=/trunk/; revision=667
1999-09-12 21:59:40 +00:00
Emanuele Aliberti
cda1c38bae Some missing __stdcall added.
Some missing unicode functions stubs added.
RtlReAllocHeap should be RtlReAllocateHeap.

svn path=/trunk/; revision=666
1999-09-12 21:58:32 +00:00
Emanuele Aliberti
d82310b692 Skeleton for psxdll.dll
svn path=/trunk/; revision=665
1999-09-12 21:54:16 +00:00
Eric Kohl
45dd256ee3 Fixed typo.
svn path=/trunk/; revision=664
1999-09-12 20:58:29 +00:00
Eric Kohl
e0058203bb Fixed WaitForSingleObject() and WaitForMultipleObjects().
svn path=/trunk/; revision=663
1999-09-12 20:54:42 +00:00
Eric Kohl
3255097117 Stack is freed on failure.
svn path=/trunk/; revision=662
1999-09-12 20:49:06 +00:00
Eric Kohl
40f81ce970 Fixed some minor issues (NULL --> FALSE).
svn path=/trunk/; revision=661
1999-09-12 20:44:22 +00:00
Eric Kohl
bbcc7f9179 Fixed little bug ('cd d:' did't work, but 'cd D:').
svn path=/trunk/; revision=660
1999-09-12 20:41:56 +00:00
Eric Kohl
0c91339480 Added some more commands. Thanks to Dr. Faustus.
Some more cleanup.

svn path=/trunk/; revision=659
1999-09-12 18:23:31 +00:00
Eric Kohl
5249698af3 External TEE command.
svn path=/trunk/; revision=658
1999-09-12 18:20:47 +00:00
Eric Kohl
037d59aef7 Added master makefile with clean/dist/floppy targets.
svn path=/trunk/; revision=657
1999-09-12 18:18:09 +00:00
Eric Kohl
70f14aa73f Fixed typedef.
svn path=/trunk/; revision=656
1999-09-11 00:07:20 +00:00
Rex Jolliff
b779c01fb6 Changes to make win32k.sys compile
svn path=/trunk/; revision=655
1999-09-10 21:17:07 +00:00
Rex Jolliff
fe56845ebe Fixed function prototypes
svn path=/trunk/; revision=654
1999-09-10 21:16:36 +00:00
Rex Jolliff
70140f5ea7 Changed symbolic name for IDE devices
svn path=/trunk/; revision=653
1999-09-10 19:16:58 +00:00
Eric Kohl
fe27d316df Added creation of full user stack (including guard page).
svn path=/trunk/; revision=652
1999-09-10 15:50:30 +00:00
Eric Kohl
1fc6701c79 Implemented Nt/KeWaitForMultipleObjects (still buggy).
svn path=/trunk/; revision=651
1999-09-08 23:51:36 +00:00
Rex Jolliff
09d88da5e9 some minor coding on win32k
svn path=/trunk/; revision=650
1999-09-08 04:50:50 +00:00
Emanuele Aliberti
a06d619eca some symbols were not declared __stdcall
svn path=/trunk/; revision=649
1999-09-08 04:40:56 +00:00
Eric Kohl
242138f832 Fixed little bug.
svn path=/trunk/; revision=648
1999-09-07 20:41:47 +00:00
Emanuele Aliberti
af1ff6be3b More for the POSIX+ subsystem
svn path=/trunk/; revision=647
1999-09-07 17:12:39 +00:00
Eric Kohl
8c0b595a5e Thread improvements.
svn path=/trunk/; revision=646
1999-09-06 21:32:57 +00:00
Emanuele Aliberti
4280f4f60d stubs for HAL kernel debugger functions
svn path=/trunk/; revision=645
1999-09-05 20:54:57 +00:00
Eric Kohl
d5014c3bb3 Removed unused stuff.
svn path=/trunk/; revision=644
1999-09-05 12:40:20 +00:00
Eric Kohl
d81a116aba Run smss.exe instead of shell.exe.
svn path=/trunk/; revision=643
1999-09-05 12:39:45 +00:00
Eric Kohl
155d1ff5ae Removed smss from its old place
svn path=/trunk/; revision=642
1999-09-05 12:35:34 +00:00
Eric Kohl
fbccd722a1 Fixed little bug.
svn path=/trunk/; revision=641
1999-09-05 12:31:41 +00:00
Eric Kohl
648c68ff1a Moved smss to a better place.
svn path=/trunk/; revision=640
1999-09-05 12:29:50 +00:00
Eric Kohl
c92eafe2f1 Updated rules for subsys directory.
svn path=/trunk/; revision=639
1999-09-05 12:27:22 +00:00
Eric Kohl
b0e64d6cf7 Updated.
svn path=/trunk/; revision=638
1999-09-05 10:22:05 +00:00
Emanuele Aliberti
fa74a12186 added resource script with version information
svn path=/trunk/; revision=637
1999-09-04 20:50:34 +00:00
Eric Kohl
40bd704148 Implemented RtlCreateUserProcess() and RtlCreateUserThread().
svn path=/trunk/; revision=636
1999-09-04 18:38:29 +00:00
David Welch
4027ccab60 Correct keyboard bug with multiple readers
svn path=/trunk/; revision=634
1999-08-30 15:20:14 +00:00
Eric Kohl
ff511b446a Added MSGBOX and TIMER commands.
svn path=/trunk/; revision=633
1999-08-29 22:31:43 +00:00
David Welch
e31d342bc7 *** empty log message ***
svn path=/trunk/; revision=632
1999-08-29 13:45:08 +00:00
Emanuele Aliberti
7cf48757dc A top level header file for kernel and system stuff. At present simply includes ddk/ntddk.h.
svn path=/trunk/; revision=631
1999-08-29 07:02:52 +00:00
Emanuele Aliberti
07a2fbf7f7 Global ReactOS configuration file. Here we will put symbols for processor-, architecture-, and debugging-dependent conditional compilation.
svn path=/trunk/; revision=630
1999-08-29 07:01:32 +00:00
Emanuele Aliberti
fa3a5c2c71 some __stdcall fixes in ntoskrnl and ntdll
svn path=/trunk/; revision=629
1999-08-29 06:59:11 +00:00
Eric Kohl
5aaaad5c93 Added missing definition.
svn path=/trunk/; revision=628
1999-08-28 23:30:50 +00:00
Eric Kohl
7bcdd2ea10 Added CHOICE command and fixed a cursor bug.
svn path=/trunk/; revision=627
1999-08-22 21:46:50 +00:00
Eric Kohl
a35e54e5f8 Added CHOICE command and fixed a cursor bug.
svn path=/trunk/; revision=626
1999-08-21 22:06:03 +00:00
Eric Kohl
0b84d00506 Added CHOICE command and fixed a cursor bug.
svn path=/trunk/; revision=625
1999-08-21 21:54:30 +00:00
Boudewijn Dekker
c4385e9139 Small fixes
svn path=/trunk/; revision=624
1999-08-21 17:51:35 +00:00
Emanuele Aliberti
2c4de44226 Power management (Po) stubs.
svn path=/trunk/; revision=623
1999-08-20 16:31:17 +00:00
Emanuele Aliberti
1f636015ba NLS stubs and exported data.
svn path=/trunk/; revision=622
1999-08-20 16:30:16 +00:00
Emanuele Aliberti
e9703bfa98 FS stubs.
svn path=/trunk/; revision=621
1999-08-20 16:29:22 +00:00
Emanuele Aliberti
676e6609ce Kernel debugger stubs.
svn path=/trunk/; revision=620
1999-08-20 16:28:10 +00:00
Boudewijn Dekker
dbb9546d9d Small additions, not yet finished
svn path=/trunk/; revision=619
1999-08-20 10:12:53 +00:00
Boudewijn Dekker
007128eb66 Small additions, not yet finished
svn path=/trunk/; revision=618
1999-08-20 09:37:25 +00:00
Emanuele Aliberti
90129544e0 Fixed a bug in the parser.
svn path=/trunk/; revision=617
1999-08-20 05:53:04 +00:00
Eric Kohl
f72b0c8878 Fixed STDCALL bugs.
svn path=/trunk/; revision=616
1999-08-17 12:02:27 +00:00
Eric Kohl
36df88668d Fixed STDCALL bug.
svn path=/trunk/; revision=615
1999-08-15 00:36:59 +00:00
Rex Jolliff
9957d94c20 Various small changes for registry work
svn path=/trunk/; revision=614
1999-08-14 18:59:28 +00:00
Eric Kohl
2a466eda80 Partial Implementation of NtQuerySystemInformation and NtSetSystemInformation
svn path=/trunk/; revision=613
1999-08-11 23:29:26 +00:00
Emanuele Aliberti
6cb529270a Stubs for version.dll
svn path=/trunk/; revision=612
1999-08-11 19:56:48 +00:00
Emanuele Aliberti
cb7f83ac74 Some files for version.dll
svn path=/trunk/; revision=611
1999-08-10 20:21:32 +00:00
Rex Jolliff
9907c63794 Added STDCALL to Video functions
svn path=/trunk/; revision=610
1999-08-07 20:27:14 +00:00
Rex Jolliff
fc200ca733 Added export definition file and export library rule
svn path=/trunk/; revision=609
1999-08-06 17:27:45 +00:00
Jason Filby
bebdd316d5 *** empty log message ***
svn path=/trunk/; revision=608
1999-08-01 11:21:05 +00:00
Eric Kohl
e7cf9302fa Added more crt functions and fixed some.
svn path=/trunk/; revision=607
1999-07-29 21:25:04 +00:00
Emanuele Aliberti
69dc48c09f some work on fixing advapi32
svn path=/trunk/; revision=606
1999-07-26 20:46:40 +00:00
Eric Kohl
e3c471cf82 Added simple START command.
svn path=/trunk/; revision=605
1999-07-24 17:18:05 +00:00
Eric Kohl
0063a30376 Fixed a typo.
svn path=/trunk/; revision=604
1999-07-24 17:16:32 +00:00
Rex Jolliff
b9a38fb83d moved path functions into seperate file
svn path=/trunk/; revision=603
1999-07-23 20:21:06 +00:00
Rex Jolliff
1ff56406ca changes to support win32k
svn path=/trunk/; revision=602
1999-07-23 19:58:58 +00:00
Rex Jolliff
c69899317f finished win32k skeleton
svn path=/trunk/; revision=601
1999-07-23 19:57:18 +00:00
Rex Jolliff
b3995a1493 added a few pointer types
svn path=/trunk/; revision=600
1999-07-23 19:55:07 +00:00
Eric Kohl
3975f17012 Changes to compile advapi32.
svn path=/trunk/; revision=599
1999-07-22 21:36:37 +00:00
Rex Jolliff
3f261fab5d More changes to the win32k server
svn path=/trunk/; revision=598
1999-07-22 16:21:53 +00:00
Emanuele Aliberti
b6ae20fcd0 first bits for the POSIX+ client DLL
svn path=/trunk/; revision=597
1999-07-18 20:54:04 +00:00
Emanuele Aliberti
d2eea59593 original ntifs.h restored
svn path=/trunk/; revision=596
1999-07-18 07:53:27 +00:00
Emanuele Aliberti
6ac1592420 fixes
svn path=/trunk/; revision=595
1999-07-17 23:10:31 +00:00
Rex Jolliff
04f2911330 added dist rule
svn path=/trunk/; revision=593
1999-07-16 23:37:07 +00:00
Rex Jolliff
743df9ab84 fixed various build errors
svn path=/trunk/; revision=592
1999-07-13 01:08:47 +00:00
Rex Jolliff
e2a59404d8 added an ignore file
svn path=/trunk/; revision=591
1999-07-12 23:34:42 +00:00
Rex Jolliff
367fbb2a1f Added a service table registration function
svn path=/trunk/; revision=590
1999-07-12 23:32:30 +00:00
Rex Jolliff
932d4770ec more work on KMGDI subsystem
svn path=/trunk/; revision=589
1999-07-12 23:26:57 +00:00
Emanuele Aliberti
0584d3755f minor changes in the simple DEF-->EDF converter
svn path=/trunk/; revision=588
1999-07-12 21:02:06 +00:00
Emanuele Aliberti
221e27f1fa kernel32 missing stubs
svn path=/trunk/; revision=587
1999-07-12 21:01:06 +00:00
Boudewijn Dekker
581f2c7495 no message
svn path=/trunk/; revision=586
1999-07-11 14:19:14 +00:00
Rex Jolliff
6ef820374f put ifdef around defines
svn path=/trunk/; revision=585
1999-07-07 01:41:41 +00:00
Rex Jolliff
ce373b0c40 added pointer types for RECTL and POINTL
svn path=/trunk/; revision=584
1999-07-07 01:41:00 +00:00
Boudewijn Dekker
01034d9c59 no message
svn path=/trunk/; revision=583
1999-07-05 20:51:47 +00:00
Emanuele Aliberti
fad2f584e9 Bo's ntifs.h + ReactOS extensions (untested).
svn path=/trunk/; revision=582
1999-07-04 22:22:05 +00:00
Emanuele Aliberti
86b93a6ac8 A very simple application to create a named LPC port; application to connect to an existing LPC port updated.
svn path=/trunk/; revision=581
1999-07-04 22:04:31 +00:00
Emanuele Aliberti
6fcd126954 NtCreatePort and LPC_PORT_BASIC_INFORMATION partial definitions
svn path=/trunk/; revision=580
1999-07-04 22:00:31 +00:00
Boudewijn Dekker
2a01ea22a9 Initial commit. Ported some code from wine.
Not much working yet.

svn path=/trunk/; revision=579
1999-07-04 16:01:27 +00:00
Emanuele Aliberti
84d1d53870 Very simple tool to generate aliased *.def files from standard *.def files. May be used to have clean exports tables in DLLs and make ld link stdcall mangled symbols
svn path=/trunk/; revision=578
1999-07-04 11:14:15 +00:00
Rex Jolliff
5050cf437e Added brush scaffolding
svn path=/trunk/; revision=577
1999-07-02 02:33:59 +00:00
Rex Jolliff
9162781f47 more bitmap scaffolding
svn path=/trunk/; revision=576
1999-07-02 02:06:52 +00:00
Rex Jolliff
b63d64cc90 Bitmap scaffolding
svn path=/trunk/; revision=575
1999-07-02 00:54:01 +00:00
Rex Jolliff
858aaeac37 Moved service.h
svn path=/trunk/; revision=574
1999-06-30 22:28:34 +00:00
Eric Kohl
bd4786ea76 Fixed DeleteFileW().
svn path=/trunk/; revision=573
1999-06-27 23:08:31 +00:00
Eric Kohl
bcb831f3c9 Fixed RemoveDirectoryW().
svn path=/trunk/; revision=572
1999-06-27 23:08:07 +00:00
Eric Kohl
1bfb0f94d9 Added file and directory delete functionality (dummy).
svn path=/trunk/; revision=571
1999-06-27 23:06:50 +00:00
Eric Kohl
10f222cd92 Fixed typos.
svn path=/trunk/; revision=570
1999-06-27 13:02:20 +00:00
Eric Kohl
7f7c26ae4d Fixed irq level assertations (assert -> assert_irql).
svn path=/trunk/; revision=569
1999-06-27 13:01:23 +00:00
Emanuele Aliberti
56b4626f56 *** empty log message ***
svn path=/trunk/; revision=568
1999-06-27 07:15:16 +00:00
Emanuele Aliberti
b3f7f2d945 Clean up and more info about the LPC port handle.
svn path=/trunk/; revision=567
1999-06-27 07:11:25 +00:00
Eric Kohl
4d7dcc6886 Fixed application file name (absolute path) in command line.
svn path=/trunk/; revision=566
1999-06-26 18:24:38 +00:00
Eric Kohl
8ae06e50f1 Fixed typo in GetCommandLineA().
svn path=/trunk/; revision=565
1999-06-26 14:28:42 +00:00
Rex Jolliff
19a76ae9af consolidated makefiles and added floppy and dist rules.
svn path=/trunk/; revision=564
1999-06-25 04:36:03 +00:00
Emanuele Aliberti
15714a3ea7 Attempt to connect to a real LPC port
svn path=/trunk/; revision=563
1999-06-24 22:54:27 +00:00
Emanuele Aliberti
9ccf887c5a KeGetPreviousMode (useless)
svn path=/trunk/; revision=562
1999-06-24 22:40:06 +00:00
Boudewijn Dekker
62cdaf7f99 no message
svn path=/trunk/; revision=561
1999-06-24 21:59:41 +00:00
Emanuele Aliberti
fdb2041671 NtConnectPort partial interface
svn path=/trunk/; revision=560
1999-06-24 19:35:31 +00:00
Emanuele Aliberti
11cbd32ea6 Some more ideas for winlogon (it does not compile yet).
svn path=/trunk/; revision=559
1999-06-18 22:40:47 +00:00
Emanuele Aliberti
8d5b94094a NTOSKRNL.ZwXXX functions now call NTOSKRNL.NtXXX via int 0x2e.
svn path=/trunk/; revision=558
1999-06-18 22:11:21 +00:00
Emanuele Aliberti
3d0fe049f6 fixed my bug in ZwXXX stubs generation
svn path=/trunk/; revision=557
1999-06-17 18:09:27 +00:00
Emanuele Aliberti
1e589af8e1 genntdll enhanced to generate ntoskrnl Zw stubs (to be tested)
svn path=/trunk/; revision=556
1999-06-17 00:10:30 +00:00
Emanuele Aliberti
6409ce374c some ideas about LPC
svn path=/trunk/; revision=555
1999-06-15 23:00:39 +00:00
Rex Jolliff
11d31698d5 some additions to the GDI engine
svn path=/trunk/; revision=554
1999-06-15 02:27:24 +00:00
Rex Jolliff
e0c5a61982 untested implementation of the registry
svn path=/trunk/; revision=553
1999-06-14 07:37:55 +00:00
David Welch
d913de5c14 Fixed problem with dpc execution
svn path=/trunk/; revision=552
1999-06-10 20:59:19 +00:00
David Welch
5b3ccbfc02 Implemented ZwOpenProcess corrected
Implemented killing other threads (possible memory leaks)
Made a start on a proper implementation of APCs (based on NT Insider article)

svn path=/trunk/; revision=551
1999-06-09 15:50:16 +00:00
David Welch
f2a6a55325 Not needed anymore
svn path=/trunk/; revision=550
1999-06-09 15:48:56 +00:00
David Welch
4aa2c7952d Not been needed for ages
svn path=/trunk/; revision=549
1999-06-09 15:47:10 +00:00
David Welch
b54e7a6efa No longer need with rex's changes
svn path=/trunk/; revision=548
1999-06-09 15:46:06 +00:00
Emanuele Aliberti
8ae5eb02c7 Initial work for W32 server
svn path=/trunk/; revision=547
1999-06-08 22:50:59 +00:00
Emanuele Aliberti
34a9792f1e Updated to 0.0.14
svn path=/trunk/; revision=546
1999-06-08 22:47:39 +00:00
Emanuele Aliberti
44a536a421 Initial structure (won't compile)
svn path=/trunk/; revision=545
1999-06-08 22:45:53 +00:00
Emanuele Aliberti
c5e296fcf0 Updated to 0.0.14
RES_STR_FILE_VERSION eq RES_STR_PRODUCT_VERSION

svn path=/trunk/; revision=544
1999-06-08 22:37:30 +00:00
David Welch
c8cd1fe03c Added support for ZwOpenProcess
svn path=/trunk/; revision=543
1999-06-08 14:02:01 +00:00
Rex Jolliff
0a1f866c8f Added a few more functions for registry
svn path=/trunk/; revision=542
1999-06-08 07:11:29 +00:00
Rex Jolliff
a5e573f1b3 more hacking on the registry
svn path=/trunk/; revision=541
1999-06-08 04:34:48 +00:00
Rex Jolliff
06938a9103 more registry changes
svn path=/trunk/; revision=540
1999-06-07 15:14:23 +00:00
Emanuele Aliberti
b5118cc48f minor changes
svn path=/trunk/; revision=539
1999-06-06 20:35:26 +00:00
David Welch
31268dc661 Stub
svn path=/trunk/; revision=538
1999-06-06 16:40:10 +00:00
Emanuele Aliberti
9dc68f3b65 Context help functions stubs
svn path=/trunk/; revision=537
1999-06-06 15:34:09 +00:00
Emanuele Aliberti
1af4e48747 NtOpenProcess exported
svn path=/trunk/; revision=536
1999-06-06 15:31:58 +00:00
Emanuele Aliberti
154db698c9 start (to detach a new process) and kill commands added
svn path=/trunk/; revision=535
1999-06-06 15:29:46 +00:00
Boudewijn Dekker
f298282475 Added some user32 functions.
svn path=/trunk/; revision=534
1999-06-05 19:02:54 +00:00
Rex Jolliff
9083091f7b Added PE loader to LOADROS. Updated symbol search in Loader
svn path=/trunk/; revision=533
1999-06-04 23:59:35 +00:00
Rex Jolliff
c4ba9a330d some changes to registry code
svn path=/trunk/; revision=532
1999-06-03 15:07:49 +00:00
Boudewijn Dekker
46a0e6e16e Added stub for create token and delete object audit alarm.
svn path=/trunk/; revision=531
1999-05-31 18:53:33 +00:00
Boudewijn Dekker
f53177b2b2 Added prototype for create token.
svn path=/trunk/; revision=530
1999-05-31 18:50:11 +00:00
Emanuele Aliberti
380ae8a262 Session manager skeleton
svn path=/trunk/; revision=529
1999-05-30 20:40:18 +00:00
Rex Jolliff
28f788e6ed fixes for compile errors.
svn path=/trunk/; revision=528
1999-05-29 02:51:05 +00:00
David Welch
126768af64 Lots of changes to the kernel
svn path=/trunk/; revision=527
1999-05-29 00:15:17 +00:00
Rex Jolliff
0deeaa0d83 fixes for some compiler errors.
svn path=/trunk/; revision=526
1999-05-28 20:40:05 +00:00
Emanuele Aliberti
da7f2bf2b2 Little editing
svn path=/trunk/; revision=525
1999-05-28 19:49:46 +00:00
Rex Jolliff
6709ff7e24 added DDI version macro
svn path=/trunk/; revision=524
1999-05-28 18:46:23 +00:00
Rex Jolliff
d415ba8508 First hack at KMDLLs
svn path=/trunk/; revision=523
1999-05-28 18:24:27 +00:00
Rex Jolliff
9377d51b1a More code for win32k.sys
svn path=/trunk/; revision=522
1999-05-27 23:08:26 +00:00
Emanuele Aliberti
662c77c00c SetLastError() used in stubs
svn path=/trunk/; revision=521
1999-05-26 05:24:21 +00:00
Emanuele Aliberti
5169949e78 IMAGE_SUBSYSTEM_xxx
svn path=/trunk/; revision=520
1999-05-26 05:23:26 +00:00
Rex Jolliff
480d6d6388 More work on generic VGA driver
svn path=/trunk/; revision=519
1999-05-26 02:37:21 +00:00
Rex Jolliff
389b5fe480 More work on generic VGA driver skeleton
svn path=/trunk/; revision=518
1999-05-26 02:34:31 +00:00
Rex Jolliff
d89e0df163 changes to support VGA miniport driver
svn path=/trunk/; revision=517
1999-05-26 00:39:11 +00:00
Rex Jolliff
36a7c3cf0d Added a skeleton VGA miniport driver
svn path=/trunk/; revision=516
1999-05-26 00:35:26 +00:00
Eric Kohl
b887962d1d Fixed some compiler warnings.
svn path=/trunk/; revision=515
1999-05-25 19:16:29 +00:00
Rex Jolliff
5f710be5ef Added code to implement videoport driver
svn path=/trunk/; revision=514
1999-05-25 03:19:47 +00:00
Emanuele Aliberti
47ee1b5a90 gdi32.dll added
svn path=/trunk/; revision=513
1999-05-24 20:09:06 +00:00
Emanuele Aliberti
c9b6355479 stubs for most gdi32 functions
svn path=/trunk/; revision=512
1999-05-24 20:04:44 +00:00
Boudewijn Dekker
5c91ed98f2 no message
svn path=/trunk/; revision=511
1999-05-24 15:22:43 +00:00
Boudewijn Dekker
1cdff7f03d no message
svn path=/trunk/; revision=510
1999-05-24 15:14:14 +00:00
Boudewijn Dekker
d21b624ded no message
svn path=/trunk/; revision=509
1999-05-24 14:47:21 +00:00
Emanuele Aliberti
4b60f335f5 GDI32.DLL auxiliary files
svn path=/trunk/; revision=508
1999-05-23 07:41:33 +00:00
Rex Jolliff
c805537640 added stubs and build spec for win32k.sys
svn path=/trunk/; revision=507
1999-05-22 23:55:56 +00:00
Boudewijn Dekker
2b96374f2a no message
svn path=/trunk/; revision=506
1999-05-22 07:28:28 +00:00
Rex Jolliff
2854aac246 more work on the videoport driver.
svn path=/trunk/; revision=505
1999-05-22 07:25:30 +00:00
Rex Jolliff
ae32243b6a patches to get v14 to compile.
svn path=/trunk/; revision=503
1999-05-21 18:47:44 +00:00
Rex Jolliff
ed003aa199 bumped to version 14
svn path=/trunk/; revision=502
1999-05-21 18:21:10 +00:00
Rex Jolliff
ebf6630e2b Added skeleton video port driver
svn path=/trunk/; revision=501
1999-05-21 18:20:45 +00:00
Rex Jolliff
2a87426631 more additions to DDI interface
svn path=/trunk/; revision=500
1999-05-21 07:50:04 +00:00
Emanuele Aliberti
e30ffd7e27 fiber functions stubs
svn path=/trunk/; revision=499
1999-05-21 05:42:08 +00:00
Emanuele Aliberti
659762910c *** empty log message ***
svn path=/trunk/; revision=498
1999-05-21 05:25:12 +00:00
Rex Jolliff
cfe42a37eb More DDI stuff
svn path=/trunk/; revision=497
1999-05-21 02:34:38 +00:00
Eric Kohl
42dfa65049 Fixed bugs in batch file execution.
svn path=/trunk/; revision=496
1999-05-21 00:52:38 +00:00
Rex Jolliff
d22c45fab2 Added to DDI interface definition
svn path=/trunk/; revision=495
1999-05-21 00:02:39 +00:00
Emanuele Aliberti
f234e93d1e win32k.sys exports
svn path=/trunk/; revision=494
1999-05-20 17:26:02 +00:00
Rex Jolliff
905776a29b added GDI kernel mode graphics engine skeleton
svn path=/trunk/; revision=493
1999-05-20 01:31:05 +00:00
Rex Jolliff
56b16dbf01 added GDI-DDI interface header
svn path=/trunk/; revision=492
1999-05-20 01:30:01 +00:00
Eric Kohl
9ade7d9aaf Fixed typo.
svn path=/trunk/; revision=491
1999-05-19 18:02:11 +00:00
Eric Kohl
3bc13b6875 cleanup
svn path=/trunk/; revision=490
1999-05-19 18:00:17 +00:00
Eric Kohl
cf7d159791 Fixed CreateDirectoryExW.
svn path=/trunk/; revision=489
1999-05-19 17:57:57 +00:00
Eric Kohl
0495cfd8d4 several fixes
svn path=/trunk/; revision=488
1999-05-19 17:57:02 +00:00
Eric Kohl
77360caec8 warning fix
svn path=/trunk/; revision=487
1999-05-19 17:56:25 +00:00
Eric Kohl
64f28f26bd access fixes
svn path=/trunk/; revision=486
1999-05-19 17:55:44 +00:00
Emanuele Aliberti
e3876459ef rtlsec.{c,h} are in lib/ntdll/rtl/sec.{c,h}
svn path=/trunk/; revision=485
1999-05-19 16:52:08 +00:00
Emanuele Aliberti
72df55f2e2 more stubs
svn path=/trunk/; revision=484
1999-05-19 16:43:30 +00:00
Boudewijn Dekker
55b8b93555 Commit to implement all symbols initially
svn path=/trunk/; revision=483
1999-05-18 18:16:30 +00:00
Boudewijn Dekker
b06daa620f no message
svn path=/trunk/; revision=482
1999-05-18 18:04:30 +00:00
Emanuele Aliberti
6275e70165 Some more constants for common values to be used in .rc files.
svn path=/trunk/; revision=480
1999-05-17 05:23:50 +00:00
Eric Kohl
0344d1a114 Fixed SystemTimeToFileTime().
svn path=/trunk/; revision=479
1999-05-16 18:33:24 +00:00
Eric Kohl
7aaccee0e9 Added date/time output and fixed warnings.
svn path=/trunk/; revision=478
1999-05-16 18:31:00 +00:00
Emanuele Aliberti
b5d3b3bf2d $(RC)
svn path=/trunk/; revision=477
1999-05-16 17:35:42 +00:00
Emanuele Aliberti
5d7bcb07bd a rudimentary console regedit
svn path=/trunk/; revision=476
1999-05-16 17:23:22 +00:00
Emanuele Aliberti
9ef17eada6 A few system utilities that need fixing
svn path=/trunk/; revision=475
1999-05-16 07:27:35 +00:00
Emanuele Aliberti
b9bbf8287b ExitWindowsEx exported
svn path=/trunk/; revision=474
1999-05-16 07:21:45 +00:00
Eric Kohl
88df0b7726 Fixed typo.
svn path=/trunk/; revision=473
1999-05-15 22:44:38 +00:00
Eric Kohl
c6b0f56200 Fixed typo.
svn path=/trunk/; revision=472
1999-05-15 17:25:29 +00:00
Eric Kohl
0a70b0080a Improved time functions.
svn path=/trunk/; revision=471
1999-05-15 17:25:02 +00:00
Emanuele Aliberti
b2274fda0d USER32.ExitWindows removed (it's a macro!)
svn path=/trunk/; revision=470
1999-05-15 13:48:38 +00:00
Emanuele Aliberti
6ddcb50e38 naive USER32.ExitWindows
svn path=/trunk/; revision=469
1999-05-15 13:35:57 +00:00
Emanuele Aliberti
19c00dc04f *** empty log message ***
svn path=/trunk/; revision=468
1999-05-15 07:23:34 +00:00
Eric Kohl
acc9e8fbc3 Fixed bug in RtlTimeToTimeFields().
svn path=/trunk/; revision=467
1999-05-14 16:42:05 +00:00
Eric Kohl
3ed33156f2 Fixed another path bug.
svn path=/trunk/; revision=466
1999-05-14 13:32:13 +00:00
Eric Kohl
d2e0015ab7 Fixed overlapping buffer handling.
svn path=/trunk/; revision=465
1999-05-14 13:30:07 +00:00
Eric Kohl
4251bd8513 Fixed volume label reading.
svn path=/trunk/; revision=464
1999-05-13 18:02:24 +00:00
Eric Kohl
60f4a025ef Fixed includes.
svn path=/trunk/; revision=463
1999-05-13 14:54:14 +00:00
Eric Kohl
9bdf8fd314 Improved time functions.
svn path=/trunk/; revision=462
1999-05-13 14:52:35 +00:00
Eric Kohl
e1e75da515 Update to build cmd separately.
svn path=/trunk/; revision=461
1999-05-11 22:50:44 +00:00
Emanuele Aliberti
2711eadf8a Added DLLs user32 and fmifs.
svn path=/trunk/; revision=460
1999-05-11 21:39:54 +00:00
Emanuele Aliberti
2eb223d16f GNU GPL
svn path=/trunk/; revision=459
1999-05-11 21:33:57 +00:00
Emanuele Aliberti
7e62c34fdd File Manage{r|ment} IFS Utility
Do-nothing implementation for coming ReactOS sysutils.

svn path=/trunk/; revision=458
1999-05-11 21:19:41 +00:00
Emanuele Aliberti
603bb75198 stuctures, constants and prototypes used by fmifs.dll
svn path=/trunk/; revision=457
1999-05-11 21:16:01 +00:00
Eric Kohl
db37f2cecd Not needed any longer.
svn path=/trunk/; revision=456
1999-05-11 19:37:25 +00:00
Eric Kohl
76691783b3 Fixed LARGE_INTEGER hack.
svn path=/trunk/; revision=455
1999-05-11 19:32:15 +00:00
Eric Kohl
fc506149ce Not needed any longer.
svn path=/trunk/; revision=454
1999-05-11 16:09:02 +00:00
Eric Kohl
5edb029d51 Use crtdll instead of ntdll.
svn path=/trunk/; revision=453
1999-05-11 16:08:21 +00:00
Eric Kohl
acd3d263c1 Fixed clean target.
svn path=/trunk/; revision=452
1999-05-11 15:32:27 +00:00
Eric Kohl
a2e9c0c7a4 Fixed compiler warnings.
svn path=/trunk/; revision=451
1999-05-11 15:31:01 +00:00
Eric Kohl
d0fbe6c728 Export more functions.
svn path=/trunk/; revision=450
1999-05-11 15:29:04 +00:00
Eric Kohl
6bac8b1c92 Minor fixes.
svn path=/trunk/; revision=449
1999-05-11 15:28:34 +00:00
Eric Kohl
3f9e43cbf2 Added TerminateProcess().
svn path=/trunk/; revision=448
1999-05-11 15:28:11 +00:00
Eric Kohl
078d8a8502 Added stdlib directory to the clean target.
svn path=/trunk/; revision=447
1999-05-11 15:27:13 +00:00
Eric Kohl
d927063dd4 Not needed any longer.
svn path=/trunk/; revision=446
1999-05-11 12:40:59 +00:00
Eric Kohl
ffbc9d9c03 Update to build cmd separately.
svn path=/trunk/; revision=445
1999-05-11 12:40:11 +00:00
Eric Kohl
6a7adfd71f Update for global rules.mak file.
svn path=/trunk/; revision=444
1999-05-11 12:38:45 +00:00
Eric Kohl
e9ecf45119 Added process ids.
svn path=/trunk/; revision=443
1999-05-10 12:37:45 +00:00
Rex Jolliff
169894bcc5 a little work on the registry code
svn path=/trunk/; revision=442
1999-05-10 00:06:49 +00:00
Boudewijn Dekker
b9354028e0 fixed bug in scanf
svn path=/trunk/; revision=441
1999-05-09 14:01:59 +00:00
Boudewijn Dekker
0107a0743b no message
svn path=/trunk/; revision=440
1999-05-09 14:00:05 +00:00
Eric Kohl
901449bfe8 Fixed 'implicid declaration' warning.
svn path=/trunk/; revision=439
1999-05-08 18:10:33 +00:00
Eric Kohl
09b99f1097 Fixed KEY_EVENT_RECORD.
svn path=/trunk/; revision=438
1999-05-08 18:09:37 +00:00
Boudewijn Dekker
7f7d1d57b0 changed #include <windows32/defines.h> to
#include "../include/defines.h"

svn path=/trunk/; revision=437
1999-05-08 13:37:14 +00:00
Boudewijn Dekker
25cd7e1e5a changed #include <windows32/defines.h> to
#include "../../include/defines.h"

svn path=/trunk/; revision=436
1999-05-08 13:35:12 +00:00
Emanuele Aliberti
3cee782a23 user32.dll minimal implementation
svn path=/trunk/; revision=435
1999-05-08 07:09:31 +00:00
Rex Jolliff
ae4cb21e55 added a top level readme file.
svn path=/trunk/; revision=434
1999-05-07 20:18:25 +00:00
Eric Kohl
27cfdf8b3b Export some more functions.
svn path=/trunk/; revision=433
1999-05-07 20:10:45 +00:00
Eric Kohl
0064915ad7 Some more fixes.
svn path=/trunk/; revision=432
1999-05-07 20:09:54 +00:00
Eric Kohl
14e5e06271 Fixed typos and moved typedefs.
svn path=/trunk/; revision=431
1999-05-06 23:40:43 +00:00
Eric Kohl
781ba31ad3 Added GetDiskFreeSpaceEx().
svn path=/trunk/; revision=430
1999-05-06 20:06:42 +00:00
Eric Kohl
0072db2e5e Fixed GetDiskFreeSpace().
svn path=/trunk/; revision=429
1999-05-06 17:59:55 +00:00
Eric Kohl
70b2252a9d Fixed more bugs in GetFullPathName() and SetCurrentDirectory().
svn path=/trunk/; revision=428
1999-05-06 14:06:48 +00:00
Eric Kohl
bc291ce04e Fixed typos and compiler warnings.
svn path=/trunk/; revision=427
1999-05-05 21:05:00 +00:00
Eric Kohl
73d37669c4 Added volume serial number handling.
svn path=/trunk/; revision=426
1999-05-05 11:23:46 +00:00
Eric Kohl
d5f96518f2 Renamed wtolower() to towlower().
Renamed wtoupper() to towupper().
Added some runtime functions.

svn path=/trunk/; revision=425
1999-05-05 11:20:14 +00:00
Eric Kohl
490e4d94fc Fixed 'implicid declaration' warnings.
svn path=/trunk/; revision=424
1999-04-29 23:36:08 +00:00
Eric Kohl
ddd8467f99 Added missing features in GetFullPathName[A/W]().
svn path=/trunk/; revision=423
1999-04-29 23:32:27 +00:00
Eric Kohl
278a6c540b Fixed dependencies. Now ntdll.dll depends on ntdll.def too.
svn path=/trunk/; revision=422
1999-04-29 19:55:00 +00:00
Eric Kohl
241b23c24d Added aliases.
svn path=/trunk/; revision=421
1999-04-29 19:54:02 +00:00
Eric Kohl
c842409323 Added missing features in GetFullPathName[A/W]().
svn path=/trunk/; revision=420
1999-04-28 14:19:34 +00:00
Eric Kohl
e5bfd35667 Fixed the 'clean' rule.
svn path=/trunk/; revision=419
1999-04-27 14:51:27 +00:00
Eric Kohl
f661ec6b08 Cleaned up the 'clean' rule.
svn path=/trunk/; revision=418
1999-04-27 14:50:51 +00:00
Eric Kohl
27de25f464 Fixed compiler warning.
svn path=/trunk/; revision=417
1999-04-27 14:49:57 +00:00
Eric Kohl
e68d320afc Fixed LARGE_INTEGER handling
svn path=/trunk/; revision=416
1999-04-27 14:47:40 +00:00
Eric Kohl
56461438cb Fixed LARGE_INTEGER handling
svn path=/trunk/; revision=415
1999-04-27 14:15:56 +00:00
Boudewijn Dekker
cee2ad3925 no message
svn path=/trunk/; revision=414
1999-04-27 06:16:04 +00:00
Boudewijn Dekker
9f95b317f2 Fixed bug in modfl and in fread and fwrite and added
some permission checks in stdio.

svn path=/trunk/; revision=413
1999-04-27 06:15:27 +00:00
Emanuele Aliberti
2890508a82 version information
svn path=/trunk/; revision=412
1999-04-25 07:09:54 +00:00
Boudewijn Dekker
97c1f757f6 Fixed some bugs.
svn path=/trunk/; revision=411
1999-04-23 18:43:00 +00:00
Rex Jolliff
98a3f0d6f5 Updated boot disk builder and fixed CHECKPOINT macro in KERNEL32
svn path=/trunk/; revision=410
1999-04-23 16:20:31 +00:00
Eric Kohl
67d7e92025 fixed GetVolumeInformation()
svn path=/trunk/; revision=409
1999-04-23 11:54:47 +00:00
Eric Kohl
54378dbf2a fixed little bug in FindFirstFile()
svn path=/trunk/; revision=408
1999-04-23 11:51:00 +00:00
Emanuele Aliberti
321081bb62 version information to distinguish from MS
svn path=/trunk/; revision=407
1999-04-23 05:28:37 +00:00
Emanuele Aliberti
ad3c512ae2 added resource script with version information to distinguish from MS
svn path=/trunk/; revision=406
1999-04-23 05:27:49 +00:00
Emanuele Aliberti
3fe1c6d5f4 *.rc include
svn path=/trunk/; revision=405
1999-04-23 05:26:37 +00:00
Eric Kohl
36322cffcd fixed GetFileAttributes()
svn path=/trunk/; revision=404
1999-04-21 19:16:31 +00:00
Eric Kohl
73a193b7fe compatibility fixes
svn path=/trunk/; revision=403
1999-04-20 20:25:56 +00:00
Eric Kohl
94f82b0796 cleanup
svn path=/trunk/; revision=402
1999-04-19 18:44:36 +00:00
Eric Kohl
81b9b25bc7 fixed Beep()
svn path=/trunk/; revision=401
1999-04-19 18:43:54 +00:00
David Welch
db068d0cae Synched makefiles
svn path=/trunk/; revision=400
1999-04-18 21:13:11 +00:00
David Welch
dcd4ed3e62 Completely code to synchronize DbgPrint and console output (why was this
not tested?)

svn path=/trunk/; revision=399
1999-04-18 13:39:48 +00:00
David Welch
9adc8d3ca1 Fixed silly bug (sorry)
svn path=/trunk/; revision=398
1999-04-18 13:24:02 +00:00
David Welch
d2f7f11cfc Corrected bug which stopped(!) crtdll from compiling
svn path=/trunk/; revision=397
1999-04-18 12:13:55 +00:00
David Welch
4946832715 *** empty log message ***
svn path=/trunk/; revision=396
1999-04-18 09:11:27 +00:00
David Welch
5a3243d494 Several bug fixes
Added proper process cleanup
Added several programs for testing

svn path=/trunk/; revision=395
1999-04-18 08:56:23 +00:00
Boudewijn Dekker
6f801aae22 added quad.h and ieee.h
svn path=/trunk/; revision=394
1999-04-17 09:11:02 +00:00
Boudewijn Dekker
6becb71b7c Replaced old version of printf and added some long long and
long double support.

svn path=/trunk/; revision=393
1999-04-17 09:10:25 +00:00
Eric Kohl
a1418887c0 changes to build cmd again
svn path=/trunk/; revision=392
1999-04-16 17:26:10 +00:00
Eric Kohl
1644f93c49 dir workaround
svn path=/trunk/; revision=391
1999-04-16 17:25:39 +00:00
Eric Kohl
464c5c2187 changes to build cmd again
svn path=/trunk/; revision=390
1999-04-16 17:20:16 +00:00
Eric Kohl
eda973b1cc last bugfixes for cmd
svn path=/trunk/; revision=389
1999-04-16 00:16:18 +00:00
Eric Kohl
7e74c066a7 changes to build cmd again
svn path=/trunk/; revision=388
1999-04-15 17:40:56 +00:00
Emanuele Aliberti
64037e6939 complete but not aliased export table for advapi32.dll
svn path=/trunk/; revision=387
1999-04-15 05:46:09 +00:00
Eric Kohl
079a92a658 fixed cursor synchronization bug
svn path=/trunk/; revision=386
1999-04-15 02:02:13 +00:00
Eric Kohl
ff1e3c7b18 changed strupr() to _strupr()
svn path=/trunk/; revision=385
1999-04-14 23:52:13 +00:00
Eric Kohl
731f19e9b1 several changes to make cmd compile and link again
svn path=/trunk/; revision=384
1999-04-14 23:48:27 +00:00
Eric Kohl
ebb6fcbc30 added ver command
improved command line editing

svn path=/trunk/; revision=383
1999-04-14 23:45:48 +00:00
Eric Kohl
97c260445b fixed bug in FreeConsole()
svn path=/trunk/; revision=382
1999-04-14 23:43:56 +00:00
Eric Kohl
5d97b74881 fixed cursor synchroization bug
svn path=/trunk/; revision=381
1999-04-14 23:43:13 +00:00
Boudewijn Dekker
ed08466464 Added various files.
--> failed to pass test printing a simple string

svn path=/trunk/; revision=380
1999-04-14 21:27:02 +00:00
Boudewijn Dekker
b68aceef62 Added two header files for multi byte string functions
svn path=/trunk/; revision=379
1999-04-14 07:10:15 +00:00
David Welch
42965fae3b Fixed more compilation bugs (sorry)
svn path=/trunk/; revision=378
1999-04-14 03:39:11 +00:00
David Welch
600e81c60c Fixed silly compilation bug
svn path=/trunk/; revision=377
1999-04-14 02:31:11 +00:00
David Welch
0691de94b5 *** empty log message ***
svn path=/trunk/; revision=376
1999-04-14 00:58:52 +00:00
David Welch
d837d19fac *** empty log message ***
svn path=/trunk/; revision=375
1999-04-14 00:52:19 +00:00
Eric Kohl
eee72fe55d console update
svn path=/trunk/; revision=374
1999-04-11 20:59:24 +00:00
Eric Kohl
98d0da7e1c added .cvsignore file
svn path=/trunk/; revision=373
1999-04-10 14:48:38 +00:00
Eric Kohl
7c8b54eee0 fixed bugs and cleaned up (direct io is working now)
svn path=/trunk/; revision=372
1999-04-10 14:47:15 +00:00
David Welch
fd78805ffc Partially implemented PEB
Some bug fixes
Hacked crtdll to compile with a minimal set of functions

svn path=/trunk/; revision=371
1999-04-10 12:08:24 +00:00
Rex Jolliff
9221d5c854 fixing filenames
svn path=/trunk/; revision=370
1999-04-08 03:46:59 +00:00
David Welch
5503a0f0e4 Improved GDT managment
svn path=/trunk/; revision=369
1999-04-05 15:04:46 +00:00
Rex Jolliff
99fa281af1 fixed display of stack frames
svn path=/trunk/; revision=368
1999-04-04 00:22:33 +00:00
Rex Jolliff
29b9e3f0b4 Added a recursive clean rule and cleaned up a few loose ends
svn path=/trunk/; revision=367
1999-04-03 23:43:27 +00:00
Boudewijn Dekker
0c6333ed01 minor fixes
svn path=/trunk/; revision=366
1999-04-03 10:42:18 +00:00
Boudewijn Dekker
e8cbdde2a7 moved some header files from top level to crtdll directory
svn path=/trunk/; revision=365
1999-04-02 21:44:11 +00:00
The ReactOS Manager
de56bed16d to fix a problem
svn path=/trunk/; revision=364
1999-04-02 18:34:41 +00:00
The ReactOS Manager
5a25898d41 to fix a problem
svn path=/trunk/; revision=363
1999-04-02 18:21:44 +00:00
Rex Jolliff
fbe6ae7bc0 Setup CRTDLL config to build DLL
svn path=/trunk/; revision=362
1999-04-02 06:29:59 +00:00
Rex Jolliff
a3576ceb06 removed size_t from kernel specific includes.
svn path=/trunk/; revision=361
1999-04-02 02:34:40 +00:00
David Welch
63a3377143 Enhanced memory managment
Correct several bugs in the creation/termination of processes

svn path=/trunk/; revision=360
1999-04-01 12:39:43 +00:00
Rex Jolliff
240b550d9c Changes to be able to build system
svn path=/trunk/; revision=359
1999-04-01 05:22:18 +00:00
jean
839118b9b3 initialization of LastError
svn path=/trunk/; revision=358
1999-03-31 14:09:51 +00:00
jean
472aba6da2 correct bug in release of semaphore
svn path=/trunk/; revision=357
1999-03-31 13:57:22 +00:00
jean
d7acbe2251 correct bug in release of semaphore
svn path=/trunk/; revision=356
1999-03-31 13:38:13 +00:00
jean
3763d9c0dd report changes from dwelch in 1.5 (include <string.h>
svn path=/trunk/; revision=355
1999-03-31 13:26:40 +00:00
jean
3277301592 implement some functions
svn path=/trunk/; revision=354
1999-03-31 13:21:44 +00:00
David Welch
572d45daca Improved physical page managment
svn path=/trunk/; revision=353
1999-03-31 10:59:32 +00:00
Eric Kohl
e4bcefde7d Fixed bugs and improved del command.
svn path=/trunk/; revision=352
1999-03-30 22:06:36 +00:00
Eric Kohl
74b0d03ccc Fixed bug in DeviceIoContol().
svn path=/trunk/; revision=351
1999-03-30 22:05:06 +00:00
Eric Kohl
9e3fe0593a Changed beep to compile as sys driver.
svn path=/trunk/; revision=350
1999-03-30 21:59:12 +00:00
Eric Kohl
aa77254872 improved bluescreen driver
svn path=/trunk/; revision=349
1999-03-30 21:58:05 +00:00
David Welch
bbc8fd7b21 Began improvements to memory managment, changed method of
mapping page tables and directories to be more efficent. These
changes require you to update your version of loadros.com

svn path=/trunk/; revision=348
1999-03-30 12:55:31 +00:00
Rex Jolliff
dff0889c02 added GDI32 DLL skeleton
svn path=/trunk/; revision=347
1999-03-28 23:12:42 +00:00
Boudewijn Dekker
03f9e7b713 fixed some bugs to make nls functions compile
svn path=/trunk/; revision=346
1999-03-27 22:29:57 +00:00
David Welch
fbcc7fb423 Made process execution work again
svn path=/trunk/; revision=345
1999-03-26 10:48:45 +00:00
David Welch
140b387c62 Made user-mode execution of processes work again
svn path=/trunk/; revision=344
1999-03-26 10:37:03 +00:00
jean
867fa342e3 changed type for function ExIsResourceAcquiredSharedLite
svn path=/trunk/; revision=343
1999-03-25 14:13:05 +00:00
jean
db7bc7b4e8 modifiy ExIsResourceAcquiredxxx
svn path=/trunk/; revision=342
1999-03-25 14:10:14 +00:00
jean
e4981e3a09 work on semaphores.
svn path=/trunk/; revision=341
1999-03-25 13:53:45 +00:00
jean
42c50bfaa8 begin implement.
svn path=/trunk/; revision=340
1999-03-25 13:52:28 +00:00
David Welch
8688a2a272 Cleaned up code a bit
svn path=/trunk/; revision=339
1999-03-25 00:37:06 +00:00
David Welch
3f0a7424cb Changed kernel32 to compile as a dll
svn path=/trunk/; revision=338
1999-03-24 11:07:33 +00:00
Eric Kohl
00f2fc414e fixed drive reset bug!
svn path=/trunk/; revision=333
1999-03-23 21:23:50 +00:00
Boudewijn Dekker
4f928dad27 no message
svn path=/trunk/; revision=332
1999-03-22 21:01:37 +00:00
Boudewijn Dekker
150a9789e6 Added __set_errno to file.h
svn path=/trunk/; revision=331
1999-03-22 21:01:15 +00:00
Boudewijn Dekker
b3c424cd40 Changes and improved mingw32 compile
svn path=/trunk/; revision=330
1999-03-22 20:57:12 +00:00
Boudewijn Dekker
8bf8d53376 no message
svn path=/trunk/; revision=329
1999-03-22 20:48:08 +00:00
Boudewijn Dekker
5bd64e22e4 Converted cwait.c and system.c to lower case.
svn path=/trunk/; revision=328
1999-03-22 18:09:39 +00:00
Boudewijn Dekker
0dc103b08e Changed access.c and try to convert commit.c to lower case.
svn path=/trunk/; revision=327
1999-03-22 17:21:21 +00:00
Eric Kohl
108fcceee2 changes to make cmd compile (not link)
svn path=/trunk/; revision=326
1999-03-21 21:32:45 +00:00
Rex Jolliff
b172b0df42 added rule for cmd
svn path=/trunk/; revision=325
1999-03-20 20:47:25 +00:00
Rex Jolliff
9f7f2c0f72 Added Eric Kohl's port of freedos command
svn path=/trunk/; revision=324
1999-03-20 20:28:42 +00:00
Rex Jolliff
af3d943b02 cleanup after merge with mingw32
svn path=/trunk/; revision=323
1999-03-19 06:37:39 +00:00
Rex Jolliff
d704562082 Merged mingw32 branch into main trunk
svn path=/trunk/; revision=321
1999-03-19 05:55:55 +00:00
jean
bf4de1d7cd replaced call %eax with call *%eax.First syntax is not recognized
by all compilers.

svn path=/trunk/; revision=317
1999-03-16 13:35:26 +00:00
Boudewijn Dekker
f6a2bede37 no message
svn path=/trunk/; revision=307
1999-03-13 10:12:05 +00:00
Boudewijn Dekker
282bc306f8 Added logb from glibc math.h file
svn path=/trunk/; revision=306
1999-03-13 09:14:51 +00:00
Boudewijn Dekker
481a3a687c no message
svn path=/trunk/; revision=305
1999-03-13 09:03:35 +00:00
Boudewijn Dekker
48f92902c5 Added some nls functions
svn path=/trunk/; revision=304
1999-03-13 09:00:59 +00:00
Boudewijn Dekker
0c215b202d Changed .s files to .c files with gcc asm.
svn path=/trunk/; revision=301
1999-03-12 20:28:52 +00:00
Boudewijn Dekker
98071efc7e Changed .s files to .c files with gcc asm.
svn path=/trunk/; revision=300
1999-03-12 20:26:05 +00:00
jean
ad037179b4 generate napi.c instead of napi.asm
svn path=/trunk/; revision=299
1999-03-12 16:18:45 +00:00
jean
9d1624980f replaced by interlck.c
svn path=/trunk/; revision=298
1999-03-12 16:15:21 +00:00
jean
3276df883d created, replace interlck.asm
svn path=/trunk/; revision=297
1999-03-12 16:14:36 +00:00
jean
7994f333ab replaced by apchelp.c
svn path=/trunk/; revision=296
1999-03-12 16:08:15 +00:00
jean
49d35cfc27 created, replace apchelp.asm
svn path=/trunk/; revision=295
1999-03-12 16:07:32 +00:00
jean
a1c0b9b92a replaced by usercall.c
svn path=/trunk/; revision=294
1999-03-12 16:04:30 +00:00
jean
75a9d9fc5f replaced by irqhand.c
svn path=/trunk/; revision=293
1999-03-12 16:03:09 +00:00
jean
a0945c2aa2 created. replace usercall.asm
svn path=/trunk/; revision=292
1999-03-12 16:00:10 +00:00
jean
ee4c094831 created. replace irqhand.asm.
svn path=/trunk/; revision=291
1999-03-12 15:59:02 +00:00
Emanuele Aliberti
9ee6327262 stubs
svn path=/trunk/; revision=290
1999-03-12 06:29:00 +00:00
Rex Jolliff
24160311c0 more changes to compile under mingw32
svn path=/trunk/; revision=287
1999-03-10 07:18:38 +00:00
Rex Jolliff
275be13b58 Eric's beep driver and changes for same
svn path=/trunk/; revision=286
1999-03-10 06:39:59 +00:00
Rex Jolliff
3a2897ef52 Eric's beep driver and changes to support same
svn path=/trunk/; revision=285
1999-03-10 05:16:57 +00:00
Rex Jolliff
2e61a84b9d oops, put it in the wrong place
svn path=/trunk/; revision=284
1999-03-10 05:01:36 +00:00
Rex Jolliff
c00639bf8c Added the CRT lib for the kernel
svn path=/trunk/; revision=283
1999-03-09 07:15:46 +00:00
Boudewijn Dekker
09abfa6348 Various changes to crtdll.
svn path=/trunk/; revision=282
1999-03-07 14:15:23 +00:00
Boudewijn Dekker
01f4ff78c5 Various changes to crtdll, added some files to math and float
directory.

svn path=/trunk/; revision=281
1999-03-07 13:37:38 +00:00
Boudewijn Dekker
9fd228d402 Various changes to header files
svn path=/trunk/; revision=280
1999-03-07 13:35:11 +00:00
Rex Jolliff
1db33360e3 added config to generate NTDLL.DLL under mingw32
svn path=/trunk/; revision=279
1999-03-06 21:44:41 +00:00
Emanuele Aliberti
97a4cb23d5 stubs
svn path=/trunk/; revision=278
1999-03-06 10:57:02 +00:00
Boudewijn Dekker
eec445ded5 these files are defined in stdlib
svn path=/trunk/; revision=275
1999-02-27 16:59:01 +00:00
Boudewijn Dekker
5a9cee4031 made some small changes
svn path=/trunk/; revision=271
1999-02-25 22:53:40 +00:00
Boudewijn Dekker
b7b31cec92 added some header files
svn path=/trunk/; revision=270
1999-02-25 22:51:47 +00:00
Boudewijn Dekker
15df73e6b3 no message
svn path=/trunk/; revision=269
1999-02-25 21:36:26 +00:00
Boudewijn Dekker
d58a6ad5d6 added some wide character support
svn path=/trunk/; revision=268
1999-02-25 21:33:50 +00:00
Boudewijn Dekker
7946500988 no message
svn path=/trunk/; revision=267
1999-02-25 21:27:29 +00:00
Boudewijn Dekker
d9625dff78 implementation of debug assert
svn path=/trunk/; revision=266
1999-02-25 21:02:20 +00:00
Boudewijn Dekker
e66f3f0e7b Fixed some problems to make the mingw32 header files work with the
linux header files.

svn path=/trunk/; revision=265
1999-02-21 20:59:55 +00:00
Boudewijn Dekker
b57dd9d5b6 Fixed some bugs in header files
svn path=/trunk/; revision=264
1999-02-21 17:43:45 +00:00
Boudewijn Dekker
f929f4c00b changed header files from djgpp to mingw32
svn path=/trunk/; revision=263
1999-02-21 13:48:57 +00:00
Boudewijn Dekker
eef71ffb98 change exec and spawn to _exec and _spawn
svn path=/trunk/; revision=262
1999-02-21 13:43:05 +00:00
Boudewijn Dekker
87028edf14 changed some header file from djgpp to mingw32
svn path=/trunk/; revision=261
1999-02-21 13:33:27 +00:00
Boudewijn Dekker
38c0489092 Changed some header file from djgpp to mingw32
svn path=/trunk/; revision=260
1999-02-21 13:32:17 +00:00
Boudewijn Dekker
77ed4e360b Change some header file from djgpp to mingw32
svn path=/trunk/; revision=259
1999-02-21 13:29:57 +00:00
Boudewijn Dekker
37f381130a fixed bug in stdio.h
svn path=/trunk/; revision=258
1999-02-21 09:15:22 +00:00
Boudewijn Dekker
f6e36a9f86 implement use of _get_osfhandle
svn path=/trunk/; revision=257
1999-02-21 09:11:06 +00:00
Boudewijn Dekker
2c7fb0c72e fixed bug in unlink.c
svn path=/trunk/; revision=256
1999-02-21 09:02:18 +00:00
Boudewijn Dekker
4ad5db5d9c fixed bug in getch
svn path=/trunk/; revision=255
1999-02-21 08:58:57 +00:00
Boudewijn Dekker
95a2cd9225 Added some files
svn path=/trunk/; revision=254
1999-02-21 08:39:36 +00:00
Boudewijn Dekker
ddbc094b81 Added prototype for NtCreateToken
svn path=/trunk/; revision=253
1999-02-21 08:29:20 +00:00
Boudewijn Dekker
4e237f23ce Added prototype for ZwCreateToken
svn path=/trunk/; revision=252
1999-02-21 08:24:36 +00:00
Boudewijn Dekker
93e68a6285 changed io.h regarding prototypes starting with an underscore
svn path=/trunk/; revision=251
1999-02-20 18:40:58 +00:00
Boudewijn Dekker
17a714dfcd added some files and impl diff between fileno and handles
svn path=/trunk/; revision=250
1999-02-20 18:36:47 +00:00
Boudewijn Dekker
25f46657b5 Fixed bug in filetime to system time conversion.
svn path=/trunk/; revision=249
1999-02-20 09:11:46 +00:00
jean
e177bf992c revert change in IopCloseFile, because David Welch is sure we must send
IRP_MJ_CLEANUP

svn path=/trunk/; revision=248
1999-02-18 12:28:06 +00:00
jean
c3e2bc8f4d add date and time in dir.
svn path=/trunk/; revision=247
1999-02-16 12:48:15 +00:00
jean
bd305c8221 correct conversion from dos date and time to TIMEFIELDS.
svn path=/trunk/; revision=246
1999-02-16 12:47:30 +00:00
jean
b16dd07968 add time fields in Find Informations.
svn path=/trunk/; revision=245
1999-02-16 12:46:33 +00:00
jean
bc669554a9 correct bug
svn path=/trunk/; revision=244
1999-02-16 12:45:28 +00:00
jean
276842493c add time.o and memcpy.o
svn path=/trunk/; revision=243
1999-02-16 12:41:57 +00:00
jean
32835c2a47 removed stubs for memcpy,RtlTimeFieldsToTime,RtlTimeTotimeFields
svn path=/trunk/; revision=242
1999-02-16 12:40:05 +00:00
jean
edabb16494 copied from lib/crtdll/string/memcpy.c
svn path=/trunk/; revision=241
1999-02-16 12:38:46 +00:00
jean
d4164f1a07 copied from ntoskrnl/rtl/time.c
svn path=/trunk/; revision=240
1999-02-16 12:37:48 +00:00
Rex Jolliff
ace5da2d0d Added a clean rule
svn path=/trunk/; revision=239
1999-02-16 07:48:03 +00:00
Rex Jolliff
6752566cd2 missed this file
svn path=/trunk/; revision=238
1999-02-16 07:47:29 +00:00
jean
2c6653bf1c place hal/ddk.h after rtl.h, hal/ddk.h needs rtl.h for HalQueryRealTimeClock
svn path=/trunk/; revision=237
1999-02-15 11:40:28 +00:00
jean
6cbc9243c9 add HalQueryRealTimeClock
svn path=/trunk/; revision=236
1999-02-15 11:38:36 +00:00
jean
9c602cda2e add time.o (function HalQueryRealTimeClock)
svn path=/trunk/; revision=235
1999-02-15 11:36:21 +00:00
jean
fc52fb7648 function HalQueryRealTimeClock : partial implementation
svn path=/trunk/; revision=234
1999-02-15 11:35:01 +00:00
jean
621baeefa5 correct bug in CreateDirectory
svn path=/trunk/; revision=233
1999-02-15 11:33:06 +00:00
jean
9f5cc5a859 modify IopCloseFile : send IRP_MJ_CLOSE .
svn path=/trunk/; revision=232
1999-02-15 11:29:08 +00:00
jean
00ec608e15 add a buffer for each file opened
svn path=/trunk/; revision=231
1999-02-15 11:26:13 +00:00
jean
2f1849aae9 add a read buffer of one cluster for each file
svn path=/trunk/; revision=230
1999-02-15 11:25:23 +00:00
jean
36714219d9 initialize dates to current date
svn path=/trunk/; revision=229
1999-02-15 11:24:13 +00:00
Rex Jolliff
6e66d97592 Added check for ROSKRNL.EXE kernel import references
svn path=/trunk/; revision=228
1999-02-12 22:07:20 +00:00
jean
cadd577325 RtlNtStatusToDosError : return 0 if no error, 1 else.
svn path=/trunk/; revision=227
1999-02-11 12:42:18 +00:00
jean
d6995d6c9c correct bug in WriteFile : crash if Overlapped is null
svn path=/trunk/; revision=226
1999-02-11 12:40:02 +00:00
jean
638ba1c9e4 correct bug on CreateDirectory : crash if no template
correct call to ZwCreateFile

svn path=/trunk/; revision=225
1999-02-11 12:38:30 +00:00
jean
9e65542bad add defines for ByteOffset parameter
svn path=/trunk/; revision=224
1999-02-10 13:12:41 +00:00
jean
3315d25a64 change declaration of functions
svn path=/trunk/; revision=223
1999-02-10 13:04:16 +00:00
jean
a649212d32 correct bug in FindFile : support fragmented directories
suppress \ at end of filename

svn path=/trunk/; revision=222
1999-02-10 12:52:48 +00:00
jean
4b8117cedc completed write functions : write correct entries in directories
svn path=/trunk/; revision=221
1999-02-10 12:48:37 +00:00
jean
b9da76d7ef changes because of new version of function FindFile
svn path=/trunk/; revision=220
1999-02-10 12:46:59 +00:00
Rex Jolliff
0a828ed745 another test
svn path=/trunk/; revision=219
1999-02-09 06:54:53 +00:00
Rex Jolliff
a943c76484 a test
svn path=/trunk/; revision=218
1999-02-09 06:53:18 +00:00
David Welch
70f7c7269c Fixed bugs in lib/kernel32/file/curdir.c and
lib/kernel32/misc/console.c

svn path=/trunk/; revision=217
1999-02-07 00:37:29 +00:00
David Welch
02e70516ef Fixed bug in lib/kernel32/misc/console.c
svn path=/trunk/; revision=216
1999-02-06 18:39:40 +00:00
David Welch
e5dfcc9871 no message
svn path=/trunk/; revision=215
1999-02-06 18:34:14 +00:00
Rex Jolliff
f8492b9ae3 various changes
svn path=/trunk/; revision=214
1999-02-06 00:34:56 +00:00
Rex Jolliff
6bee27aa2a Fixed page fault due to timer. Problem with timeout still needs to be fixed.
svn path=/trunk/; revision=213
1999-02-06 00:33:33 +00:00
Rex Jolliff
dbad901d31 Fixed debug statement
svn path=/trunk/; revision=212
1999-02-06 00:29:31 +00:00
Rex Jolliff
e51b6b925d Forgot to bump version on last changes
svn path=/trunk/; revision=211
1999-02-05 19:39:35 +00:00
Rex Jolliff
f45b570cc3 Added symbolic stack dump
svn path=/trunk/; revision=210
1999-02-05 19:38:30 +00:00
Rex Jolliff
55d6c152b6 more changes from Boudewijn
svn path=/trunk/; revision=209
1999-02-05 19:36:21 +00:00
Rex Jolliff
3aed7d1da4 incorporating changes from Boudewijn
svn path=/trunk/; revision=208
1999-02-05 19:35:56 +00:00
Rex Jolliff
df27ab373b incorporated changes from Boudewijn
svn path=/trunk/; revision=207
1999-02-05 19:27:21 +00:00
Rex Jolliff
67c37a748e Incorporated changed from Boudewijn
svn path=/trunk/; revision=206
1999-02-05 19:24:10 +00:00
Rex Jolliff
d4195242ff incorporated changes from dekker
svn path=/trunk/; revision=205
1999-02-05 19:15:33 +00:00
Rex Jolliff
9bcc89126c a test
svn path=/trunk/; revision=204
1999-02-05 18:52:58 +00:00
Rex Jolliff
d7a481490e Renamed from uppercase
svn path=/trunk/; revision=203
1999-02-05 18:44:52 +00:00
Rex Jolliff
bfd196dfd9 changes to support new library modules
svn path=/trunk/; revision=202
1999-02-05 18:34:02 +00:00
Rex Jolliff
f4e6240546 added libgcc.a to link spec
svn path=/trunk/; revision=201
1999-02-05 18:24:00 +00:00
David Welch
5ba4cc87c5 Extensive changes to the objmgr
Some bug fixes

svn path=/trunk/; revision=200
1999-02-01 20:58:37 +00:00
David Welch
e999320cb5 Deleted these
svn path=/trunk/; revision=199
1999-02-01 20:52:55 +00:00
David Welch
88987510df Delete this (empty file)
svn path=/trunk/; revision=198
1999-02-01 20:52:08 +00:00
David Welch
5cb80487c2 Deleted these (shell now redundant)
svn path=/trunk/; revision=197
1999-02-01 20:51:28 +00:00
David Welch
3fcccd0b8c Removed some memory leaks
Moved from first-fit to best-fit for non-paged pool allocation
Fixed bug in console driver (wasn't completing irps)
Fixed bug in vfat fsd (didn't recognize paths of the form foo//bar)

svn path=/trunk/; revision=196
1999-01-29 14:33:04 +00:00
David Welch
a984daa5de no message
svn path=/trunk/; revision=195
1999-01-28 21:42:01 +00:00
David Welch
9a068f8b4b Removed memory leaks
Fixed bug in console driver (wasn't completing irp)

svn path=/trunk/; revision=194
1999-01-28 21:41:05 +00:00
David Welch
0bcca89137 no message
svn path=/trunk/; revision=193
1999-01-28 15:54:26 +00:00
Rex Jolliff
531f88e833 changed program loader to map image into section
svn path=/trunk/; revision=192
1999-01-25 23:06:30 +00:00
Rex Jolliff
a3232e28c6 changes to implement registry tags
svn path=/trunk/; revision=191
1999-01-22 00:28:31 +00:00
David Welch
1908a698e8 Fixed some bugs
svn path=/trunk/; revision=190
1999-01-20 19:02:05 +00:00
jean
97b7ce3ac3 prepare to reserve resource
svn path=/trunk/; revision=189
1999-01-20 13:07:12 +00:00
jean
f03f3933bc corrected bugs in long names, and write operations
add functionnalities to create operation

svn path=/trunk/; revision=188
1999-01-20 13:05:53 +00:00
jean
85e4809132 many bug fixes
svn path=/trunk/; revision=187
1999-01-20 13:00:35 +00:00
jean
e9b21d3c1d modify dir command : print altername name, size and long name
svn path=/trunk/; revision=186
1999-01-20 12:58:11 +00:00
jean
f9a230ad49 return both alternate and long filename
return file size

svn path=/trunk/; revision=185
1999-01-20 12:56:24 +00:00
jean
efa169ca61 remove STATUS_xxx values defined in ddk/status.h
add FILE_ATTRIBUTE_xxx values needed by vfat driver

svn path=/trunk/; revision=184
1999-01-20 12:53:14 +00:00
jean
8f3084dc6d define File disposition values as NT
add FILE_EXISTS

svn path=/trunk/; revision=183
1999-01-20 12:47:37 +00:00
jean
93afbbc9d6 define STATUS values as nt
add some values required by vfat driver

svn path=/trunk/; revision=182
1999-01-20 12:45:33 +00:00
Rex Jolliff
5998255e83 changed ObLookupObject to use Parse member if nonnull
svn path=/trunk/; revision=181
1999-01-20 00:19:46 +00:00
Rex Jolliff
a1fca3d3ae changed Parse member of object type
svn path=/trunk/; revision=180
1999-01-20 00:19:08 +00:00
Rex Jolliff
1e4904f8dd added for crtdll
svn path=/trunk/; revision=179
1999-01-17 17:57:38 +00:00
Rex Jolliff
ac9c590908 adding files for kernel32/crtdll
svn path=/trunk/; revision=178
1999-01-17 17:49:46 +00:00
Rex Jolliff
107f6406fc fixed a bug in K32 heap init
svn path=/trunk/; revision=177
1999-01-17 17:45:20 +00:00
David Welch
12ea84e3c9 Bug fixes
svn path=/trunk/; revision=176
1999-01-17 17:30:18 +00:00
David Welch
8551dc320b Removed obsolete documentation
svn path=/trunk/; revision=175
1999-01-17 17:18:35 +00:00
David Welch
512966336f Add new documentation
svn path=/trunk/; revision=174
1999-01-17 17:17:09 +00:00
David Welch
ed27871348 Updated TODO list
svn path=/trunk/; revision=173
1999-01-17 17:16:00 +00:00
David Welch
51f310e703 Fixed bug (please don't alter functions without debugging)
svn path=/trunk/; revision=172
1999-01-17 17:12:19 +00:00
David Welch
804bfa6fb9 Added this because the crtdll files seem to need it
svn path=/trunk/; revision=171
1999-01-16 21:16:38 +00:00
David Welch
c2059de8af Fixed several bugs
Commented out code that wouldn't compile in lib/crtdll
Began removed memory and file leaks

svn path=/trunk/; revision=170
1999-01-16 21:03:00 +00:00
Rex Jolliff
73d2af04d9 added to cover copyright requirements
svn path=/trunk/; revision=169
1999-01-16 17:30:25 +00:00
Rex Jolliff
d01f8c3180 Boudewjin's massive work on kernel32 and crtdll and a console driver.
svn path=/trunk/; revision=168
1999-01-16 02:11:45 +00:00
jean
6298d37c71 changes to make create directory functions active.
svn path=/trunk/; revision=167
1999-01-13 15:57:45 +00:00
jean
dd705acbd0 correct some bugs in WriteFile function
svn path=/trunk/; revision=166
1999-01-13 15:53:56 +00:00
jean
455be0fece transmit CreateOptions and CreateDisposition to Irp
svn path=/trunk/; revision=165
1999-01-13 15:49:07 +00:00
jean
2d3181f734 more completely implement write operations
svn path=/trunk/; revision=164
1999-01-13 15:46:52 +00:00
jean
2b59b2c1c2 add file dirwr.c
add entry to generate test executables

svn path=/trunk/; revision=163
1999-01-13 15:37:47 +00:00
jean
3c80407d9b write operations on directories
svn path=/trunk/; revision=162
1999-01-13 15:25:50 +00:00
jean
93b8081eed some bugfixes
work on write operations

svn path=/trunk/; revision=161
1999-01-13 15:21:34 +00:00
jean
a044d562b8 add more function's declarations
svn path=/trunk/; revision=160
1999-01-13 15:20:31 +00:00
jean
523aba9a89 cancel changes from david welch : write operations dangerous
remove allocations, use directly buffers

svn path=/trunk/; revision=159
1999-01-13 15:14:48 +00:00
Rex Jolliff
b0cbc91ce1 PE driver loader is complete.
svn path=/trunk/; revision=158
1999-01-13 03:00:06 +00:00
Rex Jolliff
dc7be08202 more work on loader
svn path=/trunk/; revision=157
1999-01-12 07:44:55 +00:00
Rex Jolliff
01e34a063a added for registry support
svn path=/trunk/; revision=156
1999-01-12 01:28:55 +00:00
Rex Jolliff
29ef6b5bac Wrote initial hack at ZwCreateKey and CmInitialize
svn path=/trunk/; revision=155
1999-01-07 01:38:57 +00:00
Rex Jolliff
4159ed2941 Modifed to add Registry specific object mgr types and functions
svn path=/trunk/; revision=154
1999-01-07 01:37:29 +00:00
jean
1e09a4813f redo changes in 1.9 from Rex.
correct bug on fragmented directories.

svn path=/trunk/; revision=153
1999-01-05 12:04:08 +00:00
David Welch
36902d624f Created bugs in wait and timer code
svn path=/trunk/; revision=152
1999-01-04 23:01:18 +00:00
jean
4850652d25 use of correct zones for arguments restartscan and singleentry
svn path=/trunk/; revision=151
1999-01-04 14:11:15 +00:00
jean
c92156be04 added function to defrag free list, because else pool take all memory
with free list.

svn path=/trunk/; revision=150
1999-01-04 12:35:24 +00:00
jean
17b6b4d72a correct bug in write operations
svn path=/trunk/; revision=149
1999-01-04 12:11:35 +00:00
jean
66658f3d1a many changes to :
support one FCB/file and one CCB/open
write on existing files
open of root directory

svn path=/trunk/; revision=148
1999-01-04 12:08:54 +00:00
jean
35f07df64f adaptation to new structs in vfat.h
svn path=/trunk/; revision=147
1999-01-04 12:02:38 +00:00
jean
06a593cc64 changes to support FCB and CCB better
svn path=/trunk/; revision=146
1999-01-04 11:59:25 +00:00
David Welch
20ef31f3cc Added directory listing support for the shell
Correctec bug that prevented listing the root directory in the vfat fsd
Corrected mistake where the SL_xxx constants were too long

svn path=/trunk/; revision=145
1999-01-03 16:18:19 +00:00
Rex Jolliff
2d14c3e110 Changes to support the COFF driver loader
svn path=/trunk/; revision=144
1999-01-01 22:33:38 +00:00
David Welch
02e3d7b08e *** empty log message ***
svn path=/trunk/; revision=143
1999-01-01 22:03:17 +00:00
David Welch
d55d012d33 Added ntdll functions
svn path=/trunk/; revision=142
1999-01-01 21:47:57 +00:00
David Welch
de8fc633f8 Beginnings of ext2fs driver
svn path=/trunk/; revision=141
1999-01-01 21:39:43 +00:00
Rex Jolliff
3244132cc7 Changes to support new VFAT functions and the loader
svn path=/trunk/; revision=140
1998-12-30 22:48:14 +00:00
Rex Jolliff
6ce4528a80 new file for driver from Jean
svn path=/trunk/; revision=139
1998-12-30 19:01:23 +00:00
Rex Jolliff
43fd2f2579 readme for the VFAT driver provided by jean
svn path=/trunk/; revision=138
1998-12-30 18:45:49 +00:00
Rex Jolliff
a984573ad4 more loader changes and new fixes to the VFAT driver from jean
svn path=/trunk/; revision=137
1998-12-30 18:43:27 +00:00
Rex Jolliff
6fd4505b6f more changes to support the loader
svn path=/trunk/; revision=136
1998-12-23 02:40:01 +00:00
David Welch
4209cfec73 Changed type of LONGLONG
svn path=/trunk/; revision=135
1998-12-22 20:41:40 +00:00
David Welch
e007300ee0 Fixed race in task-switching code
svn path=/trunk/; revision=134
1998-12-22 19:14:19 +00:00
David Welch
3ecc11334b Fixed race in task switching code
svn path=/trunk/; revision=133
1998-12-22 19:13:33 +00:00
David Welch
1628f7a89e Fixed a race in the task-switching code
svn path=/trunk/; revision=132
1998-12-22 19:11:47 +00:00
David Welch
b161ff0650 Fixed bug
svn path=/trunk/; revision=131
1998-12-21 15:48:21 +00:00
Rex Jolliff
6cd2bc16b8 Various changes to support the executable/driver loader
svn path=/trunk/; revision=130
1998-12-20 19:41:39 +00:00
David Welch
a9ce8c6379 *** empty log message ***
svn path=/trunk/; revision=129
1998-12-19 19:26:02 +00:00
David Welch
5d1ddcb775 Adding missing functions to ntdll
svn path=/trunk/; revision=128
1998-12-19 19:05:11 +00:00
David Welch
962e8486ea Put def file in its own directory
svn path=/trunk/; revision=127
1998-12-19 19:01:30 +00:00
David Welch
8f8c71dfb9 Minor bug fixes
svn path=/trunk/; revision=126
1998-12-19 18:56:57 +00:00
David Welch
e017266cd0 Corrected some bugs in the system libraries
svn path=/trunk/; revision=125
1998-12-19 18:49:28 +00:00
David Welch
316713be6b Small changes to include files
svn path=/trunk/; revision=124
1998-12-19 18:46:02 +00:00
David Welch
937e125ad7 Improved shell and removed symbol list
svn path=/trunk/; revision=123
1998-12-19 18:44:54 +00:00
David Welch
43c24d3654 Removed string functions from native system calls and removed binary from
repository

svn path=/trunk/; revision=122
1998-12-19 18:40:55 +00:00
David Welch
7e398d4e22 Cleaned up system libraries
svn path=/trunk/; revision=121
1998-12-19 17:48:53 +00:00
Rex Jolliff
0d71cd85bd more hacking on the loader
svn path=/trunk/; revision=120
1998-12-12 17:44:30 +00:00
David Welch
f5d7376e5a Additions to ntifs.h (just for reference)
svn path=/trunk/; revision=119
1998-12-12 17:01:34 +00:00
Rex Jolliff
570be7966c Implemented loader functions for COFF Drivers and BIN apps, and stubs for PE apps
svn path=/trunk/; revision=118
1998-12-12 00:24:12 +00:00
David Welch
6b8cb5c939 Added ChangeLog for better version information, io.h so it would compile
svn path=/trunk/; revision=117
1998-12-08 23:43:37 +00:00
David Welch
6eaf6180fd Corrected a memory leak in the read cleanup code
svn path=/trunk/; revision=116
1998-12-08 19:44:04 +00:00
David Welch
4bc75819a3 Corrected a number of bugs, including the keyboard one
svn path=/trunk/; revision=115
1998-12-08 16:51:47 +00:00
Rex Jolliff
8587170853 didnt want to delete these
svn path=/trunk/; revision=114
1998-12-08 04:31:41 +00:00
Rex Jolliff
683ed8c5a1 Added ZwQueryFileInformation
svn path=/trunk/; revision=113
1998-12-08 04:31:04 +00:00
Rex Jolliff
bc06faa8cd Fixed a bug introduced by a change in ZwAllocateVirtualMemory call
svn path=/trunk/; revision=112
1998-12-06 00:04:04 +00:00
Rex Jolliff
4bc8aa3713 more minor fixes
svn path=/trunk/; revision=111
1998-12-05 00:15:50 +00:00
Rex Jolliff
b097125d77 this file is machine generated
svn path=/trunk/; revision=110
1998-12-04 23:36:58 +00:00
Rex Jolliff
13e75fd710 cleanup to support incorporated changes
svn path=/trunk/; revision=109
1998-12-04 23:35:48 +00:00
Rex Jolliff
37af92952e Rolled in various changes from others
svn path=/trunk/; revision=108
1998-12-04 18:28:13 +00:00
Rex Jolliff
159ee3800d Added this file
svn path=/trunk/; revision=107
1998-12-03 04:49:07 +00:00
Rex Jolliff
82d21c903e Changed include/hal/io.h to halio.h with i386/io.h
svn path=/trunk/; revision=106
1998-11-29 19:39:40 +00:00
Rex Jolliff
b6187e2de7 added ext partition check macro
svn path=/trunk/; revision=105
1998-11-29 19:31:45 +00:00
Rex Jolliff
98d405409a bumped the DRQ timeout up due to user request
svn path=/trunk/; revision=104
1998-11-29 19:29:57 +00:00
Rex Jolliff
ce0b82afeb Used Ext partition detection macro and less intrusive register maps
svn path=/trunk/; revision=103
1998-11-29 19:28:18 +00:00
Rex Jolliff
fd5a21279e Continuing work in progress
svn path=/trunk/; revision=102
1998-11-29 19:25:39 +00:00
Rex Jolliff
e96765787f Thread should be restarted in passive level.
svn path=/trunk/; revision=101
1998-11-29 19:24:46 +00:00
Rex Jolliff
a06ebb79bb Changed include file spec
svn path=/trunk/; revision=100
1998-11-29 19:22:42 +00:00
Rex Jolliff
f075faafdf changed include file spec
svn path=/trunk/; revision=99
1998-11-29 19:15:37 +00:00
Rex Jolliff
043bc3b058 added support for CHECKED macro
svn path=/trunk/; revision=98
1998-11-29 19:11:10 +00:00
Rex Jolliff
a3a5ebb7c7 added CHECKED to defines
svn path=/trunk/; revision=97
1998-11-29 19:09:49 +00:00
Rex Jolliff
f93f98a522 added driver unloading to list
svn path=/trunk/; revision=96
1998-11-29 19:08:21 +00:00
David Welch
93263fa722 Updated version.h only, just a test really
svn path=/trunk/; revision=95
1998-11-28 23:07:08 +00:00
Rex Jolliff
d6830ac891 added more partition types including FAT32
svn path=/trunk/; revision=94
1998-11-13 08:06:13 +00:00
Rex Jolliff
1302d0fe3b used macro for winsize in place of hardcoded number
svn path=/trunk/; revision=93
1998-11-13 08:05:22 +00:00
Rex Jolliff
45a6e16434 fixed error in stub code
svn path=/trunk/; revision=92
1998-11-13 08:04:16 +00:00
Rex Jolliff
c89930f961 udpate
svn path=/trunk/; revision=91
1998-11-07 21:38:16 +00:00
Rex Jolliff
bc9bf59740 New release from Jason
svn path=/trunk/; revision=90
1998-11-07 20:30:33 +00:00
Rex Jolliff
a998ae77b0 Added unimplemented message to unimplemented functions
svn path=/trunk/; revision=89
1998-11-07 20:29:46 +00:00
Rex Jolliff
7499a5965d added unimplemented messages to all imimplemented functions
svn path=/trunk/; revision=88
1998-11-07 20:28:51 +00:00
Rex Jolliff
f530e60c76 Fixed calls to StartTimer
svn path=/trunk/; revision=87
1998-10-31 22:33:17 +00:00
Rex Jolliff
409861205e no change
svn path=/trunk/; revision=86
1998-10-31 22:32:13 +00:00
Rex Jolliff
33e768c8cd added descriptive text to exception dump
svn path=/trunk/; revision=85
1998-10-31 22:30:08 +00:00
Rex Jolliff
5dd16d52fe added cmd to gen syms
svn path=/trunk/; revision=84
1998-10-31 22:25:30 +00:00
Rex Jolliff
3c0b32b97a (Jason) various changes
svn path=/trunk/; revision=83
1998-10-31 15:54:07 +00:00
Rex Jolliff
b5be07756f (Jason) added sector count to blockdev interface
svn path=/trunk/; revision=82
1998-10-31 15:52:45 +00:00
Rex Jolliff
8134515a1a Used a different constant for number of poll retries
svn path=/trunk/; revision=81
1998-10-31 15:51:23 +00:00
Rex Jolliff
a3fbbaa42d added timer test routines
svn path=/trunk/; revision=80
1998-10-31 15:50:08 +00:00
Rex Jolliff
8b29e69d3d Verified correctness of epoch DOW
svn path=/trunk/; revision=79
1998-10-31 15:47:28 +00:00
Rex Jolliff
e3a11b68b8 Fixed timer constants and repitition code
svn path=/trunk/; revision=78
1998-10-31 15:46:36 +00:00
Rex Jolliff
09215f3126 Fixed large integer conv bug
svn path=/trunk/; revision=77
1998-10-31 15:44:22 +00:00
Rex Jolliff
e68e2e431a Added Fix for >255 sector read/write and first hack at timeout code
svn path=/trunk/; revision=76
1998-10-20 06:00:13 +00:00
Rex Jolliff
267b8c4e8c Fix from brian for broken function
svn path=/trunk/; revision=75
1998-10-20 05:58:53 +00:00
Rex Jolliff
dc5f3e0195 Fixed synchronous I/O bug in ZwWriteFile
svn path=/trunk/; revision=74
1998-10-20 05:56:26 +00:00
Rex Jolliff
74ff8524ad Added serial debugging support
svn path=/trunk/; revision=73
1998-10-20 05:54:29 +00:00
Rex Jolliff
37529daf35 Fixed a problem with buffered io IRPs
svn path=/trunk/; revision=72
1998-10-13 03:24:42 +00:00
Rex Jolliff
d0c8759887 Changed failure status report to print hex
svn path=/trunk/; revision=71
1998-10-12 21:05:58 +00:00
Rex Jolliff
8909f04b2c Fixed debugging messages and other minor changes
svn path=/trunk/; revision=70
1998-10-12 21:04:07 +00:00
Rex Jolliff
e1d692c393 Eliminated a compiler warning
svn path=/trunk/; revision=69
1998-10-12 21:02:34 +00:00
Rex Jolliff
1d9a6c728c changed static functions to standard naming convention
svn path=/trunk/; revision=68
1998-10-12 20:58:27 +00:00
Rex Jolliff
0805f2913e added include for debugging macros
svn path=/trunk/; revision=67
1998-10-12 20:54:51 +00:00
Rex Jolliff
135e1512ef UserEvent and UserIosb were not being set in IoBuildSynchronousFsdRequest
svn path=/trunk/; revision=66
1998-10-12 20:51:28 +00:00
Rex Jolliff
a7dd9bd3f9 added some comment markers in the status codes
svn path=/trunk/; revision=65
1998-10-12 20:50:33 +00:00
Rex Jolliff
6144b903c3 chagned to support local build
svn path=/trunk/; revision=64
1998-10-12 20:40:20 +00:00
Rex Jolliff
3afc66723c more chages to bring up to krnl0012
svn path=/trunk/; revision=62
1998-10-05 14:31:06 +00:00
Rex Jolliff
537bf0fdf6 This commit was generated by cvs2svn to compensate for changes in r58,
which included commits to RCS files with non-trunk default branches.

svn path=/trunk/; revision=59
1998-10-05 04:55:45 +00:00
Rex Jolliff
c38258c97a Initial revision
svn path=/trunk/; revision=56
1998-10-05 04:55:44 +00:00
Rex Jolliff
3f988bd286 brings code in line with release 12
svn path=/trunk/; revision=55
1998-10-05 04:50:07 +00:00
Rex Jolliff
ee81c811cd This commit was generated by cvs2svn to compensate for changes in r52,
which included commits to RCS files with non-trunk default branches.

svn path=/trunk/; revision=53
1998-10-05 04:01:30 +00:00
Rex Jolliff
645218d5c8 Initial revision
svn path=/trunk/; revision=50
1998-10-05 04:00:59 +00:00
Rex Jolliff
5c0fb0f108 general bug fix changes
svn path=/trunk/; revision=49
1998-10-05 03:39:36 +00:00
Rex Jolliff
22ebf085eb First release of the IDE driver
svn path=/trunk/; revision=48
1998-09-20 02:22:48 +00:00
Rex Jolliff
cb0fe70650 Page overlapping MDLs have been fixed
svn path=/trunk/; revision=47
1998-09-20 02:21:36 +00:00
Rex Jolliff
9a55f0f7ed this fixes the problem with NASM invocation in make
svn path=/trunk/; revision=46
1998-09-20 02:19:42 +00:00
Rex Jolliff
7967ac94a2 fixes and changes to support IDE driver
svn path=/trunk/; revision=45
1998-09-15 14:31:18 +00:00
Rex Jolliff
4bbc8ea6ef added pool validation to checkpoint/dprint macro
svn path=/trunk/; revision=44
1998-09-15 14:18:47 +00:00
Rex Jolliff
099d789b13 array definition had incorrect length
svn path=/trunk/; revision=43
1998-09-15 14:17:32 +00:00
Rex Jolliff
6bdaf42c26 cleanup of import
svn path=/trunk/; revision=42
1998-09-13 16:32:10 +00:00
Rex Jolliff
40473b6aba This commit was generated by cvs2svn to compensate for changes in r39,
which included commits to RCS files with non-trunk default branches.

svn path=/trunk/; revision=40
1998-09-13 15:55:55 +00:00
Rex Jolliff
ffc37c2cfd Initial revision
svn path=/trunk/; revision=37
1998-09-13 15:55:36 +00:00
Rex Jolliff
e8652909ce changes to support debugging of ide driver
svn path=/trunk/; revision=36
1998-09-13 02:37:20 +00:00
Rex Jolliff
153b0ad928 ZwReadFile was using Write member of Irp union.
ZwReadFile now returns correct status

svn path=/trunk/; revision=35
1998-09-13 01:17:05 +00:00
Rex Jolliff
ca01965c67 added code to initialize CurrentIrp in DeviceObject.
svn path=/trunk/; revision=34
1998-09-13 01:13:48 +00:00
Rex Jolliff
b903d86810 no specific problems fixed
svn path=/trunk/; revision=33
1998-09-09 02:34:38 +00:00
Rex Jolliff
809b4b1eab This commit was generated by cvs2svn to compensate for changes in r30,
which included commits to RCS files with non-trunk default branches.

svn path=/trunk/; revision=31
1998-09-05 17:34:23 +00:00
Rex Jolliff
bb9cc48934 Initial revision
svn path=/trunk/; revision=28
1998-09-05 17:33:57 +00:00
Rex Jolliff
f29364e917 *** empty log message ***
svn path=/trunk/; revision=27
1998-09-05 17:18:00 +00:00
Rex Jolliff
38389db926 reorganized it a little
svn path=/trunk/; revision=26
1998-09-03 01:47:13 +00:00
Rex Jolliff
50b41bfae6 it is not useful for this to be in the archive
svn path=/trunk/; revision=25
1998-09-03 01:46:19 +00:00
Rex Jolliff
b40b785ec0 Implementation of most of the LargeInt functions
svn path=/trunk/; revision=24
1998-09-03 01:43:54 +00:00
Rex Jolliff
35cc27eee0 This commit was generated by cvs2svn to compensate for changes in r21,
which included commits to RCS files with non-trunk default branches.

svn path=/trunk/; revision=22
1998-08-28 23:24:42 +00:00
Rex Jolliff
bbddb2c838 Initial revision
svn path=/trunk/; revision=19
1998-08-28 23:24:25 +00:00
Rex Jolliff
b4be455beb Release Cleanup
svn path=/trunk/; revision=18
1998-08-25 05:06:39 +00:00
Rex Jolliff
2fe2a748af Release cleanup
svn path=/trunk/; revision=17
1998-08-25 04:59:57 +00:00
Rex Jolliff
4ef8280497 Release cleanup
svn path=/trunk/; revision=16
1998-08-25 04:53:56 +00:00
Rex Jolliff
1189c35dd7 Release cleanup
svn path=/trunk/; revision=15
1998-08-25 04:48:36 +00:00
Rex Jolliff
9cef58c15d Release cleanup
svn path=/trunk/; revision=14
1998-08-25 04:41:53 +00:00
Rex Jolliff
cdafa11dc1 new release cleanup
svn path=/trunk/; revision=13
1998-08-25 04:37:43 +00:00
Rex Jolliff
b5efc5cfc5 This commit was generated by cvs2svn to compensate for changes in r10,
which included commits to RCS files with non-trunk default branches.

svn path=/trunk/; revision=11
1998-08-25 04:27:41 +00:00
Rex Jolliff
9e7d29f65a Initial revision
svn path=/trunk/; revision=8
1998-08-25 04:27:26 +00:00
Rex Jolliff
336c153bd9 More work needed before alpha testing
svn path=/trunk/; revision=7
1998-08-25 04:06:44 +00:00
The ReactOS Manager
8e97300321 Update from the kernel team
svn path=/trunk/; revision=6
1998-08-12 22:43:38 +00:00
111 changed files with 0 additions and 43361 deletions

View File

@@ -1 +0,0 @@
loaders\dos\loadros kernel\kimage.bin %1 %2 %3 %4

View File

@@ -1,340 +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,140 +0,0 @@
This file attempts to document the functions made publically available by
the various subsystems.
* Formatted I/O operations *
NAME: int vsprintf(char *buf, const char *fmt, va_list args)
NAME: int sprintf(char* buf, const char* fmt, ...)
WHERE: internal/kernel.h
FUNCTION: The same as the standard c library versions
* PIO operations *
NAME: in[b/w/l](port)
WHERE: internal/io.h
FUNCTION: Read an IO port of the specified size (byte/word or long)
RETURNS: The value read
NAME: out[b/w/l](port,val)
WHERE: internal/io.h
FUNCTION: Write an IO port of the specified size (byte/word or long)
NAME: in_p[b/w/l](port)
WHERE: internal/io.h
FUNCTION: Read an IO port of the specified size (byte/word or long) with
a pause
RETURNS: The value read
NAME: out_p[b/w/l](port,val)
WHERE: internal/io.h
FUNCTION: Write an IO port of the specified size (byte/word or long) with
a pause
* Bit operations *
NAME: int set_bit(int nr, void* addr)
NAME: int clear_bit(int nr, void* addr)
NAME: int change_bit(int nr, void* addr)
WHERE: internal/bitops.h>
FUNCTION: Operate on a bit in the word pointed to by addr
RETURN: 0 if the bit was cleared before the operations
non-zero otherwise
* Debugging functions *
NAME: DPRINT(fmt,....)
WHERE: internal/debug.h
FUNCTION: Outputs a string to the console if NDEBUG isn't defined before
including internal/debug.h, a NOP otherwise
ARGUMENTS: The same as printf
NAME: printk
WHERE: internal/kernel.h
FUNCTION: Outputs a string to the console
ARGUMENTS: The same as printf
* Memory managment functions *
NAME: unsigned int physical_to_linear(unsigned int paddr)
WHERE: hal/page.h
FUNCTION: Converts a physical address to a linear one
RECEIVES:
paddr = the physical address to convert
RETURNS: A virtual address where the memory at that physical address can be
accessed
NAME: void* ExAllocatePool(unsigned int size, unsigned int type = 0);
WHERE: internal/pool.h
FUNCTION: Allocates a block of memory
RECEIVES:
size = the size of the block to allocate
type = will be whether to allocate pagable memory
RETURNS: The address of the block
NOTE: This isn't interrupt safe
NAME: void ExFreePool(void* block)
WHERE: internal/pool.h
FUNCTION: Frees a block of memory
NAME: void free_page(unsigned int physical_base, unsigned int nr = 1)
WHERE: internal/mm.h
FUNCTION: Adds a continuous range of physical memory to the free list
NAME: unsigned int get_free_page(void)
WHERE: internal/mm.h
FUNCTION: Gets a free page
RETURNS: Its physical address
NAME: unsigned int get_page_physical_address(unsigned int vaddr)
WHERE: internal/mm.h
FUNCTION: Gets the physical address of a page
NAME: void mark_page_not_writable(unsigned int vaddr)
WHERE: internal/mm.h
FUNCTION: Prevent writing the page
* DMA functions *
NAME: unsigned int get_dma_page(unsigned int max_address)
WHERE: internal/mm.h
FUNCTION: Gets a page with a restricted physical address i.e. suitable for
dma
RETURNS: The physical address of the page
NAME: void disable_dma(unsigned int dmanr)
WHERE: internal/dma.h
FUNCTION: Disables the specified dma channel
NAME: void enable_dma(unsigned int dmanr)
WHERE: internal/dma.h
FUNCTION: Enables the specified dma channel
NAME: void clear_dma_ff(unsigned int dmanr)
WHERE: internal/dma.h
FUNCTION: Clear the dma flip-flop
NAME: void set_dma_mode(unsigned int dmanr, char mode)
WHERE: internal/dma.h
FUNCTION: Sets the type of dma transfer
NAME: void set_dma_page(unsigned int dmanr, char pagenr)
WHERE: internal/dma.h
FUNCTION: Set only the page register bits of the transfer address
NAME: void set_dma_addr(unsigned int dmanr, unsigned int a)
WHERE: internal/dma.h
FUNCTION: Set the transfer address for dma
NOTE: Assumes flip-flop is clear
NAME: void set_dma_count(unsigned int dmanr, unsigned int count)
WHERE: internal/dma.h
FUNCTION: Sets the size of the transfer
ARGUMENTS:
count = the number of bytes to transfer
NOTE: Count must be even for channels 5-7
NAME: int get_dma_residue(unsigned int dmanr)
WHERE: internal/dma.h
FUNCTION: Gets the residue remaining after a dma transfer on the channel

View File

@@ -1,2 +0,0 @@
* Kernel bugs not fixed

View File

@@ -1,114 +0,0 @@
Kernel Development FAQ (for v0.0.7)
This attempts to answer some of the common questions people developing for
the kernel might want to ask (or at least what I think they should ask).
Obviously I can only detail those parts which I have written so other
developers please fill in the gaps.
Q: What is this, what are you people, what's going on
A: This is the ReactOS, an operating system intended as a clone of windows
NT. See the project website (http://www.sid-dis.com/reactos/) for more details.
Q: Why ReactOS
A: To condemn Bill Gates to penury.
Q: What do I need to compile the kernel
A: DJGPP, get it from http://www.delorie.com/djgpp
Q: How do I compile the kernel
A: Unpack the zip. It is important not to install the kernel in the same
directory as a previous version, this has caused a bit of confusion in the
past. Edit the makefile in the top level directory, in particular select the
correct host to build from. Then run make in the top directory
Q: What files are created when I make the kernel
A: The following files are created in the kernel directory
kimage = the kernel as a coff executable
kimage.bin = the kernel as a raw binary image
kernel.sym = a list of the kernel symbols
Q: How do I load the kernel
A: Run the boot.bat batch file.
Q: Does it boot from disk
A: Not at the moment.
Q: When I run the kernel it crashes
A: The kernel (at the moment) can only be loaded from a clean system. That
is one without EMM386 or any version of windows loaded. A quick way to
ensure this (if you have windows 95) is to set the program to run in msdos
mode and specify an empty config.sys and autoexec.bat. See the windows help
for more information.
If you do that and the problem persists then contact the kernel team
(ros-kernel@sid-dis.com) as it is probably a bug in the kernel
Q6: How do I load a module with the kernel
A: Add the names of any modules to be loaded to the command line of boot.bat.
Q7: I want to add code to the kernel, how do I get it to be compiled
A: You will need to edit the Makefile in kernel directory. There should be
a statement like this
OBJECTS = hal/head.o hal/exp.o kernel/vsprintf.o \
....
kernel/irqhand.o hal/page.o mm/virtual.o kernel/error.o \
kernel/exports.o kernel/module.o
Add the name of the object file (the file produced when your code is
compiled) to the end of the statement (in this case after kernel/module.o).
If you need to go onto a new line then add a slash to the end of the
previous line. It is also very important to use an editor which preserves
tabs.
Q8: I want to add code to the kernel, how do I make it official
A: Contact the kernel mailing list ros-kernel@sid-dis.com or our coordinator
dwinkley@whitworth.edu. If it is for a specific section then the kernel
website (http://www.geocities.com/SiliconValley/Peaks/1957) has a list of
those working on individual areas, you might what to contact one of them
instead.
Q9: What header files should I use
A: Don't include the usual DJGPP headers like stdio.h unless you are using
something compiler based like stdargs.h. To use the DJGPP headers requires
linking with libc which is useless in kernel mode.
All the header files are in the top-level include directory which is laid
out like this
include = general win32 api declarations
include/internal = private kernel headers
include/internal/hal = HAL headers
include/ddk = header files with declarations for modules
There should be a file called api.txt which documents all of the functions
(and which header files they need).
Q11: I want to export my function for modules to use, how do I do that
A: Add the function to the list in kernel/exports.lst, then remake the
kernel. Note the function must be declared as extern "C".
Q12: I want to make my functions part of the kernel interface to user mode,
A: That section isn't finished yet, though it will probably mean adding a
pointer to the function and the size of its parameters to a internal table
somewhere.
Q14: I want to write a module, what are the guidelines
A: See modules.txt in this directory
Q15: I want to write an ISR (interrupt service routine)
A: See irq.txt in this directory
Q16: I want to use DMA
A: Firstly this answer covers only DMA via the dma chips *not*
busmaster DMA.
To program the dma chip use the functions in internal/dma.h (look in api.txt
for details). PC DMA can only go to memory with a physical address below
1mb (or 16mb on some systems), use the get_dma_page to allocate this kind
of memory.
Q17: You haven't answered my question
A: Send your questions to ros-kernel@sid-dis.com
- David Welch (welch@mcmail.com)

View File

@@ -1,10 +0,0 @@
This document describes the implementation of the memory managment
* ReactOS memory map
0x00000000 - 0xc0000000 = User memory
0xc0000000 - 0xd0000000 = Kernel memory
0xd0000000 - 0xffffffff = Identify map of physical memory
*

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
This contains documentation describing the internals of the various kernel
subsystems and a few other useful bits of information.

View File

@@ -1,135 +0,0 @@
** Introduction
This attempts to document the ReactOS irq handling. As of v0.0.8 this has
changed to be more nt like, I will attempt to summarize the new
implementation for those unavailable with nt device driver writing. Note,
ReactOS doesn't have an exact implementation but the omissions are, except
where noted, not user visible.
** Steps in grabbing an irq vector
* Call HalConnectInterrupt
PROTOTYPE:
ULONG HalGetInterruptVector(INTERFACE_TYPE InterfaceType,
ULONG BusNumber,
ULONG BusInterruptLevel,
ULONG BusInterruptVector,
OUT PKIRQL Irql,
OUT PKAFFINITY Affinity)
PURPOSE:
Translates a bus dependant interrupt vector to a system vector
ARGUMENTS:
InterfaceType = Type of bus to which the device to receive interrupts
from is connected to. Currently only 'Internal' is
recognized
BusNumber = Number of the bus the device is connected to
(currently ignored)
BusInterruptLevel = Bus specific interrupt level (currently ignored)
BusInterruptVector = Bus specific vector. Currently this is the same
as the normal vector (09 is the keyboard vector
for example)
Irql = On return contains the DIRQL for the vector
Affinity = On return contains the affinity mask for the vector
(currently unimplemented)
RETURNS:
The system mapped vector
* Call IoConnectInterrupt
PROTOTYPE:
NTSTATUS IoConnectInterrupt(OUT PKINTERRUPT* InterruptObject,
PKSERVICE_ROUTINE ServiceRoutine,
PVOID ServiceContext,
PKSPIN_LOCK SpinLock,
ULONG Vector,
KIRQL Irql,
KIRQL SynchronizeIrql,
KINTERRUPT_MODE InterruptMode,
BOOLEAN ShareVector,
KAFFINITY ProcessorEnableMask,
BOOLEAN FloatingSave)
PURPOSE:
Connect a service routine to an interrupt vector
ARGUMENTS:
InterruptObject = Points to an object describes the interrupt on
return
ServiceRoutine = Function to be called when the device interrupts
ServiceContext = Parameters to be passed to the service routine
SpinLock = Should be NULL
Vector = System mapped vector returned from HalGetInterruptVector
Irql = DIRQL returned from HalGetInterruptVector
SynchronizeIrql = Should be the same as Irql
InterruptMode = Device interrupt type (currently ignored)
ShareVector = True if the interrupt vector can shared
ProcessorEnableMask = Currently ignored
FloatingSave = Should be false
RETURNS: Status
* Sample code for snarfing an interrupt vector
void grab_my_irq()
{
ULONG MappedIrq;
KIRQL Dirql;
KAFFINITY Affinity;
PKINTERRUPT IrqObject;
MappedIrq = HalGetInterruptVector(Internal,
0,
0,
MY_VECTOR,
&Dirql,
&Affinity);
IoConnectInterrupt(&IrqObject,
my_irq_service_routine,
my_context,
NULL,
MappedIrq,
Dirql,
Dirql,
0,
FALSE, // Not sharable
Affinity,
FALSE);
}
** Designing an interrupt service routine
An interrupt service routine should have the following prototype
BOOLEAN my_irq_service_routine(PKINTERRUPT Interrupt,
PVOID ServiceContext);
ARGUMENTS:
Interrupt = The same as the object returned from the
IoConnectInterrupt
ServiceContext = A user defined parameters
(passed to IoConnectInterrupt)
RETURNS:
True if it handled the interrupt, false if it should be passed onto
other devices sharing the same vector
NOTES:
While an isr is executing all devices of a lower or equal priority
can't interrupt. For this reason it is important that an isr
should complete in a short an interval as possible. The set of
routines an isr can call is also restricted.

View File

@@ -1,21 +0,0 @@
This document describes the state of a uniprocessor PC at each of the IRQ
levels supported by the ReactOS kernel
PASSIVE_LEVEL: IF bit clear in the processor flags
All irqs umasked at the PIC
APC_LEVEL: Unknown
WAKE_LEVEL: Unknown
DISPATCH_LEVEL: IF bit clear in the processor flags
All irqs umasked at the PIC
Thread dispatching disabled
DIRQL (Device specific IRQ level):
IF bit clear in the processor flags
Device's irq and all lower priority irqs masked at the PIC
Thread dispatching disabled
HIGH_LEVEL: IF bit set in the processor flags
All irqs masked at the PIC
Thread dispatching disabled

View File

@@ -1,33 +0,0 @@
** Introduction
This is (an incomplete) guide to writing device drivers (and other kernel
extensions) for ReactOS.
** Setting up the build environment
Create a new subdirectory in the modules directory and copy one of the
existing module makefiles into it. Customize the makefile to compile the
source files for the module. Note: generally it is not necessary to specify
the compiler or compiler flags to use.
** Initializing a module
On loading the kernel will call the module function
PROTOTYPE:
NTSTATUS ModuleEntry(PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath)
PURPOSE:
Initializing the module
ARGUMENTS:
DriverObject = Pointer to an object describing the driver
RegistryPath = Currently NULL
RETURNS:
STATUS_SUCCESS = If the module initialized successfully

View File

@@ -1,31 +0,0 @@
* Kernel things implemented [exceptions in brackets]
Spinlocks [Uniprocessor only]
IRQ levels [Not APC_LEVEL or WAKE_LEVEL, uniprocessor only]
ISRs [Partial, uniprocessor only]
Timers [Untested]
DPCs [Untested]
Objects [Partial]
Namespace [Partial]
Handle tables [One process only]
Threads [Some initial work]
RTL list functions [All except sequenced lists]
Zones [Untested]
Memory pool [Working but semantics partially incompatiable]
Device objects [Some but no support for layering]
IRP [Partial]
Memory sections [Partial, no file mappings]
PCI interface [Probes but no support]
CreateFile API [Device only]
ReadFile/WriteFile API [Device only]
MDL functions [Untested]
* Kernel things unimplemented (partial)
Add support for source level debugging to Bochs
Support for remote debugging
Process managment
Dispatcher objects (Mutex, Semaphore etc)
Investigate user and kernel mode APCs
Asynchronous I/O
Optimization

View File

@@ -1,16 +0,0 @@
subject wstring.zip
author Boudewijn Dekker
date 06-06-98
I wrote some inline wide character string functions. It are modified version
of the ones in string.h. I added four more function nl stricmp, strnicmp,
wcsicmp, and wcsnicmp. These are the case insensitive variants of
strcmp, strncmp and wcscmp, wcsncmp. I tested all the functions but I
would urge anyone to tested again. I removed an extern specifier
__wcstok and strtok cause I it caused an compilation error when
using strtok or wcstok. Please could someone see if this correct.
I also used these string functions in lstring api functions.
Boudewijn Dekker

File diff suppressed because it is too large Load Diff

View File

@@ -1,572 +0,0 @@
/*
Base.h
Base definitions
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
Author: Scott Christley <scottc@net-community.com>
This file is part of the Windows32 API Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 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
Library General Public License for more details.
If you are interested in a warranty or support for this source code,
contact Scott Christley <scottc@net-community.com> for more information.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _GNU_H_WINDOWS32_BASE
#define _GNU_H_WINDOWS32_BASE
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifndef NULL
#ifdef __cplusplus
#define NULL (0)
#else
#define NULL ((void *)0)
#endif
#endif /* !NULL */
#define FALSE 0
#define TRUE 1
#ifndef RC_INVOKED
/* typedef ACMDRIVERENUMCB;
typedef ACMDRIVERPROC;
typedef ACMFILERCHOOSEHOOKPROC;
typedef ACMFILTERENUMCB;
typedef ACMFILTERTAGENUMCB;
typedef ACMFORMATCHOOSEHOOKPROC;
typedef ACMFORMATENUMCB;
typedef ACMFORMATTAGENUMCB;
typedef APPLET_PROC;
*/
typedef unsigned short ATOM;
/* Changed from BOOL to WINBOOL to avoid Objective-C conflict */
typedef int WINBOOL;
typedef unsigned char BOOLEAN;
typedef unsigned char BYTE;
typedef unsigned long CALTYPE;
typedef unsigned long CALID;
typedef char CCHAR;
typedef unsigned long COLORREF;
#define CONST const
/* Check VOID before defining CHAR, SHORT, and LONG */
#ifndef VOID
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
#endif
/*
typedef CTRYID;
typedef DLGPROC;
*/
typedef unsigned int DWORD; /* was unsigned long */
typedef double DWORDLONG, *PDWORDLONG;
/*
typedef EDITWORDBREAKPROC;
typedef ENHMFENUMPROC;
typedef ENUMRESLANGPROC;
typedef ENUMRESNAMEPROC;
typedef ENUMRESTYPEPROC;
*/
typedef float FLOAT;
/* typedef GLOBALHANDLE; */
typedef void *HANDLE;
typedef HANDLE HACCEL;
typedef HANDLE HBITMAP;
typedef HANDLE HBRUSH;
typedef HANDLE HCOLORSPACE;
typedef HANDLE HCONV;
typedef HANDLE HCONVLIST;
typedef HANDLE HCURSOR;
typedef HANDLE HDBC;
typedef HANDLE HDC;
typedef HANDLE HDDEDATA;
typedef HANDLE HDESK;
typedef HANDLE HDROP;
typedef HANDLE HDWP;
typedef HANDLE HENHMETAFILE;
typedef HANDLE HENV;
typedef int HFILE;
typedef HANDLE HFONT;
typedef HANDLE HGDIOBJ;
typedef HANDLE HGLOBAL;
typedef HANDLE HGLRC;
typedef HANDLE HHOOK;
typedef HANDLE HICON;
typedef HANDLE HIMAGELIST;
typedef HANDLE HINSTANCE;
typedef HANDLE HKEY, *PHKEY;
typedef HANDLE HKL;
typedef HANDLE HLOCAL;
typedef HANDLE HMENU;
typedef HANDLE HMETAFILE;
typedef HANDLE HMODULE;
typedef HANDLE HPALETTE;
typedef HANDLE HPEN;
typedef HANDLE HRASCONN;
typedef long HRESULT;
typedef HANDLE HRGN;
typedef HANDLE HRSRC;
typedef HANDLE HSTMT;
typedef HANDLE HSZ;
typedef HANDLE HWINSTA;
typedef HANDLE HWND;
typedef int INT;
typedef unsigned short LANGID;
typedef DWORD LCID;
typedef DWORD LCTYPE;
/* typedef LOCALHANDLE */
typedef double LONGLONG, *PLONGLONG;
typedef unsigned short *LP;
typedef long LPARAM;
typedef WINBOOL *LPBOOL;
typedef BYTE *LPBYTE;
typedef CONST CHAR *LPCCH;
typedef CHAR *LPCH;
typedef COLORREF *LPCOLORREF;
typedef const char *LPCSTR;
typedef char* PCSZ;
#ifdef UNICODE
typedef const unsigned short *LPCTSTR;
#else
typedef const char *LPCTSTR;
#endif /* UNICODE */
typedef const unsigned short *LPCWCH;
typedef const unsigned short *LPCWSTR;
typedef DWORD *LPDWORD;
/* typedef LPFRHOOKPROC; */
typedef HANDLE *LPHANDLE;
/* typedef LPHANDLER_FUNCTION; */
typedef int *LPINT;
typedef long *LPLONG;
typedef char *LPSTR;
#ifdef UNICODE
typedef unsigned short *LPTCH;
typedef unsigned short *LPTSTR;
#else
typedef char *LPTCH;
typedef char *LPTSTR;
#endif /* UNICODE */
typedef long LRESULT;
typedef void *LPVOID;
typedef const void *LPCVOID;
typedef unsigned short *LPWCH;
typedef unsigned short *LPWORD;
typedef unsigned short *LPWSTR;
typedef unsigned short *PWSTR;
/* typedef NPSTR; */
typedef unsigned short *NWPSTR;
typedef WINBOOL *PWINBOOL;
typedef BYTE *PBOOLEAN;
typedef BYTE *PBYTE;
typedef const CHAR *PCCH;
typedef CHAR *PCH;
typedef CHAR *PCHAR;
typedef const char *PCSTR;
typedef const unsigned short *PCWCH;
typedef const unsigned short *PCWSTR;
typedef DWORD *PDWORD;
typedef float *PFLOAT;
typedef HANDLE *PHANDLE;
/* typedef PHKEY; */
typedef int *PINT;
/* typedef LCID *PLCID; */
typedef long *PLONG;
typedef short *PSHORT;
/* typedef PSID; */
typedef char *PSTR;
typedef char *PSZ;
#ifdef UNICODE
typedef unsigned short *PTBYTE;
typedef unsigned short *PTCH;
typedef unsigned short *PTCHAR;
typedef unsigned short *PTSTR;
#else
typedef unsigned char *PTBYTE;
typedef char *PTCH;
typedef char *PTCHAR;
typedef char *PTSTR;
#endif /* UNICODE */
typedef unsigned char *PUCHAR;
typedef unsigned int *PUINT;
typedef unsigned long *PULONG;
typedef unsigned short *PUSHORT;
typedef void *PVOID;
typedef unsigned short *PWCH;
typedef unsigned short *PWCHAR;
typedef unsigned short *PWORD;
/*
typedef PWSTR;
typedef REGSAM;
*/
typedef short RETCODE;
typedef HANDLE SC_HANDLE;
typedef LPVOID SC_LOCK;
typedef SC_HANDLE *LPSC_HANDLE;
typedef DWORD SERVICE_STATUS_HANDLE;
/* typedef SPHANDLE; */
#ifdef UNICODE
typedef unsigned short TBYTE;
typedef unsigned short TCHAR;
typedef unsigned short BCHAR;
#else
typedef unsigned char TBYTE;
typedef char TCHAR;
typedef BYTE BCHAR;
#endif /* UNICODE */
typedef unsigned char UCHAR;
typedef unsigned int UINT;
typedef unsigned long ULONG;
typedef unsigned short USHORT;
typedef unsigned short WCHAR;
typedef unsigned short WORD;
typedef unsigned int WPARAM;
/* typedef YIELDPROC; */
/* Only use __stdcall under WIN32 compiler */
#ifdef i386
#define STDCALL __attribute__ ((stdcall))
#define CDECL __attribute((cdecl))
#define CALLBACK WINAPI
#define PASCAL WINAPI
#else
#define STDCALL
#define CDECL
#define CALLBACK
#define PASCAL
#endif
#define WINAPI STDCALL
#define APIENTRY STDCALL
#define WINGDIAPI
#define _export
/*
Enumerations
*/
typedef enum _ACL_INFORMATION_CLASS {
AclRevisionInformation = 1,
AclSizeInformation
} ACL_INFORMATION_CLASS;
typedef enum _MEDIA_TYPE {
Unknown,
F5_1Pt2_512,
F3_1Pt44_512,
F3_2Pt88_512,
F3_20Pt8_512,
F3_720_512,
F5_360_512,
F5_320_512,
F5_320_1024,
F5_180_512,
F5_160_512,
RemovableMedia,
FixedMedia
} MEDIA_TYPE;
#define RASCS_DONE 0x2000
#define RASCS_PAUSED 0x1000
typedef enum _RASCONNSTATE {
RASCS_OpenPort = 0,
RASCS_PortOpened,
RASCS_ConnectDevice,
RASCS_DeviceConnected,
RASCS_AllDevicesConnected,
RASCS_Authenticate,
RASCS_AuthNotify,
RASCS_AuthRetry,
RASCS_AuthCallback,
RASCS_AuthChangePassword,
RASCS_AuthProject,
RASCS_AuthLinkSpeed,
RASCS_AuthAck,
RASCS_ReAuthenticate,
RASCS_Authenticated,
RASCS_PrepareForCallback,
RASCS_WaitForModemReset,
RASCS_WaitForCallback,
RASCS_Projected,
RASCS_StartAuthentication,
RASCS_CallbackComplete,
RASCS_LogonNetwork,
RASCS_Interactive = RASCS_PAUSED,
RASCS_RetryAuthentication,
RASCS_CallbackSetByCaller,
RASCS_PasswordExpired,
RASCS_Connected = RASCS_DONE,
RASCS_Disconnected
} RASCONNSTATE ;
typedef enum _RASPROJECTION {
RASP_Amb = 0x10000,
RASP_PppNbf = 0x803F,
RASP_PppIpx = 0x802B,
RASP_PppIp = 0x8021
} RASPROJECTION ;
typedef enum _SECURITY_IMPERSONATION_LEVEL {
SecurityAnonymous,
SecurityIdentification,
SecurityImpersonation,
SecurityDelegation
} SECURITY_IMPERSONATION_LEVEL;
typedef enum _SID_NAME_USE {
SidTypeUser = 1,
SidTypeGroup,
SidTypeDomain,
SidTypeAlias,
SidTypeWellKnownGroup,
SidTypeDeletedAccount,
SidTypeInvalid,
SidTypeUnknown
} SID_NAME_USE, *PSID_NAME_USE;
typedef enum _TOKEN_INFORMATION_CLASS {
TokenUser = 1,
TokenGroups,
TokenPrivileges,
TokenOwner,
TokenPrimaryGroup,
TokenDefaultDacl,
TokenSource,
TokenType,
TokenImpersonationLevel,
TokenStatistics
} TOKEN_INFORMATION_CLASS;
typedef enum tagTOKEN_TYPE {
TokenPrimary = 1,
TokenImpersonation
} TOKEN_TYPE;
#endif /* ! defined (RC_INVOKED) */
/*
Macros
*/
#define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) (void)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(id), (LPARAM)(NMHDR FAR*)(pnmhdr))
#define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
#define GetGValue(rgb) ((BYTE) (((WORD) (rgb)) >> 8))
#define GetRValue(rgb) ((BYTE) (rgb))
#define RGB(r, g ,b) ((DWORD) (((BYTE) (r) | ((WORD) (g) << 8)) | (((DWORD) (BYTE) (b)) << 16)))
#define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) (fn)((hwnd), (int)(wParam), (NMHDR FAR*)(lParam))
#define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF))
#define HIWORD(l) ((WORD) (((DWORD) (l) >> 16) & 0xFFFF))
#define LOBYTE(w) ((BYTE) (w))
#define LOWORD(l) ((WORD) (l))
#define MAKELONG(a, b) ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16))
#define MAKEWORD(a, b) ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8))
/* original Cygnus headers also had the following defined: */
#define SEXT_HIWORD(l) ((((int)l) >> 16))
#define ZEXT_HIWORD(l) ((((unsigned int)l) >> 16))
#define SEXT_LOWORD(l) ((int)(short)l)
#define INDEXTOOVERLAYMASK(i) ((i) << 8)
#define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
#define MAKEINTATOM(i) (LPTSTR) ((DWORD) ((WORD) (i)))
#define MAKEINTRESOURCE(i) (LPTSTR) ((DWORD) ((WORD) (i)))
#define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p))
#define PRIMARYLANGID(lgid) ((WORD )(lgid) & 0x3ff)
#define SUBLANGID(lgid) ((WORD )(lgid) >> 10)
#define LANGIDFROMLCID(lcid) ((WORD) (lcid))
#define SORTIDFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) & 0x000FFFFF) >> 16))
#define MAKELCID(lgid, srtid) ((DWORD)((((DWORD)((WORD)(srtid))) << 16) | ((DWORD)((WORD)(lgid)))))
#define MAKELPARAM(l, h) ((LPARAM) MAKELONG(l, h))
#define MAKELRESULT(l, h) ((LRESULT) MAKELONG(l, h))
#define MAKEPOINTS(l) (*((POINTS FAR *) & (l)))
#define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
#define MAKEWPARAM(l, h) ((WPARAM) MAKELONG(l, h))
#ifndef max
#define max(a, b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a, b) (((a) < (b)) ? (a) : (b))
#endif
#define PALETTEINDEX(i) ((COLORREF) (0x01000000 | (DWORD) (WORD) (i)))
#define PALETTERGB(r, g, b) (0x02000000 | RGB(r, g, b))
#define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); (pt).y = (SHORT) HIWORD(pts);}
#define POINTTOPOINTS(pt) (MAKELONG((short) ((pt).x), (short) ((pt).y)))
#define INDEXTOOVERLAYMASK(i) ((i) << 8)
#define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
#ifdef UNICODE
#define TEXT(quote) L##quote
#else
#define TEXT(quote) quote
#endif
#ifndef RC_INVOKED
/*
Definitions for callback procedures
*/
typedef int CALLBACK (*BFFCALLBACK) (HWND, UINT, LPARAM, LPARAM);
typedef UINT CALLBACK (*LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef UINT CALLBACK (*LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef DWORD CALLBACK (*PTHREAD_START_ROUTINE) (LPVOID);
typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
typedef DWORD CALLBACK (*EDITSTREAMCALLBACK) (DWORD, LPBYTE, LONG, LONG);
typedef UINT CALLBACK (*LPFRHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef UINT CALLBACK (*LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef UINT CALLBACK (*LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef UINT CALLBACK (*LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
typedef WINBOOL CALLBACK (*DLGPROC) (HWND, UINT, WPARAM, LPARAM);
typedef int CALLBACK (*PFNPROPSHEETCALLBACK) (HWND, UINT, LPARAM);
typedef VOID CALLBACK (*LPSERVICE_MAIN_FUNCTION) (DWORD, LPTSTR);
typedef int CALLBACK (*PFNTVCOMPARE) (LPARAM, LPARAM, LPARAM);
typedef LRESULT CALLBACK (*WNDPROC) (HWND, UINT, WPARAM, LPARAM);
typedef int CALLBACK (*FARPROC)(void);
typedef FARPROC PROC;
typedef WINBOOL CALLBACK (*ENUMRESTYPEPROC) (HANDLE, LPTSTR, LONG);
typedef WINBOOL CALLBACK (*ENUMRESNAMEPROC) (HANDLE, LPCTSTR, LPTSTR, LONG);
typedef WINBOOL CALLBACK (*ENUMRESLANGPROC) (HANDLE, LPCTSTR, LPCTSTR, WORD, LONG);
typedef FARPROC DESKTOPENUMPROC;
typedef WINBOOL CALLBACK (*ENUMWINDOWSPROC) (HWND, LPARAM);
typedef WINBOOL CALLBACK (*ENUMWINDOWSTATIONPROC) (LPTSTR, LPARAM);
typedef VOID CALLBACK (*SENDASYNCPROC) (HWND, UINT, DWORD, LRESULT);
typedef VOID CALLBACK (*TIMERPROC) (HWND, UINT, UINT, DWORD);
typedef FARPROC GRAYSTRINGPROC;
typedef WINBOOL CALLBACK (*DRAWSTATEPROC) (HDC, LPARAM, WPARAM, int, int);
typedef WINBOOL CALLBACK (*PROPENUMPROCEX) (HWND, LPCTSTR, HANDLE, DWORD);
typedef WINBOOL CALLBACK (*PROPENUMPROC) (HWND, LPCTSTR, HANDLE);
typedef LRESULT CALLBACK (*HOOKPROC) (int, WPARAM, LPARAM);
typedef VOID CALLBACK (*ENUMOBJECTSPROC) (LPVOID, LPARAM);
typedef VOID CALLBACK (*LINEDDAPROC) (int, int, LPARAM);
typedef WINBOOL CALLBACK (*ABORTPROC) (HDC, int);
typedef UINT CALLBACK (*LPPAGEPAINTHOOK) (HWND, UINT, WPARAM, LPARAM );
typedef UINT CALLBACK (*LPPAGESETUPHOOK) (HWND, UINT, WPARAM, LPARAM );
typedef int CALLBACK (*ICMENUMPROC) (LPTSTR, LPARAM);
typedef LONG (*EDITWORDBREAKPROCEX) (char *, LONG, BYTE, INT);
typedef int CALLBACK (*PFNLVCOMPARE) (LPARAM, LPARAM, LPARAM);
typedef WINBOOL CALLBACK (*LOCALE_ENUMPROC) (LPTSTR);
typedef WINBOOL CALLBACK (*CODEPAGE_ENUMPROC) (LPTSTR);
typedef WINBOOL CALLBACK (*DATEFMT_ENUMPROC) (LPTSTR);
typedef WINBOOL CALLBACK (*TIMEFMT_ENUMPROC) (LPTSTR);
typedef WINBOOL CALLBACK (*CALINFO_ENUMPROC) (LPTSTR);
typedef WINBOOL CALLBACK (*PHANDLER_ROUTINE) (DWORD);
typedef WINBOOL CALLBACK (*LPHANDLER_FUNCTION) (DWORD);
typedef UINT CALLBACK (*PFNGETPROFILEPATH) (LPCTSTR, LPSTR, UINT);
typedef UINT CALLBACK (*PFNRECONCILEPROFILE) (LPCTSTR, LPCTSTR, DWORD);
typedef WINBOOL CALLBACK (*PFNPROCESSPOLICIES) (HWND, LPCTSTR, LPCTSTR, LPCTSTR, DWORD);
#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
#define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")
#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege")
#define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege")
#define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege")
#define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege")
#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")
#define SE_TCB_NAME TEXT("SeTcbPrivilege")
#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege")
#define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege")
#define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege")
#define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege")
#define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")
#define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege")
#define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege")
#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")
#define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege")
#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")
#define SE_RESTORE_NAME TEXT("SeRestorePrivilege")
#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")
#define SE_DEBUG_NAME TEXT("SeDebugPrivilege")
#define SE_AUDIT_NAME TEXT("SeAuditPrivilege")
#define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege")
#define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege")
#define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege")
#define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
#define SERVICES_FAILED_DATABASEW L"ServicesFailed"
#define SERVICES_ACTIVE_DATABASEA "ServicesActive"
#define SERVICES_FAILED_DATABASEA "ServicesFailed"
#define SC_GROUP_IDENTIFIERW L'+'
#define SC_GROUP_IDENTIFIERA '+'
#ifdef UNICODE
#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW
#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW
#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW
#else
#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA
#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA
#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA
#endif /* UNICODE */
/* ---------------------------------- */
/* From ddeml.h in old Cygnus headers */
typedef void (*CALLB) (void);
typedef CALLB PFNCALLBACK;
typedef WINBOOL SECURITY_CONTEXT_TRACKING_MODE;
/* End of stuff from ddeml.h in old Cygnus headers */
/* ----------------------------------------------- */
typedef FARPROC WNDENUMPROC;
typedef FARPROC ENHMFENUMPROC;
typedef DWORD CCSTYLE, *PCCSTYLE, *LPCCSTYLE;
typedef DWORD CCSTYLEFLAGA, *PCCSTYLEFLAGA, *LPCCSTYLEFLAGA;
#define DECLARE_HANDLE(s) typedef HANDLE s
#endif /* ! defined (RC_INVOKED) */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _GNU_H_WINDOWS32_BASE */

View File

@@ -1,339 +0,0 @@
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#ifndef __dj_include_coff_h_
#define __dj_include_coff_h_
#ifdef __cplusplus
extern "C" {
#endif
//#ifndef __dj_ENFORCE_ANSI_FREESTANDING
//#ifndef __STRICT_ANSI__
//#ifndef _POSIX_SOURCE
/*** coff information for Intel 386/486. */
/********************** FILE HEADER **********************/
struct external_filehdr {
unsigned short f_magic; /* magic number */
unsigned short f_nscns; /* number of sections */
unsigned long f_timdat; /* time & date stamp */
unsigned long f_symptr; /* file pointer to symtab */
unsigned long f_nsyms; /* number of symtab entries */
unsigned short f_opthdr; /* sizeof(optional hdr) */
unsigned short f_flags; /* flags */
};
/* Bits for f_flags:
* F_RELFLG relocation info stripped from file
* F_EXEC file is executable (no unresolved external references)
* F_LNNO line numbers stripped from file
* F_LSYMS local symbols stripped from file
* F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax)
*/
#define F_RELFLG (0x0001)
#define F_EXEC (0x0002)
#define F_LNNO (0x0004)
#define F_LSYMS (0x0008)
#define I386MAGIC 0x14c
#define I386AIXMAGIC 0x175
#define I386BADMAG(x) (((x).f_magic!=I386MAGIC) && (x).f_magic!=I386AIXMAGIC)
#define FILHDR struct external_filehdr
#define FILHSZ sizeof(FILHDR)
/********************** AOUT "OPTIONAL HEADER" **********************/
typedef struct
{
unsigned short magic; /* type of file */
unsigned short vstamp; /* version stamp */
unsigned long tsize; /* text size in bytes, padded to FW bdry*/
unsigned long dsize; /* initialized data " " */
unsigned long bsize; /* uninitialized data " " */
unsigned long entry; /* entry pt. */
unsigned long text_start; /* base of text used for this file */
unsigned long data_start; /* base of data used for this file */
}
AOUTHDR;
typedef struct gnu_aout {
unsigned long info;
unsigned long tsize;
unsigned long dsize;
unsigned long bsize;
unsigned long symsize;
unsigned long entry;
unsigned long txrel;
unsigned long dtrel;
} GNU_AOUT;
#define AOUTSZ (sizeof(AOUTHDR))
#define OMAGIC 0404 /* object files, eg as output */
#define ZMAGIC 0413 /* demand load format, eg normal ld output */
#define STMAGIC 0401 /* target shlib */
#define SHMAGIC 0443 /* host shlib */
/********************** SECTION HEADER **********************/
struct external_scnhdr {
char s_name[8]; /* section name */
unsigned long s_paddr; /* physical address, aliased s_nlib */
unsigned long s_vaddr; /* virtual address */
unsigned long s_size; /* section size */
unsigned long s_scnptr; /* file ptr to raw data for section */
unsigned long s_relptr; /* file ptr to relocation */
unsigned long s_lnnoptr; /* file ptr to line numbers */
unsigned short s_nreloc; /* number of relocation entries */
unsigned short s_nlnno; /* number of line number entries*/
unsigned long s_flags; /* flags */
};
#define SCNHDR struct external_scnhdr
#define SCNHSZ sizeof(SCNHDR)
/*
* names of "special" sections
*/
#define _TEXT ".text"
#define _DATA ".data"
#define _BSS ".bss"
#define _COMMENT ".comment"
#define _LIB ".lib"
/*
* s_flags "type"
*/
#define STYP_TEXT (0x0020) /* section contains text only */
#define STYP_DATA (0x0040) /* section contains data only */
#define STYP_BSS (0x0080) /* section contains bss only */
/********************** LINE NUMBERS **********************/
/* 1 line number entry for every "breakpointable" source line in a section.
* Line numbers are grouped on a per function basis; first entry in a function
* grouping will have l_lnno = 0 and in place of physical address will be the
* symbol table index of the function name.
*/
struct external_lineno {
union {
unsigned long l_symndx __attribute__((packed)); /* function name symbol index, iff l_lnno == 0 */
unsigned long l_paddr __attribute__((packed)); /* (physical) address of line number */
} l_addr;
unsigned short l_lnno; /* line number */
};
#define LINENO struct external_lineno
#define LINESZ sizeof(LINENO)
/********************** SYMBOLS **********************/
#define E_SYMNMLEN 8 /* # characters in a symbol name */
#define E_FILNMLEN 14 /* # characters in a file name */
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
struct external_syment
{
union {
char e_name[E_SYMNMLEN];
struct {
unsigned long e_zeroes __attribute__((packed));
unsigned long e_offset __attribute__((packed));
} e;
} e;
unsigned long e_value __attribute__((packed));
short e_scnum;
unsigned short e_type;
unsigned char e_sclass;
unsigned char e_numaux;
};
#define N_BTMASK (0xf)
#define N_TMASK (0x30)
#define N_BTSHFT (4)
#define N_TSHIFT (2)
union external_auxent {
struct {
unsigned long x_tagndx __attribute__((packed)); /* str, un, or enum tag indx */
union {
struct {
unsigned short x_lnno; /* declaration line number */
unsigned short x_size; /* str/union/array size */
} x_lnsz;
unsigned long x_fsize __attribute__((packed)); /* size of function */
} x_misc;
union {
struct { /* if ISFCN, tag, or .bb */
unsigned long x_lnnoptr __attribute__((packed)); /* ptr to fcn line # */
unsigned long x_endndx __attribute__((packed)); /* entry ndx past block end */
} x_fcn;
struct { /* if ISARY, up to 4 dimen. */
unsigned short x_dimen[E_DIMNUM];
} x_ary;
} x_fcnary;
unsigned short x_tvndx; /* tv index */
} x_sym;
union {
char x_fname[E_FILNMLEN];
struct {
unsigned long x_zeroes __attribute__((packed));
unsigned long x_offset __attribute__((packed));
} x_n;
} x_file;
struct {
unsigned long x_scnlen __attribute__((packed)); /* section length */
unsigned short x_nreloc; /* # relocation entries */
unsigned short x_nlinno; /* # line numbers */
} x_scn;
struct {
unsigned long x_tvfill __attribute__((packed)); /* tv fill value */
unsigned short x_tvlen; /* length of .tv */
unsigned short x_tvran[2]; /* tv range */
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
};
#define SYMENT struct external_syment
#define SYMESZ sizeof(SYMENT)
#define AUXENT union external_auxent
#define AUXESZ sizeof(AUXENT)
# define _ETEXT "etext"
/* Relocatable symbols have number of the section in which they are defined,
or one of the following: */
#define N_UNDEF ((short)0) /* undefined symbol */
#define N_ABS ((short)-1) /* value of symbol is absolute */
#define N_DEBUG ((short)-2) /* debugging symbol -- value is meaningless */
#define N_TV ((short)-3) /* indicates symbol needs preload transfer vector */
#define P_TV ((short)-4) /* indicates symbol needs postload transfer vector*/
/*
* Type of a symbol, in low N bits of the word
*/
#define T_NULL 0
#define T_VOID 1 /* function argument (only used by compiler) */
#define T_CHAR 2 /* character */
#define T_SHORT 3 /* short integer */
#define T_INT 4 /* integer */
#define T_LONG 5 /* long integer */
#define T_FLOAT 6 /* floating point */
#define T_DOUBLE 7 /* double word */
#define T_STRUCT 8 /* structure */
#define T_UNION 9 /* union */
#define T_ENUM 10 /* enumeration */
#define T_MOE 11 /* member of enumeration*/
#define T_UCHAR 12 /* unsigned character */
#define T_USHORT 13 /* unsigned short */
#define T_UINT 14 /* unsigned integer */
#define T_ULONG 15 /* unsigned long */
#define T_LNGDBL 16 /* long double */
/*
* derived types, in n_type
*/
#define DT_NON (0) /* no derived type */
#define DT_PTR (1) /* pointer */
#define DT_FCN (2) /* function */
#define DT_ARY (3) /* array */
#define BTYPE(x) ((x) & N_BTMASK)
#define ISPTR(x) (((x) & N_TMASK) == (DT_PTR << N_BTSHFT))
#define ISFCN(x) (((x) & N_TMASK) == (DT_FCN << N_BTSHFT))
#define ISARY(x) (((x) & N_TMASK) == (DT_ARY << N_BTSHFT))
#define ISTAG(x) ((x)==C_STRTAG||(x)==C_UNTAG||(x)==C_ENTAG)
#define DECREF(x) ((((x)>>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK))
/********************** STORAGE CLASSES **********************/
/* This used to be defined as -1, but now n_sclass is unsigned. */
#define C_EFCN 0xff /* physical end of function */
#define C_NULL 0
#define C_AUTO 1 /* automatic variable */
#define C_EXT 2 /* external symbol */
#define C_STAT 3 /* static */
#define C_REG 4 /* register variable */
#define C_EXTDEF 5 /* external definition */
#define C_LABEL 6 /* label */
#define C_ULABEL 7 /* undefined label */
#define C_MOS 8 /* member of structure */
#define C_ARG 9 /* function argument */
#define C_STRTAG 10 /* structure tag */
#define C_MOU 11 /* member of union */
#define C_UNTAG 12 /* union tag */
#define C_TPDEF 13 /* type definition */
#define C_USTATIC 14 /* undefined static */
#define C_ENTAG 15 /* enumeration tag */
#define C_MOE 16 /* member of enumeration */
#define C_REGPARM 17 /* register parameter */
#define C_FIELD 18 /* bit field */
#define C_AUTOARG 19 /* auto argument */
#define C_LASTENT 20 /* dummy entry (end of block) */
#define C_BLOCK 100 /* ".bb" or ".eb" */
#define C_FCN 101 /* ".bf" or ".ef" */
#define C_EOS 102 /* end of structure */
#define C_FILE 103 /* file name */
#define C_LINE 104 /* line # reformatted as symbol table entry */
#define C_ALIAS 105 /* duplicate tag */
#define C_HIDDEN 106 /* ext symbol in dmert public lib */
/********************** RELOCATION DIRECTIVES **********************/
struct external_reloc {
unsigned long r_vaddr __attribute__((packed));
unsigned long r_symndx __attribute__((packed));
unsigned short r_type;
};
#define RELOC struct external_reloc
#define RELSZ sizeof(RELOC)
#define RELOC_REL32 20 /* 32-bit PC-relative address */
#define RELOC_ADDR32 6 /* 32-bit absolute address */
#define DEFAULT_DATA_SECTION_ALIGNMENT 4
#define DEFAULT_BSS_SECTION_ALIGNMENT 4
#define DEFAULT_TEXT_SECTION_ALIGNMENT 4
/* For new sections we havn't heard of before */
#define DEFAULT_SECTION_ALIGNMENT 4
//#endif /* !_POSIX_SOURCE */
//#endif /* !__STRICT_ANSI__ */
//#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */
#ifndef __dj_ENFORCE_FUNCTION_CALLS
#endif /* !__dj_ENFORCE_FUNCTION_CALLS */
#ifdef __cplusplus
}
#endif
#endif /* !__dj_include_coff_h_ */

View File

@@ -1,72 +0,0 @@
// registry key structures
typedef struct _KEY_BASIC_INFORMATION {
LARGE_INTEGER LastWriteTime;
ULONG TitleIndex;
ULONG NameLength;
WCHAR Name[1]; // variable size
} KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION;
typedef struct _KEY_NODE_INFORMATION {
LARGE_INTEGER LastWriteTime;
ULONG TitleIndex;
ULONG ClassOffset;
ULONG ClassLength;
ULONG NameLength;
WCHAR Name[1]; // variable size
} KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION;
typedef struct _KEY_FULL_INFORMATION {
LARGE_INTEGER LastWriteTime;
ULONG TitleIndex;
ULONG ClassOffset;
ULONG ClassLength;
ULONG SubKeys;
ULONG MaxNameLen;
ULONG MaxClassLen;
ULONG Values;
ULONG MaxValueNameLen;
ULONG MaxValueDataLen;
WCHAR Class[1]; // variable size
} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
typedef struct _KEY_WRITE_TIME_INFORMATION {
LARGE_INTEGER LastWriteTime;
} KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION;
// key query value structures
typedef struct _KEY_VALUE_BASIC_INFORMATION {
ULONG TitleIndex;
ULONG Type;
ULONG NameLength;
WCHAR Name[1]; // variable size
} KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION;
typedef struct _KEY_VALUE_FULL_INFORMATION {
ULONG TitleIndex;
ULONG Type;
ULONG DataOffset;
ULONG DataLength;
ULONG NameLength;
WCHAR Name[1]; // variable size
} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
ULONG TitleIndex;
ULONG Type;
ULONG DataLength;
UCHAR Data[1]; // variable size
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
typedef struct _KEY_VALUE_ENTRY {
PUNICODE_STRING ValueName;
ULONG DataLength;
ULONG DataOffset;
ULONG Type;
} KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY;

View File

@@ -1,521 +0,0 @@
/* GENERAL DEFINITIONS ****************************************************/
#include <internal/hal/irq.h>
/*
* PURPOSE: Number of a thread priority levels
*/
#define NR_PRIORITY_LEVELS (32)
/*
* PURPOSE: Type of queue to insert a work item in
*/
enum
{
CriticalWorkQueue,
DelayedWorkQueue,
HyperCriticalWorkQueue,
};
/*
* Types of memory to allocate
*/
enum
{
NonPagedPool,
NonPagedPoolMustSucceed,
NonPagedPoolCacheAligned,
NonPagedPoolCacheAlignedMustS,
PagedPool,
PagedPoolCacheAligned,
};
/*
* PURPOSE: Irp flags
*/
enum
{
/*
* Read any data from the actual backing media
*/
IRP_NOCACHE,
/*
* The I/O operation is performing paging
*/
IRP_PAGING_IO,
/*
* The IRP is for a mount operation
*/
IRP_MOUNT_COMPLETION,
/*
* The API expects synchronous behaviour
*/
IRP_SYNCHRONOUS_API,
/*
* The IRP is associated with a larger operation
*/
IRP_ASSOCIATED_IRP,
/*
* The AssociatedIrp.SystemBuffer field is valid
*/
IRP_BUFFERED_IO,
/*
* The system buffer was allocated from pool and should be deallocated
* by the I/O manager
*/
IRP_DEALLOCATE_BUFFER,
/*
* The IRP is for an input operation
*/
IRP_INPUT_OPERATION,
/*
* The paging operation should complete synchronously
*/
IRP_SYNCHRONOUS_PAGING_IO,
/*
* The IRP represents a filesystem create operation
*/
IRP_CREATE_OPERATION,
/*
* The IRP represents a filesystem read operation
*/
IRP_READ_OPERATION,
/*
* The IRP represents a filesystem write operation
*/
IRP_WRITE_OPERATION,
/*
* The IRP represents a filesystem close operation
*/
IRP_CLOSE_OPERATION,
/*
* Asynchronous behavior is advised but not required
*/
IRP_DEFER_IO_COMPLETION,
};
/*
* I/O operation flags
*/
enum
{
/*
* Force an access check even if opened in kernel mode
*/
SL_FORCE_ACCESS_CHECK,
/*
* The file being opened is a paging file
*/
SL_OPEN_PAGING_FILE,
SL_OPEN_TARGET_DIRECTORY,
SL_CASE_SENSITIVE,
SL_KEY_SPECIFIED,
SL_OVERRIDE_VERIFY_VOLUME,
SL_WRITE_THROUGH,
SL_FT_SEQUENTIAL_WRITE,
SL_FAIL_IMMEDIATELY,
SL_EXCLUSIVE_LOCK,
SL_RESTART_SCAN,
SL_RETURN_SINGLE_ENTRY,
SL_INDEX_SPECIFIED,
SL_WATCH_TREE,
SL_ALLOW_RAW_MOUNT,
};
/*
* Possible flags for the device object flags
*/
enum
{
DO_BUFFERED_IO = 0x1,
DO_DIRECT_IO = 0x2,
};
/*
* Possible status codes
* FIXME: These may not be the actual values used by NT
*/
enum
{
STATUS_SUCCESS,
STATUS_INSUFFICIENT_RESOURCES,
STATUS_OBJECT_NAME_EXISTS,
STATUS_OBJECT_NAME_COLLISION,
// STATUS_DATATYPE_MISALIGNMENT,
STATUS_CTL_FILE_NOT_SUPPORTED,
// STATUS_ACCESS_VIOLATION,
STATUS_PORT_ALREADY_SET,
STATUS_SECTION_NOT_IMAGE,
STATUS_BAD_WORKING_SET_LIMIT,
STATUS_INCOMPATIBLE_FILE_MAP,
STATUS_HANDLE_NOT_WAITABLE,
STATUS_PORT_DISCONNECTED,
STATUS_NOT_LOCKED,
STATUS_NOT_MAPPED_VIEW,
STATUS_UNABLE_TO_FREE_VM,
STATUS_UNABLE_TO_DELETE_SECTION,
STATUS_MORE_PROCESSING_REQUIRED,
STATUS_INVALID_CID,
STATUS_BAD_INITIAL_STACK,
STATUS_INVALID_VOLUME_LABEL,
STATUS_SECTION_NOT_EXTENDED,
STATUS_NOT_MAPPED_DATA,
STATUS_INFO_LENGTH_MISMATCH,
STATUS_INVALID_INFO_CLASS,
STATUS_SUSPEND_COUNT_EXCEEDED,
STATUS_NOTIFY_ENUM_DIR,
STATUS_REGISTRY_RECOVERED,
STATUS_REGISTRY_IO_FAILED,
STATUS_KEY_DELETED,
STATUS_NO_LOG_SPACE,
STATUS_KEY_HAS_CHILDREN,
STATUS_CHILD_MUST_BE_VOLATILE,
STATUS_REGISTRY_CORRUPT,
STATUS_DLL_NOT_FOUND,
STATUS_DLL_INIT_FAILED,
STATUS_ORDINAL_NOT_FOUND,
STATUS_ENTRYPOINT_NOT_FOUND,
// STATUS_PENDING,
STATUS_MORE_ENTRIES,
// STATUS_INTEGER_OVERFLOW,
STATUS_BUFFER_OVERFLOW,
STATUS_NO_MORE_FILES,
STATUS_NO_INHERITANCE,
STATUS_NO_MORE_EAS,
STATUS_NO_MORE_ENTRIES,
STATUS_GUIDS_EXHAUSTED,
STATUS_AGENTS_EXHAUSTED,
STATUS_UNSUCCESSFUL,
STATUS_NOT_IMPLEMENTED,
STATUS_ILLEGAL_FUNCTION,
// STATUS_IN_PAGE_ERROR,
STATUS_PAGEFILE_QUOTA,
STATUS_COMMITMENT_LIMIT,
STATUS_SECTION_TOO_BIG,
RPC_NT_SS_IN_NULL_CONTEXT,
RPC_NT_INVALID_BINDING,
// STATUS_INVALID_HANDLE,
STATUS_OBJECT_FILE_MISMATCH,
STATUS_FILE_CLOSED,
STATUS_INVALID_PORT_HANDLE,
STATUS_NOT_COMMITTED,
STATUS_INVALID_PARAMETER,
STATUS_INVALID_PARAMETER_1,
STATUS_INVALID_PARAMETER_2,
STATUS_INVALID_PARAMETER_3,
STATUS_INVALID_PARAMETER_4,
STATUS_INVALID_PARAMETER_5,
STATUS_INVALID_PARAMETER_6,
STATUS_INVALID_PARAMETER_7,
STATUS_INVALID_PARAMETER_8,
STATUS_INVALID_PARAMETER_9,
STATUS_INVALID_PARAMETER_10,
STATUS_INVALID_PARAMETER_11,
STATUS_INVALID_PARAMETER_12,
STATUS_INVALID_PARAMETER_MAX,
STATUS_INVALID_PAGE_PROTECTION,
STATUS_RESOURCE_DATA_NOT_FOUND,
STATUS_RESOURCE_TYPE_NOT_FOUND,
STATUS_RESOURCE_NAME_NOT_FOUND,
STATUS_RESOURCE_LANG_NOT_FOUND,
STATUS_NO_SUCH_DEVICE,
STATUS_NO_SUCH_FILE,
STATUS_INVALID_DEVICE_REQUEST,
STATUS_END_OF_FILE,
STATUS_FILE_FORCED_CLOSED,
STATUS_WRONG_VOLUME,
STATUS_NO_MEDIA,
STATUS_NO_MEDIA_IN_DEVICE,
STATUS_NONEXISTENT_SECTOR,
STATUS_WORKING_SET_QUOTA,
// STATUS_NO_MEMORY,
STATUS_CONFLICTING_ADDRESS,
STATUS_INVALID_SYSTEM_SERVICE,
STATUS_THREAD_IS_TERMINATING,
STATUS_PROCESS_IS_TERMINATING,
STATUS_INVALID_LOCK_SEQUENCE,
STATUS_INVALID_VIEW_SIZE,
STATUS_ALREADY_COMMITTED,
STATUS_ACCESS_DENIED,
STATUS_FILE_IS_A_DIRECTORY,
STATUS_CANNOT_DELETE,
STATUS_INVALID_COMPUTER_NAME,
STATUS_FILE_DELETED,
STATUS_DELETE_PENDING,
STATUS_PORT_CONNECTION_REFUSED,
STATUS_NO_SUCH_PRIVILEGE,
STATUS_PRIVILEGE_NOT_HELD,
STATUS_CANNOT_IMPERSONATE,
STATUS_LOGON_FAILURE,
STATUS_ACCOUNT_RESTRICTION,
STATUS_INVALID_LOGON_HOURS,
STATUS_INVALID_WORKSTATION,
STATUS_BUFFER_TOO_SMALL,
STATUS_UNABLE_TO_DECOMMIT_VM,
STATUS_DISK_CORRUPT_ERROR,
STATUS_OBJECT_NAME_INVALID,
STATUS_OBJECT_NAME_NOT_FOUND,
// STATUS_OBJECT_NAME_COLLISION,
STATUS_OBJECT_PATH_INVALID,
STATUS_OBJECT_PATH_NOT_FOUND,
STATUS_DFS_EXIT_PATH_FOUND,
STATUS_OBJECT_PATH_SYNTAX_BAD,
STATUS_DATA_OVERRUN,
STATUS_DATA_LATE_ERROR,
STATUS_DATA_ERROR,
STATUS_CRC_ERROR,
STATUS_SHARING_VIOLATION,
STATUS_QUOTA_EXCEEDED,
STATUS_MUTANT_NOT_OWNED,
STATUS_SEMAPHORE_LIMIT_EXCEEDED,
STATUS_DISK_FULL,
STATUS_LOCK_NOT_GRANTED,
};
/*
* Possible device types
*/
enum
{
/*
* Standard define types
*/
FILE_DEVICE_BEEP,
FILE_DEVICE_CDROM,
FILE_DEVICE_CONTROLLER,
FILE_DEVICE_DISK,
FILE_DEVICE_INPORT_PORT,
FILE_DEVICE_KEYBOARD,
FILE_DEVICE_MIDI_IN,
FILE_DEVICE_MIDI_OUT,
FILE_DEVICE_MOUSE,
FILE_DEVICE_NULL,
FILE_DEVICE_PARALLEL_PORT,
FILE_DEVICE_PRINTER,
FILE_DEVICE_SCANNER,
FILE_DEVICE_SERIAL_MOUSE_PORT,
FILE_DEVICE_SERIAL_PORT,
FILE_DEVICE_SCREEN,
FILE_DEVICE_TAPE,
FILE_DEVICE_UNKNOWN,
FILE_DEVICE_VIDEO,
FILE_DEVICE_VIRTUAL_DISK,
FILE_DEVICE_WAVE_IN,
FILE_DEVICE_WAVE_OUT,
FILE_DEVICE_8042_PORT,
/*
* Values beyond this are reserved for ISVs
*/
FILE_DEVICE_FIRST_FREE = 32768
};
/*
* Possible device characteristics
*/
enum
{
FILE_REMOVABLE_MEDIA = 0x1,
FILE_READ_ONLY_DEVICE = 0x2,
FILE_FLOPPY_DISKETTE = 0x4,
FILE_WRITE_ONCE_MEDIA = 0x8,
FILE_REMOTE_DEVICE = 0x10,
};
/*
* PURPOSE: Bus types
*/
enum
{
Internal,
Isa,
MicroChannel,
TurboChannel,
PCIBus,
MaximumInterfaceType,
};
/*
* This is a list of bug check types (not MS's)
*/
enum
{
KBUG_NONE,
KBUG_ORPHANED_IRP,
KBUG_IO_STACK_OVERFLOW,
KBUG_OUT_OF_MEMORY,
KBUG_POOL_FREE_LIST_CORRUPT,
/*
* These are well known but the actual value is unknown
*/
NO_PAGES_AVAILABLE,
/*
* These are well known (MS) bug types
* (Reference: NT Insider 1997 - http://www.osr.com)
*/
IRQL_NOT_LESS_OR_EQUAL = 0xa,
KMODE_EXCEPTION_NOT_HANDLED = 0x1e,
UNEXPECTED_KERNEL_MODE_TRAP = 0x7f,
PAGE_FAULT_IN_NON_PAGED_AREA = 0x50,
};
/*
* PURPOSE: Object attributes
*/
enum
{
OBJ_INHERIT = 0x1,
OBJ_PERMANENT = 0x2,
OBJ_EXCLUSIVE = 0x4,
OBJ_CASE_INSENSITIVE = 0x8,
OBJ_OPENIF = 0x10,
};
/*
* PURPOSE: DPC priorities
*/
enum
{
High,
Medium,
Low,
};
/*
* PURPOSE: Timer types
*/
enum
{
NotificationTimer,
SynchronizationTimer,
};
/*
* PURPOSE: Some drivers use these
*/
#define IN
#define OUT
#define OPTIONAL
/*
* PURPOSE: Power IRP minor function numbers
*/
enum
{
IRP_MN_QUERY_POWER,
IRP_MN_SET_POWER,
IRP_MN_WAIT_WAKE,
IRP_MN_QUERY_CAPABILITIES,
IRP_MN_POWER_SEQUENCE,
};
/*
* FIXME: These are not in the correct order
*/
enum
{
IRP_MJ_CREATE,
IRP_MJ_CREATE_NAMED_PIPE,
IRP_MJ_CLOSE,
IRP_MJ_READ,
IRP_MJ_WRITE,
IRP_MJ_QUERY_INFORMATION,
IRP_MJ_SET_INFORMATION,
IRP_MJ_QUERY_EA,
IRP_MJ_SET_EA,
IRP_MJ_FLUSH_BUFFERS,
IRP_MJ_QUERY_VOLUME_INFORMATION,
IRP_MJ_SET_VOLUME_INFORMATION,
IRP_MJ_DIRECTORY_CONTROL,
IRP_MJ_FILE_SYSTEM_CONTROL,
IRP_MJ_DEVICE_CONTROL,
IRP_MJ_INTERNAL_DEVICE_CONTROL,
IRP_MJ_SHUTDOWN,
IRP_MJ_LOCK_CONTROL,
IRP_MJ_CLEANUP,
IRP_MJ_CREATE_MAILSLOT,
IRP_MJ_QUERY_SECURITY,
IRP_MJ_SET_SECURITY,
IRP_MJ_QUERY_POWER,
IRP_MJ_SET_POWER,
IRP_MJ_DEVICE_CHANGE,
IRP_MJ_QUERY_QUOTA,
IRP_MJ_SET_QUOTA,
IRP_MJ_PNP_POWER,
IRP_MJ_MAXIMUM_FUNCTION,
};
/*
* PURPOSE: Used all over
*/
enum
{
KernelMode,
UserMode,
};
/*
* PURPOSE: Arguments to MmProbeAndLockPages
*/
enum
{
IoReadAccess,
IoWriteAccess,
IoModifyAccess,
};
#define MAXIMUM_VOLUME_LABEL_LENGTH (32)
/*
* IRQ levels
*/
enum
{
PASSIVE_LEVEL,
/*
* Which order for these (only DISPATCH_LEVEL is important for now)
*/
APC_LEVEL,
DISPATCH_LEVEL,
/*
* Above here are device specific IRQ levels
*/
FIRST_DEVICE_SPECIFIC_LEVEL,
HIGH_LEVEL = FIRST_DEVICE_SPECIFIC_LEVEL + NR_DEVICE_SPECIFIC_LEVELS,
};

View File

@@ -1,35 +0,0 @@
/* EXECUTIVE ROUTINES ******************************************************/
//VOID ExAcquireFastMutex(PFAST_MUTEX FastMutex);
/*
* FUNCTION: Releases previously allocated memory
* ARGUMENTS:
* block = block to free
*/
VOID ExFreePool(PVOID block);
/*
* FUNCTION: Allocates memory from the nonpaged pool
* ARGUMENTS:
* size = minimum size of the block to be allocated
* PoolType = the type of memory to use for the block (ignored)
* RETURNS:
* the address of the block if it succeeds
*/
PVOID ExAllocatePool(POOL_TYPE PoolType, ULONG size);
VOID ExInterlockedRemoveEntryList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry,
PKSPIN_LOCK Lock);
VOID RemoveEntryFromList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
PLIST_ENTRY ExInterlockedRemoveHeadList(PLIST_ENTRY Head, PKSPIN_LOCK Lock);
PLIST_ENTRY ExInterlockedInsertTailList(PLIST_ENTRY ListHead,
PLIST_ENTRY ListEntry,
PKSPIN_LOCK Lock);
PLIST_ENTRY ExInterlockedInsertHeadList(PLIST_ENTRY ListHead,
PLIST_ENTRY ListEntry,
PKSPIN_LOCK Lock);

View File

@@ -1,18 +0,0 @@
typedef struct _ZONE_HEADER
{
SINGLE_LIST_ENTRY FreeList;
SINGLE_LIST_ENTRY SegmentList;
ULONG BlockSize;
ULONG TotalSegmentSize;
} ZONE_HEADER, *PZONE_HEADER;
typedef struct _ZONE_SEGMENT
{
SINGLE_LIST_ENTRY Entry;
ULONG size;
} ZONE_SEGMENT, *PZONE_SEGMENT;
typedef struct _ZONE_ENTRY
{
SINGLE_LIST_ENTRY Entry;
} ZONE_ENTRY, *PZONE_ENTRY;

View File

@@ -1,504 +0,0 @@
/* IO MANAGER ***************************************************************/
/*
* FUNCTION: Registers the driver with WMI
* ARGUMENTS:
* DeviceObject = Device to register
* Action = Action to take
* RETURNS: Status (?)
*/
//NTSTATUS IoWMIRegistrationControl(DeviceObject, WMIREGACTION Action);
/*
* FUNCTION: Synchronizes cancelable-state transistions for IRPs in a
* multiprocessor-safe way
* ARGUMENTS:
* Irpl = Variable to store the current IRQ level
*/
VOID IoAcquireCancelSpinLock(PKIRQL Irpl);
typedef IO_ALLOCATION_ACTION (*PDRIVER_CONTROL)(PDEVICE_OBJECT DeviceObject,
PIRP irp,
PVOID MapRegisterBase,
PVOID Context);
/*
* FUNCTION: Allocates an adaptor object for a DMA operation on the target
* device
* ARGUMENTS:
* Adaptor = Adapter channel or busmaster adapter to be allocated
* DeviceObject = Target device for DMA
* NumberOfMapRegisters = Number of map registers
* ExecutionRoutine = Routine to be called when the adaptor is
* available
* Context = driver defined contex that will be passed to the
* execution routine
* RETURNS: Success or failure code
*/
NTSTATUS IoAllocateAdapterChannel(PADAPTER_OBJECT AdaperObject,
PDEVICE_OBJECT DeviceObject,
ULONG NumberOfMapRegisters,
PDRIVER_CONTROL ExecutionRoutine,
PVOID Context);
/*
* FUNCTION: Sets up a call to a driver supplied controller object as
* soon as it is available
* ARGUMENTS:
* ControllerObject = Driver created controller object
* DeviceObject = target device
* ExecutionObject = Routine to be called
* Context = Driver determined context to be based to the routine
*/
VOID IoAllocateController(PCONTROLLER_OBJECT ControllerObject,
PDEVICE_OBJECT DeviceObject,
PDRIVER_CONTROL ExecutionRoutine,
PVOID Context);
/*
* FUNCTION: Allocates an error log packet
* ARGUMENTS:
* IoObject = Object which found the error
* EntrySize = Size in bytes of the packet to be allocated
* RETURNS: On success a pointer to the allocated packet
* On failure returns NULL
*/
PVOID IoAllocateErrorLogEntry(PVOID IoObject, UCHAR EntrySize);
/*
* FUNCTION: Allocates an IRP
* ARGUMENTS:
* StackSize = number of stack locations to allocate
* ChargeQuota = Who knows
* RETURNS: On success the allocated IRP
* On failure NULL
*/
PIRP IoAllocateIrp(CCHAR StackSize, BOOLEAN ChargeQuota);
/*
* FUNCTION: Allocates an MDL large enough to map the supplied buffer
* ARGUMENTS:
* VirtualAddress = base virtual address of the buffer to be mapped
* Length = length of the buffer to be mapped
* SecondaryBuffer = Whether the buffer is primary or secondary
* ChargeQuota = Charge non-paged pool quota to current thread
* Irp = Optional irp to be associated with the MDL
* RETURNS: On the success the allocated MDL
* On failure NULL
*/
PMDL IoAllocateMdl(PVOID VirtualAddress, ULONG Length,
BOOLEAN SecondaryBuffer, BOOLEAN ChargeQuota,
PIRP Irp);
/*
* FUNCTION: Creates a symbolic link between the ARC name of a physical
* device and the name of the corresponding device object
* ARGUMENTS:
* ArcName = ARC name of the device
* DeviceName = Name of the device object
*/
VOID IoAssignArcName(PUNICODE_STRING ArcName, PUNICODE_STRING DeviceName);
enum
{
IO_NO_INCREMENT,
};
/*
* FUNCTION: Takes a list of requested hardware resources and allocates them
* ARGUMENTS:
* RegisterPath =
* DriverClassName =
* DriverObject = Driver object passed to the DriverEntry routine
* DeviceObject =
* RequestedResources = List of resources
* RETURNS:
*/
NTSTATUS IoAssignResources(PUNICODE_STRING RegistryPath,
PUNICODE_STRING DriverClassName,
PDRIVER_OBJECT DriverObject,
PDEVICE_OBJECT DeviceObject,
PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources,
PCM_RESOURCE_LIST* AllocatedResources);
/*
* FUNCTION: Attaches the callers device object to a named target device
* ARGUMENTS:
* SourceDevice = caller's device
* TargetDevice = Name of the target device
* AttachedDevice = Caller allocated storage. On return contains
* a pointer to the target device
* RETURNS: Success or failure code
*/
NTSTATUS IoAttachDevice(PDEVICE_OBJECT SourceDevice,
PUNICODE_STRING TargetDevice,
PDEVICE_OBJECT* AttachedDevice);
/*
* FUNCTION: Obsolete
* ARGUMENTS:
* SourceDevice = device to attach
* TargetDevice = device to be attached to
* RETURNS: Success or failure code
*/
NTSTATUS IoAttachDeviceByPointer(PDEVICE_OBJECT SourceDevice,
PDEVICE_OBJECT TargetDevice);
/*
* FUNCTION: Attaches the callers device to the highest device in the chain
* ARGUMENTS:
* SourceDevice = caller's device
* TargetDevice = Device to attach
* RETURNS: On success the previously highest device
* On failure NULL
*/
PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice,
PDEVICE_OBJECT TargetDevice);
/*
* FUNCTION: Builds a irp to be sent to lower level drivers
* ARGUMENTS:
* MajorFunction = Major function code to be set in the IRP
* DeviceObject = Next lower device object
* Buffer = Buffer (only required for some major function codes)
* Length = Length in bytes of the buffer
* StartingOffset = Starting offset on the target device
* IoStatusBlock = Storage for status about the operation (optional)
* RETURNS: On success the IRP allocated
* On failure NULL
*/
PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction,
PDEVICE_OBJECT DeviceObject,
PVOID Buffer,
ULONG Length,
PLARGE_INTEGER StartingOffset,
PIO_STATUS_BLOCK IoStatusBlock);
/*
* FUNCTION: Allocates and sets up an IRP for a device control request
* ARGUMENTS:
* IoControlCode = Type of request
* DeviceObject = Target device
* InputBuffer = Optional input buffer to the driver
* InputBufferLength = Length of the input buffer
* OutputBuffer = Optional output buffer
* OutputBufferLength = Length of the output buffer
* InternalDeviceIoControl = TRUE if the request is internal
* Event = Initialized event for the caller to wait for the request
* to be completed
* IoStatusBlock = I/O status block to be set when the request is
* completed
* RETURNS: Returns the IRP created
*/
PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode,
PDEVICE_OBJECT DeviceObject,
PVOID InputBuffer,
ULONG InputBufferLength,
PVOID OutputBuffer,
ULONG OutputBufferLength,
BOOLEAN InternalDeviceIoControl,
PKEVENT Event,
PIO_STATUS_BLOCK IoStatusBlock);
VOID IoBuildPartialMdl(PMDL SourceMdl,
PMDL TargetMdl,
PVOID VirtualAddress,
ULONG Length);
PIRP IoBuildSynchronousFsdRequest(ULONG MajorFunction,
PDEVICE_OBJECT DeviceObject,
PVOID Buffer,
ULONG Length,
PLARGE_INTEGER StartingOffset,
PKEVENT Event,
PIO_STATUS_BLOCK IoStatusBlock);
/*
* FUNCTION: Sends an irp to the next lower driver
*/
NTSTATUS IoCallDriver(PDEVICE_OBJECT DeviceObject, PIRP irp);
BOOLEAN IoCancelIrp(PIRP Irp);
NTSTATUS IoCheckShareAccess(ACCESS_MASK DesiredAccess,
ULONG DesiredShareAccess,
PFILE_OBJECT FileObject,
// PSHARE_ACCESS ShareAccess,
BOOLEAN Update);
/*
* FUNCTION: Indicates the caller has finished all processing for a given
* I/O request and is returning the given IRP to the I/O manager
* ARGUMENTS:
* Irp = Irp to be cancelled
* PriorityBoost = Increment by which to boost the priority of the
* thread making the request
*/
VOID IoCompleteRequest(PIRP Irp, CCHAR PriorityBoost);
NTSTATUS IoConnectInterrupt(PKINTERRUPT* InterruptObject,
PKSERVICE_ROUTINE ServiceRoutine,
PVOID ServiceContext,
PKSPIN_LOCK SpinLock,
ULONG Vector,
KIRQL Irql,
KIRQL SynchronizeIrql,
KINTERRUPT_MODE InterruptMode,
BOOLEAN ShareVector,
KAFFINITY ProcessorEnableMask,
BOOLEAN FloatingSave);
PCONTROLLER_OBJECT IoCreateController(ULONG Size);
/*
* FUNCTION: Allocates memory for and intializes a device object for use for
* a driver
* ARGUMENTS:
* DriverObject : Driver object passed by iomgr when the driver was
* loaded
* DeviceExtensionSize : Number of bytes for the device extension
* DeviceName : Unicode name of device
* DeviceType : Device type
* DeviceCharacteristics : Bit mask of device characteristics
* Exclusive : True if only one thread can access the device at a
* time
* RETURNS:
* Success or failure
* DeviceObject : Contains a pointer to allocated device object
* if the call succeeded
* NOTES: See the DDK documentation for more information
*/
NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject,
ULONG DeviceExtensionSize,
PUNICODE_STRING DeviceName,
DEVICE_TYPE DeviceType,
ULONG DeviceCharacteristics,
BOOLEAN Exclusive,
PDEVICE_OBJECT* DeviceObject);
PKEVENT IoCreateNotificationEvent(PUNICODE_STRING EventName,
PHANDLE EventHandle);
NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName,
PUNICODE_STRING DeviceName);
PKEVENT IoCreateSynchronizationEvent(PUNICODE_STRING EventName,
PHANDLE EventHandle);
NTSTATUS IoCreateUnprotectedSymbolicLink(PUNICODE_STRING SymbolicLinkName,
PUNICODE_STRING DeviceName);
VOID IoDeassignArcName(PUNICODE_STRING ArcName);
VOID IoDeleteController(PCONTROLLER_OBJECT ControllerObject);
VOID IoDeleteDevice(PDEVICE_OBJECT DeviceObject);
NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName);
VOID IoDetachDevice(PDEVICE_OBJECT TargetDevice);
VOID IoDisconnectInterrupt(PKINTERRUPT InterruptObject);
BOOLEAN IoFlushAdapterBuffers(PADAPTER_OBJECT AdapterObject,
PMDL Mdl,
PVOID MapRegisterBase,
PVOID CurrentVa,
ULONG Length,
BOOLEAN WriteToDevice);
VOID IoFreeAdapterChannel(PADAPTER_OBJECT AdapterObject);
VOID IoFreeController(PCONTROLLER_OBJECT ControllerObject);
VOID IoFreeIrp(PIRP Irp);
VOID IoFreeMapRegisters(PADAPTER_OBJECT AdapterObject,
PVOID MapRegisterBase,
ULONG NumberOfMapRegisters);
VOID IoFreeMdl(PMDL Mdl);
PCONFIGURATION_INFORMATION IoGetConfigurationInformation(VOID);
/*
* FUNCTION: Returns a pointer to the callers stack location in the irp
*/
PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(IRP* irp);
PEPROCESS IoGetCurrentProcess(VOID);
NTSTATUS IoGetDeviceObjectPointer(PUNICODE_STRING ObjectName,
ACCESS_MASK DesiredAccess,
PFILE_OBJECT* FileObject,
PDEVICE_OBJECT* DeviceObject);
PDEVICE_OBJECT IoGetDeviceToVerify(PETHREAD Thread);
PGENERIC_MAPPING IoGetFileObjectGenericMapping(VOID);
ULONG IoGetFunctionCodeFromCtlCode(ULONG ControlCode);
PVOID IoGetInitialStack(VOID);
/*
* FUNCTION:
*/
PIO_STACK_LOCATION IoGetNextIrpStackLocation(IRP* irp);
PDEVICE_OBJECT IoGetRelatedDeviceObject(PFILE_OBJECT FileObject);
VOID IoInitializeDpcRequest(PDEVICE_OBJECT DeviceObject,
PIO_DPC_ROUTINE DpcRoutine);
/*
* FUNCTION: Initalizes an irp allocated by the caller
* ARGUMENTS:
* Irp = IRP to initalize
* PacketSize = Size in bytes of the IRP
* StackSize = Number of stack locations in the IRP
*/
VOID IoInitializeIrp(PIRP Irp, USHORT PacketSize, CCHAR StackSize);
NTSTATUS IoInitializeTimer(PDEVICE_OBJECT DeviceObject,
PIO_TIMER_ROUTINE TimerRoutine,
PVOID Context);
BOOLEAN IoIsErrorUserInduced(NTSTATUS Status);
BOOLEAN IoIsTotalDeviceFailure(NTSTATUS Status);
PIRP IoMakeAssociatedIrp(PIRP Irp, CCHAR StackSize);
PHYSICAL_ADDRESS IoMapTransfer(PADAPTER_OBJECT AdapterObject,
PMDL Mdl,
PVOID MapRegisterBase,
PVOID CurrentVa,
PULONG Length,
BOOLEAN WriteToDevice);
/*
* FUNCTION: Marks an IRP as pending
* ARGUMENTS:
* Irp = Irp to mark
* NOTE: If a driver doesn't complete the irp in its dispatch routine it
* must mark it pending otherwise the I/O manager will complete it on
* return from the dispatch routine.
*/
VOID IoMarkIrpPending(PIRP Irp);
NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType,
PULONG BusNumber,
PCONFIGURATION_TYPE ControllerType,
PULONG ControllerNumber,
PCONFIGURATION_TYPE PeripheralType,
PULONG PeripheralNumber,
PIO_QUERY_DEVICE_ROUTINE CalloutRoutine,
PVOID Context);
VOID IoRaiseHardError(PIRP Irp, PVPB Vpb, PDEVICE_OBJECT RealDeviceObject);
BOOLEAN IoRaiseHardInformationalError(NTSTATUS ErrorStatus,
PUNICODE_STRING String,
PKTHREAD Thread);
NTSTATUS IoReadPartitionTable(PDEVICE_OBJECT DeviceObject,
ULONG SectorSize,
BOOLEAN ReturnedRecognizedPartitions,
struct _DRIVER_LAYOUT_INFORMATION** PBuffer);
VOID IoRegisterDriverReinitialization(PDRIVER_OBJECT DriverObject,
PDRIVER_REINITIALIZE ReinitRoutine,
PVOID Context);
NTSTATUS IoRegisterShutdownNotification(PDEVICE_OBJECT DeviceObject);
VOID IoReleaseCancelSpinLock(KIRQL Irql);
VOID IoRemoveShareAccess(PFILE_OBJECT FileObject,
PSHARE_ACCESS ShareAccess);
NTSTATUS IoReportResourceUsage(PUNICODE_STRING DriverClassName,
PDRIVER_OBJECT DriverObject,
PCM_RESOURCE_LIST DriverList,
ULONG DriverListSize,
PDEVICE_OBJECT DeviceObject,
PCM_RESOURCE_LIST DeviceList,
ULONG DeviceListSize,
BOOLEAN OverrideConflict,
PBOOLEAN ConflictDetected);
VOID IoRequestDpc(PDEVICE_OBJECT DeviceObject,
PIRP Irp,
PVOID Context);
PDRIVER_CANCEL IoSetCancelRoutine(PIRP Irp, PDRIVER_CANCEL CancelRoutine);
VOID IoSetCompletionRoutine(PIRP Irp,
PIO_COMPLETION_ROUTINE CompletionRoutine,
PVOID Context,
BOOLEAN InvokeOnSuccess,
BOOLEAN InvokeOnError,
BOOLEAN InvokeOnCancel);
VOID IoSetHardErrorOrVerifyDevice(PIRP Irp, PDEVICE_OBJECT DeviceObject);
VOID IoSetNextIrpStackLocation(PIRP Irp);
NTSTATUS IoSetPartitionInformation(PDEVICE_OBJECT DeviceObject,
ULONG SectorSize,
ULONG PartitionNumber,
ULONG PartitionType);
VOID IoSetShareAccess(ACCESS_MASK DesiredAccess,
ULONG DesiredShareAccess,
PFILE_OBJECT FileObject,
PSHARE_ACCESS ShareAccess);
/*
* FUNCTION: Determines the size of an IRP
* ARGUMENTS:
* StackSize = number of stack locations in the IRP
* RETURNS: The size of the IRP in bytes
*/
USHORT IoSizeOfIrp(CCHAR StackSize);
/*
* FUNCTION: Dequeues the next IRP from the device's associated queue and
* calls its StartIo routine
* ARGUMENTS:
* DeviceObject = Device object
* Cancelable = True if IRPs in the queue can be cancelled
*/
VOID IoStartNextPacket(PDEVICE_OBJECT DeviceObject, BOOLEAN Cancelable);
VOID IoStartNextPacketByKey(PDEVICE_OBJECT DeviceObject,
BOOLEAN Cancelable,
ULONG Key);
/*
* FUNCTION: Calls the drivers StartIO routine with the IRP or queues it if
* the device is busy
* ARGUMENTS:
* DeviceObject = Device to pass the IRP to
* Irp = Irp to be processed
* Key = Optional value for where to insert the IRP
* CancelFunction = Entry point for a driver supplied cancel function
*/
VOID IoStartPacket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PULONG Key,
PDRIVER_CANCEL CancelFunction);
VOID IoStartTimer(PDEVICE_OBJECT DeviceObject);
VOID IoStopTimer(PDEVICE_OBJECT DeviceObject);
VOID IoUnregisterShutdownNotification(PDEVICE_OBJECT DeviceObject);
VOID IoUpdateShareAccess(PFILE_OBJECT FileObject, PSHARE_ACCESS ShareAccess);
VOID IoWriteErrorLogEntry(PVOID ElEntry);
NTSTATUS IoWritePartitionTable(PDEVICE_OBJECT DeviceObject,
ULONG SectorSize,
ULONG SectorsPerTrack,
ULONG NumberOfHeads,
struct _DRIVE_LAYOUT_INFORMATION* PBuffer);

View File

@@ -1,393 +0,0 @@
/*
*
*/
#ifndef __INCLUDE_DDK_IOTYPES_H
#define __INCLUDE_DDK_IOTYPES_H
/*
* These are referenced before they can be fully defined
*/
struct _DRIVER_OBJECT;
struct _FILE_OBJECT;
struct _DEVICE_OBJECT;
struct _IRP;
struct _IO_STATUS_BLOCK;
/* SIMPLE TYPES *************************************************************/
typedef ULONG INTERFACE_TYPE;
typedef INTERFACE_TYPE* PINTERFACE_TYPE;
typedef ULONG CONFIGURATION_TYPE;
typedef CONFIGURATION_TYPE* PCONFIGURATION_TYPE;
/*
* FIXME: Definition needed
*/
typedef struct _SHARE_ACCESS
{
} SHARE_ACCESS, *PSHARE_ACCESS;
/* FUNCTION TYPES ************************************************************/
typedef VOID (*PDRIVER_REINITIALIZE)(struct _DRIVER_OBJECT* DriverObject,
PVOID Context,
ULONG Count);
typedef NTSTATUS (*PIO_QUERY_DEVICE_ROUTINE)(PVOID Context,
PUNICODE_STRING Pathname,
INTERFACE_TYPE BusType,
ULONG BusNumber,
PKEY_VALUE_FULL_INFORMATION* BI,
CONFIGURATION_TYPE ControllerType,
ULONG ControllerNumber,
PKEY_VALUE_FULL_INFORMATION* CI,
CONFIGURATION_TYPE PeripheralType,
ULONG PeripheralNumber,
PKEY_VALUE_FULL_INFORMATION* PI);
typedef NTSTATUS (*PIO_COMPLETION_ROUTINE)(struct _DEVICE_OBJECT* DeviceObject,
struct _IRP* Irp,
PVOID Context);
typedef VOID (*PIO_APC_ROUTINE) (PVOID ApcContext,
struct _IO_STATUS_BLOCK* IoStatusBlock,
ULONG Reserved);
/* STRUCTURE TYPES ***********************************************************/
/*
* PURPOSE: Special timer associated with each device
*/
typedef struct _IO_TIMER
{
} IO_TIMER, PIO_TIMER;
/*
* PURPOSE: IRP stack location
*/
typedef struct _IO_STACK_LOCATION
{
/*
* Type of request
*/
UCHAR MajorFunction;
/*
* Further information about request type
*/
UCHAR MinorFunction;
/*
*
*/
UCHAR Flags;
/*
* FUNCTION: Various flags including for the io completion routine
*/
UCHAR Control;
/*
* Parameters for request
*/
union
{
struct
{
/*
* Number of bytes to be transferrred
*/
ULONG Length;
/*
* Possibly used to sort incoming request (to be documented)
*/
ULONG Key;
/*
* Optional starting offset for read
*/
LARGE_INTEGER ByteOffset;
} Read;
struct
{
ULONG Length;
ULONG Key;
LARGE_INTEGER ByteOffset;
} Write;
struct
{
ULONG OutputBufferLength;
ULONG InputBufferLength;
ULONG IoControlCode;
PVOID Type3InputBuffer;
} DeviceIoControl;
} Parameters;
/*
* PURPOSE: Completion routine
* NOTE: If this is the nth stack location (where the 1st is passed to the
* highest level driver) then this is the completion routine set by
* the (n-1)th driver
*/
PIO_COMPLETION_ROUTINE CompletionRoutine;
PVOID CompletionContext;
BOOLEAN InvokeOnSuccess;
BOOLEAN InvokeOnError;
BOOLEAN InvokeOnCancel;
/*
* Driver created device object representing the target device
*/
struct _DEVICE_OBJECT* DeviceObject;
/*
* File object (if any) associated with DeviceObject
*/
struct _FILE_OBJECT* FileObject;
} IO_STACK_LOCATION, *PIO_STACK_LOCATION;
typedef struct _IO_STATUS_BLOCK
{
/*
* Is the completion status
*/
NTSTATUS Status;
/*
* Is a request dependant value
*/
ULONG Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
/*
* Driver entry point declaration
*/
typedef NTSTATUS (*PDRIVER_INITIALIZE)(struct _DRIVER_OBJECT* DriverObject,
PUNICODE_STRING RegistryPath);
/*
* Driver cancel declaration
*/
typedef NTSTATUS (*PDRIVER_CANCEL)(struct _DRIVER_OBJECT* DriverObject,
PUNICODE_STRING RegistryPath);
typedef struct _IRP
{
PMDL MdlAddress;
ULONG Flags;
union
{
struct _IRP* MasterIrp;
LONG IrpCount;
PVOID SystemBuffer;
} AssociatedIrp;
LIST_ENTRY ThreadListEntry;
IO_STATUS_BLOCK IoStatus;
KPROCESSOR_MODE RequestorMode;
BOOLEAN PendingReturned;
BOOLEAN Cancel;
KIRQL CancelIrql;
PDRIVER_CANCEL CancelRoutine;
PVOID UserBuffer;
PVOID ApcEnvironment;
ULONG AllocationFlags;
PIO_STATUS_BLOCK UserIosb;
PKEVENT UserEvent;
union
{
struct
{
PIO_APC_ROUTINE UserApcRoutine;
PVOID UserApcContext;
} AsynchronousParameters;
LARGE_INTEGER AllocationSize;
} Overlay;
union
{
struct
{
KDEVICE_QUEUE_ENTRY DeviceQueueEntry;
// PETHREAD Thread;
PVOID Thread;
PCHAR AuxiliaryBuffer;
LIST_ENTRY ListEntry;
struct _IO_STACK_LOCATION* CurrentStackLocation;
// PFILE_OBJECT OriginalFileObject;
PVOID OriginalFileObject;
} Overlay;
KAPC Apc;
ULONG CompletionKey;
} Tail;
ULONG CurrentLocation;
IO_STACK_LOCATION Stack[1];
} IRP, *PIRP;
typedef struct _VPB
{
CSHORT Type;
CSHORT Size;
USHORT Flags;
USHORT VolumeLabelLength;
struct _DEVICE_OBJECT* DeviceObject;
struct _DEVICE_OBJECT* RealDevice;
ULONG SerialNumber;
ULONG ReferenceCount;
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)];
} VPB, *PVPB;
typedef struct _DEVICE_OBJECT
{
CSHORT Type;
CSHORT Size;
LONG ReferenceCount;
struct _DRIVER_OBJECT* DriverObject;
struct _DEVICE_OBJECT* NextDevice;
struct _DEVICE_OBJECT* AttachedDevice;
struct _IRP* CurrentIrp;
PIO_TIMER Timer;
ULONG Flags;
ULONG Characteristics;
PVPB Vpb;
PVOID DeviceExtension;
DEVICE_TYPE DeviceType;
CCHAR StackSize;
union
{
LIST_ENTRY ListHead;
WAIT_CONTEXT_BLOCK Wcb;
} Queue;
ULONG AlignmentRequirement;
KDEVICE_QUEUE DeviceQueue;
KDPC Dpc;
ULONG ActiveThreadCount;
PSECURITY_DESCRIPTOR SecurityDescriptor;
KEVENT DeviceLock;
USHORT SectorSize;
USHORT Spare1;
struct _DEVOBJ_EXTENSION* DeviceObjectExtension;
PVOID Reserved;
} DEVICE_OBJECT, *PDEVICE_OBJECT;
/*
* Dispatch routine type declaration
*/
typedef NTSTATUS (*PDRIVER_DISPATCH)(struct _DEVICE_OBJECT*, IRP*);
/*
* Fast i/o routine type declaration
*/
typedef NTSTATUS (*PFAST_IO_DISPATCH)(struct _DEVICE_OBJECT*, IRP*);
/*
* Dispatch routine type declaration
*/
typedef NTSTATUS (*PDRIVER_STARTIO)(struct _DEVICE_OBJECT*, IRP*);
/*
* Dispatch routine type declaration
*/
typedef NTSTATUS (*PDRIVER_UNLOAD)(struct _DRIVER_OBJECT*);
typedef struct _DRIVER_EXTENSION
{
struct _DRIVER_OBJECT* DriverObject;
PDRIVER_ADD_DEVICE AddDevice;
ULONG Count;
UNICODE_STRING ServiceKeyName;
} DRIVER_EXTENSION, *PDRIVER_EXTENSION;
typedef struct _DRIVER_OBJECT
{
/*
* PURPOSE: Magic values for debugging
*/
CSHORT Type;
CSHORT Size;
PDEVICE_OBJECT DeviceObject;
ULONG Flags;
PVOID DriverStart;
ULONG DriverSize;
PVOID DriverSection;
PDRIVER_EXTENSION DriverExtension;
UNICODE_STRING DriverName;
PUNICODE_STRING HardwareDatabase;
PFAST_IO_DISPATCH FastIoDispatch;
PDRIVER_INITIALIZE DriverInit;
PDRIVER_STARTIO DriverStartIo;
PDRIVER_UNLOAD DriverUnload;
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
} DRIVER_OBJECT, *PDRIVER_OBJECT;
typedef struct _FILE_OBJECT
{
PDEVICE_OBJECT DeviceObject;
PVOID FsContext;
} FILE_OBJECT, *PFILE_OBJECT;
typedef struct _CONFIGURATION_INFORMATION
{
ULONG DiskCount;
ULONG FloppyCount;
ULONG CDRomCount;
ULONG TapeCount;
ULONG ScsiPortCount;
ULONG SerialCount;
ULONG ParallelCount;
BOOLEAN AtDiskPrimaryAddressClaimed;
BOOLEAN AtDiskSecondaryAddressClaimed;
} CONFIGURATION_INFORMATION, *PCONFIGURATION_INFORMATION;
typedef VOID (*PIO_DPC_ROUTINE)(PKDPC Dpc,
PDEVICE_OBJECT DeviceObject,
PIRP Irp,
PVOID Context);
typedef VOID (*PIO_TIMER_ROUTINE)(PDEVICE_OBJECT DeviceObject,
PVOID Context);
#if PKEY_VALUE_FULL_INFORMATION_DEFINED
typedef NTSTATUS (*PIO_QUERY_DEVICE_ROUTINE)(PVOID Context,
PUNICODE_STRING PathName,
INTERFACE_TYPE BusType,
ULONG BusNumber,
PKEY_VALUE_FULL_INFORMATION* BusKey,
CONFIGURATION_TYPE ControllerType,
ULONG ControllerNumber,
PKEY_VALUE_FULL_INFORMATION* CtrlKey,
CONFIGURATION_TYPE PeripheralType,
ULONG PeripheralNumber,
PKEY_VALUE_FULL_INFORMATION* PrphKey);
#endif
#if WINDOWS_STRUCTS_DOESNT_ALREADY_DEFINE_THIS
typedef struct _PARTITION_INFORMATION
{
LARGE_INTEGER StartingOffset;
LARGE_INTEGER PartitionLength;
ULONG HiddenSectors;
ULONG PartitionNumber;
UCHAR PartitionType;
BOOLEAN BootIndicator;
BOOLEAN RecognizedPartition;
BOOLEAN RewritePartition;
} PARTITION_INFORMATION, *PPARTITION_INFORMATION;
#endif
typedef struct _DRIVER_LAYOUT_INFORMATION
{
ULONG PartitionCount;
ULONG Signature;
PARTITION_INFORMATION PartitionEntry[1];
} DRIVER_LAYOUT_INFORMATION, *PDRIVER_LAYOUT_INFORMATION;
#endif __INCLUDE_DDK_IOTYPES_H

View File

@@ -1,124 +0,0 @@
/* KERNEL FUNCTIONS ********************************************************/
VOID KeAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL OldIrql);
VOID KeAcquireSpinLockAtDpcLevel(PKSPIN_LOCK SpinLock);
BOOLEAN KeCancelTimer(PKTIMER Timer);
VOID KeClearEvent(PKEVENT Event);
NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode,
BOOLEAN Alertable,
PLARGE_INTEGER Internal);
BOOLEAN KeDeregisterBugCheckCallback(PKBUGCHECK_CALLBACK_RECORD
CallbackRecord);
VOID KeEnterCriticalRegion(VOID);
VOID KeFlushIoBuffers(PMDL Mdl, BOOLEAN ReadOperation, BOOLEAN DmaOperation);
KIRQL KeGetCurrentIrql(VOID);
ULONG KeGetCurrentProcessorNumber(VOID);
ULONG KeGetDcacheFillSize(VOID);
VOID KeInitializeCallbackRecord(PKBUGCHECK_CALLBACK_RECORD CallbackRecord);
VOID KeInitializeDeviceQueue(PKDEVICE_QUEUE DeviceQueue);
VOID KeInitializeDpc(PKDPC Dpc, PKDEFERRED_ROUTINE DeferredRoutine,
PVOID DeferredContext);
VOID KeInitializeEvent(PKEVENT Event, EVENT_TYPE Type, BOOLEAN State);
VOID KeInitializeMutex(PKMUTEX Mutex, ULONG Level);
VOID KeInitializeSemaphore(PKSEMAPHORE Semaphore, LONG Count, LONG Limit);
VOID KeInitializeTimer(PKTIMER Timer);
VOID KeInitializeTimerEx(PKTIMER Timer, TIMER_TYPE Type);
BOOLEAN KeInsertByKeyDeviceQueue(PKDEVICE_QUEUE DeviceQueue,
PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
ULONG SortKey);
BOOLEAN KeInsertDeviceQueue(PKDEVICE_QUEUE DeviceQueue,
PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
BOOLEAN KeInsertQueueDpc(PKDPC Dpc, PVOID SystemArgument1,
PVOID SystemArgument2);
VOID KeLeaveCriticalRegion(VOID);
VOID KeLowerIrql(KIRQL NewIrql);
LARGE_INTEGER KeQueryPerformanceCounter(PLARGE_INTEGER PerformanceFrequency);
VOID KeQuerySystemTime(PLARGE_INTEGER CurrentTime);
VOID KeQueryTickCount(PLARGE_INTEGER TickCount);
ULONG KeQueryTimeIncrement(VOID);
VOID KeRaiseIrql(KIRQL NewIrql, PKIRQL OldIrql);
LONG KeReadStateEvent(PKEVENT Event);
LONG KeReadStateMutex(PKMUTEX Mutex);
LONG KeReadStateSemaphore(PKSEMAPHORE Semaphore);
BOOLEAN KeReadStateTimer(PKTIMER Timer);
BOOLEAN KeRegisterBugCheckCallback(PKBUGCHECK_CALLBACK_RECORD CallbackRecord,
PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine,
PVOID Buffer,
ULONG Length,
PUCHAR Component);
LONG KeReleaseMutex(PKMUTEX Mutex, BOOLEAN Wait);
LONG KeReleaseSemaphore(PKSEMAPHORE Semaphore, KPRIORITY Increment,
LONG Adjustment, BOOLEAN Wait);
VOID KeReleaseSpinLock(PKSPIN_LOCK Spinlock, KIRQL NewIrql);
VOID KeReleaseSpinLockFromDpcLevel(PKSPIN_LOCK Spinlock);
PKDEVICE_QUEUE_ENTRY KeRemoveByKeyDeviceQueue(PKDEVICE_QUEUE DeviceQueue,
ULONG SortKey);
PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue(PKDEVICE_QUEUE DeviceQueue);
BOOLEAN KeRemoveEntryDeviceQueue(PKDEVICE_QUEUE DeviceQueue,
PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
BOOLEAN KeRemoveQueueDpc(PKDPC Dpc);
LONG KeResetEvent(PKEVENT Event);
LONG KeSetBasePriorityThread(PKTHREAD Thread, LONG Increment);
LONG KeSetEvent(PKEVENT Event, KPRIORITY Increment, BOOLEAN Wait);
KPRIORITY KeSetPriorityThread(PKTHREAD Thread, KPRIORITY Priority);
BOOLEAN KeSetTimer(PKTIMER Timer, LARGE_INTEGER DueTime, PKDPC Dpc);
BOOLEAN KeSetTimerEx(PKTIMER Timer, LARGE_INTEGER DueTime, LONG Period,
PKDPC Dpc);
VOID KeStallExecutionProcessor(ULONG MicroSeconds);
BOOLEAN KeSynchronizeExecution(PKINTERRUPT Interrupt,
PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
PVOID SynchronizeContext);
NTSTATUS KeWaitForMultipleObjects(ULONG Count,
PVOID Object[],
WAIT_TYPE WaitType,
KWAIT_REASON WaitReason,
KPROCESSOR_MODE WaitMode,
BOOLEAN Alertable,
PLARGE_INTEGER Timeout,
PKWAIT_BLOCK WaitBlockArray);
NTSTATUS KeWaitForMutexObject(PKMUTEX Mutex, KWAIT_REASON WaitReason,
KPROCESSOR_MODE WaitMode, BOOLEAN Alertable,
PLARGE_INTEGER Timeout);
NTSTATUS KeWaitForSingleObject(PVOID Object, KWAIT_REASON WaitReason,
KPROCESSOR_MODE WaitMode,
BOOLEAN Alertable, PLARGE_INTEGER Timeout);
/*
* FUNCTION: Initializes a spinlock
* ARGUMENTS:
* SpinLock = Spinlock to initialize
*/
VOID KeInitializeSpinLock(PKSPIN_LOCK SpinLock);
/*
* FUNCTION: Sets the current irql without altering the current processor
* state
* ARGUMENTS:
* newlvl = IRQ level to set
* NOTE: This is for internal use only
*/
VOID KeSetCurrentIrql(KIRQL newlvl);
/*
* FUNCTION: Brings the system down in a controlled manner when an
* inconsistency that might otherwise cause corruption has been detected
* ARGUMENTS:
* BugCheckCode = Specifies the reason for the bug check
* BugCheckParameter[1-4] = Additional information about bug
* RETURNS: Doesn't
*/
VOID KeBugCheckEx(ULONG BugCheckCode,
ULONG BugCheckParameter1,
ULONG BugCheckParameter2,
ULONG BugCheckParameter3,
ULONG BugCheckParameter4);
/*
* FUNCTION: Brings the system down in a controlled manner when an
* inconsistency that might otherwise cause corruption has been detected
* ARGUMENTS:
* BugCheckCode = Specifies the reason for the bug check
* RETURNS: Doesn't
*/
VOID KeBugCheck(ULONG BugCheckCode);

View File

@@ -1,141 +0,0 @@
typedef LONG KPRIORITY;
typedef VOID (*PKBUGCHECK_CALLBACK_ROUTINE)(PVOID Buffer, ULONG Length);
typedef BOOLEAN (*PKSYNCHRONIZE_ROUTINE)(PVOID SynchronizeContext);
typedef struct
{
} KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD;
typedef struct
{
} KMUTEX, *PKMUTEX;
typedef struct
{
} KSEMAPHORE, *PKSEMAPHORE;
typedef struct
{
} KTHREAD, *PKTHREAD;
/*
* PURPOSE: Included in every object that a thread can wait on
*/
typedef struct
{
/*
* PURPOSE: True if the object is signaling a change of state
*/
BOOLEAN signaled;
/*
* PURPOSE: Head of the queue of threads waiting on this object
*/
LIST_ENTRY wait_queue_head;
/*
* PURPOSE: True if all the threads waiting should be woken when the
* object changes state
*/
BOOLEAN wake_all;
} DISPATCHER_HEADER, *PDISPATCHER_HEADER;
/*
* PURPOSE: Describes an event
*/
typedef struct _KEVENT
{
/*
* PURPOSE: So we can use the general wait routine
*/
DISPATCHER_HEADER hdr;
/*
* PURPOSE: Type of event, notification or synchronization
*/
EVENT_TYPE type;
} KEVENT, *PKEVENT;
typedef struct _KSPIN_LOCK
{
KIRQL irql;
} KSPIN_LOCK, *PKSPIN_LOCK;
typedef struct
{
} KAPC;
typedef struct
{
} UNICODE_STRING;
typedef VOID (*PDRIVER_ADD_DEVICE)(VOID);
struct _KDPC;
/*
* PURPOSE: Defines a delayed procedure call routine
* NOTE:
* Dpc = The associated DPC object
* DeferredContext = Driver defined context for the DPC
* SystemArgument[1-2] = Undocumented.
*
*/
typedef VOID (*PKDEFERRED_ROUTINE)(struct _KDPC* Dpc, PVOID DeferredContext,
PVOID SystemArgument1, PVOID SystemArgument2);
typedef struct _KDPC
/*
* PURPOSE: Defines a delayed procedure call object
*/
{
/*
* PURPOSE: Magic value to check this is the current object type
*/
SHORT Type;
/*
* PURPOSE: Target processor or zero if untargetted
*/
UCHAR Number;
/*
* PURPOSE: Indication of desired latency before exection
*/
UCHAR Importance;
LIST_ENTRY DpcListEntry;
PKDEFERRED_ROUTINE DeferredRoutine;
PVOID DeferredContext;
PVOID SystemArgument1;
PVOID SystemArgument2;
/*
* PURPOSE: If non-zero then already in queue
*/
PULONG Lock;
} KDPC, *PKDPC;
typedef struct _KDEVICE_QUEUE
{
LIST_ENTRY ListHead;
BOOLEAN Busy;
KSPIN_LOCK Lock;
} KDEVICE_QUEUE, *PKDEVICE_QUEUE;
typedef struct _KDEVICE_QUEUE_ENTRY
{
LIST_ENTRY Entry;
ULONG Key;
} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY;
typedef struct _WAIT_CONTEXT_BLOCK
{
} WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;

View File

@@ -1,285 +0,0 @@
/* MEMORY MANAGMENT ******************************************************/
/*
* FUNCTION: Determines if the given virtual address is page aligned
*/
#define IS_PAGE_ALIGNED(Va) (((ULONG)Va)&0xfff)
/*
* PURPOSE: Returns the byte offset of a field within a structure
*/
#define FIELD_OFFSET(Type,Field) (LONG)(&(((Type *)(0))->Field))
/*
* PURPOSE: Returns the base address structure if the caller knows the
* address of a field within the structure
* ARGUMENTS:
* Address = address of the field
* Type = Type of the whole structure
* Field = Name of the field whose address is none
*/
#define CONTAINING_RECORD(Address,Type,Field) (Type *)(((LONG)Address) - FIELD_OFFSET(Type,Field))
/*
* FUNCTION: Returns the number of pages spanned by an address range
* ARGUMENTS:
* Va = start of range
* Size = Size of range
* RETURNS: The number of pages
*/
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va, Size)
/*
* FUNCTION: Returns FALSE is the pointer is NULL, TRUE otherwise
*/
#define ARGUMENT_PRESENT(arg) ((arg)!=NULL)
/*
* FUNCTION: Returns the byte offset of the address within its page
*/
#define BYTE_OFFSET(va) (((ULONG)va)%PAGESIZE)
/*
* FUNCTION: Takes a count in bytes and returns the number of pages
* required to hold it
*/
#define BYTES_TO_PAGES(size) (?)
/*
* FUNCTION: Allocates a range of physically contiguous cache aligned
* memory from the non-paged pool
* ARGUMENTS:
* NumberOfBytes = Size of the memory block to allocate
* HighestAcceptableAddress = Highest address valid for the caller
* RETURNS: The virtual address of the memory block on success
* NULL on error
*/
PVOID MmAllocateContiguousMemory(ULONG NumberOfBytes,
PHYSICAL_ADDRESS HighestAcceptableAddress);
/*
* FUNCTION: Allocates a virtual address range of noncached and cache
* aligned memory
* ARGUMENTS:
* NumberOfBytes = Size of region to allocate
* RETURNS: The base address of the range on success
* NULL on failure
*/
PVOID MmAllocateNonCachedMemory(ULONG NumberOfBytes);
/*
* FUNCTION: Fills in the corresponding physical page array for a given MDL
* for a buffer in nonpaged system space
* ARGUMENTS:
* MemoryDescriptorList = MDL to fill
*/
VOID MmBuildMdlForNonPagedPool(PMDL MemoryDescriptorList);
/*
* FUNCTION: Allocates and initializes an MDL
* ARGUMENTS:
* MemoryDescriptorList = Optional caller allocated MDL to initalize
* Base = Base virtual address for buffer
* Length = Length in bytes of the buffer
* RETURNS: A pointer to the initalized MDL
*/
PMDL MmCreateMdl(PMDL MemoryDescriptorList, PVOID Base, ULONG Length);
/*
* FUNCTION: Releases a range of physically contiguous memory allocated
* with MmAllocateContiguousMemory
* ARGUMENTS:
* BaseAddress = Vritual address of the memory to be freed
*/
VOID MmFreeContiguousMemory(PVOID BaseAddress);
/*
* FUNCTION: Releases a range of noncached memory allocated with
* MmAllocateNonCachedMemory
* ARGUMENTS:
* BaseAddress = Virtual address to be freed
* NumberOfBytes = size of the region to be freed
*/
VOID MmFreeNonCachedMemory(PVOID BaseAddress, ULONG NumberOfBytes);
/*
* FUNCTION: Returns the length in bytes of a buffer described by an MDL
* ARGUMENTS:
* Mdl = the mdl
* RETURNS: Size of the buffer
*/
ULONG MmGetMdlByteCount(PMDL Mdl);
/*
* FUNCTION: Returns the byte offset within a page of the buffer described
* by an MDL
* ARGUMENTS:
* Mdl = the mdl
* RETURNS: The offset in bytes
*/
ULONG MmGetMdlByteOffset(PMDL Mdl);
/*
* FUNCTION: Returns the initial virtual address for a buffer described
* by an MDL
* ARGUMENTS:
* Mdl = the mdl
* RETURNS: The initial virtual address
*/
PVOID MmGetMdlVirtualAddress(PMDL Mdl);
/*
* FUNCTION: Returns the physical address corresponding to a given valid
* virtual address
* ARGUMENTS:
* BaseAddress = the virtual address
* RETURNS: The physical address
*/
PHYSICAL_ADDRESS MmGetPhysicalAddress(PVOID BaseAddress);
/*
* FUNCTION: Maps the physical pages described by an MDL into system space
* ARGUMENTS:
* Mdl = mdl
* RETURNS: The base system address for the mapped buffer
*/
PVOID MmGetSystemAddressForMdl(PMDL Mdl);
/*
* FUNCTION: Initalizes an mdl
* ARGUMENTS:
* MemoryDescriptorList = MDL to be initalized
* BaseVa = Base virtual address of the buffer
* Length = Length in bytes of the buffer
*/
VOID MmInitalizeMdl(PMDL MemoryDescriptorList, PVOID BaseVa, ULONG Length);
/*
* FUNCTION: Checks whether an address is valid for read/write
* ARGUMENTS:
* VirtualAddress = address to be check
* RETURNS: TRUE if an access would be valid
*/
BOOLEAN MmIsAddressValid(PVOID VirtualAddress);
/*
* FUNCTION: Checks if the current platform is a workstation or a server
* RETURNS: If the system is a server returns true
* NOTE: Drivers can use this as an estimate of the likely resources
* available
*/
BOOLEAN MmIsThisAnAsSystem(VOID);
/*
* FUNCTION: Locks a section of the driver's code into memory
* ARGUMENTS:
* AddressWithinSection = Any address in the region
* RETURNS: A handle to the region
*/
PVOID MmLockPagableCodeSection(PVOID AddressWithinSection);
/*
* FUNCTION: Locks a section of the driver's data into memory
* ARGUMENTS:
* AddressWithinSection = Any address in the region
* RETURNS: A handle to the region
*/
PVOID MmLockPagableDataSection(PVOID AddressWithinSection);
/*
* FUNCTION: Locks a section of memory
* ARGUMENTS:
* ImageSectionHandle = handle returned from MmLockPagableCodeSection
* or MmLockPagableDataSection
*/
VOID MmLockPagableSectionByHandle(PVOID ImageSectionHandle);
/*
* FUNCTION: Maps a physical memory range into system space
* ARGUMENTS:
* PhysicalAddress = First physical address to map
* NumberOfBytes = Number of bytes to map
* CacheEnable = TRUE if the range can be cached
* RETURNS: The base virtual address which maps the region
*/
PVOID MmMapIoSpace(PHYSICAL_ADDRESS PhysicalAddress, ULONG NumberOfBytes,
BOOLEAN CacheEnable);
/*
* FUNCTION: Maps the pages described by a given MDL
* ARGUMENTS:
* MemoryDescriptorList = MDL updated by MmProbeAndLockPages
* AccessMode = Access mode in which to map the MDL
* RETURNS: The base virtual address which maps the buffer
*/
PVOID MmMapLockedPages(PMDL MemoryDescriptorList, KPROCESSOR_MODE AccessMode);
/*
* FUNCTION: Makes the whole driver pageable
* ARGUMENTS:
* AddressWithinSection = Any address within the driver
*/
VOID MmPageEntireDriver(PVOID AddressWithinSection);
/*
* FUNCTION: Resets the pageable status of a driver's sections to their
* compile time settings
* ARGUMENTS:
* AddressWithinSection = Any address within the driver
*/
VOID MmResetDriverPaging(PVOID AddressWithinSection);
/*
* FUNCTION: Reinitializes a caller-allocated MDL
* ARGUMENTS:
* Mdl = Points to the MDL that will be reused
*/
VOID MmPrepareMdlForReuse(PMDL Mdl);
/*
* FUNCTION: Probes the specified pages, makes them resident and locks
* the physical pages mapped by the virtual address range
* ARGUMENTS:
* MemoryDescriptorList = MDL which supplies the virtual address,
* byte offset and length
* AccessMode = Access mode with which to probe the arguments
* Operation = Types of operation for which the pages should be
* probed
*/
VOID MmProbeAndLockPages(PMDL MemoryDescriptorList,
KPROCESSOR_MODE AccessMode,
LOCK_OPERATION Operation);
/*
* FUNCTION: Returns an estimate of the amount of memory in the system
* RETURNS: Either MmSmallSystem, MmMediumSystem or MmLargeSystem
*/
MM_SYSTEM_SIZE MmQuerySystemSize(VOID);
/*
* FUNCTION: Returns the number of bytes to allocate for an MDL
* describing a given address range
* ARGUMENTS:
* Base = Base virtual address for the region
* Length = size in bytes of the region
* RETURNS: The number of bytes required for the MDL
*/
ULONG MmSizeOfMdl(PVOID Base, ULONG Length);
/*
* FUNCTION: Unlocks the physical pages described by a given MDL
* ARGUMENTS:
* Mdl = Mdl to unlock
*/
VOID MmUnlockPages(PMDL Mdl);
/*
* FUNCTION: Releases a section of driver code or data previously locked into
* memory
* ARGUMENTS:
* ImageSectionHandle = Handle for the locked section
*/
VOID MmUnlockPagableImageSection(PVOID ImageSectionHandle);
VOID MmUnmapIoSpace(PVOID BaseAddress, ULONG NumberOfBytes);
VOID MmUnmapLockedPages(PVOID BaseAddress, PMDL MemoryDescriptorList);

View File

@@ -1,24 +0,0 @@
typedef struct _MDL
/*
* PURPOSE: Describes a user buffer passed to a system API
*/
{
/*
* Base address of the buffer in user mode
*/
PVOID Base;
/*
* Length of the buffer in bytes
*/
ULONG Length;
/*
* System address of buffer or NULL if not mapped
*/
PVOID SysBase;
/*
* Below this is a variable length list of page physical address
*/
} MDL, *PMDL;

View File

@@ -1,41 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ddk/ntddk.h
* PURPOSE: Interface definitions for drivers
* PROGRAMMER: David Welch (welch@mcmail.com)
* UPDATE HISTORY:
* 15/05/98: Created
*/
#ifndef __NTDDK_H
#define __NTDDK_H
#ifdef __cplusplus
extern "C"
{
#endif
/* INCLUDES ***************************************************************/
#include <windows.h>
#include <internal/hal/page.h>
#include <ddk/defines.h>
#include <ddk/types.h>
#include <ddk/structs.h>
#include <internal/hal/ddk.h>
#include <ddk/rtl.h>
#include <ddk/zw.h>
#include <ddk/exfuncs.h>
#include <ddk/mmfuncs.h>
#include <ddk/kefuncs.h>
#include <ddk/iofuncs.h>
#include <ddk/psfuncs.h>
#ifdef __cplusplus
};
#endif
#endif /* __NTDDK_H */

View File

@@ -1,44 +0,0 @@
/* OBJECT MANAGER ************************************************************/
/*
* FUNCTION: Decrements the object's reference count and performs retention
* checks
* ARGUMENTS:
* Object = Object's body
*/
VOID ObDeferenceObject(PVOID Object);
/*
* FUNCTION: Performs access validation on an object handle and if access
* is granted returns a pointer to the object's body
* ARGUMENTS:
* Handle = Handle to the object
* DesiredAccess = Desired access to the object
* ObjectType (OPTIONAL) = Pointer to the object's type definition
* AccessMode = Access mode to use for the check
* Object (OUT) = Caller supplied storage for a pointer to the object's
* body
* HandleInformation (OUT) = Points to a structure which receives
* information about the handle
* RETURNS: Status
*/
NTSTATUS ObReferenceObjectByHandle(HANDLE Handle,
ACCESS_MASK DesiredAccess,
POBJECT_TYPE ObjectType,
KPROCESSOR_MODE AccessMode,
PVOID* Object,
POBJECT_HANDLE_INFORMATION HandleInfo);
/*
* FUNCTION: Increments the reference count for a given object
* ARGUMENTS:
* Object = Points to the body of the object
* AccessMode = Requested access to the object
* ObjectType = Pointer to the object's type definition
* AccessMode = Access mode to use for the security check
* RETURNS: Status
*/
NTSTATUS ObReferenceObjectByPointer(PVOID Object,
ACCESS_MASK DesiredAccess,
POBJECT_TYPE ObjectType,
KPROCESSOR_MODE AccessMode);

View File

@@ -1,149 +0,0 @@
struct _DIRECTORY_OBJECT;
typedef struct _OBJECT_HANDLE_INFORMATION {
ULONG HandleAttributes;
ACCESS_MASK GrantedAccess;
} OBJECT_HANDLE_INFORMATION, *POBJECT_HANDLE_INFORMATION;
struct _OBJECT;
typedef struct _OBJECT_TYPE
{
/*
* PURPOSE: Name of the type
*/
LPCSTR TypeName;
/*
* PURPOSE: Total number of objects of this type
*/
ULONG TotalObjects;
/*
* PURPOSE: Total number of handles of this type
*/
ULONG TotalHandles;
/*
* PURPOSE: Maximum objects of this type
*/
ULONG MaxObjects;
/*
* PURPOSE: Maximum handles of this type
*/
ULONG MaxHandles;
/*
* PURPOSE: Paged pool charge
*/
ULONG PagedPoolCharge;
/*
* PURPOSE: Nonpaged pool charge
*/
ULONG NonpagedPoolCharge;
/*
* PURPOSE: Dumps the object
* NOTE: To be defined
*/
VOID (*Dump)(VOID);
/*
* PURPOSE: Opens the object
* NOTE: To be defined
*/
VOID (*Open)(VOID);
/*
* PURPOSE: Called to close an object if OkayToClose returns true
*/
VOID (*Close)(VOID);
/*
* PURPOSE: Called to close an object if OkayToClose returns true
*/
VOID (*Delete)(VOID);
/*
* PURPOSE: Called when an open attempts to open a file apparently
* residing within the object
*/
VOID (*Parse)(VOID);
/*
*/
VOID (*Security)(VOID);
/*
*/
VOID (*QueryName)(VOID);
/*
* PURPOSE: Called when a process asks to close the object
*/
VOID (*OkayToClose)(VOID);
} OBJECT_TYPE, *POBJECT_TYPE;
typedef struct _OBJECT
/*
* PURPOSE: Header for every object managed by the object manager
*/
{
/*
* PURPOSE: Name of this entry
*/
LPCSTR name;
/*
* PURPOSE: Our entry in our parents list of subdirectory
*/
LIST_ENTRY entry;
/*
* PURPOSE: Number of non-handle references to this object
*/
ULONG RefCount;
/*
* PURPOSE: Number of handles opened to this object
*/
ULONG HandleCount;
/*
* PURPOSE: Object type
* NOTE: This overlaps the first member of the object body
*/
CSHORT Type;
/*
* PURPOSE: Object size
* NOTE: This overlaps the second member of the object body
*/
CSHORT Size;
} OBJECT_HEADER, *POBJECT_HEADER;
/*
* PURPOSE: Defines an object
*/
typedef struct _OBJECT_ATTRIBUTES
{
ULONG Length;
/*
* PURPOSE: Attributes of the object
*/
ULONG Attributes;
//SECURITY_DESCRIPTOR SecurityDescriptor
//SecurityQualityOfService
struct _DIRECTORY_OBJECT* parent;
char* name;
char* path;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;

View File

@@ -1,27 +0,0 @@
typedef NTSTATUS (*PKSTART_ROUTINE)(PVOID StartContext);
/*
* FUNCTION: Creates a thread which executes in kernel mode
* ARGUMENTS:
* ThreadHandle (OUT) = Caller supplied storage for the returned thread
* handle
* DesiredAccess = Requested access to the thread
* ObjectAttributes = Object attributes (optional)
* ProcessHandle = Handle of process thread will run in
* NULL to use system process
* ClientId (OUT) = Caller supplied storage for the returned client id
* of the thread (optional)
* StartRoutine = Entry point for the thread
* StartContext = Argument supplied to the thread when it begins
* execution
* RETURNS: Success or failure status
*/
NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes,
HANDLE ProcessHandle,
PCLIENT_ID ClientId,
PKSTART_ROUTINE StartRoutine,
PVOID StartContext);

View File

@@ -1,111 +0,0 @@
#ifndef __INCLUDE_DDK_PSTYPES_H
#define __INCLUDE_DDK_PSTYPES_H
#include <kernel32/heap.h>
typedef struct _CLIENT_ID
{
HANDLE UniqueProcess;
HANDLE UniqueThread;
} CLIENT_ID, *PCLIENT_ID;
//typedef void* HEAP;
typedef void* HANDLE_TABLE;
typedef void* ATOMTABLE;
typedef struct _pPebInfo {
LPWSTR lpCommandLine;
DWORD cb;
HANDLE hStdInput; //18
HANDLE hStdput;
HANDLE hStdError;
LPWSTR lpEnvironment;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
DWORD wShowWindow;
LPTSTR lpTitle;
LPTSTR lpDesktop;
LPTSTR reserved;
DWORD cbReserved2;
LPTSTR lpReserved1;
} PEBINFO;
typedef struct _NT_PEB
{
LONG ImageBaseAddress;
DWORD nActiveStdHandle;
void *HeapIndex;
DWORD dwTlsBits[2]; // tls in use bits
WORD NumberOfProcessors;
WORD NtGlobalFlag;
DWORD dwCriticalSectionTime;
DWORD dwHeapReserve;
DWORD dwHeapCommit;
DWORD dwHeapDecommitFreeBlockThreshold;
DWORD dwNumberOfHeaps;
DWORD dwMaxiumNumberOfHeaps;
PEBINFO *pPebInfo;
HEAP *pProcessHeap;
HANDLE_TABLE htGDISharedHandleTable;
ATOMTABLE LocalAtomTable;
CRITICAL_SECTION *pCriticalSection;
WORD wMajorVersion;
WORD wMinorVersion;
WORD wBuildNumber;
WORD wPlatformId;
} NT_PEB;
typedef NT_PEB *PPEB;
typedef struct _NT_TIB {
struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
PVOID StackBase;
PVOID StackLimit;
PVOID SubSystemTib;
union {
PVOID FiberData;
ULONG Version;
} s;
PVOID ArbitraryUserPointer;
struct _NT_TIB *Self;
} NT_TIB, *PNT_TIB;
typedef struct _NT_TEB
{
NT_TIB Tib;
DWORD dwProcessId;
DWORD dwThreadId;
HANDLE hRPC;
NT_PEB *pPeb;
DWORD dwErrCode;
WORD nMutexCount;
LCID Locale;
//HQUEUE MessageQueue
DWORD dwTlsIndex ;
LPVOID TlsData[512];
} NT_TEB;
typedef NT_TEB *PINITIAL_TEB;
typedef struct _EPROCESS
{
} EPROCESS, *PEPROCESS;
typedef struct _ETHREAD
{
} ETHREAD, *PETHREAD;
#endif /* __INCLUDE_DDK_PSTYPES_H */

View File

@@ -1,184 +0,0 @@
/*
*
*/
#ifndef __DDK_RTL_H
#define __DDK_RTL_H
typedef struct _TIME_FIELDS
{
CSHORT Year;
CSHORT Month;
CSHORT Day;
CSHORT Hour;
CSHORT Minute;
CSHORT Second;
CSHORT Milliseconds;
CSHORT Weekday;
} TIME_FIELDS, *PTIME_FIELDS;
/*
* PURPOSE: Flags for RtlQueryRegistryValues
*/
enum
{
RTL_QUERY_REGISTRY_SUBKEY,
RTL_QUERY_REGISTRY_TOPKEY,
RTL_QUERY_REGISTRY_REQUIRED,
RTL_QUERY_REGISTRY_NOVALUE,
RTL_QUERY_REGISTRY_NOEXPAND,
RTL_QUERY_REGISTRY_DIRECT,
RTL_QUERY_REGISTRY_DELETE,
};
typedef NTSTATUS (*PRTL_QUERY_REGISTRY_ROUTINE)(PWSTR ValueName,
ULONG ValueType,
PVOID ValueData,
ULONG ValueLength,
PVOID Context,
PVOID EntryContext);
typedef struct _RTL_QUERY_REGISTRY_TABLE
{
PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
ULONG Flags;
PWSTR Name;
PVOID EntryContext;
ULONG DefaultType;
PVOID DefaultData;
ULONG DefaultLength;
} RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
/*
* PURPOSE: Used with RtlCheckRegistryKey, RtlCreateRegistryKey,
* RtlDeleteRegistryKey
*/
enum
{
RTL_REGISTRY_ABSOLUTE,
RTL_REGISTRY_SERVICES,
RTL_REGISTRY_CONTROL,
RTL_REGISTRY_WINDOWS_NT,
RTL_REGISTRY_DEVICEMAP,
RTL_REGISTRY_USER,
RTL_REGISTRY_OPTIONAL,
RTL_REGISTRY_VALUE,
};
/*
* FUNCTION: Sets up a parameter of type OBJECT_ATTRIBUTES for a
* subsequent call to ZwCreateXXX or ZwOpenXXX
* ARGUMENTS:
* InitializedAttributes (OUT) = Caller supplied storage for the
* object attributes
* ObjectName = Full path name for object
* Attributes = Attributes for the object
* RootDirectory = Where the object should be placed or NULL
* SecurityDescriptor = Ignored
*/
VOID InitializeObjectAttributes(POBJECT_ATTRIBUTES InitializedAttributes,
PUNICODE_STRING ObjectName,
ULONG Attributes,
HANDLE RootDirectory,
PSECURITY_DESCRIPTOR SecurityDescriptor);
VOID InitializeListHead(PLIST_ENTRY ListHead);
VOID InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry);
BOOLEAN IsListEmpty(PLIST_ENTRY ListHead);
PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY ListHead);
VOID PushEntryList(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry);
VOID RemoveEntryList(PLIST_ENTRY Entry);
PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead);
PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead);
ULONG RtlAnsiStringToUnicodeSize(PANSI_STRING AnsiString);
NTSTATUS RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString,
PANSI_STRING SourceString,
BOOLEAN AllocateDestinationString);
NTSTATUS RtlAppendUnicodeStringToString(PUNICODE_STRING Destination,
PUNICODE_STRING Source);
NTSTATUS RtlAppendUnicodeToString(PUNICODE_STRING Destination,
PWSTR Source);
NTSTATUS RtlCharToInteger(PCSZ String, ULONG Base, PULONG Value);
NTSTATUS RtlCheckRegistryKey(ULONG RelativeTo, PWSTR Path);
ULONG RtlCompareMemory(PVOID Source1, PVOID Source2, ULONG Length);
LONG RtlCompareString(PSTRING String1, PSTRING String2,
BOOLEAN CaseInsensitive);
LONG RtlCompareUnicodeString(PUNICODE_STRING String1,
PUNICODE_STRING String2,
BOOLEAN BaseInsensitive);
LARGE_INTEGER RtlConvertLongToLargeInteger(LONG SignedInteger);
LARGE_INTEGER RtlConvertUlongToLargeInteger(ULONG UnsignedInteger);
VOID RtlCopyBytes(PVOID Destination, CONST VOID* Source, ULONG Length);
VOID RtlCopyMemory(VOID* Destination, VOID* Source, ULONG Length);
VOID RtlCopyString(PSTRING DestinationString, PSTRING SourceString);
VOID RtlCopyUnicodeString(PUNICODE_STRING DestinationString,
PUNICODE_STRING SourceString);
NTSTATUS RtlCreateRegistryKey(ULONG RelativeTo,
PWSTR Path);
NTSTATUS RtlCreateSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor,
ULONG Revision);
NTSTATUS RtlDeleteRegistryValue(ULONG RelativeTo,
PWSTR Path,
PWSTR ValueName);
LARGE_INTEGER RtlEnlargedIntegerMultiply(LONG Multiplicand,
LONG Multiplier);
ULONG RtlEnlargedUnsignedDivide(ULARGE_INTEGER Dividend,
ULONG Divisor,
PULONG Remainder);
LARGE_INTEGER RtlEnlargedUnsignedMultiply(ULONG Multiplicand,
ULONG Multiplier);
BOOLEAN RtlEqualString(PSTRING String1,
PSTRING String2,
BOOLEAN CaseInSensitive);
BOOLEAN RtlEqualUnicodeString(PUNICODE_STRING String1,
PUNICODE_STRING String2,
BOOLEAN CaseInSensitive);
LARGE_INTEGER RtlExtendedIntegerMultiply(LARGE_INTEGER Multiplicand,
LONG Multiplier);
LARGE_INTEGER RtlExtendedLargeIntegerDivide(LARGE_INTEGER Dividend,
ULONG Divisor,
PULONG Remainder);
LARGE_INTEGER RtlExtendedMagicDivide(LARGE_INTEGER Dividend,
LARGE_INTEGER MagicDivisor,
CCHAR ShiftCount);
VOID RtlFillMemory(PVOID Destination, ULONG Length, UCHAR Fill);
VOID RtlFreeAnsiString(PANSI_STRING AnsiString);
VOID RtlFreeUnicodeString(PUNICODE_STRING UnicodeString);
VOID RtlInitAnsiString(PANSI_STRING DestinationString,
PCSZ SourceString);
VOID RtlInitString(PSTRING DestinationString, PCSZ SourceString);
VOID RtlInitUnicodeString(PUNICODE_STRING DestinationString,
PCWSTR SourceString);
NTSTATUS RtlIntegerToUnicodeString(ULONG Value,
ULONG Base,
PUNICODE_STRING String);
LARGE_INTEGER RtlLargeIntegerAdd(LARGE_INTEGER Addend1,
LARGE_INTEGER Addend2);
VOID RtlLargeIntegerAnd(PLARGE_INTEGER Result,
LARGE_INTEGER Source,
LARGE_INTEGER Mask);
/* MISSING FUNCTIONS GO HERE */
ULONG RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor);
VOID RtlMoveMemory(PVOID Destination, CONST VOID* Source, ULONG Length);
NTSTATUS RtlQueryRegistryValues(ULONG RelativeTo,
PWSTR Path,
PRTL_QUERY_REGISTRY_TABLE QueryTable,
PVOID Context, PVOID Environment);
VOID RtlRetrieveUlong(PULONG DestinationAddress,
PULONG SourceAddress);
VOID RtlRetrieveUshort(PUSHORT DestinationAddress,
PUSHORT SourceAddress);
NTSTATUS RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR SecurityDescriptor,
BOOLEAN DaclPresent,
PACL Dacl,
BOOLEAN DaclDefaulted);
VOID RtlStoreLong(PULONG Address, ULONG Value);
VOID RtlStoreUshort(PUSHORT Address, USHORT Value);
BOOLEAN RtlTimeFieldsToTime(PTIME_FIELDS TimeFields, PLARGE_INTEGER Time);
VOID RtlTimeToTimeFields(PLARGE_INTEGER Time, PTIME_FIELDS TimeFields);
#endif /* __DDK_RTL_H */

View File

@@ -1,318 +0,0 @@
/* SYSTEM STRUCTURES ******************************************************/
#include <internal/hal/hal.h>
#include <ddk/cfgtypes.h>
#include <ddk/ketypes.h>
#include <ddk/obtypes.h>
#include <ddk/mmtypes.h>
#include <ddk/iotypes.h>
#include <ddk/extypes.h>
#include <ddk/pstypes.h>
/*
* PURPOSE: Thread object
*/
typedef struct
{
CSHORT Type;
CSHORT Size;
/*
* PURPOSE: Entry in the linked list of threads
*/
LIST_ENTRY Entry;
/*
* PURPOSE: Current state of the thread
*/
ULONG State;
/*
* PURPOSE: Priority modifier of the thread
*/
ULONG Priority;
/*
* PURPOSE: Pointer to our parent process
*/
// PEPROCESS Parent;
/*
* PURPOSE: Handle of our parent process
*/
HANDLE ParentHandle;
/*
* PURPOSE: Not currently used
*/
ULONG AffinityMask;
/*
* PURPOSE: Saved thread context
*/
hal_thread_state context;
} THREAD_OBJECT, *PTHREAD_OBJECT;
/*
* PURPOSE: Object describing the wait a thread is currently performing
*/
typedef struct
{
/*
* PURPOSE: Pointer to the waiting thread
*/
PTHREAD_OBJECT thread;
/*
* PURPOSE: Entry in the wait queue for the object being waited on
*/
LIST_ENTRY Entry;
/*
* PURPOSE: Pointer to the object being waited on
*/
DISPATCHER_HEADER* wait_object;
} KWAIT_BLOCK, *PKWAIT_BLOCK;
typedef struct _ADAPTER_OBJECT
{
} ADAPTER_OBJECT, *PADAPTER_OBJECT;
typedef struct _CONTROLLER_OBJECT
{
PVOID ControllerExtension;
} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
typedef struct _STRING
{
/*
* Length in bytes of the string stored in buffer
*/
USHORT Length;
/*
* Maximum length of the string
*/
USHORT MaximumLength;
/*
* String
*/
PCHAR Buffer;
} STRING, *PSTRING;
typedef struct _ANSI_STRING
{
/*
* Length in bytes of the string stored in buffer
*/
USHORT Length;
/*
* Maximum length of the string
*/
USHORT MaximumLength;
/*
* String
*/
PCHAR Buffer;
} ANSI_STRING, *PANSI_STRING;
typedef struct _KTIMER
{
/*
* Pointers to maintain the linked list of activated timers
*/
LIST_ENTRY entry;
/*
* Absolute expiration time in system time units
*/
unsigned long long expire_time;
/*
* Optional dpc associated with the timer
*/
PKDPC dpc;
/*
* True if the timer is signaled
*/
BOOLEAN signaled;
/*
* True if the timer is in the system timer queue
*/
BOOLEAN running;
/*
* Type of the timer either Notification or Synchronization
*/
TIMER_TYPE type;
/*
* Period of the timer in milliseconds (zero if once-only)
*/
ULONG period;
} KTIMER, *PKTIMER;
typedef struct _IO_RESOURCE_DESCRIPTOR
{
UCHAR Option;
UCHAR Type;
UCHAR SharedDisposition;
/*
* Reserved for system use
*/
UCHAR Spare1;
USHORT Flags;
/*
* Reserved for system use
*/
UCHAR Spare2;
union
{
struct
{
ULONG Length;
ULONG Alignment;
PHYSICAL_ADDRESS MinimumAddress;
PHYSICAL_ADDRESS MaximumAddress;
} Port;
struct
{
ULONG Length;
ULONG Alignment;
PHYSICAL_ADDRESS MinimumAddress;
PHYSICAL_ADDRESS MaximumAddress;
} Memory;
struct
{
ULONG MinimumVector;
ULONG MaximumVector;
} Interrupt;
struct
{
ULONG MinimumChannel;
ULONG MaximumChannel;
} Dma;
} u;
} IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR;
typedef struct _IO_RESOURCE_LIST
{
USHORT Version;
USHORT Revision;
ULONG Count;
IO_RESOURCE_DESCRIPTOR Descriptors[1];
} IO_RESOURCE_LIST, *PIO_RESOURCE_LIST;
typedef struct _IO_RESOURCES_REQUIREMENTS_LIST
{
/*
* List size in bytes
*/
ULONG ListSize;
/*
* System defined enum for the bus
*/
INTERFACE_TYPE InterfaceType;
ULONG BusNumber;
ULONG SlotNumber;
ULONG Reserved[3];
ULONG AlternativeLists;
IO_RESOURCE_LIST List[1];
} IO_RESOURCES_REQUIREMENTS_LIST, *PIO_RESOURCE_REQUIREMENTS_LIST;
typedef struct
{
UCHAR Type;
UCHAR ShareDisposition;
USHORT Flags;
union
{
struct
{
PHYSICAL_ADDRESS Start;
ULONG Length;
} Port;
struct
{
ULONG Level;
ULONG Vector;
ULONG Affinity;
} Interrupt;
struct
{
PHYSICAL_ADDRESS Start;
ULONG Length;
} Memory;
struct
{
ULONG Channel;
ULONG Port;
ULONG Reserved1;
} Dma;
struct
{
ULONG DataSize;
ULONG Reserved1;
ULONG Reserved2;
} DeviceSpecificData;
} u;
} CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
typedef struct
{
USHORT Version;
USHORT Revision;
ULONG Count;
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
} CM_PARTIAL_RESOURCE_LIST;
typedef struct
{
INTERFACE_TYPE InterfaceType;
ULONG BusNumber;
CM_PARTIAL_RESOURCE_LIST PartialResourceList;
} CM_FULL_RESOURCE_DESCRIPTOR;
typedef struct
{
ULONG Count;
CM_FULL_RESOURCE_DESCRIPTOR List[1];
} CM_RESOURCE_LIST, *PCM_RESOURCE_LIST;
struct _KINTERRUPT;
typedef BOOLEAN (*PKSERVICE_ROUTINE)(struct _KINTERRUPT* Interrupt,
PVOID ServiceContext);
typedef struct _KINTERRUPT
{
ULONG Vector;
KAFFINITY ProcessorEnableMask;
PKSPIN_LOCK IrqLock;
BOOLEAN Shareable;
BOOLEAN FloatingSave;
PKSERVICE_ROUTINE ServiceRoutine;
PVOID ServiceContext;
LIST_ENTRY Entry;
KIRQL SynchLevel;
} KINTERRUPT, *PKINTERRUPT;

View File

@@ -1,85 +0,0 @@
#ifndef __DDK_TYPES_H
#define __DDK_TYPES_H
// these should be moved to a file like ntdef.h
typedef const int CINT;
typedef ULONG KAFFINITY;
typedef KAFFINITY *PKAFFINITY;
//typedef LONG KPRIORITY;
typedef LONG NTSTATUS;
typedef ULONG DEVICE_TYPE;
enum
{
DIRECTORY_QUERY,
DIRECTORY_TRAVERSE,
DIRECTORY_CREATE_OBJECT,
DIRECTORY_CREATE_SUBDIRECTORY,
DIRECTORY_ALL_ACCESS,
};
typedef unsigned long long ULONGLONG;
/*
* General type for status information
*/
//typedef LONG NTSTATUS;
/*
* Unicode string type
* FIXME: Real unicode please
*/
typedef char* PUNICODE_STRING;
#if REAL_UNICODE
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
#endif
typedef enum _SECTION_INHERIT {
ViewShare = 1,
ViewUnmap = 2
} SECTION_INHERIT;
/*
* Various other types (all quite pointless)
*/
//typedef ULONG DEVICE_TYPE;
typedef ULONG KPROCESSOR_MODE;
typedef ULONG KIRQL;
typedef KIRQL* PKIRQL;
typedef ULONG IO_ALLOCATION_ACTION;
//typedef ULONG INTERFACE_TYPE;
typedef ULONG POOL_TYPE;
typedef ULONG TIMER_TYPE;
typedef ULONG MM_SYSTEM_SIZE;
typedef ULONG LOCK_OPERATION;
typedef ULONG KEY_INFORMATION_CLASS;
typedef ULONG FILE_INFORMATION_CLASS;
typedef ULONG KEY_VALUE_INFORMATION_CLASS;
//typedef ULONG SECTION_INHERIT;
typedef ULONG EVENT_TYPE;
//typedef ULONG KAFFINITY;
//typedef KAFFINITY* PKAFFINITY;
typedef ULONG PHYSICAL_ADDRESS;
typedef PHYSICAL_ADDRESS* PPHYSICAL_ADDRESS;
typedef ULONG WAIT_TYPE;
typedef ULONG KWAIT_REASON;
typedef ULONG KINTERRUPT_MODE;
typedef USHORT CSHORT;
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,713 +0,0 @@
/*
Errors.h
Windows32 API error codes
Copyright (C) 1996 Free Software Foundation, Inc.
Author: Scott Christley <scottc@net-community.com>
This file is part of the Windows32 API Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 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
Library General Public License for more details.
If you are interested in a warranty or support for this source code,
contact Scott Christley <scottc@net-community.com> for more information.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _GNU_H_WINDOWS32_ERROR
#define _GNU_H_WINDOWS32_ERROR
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* Numerical order */
#define LZERROR_UNKNOWNALG (-8)
#define LZERROR_BADVALUE (-7)
#define LZERROR_GLOBLOCK (-6)
#define LZERROR_GLOBALLOC (-5)
#define LZERROR_WRITE (-4)
#define LZERROR_READ (-3)
#define LZERROR_BADOUTHANDLE (-2)
#define LZERROR_BADINHANDLE (-1)
#define NO_ERROR 0L
#define ERROR_SUCCESS 0L
#define ERROR_INVALID_FUNCTION 1L
#define ERROR_FILE_NOT_FOUND 2L
#define ERROR_PATH_NOT_FOUND 3L
#define ERROR_TOO_MANY_OPEN_FILES 4L
#define ERROR_ACCESS_DENIED 5L
#define ERROR_INVALID_HANDLE 6L
#define ERROR_ARENA_TRASHED 7L
#define ERROR_NOT_ENOUGH_MEMORY 8L
#define ERROR_INVALID_BLOCK 9L
#define ERROR_BAD_ENVIRONMENT 10L
#define ERROR_BAD_FORMAT 11L
#define ERROR_INVALID_ACCESS 12L
#define ERROR_INVALID_DATA 13L
#define ERROR_OUTOFMEMORY 14L
#define ERROR_INVALID_DRIVE 15L
#define ERROR_CURRENT_DIRECTORY 16L
#define ERROR_NOT_SAME_DEVICE 17L
#define ERROR_NO_MORE_FILES 18L
#define ERROR_WRITE_PROTECT 19L
#define ERROR_BAD_UNIT 20L
#define ERROR_NOT_READY 21L
#define ERROR_BAD_COMMAND 22L
#define ERROR_CRC 23L
#define ERROR_BAD_LENGTH 24L
#define ERROR_SEEK 25L
#define ERROR_NOT_DOS_DISK 26L
#define ERROR_SECTOR_NOT_FOUND 27L
#define ERROR_OUT_OF_PAPER 28L
#define ERROR_WRITE_FAULT 29L
#define ERROR_READ_FAULT 30L
#define ERROR_GEN_FAILURE 31L
#define ERROR_SHARING_VIOLATION 32L
#define ERROR_LOCK_VIOLATION 33L
#define ERROR_WRONG_DISK 34L
#define ERROR_SHARING_BUFFER_EXCEEDED 36L
#define ERROR_HANDLE_EOF 38L
#define ERROR_HANDLE_DISK_FULL 39L
#define ERROR_NOT_SUPPORTED 50L
#define ERROR_REM_NOT_LIST 51L
#define ERROR_DUP_NAME 52L
#define ERROR_BAD_NETPATH 53L
#define ERROR_NETWORK_BUSY 54L
#define ERROR_DEV_NOT_EXIST 55L
#define ERROR_TOO_MANY_CMDS 56L
#define ERROR_ADAP_HDW_ERR 57L
#define ERROR_BAD_NET_RESP 58L
#define ERROR_UNEXP_NET_ERR 59L
#define ERROR_BAD_REM_ADAP 60L
#define ERROR_PRINTQ_FULL 61L
#define ERROR_NO_SPOOL_SPACE 62L
#define ERROR_PRINT_CANCELLED 63L
#define ERROR_NETNAME_DELETED 64L
#define ERROR_NETWORK_ACCESS_DENIED 65L
#define ERROR_BAD_DEV_TYPE 66L
#define ERROR_BAD_NET_NAME 67L
#define ERROR_TOO_MANY_NAMES 68L
#define ERROR_TOO_MANY_SESS 69L
#define ERROR_SHARING_PAUSED 70L
#define ERROR_REQ_NOT_ACCEP 71L
#define ERROR_REDIR_PAUSED 72L
#define ERROR_FILE_EXISTS 80L
#define ERROR_CANNOT_MAKE 82L
#define ERROR_FAIL_I24 83L
#define ERROR_OUT_OF_STRUCTURES 84L
#define ERROR_ALREADY_ASSIGNED 85L
#define ERROR_INVALID_PASSWORD 86L
#define ERROR_INVALID_PARAMETER 87L
#define ERROR_NET_WRITE_FAULT 88L
#define ERROR_NO_PROC_SLOTS 89L
#define ERROR_TOO_MANY_SEMAPHORES 100L
#define ERROR_EXCL_SEM_ALREADY_OWNED 101L
#define ERROR_SEM_IS_SET 102L
#define ERROR_TOO_MANY_SEM_REQUESTS 103L
#define ERROR_INVALID_AT_INTERRUPT_TIME 104L
#define ERROR_SEM_OWNER_DIED 105L
#define ERROR_SEM_USER_LIMIT 106L
#define ERROR_DISK_CHANGE 107L
#define ERROR_DRIVE_LOCKED 108L
#define ERROR_BROKEN_PIPE 109L
#define ERROR_OPEN_FAILED 110L
#define ERROR_BUFFER_OVERFLOW 111L
#define ERROR_DISK_FULL 112L
#define ERROR_NO_MORE_SEARCH_HANDLES 113L
#define ERROR_INVALID_TARGET_HANDLE 114L
#define ERROR_INVALID_CATEGORY 117L
#define ERROR_INVALID_VERIFY_SWITCH 118L
#define ERROR_BAD_DRIVER_LEVEL 119L
#define ERROR_CALL_NOT_IMPLEMENTED 120L
#define ERROR_SEM_TIMEOUT 121L
#define ERROR_INSUFFICIENT_BUFFER 122L
#define ERROR_INVALID_NAME 123L
#define ERROR_INVALID_LEVEL 124L
#define ERROR_NO_VOLUME_LABEL 125L
#define ERROR_MOD_NOT_FOUND 126L
#define ERROR_PROC_NOT_FOUND 127L
#define ERROR_WAIT_NO_CHILDREN 128L
#define ERROR_CHILD_NOT_COMPLETE 129L
#define ERROR_DIRECT_ACCESS_HANDLE 130L
#define ERROR_NEGATIVE_SEEK 131L
#define ERROR_SEEK_ON_DEVICE 132L
#define ERROR_IS_JOIN_TARGET 133L
#define ERROR_IS_JOINED 134L
#define ERROR_IS_SUBSTED 135L
#define ERROR_NOT_JOINED 136L
#define ERROR_NOT_SUBSTED 137L
#define ERROR_JOIN_TO_JOIN 138L
#define ERROR_SUBST_TO_SUBST 139L
#define ERROR_JOIN_TO_SUBST 140L
#define ERROR_SUBST_TO_JOIN 141L
#define ERROR_BUSY_DRIVE 142L
#define ERROR_SAME_DRIVE 143L
#define ERROR_DIR_NOT_ROOT 144L
#define ERROR_DIR_NOT_EMPTY 145L
#define ERROR_IS_SUBST_PATH 146L
#define ERROR_IS_JOIN_PATH 147L
#define ERROR_PATH_BUSY 148L
#define ERROR_IS_SUBST_TARGET 149L
#define ERROR_SYSTEM_TRACE 150L
#define ERROR_INVALID_EVENT_COUNT 151L
#define ERROR_TOO_MANY_MUXWAITERS 152L
#define ERROR_INVALID_LIST_FORMAT 153L
#define ERROR_LABEL_TOO_LONG 154L
#define ERROR_TOO_MANY_TCBS 155L
#define ERROR_SIGNAL_REFUSED 156L
#define ERROR_DISCARDED 157L
#define ERROR_NOT_LOCKED 158L
#define ERROR_BAD_THREADID_ADDR 159L
#define ERROR_BAD_ARGUMENTS 160L
#define ERROR_BAD_PATHNAME 161L
#define ERROR_SIGNAL_PENDING 162L
#define ERROR_MAX_THRDS_REACHED 164L
#define ERROR_LOCK_FAILED 167L
#define ERROR_BUSY 170L
#define ERROR_CANCEL_VIOLATION 173L
#define ERROR_ATOMIC_LOCKS_NOT_SUPPORTED 174L
#define ERROR_INVALID_SEGMENT_NUMBER 180L
#define ERROR_INVALID_ORDINAL 182L
#define ERROR_ALREADY_EXISTS 183L
#define ERROR_INVALID_FLAG_NUMBER 186L
#define ERROR_SEM_NOT_FOUND 187L
#define ERROR_INVALID_STARTING_CODESEG 188L
#define ERROR_INVALID_STACKSEG 189L
#define ERROR_INVALID_MODULETYPE 190L
#define ERROR_INVALID_EXE_SIGNATURE 191L
#define ERROR_EXE_MARKED_INVALID 192L
#define ERROR_BAD_EXE_FORMAT 193L
#define ERROR_ITERATED_DATA_EXCEEDS_64k 194L
#define ERROR_INVALID_MINALLOCSIZE 195L
#define ERROR_DYNLINK_FROM_INVALID_RING 196L
#define ERROR_IOPL_NOT_ENABLED 197L
#define ERROR_INVALID_SEGDPL 198L
#define ERROR_AUTODATASEG_EXCEEDS_64k 199L
#define ERROR_RING2SEG_MUST_BE_MOVABLE 200L
#define ERROR_RELOC_CHAIN_XEEDS_SEGLIM 201L
#define ERROR_INFLOOP_IN_RELOC_CHAIN 202L
#define ERROR_ENVVAR_NOT_FOUND 203L
#define ERROR_NO_SIGNAL_SENT 205L
#define ERROR_FILENAME_EXCED_RANGE 206L
#define ERROR_RING2_STACK_IN_USE 207L
#define ERROR_META_EXPANSION_TOO_LONG 208L
#define ERROR_INVALID_SIGNAL_NUMBER 209L
#define ERROR_THREAD_1_INACTIVE 210L
#define ERROR_LOCKED 212L
#define ERROR_TOO_MANY_MODULES 214L
#define ERROR_NESTING_NOT_ALLOWED 215L
#define ERROR_BAD_PIPE 230L
#define ERROR_PIPE_BUSY 231L
#define ERROR_NO_DATA 232L
#define ERROR_PIPE_NOT_CONNECTED 233L
#define ERROR_MORE_DATA 234L
#define ERROR_VC_DISCONNECTED 240L
#define ERROR_INVALID_EA_NAME 254L
#define ERROR_EA_LIST_INCONSISTENT 255L
#define ERROR_NO_MORE_ITEMS 259L
#define ERROR_CANNOT_COPY 266L
#define ERROR_DIRECTORY 267L
#define ERROR_EAS_DIDNT_FIT 275L
#define ERROR_EA_FILE_CORRUPT 276L
#define ERROR_EA_TABLE_FULL 277L
#define ERROR_INVALID_EA_HANDLE 278L
#define ERROR_EAS_NOT_SUPPORTED 282L
#define ERROR_NOT_OWNER 288L
#define ERROR_TOO_MANY_POSTS 298L
#define ERROR_PARTIAL_COPY 299L
#define ERROR_MR_MID_NOT_FOUND 317L
#define ERROR_INVALID_ADDRESS 487L
#define ERROR_ARITHMETIC_OVERFLOW 534L
#define ERROR_PIPE_CONNECTED 535L
#define ERROR_PIPE_LISTENING 536L
#define ERROR_EA_ACCESS_DENIED 994L
#define ERROR_OPERATION_ABORTED 995L
#define ERROR_IO_INCOMPLETE 996L
#define ERROR_IO_PENDING 997L
#define ERROR_NOACCESS 998L
#define ERROR_SWAPERROR 999L
#define ERROR_STACK_OVERFLOW 1001L
#define ERROR_INVALID_MESSAGE 1002L
#define ERROR_CAN_NOT_COMPLETE 1003L
#define ERROR_INVALID_FLAGS 1004L
#define ERROR_UNRECOGNIZED_VOLUME 1005L
#define ERROR_FILE_INVALID 1006L
#define ERROR_FULLSCREEN_MODE 1007L
#define ERROR_NO_TOKEN 1008L
#define ERROR_BADDB 1009L
#define ERROR_BADKEY 1010L
#define ERROR_CANTOPEN 1011L
#define ERROR_CANTREAD 1012L
#define ERROR_CANTWRITE 1013L
#define ERROR_REGISTRY_RECOVERED 1014L
#define ERROR_REGISTRY_CORRUPT 1015L
#define ERROR_REGISTRY_IO_FAILED 1016L
#define ERROR_NOT_REGISTRY_FILE 1017L
#define ERROR_KEY_DELETED 1018L
#define ERROR_NO_LOG_SPACE 1019L
#define ERROR_KEY_HAS_CHILDREN 1020L
#define ERROR_CHILD_MUST_BE_VOLATILE 1021L
#define ERROR_NOTIFY_ENUM_DIR 1022L
#define ERROR_DEPENDENT_SERVICES_RUNNING 1051L
#define ERROR_INVALID_SERVICE_CONTROL 1052L
#define ERROR_SERVICE_REQUEST_TIMEOUT 1053L
#define ERROR_SERVICE_NO_THREAD 1054L
#define ERROR_SERVICE_DATABASE_LOCKED 1055L
#define ERROR_SERVICE_ALREADY_RUNNING 1056L
#define ERROR_INVALID_SERVICE_ACCOUNT 1057L
#define ERROR_SERVICE_DISABLED 1058L
#define ERROR_CIRCULAR_DEPENDENCY 1059L
#define ERROR_SERVICE_DOES_NOT_EXIST 1060L
#define ERROR_SERVICE_CANNOT_ACCEPT_CTRL 1061L
#define ERROR_SERVICE_NOT_ACTIVE 1062L
#define ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 1063L
#define ERROR_EXCEPTION_IN_SERVICE 1064L
#define ERROR_DATABASE_DOES_NOT_EXIST 1065L
#define ERROR_SERVICE_SPECIFIC_ERROR 1066L
#define ERROR_PROCESS_ABORTED 1067L
#define ERROR_SERVICE_DEPENDENCY_FAIL 1068L
#define ERROR_SERVICE_LOGON_FAILED 1069L
#define ERROR_SERVICE_START_HANG 1070L
#define ERROR_INVALID_SERVICE_LOCK 1071L
#define ERROR_SERVICE_MARKED_FOR_DELETE 1072L
#define ERROR_SERVICE_EXISTS 1073L
#define ERROR_ALREADY_RUNNING_LKG 1074L
#define ERROR_SERVICE_DEPENDENCY_DELETED 1075L
#define ERROR_BOOT_ALREADY_ACCEPTED 1076L
#define ERROR_SERVICE_NEVER_STARTED 1077L
#define ERROR_DUPLICATE_SERVICE_NAME 1078L
#define ERROR_END_OF_MEDIA 1100L
#define ERROR_FILEMARK_DETECTED 1101L
#define ERROR_BEGINNING_OF_MEDIA 1102L
#define ERROR_SETMARK_DETECTED 1103L
#define ERROR_NO_DATA_DETECTED 1104L
#define ERROR_PARTITION_FAILURE 1105L
#define ERROR_INVALID_BLOCK_LENGTH 1106L
#define ERROR_DEVICE_NOT_PARTITIONED 1107L
#define ERROR_UNABLE_TO_LOCK_MEDIA 1108L
#define ERROR_UNABLE_TO_UNLOAD_MEDIA 1109L
#define ERROR_MEDIA_CHANGED 1110L
#define ERROR_BUS_RESET 1111L
#define ERROR_NO_MEDIA_IN_DRIVE 1112L
#define ERROR_NO_UNICODE_TRANSLATION 1113L
#define ERROR_DLL_INIT_FAILED 1114L
#define ERROR_SHUTDOWN_IN_PROGRESS 1115L
#define ERROR_NO_SHUTDOWN_IN_PROGRESS 1116L
#define ERROR_IO_DEVICE 1117L
#define ERROR_SERIAL_NO_DEVICE 1118L
#define ERROR_IRQ_BUSY 1119L
#define ERROR_MORE_WRITES 1120L
#define ERROR_COUNTER_TIMEOUT 1121L
#define ERROR_FLOPPY_ID_MARK_NOT_FOUND 1122L
#define ERROR_FLOPPY_WRONG_CYLINDER 1123L
#define ERROR_FLOPPY_UNKNOWN_ERROR 1124L
#define ERROR_FLOPPY_BAD_REGISTERS 1125L
#define ERROR_DISK_RECALIBRATE_FAILED 1126L
#define ERROR_DISK_OPERATION_FAILED 1127L
#define ERROR_DISK_RESET_FAILED 1128L
#define ERROR_EOM_OVERFLOW 1129L
#define ERROR_NOT_ENOUGH_SERVER_MEMORY 1130L
#define ERROR_POSSIBLE_DEADLOCK 1131L
#define ERROR_MAPPED_ALIGNMENT 1132L
#define ERROR_SET_POWER_STATE_VETOED 1140L
#define ERROR_SET_POWER_STATE_FAILED 1141L
#define ERROR_OLD_WIN_VERSION 1150L
#define ERROR_APP_WRONG_OS 1151L
#define ERROR_SINGLE_INSTANCE_APP 1152L
#define ERROR_RMODE_APP 1153L
#define ERROR_INVALID_DLL 1154L
#define ERROR_NO_ASSOCIATION 1155L
#define ERROR_DDE_FAIL 1156L
#define ERROR_DLL_NOT_FOUND 1157L
#define ERROR_BAD_USERNAME 2202L
#define ERROR_NOT_CONNECTED 2250L
#define ERROR_OPEN_FILES 2401L
#define ERROR_ACTIVE_CONNECTIONS 2402L
#define ERROR_DEVICE_IN_USE 2404L
#define ERROR_BAD_DEVICE 1200L
#define ERROR_CONNECTION_UNAVAIL 1201L
#define ERROR_DEVICE_ALREADY_REMEMBERED 1202L
#define ERROR_NO_NET_OR_BAD_PATH 1203L
#define ERROR_BAD_PROVIDER 1204L
#define ERROR_CANNOT_OPEN_PROFILE 1205L
#define ERROR_BAD_PROFILE 1206L
#define ERROR_NOT_CONTAINER 1207L
#define ERROR_EXTENDED_ERROR 1208L
#define ERROR_INVALID_GROUPNAME 1209L
#define ERROR_INVALID_COMPUTERNAME 1210L
#define ERROR_INVALID_EVENTNAME 1211L
#define ERROR_INVALID_DOMAINNAME 1212L
#define ERROR_INVALID_SERVICENAME 1213L
#define ERROR_INVALID_NETNAME 1214L
#define ERROR_INVALID_SHARENAME 1215L
#define ERROR_INVALID_PASSWORDNAME 1216L
#define ERROR_INVALID_MESSAGENAME 1217L
#define ERROR_INVALID_MESSAGEDEST 1218L
#define ERROR_SESSION_CREDENTIAL_CONFLICT 1219L
#define ERROR_REMOTE_SESSION_LIMIT_EXCEEDED 1220L
#define ERROR_DUP_DOMAINNAME 1221L
#define ERROR_NO_NETWORK 1222L
#define ERROR_CANCELLED 1223L
#define ERROR_USER_MAPPED_FILE 1224L
#define ERROR_CONNECTION_REFUSED 1225L
#define ERROR_GRACEFUL_DISCONNECT 1226L
#define ERROR_ADDRESS_ALREADY_ASSOCIATED 1227L
#define ERROR_ADDRESS_NOT_ASSOCIATED 1228L
#define ERROR_CONNECTION_INVALID 1229L
#define ERROR_CONNECTION_ACTIVE 1230L
#define ERROR_NETWORK_UNREACHABLE 1231L
#define ERROR_HOST_UNREACHABLE 1232L
#define ERROR_PROTOCOL_UNREACHABLE 1233L
#define ERROR_PORT_UNREACHABLE 1234L
#define ERROR_REQUEST_ABORTED 1235L
#define ERROR_CONNECTION_ABORTED 1236L
#define ERROR_RETRY 1237L
#define ERROR_CONNECTION_COUNT_LIMIT 1238L
#define ERROR_LOGIN_TIME_RESTRICTION 1239L
#define ERROR_LOGIN_WKSTA_RESTRICTION 1240L
#define ERROR_INCORRECT_ADDRESS 1241L
#define ERROR_ALREADY_REGISTERED 1242L
#define ERROR_SERVICE_NOT_FOUND 1243L
#define ERROR_NOT_AUTHENTICATED 1244L
#define ERROR_NOT_LOGGED_ON 1245L
#define ERROR_CONTINUE 1246L
#define ERROR_ALREADY_INITIALIZED 1247L
#define ERROR_NO_MORE_DEVICES 1248L
#define ERROR_NOT_ALL_ASSIGNED 1300L
#define ERROR_SOME_NOT_MAPPED 1301L
#define ERROR_NO_QUOTAS_FOR_ACCOUNT 1302L
#define ERROR_LOCAL_USER_SESSION_KEY 1303L
#define ERROR_NULL_LM_PASSWORD 1304L
#define ERROR_UNKNOWN_REVISION 1305L
#define ERROR_REVISION_MISMATCH 1306L
#define ERROR_INVALID_OWNER 1307L
#define ERROR_INVALID_PRIMARY_GROUP 1308L
#define ERROR_NO_IMPERSONATION_TOKEN 1309L
#define ERROR_CANT_DISABLE_MANDATORY 1310L
#define ERROR_NO_LOGON_SERVERS 1311L
#define ERROR_NO_SUCH_LOGON_SESSION 1312L
#define ERROR_NO_SUCH_PRIVILEGE 1313L
#define ERROR_PRIVILEGE_NOT_HELD 1314L
#define ERROR_INVALID_ACCOUNT_NAME 1315L
#define ERROR_USER_EXISTS 1316L
#define ERROR_NO_SUCH_USER 1317L
#define ERROR_GROUP_EXISTS 1318L
#define ERROR_NO_SUCH_GROUP 1319L
#define ERROR_MEMBER_IN_GROUP 1320L
#define ERROR_MEMBER_NOT_IN_GROUP 1321L
#define ERROR_LAST_ADMIN 1322L
#define ERROR_WRONG_PASSWORD 1323L
#define ERROR_ILL_FORMED_PASSWORD 1324L
#define ERROR_PASSWORD_RESTRICTION 1325L
#define ERROR_LOGON_FAILURE 1326L
#define ERROR_ACCOUNT_RESTRICTION 1327L
#define ERROR_INVALID_LOGON_HOURS 1328L
#define ERROR_INVALID_WORKSTATION 1329L
#define ERROR_PASSWORD_EXPIRED 1330L
#define ERROR_ACCOUNT_DISABLED 1331L
#define ERROR_NONE_MAPPED 1332L
#define ERROR_TOO_MANY_LUIDS_REQUESTED 1333L
#define ERROR_LUIDS_EXHAUSTED 1334L
#define ERROR_INVALID_SUB_AUTHORITY 1335L
#define ERROR_INVALID_ACL 1336L
#define ERROR_INVALID_SID 1337L
#define ERROR_INVALID_SECURITY_DESCR 1338L
#define ERROR_BAD_INHERITANCE_ACL 1340L
#define ERROR_SERVER_DISABLED 1341L
#define ERROR_SERVER_NOT_DISABLED 1342L
#define ERROR_INVALID_ID_AUTHORITY 1343L
#define ERROR_ALLOTTED_SPACE_EXCEEDED 1344L
#define ERROR_INVALID_GROUP_ATTRIBUTES 1345L
#define ERROR_BAD_IMPERSONATION_LEVEL 1346L
#define ERROR_CANT_OPEN_ANONYMOUS 1347L
#define ERROR_BAD_VALIDATION_CLASS 1348L
#define ERROR_BAD_TOKEN_TYPE 1349L
#define ERROR_NO_SECURITY_ON_OBJECT 1350L
#define ERROR_CANT_ACCESS_DOMAIN_INFO 1351L
#define ERROR_INVALID_SERVER_STATE 1352L
#define ERROR_INVALID_DOMAIN_STATE 1353L
#define ERROR_INVALID_DOMAIN_ROLE 1354L
#define ERROR_NO_SUCH_DOMAIN 1355L
#define ERROR_DOMAIN_EXISTS 1356L
#define ERROR_DOMAIN_LIMIT_EXCEEDED 1357L
#define ERROR_INTERNAL_DB_CORRUPTION 1358L
#define ERROR_INTERNAL_ERROR 1359L
#define ERROR_GENERIC_NOT_MAPPED 1360L
#define ERROR_BAD_DESCRIPTOR_FORMAT 1361L
#define ERROR_NOT_LOGON_PROCESS 1362L
#define ERROR_LOGON_SESSION_EXISTS 1363L
#define ERROR_NO_SUCH_PACKAGE 1364L
#define ERROR_BAD_LOGON_SESSION_STATE 1365L
#define ERROR_LOGON_SESSION_COLLISION 1366L
#define ERROR_INVALID_LOGON_TYPE 1367L
#define ERROR_CANNOT_IMPERSONATE 1368L
#define ERROR_RXACT_INVALID_STATE 1369L
#define ERROR_RXACT_COMMIT_FAILURE 1370L
#define ERROR_SPECIAL_ACCOUNT 1371L
#define ERROR_SPECIAL_GROUP 1372L
#define ERROR_SPECIAL_USER 1373L
#define ERROR_MEMBERS_PRIMARY_GROUP 1374L
#define ERROR_TOKEN_ALREADY_IN_USE 1375L
#define ERROR_NO_SUCH_ALIAS 1376L
#define ERROR_MEMBER_NOT_IN_ALIAS 1377L
#define ERROR_MEMBER_IN_ALIAS 1378L
#define ERROR_ALIAS_EXISTS 1379L
#define ERROR_LOGON_NOT_GRANTED 1380L
#define ERROR_TOO_MANY_SECRETS 1381L
#define ERROR_SECRET_TOO_LONG 1382L
#define ERROR_INTERNAL_DB_ERROR 1383L
#define ERROR_TOO_MANY_CONTEXT_IDS 1384L
#define ERROR_LOGON_TYPE_NOT_GRANTED 1385L
#define ERROR_NT_CROSS_ENCRYPTION_REQUIRED 1386L
#define ERROR_NO_SUCH_MEMBER 1387L
#define ERROR_INVALID_MEMBER 1388L
#define ERROR_TOO_MANY_SIDS 1389L
#define ERROR_LM_CROSS_ENCRYPTION_REQUIRED 1390L
#define ERROR_NO_INHERITANCE 1391L
#define ERROR_FILE_CORRUPT 1392L
#define ERROR_DISK_CORRUPT 1393L
#define ERROR_NO_USER_SESSION_KEY 1394L
#define ERROR_LICENSE_QUOTA_EXCEEDED 1395L
#define ERROR_INVALID_WINDOW_HANDLE 1400L
#define ERROR_INVALID_MENU_HANDLE 1401L
#define ERROR_INVALID_CURSOR_HANDLE 1402L
#define ERROR_INVALID_ACCEL_HANDLE 1403L
#define ERROR_INVALID_HOOK_HANDLE 1404L
#define ERROR_INVALID_DWP_HANDLE 1405L
#define ERROR_TLW_WITH_WSCHILD 1406L
#define ERROR_CANNOT_FIND_WND_CLASS 1407L
#define ERROR_WINDOW_OF_OTHER_THREAD 1408L
#define ERROR_HOTKEY_ALREADY_REGISTERED 1409L
#define ERROR_CLASS_ALREADY_EXISTS 1410L
#define ERROR_CLASS_DOES_NOT_EXIST 1411L
#define ERROR_CLASS_HAS_WINDOWS 1412L
#define ERROR_INVALID_INDEX 1413L
#define ERROR_INVALID_ICON_HANDLE 1414L
#define ERROR_PRIVATE_DIALOG_INDEX 1415L
#define ERROR_LISTBOX_ID_NOT_FOUND 1416L
#define ERROR_NO_WILDCARD_CHARACTERS 1417L
#define ERROR_CLIPBOARD_NOT_OPEN 1418L
#define ERROR_HOTKEY_NOT_REGISTERED 1419L
#define ERROR_WINDOW_NOT_DIALOG 1420L
#define ERROR_CONTROL_ID_NOT_FOUND 1421L
#define ERROR_INVALID_COMBOBOX_MESSAGE 1422L
#define ERROR_WINDOW_NOT_COMBOBOX 1423L
#define ERROR_INVALID_EDIT_HEIGHT 1424L
#define ERROR_DC_NOT_FOUND 1425L
#define ERROR_INVALID_HOOK_FILTER 1426L
#define ERROR_INVALID_FILTER_PROC 1427L
#define ERROR_HOOK_NEEDS_HMOD 1428L
#define ERROR_GLOBAL_ONLY_HOOK 1429L
#define ERROR_JOURNAL_HOOK_SET 1430L
#define ERROR_HOOK_NOT_INSTALLED 1431L
#define ERROR_INVALID_LB_MESSAGE 1432L
#define ERROR_SETCOUNT_ON_BAD_LB 1433L
#define ERROR_LB_WITHOUT_TABSTOPS 1434L
#define ERROR_DESTROY_OBJECT_OF_OTHER_THREAD 1435L
#define ERROR_CHILD_WINDOW_MENU 1436L
#define ERROR_NO_SYSTEM_MENU 1437L
#define ERROR_INVALID_MSGBOX_STYLE 1438L
#define ERROR_INVALID_SPI_VALUE 1439L
#define ERROR_SCREEN_ALREADY_LOCKED 1440L
#define ERROR_HWNDS_HAVE_DIFF_PARENT 1441L
#define ERROR_NOT_CHILD_WINDOW 1442L
#define ERROR_INVALID_GW_COMMAND 1443L
#define ERROR_INVALID_THREAD_ID 1444L
#define ERROR_NON_MDICHILD_WINDOW 1445L
#define ERROR_POPUP_ALREADY_ACTIVE 1446L
#define ERROR_NO_SCROLLBARS 1447L
#define ERROR_INVALID_SCROLLBAR_RANGE 1448L
#define ERROR_INVALID_SHOWWIN_COMMAND 1449L
#define ERROR_NO_SYSTEM_RESOURCES 1450L
#define ERROR_NONPAGED_SYSTEM_RESOURCES 1451L
#define ERROR_PAGED_SYSTEM_RESOURCES 1452L
#define ERROR_WORKING_SET_QUOTA 1453L
#define ERROR_PAGEFILE_QUOTA 1454L
#define ERROR_COMMITMENT_LIMIT 1455L
#define ERROR_MENU_ITEM_NOT_FOUND 1456L
#define ERROR_EVENTLOG_FILE_CORRUPT 1500L
#define ERROR_EVENTLOG_CANT_START 1501L
#define ERROR_LOG_FILE_FULL 1502L
#define ERROR_EVENTLOG_FILE_CHANGED 1503L
#define RPC_S_INVALID_STRING_BINDING 1700L
#define RPC_S_WRONG_KIND_OF_BINDING 1701L
#define RPC_S_INVALID_BINDING 1702L
#define RPC_S_PROTSEQ_NOT_SUPPORTED 1703L
#define RPC_S_INVALID_RPC_PROTSEQ 1704L
#define RPC_S_INVALID_STRING_UUID 1705L
#define RPC_S_INVALID_ENDPOINT_FORMAT 1706L
#define RPC_S_INVALID_NET_ADDR 1707L
#define RPC_S_NO_ENDPOINT_FOUND 1708L
#define RPC_S_INVALID_TIMEOUT 1709L
#define RPC_S_OBJECT_NOT_FOUND 1710L
#define RPC_S_ALREADY_REGISTERED 1711L
#define RPC_S_TYPE_ALREADY_REGISTERED 1712L
#define RPC_S_ALREADY_LISTENING 1713L
#define RPC_S_NO_PROTSEQS_REGISTERED 1714L
#define RPC_S_NOT_LISTENING 1715L
#define RPC_S_UNKNOWN_MGR_TYPE 1716L
#define RPC_S_UNKNOWN_IF 1717L
#define RPC_S_NO_BINDINGS 1718L
#define RPC_S_NO_PROTSEQS 1719L
#define RPC_S_CANT_CREATE_ENDPOINT 1720L
#define RPC_S_OUT_OF_RESOURCES 1721L
#define RPC_S_SERVER_UNAVAILABLE 1722L
#define RPC_S_SERVER_TOO_BUSY 1723L
#define RPC_S_INVALID_NETWORK_OPTIONS 1724L
#define RPC_S_NO_CALL_ACTIVE 1725L
#define RPC_S_CALL_FAILED 1726L
#define RPC_S_CALL_FAILED_DNE 1727L
#define RPC_S_PROTOCOL_ERROR 1728L
#define RPC_S_UNSUPPORTED_TRANS_SYN 1730L
#define RPC_S_UNSUPPORTED_TYPE 1732L
#define RPC_S_INVALID_TAG 1733L
#define RPC_S_INVALID_BOUND 1734L
#define RPC_S_NO_ENTRY_NAME 1735L
#define RPC_S_INVALID_NAME_SYNTAX 1736L
#define RPC_S_UNSUPPORTED_NAME_SYNTAX 1737L
#define RPC_S_UUID_NO_ADDRESS 1739L
#define RPC_S_DUPLICATE_ENDPOINT 1740L
#define RPC_S_UNKNOWN_AUTHN_TYPE 1741L
#define RPC_S_MAX_CALLS_TOO_SMALL 1742L
#define RPC_S_STRING_TOO_LONG 1743L
#define RPC_S_PROTSEQ_NOT_FOUND 1744L
#define RPC_S_PROCNUM_OUT_OF_RANGE 1745L
#define RPC_S_BINDING_HAS_NO_AUTH 1746L
#define RPC_S_UNKNOWN_AUTHN_SERVICE 1747L
#define RPC_S_UNKNOWN_AUTHN_LEVEL 1748L
#define RPC_S_INVALID_AUTH_IDENTITY 1749L
#define RPC_S_UNKNOWN_AUTHZ_SERVICE 1750L
#define EPT_S_INVALID_ENTRY 1751L
#define EPT_S_CANT_PERFORM_OP 1752L
#define EPT_S_NOT_REGISTERED 1753L
#define RPC_S_NOTHING_TO_EXPORT 1754L
#define RPC_S_INCOMPLETE_NAME 1755L
#define RPC_S_INVALID_VERS_OPTION 1756L
#define RPC_S_NO_MORE_MEMBERS 1757L
#define RPC_S_NOT_ALL_OBJS_UNEXPORTED 1758L
#define RPC_S_INTERFACE_NOT_FOUND 1759L
#define RPC_S_ENTRY_ALREADY_EXISTS 1760L
#define RPC_S_ENTRY_NOT_FOUND 1761L
#define RPC_S_NAME_SERVICE_UNAVAILABLE 1762L
#define RPC_S_INVALID_NAF_ID 1763L
#define RPC_S_CANNOT_SUPPORT 1764L
#define RPC_S_NO_CONTEXT_AVAILABLE 1765L
#define RPC_S_INTERNAL_ERROR 1766L
#define RPC_S_ZERO_DIVIDE 1767L
#define RPC_S_ADDRESS_ERROR 1768L
#define RPC_S_FP_DIV_ZERO 1769L
#define RPC_S_FP_UNDERFLOW 1770L
#define RPC_S_FP_OVERFLOW 1771L
#define RPC_X_NO_MORE_ENTRIES 1772L
#define RPC_X_SS_CHAR_TRANS_OPEN_FAIL 1773L
#define RPC_X_SS_CHAR_TRANS_SHORT_FILE 1774L
#define RPC_X_SS_IN_NULL_CONTEXT 1775L
#define RPC_X_SS_CONTEXT_DAMAGED 1777L
#define RPC_X_SS_HANDLES_MISMATCH 1778L
#define RPC_X_SS_CANNOT_GET_CALL_HANDLE 1779L
#define RPC_X_NULL_REF_POINTER 1780L
#define RPC_X_ENUM_VALUE_OUT_OF_RANGE 1781L
#define RPC_X_BYTE_COUNT_TOO_SMALL 1782L
#define RPC_X_BAD_STUB_DATA 1783L
#define ERROR_INVALID_USER_BUFFER 1784L
#define ERROR_UNRECOGNIZED_MEDIA 1785L
#define ERROR_NO_TRUST_LSA_SECRET 1786L
#define ERROR_NO_TRUST_SAM_ACCOUNT 1787L
#define ERROR_TRUSTED_DOMAIN_FAILURE 1788L
#define ERROR_TRUSTED_RELATIONSHIP_FAILURE 1789L
#define ERROR_TRUST_FAILURE 1790L
#define RPC_S_CALL_IN_PROGRESS 1791L
#define ERROR_NETLOGON_NOT_STARTED 1792L
#define ERROR_ACCOUNT_EXPIRED 1793L
#define ERROR_REDIRECTOR_HAS_OPEN_HANDLES 1794L
#define ERROR_PRINTER_DRIVER_ALREADY_INSTALLED 1795L
#define ERROR_UNKNOWN_PORT 1796L
#define ERROR_UNKNOWN_PRINTER_DRIVER 1797L
#define ERROR_UNKNOWN_PRINTPROCESSOR 1798L
#define ERROR_INVALID_SEPARATOR_FILE 1799L
#define ERROR_INVALID_PRIORITY 1800L
#define ERROR_INVALID_PRINTER_NAME 1801L
#define ERROR_PRINTER_ALREADY_EXISTS 1802L
#define ERROR_INVALID_PRINTER_COMMAND 1803L
#define ERROR_INVALID_DATATYPE 1804L
#define ERROR_INVALID_ENVIRONMENT 1805L
#define RPC_S_NO_MORE_BINDINGS 1806L
#define ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 1807L
#define ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT 1808L
#define ERROR_NOLOGON_SERVER_TRUST_ACCOUNT 1809L
#define ERROR_DOMAIN_TRUST_INCONSISTENT 1810L
#define ERROR_SERVER_HAS_OPEN_HANDLES 1811L
#define ERROR_RESOURCE_DATA_NOT_FOUND 1812L
#define ERROR_RESOURCE_TYPE_NOT_FOUND 1813L
#define ERROR_RESOURCE_NAME_NOT_FOUND 1814L
#define ERROR_RESOURCE_LANG_NOT_FOUND 1815L
#define ERROR_NOT_ENOUGH_QUOTA 1816L
#define RPC_S_NO_INTERFACES 1817L
#define RPC_S_CALL_CANCELLED 1818L
#define RPC_S_BINDING_INCOMPLETE 1819L
#define RPC_S_COMM_FAILURE 1820L
#define RPC_S_UNSUPPORTED_AUTHN_LEVEL 1821L
#define RPC_S_NO_PRINC_NAME 1822L
#define RPC_S_NOT_RPC_ERROR 1823L
#define RPC_S_UUID_LOCAL_ONLY 1824L
#define RPC_S_SEC_PKG_ERROR 1825L
#define RPC_S_NOT_CANCELLED 1826L
#define RPC_X_INVALID_ES_ACTION 1827L
#define RPC_X_WRONG_ES_VERSION 1828L
#define RPC_X_WRONG_STUB_VERSION 1829L
#define RPC_S_GROUP_MEMBER_NOT_FOUND 1898L
#define EPT_S_CANT_CREATE 1899L
#define RPC_S_INVALID_OBJECT 1900L
#define ERROR_INVALID_TIME 1901L
#define ERROR_INVALID_FORM_NAME 1902L
#define ERROR_INVALID_FORM_SIZE 1903L
#define ERROR_ALREADY_WAITING 1904L
#define ERROR_PRINTER_DELETED 1905L
#define ERROR_INVALID_PRINTER_STATE 1906L
#define ERROR_PASSWORD_MUST_CHANGE 1907L
#define ERROR_DOMAIN_CONTROLLER_NOT_FOUND 1908L
#define ERROR_ACCOUNT_LOCKED_OUT 1909L
#define ERROR_NO_BROWSER_SERVERS_FOUND 6118L
#define ERROR_INVALID_PIXEL_FORMAT 2000L
#define ERROR_BAD_DRIVER 2001L
#define ERROR_INVALID_WINDOW_STYLE 2002L
#define ERROR_METAFILE_NOT_SUPPORTED 2003L
#define ERROR_TRANSFORM_NOT_SUPPORTED 2004L
#define ERROR_CLIPPING_NOT_SUPPORTED 2005L
#define ERROR_UNKNOWN_PRINT_MONITOR 3000L
#define ERROR_PRINTER_DRIVER_IN_USE 3001L
#define ERROR_SPOOL_FILE_NOT_FOUND 3002L
#define ERROR_SPL_NO_STARTDOC 3003L
#define ERROR_SPL_NO_ADDJOB 3004L
#define ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED 3005L
#define ERROR_PRINT_MONITOR_ALREADY_INSTALLED 3006L
#define ERROR_WINS_INTERNAL 4000L
#define ERROR_CAN_NOT_DEL_LOCAL_WINS 4001L
#define ERROR_STATIC_INIT 4002L
#define ERROR_INC_BACKUP 4003L
#define ERROR_FULL_BACKUP 4004L
#define ERROR_REC_NON_EXISTENT 4005L
#define ERROR_RPL_NOT_ALLOWED 4006L
#define ERROR_NO_BROWSER_SERVERS_FOUND 6118L
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _GNU_H_WINDOWS32_ERROR */

File diff suppressed because it is too large Load Diff

View File

@@ -1,140 +0,0 @@
#ifndef _I386_BITOPS_H
#define _I386_BITOPS_H
/*
* Copyright 1992, Linus Torvalds.
*/
/*
* Reused for the ReactOS kernel by David Welch (1998)
*/
/*
* These have to be done with inline assembly: that way the bit-setting
* is guaranteed to be atomic. All bit operations return 0 if the bit
* was cleared before the operation and != 0 if it was not.
*
* bit 0 is the LSB of addr; bit 32 is the LSB of (addr+1).
*/
#ifdef __SMP__
#define LOCK_PREFIX "lock ; "
#define SMPVOL volatile
#else
#define LOCK_PREFIX ""
#define SMPVOL
#endif
/*
* Some hacks to defeat gcc over-optimizations..
*/
struct __dummy { unsigned long a[100]; };
#define ADDR (*(struct __dummy *) addr)
#define CONST_ADDR (*(const struct __dummy *) addr)
extern __inline__ int set_bit(int nr, SMPVOL void * addr)
{
int oldbit;
__asm__ __volatile__(LOCK_PREFIX
"btsl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" (ADDR)
:"ir" (nr));
return oldbit;
}
extern __inline__ int clear_bit(int nr, SMPVOL void * addr)
{
int oldbit;
__asm__ __volatile__(LOCK_PREFIX
"btrl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" (ADDR)
:"ir" (nr));
return oldbit;
}
extern __inline__ int change_bit(int nr, SMPVOL void * addr)
{
int oldbit;
__asm__ __volatile__(LOCK_PREFIX
"btcl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" (ADDR)
:"ir" (nr));
return oldbit;
}
/*
* This routine doesn't need to be atomic.
*/
extern __inline__ int test_bit(int nr, const SMPVOL void * addr)
{
return ((1UL << (nr & 31)) & (((const unsigned int *) addr)[nr >> 5])) != 0;
}
/*
* Find-bit routines..
*/
extern __inline__ int find_first_zero_bit(void * addr, unsigned size)
{
int res;
if (!size)
return 0;
__asm__("cld\n\t"
"movl $-1,%%eax\n\t"
"xorl %%edx,%%edx\n\t"
"repe; scasl\n\t"
"je 1f\n\t"
"xorl -4(%%edi),%%eax\n\t"
"subl $4,%%edi\n\t"
"bsfl %%eax,%%edx\n"
"1:\tsubl %%ebx,%%edi\n\t"
"shll $3,%%edi\n\t"
"addl %%edi,%%edx"
:"=d" (res)
:"c" ((size + 31) >> 5), "D" (addr), "b" (addr)
:"ax", "cx", "di");
return res;
}
extern __inline__ int find_next_zero_bit (void * addr, int size, int offset)
{
unsigned long * p = ((unsigned long *) addr) + (offset >> 5);
int set = 0, bit = offset & 31, res;
if (bit) {
/*
* Look for zero in first byte
*/
__asm__("bsfl %1,%0\n\t"
"jne 1f\n\t"
"movl $32, %0\n"
"1:"
: "=r" (set)
: "r" (~(*p >> bit)));
if (set < (32 - bit))
return set + offset;
set = 32 - bit;
p++;
}
/*
* No zero yet, search remaining full bytes for a zero
*/
res = find_first_zero_bit (p, size - 32 * (p - (unsigned long *) addr));
return (offset + set + res);
}
/*
* ffz = Find First Zero in word. Undefined if no zero exists,
* so code should check against ~0UL first..
*/
extern __inline__ unsigned long ffz(unsigned long word)
{
__asm__("bsfl %1,%0"
:"=r" (word)
:"r" (~word));
return word;
}
#endif /* _I386_BITOPS_H */

View File

@@ -1,34 +0,0 @@
#ifndef _LINUX_CTYPE_H
#define _LINUX_CTYPE_H
#define _U 0x01 /* upper */
#define _L 0x02 /* lower */
#define _D 0x04 /* digit */
#define _C 0x08 /* cntrl */
#define _P 0x10 /* punct */
#define _S 0x20 /* white space (space/lf/tab) */
#define _X 0x40 /* hex digit */
#define _SP 0x80 /* hard space (0x20) */
extern unsigned char _ctype[];
extern char _ctmp;
#define isalnum(c) ((_ctype+1)[c]&(_U|_L|_D))
#define isalpha(c) ((_ctype+1)[c]&(_U|_L))
#define iscntrl(c) ((_ctype+1)[c]&(_C))
#define isdigit(c) ((_ctype+1)[c]&(_D))
#define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_D))
#define islower(c) ((_ctype+1)[c]&(_L))
#define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_D|_SP))
#define ispunct(c) ((_ctype+1)[c]&(_P))
#define isspace(c) ((_ctype+1)[c]&(_S))
#define isupper(c) ((_ctype+1)[c]&(_U))
#define isxdigit(c) ((_ctype+1)[c]&(_D|_X))
#define isascii(c) (((unsigned) c)<=0x7f)
#define toascii(c) (((unsigned) c)&0x7f)
#define tolower(c) (_ctmp=c,isupper(_ctmp)?_ctmp-('A'-'a'):_ctmp)
#define toupper(c) (_ctmp=c,islower(_ctmp)?_ctmp-('a'-'A'):_ctmp)
#endif

View File

@@ -1,70 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/internal/debug.h
* PURPOSE: Useful debugging macros
* PROGRAMMER: David Welch (welch@mcmail.com)
* UPDATE HISTORY:
* 28/05/98: Created
*/
/*
* NOTE: Define NDEBUG before including this header to disable debugging
* macros
*/
#ifndef __INTERNAL_DEBUG
#define __INTERNAL_DEBUG
#ifndef NDEBUG
#define DPRINT(fmt,args...) do { printk("(%s:%d) ",__FILE__,__LINE__); printk(fmt,args); } while(0);
//#define assert(x) if (!(x)) {printk("Assertion "#x" failed at %s:%d\n", __FILE__,__LINE__); (*((unsigned int *)0))=1; for (;;); }
#define assert(x) if (!(x)) {printk("Assertion "#x" failed at %s:%d\n", __FILE__,__LINE__); for (;;); }
#define CHECKPOINT printk("%s:%d\n",__FILE__,__LINE__)
#else
#define DPRINT(fmt,args...)
#define assert(x)
#define CHECKPOINT
#endif /* NDEBUG */
/*
* FUNCTION: Assert a maximum value for the current irql
* ARGUMENTS:
* x = Maximum irql
*/
#define ASSERT_IRQL(x) assert(KeGetCurrentIrql()<=(x))
#define HBP_EXECUTE (0)
#define HBP_WRITE (1)
#define HBP_READWRITE (3)
#define HBP_BYTE (0)
#define HBP_WORD (1)
#define HBP_DWORD (3)
/*
* FUNCTION: Sets a hardware breakpoint
* ARGUMENTS:
* i = breakpoint to set (0 to 3)
* addr = linear address to break on
* type = Type of access to break on
* len = length of the variable to watch
* NOTES:
* The variable to watch must be aligned to its length (i.e. a dword
* breakpoint must be aligned to a dword boundary)
*
* A fatal exception will be generated on the access to the variable.
* It is (at the moment) only really useful for catching undefined
* pointers if you know the variable effected but not the buggy
* routine.
*
* FIXME: Extend to call out to kernel debugger on breakpoint
* Add support for I/O breakpoints
* REFERENCES: See the i386 programmer manual for more details
*/
void set_breakpoint(unsigned int i, unsigned int addr, unsigned int type,
unsigned int len);
#endif /* __INTERNAL_DEBUG */

View File

@@ -1,267 +0,0 @@
/* $Id: dma.h,v 1.1 1996/01/23 01:02:19 rosmgr Exp $
* linux/include/asm/dma.h: Defines for using and allocating dma channels.
* Written by Hennus Bergman, 1992.
* High DMA channel support & info by Hannu Savolainen
* and John Boyd, Nov. 1992.
*/
#ifndef _ASM_DMA_H
#define _ASM_DMA_H
#include "io.h" /* need byte IO */
#ifdef HAVE_REALLY_SLOW_DMA_CONTROLLER
#define dma_outb outb_p
#else
#define dma_outb outb
#endif
#define dma_inb inb
/*
* NOTES about DMA transfers:
*
* controller 1: channels 0-3, byte operations, ports 00-1F
* controller 2: channels 4-7, word operations, ports C0-DF
*
* - ALL registers are 8 bits only, regardless of transfer size
* - channel 4 is not used - cascades 1 into 2.
* - channels 0-3 are byte - addresses/counts are for physical bytes
* - channels 5-7 are word - addresses/counts are for physical words
* - transfers must not cross physical 64K (0-3) or 128K (5-7) boundaries
* - transfer count loaded to registers is 1 less than actual count
* - controller 2 offsets are all even (2x offsets for controller 1)
* - page registers for 5-7 don't use data bit 0, represent 128K pages
* - page registers for 0-3 use bit 0, represent 64K pages
*
* DMA transfers are limited to the lower 16MB of _physical_ memory.
* Note that addresses loaded into registers must be _physical_ addresses,
* not logical addresses (which may differ if paging is active).
*
* Address mapping for channels 0-3:
*
* A23 ... A16 A15 ... A8 A7 ... A0 (Physical addresses)
* | ... | | ... | | ... |
* | ... | | ... | | ... |
* | ... | | ... | | ... |
* P7 ... P0 A7 ... A0 A7 ... A0
* | Page | Addr MSB | Addr LSB | (DMA registers)
*
* Address mapping for channels 5-7:
*
* A23 ... A17 A16 A15 ... A9 A8 A7 ... A1 A0 (Physical addresses)
* | ... | \ \ ... \ \ \ ... \ \
* | ... | \ \ ... \ \ \ ... \ (not used)
* | ... | \ \ ... \ \ \ ... \
* P7 ... P1 (0) A7 A6 ... A0 A7 A6 ... A0
* | Page | Addr MSB | Addr LSB | (DMA registers)
*
* Again, channels 5-7 transfer _physical_ words (16 bits), so addresses
* and counts _must_ be word-aligned (the lowest address bit is _ignored_ at
* the hardware level, so odd-byte transfers aren't possible).
*
* Transfer count (_not # bytes_) is limited to 64K, represented as actual
* count - 1 : 64K => 0xFFFF, 1 => 0x0000. Thus, count is always 1 or more,
* and up to 128K bytes may be transferred on channels 5-7 in one operation.
*
*/
#define MAX_DMA_CHANNELS 8
/* The maximum address that we can perform a DMA transfer to on this platform */
#define MAX_DMA_ADDRESS 0x1000000
/* 8237 DMA controllers */
#define IO_DMA1_BASE 0x00 /* 8 bit slave DMA, channels 0..3 */
#define IO_DMA2_BASE 0xC0 /* 16 bit master DMA, ch 4(=slave input)..7 */
/* DMA controller registers */
#define DMA1_CMD_REG 0x08 /* command register (w) */
#define DMA1_STAT_REG 0x08 /* status register (r) */
#define DMA1_REQ_REG 0x09 /* request register (w) */
#define DMA1_MASK_REG 0x0A /* single-channel mask (w) */
#define DMA1_MODE_REG 0x0B /* mode register (w) */
#define DMA1_CLEAR_FF_REG 0x0C /* clear pointer flip-flop (w) */
#define DMA1_TEMP_REG 0x0D /* Temporary Register (r) */
#define DMA1_RESET_REG 0x0D /* Master Clear (w) */
#define DMA1_CLR_MASK_REG 0x0E /* Clear Mask */
#define DMA1_MASK_ALL_REG 0x0F /* all-channels mask (w) */
#define DMA2_CMD_REG 0xD0 /* command register (w) */
#define DMA2_STAT_REG 0xD0 /* status register (r) */
#define DMA2_REQ_REG 0xD2 /* request register (w) */
#define DMA2_MASK_REG 0xD4 /* single-channel mask (w) */
#define DMA2_MODE_REG 0xD6 /* mode register (w) */
#define DMA2_CLEAR_FF_REG 0xD8 /* clear pointer flip-flop (w) */
#define DMA2_TEMP_REG 0xDA /* Temporary Register (r) */
#define DMA2_RESET_REG 0xDA /* Master Clear (w) */
#define DMA2_CLR_MASK_REG 0xDC /* Clear Mask */
#define DMA2_MASK_ALL_REG 0xDE /* all-channels mask (w) */
#define DMA_ADDR_0 0x00 /* DMA address registers */
#define DMA_ADDR_1 0x02
#define DMA_ADDR_2 0x04
#define DMA_ADDR_3 0x06
#define DMA_ADDR_4 0xC0
#define DMA_ADDR_5 0xC4
#define DMA_ADDR_6 0xC8
#define DMA_ADDR_7 0xCC
#define DMA_CNT_0 0x01 /* DMA count registers */
#define DMA_CNT_1 0x03
#define DMA_CNT_2 0x05
#define DMA_CNT_3 0x07
#define DMA_CNT_4 0xC2
#define DMA_CNT_5 0xC6
#define DMA_CNT_6 0xCA
#define DMA_CNT_7 0xCE
#define DMA_PAGE_0 0x87 /* DMA page registers */
#define DMA_PAGE_1 0x83
#define DMA_PAGE_2 0x81
#define DMA_PAGE_3 0x82
#define DMA_PAGE_5 0x8B
#define DMA_PAGE_6 0x89
#define DMA_PAGE_7 0x8A
#define DMA_MODE_READ 0x44 /* I/O to memory, no autoinit, increment, single mode */
#define DMA_MODE_WRITE 0x48 /* memory to I/O, no autoinit, increment, single mode */
#define DMA_MODE_CASCADE 0xC0 /* pass thru DREQ->HRQ, DACK<-HLDA only */
/* enable/disable a specific DMA channel */
static __inline__ void enable_dma(unsigned int dmanr)
{
if (dmanr<=3)
dma_outb(DMA1_MASK_REG, dmanr);
else
dma_outb(DMA2_MASK_REG, dmanr & 3);
}
static __inline__ void disable_dma(unsigned int dmanr)
{
if (dmanr<=3)
dma_outb(DMA1_MASK_REG, dmanr | 4);
else
dma_outb(DMA2_MASK_REG, (dmanr & 3) | 4);
}
/* Clear the 'DMA Pointer Flip Flop'.
* Write 0 for LSB/MSB, 1 for MSB/LSB access.
* Use this once to initialize the FF to a known state.
* After that, keep track of it. :-)
* --- In order to do that, the DMA routines below should ---
* --- only be used while interrupts are disabled! ---
*/
static __inline__ void clear_dma_ff(unsigned int dmanr)
{
if (dmanr<=3)
dma_outb(DMA1_CLEAR_FF_REG, 0);
else
dma_outb(DMA2_CLEAR_FF_REG, 0);
}
/* set mode (above) for a specific DMA channel */
static __inline__ void set_dma_mode(unsigned int dmanr, char mode)
{
if (dmanr<=3)
dma_outb(DMA1_MODE_REG, mode | dmanr);
else
dma_outb(DMA2_MODE_REG, mode | (dmanr&3));
}
/* Set only the page register bits of the transfer address.
* This is used for successive transfers when we know the contents of
* the lower 16 bits of the DMA current address register, but a 64k boundary
* may have been crossed.
*/
static __inline__ void set_dma_page(unsigned int dmanr, char pagenr)
{
switch(dmanr) {
case 0:
dma_outb(DMA_PAGE_0, pagenr);
break;
case 1:
dma_outb(DMA_PAGE_1, pagenr);
break;
case 2:
dma_outb(DMA_PAGE_2, pagenr);
break;
case 3:
dma_outb(DMA_PAGE_3, pagenr);
break;
case 5:
dma_outb(DMA_PAGE_5, pagenr & 0xfe);
break;
case 6:
dma_outb(DMA_PAGE_6, pagenr & 0xfe);
break;
case 7:
dma_outb(DMA_PAGE_7, pagenr & 0xfe);
break;
}
}
/* Set transfer address & page bits for specific DMA channel.
* Assumes dma flipflop is clear.
*/
static __inline__ void set_dma_addr(unsigned int dmanr, unsigned int a)
{
set_dma_page(dmanr, a>>16);
if (dmanr <= 3) {
dma_outb(((dmanr&3)<<1) + IO_DMA1_BASE, a & 0xff);
dma_outb(((dmanr&3)<<1) + IO_DMA1_BASE, (a>>8) & 0xff );
} else {
dma_outb( ((dmanr&3)<<2) + IO_DMA2_BASE ,(a>>1) & 0xff );
dma_outb( ((dmanr&3)<<2) + IO_DMA2_BASE,(a>>9) & 0xff );
}
}
/* Set transfer size (max 64k for DMA1..3, 128k for DMA5..7) for
* a specific DMA channel.
* You must ensure the parameters are valid.
* NOTE: from a manual: "the number of transfers is one more
* than the initial word count"! This is taken into account.
* Assumes dma flip-flop is clear.
* NOTE 2: "count" represents _bytes_ and must be even for channels 5-7.
*/
static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count)
{
count--;
if (dmanr <= 3) {
dma_outb( count & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
dma_outb( (count>>8) & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
} else {
dma_outb( (count>>1) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
dma_outb( (count>>9) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
}
}
/* Get DMA residue count. After a DMA transfer, this
* should return zero. Reading this while a DMA transfer is
* still in progress will return unpredictable results.
* If called before the channel has been used, it may return 1.
* Otherwise, it returns the number of _bytes_ left to transfer.
*
* Assumes DMA flip-flop is clear.
*/
static __inline__ int get_dma_residue(unsigned int dmanr)
{
unsigned int io_port = (dmanr<=3)? ((dmanr&3)<<1) + 1 + IO_DMA1_BASE
: ((dmanr&3)<<2) + 2 + IO_DMA2_BASE;
/* using short to get 16-bit wrap around */
unsigned short count;
count = 1 + dma_inb(io_port);
count += dma_inb(io_port) << 8;
return (dmanr<=3)? count : (count<<1);
}
#endif /* _ASM_DMA_H */

View File

@@ -1,146 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/internal/hal/ddk.h
* PURPOSE: HAL provided defintions for device drivers
* PROGRAMMER: David Welch (welch@mcmail.com)
* REVISION HISTORY:
* 23/06/98: Taken from linux system.h
*/
#ifndef __INCLUDE_INTERNAL_HAL_DDK_H
#define __INCLUDE_INTERNAL_HAL_DDK_H
enum
{
DEVICE_DESCRIPTION_VERSION,
DEVICE_DESCRIPTION_VERSION1,
};
typedef ULONG DMA_WIDTH;
typedef ULONG DMA_SPEED;
typedef ULONG BUS_DATA_TYPE;
/*
* PURPOSE: Types for HalGetBusData
*/
enum
{
Cmos,
EisaConfiguration,
Pos,
PCIConfiguration,
MaximumBusDataType,
};
typedef struct _DEVICE_DESCRIPTION
{
ULONG Version;
BOOLEAN Master;
BOOLEAN ScatterGather;
BOOLEAN DemandMode;
BOOLEAN AutoInitialize;
BOOLEAN Dma32BitAddress;
BOOLEAN IgnoreCount;
BOOLEAN Reserved1;
BOOLEAN Reserved2;
ULONG BusNumber;
ULONG DmaChannel;
INTERFACE_TYPE InterfaceType;
DMA_WIDTH DmaWidth;
DMA_SPEED DmaSpeed;
ULONG MaximumLength;
ULONG DmaPort;
} DEVICE_DESCRIPTION, *PDEVICE_DESCRIPTION;
PVOID HalAllocateCommonBuffer(PADAPTER_OBJECT AdapterObject,
ULONG Length,
PPHYSICAL_ADDRESS LogicalAddress,
BOOLEAN CacheEnabled);
NTSTATUS HalAssignSlotResources(PUNICODE_STRING RegistryPath,
PUNICODE_STRING DriverClassName,
PDRIVER_OBJECT DriverObject,
PDEVICE_OBJECT DeviceObject,
INTERFACE_TYPE BusType,
ULONG BusNumber,
ULONG SlotNumber,
PCM_RESOURCE_LIST* AllocatedResources);
VOID HalExamineMBR(PDEVICE_OBJECT DeviceObject,
ULONG SectorSize,
ULONG MBRTypeIdentifier,
PVOID Buffer);
VOID HalFreeCommonBuffer(PADAPTER_OBJECT AdapterObject,
ULONG Length,
PHYSICAL_ADDRESS LogicalAddress,
PVOID VirtualAddress,
BOOLEAN CacheEnabled);
PADAPTER_OBJECT HalGetAdapter(PDEVICE_DESCRIPTION DeviceDescription,
PULONG NumberOfMapRegisters);
ULONG HalGetBusData(BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG SlotNumber,
PVOID Buffer,
ULONG Length);
ULONG HalGetBusDataByOffset(BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG SlotNumber,
PVOID Buffer,
ULONG Offset,
ULONG Length);
ULONG HalGetDmaAlignmentRequirement(VOID);
ULONG HalGetInterruptVector(INTERFACE_TYPE InterfaceType,
ULONG BusNumber,
ULONG BusInterruptLevel,
ULONG BusInterruptVector,
PKIRQL Irql,
PKAFFINITY Affinity);
VOID HalQuerySystemInformation(VOID);
ULONG HalReadDmaCounter(PADAPTER_OBJECT AdapterObject);
ULONG HalSetBusData(BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG SlotNumber,
PVOID Buffer,
ULONG Length);
ULONG HalSetBusDataByOffset(BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG SlotNumber,
PVOID Buffer,
ULONG Offset,
ULONG Length);
BOOLEAN HalTranslateBusAddress(INTERFACE_TYPE InterfaceType,
ULONG BusNumber,
PHYSICAL_ADDRESS BusAddress,
PULONG AddressSpace,
PPHYSICAL_ADDRESS TranslatedAddress);
struct __xchg_dummy { unsigned long a[100]; };
#define __xg(x) ((struct __xchg_dummy *)(x))
extern inline LONG InterlockedDecrement(PLONG Addend)
/*
* FUNCTION: Decrements a variable as an atomic operations
* ARGUMENTS:
* Addend = Value to be decremented
* RETURNS: The decremented value
*/
{
}
extern inline LONG InterlockedExchange(PLONG Target, LONG Value)
/*
* FUNCTION: Sets a variable as an atomic operation
* ARGUMENTS:
* Target = Variable to be set
* Value = Caller specified value to set
* RETURNS: The previous value of the target
*/
{
__asm__("xchgl %0,%1"
:"=r" (Value)
:"m" (*__xg(Target)), "0" (Value)
:"memory");
return(Value);
}
#endif /* __INCLUDE_INTERNAL_HAL_DDK_H */

View File

@@ -1,71 +0,0 @@
/*
*
*/
#ifndef __INTERNAL_HAL_HAL_H
#define __INTERNAL_HAL_HAL_H
typedef struct
{
unsigned short previous_task;
unsigned short reserved1;
unsigned long esp0;
unsigned short ss0;
unsigned short reserved2;
unsigned long esp1;
unsigned short ss1;
unsigned short reserved3;
unsigned long esp2;
unsigned short ss2;
unsigned short reserved4;
unsigned long cr3;
unsigned long eip;
unsigned long eflags;
unsigned long eax;
unsigned long ecx;
unsigned long edx;
unsigned long ebx;
unsigned long esp;
unsigned long ebp;
unsigned long esi;
unsigned long edi;
unsigned short es;
unsigned short reserved5;
unsigned short cs;
unsigned short reserved6;
unsigned short ss;
unsigned short reserved7;
unsigned short ds;
unsigned short reserved8;
unsigned short fs;
unsigned short reserved9;
unsigned short gs;
unsigned short reserved10;
unsigned short ldt;
unsigned short reserved11;
unsigned short trap;
unsigned short iomap_base;
unsigned short nr;
unsigned char io_bitmap[1];
} hal_thread_state;
/*
* FUNCTION: Probes for a PCI bus
* RETURNS: True if found
*/
BOOL HalPciProbe(void);
/*
* FUNCTION: Probes for a BIOS32 extension
*/
VOID Hal_bios32_probe(VOID);
/*
* FUNCTION: Determines if a a bios32 service is present
*/
BOOLEAN Hal_bios32_is_service_present(ULONG service);
#endif /* __INTERNAL_HAL_HAL_H */

View File

@@ -1,167 +0,0 @@
#ifndef _ASM_IO_H
#define _ASM_IO_H
/*
* This file contains the definitions for the x86 IO instructions
* inb/inw/inl/outb/outw/outl and the "string versions" of the same
* (insb/insw/insl/outsb/outsw/outsl). You can also use "pausing"
* versions of the single-IO instructions (inb_p/inw_p/..).
*
* This file is not meant to be obfuscating: it's just complicated
* to (a) handle it all in a way that makes gcc able to optimize it
* as well as possible and (b) trying to avoid writing the same thing
* over and over again with slight variations and possibly making a
* mistake somewhere.
*/
/*
* Thanks to James van Artsdalen for a better timing-fix than
* the two short jumps: using outb's to a nonexistent port seems
* to guarantee better timings even on fast machines.
*
* On the other hand, I'd like to be sure of a non-existent port:
* I feel a bit unsafe about using 0x80 (should be safe, though)
*
* Linus
*/
#ifdef SLOW_IO_BY_JUMPING
#define __SLOW_DOWN_IO __asm__ __volatile__("jmp 1f\n1:\tjmp 1f\n1:")
#else
#define __SLOW_DOWN_IO __asm__ __volatile__("outb %al,$0x80")
#endif
#ifdef REALLY_SLOW_IO
#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
#else
#define SLOW_DOWN_IO __SLOW_DOWN_IO
#endif
/*
* Talk about misusing macros..
*/
#define __OUT1(s,x) \
extern inline void __out##s(unsigned x value, unsigned short port) {
#define __OUT2(s,s1,s2) \
__asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1"
#define __OUT(s,s1,x) \
__OUT1(s,x) __OUT2(s,s1,"w") : : "a" (value), "d" (port)); } \
__OUT1(s##c,x) __OUT2(s,s1,"") : : "a" (value), "id" (port)); } \
__OUT1(s##_p,x) __OUT2(s,s1,"w") : : "a" (value), "d" (port)); SLOW_DOWN_IO; } \
__OUT1(s##c_p,x) __OUT2(s,s1,"") : : "a" (value), "id" (port)); SLOW_DOWN_IO; }
#define __IN1(s) \
extern inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v;
#define __IN2(s,s1,s2) \
__asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0"
#define __IN(s,s1,i...) \
__IN1(s) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) ,##i ); return _v; } \
__IN1(s##c) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); return _v; } \
__IN1(s##_p) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) ,##i ); SLOW_DOWN_IO; return _v; } \
__IN1(s##c_p) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); SLOW_DOWN_IO; return _v; }
#define __INS(s) \
extern inline void ins##s(unsigned short port, void * addr, unsigned long count) \
{ __asm__ __volatile__ ("cld ; rep ; ins" #s \
: "=D" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); }
#define __OUTS(s) \
extern inline void outs##s(unsigned short port, const void * addr, unsigned long count) \
{ __asm__ __volatile__ ("cld ; rep ; outs" #s \
: "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); }
#define RETURN_TYPE unsigned char
/* __IN(b,"b","0" (0)) */
__IN(b,"")
#undef RETURN_TYPE
#define RETURN_TYPE unsigned short
/* __IN(w,"w","0" (0)) */
__IN(w,"")
#undef RETURN_TYPE
#define RETURN_TYPE unsigned int
__IN(l,"")
#undef RETURN_TYPE
__OUT(b,"b",char)
__OUT(w,"w",short)
__OUT(l,,int)
__INS(b)
__INS(w)
__INS(l)
__OUTS(b)
__OUTS(w)
__OUTS(l)
/*
* Note that due to the way __builtin_constant_p() works, you
* - can't use it inside a inline function (it will never be true)
* - you don't have to worry about side effects within the __builtin..
*/
#define outb(port,val) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__outbc((val),(port)) : \
__outb((val),(port)))
#define inb(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__inbc(port) : \
__inb(port))
#define outb_p(port,val) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__outbc_p((val),(port)) : \
__outb_p((val),(port)))
#define inb_p(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__inbc_p(port) : \
__inb_p(port))
#define outw(port,val) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__outwc((val),(port)) : \
__outw((val),(port)))
#define inw(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__inwc(port) : \
__inw(port))
#define outw_p(port,val) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__outwc_p((val),(port)) : \
__outw_p((val),(port)))
#define inw_p(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__inwc_p(port) : \
__inw_p(port))
#define outl(port,val) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__outlc((val),(port)) : \
__outl((val),(port)))
#define inl(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__inlc(port) : \
__inl(port))
#define outl_p(port,val) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__outlc_p((val),(port)) : \
__outl_p((val),(port)))
#define inl_p(port) \
((__builtin_constant_p((port)) && (port) < 256) ? \
__inlc_p(port) : \
__inl_p(port))
#endif

View File

@@ -1,7 +0,0 @@
/*
* PURPOSE: The number of device specific level levels
*/
#define NR_DEVICE_SPECIFIC_LEVELS (16)

View File

@@ -1,76 +0,0 @@
/*
* Lowlevel memory managment definitions
*/
#ifndef __INTERNAL_HAL_PAGE_H
#define __INTERNAL_HAL_PAGE_H
#include <internal/kernel.h>
#define PAGESIZE (4096)
/*
* Sets a page entry
* vaddr: The virtual address to set the page entry for
* attributes: The access attributes to give the page
* physaddr: The physical address the page should map to
*/
void set_page(unsigned int vaddr, unsigned int attributes,
unsigned int physaddr);
#define PAGE_ROUND_UP(x) ( (((ULONG)x)%PAGESIZE) ? ((((ULONG)x)&(~0xfff))+0x1000) : ((ULONG)x) )
#define PAGE_ROUND_DOWN(x) (((ULONG)x)&(~0xfff))
/*
* Page access attributes (or these together)
*/
#define PA_READ (1<<0)
#define PA_WRITE ((1<<0)+(1<<1))
#define PA_EXECUTE PA_READ
/*
* Page attributes
*/
#define PA_USER (1<<2)
#define PA_SYSTEM (0)
#define KERNEL_BASE (0xc0000000)
#define IDMAP_BASE (0xd0000000)
/*
* Return a linear address which can be used to access the physical memory
* starting at x
*/
extern inline unsigned int physical_to_linear(unsigned int x)
{
return(x+IDMAP_BASE);
}
#define FLUSH_TLB __asm__("movl %cr3,%eax\n\tmovl %eax,%cr3\n\t")
extern inline unsigned int* get_page_directory(void)
{
unsigned int page_dir=0;
__asm__("movl %%cr3,%0\n\t"
: "=r" (page_dir));
// printk("page_dir %x %x\n",page_dir,physical_to_linear(page_dir));
return((unsigned int *)physical_to_linear(page_dir));
}
/*
* Amount of memory that can be mapped by a page table
*/
#define PAGE_TABLE_SIZE (4*1024*1024)
#define PAGE_MASK(x) (x&(~0xfff))
#define VADDR_TO_PT_OFFSET(x) (((x/1024)%4096))
#define VADDR_TO_PD_OFFSET(x) ((x)/(4*1024*1024))
unsigned int* get_page_entry(unsigned int vaddr);
BOOL is_page_present(unsigned int vaddr);
#endif /* __INTERNAL_HAL_PAGE_H */

View File

@@ -1,343 +0,0 @@
#ifndef _ASM_SEGMENT_H
#define _ASM_SEGMENT_H
#define ZERO_DS 0x18
#define KERNEL_CS 0x20
#define KERNEL_DS 0x28
#ifndef __ASSEMBLY__
/*
* Uh, these should become the main single-value transfer routines..
* They automatically use the right size if we just have the right
* pointer type..
*/
#define put_user(x,ptr) __put_user((unsigned long)(x),(ptr),sizeof(*(ptr)))
#define get_user(ptr) ((__typeof__(*(ptr)))__get_user((ptr),sizeof(*(ptr))))
/*
* This is a silly but good way to make sure that
* the __put_user function is indeed always optimized,
* and that we use the correct sizes..
*/
extern int bad_user_access_length(void);
/*
* dummy pointer type structure.. gcc won't try to do something strange
* this way..
*/
struct __segment_dummy { unsigned long a[100]; };
#define __sd(x) ((struct __segment_dummy *) (x))
#define __const_sd(x) ((const struct __segment_dummy *) (x))
static inline void __put_user(unsigned long x, void * y, int size)
{
switch (size) {
case 1:
__asm__ ("movb %b1,%%fs:%0"
:"=m" (*__sd(y))
:"iq" ((unsigned char) x), "m" (*__sd(y)));
break;
case 2:
__asm__ ("movw %w1,%%fs:%0"
:"=m" (*__sd(y))
:"ir" ((unsigned short) x), "m" (*__sd(y)));
break;
case 4:
__asm__ ("movl %1,%%fs:%0"
:"=m" (*__sd(y))
:"ir" (x), "m" (*__sd(y)));
break;
default:
bad_user_access_length();
}
}
static inline unsigned long __get_user(const void * y, int size)
{
unsigned long result;
switch (size) {
case 1:
__asm__ ("movb %%fs:%1,%b0"
:"=q" (result)
:"m" (*__const_sd(y)));
return (unsigned char) result;
case 2:
__asm__ ("movw %%fs:%1,%w0"
:"=r" (result)
:"m" (*__const_sd(y)));
return (unsigned short) result;
case 4:
__asm__ ("movl %%fs:%1,%0"
:"=r" (result)
:"m" (*__const_sd(y)));
return result;
default:
return bad_user_access_length();
}
}
static inline void __generic_memcpy_tofs(void * to, const void * from, unsigned long n)
{
__asm__ volatile
(" cld
push %%es
push %%fs
cmpl $3,%0
pop %%es
jbe 1f
movl %%edi,%%ecx
negl %%ecx
andl $3,%%ecx
subl %%ecx,%0
rep; movsb
movl %0,%%ecx
shrl $2,%%ecx
rep; movsl
andl $3,%0
1: movl %0,%%ecx
rep; movsb
pop %%es"
:"=abd" (n)
:"0" (n),"D" ((long) to),"S" ((long) from)
:"cx","di","si");
}
static inline void __constant_memcpy_tofs(void * to, const void * from, unsigned long n)
{
switch (n) {
case 0:
return;
case 1:
__put_user(*(const char *) from, (char *) to, 1);
return;
case 2:
__put_user(*(const short *) from, (short *) to, 2);
return;
case 3:
__put_user(*(const short *) from, (short *) to, 2);
__put_user(*(2+(const char *) from), 2+(char *) to, 1);
return;
case 4:
__put_user(*(const int *) from, (int *) to, 4);
return;
case 8:
__put_user(*(const int *) from, (int *) to, 4);
__put_user(*(1+(const int *) from), 1+(int *) to, 4);
return;
case 12:
__put_user(*(const int *) from, (int *) to, 4);
__put_user(*(1+(const int *) from), 1+(int *) to, 4);
__put_user(*(2+(const int *) from), 2+(int *) to, 4);
return;
case 16:
__put_user(*(const int *) from, (int *) to, 4);
__put_user(*(1+(const int *) from), 1+(int *) to, 4);
__put_user(*(2+(const int *) from), 2+(int *) to, 4);
__put_user(*(3+(const int *) from), 3+(int *) to, 4);
return;
}
#define COMMON(x) \
__asm__("cld\n\t" \
"push %%es\n\t" \
"push %%fs\n\t" \
"pop %%es\n\t" \
"rep ; movsl\n\t" \
x \
"pop %%es" \
: /* no outputs */ \
:"c" (n/4),"D" ((long) to),"S" ((long) from) \
:"cx","di","si")
switch (n % 4) {
case 0:
COMMON("");
return;
case 1:
COMMON("movsb\n\t");
return;
case 2:
COMMON("movsw\n\t");
return;
case 3:
COMMON("movsw\n\tmovsb\n\t");
return;
}
#undef COMMON
}
static inline void __generic_memcpy_fromfs(void * to, const void * from, unsigned long n)
{
__asm__ volatile
(" cld
cmpl $3,%0
jbe 1f
movl %%edi,%%ecx
negl %%ecx
andl $3,%%ecx
subl %%ecx,%0
fs; rep; movsb
movl %0,%%ecx
shrl $2,%%ecx
fs; rep; movsl
andl $3,%0
1: movl %0,%%ecx
fs; rep; movsb"
:"=abd" (n)
:"0" (n),"D" ((long) to),"S" ((long) from)
:"cx","di","si", "memory");
}
static inline void __constant_memcpy_fromfs(void * to, const void * from, unsigned long n)
{
switch (n) {
case 0:
return;
case 1:
*(char *)to = __get_user((const char *) from, 1);
return;
case 2:
*(short *)to = __get_user((const short *) from, 2);
return;
case 3:
*(short *) to = __get_user((const short *) from, 2);
*((char *) to + 2) = __get_user(2+(const char *) from, 1);
return;
case 4:
*(int *) to = __get_user((const int *) from, 4);
return;
case 8:
*(int *) to = __get_user((const int *) from, 4);
*(1+(int *) to) = __get_user(1+(const int *) from, 4);
return;
case 12:
*(int *) to = __get_user((const int *) from, 4);
*(1+(int *) to) = __get_user(1+(const int *) from, 4);
*(2+(int *) to) = __get_user(2+(const int *) from, 4);
return;
case 16:
*(int *) to = __get_user((const int *) from, 4);
*(1+(int *) to) = __get_user(1+(const int *) from, 4);
*(2+(int *) to) = __get_user(2+(const int *) from, 4);
*(3+(int *) to) = __get_user(3+(const int *) from, 4);
return;
}
#define COMMON(x) \
__asm__("cld\n\t" \
"rep ; fs ; movsl\n\t" \
x \
: /* no outputs */ \
:"c" (n/4),"D" ((long) to),"S" ((long) from) \
:"cx","di","si","memory")
switch (n % 4) {
case 0:
COMMON("");
return;
case 1:
COMMON("fs ; movsb");
return;
case 2:
COMMON("fs ; movsw");
return;
case 3:
COMMON("fs ; movsw\n\tfs ; movsb");
return;
}
#undef COMMON
}
#define memcpy_fromfs(to, from, n) \
(__builtin_constant_p(n) ? \
__constant_memcpy_fromfs((to),(from),(n)) : \
__generic_memcpy_fromfs((to),(from),(n)))
#define memcpy_tofs(to, from, n) \
(__builtin_constant_p(n) ? \
__constant_memcpy_tofs((to),(from),(n)) : \
__generic_memcpy_tofs((to),(from),(n)))
/*
* These are deprecated..
*
* Use "put_user()" and "get_user()" with the proper pointer types instead.
*/
#define get_fs_byte(addr) __get_user((const unsigned char *)(addr),1)
#define get_fs_word(addr) __get_user((const unsigned short *)(addr),2)
#define get_fs_long(addr) __get_user((const unsigned int *)(addr),4)
#define put_fs_byte(x,addr) __put_user((x),(unsigned char *)(addr),1)
#define put_fs_word(x,addr) __put_user((x),(unsigned short *)(addr),2)
#define put_fs_long(x,addr) __put_user((x),(unsigned int *)(addr),4)
#ifdef WE_REALLY_WANT_TO_USE_A_BROKEN_INTERFACE
static inline unsigned short get_user_word(const short *addr)
{
return __get_user(addr, 2);
}
static inline unsigned char get_user_byte(const char * addr)
{
return __get_user(addr,1);
}
static inline unsigned long get_user_long(const int *addr)
{
return __get_user(addr, 4);
}
static inline void put_user_byte(char val,char *addr)
{
__put_user(val, addr, 1);
}
static inline void put_user_word(short val,short * addr)
{
__put_user(val, addr, 2);
}
static inline void put_user_long(unsigned long val,int * addr)
{
__put_user(val, addr, 4);
}
#endif
/*
* Someone who knows GNU asm better than I should double check the following.
* It seems to work, but I don't know if I'm doing something subtly wrong.
* --- TYT, 11/24/91
* [ nothing wrong here, Linus: I just changed the ax to be any reg ]
*/
static inline unsigned long get_fs(void)
{
unsigned long _v;
__asm__("mov %%fs,%w0":"=r" (_v):"0" (0));
return _v;
}
static inline unsigned long get_ds(void)
{
unsigned long _v;
__asm__("mov %%ds,%w0":"=r" (_v):"0" (0));
return _v;
}
static inline void set_fs(unsigned long val)
{
__asm__ __volatile__("mov %w0,%%fs": /* no output */ :"r" (val));
}
static inline void set_ds(unsigned long val)
{
__asm__ __volatile__("mov %w0,%%ds": /* no output */ :"r" (val));
}
#endif /* __ASSEMBLY__ */
#endif /* _ASM_SEGMENT_H */

View File

@@ -1,6 +0,0 @@
;
; Useful prototypes and definitions
;
%define KERNEL_DS 028h
%define KERNEL_CS 020h

View File

@@ -1,29 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/internal/iomgr.h
* PURPOSE: Internal io manager declarations
* PROGRAMMER: David Welch (welch@mcmail.com)
* UPDATE HISTORY:
* 28/05/97: Created
*/
#ifndef __INTERNAL_IOMGR_H
#define __INTERNAL_IOMGR_H
#include <ddk/ntddk.h>
/*
* FUNCTION:
*/
NTSTATUS IoBeginIrp(PDEVICE_OBJECT DeviceObject, PIRP Irp);
/*
* FUNCTION: Called to initalize a loaded driver
* ARGUMENTS:
* entry = pointer to the driver initialization routine
* RETURNS: Success or failure
*/
NTSTATUS InitalizeLoadedDriver(PDRIVER_INITIALIZE entry);
#endif

View File

@@ -1,93 +0,0 @@
/*
* Various useful prototypes
*/
#ifndef __KERNEL_H
#define __KERNEL_H
#include <windows.h>
#include <ddk/ntddk.h>
#include <internal/linkage.h>
#include <stdarg.h>
VOID KiInterruptDispatch(unsigned int irq);
VOID KiDispatchInterrupt(unsigned int irq);
VOID KeTimerInterrupt(VOID);
/*
* Defines a descriptor as it appears in the processor tables
*/
typedef struct
{
unsigned int a;
unsigned int b;
} descriptor;
extern descriptor idt[256];
extern descriptor gdt[256];
/*
* printf style functions
*/
asmlinkage void printk(const char* fmt, ...);
int vsprintf(char *buf, const char *fmt, va_list args);
int sprintf(char* buf, const char* fmt, ...);
typedef struct
{
/*
* Magic value (useless really)
*/
unsigned int magic;
/*
* Cursor position
*/
unsigned int cursorx;
unsigned int cursory;
/*
* Number of files (including the kernel) loaded
*/
unsigned int nr_files;
/*
* Range of physical memory being used by the system
*/
unsigned int start_mem;
unsigned int end_mem;
/*
* List of module lengths (terminated by a 0)
*/
unsigned int module_length[64];
} boot_param;
/*
* Initalization functions (called once by main())
*/
void MmInitalize(boot_param* bp);
void InitalizeExceptions(void);
void InitalizeIRQ(void);
void InitializeTimer(void);
void InitConsole(boot_param* bp);
void KeInitDpc(void);
void HalInit(boot_param* bp);
void IoInit(void);
void ObjNamespcInit(void);
void PsMgrInit(void);
/*
* FUNCTION: Called to execute queued dpcs
*/
void KeDrainDpcQueue(void);
void KeExpireTimers(void);
typedef unsigned int (exception_hook)(CONTEXT* c, unsigned int exp);
asmlinkage unsigned int ExHookException(exception_hook fn, UINT exp);
#endif

View File

@@ -1,5 +0,0 @@
#ifdef __cplusplus
#define asmlinkage extern "C"
#else
#define asmlinkage
#endif

View File

@@ -1,146 +0,0 @@
/*
* Higher level memory managment definitions
*/
#ifndef __MM_H
#define __MM_H
#define PAGE_SYSTEM (0x80000000)
#include <internal/linkage.h>
#include <internal/kernel.h>
#include <windows.h>
typedef struct _memory_area
/*
* PURPOSE: Describes an area of virtual memory
*/
{
/*
* Access protection
*/
unsigned int access;
/*
* Memory region base
*/
unsigned int base;
/*
* Memory region length
*/
unsigned int length;
/*
* Memory type (Mapped file, mapped from an executable or private)
*/
unsigned int type;
/*
* Memory region state (committed, reserved or free)
*/
unsigned int state;
/*
* Original access protection
*/
unsigned int initial_access;
/*
* Used to maintain the linked list of memory areas
*/
struct _memory_area* previous;
struct _memory_area* next;
/*
* True the region is locked
*/
BOOL lock;
/*
* FUNCTION: Decommits all the pages in the regions
*/
void (*free)(struct _memory_area* marea);
/*
* FUNCTION: Handles a page fault by loading the required page
* RECEIVES:
* marea = the memory area
* address = the relative address of the page to load
* RETURNS:
* TRUE = the access should be restarted
* FALSE = the access was illegal and an exception should
* be generated
* NOTES: This function is guarrented to be called within the context
* of the thread which required a page to be loaded
*/
BOOL (*load_page)(struct _memory_area* marea, unsigned int address);
} memory_area;
/*
* FUNCTION: Gets a page with a restricted max physical address (i.e.
* suitable for dma)
* RETURNS:
* The physical address of the page if it succeeds
* NULL if it fails.
* NOTES: This is very inefficent because the list isn't sorted. On the
* other hand sorting the list would be quite expensive especially if dma
* is only used infrequently. Perhaps a special cache of dma pages should
* be maintained?
*/
unsigned int get_dma_page(unsigned int max_address);
/*
* FUNCTION: Allocate a page and return its physical address
* RETURNS: The physical address of the page allocated
*/
asmlinkage unsigned int get_free_page(void);
/*
* FUNCTION: Adds pages to the free list
* ARGUMENTS:
* physical_base = Physical address of the base of the region to
* be freed
* nr = number of continuous pages to free
*/
asmlinkage void free_page(unsigned int physical_base, unsigned int nr);
/*
* FUNCTION: Returns the physical address mapped by a given virtual address
* ARGUMENTS:
* vaddr = virtual address to query
* RETURNS: The physical address if present in memory
* Zero if paged out or invalid
* NOTE: This doesn't do any synchronization
*/
unsigned int get_page_physical_address(unsigned int vaddr);
void mark_page_not_writable(unsigned int vaddr);
void VirtualInit(boot_param* bp);
/*
* FUNCTION: Returns the first memory area starting in the region or the last
* one before the start of the region
* ARGUMENTS:
* list_head = Head of the list of memory areas to search
* base = base address of the region
* length = length of the region
* RETURNS: A pointer to the area found or
* NULL if the region was before the first region on the list
*/
memory_area* find_first_marea(memory_area* list_head, unsigned int base,
unsigned int length);
/*
* Head of the list of system memory areas
*/
extern memory_area* system_memory_area_list_head;
/*
* Head of the list of user memory areas (this should be per process)
*/
extern memory_area* memory_area_list_head;
#endif

View File

@@ -1,34 +0,0 @@
#ifndef __MODULE_H
#define __MODULE_H
#include <coff.h>
typedef struct
/*
*
*/
{
unsigned int text_base;
unsigned int data_base;
unsigned int bss_base;
SCNHDR* scn_list;
char* str_tab;
SYMENT* sym_list;
unsigned int size;
/*
* Base address of the module in memory
*/
unsigned int base;
/*
* Offset of the raw data in memory
*/
unsigned int raw_data_off;
} module;
int process_boot_module(unsigned int start);
#endif

View File

@@ -1,89 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/internal/objmgr.h
* PURPOSE: Object manager definitions
* PROGRAMMER: David Welch (welch@mcmail.com)
*/
#ifndef __INCLUDE_INTERNAL_OBJMGR_H
#define __INCLUDE_INTERNAL_OBJMGR_H
#include <ddk/types.h>
typedef struct
{
CSHORT Type;
CSHORT Size;
} COMMON_BODY_HEADER, *PCOMMON_BODY_HEADER;
typedef struct _DIRECTORY_OBJECT
{
CSHORT Type;
CSHORT Size;
/*
* PURPOSE: Head of the list of our subdirectories
*/
LIST_ENTRY head;
} DIRECTORY_OBJECT, *PDIRECTORY_OBJECT;
/*
* Enumeration of object types
*/
enum
{
OBJTYP_INVALID,
OBJTYP_TYPE,
OBJTYP_DIRECTORY,
OBJTYP_SYMLNK,
OBJTYP_DEVICE,
OBJTYP_THREAD,
OBJTYP_MAX,
};
BOOL ObjAddObjectToNameSpace(const char* path, POBJECT_HEADER Object);
VOID ObRegisterType(CSHORT id, OBJECT_TYPE* type);
VOID ObInitializeObjectHeader(CSHORT id, LPCSTR name, POBJECT_HEADER obj);
/*
* FUNCTION: Get the size of an object
* ARGUMENTS:
* Type = Object type
* RETURNS: The size in bytes
*/
ULONG ObSizeOf(CSHORT Type);
HANDLE ObAddHandle(PVOID obj);
PVOID ObGetObjectByHandle(HANDLE h);
PVOID ObLookupObject(PDIRECTORY_OBJECT root, const char* _string);
PVOID ObGenericCreateObject(PHANDLE Handle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes,
CSHORT Type);
/*
* FUNCTION: Creates an entry within a directory
* ARGUMENTS:
* parent = Parent directory
* object = Header of the object to add
*/
VOID ObCreateEntry(PDIRECTORY_OBJECT parent, POBJECT_HEADER object);
extern inline POBJECT_HEADER BODY_TO_HEADER(PVOID body)
{
PCOMMON_BODY_HEADER chdr = (PCOMMON_BODY_HEADER)body;
return(CONTAINING_RECORD((&(chdr->Type)),OBJECT_HEADER,Type));
}
extern inline PVOID HEADER_TO_BODY(POBJECT_HEADER obj)
{
return(((void *)obj)+sizeof(OBJECT_HEADER)-sizeof(COMMON_BODY_HEADER));
}
#define OBJECT_ALLOC_SIZE(type) (ObSizeOf(type)+sizeof(OBJECT_HEADER)-sizeof(COMMON_BODY_HEADER))
#endif /* __INCLUDE_INTERNAL_OBJMGR_H */

View File

@@ -1,19 +0,0 @@
#ifndef __INTERNAL_POOL_H
#define __INTERNAL_POOL_H
#include <windows.h>
#include <internal/linkage.h>
/*
* Maximum size of the kmalloc area (this is totally arbitary)
*/
#define NONPAGED_POOL_SIZE (4*1024*1024)
/*
* Allocates an arbitary sized block at any alignment
*/
//asmlinkage void* ExAllocatePool(ULONG size);
//asmlinkage void ExFreePool(void* block);
#endif /* __INTERNAL_POOL_H */

View File

@@ -1,50 +0,0 @@
#ifndef __INCLUDE_INTERNAL_PSMGR_H
#define __INCLUDE_INTERNAL_PSMGR_H
#include <internal/hal/hal.h>
void PsInitThreadManagment(void);
/*
* PURPOSE: Thread states
*/
enum
{
/*
* PURPOSE: Don't touch
*/
THREAD_STATE_INVALID,
/*
* PURPOSE: Waiting to be dispatched
*/
THREAD_STATE_RUNNABLE,
/*
* PURPOSE: Currently running
*/
THREAD_STATE_RUNNING,
/*
* PURPOSE: Doesn't want to run
*/
THREAD_STATE_SLEEPING,
/*
* Waiting to be freed
*/
THREAD_STATE_TERMINATED,
};
NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus);
/*
* Functions the HAL must provide
*/
void HalInitFirstTask(PTHREAD_OBJECT thread);
void HalInitTask(PTHREAD_OBJECT thread, PKSTART_ROUTINE fn,
PVOID StartContext);
void HalTaskSwitch(PTHREAD_OBJECT thread);
#endif

View File

@@ -1,10 +0,0 @@
/*
* Some useful things
*/
//#define NULL ((void*)0)
#ifndef NULL
#define NULL (0)
#endif

View File

@@ -1,680 +0,0 @@
/*
* Adapted from linux for the reactos kernel, march 1998 -- David Welch
*/
#ifndef _LINUX_STRING_H_
#define _LINUX_STRING_H_
#include "types.h" /* for size_t */
#ifndef NULL
#define NULL ((void *) 0)
#endif
#ifdef __cplusplus
extern "C" {
#endif
extern char * ___strtok;
extern char * strcpy(char *,const char *);
extern char * strncpy(char *,const char *, __kernel_size_t);
extern char * strcat(char *, const char *);
extern char * strncat(char *, const char *, __kernel_size_t);
extern char * strchr(const char *,int);
extern char * strrchr(const char *,int);
extern char * strpbrk(const char *,const char *);
extern char * strtok(char *,const char *);
extern char * strstr(const char *,const char *);
extern __kernel_size_t strlen(const char *);
extern __kernel_size_t strnlen(const char *,__kernel_size_t);
extern __kernel_size_t strspn(const char *,const char *);
extern int strcmp(const char *,const char *);
extern int strncmp(const char *,const char *,__kernel_size_t);
extern void * memset(void *,int,__kernel_size_t);
extern void * memcpy(void *,const void *,__kernel_size_t);
extern void * memmove(void *,const void *,__kernel_size_t);
extern void * memscan(void *,int,__kernel_size_t);
extern int memcmp(const void *,const void *,__kernel_size_t);
/*
* Include machine specific inline routines
*/
#ifndef _I386_STRING_H_
#define _I386_STRING_H_
/*
* On a 486 or Pentium, we are better off not using the
* byte string operations. But on a 386 or a PPro the
* byte string ops are faster than doing it by hand
* (MUCH faster on a Pentium).
*
* Also, the byte strings actually work correctly. Forget
* the i486 routines for now as they may be broken..
*/
#if FIXED_486_STRING && (CPU == 486 || CPU == 586)
#include <asm/string-486.h>
#else
/*
* This string-include defines all string functions as inline
* functions. Use gcc. It also assumes ds=es=data space, this should be
* normal. Most of the string-functions are rather heavily hand-optimized,
* see especially strtok,strstr,str[c]spn. They should work, but are not
* very easy to understand. Everything is done entirely within the register
* set, making the functions fast and clean. String instructions have been
* used through-out, making for "slightly" unclear code :-)
*
* Copyright (C) 1991, 1992 Linus Torvalds
*/
#define __HAVE_ARCH_STRCPY
extern inline char * strcpy(char * dest,const char *src)
{
__asm__ __volatile__(
"cld\n"
"1:\tlodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
: /* no output */
:"S" (src),"D" (dest):"si","di","ax","memory");
return dest;
}
#define __HAVE_ARCH_STRNCPY
extern inline char * strncpy(char * dest,const char *src,size_t count)
{
__asm__ __volatile__(
"cld\n"
"1:\tdecl %2\n\t"
"js 2f\n\t"
"lodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n\t"
"rep\n\t"
"stosb\n"
"2:"
: /* no output */
:"S" (src),"D" (dest),"c" (count):"si","di","ax","cx","memory");
return dest;
}
#define __HAVE_ARCH_STRCAT
extern inline char * strcat(char * dest,const char * src)
{
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasb\n\t"
"decl %1\n"
"1:\tlodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
: /* no output */
:"S" (src),"D" (dest),"a" (0),"c" (0xffffffff):"si","di","ax","cx");
return dest;
}
#define __HAVE_ARCH_STRNCAT
extern inline char * strncat(char * dest,const char * src,size_t count)
{
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasb\n\t"
"decl %1\n\t"
"movl %4,%3\n"
"1:\tdecl %3\n\t"
"js 2f\n\t"
"lodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n"
"2:\txorl %2,%2\n\t"
"stosb"
: /* no output */
:"S" (src),"D" (dest),"a" (0),"c" (0xffffffff),"g" (count)
:"si","di","ax","cx","memory");
return dest;
}
#define __HAVE_ARCH_STRCMP
extern inline int strcmp(const char * cs,const char * ct)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\tlodsb\n\t"
"scasb\n\t"
"jne 2f\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"jmp 3f\n"
"2:\tsbbl %%eax,%%eax\n\t"
"orb $1,%%eax\n"
"3:"
:"=a" (__res):"S" (cs),"D" (ct):"si","di");
return __res;
}
#define __HAVE_ARCH_STRNCMP
extern inline int strncmp(const char * cs,const char * ct,size_t count)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\tdecl %3\n\t"
"js 2f\n\t"
"lodsb\n\t"
"scasb\n\t"
"jne 3f\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n"
"2:\txorl %%eax,%%eax\n\t"
"jmp 4f\n"
"3:\tsbbl %%eax,%%eax\n\t"
"orb $1,%%al\n"
"4:"
:"=a" (__res):"S" (cs),"D" (ct),"c" (count):"si","di","cx");
return __res;
}
#define __HAVE_ARCH_STRCHR
extern inline char * strchr(const char * s, int c)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movb %%al,%%ah\n"
"1:\tlodsb\n\t"
"cmpb %%ah,%%al\n\t"
"je 2f\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n\t"
"movl $1,%1\n"
"2:\tmovl %1,%0\n\t"
"decl %0"
:"=a" (__res):"S" (s),"0" (c):"si");
return __res;
}
#define __HAVE_ARCH_STRRCHR
extern inline char * strrchr(const char * s, int c)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movb %%al,%%ah\n"
"1:\tlodsb\n\t"
"cmpb %%ah,%%al\n\t"
"jne 2f\n\t"
"leal -1(%%esi),%0\n"
"2:\ttestb %%al,%%al\n\t"
"jne 1b"
:"=d" (__res):"0" (0),"S" (s),"a" (c):"ax","si");
return __res;
}
#define __HAVE_ARCH_STRSPN
extern inline size_t strspn(const char * cs, const char * ct)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"je 1b\n"
"2:\tdecl %0"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"ax","cx","dx","di");
return __res-cs;
}
#define __HAVE_ARCH_STRCSPN
extern inline size_t strcspn(const char * cs, const char * ct)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"jne 1b\n"
"2:\tdecl %0"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"ax","cx","dx","di");
return __res-cs;
}
#define __HAVE_ARCH_STRPBRK
extern inline char * strpbrk(const char * cs,const char * ct)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"jne 1b\n\t"
"decl %0\n\t"
"jmp 3f\n"
"2:\txorl %0,%0\n"
"3:"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"ax","cx","dx","di");
return __res;
}
#define __HAVE_ARCH_STRSTR
extern inline char * strstr(const char * cs,const char * ct)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t" \
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t" /* NOTE! This also sets Z if searchstring='' */
"movl %%ecx,%%edx\n"
"1:\tmovl %4,%%edi\n\t"
"movl %%esi,%%eax\n\t"
"movl %%edx,%%ecx\n\t"
"repe\n\t"
"cmpsb\n\t"
"je 2f\n\t" /* also works for empty string, see above */
"xchgl %%eax,%%esi\n\t"
"incl %%esi\n\t"
"cmpb $0,-1(%%eax)\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"2:"
:"=a" (__res):"0" (0),"c" (0xffffffff),"S" (cs),"g" (ct)
:"cx","dx","di","si");
return __res;
}
#define __HAVE_ARCH_STRLEN
extern inline size_t strlen(const char * s)
{
register int __res;
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasb\n\t"
"notl %0\n\t"
"decl %0"
:"=c" (__res):"D" (s),"a" (0),"0" (0xffffffff):"di");
return __res;
}
#define __HAVE_ARCH_STRTOK
extern inline char * strtok(char * s,const char * ct)
{
register char * __res;
__asm__ __volatile__(
"testl %1,%1\n\t"
"jne 1f\n\t"
"testl %0,%0\n\t"
"je 8f\n\t"
"movl %0,%1\n"
"1:\txorl %0,%0\n\t"
"movl $-1,%%ecx\n\t"
"xorl %%eax,%%eax\n\t"
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"je 7f\n\t" /* empty delimiter-string */
"movl %%ecx,%%edx\n"
"2:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 7f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"je 2b\n\t"
"decl %1\n\t"
"cmpb $0,(%1)\n\t"
"je 7f\n\t"
"movl %1,%0\n"
"3:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 5f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"jne 3b\n\t"
"decl %1\n\t"
"cmpb $0,(%1)\n\t"
"je 5f\n\t"
"movb $0,(%1)\n\t"
"incl %1\n\t"
"jmp 6f\n"
"5:\txorl %1,%1\n"
"6:\tcmpb $0,(%0)\n\t"
"jne 7f\n\t"
"xorl %0,%0\n"
"7:\ttestl %0,%0\n\t"
"jne 8f\n\t"
"movl %0,%1\n"
"8:"
:"=b" (__res),"=S" (___strtok)
:"0" (___strtok),"1" (s),"g" (ct)
:"ax","cx","dx","di","memory");
return __res;
}
extern inline void * __memcpy(void * to, const void * from, size_t n)
{
__asm__ __volatile__(
"cld\n\t"
"rep ; movsl\n\t"
"testb $2,%b1\n\t"
"je 1f\n\t"
"movsw\n"
"1:\ttestb $1,%b1\n\t"
"je 2f\n\t"
"movsb\n"
"2:"
: /* no output */
:"c" (n/4), "q" (n),"D" ((long) to),"S" ((long) from)
: "cx","di","si","memory");
return (to);
}
/*
* This looks horribly ugly, but the compiler can optimize it totally,
* as the count is constant.
*/
extern inline void * __constant_memcpy(void * to, const void * from, size_t n)
{
switch (n) {
case 0:
return to;
case 1:
*(unsigned char *)to = *(const unsigned char *)from;
return to;
case 2:
*(unsigned short *)to = *(const unsigned short *)from;
return to;
case 3:
*(unsigned short *)to = *(const unsigned short *)from;
*(2+(unsigned char *)to) = *(2+(const unsigned char *)from);
return to;
case 4:
*(unsigned long *)to = *(const unsigned long *)from;
return to;
case 8:
*(unsigned long *)to = *(const unsigned long *)from;
*(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
return to;
case 12:
*(unsigned long *)to = *(const unsigned long *)from;
*(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
*(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
return to;
case 16:
*(unsigned long *)to = *(const unsigned long *)from;
*(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
*(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
*(3+(unsigned long *)to) = *(3+(const unsigned long *)from);
return to;
case 20:
*(unsigned long *)to = *(const unsigned long *)from;
*(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
*(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
*(3+(unsigned long *)to) = *(3+(const unsigned long *)from);
*(4+(unsigned long *)to) = *(4+(const unsigned long *)from);
return to;
}
#define COMMON(x) \
__asm__("cld\n\t" \
"rep ; movsl" \
x \
: /* no outputs */ \
: "c" (n/4),"D" ((long) to),"S" ((long) from) \
: "cx","di","si","memory");
switch (n % 4) {
case 0: COMMON(""); return to;
case 1: COMMON("\n\tmovsb"); return to;
case 2: COMMON("\n\tmovsw"); return to;
case 3: COMMON("\n\tmovsw\n\tmovsb"); return to;
}
#undef COMMON
}
#define __HAVE_ARCH_MEMCPY
#define memcpy(t, f, n) \
(__builtin_constant_p(n) ? \
__constant_memcpy((t),(f),(n)) : \
__memcpy((t),(f),(n)))
#define __HAVE_ARCH_MEMMOVE
extern inline void * memmove(void * dest,const void * src, size_t n)
{
if (dest<src)
__asm__ __volatile__(
"cld\n\t"
"rep\n\t"
"movsb"
: /* no output */
:"c" (n),"S" (src),"D" (dest)
:"cx","si","di");
else
__asm__ __volatile__(
"std\n\t"
"rep\n\t"
"movsb\n\t"
"cld"
: /* no output */
:"c" (n),
"S" (n-1+(const char *)src),
"D" (n-1+(char *)dest)
:"cx","si","di","memory");
return dest;
}
#define memcmp __builtin_memcmp
#define __HAVE_ARCH_MEMCHR
extern inline void * memchr(const void * cs,int c,size_t count)
{
register void * __res;
if (!count)
return NULL;
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasb\n\t"
"je 1f\n\t"
"movl $1,%0\n"
"1:\tdecl %0"
:"=D" (__res):"a" (c),"D" (cs),"c" (count)
:"cx");
return __res;
}
extern inline void * __memset_generic(void * s, char c,size_t count)
{
__asm__ __volatile__(
"cld\n\t"
"rep\n\t"
"stosb"
: /* no output */
:"a" (c),"D" (s),"c" (count)
:"cx","di","memory");
return s;
}
/* we might want to write optimized versions of these later */
#define __constant_count_memset(s,c,count) __memset_generic((s),(c),(count))
/*
* memset(x,0,y) is a reasonably common thing to do, so we want to fill
* things 32 bits at a time even when we don't know the size of the
* area at compile-time..
*/
extern inline void * __constant_c_memset(void * s, unsigned long c, size_t count)
{
__asm__ __volatile__(
"cld\n\t"
"rep ; stosl\n\t"
"testb $2,%b1\n\t"
"je 1f\n\t"
"stosw\n"
"1:\ttestb $1,%b1\n\t"
"je 2f\n\t"
"stosb\n"
"2:"
: /* no output */
:"a" (c), "q" (count), "c" (count/4), "D" ((long) s)
:"cx","di","memory");
return (s);
}
/* Added by Gertjan van Wingerde to make minix and sysv module work */
#define __HAVE_ARCH_STRNLEN
extern inline size_t strnlen(const char * s, size_t count)
{
register int __res;
__asm__ __volatile__(
"movl %1,%0\n\t"
"jmp 2f\n"
"1:\tcmpb $0,(%0)\n\t"
"je 3f\n\t"
"incl %0\n"
"2:\tdecl %2\n\t"
"cmpl $-1,%2\n\t"
"jne 1b\n"
"3:\tsubl %1,%0"
:"=a" (__res)
:"c" (s),"d" (count)
:"dx");
return __res;
}
/* end of additional stuff */
/*
* This looks horribly ugly, but the compiler can optimize it totally,
* as we by now know that both pattern and count is constant..
*/
extern inline void * __constant_c_and_count_memset(void * s, unsigned long pattern, size_t count)
{
switch (count) {
case 0:
return s;
case 1:
*(unsigned char *)s = pattern;
return s;
case 2:
*(unsigned short *)s = pattern;
return s;
case 3:
*(unsigned short *)s = pattern;
*(2+(unsigned char *)s) = pattern;
return s;
case 4:
*(unsigned long *)s = pattern;
return s;
}
#define COMMON(x) \
__asm__("cld\n\t" \
"rep ; stosl" \
x \
: /* no outputs */ \
: "a" (pattern),"c" (count/4),"D" ((long) s) \
: "cx","di","memory")
switch (count % 4) {
case 0: COMMON(""); return s;
case 1: COMMON("\n\tstosb"); return s;
case 2: COMMON("\n\tstosw"); return s;
case 3: COMMON("\n\tstosw\n\tstosb"); return s;
}
#undef COMMON
}
#define __constant_c_x_memset(s, c, count) \
(__builtin_constant_p(count) ? \
__constant_c_and_count_memset((s),(c),(count)) : \
__constant_c_memset((s),(c),(count)))
#define __memset(s, c, count) \
(__builtin_constant_p(count) ? \
__constant_count_memset((s),(c),(count)) : \
__memset_generic((s),(c),(count)))
#define __HAVE_ARCH_MEMSET
#define memset(s, c, count) \
(__builtin_constant_p(c) ? \
__constant_c_x_memset((s),(0x01010101UL*(unsigned char)c),(count)) : \
__memset((s),(c),(count)))
/*
* find the first occurrence of byte 'c', or 1 past the area if none
*/
#define __HAVE_ARCH_MEMSCAN
extern inline void * memscan(void * addr, int c, size_t size)
{
if (!size)
return addr;
__asm__("cld
repnz; scasb
jnz 1f
dec %%edi
1: "
: "=D" (addr), "=c" (size)
: "0" (addr), "1" (size), "a" (c));
return addr;
}
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif /* _LINUX_STRING_H_ */

View File

@@ -1,13 +0,0 @@
/*
*
*/
#include "stddef.h"
typedef struct
{
char* name;
unsigned int value;
} export;
extern export symbol_table[];

View File

@@ -1,56 +0,0 @@
#ifndef _LINUX_TYPES_H
#define _LINUX_TYPES_H
#ifndef NULL
# define NULL ((void *) 0)
#endif
#ifndef _I386_TYPES_H
#define _I386_TYPES_H
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
/*
* These aren't exported outside the kernel to avoid name space clashes
*/
#ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#endif /* __KERNEL__ */
#endif
typedef unsigned int size_t;
typedef size_t __kernel_size_t;
#endif /* _LINUX_TYPES_H */

View File

@@ -1,17 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/internal/version.h
* PURPOSE: Defines the current version
* PROGRAMMER: David Welch (welch@mcmail.com)
*/
#ifndef __VERSION_H
#define __VERSION_H
#define KERNEL_VERSION "0.0.7"
#define KERNEL_MAJOR_VERSION 0
#define KERNEL_MINOR_VERSION 0
#define KERNEL_PATCH_LEVEL 7
#endif

View File

@@ -1,57 +0,0 @@
/********************************************************************
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.
********************************************************************/
#ifndef Atoms__h
#define Atoms__h
#include <windows.h>
#include <ctype.h>
//#include <types.h>
typedef unsigned long ATOMID;
typedef struct {
ATOMID q; /* what a string 'hashes' to */
long idx; /* index into data table */
long refcnt; /* how many clients have it */
long idsize; /* space used by this slot */
} ATOMENTRY;
typedef ATOMENTRY *LPATOMENTRY;
typedef struct {
ATOMENTRY *AtomTable; /* pointer to table data */
wchar_t *AtomData; /* pointer to name data */
unsigned long TableSize; /* number items in this table */
unsigned long DataSize; /* space used by string data */
LPVOID lpDrvData;
} ATOMTABLE;
typedef ATOMTABLE *LPATOMTABLE;
#endif /* Atoms__h */

View File

@@ -1,110 +0,0 @@
/*
* kernel/heap.c
* Copyright (C) 1996, Onno Hovers, All rights reserved
* Adapted for the ReactOS system libraries by David Welch (welch@mcmail.com)
* todo: __processheap should be part of peb.
*/
#ifndef __INCLUDE_KERNEL32_HEAP_H
#define __INCLUDE_KERNEL32_HEAP_H
/* System wide includes ****************************************************/
#include <windows.h>
/* System library's private includes ***************************************/
#include <ntdll/pagesize.h>
/* definitions */
#define HEAP_ADMIN_SIZE 8
#define HEAP_FRAG_ADMIN_SIZE 8
#define HEAP_ROUNDVAL (2*(HEAP_ADMIN_SIZE)-1)
#define HEAP_FRAGMENT_THRESHOLD 256
#define SIZE_TOTAL(s) ROUNDUP((s)+HEAP_ADMIN_SIZE,8)
#define SIZE_ROUND(s) ROUNDUP((s),8)
#define HEAP_FRAG_MAGIC 0x10
#define HEAP_ALLOC_MASK 0xF0000000
#define HEAP_FREE_MASK 0x80000000
#define HEAP_SIZE_MASK 0x0FFFFFFF
#define HEAP_FREE_TAG 0x80000000 /* free region */
#define HEAP_NORMAL_TAG 0x30000000 /* normal allocation */
#define HEAP_MOVEABLE_TAG 0x50000000 /* moveable handle */
#define HEAP_SUB_TAG 0x70000000 /* suballocated for fragments */
#define HEAP_ISFREE(p) ((((PHEAP_BLOCK)p)->Size) & HEAP_FREE_MASK)
#define HEAP_ISALLOC(p) (((((PHEAP_BLOCK)p)->Size) & HEAP_FREE_MASK)==0)
#define HEAP_ISFRAG(p) ((((PHEAP_FRAGMENT)p)->Magic)==HEAP_FRAG_MAGIC)
#define HEAP_ISNORMAL(p) (((((PHEAP_BLOCK)p)->Size) & HEAP_ALLOC_MASK)\
==HEAP_NORMAL_TAG)
#define HEAP_ISSUB(p) (((((PHEAP_BLOCK)p)->Size) & HEAP_ALLOC_MASK)\
==HEAP_SUB_TAG)
#define HEAP_ISOLD(p) (((((PHEAP_BLOCK)p)->Size) & HEAP_ALLOC_MASK)\
==HEAP_MOVEABLE_TAG)
#define HEAP_SIZE(p) ((((PHEAP_BLOCK)p)->Size) & HEAP_SIZE_MASK )
#define HEAP_RSIZE(p) SIZE_ROUND(HEAP_SIZE(p))
#define HEAP_TSIZE(p) SIZE_TOTAL(HEAP_SIZE(p))
#define HEAP_PREVSIZE(p) ((((PHEAP_BLOCK)p)->PrevSize) & HEAP_SIZE_MASK )
#define HEAP_FRAG_SIZE(p) (((PHEAP_FRAGMENT)p)->Size)
#define HEAP_PREV(p) ((PHEAP_BLOCK)(((LPVOID)(p))-HEAP_PREVSIZE(p)))
#define HEAP_NEXT(p) ((PHEAP_BLOCK)(((LPVOID)(p))+HEAP_TSIZE(p)))
typedef struct __HEAP_BLOCK
{
ULONG Size; /* this is relative to Data */
ULONG PrevSize; /* p - p->PrevSize is the previous block */
} HEAP_BLOCK, *PHEAP_BLOCK;
struct __HEAP_SUBALLOC;
typedef struct __HEAP_FRAGMENT
{
UCHAR Magic;
UCHAR Number;
ULONG Size;
struct __HEAP_SUBALLOC *Sub;
/* this is only used in free blocks */
struct __HEAP_FRAGMENT *FreeNext;
struct __HEAP_FRAGMENT *FreePrev;
} HEAP_FRAGMENT, *PHEAP_FRAGMENT, *LPHEAP_FRAGMENT;
typedef struct __HEAP_SUBALLOC
{
ULONG Magic;
ULONG NumberFree;
struct __HEAP_SUBALLOC *Next;
struct __HEAP_SUBALLOC *Prev;
struct __HEAP_FRAGMENT *FirstFree;
struct __HEAP_BUCKET *Bucket;
ULONG Bitmap;
} HEAP_SUBALLOC, *PHEAP_SUBALLOC, *LPHEAP_SUBALLOC;
typedef struct __HEAP_BUCKET
{
struct __HEAP_SUBALLOC *FirstFree;
ULONG Size;
ULONG Number;
ULONG TotalSize;
} HEAP_BUCKET, *PHEAP_BUCKET, *LPHEAP_BUCKET;
typedef struct __HEAP
{
ULONG Magic;
LPVOID End;
ULONG Flags;
CRITICAL_SECTION Synchronize;
HEAP_BUCKET Bucket[8];
struct __HEAP *NextHeap;
LPVOID LastBlock;
/* this has to aligned on an 8 byte boundary */
HEAP_BLOCK Start __attribute__((aligned (8)));
} HEAP, *PHEAP;
PHEAP __ProcessHeap;
#endif /* __INCLUDE_KERNEL32_HEAP_H */

View File

@@ -1,63 +0,0 @@
#ifndef __PEB_DEFINED
#define __PEB_DEFINED
#include "heap.h"
typedef void* HANDLE_TABLE;
typedef struct _pPebInfo {
LPWSTR lpCommandLine;
DWORD cb;
HANDLE hStdInput; //18
HANDLE hStdOutput;
HANDLE hStdError;
LPWSTR lpEnvironment;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
DWORD wShowWindow;
LPTSTR lpTitle;
LPTSTR lpDesktop;
LPTSTR reserved;
DWORD cbReserved2;
LPTSTR lpReserved1;
} PEBINFO;
typedef struct _NT_PEB
{
LONG ImageBaseAddress;
void *HeapIndex;
DWORD dwTlsBits[2]; // tls in use bits
WORD NumberOfProcessors;
WORD NtGlobalFlag;
DWORD dwCriticalSectionTimeout;
DWORD dwHeapReserve;
DWORD dwHeapCommit;
DWORD dwHeapDecommitFreeBlockThreshold;
DWORD dwNumberOfHeaps;
DWORD dwMaxiumNumberOfHeaps;
PEBINFO *pPebInfo;
HEAP *pProcessHeap;
HANDLE_TABLE htGDISharedHandleTable;
ATOMTABLE LocalAtomTable;
CRITICAL_SECTION *pCriticalSection;
WORD wMajorVersion;
WORD wMinorVersion;
WORD wBuildNumber;
WORD wPlatformId;
} NT_PEB;
NT_PEB *GetPeb()
{
return NULL;
}
#endif

View File

@@ -1,56 +0,0 @@
/*
This file contains a proposal for Thread Environment Block.
*/
#ifndef __TEB_DEFINED
#define __TEB_DEFINED
typedef struct _NT_TIB {
struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
void *StackBase;
void *StackLimit;
void *SubSystemTib;
union {
void *FiberData;
DWORD Version;
};
void *ArbitraryUserPointer;
struct _NT_TIB *Self;
} NT_TIB;
typedef struct _NT_TEB
{
NT_TIB Tib;
DWORD dwProcessId;
DWORD dwThreadId;
HANDLE hRPC;
NT_PEB *pPeb;
DWORD dwErrCode;
WORD nMutexCount;
LCID Locale;
//HQUEUE MessageQueue
DWORD dwTlsIndex ;
LPVOID TlsData[512];
} NT_TEB;
// should be an inline asm macro
NT_TEB *GetTeb()
{
return NULL;
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
/*
*
*/
#ifdef i386
#define PAGESIZE (4096)
#endif

View File

@@ -1,965 +0,0 @@
/*
Sockets.h
Windows Sockets specification version 1.1
Copyright (C) 1996 Free Software Foundation, Inc.
Thanks to Linux header files for supplying many needed definitions
Author: Scott Christley <scottc@net-community.com>
Date: 1996
This file is part of the Windows32 API Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 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
Library General Public License for more details.
If you are interested in a warranty or support for this source code,
contact Scott Christley <scottc@net-community.com> for more information.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/*-
* Portions Copyright (c) 1980, 1983, 1988, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* -
* Portions Copyright (c) 1993 by Digital Equipment Corporation.
*
* Permission to use, copy, modify and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies, and that
* the name of Digital Equipment Corporation not be used in advertising or
* publicity pertaining to distribution of the document or software without
* specific, written prior permission.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
* CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
* -
* --Copyright--
*/
#ifndef _GNU_H_WINDOWS32_SOCKETS
#define _GNU_H_WINDOWS32_SOCKETS
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* BSD */
#ifndef _SYS_TYPES_H
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
#endif
/*
Default maximium number of sockets.
Define this before including Sockets.h to increase; this does not
mean that the underlying Windows Sockets implementation has to
support that many!
*/
#ifndef FD_SETSIZE
#define FD_SETSIZE 64
#endif /* !FD_SETSIZE */
/*
These macros are critical to the usage of Windows Sockets.
According to the documentation, a SOCKET is no longer represented
by a "small non-negative integer"; so all programs MUST use these
macros for setting, initializing, clearing and checking the
fd_set structures.
*/
typedef u_int SOCKET;
/* fd_set may have been defined by the newlib <sys/types.h>. */
#ifdef fd_set
#undef fd_set
#endif
typedef struct fd_set {
u_int fd_count;
SOCKET fd_array[FD_SETSIZE];
} fd_set;
/* Internal function, not documented except in winsock.h */
extern int PASCAL __WSAFDIsSet(SOCKET, fd_set*);
#ifdef FD_CLR
#undef FD_CLR
#endif
#define FD_CLR(fd, set) do { \
u_int __i; \
for (__i = 0; __i < ((fd_set*)(set))->fd_count ; __i++) { \
if (((fd_set*)(set))->fd_array[__i] == fd) { \
while (__i < ((fd_set*)(set))->fd_count-1) { \
((fd_set*)(set))->fd_array[__i] = \
((fd_set*)(set))->fd_array[__i+1]; \
__i++; \
} \
((fd_set*)(set))->fd_count--; \
break; \
} \
} \
} while(0)
#ifdef FD_SET
#undef FD_SET
#endif
#define FD_SET(fd, set) do { \
if (((fd_set*)(set))->fd_count < FD_SETSIZE) \
((fd_set*)(set))->fd_array[((fd_set*)(set))->fd_count++]=(fd);\
} while(0)
#ifdef FD_ZERO
#undef FD_ZERO
#endif
#define FD_ZERO(set) (((fd_set*)(set))->fd_count=0)
#ifdef FD_ISSET
#undef FD_ISSET
#endif
#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set*)(set))
/*
time structures
*/
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};
struct timezone {
int tz_minuteswest; /* minutes west of Greenwich */
int tz_dsttime; /* type of dst correction */
};
/*
Operations on timevals.
NB: timercmp does not work for >= or <=.
*/
#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
#define timercmp(tvp, uvp, cmp) \
(((tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec) \
|| (tvp)->tv_sec cmp (uvp)->tv_sec)
#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
/*
ioctl command encoding.
Some of this is different than what Linux has
*/
#define IOCPARM_MASK 0x7f
#define IOC_VOID 0x20000000
#define IOC_OUT 0x40000000
#define IOC_IN 0x80000000
#define IOC_INOUT (IOC_IN | IOC_OUT)
/* _IO(magic, subcode) */
#define _IO(c,d) (IOC_VOID | ((c)<<8) | (d))
/* _IOXX(magic, subcode, arg_t) */
#define _IOW(c,d,t) (IOC_IN | (((long)sizeof(t) & IOCPARM_MASK)<<16) | \
((c)<<8) | (d))
#define _IOR(c,d,t) (IOC_OUT | (((long)sizeof(t) & IOCPARM_MASK)<<16) | \
((c)<<8) | (d))
/*
This stuff is hard-coded on Linux
But winsock.h uses the macros defined above
*/
#define FIONREAD _IOR('f', 127, u_long)
#define FIONBIO _IOW('f', 126, u_long)
#define FIOASYNC _IOW('f', 125, u_long)
#define SIOCSHIWAT _IOW('s', 0, u_long)
#define SIOCGHIWAT _IOR('s', 1, u_long)
#define SIOCSLOWAT _IOW('s', 2, u_long)
#define SIOCGLOWAT _IOR('s', 3, u_long)
#define SIOCATMARK _IOR('s', 7, u_long)
/*
Structures returned by network data base library, taken from the
BSD file netdb.h. All addresses are supplied in host order, and
returned in network order (suitable for use in system calls).
Slight modifications for differences between Linux and winsock.h
*/
struct hostent {
char *h_name; /* official name of host */
char **h_aliases; /* alias list */
short h_addrtype; /* host address type */
short h_length; /* length of address */
char **h_addr_list; /* list of addresses */
#define h_addr h_addr_list[0] /* address, for backward compat */
};
/*
* Assumption here is that a network number
* fits in an unsigned long -- someday that won't be true!
*/
struct netent {
char *n_name; /* official name of net */
char **n_aliases; /* alias list */
short n_addrtype; /* net address type */
u_long n_net; /* network # */
};
struct servent {
char *s_name; /* official service name */
char **s_aliases; /* alias list */
short s_port; /* port # */
char *s_proto; /* protocol to use */
};
struct protoent {
char *p_name; /* official protocol name */
char **p_aliases; /* alias list */
short p_proto; /* protocol # */
};
/*
Standard well-known IP protocols.
For some reason there are differences between Linx and winsock.h
*/
enum {
IPPROTO_IP = 0,
IPPROTO_ICMP = 1,
IPPROTO_GGP = 2, /* huh? */
IPPROTO_IPIP = 4,
IPPROTO_TCP = 6, /* Transmission Control Protocol */
IPPROTO_EGP = 8,
IPPROTO_PUP = 12,
IPPROTO_UDP = 17, /* User Datagram Protocol */
IPPROTO_IDP = 22,
IPPROTO_ND = 77, /* This one was in winsock.h */
IPPROTO_RAW = 255, /* raw IP packets */
IPPROTO_MAX
};
/* Standard well-known ports */
enum {
IPPORT_ECHO = 7,
IPPORT_DISCARD = 9,
IPPORT_SYSTAT = 11,
IPPORT_DAYTIME = 13,
IPPORT_NETSTAT = 15,
IPPORT_FTP = 21,
IPPORT_TELNET = 23,
IPPORT_SMTP = 25,
IPPORT_TIMESERVER = 37,
IPPORT_NAMESERVER = 42,
IPPORT_WHOIS = 43,
IPPORT_MTP = 57,
IPPORT_TFTP = 69,
IPPORT_RJE = 77,
IPPORT_FINGER = 79,
IPPORT_TTYLINK = 87,
IPPORT_SUPDUP = 95,
IPPORT_EXECSERVER = 512,
IPPORT_LOGINSERVER = 513,
IPPORT_CMDSERVER = 514,
IPPORT_EFSSERVER = 520,
/* UDP ports. */
IPPORT_BIFFUDP = 512,
IPPORT_WHOSERVER = 513,
IPPORT_ROUTESERVER = 520,
/* Ports less than this value are reservered for privileged processes. */
IPPORT_RESERVED = 1024,
/* Ports greater than this value are reserved for
(non-privileged) processes */
IPPORT_USERRESERVED = 5000
};
/* Link numbers. */
#define IMPLINK_IP 155
#define IMPLINK_LOWEXPER 156
#define IMPLINK_HIGHEXPER 158
/* Linux uses a simple unsigned long int, but winsock.h ... */
struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un;
#define s_addr S_un.S_addr
#define s_host S_un.S_un_b.s_b2
#define s_net S_un.S_un_b.s_b1
#define s_imp S_un.S_un_w.s_w2
#define s_impno S_un.S_un_b.s_b4
#define s_lh S_un.S_un_b.s_b3
};
/*
Definitions of bits in internet address integers.
On subnets, host and network parts are found according
to the subnet mask, not these masks.
*/
#define IN_CLASSA(i) (((long)(i) & 0x80000000) == 0)
#define IN_CLASSA_NET 0xff000000
#define IN_CLASSA_NSHIFT 24
#define IN_CLASSA_HOST 0x00ffffff
#define IN_CLASSA_MAX 128
#define IN_CLASSB(i) (((long)(i) & 0xc0000000) == 0x80000000)
#define IN_CLASSB_NET 0xffff0000
#define IN_CLASSB_NSHIFT 16
#define IN_CLASSB_HOST 0x0000ffff
#define IN_CLASSB_MAX 65536
#define IN_CLASSC(i) (((long)(i) & 0xe0000000) == 0xc0000000)
#define IN_CLASSC_NET 0xffffff00
#define IN_CLASSC_NSHIFT 8
#define IN_CLASSC_HOST 0x000000ff
#define INADDR_ANY (u_long)0x00000000
#define INADDR_LOOPBACK 0x7f000001
#define INADDR_BROADCAST (u_long)0xffffffff
#define INADDR_NONE 0xffffffff
/*
Structure describing an Internet (IP) socket address.
*/
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
/*
EVERYTHING FROM THIS POINT IS MAINLY SPECIFIC TO Win32
Structure which holds the detail for the underlying Window Sockets
implementation. Set when WSAStartup() is called.
*/
#define WSADESCRIPTION_LEN 256
#define WSASYS_STATUS_LEN 128
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char *lpVendorInfo;
} WSADATA, *LPWSADATA;
#define IP_OPTIONS 1
#define IP_MULTICAST_IF 2
#define IP_MULTICAST_TTL 3
#define IP_MULTICAST_LOOP 4
#define IP_ADD_MEMBERSHIP 5
#define IP_DROP_MEMBERSHIP 6
#define IP_DEFAULT_MULTICAST_TTL 1
#define IP_DEFAULT_MULTICAST_LOOP 1
#define IP_MAX_MEMBERSHIPS 20
struct ip_mreq {
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
};
/*
* Definitions related to sockets: types, address families, options,
* taken from the BSD file sys/socket.h.
*/
/*
* This is used instead of -1, since the
* SOCKET type is unsigned.
*/
#define INVALID_SOCKET (SOCKET)(~0)
#define SOCKET_ERROR (-1)
/* Socket types. */
#define SOCK_STREAM 1
#define SOCK_DGRAM 2
#define SOCK_RAW 3
#define SOCK_RDM 4
#define SOCK_SEQPACKET 5
/* For setsockoptions(2) */
#define SO_DEBUG 0x0001
#define SO_ACCEPTCONN 0x0002
#define SO_REUSEADDR 0x0004
#define SO_KEEPALIVE 0x0008
#define SO_DONTROUTE 0x0010
#define SO_BROADCAST 0x0020
#define SO_USELOOPBACK 0x0040
#define SO_LINGER 0x0080
#define SO_OOBINLINE 0x0100
#define SO_DONTLINGER (u_int)(~SO_LINGER)
/*
* Additional options.
*/
#define SO_SNDBUF 0x1001 /* send buffer size */
#define SO_RCVBUF 0x1002 /* receive buffer size */
#define SO_SNDLOWAT 0x1003 /* send low-water mark */
#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
#define SO_SNDTIMEO 0x1005 /* send timeout */
#define SO_RCVTIMEO 0x1006 /* receive timeout */
#define SO_ERROR 0x1007 /* get error status and clear */
#define SO_TYPE 0x1008 /* get socket type */
/*
* Options for connect and disconnect data and options. Used only by
* non-TCP/IP transports such as DECNet, OSI TP4, etc.
*/
#define SO_CONNDATA 0x7000
#define SO_CONNOPT 0x7001
#define SO_DISCDATA 0x7002
#define SO_DISCOPT 0x7003
#define SO_CONNDATALEN 0x7004
#define SO_CONNOPTLEN 0x7005
#define SO_DISCDATALEN 0x7006
#define SO_DISCOPTLEN 0x7007
/*
* Option for opening sockets for synchronous access.
*/
#define SO_OPENTYPE 0x7008
#define SO_SYNCHRONOUS_ALERT 0x10
#define SO_SYNCHRONOUS_NONALERT 0x20
/*
* Other NT-specific options.
*/
#define SO_MAXDG 0x7009
#define SO_MAXPATHDG 0x700A
/*
* TCP options.
*/
#define TCP_NODELAY 0x0001
#define TCP_BSDURGENT 0x7000
/*
* Address families.
*/
#define AF_UNSPEC 0 /* unspecified */
#define AF_UNIX 1 /* local to host (pipes, portals) */
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
#define AF_IMPLINK 3 /* arpanet imp addresses */
#define AF_PUP 4 /* pup protocols: e.g. BSP */
#define AF_CHAOS 5 /* mit CHAOS protocols */
#define AF_IPX 6 /* IPX and SPX */
#define AF_NS 6 /* XEROX NS protocols */
#define AF_ISO 7 /* ISO protocols */
#define AF_OSI AF_ISO /* OSI is ISO */
#define AF_ECMA 8 /* european computer manufacturers */
#define AF_DATAKIT 9 /* datakit protocols */
#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
#define AF_SNA 11 /* IBM SNA */
#define AF_DECnet 12 /* DECnet */
#define AF_DLI 13 /* Direct data link interface */
#define AF_LAT 14 /* LAT */
#define AF_HYLINK 15 /* NSC Hyperchannel */
#define AF_APPLETALK 16 /* AppleTalk */
#define AF_NETBIOS 17 /* NetBios-style addresses */
#define AF_MAX 18
/*
* Structure used by kernel to store most
* addresses.
*/
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
/*
* Structure used by kernel to pass protocol
* information in raw sockets.
*/
struct sockproto {
u_short sp_family;
u_short sp_protocol;
};
/*
* Protocol families, same as address families for now.
*/
#define PF_UNSPEC AF_UNSPEC
#define PF_UNIX AF_UNIX
#define PF_INET AF_INET
#define PF_IMPLINK AF_IMPLINK
#define PF_PUP AF_PUP
#define PF_CHAOS AF_CHAOS
#define PF_NS AF_NS
#define PF_IPX AF_IPX
#define PF_ISO AF_ISO
#define PF_OSI AF_OSI
#define PF_ECMA AF_ECMA
#define PF_DATAKIT AF_DATAKIT
#define PF_CCITT AF_CCITT
#define PF_SNA AF_SNA
#define PF_DECnet AF_DECnet
#define PF_DLI AF_DLI
#define PF_LAT AF_LAT
#define PF_HYLINK AF_HYLINK
#define PF_APPLETALK AF_APPLETALK
#define PF_MAX AF_MAX
/*
* Structure used for manipulating linger option.
*/
struct linger {
u_short l_onoff;
u_short l_linger;
};
/*
* Level number for (get/set)sockopt() to apply to socket itself.
*/
#define SOL_SOCKET 0xffff /* options for socket level */
/*
* Maximum queue length specifiable by listen.
*/
#define SOMAXCONN 5
#define MSG_OOB 0x1 /* process out-of-band data */
#define MSG_PEEK 0x2 /* peek at incoming message */
#define MSG_DONTROUTE 0x4 /* send without using routing tables */
#define MSG_MAXIOVLEN 16
#define MSG_PARTIAL 0x8000 /* partial send or recv for message xport */
/*
* Define constant based on rfc883, used by gethostbyxxxx() calls.
*/
#define MAXGETHOSTSTRUCT 1024
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN MAXGETHOSTSTRUCT
#endif
/*
* Define flags to be used with the WSAAsyncSelect() call.
*/
#define FD_READ 0x01
#define FD_WRITE 0x02
#define FD_OOB 0x04
#define FD_ACCEPT 0x08
#define FD_CONNECT 0x10
#define FD_CLOSE 0x20
/*
* All Windows Sockets error constants are biased by WSABASEERR from
* the "normal"
*/
#define WSABASEERR 10000
/*
* Windows Sockets definitions of regular Microsoft C error constants
*/
#define WSAEINTR (WSABASEERR+4)
#define WSAEBADF (WSABASEERR+9)
#define WSAEACCES (WSABASEERR+13)
#define WSAEFAULT (WSABASEERR+14)
#define WSAEINVAL (WSABASEERR+22)
#define WSAEMFILE (WSABASEERR+24)
/*
* Windows Sockets definitions of regular Berkeley error constants
*/
#define WSAEWOULDBLOCK (WSABASEERR+35)
#define WSAEINPROGRESS (WSABASEERR+36)
#define WSAEALREADY (WSABASEERR+37)
#define WSAENOTSOCK (WSABASEERR+38)
#define WSAEDESTADDRREQ (WSABASEERR+39)
#define WSAEMSGSIZE (WSABASEERR+40)
#define WSAEPROTOTYPE (WSABASEERR+41)
#define WSAENOPROTOOPT (WSABASEERR+42)
#define WSAEPROTONOSUPPORT (WSABASEERR+43)
#define WSAESOCKTNOSUPPORT (WSABASEERR+44)
#define WSAEOPNOTSUPP (WSABASEERR+45)
#define WSAEPFNOSUPPORT (WSABASEERR+46)
#define WSAEAFNOSUPPORT (WSABASEERR+47)
#define WSAEADDRINUSE (WSABASEERR+48)
#define WSAEADDRNOTAVAIL (WSABASEERR+49)
#define WSAENETDOWN (WSABASEERR+50)
#define WSAENETUNREACH (WSABASEERR+51)
#define WSAENETRESET (WSABASEERR+52)
#define WSAECONNABORTED (WSABASEERR+53)
#define WSAECONNRESET (WSABASEERR+54)
#define WSAENOBUFS (WSABASEERR+55)
#define WSAEISCONN (WSABASEERR+56)
#define WSAENOTCONN (WSABASEERR+57)
#define WSAESHUTDOWN (WSABASEERR+58)
#define WSAETOOMANYREFS (WSABASEERR+59)
#define WSAETIMEDOUT (WSABASEERR+60)
#define WSAECONNREFUSED (WSABASEERR+61)
#define WSAELOOP (WSABASEERR+62)
#define WSAENAMETOOLONG (WSABASEERR+63)
#define WSAEHOSTDOWN (WSABASEERR+64)
#define WSAEHOSTUNREACH (WSABASEERR+65)
#define WSAENOTEMPTY (WSABASEERR+66)
#define WSAEPROCLIM (WSABASEERR+67)
#define WSAEUSERS (WSABASEERR+68)
#define WSAEDQUOT (WSABASEERR+69)
#define WSAESTALE (WSABASEERR+70)
#define WSAEREMOTE (WSABASEERR+71)
#define WSAEDISCON (WSABASEERR+101)
/*
* Extended Windows Sockets error constant definitions
*/
#define WSASYSNOTREADY (WSABASEERR+91)
#define WSAVERNOTSUPPORTED (WSABASEERR+92)
#define WSANOTINITIALISED (WSABASEERR+93)
/*
* Error return codes from gethostbyname() and gethostbyaddr()
* (when using the resolver). Note that these errors are
* retrieved via WSAGetLastError() and must therefore follow
* the rules for avoiding clashes with error numbers from
* specific implementations or language run-time systems.
* For this reason the codes are based at WSABASEERR+1001.
* Note also that [WSA]NO_ADDRESS is defined only for
* compatibility purposes.
*/
#define h_errno WSAGetLastError()
/* Authoritative Answer: Host not found */
#define WSAHOST_NOT_FOUND (WSABASEERR+1001)
#define HOST_NOT_FOUND WSAHOST_NOT_FOUND
/* Non-Authoritative: Host not found, or SERVERFAIL */
#define WSATRY_AGAIN (WSABASEERR+1002)
#define TRY_AGAIN WSATRY_AGAIN
/* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
#define WSANO_RECOVERY (WSABASEERR+1003)
#define NO_RECOVERY WSANO_RECOVERY
/* Valid name, no data record of requested type */
#define WSANO_DATA (WSABASEERR+1004)
#define NO_DATA WSANO_DATA
/* no address, look for MX record */
#define WSANO_ADDRESS WSANO_DATA
#define NO_ADDRESS WSANO_ADDRESS
/*
* Windows Sockets errors redefined as regular Berkeley error constants.
* These are commented out in Windows NT to avoid conflicts with errno.h.
* Use the WSA constants instead.
*/
#if 0
#define EWOULDBLOCK WSAEWOULDBLOCK
#define EINPROGRESS WSAEINPROGRESS
#define EALREADY WSAEALREADY
#define ENOTSOCK WSAENOTSOCK
#define EDESTADDRREQ WSAEDESTADDRREQ
#define EMSGSIZE WSAEMSGSIZE
#define EPROTOTYPE WSAEPROTOTYPE
#define ENOPROTOOPT WSAENOPROTOOPT
#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
#define EOPNOTSUPP WSAEOPNOTSUPP
#define EPFNOSUPPORT WSAEPFNOSUPPORT
#define EAFNOSUPPORT WSAEAFNOSUPPORT
#define EADDRINUSE WSAEADDRINUSE
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
#define ENETDOWN WSAENETDOWN
#define ENETUNREACH WSAENETUNREACH
#define ENETRESET WSAENETRESET
#define ECONNABORTED WSAECONNABORTED
#define ECONNRESET WSAECONNRESET
#define ENOBUFS WSAENOBUFS
#define EISCONN WSAEISCONN
#define ENOTCONN WSAENOTCONN
#define ESHUTDOWN WSAESHUTDOWN
#define ETOOMANYREFS WSAETOOMANYREFS
#define ETIMEDOUT WSAETIMEDOUT
#define ECONNREFUSED WSAECONNREFUSED
#define ELOOP WSAELOOP
#define ENAMETOOLONG WSAENAMETOOLONG
#define EHOSTDOWN WSAEHOSTDOWN
#define EHOSTUNREACH WSAEHOSTUNREACH
#define ENOTEMPTY WSAENOTEMPTY
#define EPROCLIM WSAEPROCLIM
#define EUSERS WSAEUSERS
#define EDQUOT WSAEDQUOT
#define ESTALE WSAESTALE
#define EREMOTE WSAEREMOTE
#endif
/* Socket function prototypes */
SOCKET PASCAL accept (SOCKET s, struct sockaddr *addr,
int *addrlen);
int PASCAL bind (SOCKET s, const struct sockaddr *addr, int namelen);
int PASCAL closesocket (SOCKET s);
int PASCAL connect (SOCKET s, const struct sockaddr *name, int namelen);
int PASCAL ioctlsocket (SOCKET s, long cmd, u_long *argp);
int PASCAL getpeername (SOCKET s, struct sockaddr *name,
int * namelen);
int PASCAL getsockname (SOCKET s, struct sockaddr *name,
int * namelen);
int PASCAL getsockopt (SOCKET s, int level, int optname,
char * optval, int *optlen);
u_long PASCAL htonl (u_long hostlong);
/* For some reason WSOCK.LIB has htons defined as a 4 byte paramter?! */
#ifdef _WIN32
u_short PASCAL htons (u_long hostshort);
#else
u_short PASCAL htons (u_short hostshort);
#endif /* _WIN32 */
unsigned long PASCAL inet_addr (const char * cp);
char * PASCAL inet_ntoa (struct in_addr in);
int PASCAL listen (SOCKET s, int backlog);
u_long PASCAL ntohl (u_long netlong);
/* For some reason WSOCK.LIB has ntohs defined as a 4 byte paramter?! */
#ifdef _WIN32
u_short PASCAL ntohs (u_long netshort);
#else
u_short PASCAL ntohs (u_short netshort);
#endif /* _WIN32 */
int PASCAL recv (SOCKET s, char * buf, int len, int flags);
int PASCAL recvfrom (SOCKET s, char * buf, int len, int flags,
struct sockaddr *from, int * fromlen);
int PASCAL select (int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, const struct timeval *timeout);
int PASCAL send (SOCKET s, const char * buf, int len, int flags);
int PASCAL sendto (SOCKET s, const char * buf, int len, int flags,
const struct sockaddr *to, int tolen);
int PASCAL setsockopt (SOCKET s, int level, int optname,
const char * optval, int optlen);
int PASCAL shutdown (SOCKET s, int how);
SOCKET PASCAL socket (int af, int type, int protocol);
/* Database function prototypes */
struct hostent * PASCAL gethostbyaddr(const char * addr,
int len, int type);
struct hostent * PASCAL gethostbyname(const char * name);
int PASCAL gethostname (char * name, int namelen);
struct servent * PASCAL getservbyport(int port, const char * proto);
struct servent * PASCAL getservbyname(const char * name,
const char * proto);
struct protoent * PASCAL getprotobynumber(int proto);
struct protoent * PASCAL getprotobyname(const char * name);
/* Microsoft Windows Extension function prototypes */
/* int PASCAL WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData); */
int PASCAL WSAStartup(int wVersionRequired, LPWSADATA lpWSAData);
int PASCAL WSACleanup(void);
void PASCAL WSASetLastError(int iError);
int PASCAL WSAGetLastError(void);
WINBOOL PASCAL WSAIsBlocking(void);
int PASCAL WSAUnhookBlockingHook(void);
FARPROC PASCAL WSASetBlockingHook(FARPROC lpBlockFunc);
int PASCAL WSACancelBlockingCall(void);
HANDLE PASCAL WSAAsyncGetServByName(HWND hWnd, u_int wMsg,
const char * name,
const char * proto,
char * buf, int buflen);
HANDLE PASCAL WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, int port,
const char * proto, char * buf,
int buflen);
HANDLE PASCAL WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg,
const char * name, char * buf,
int buflen);
HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg,
int number, char * buf,
int buflen);
HANDLE PASCAL WSAAsyncGetHostByName(HWND hWnd, u_int wMsg,
const char * name, char * buf,
int buflen);
HANDLE PASCAL WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg,
const char * addr, int len, int type,
char * buf, int buflen);
int PASCAL WSACancelAsyncRequest(HANDLE hAsyncTaskHandle);
int PASCAL WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg,
long lEvent);
int PASCAL WSARecvEx (SOCKET s, char * buf, int len, int *flags);
/* Microsoft Windows Extended data types */
typedef struct sockaddr SOCKADDR;
typedef struct sockaddr *PSOCKADDR;
typedef struct sockaddr *LPSOCKADDR;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr_in *PSOCKADDR_IN;
typedef struct sockaddr_in *LPSOCKADDR_IN;
typedef struct linger LINGER;
typedef struct linger *PLINGER;
typedef struct linger *LPLINGER;
typedef struct in_addr IN_ADDR;
typedef struct in_addr *PIN_ADDR;
typedef struct in_addr *LPIN_ADDR;
typedef struct fd_set FD_SET;
typedef struct fd_set *PFD_SET;
typedef struct fd_set *LPFD_SET;
typedef struct hostent HOSTENT;
typedef struct hostent *PHOSTENT;
typedef struct hostent *LPHOSTENT;
typedef struct servent SERVENT;
typedef struct servent *PSERVENT;
typedef struct servent *LPSERVENT;
typedef struct protoent PROTOENT;
typedef struct protoent *PPROTOENT;
typedef struct protoent *LPPROTOENT;
typedef struct timeval TIMEVAL;
typedef struct timeval *PTIMEVAL;
typedef struct timeval *LPTIMEVAL;
/*
* Windows message parameter composition and decomposition
* macros.
*
* WSAMAKEASYNCREPLY is intended for use by the Windows Sockets implementation
* when constructing the response to a WSAAsyncGetXByY() routine.
*/
#define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error)
/*
* WSAMAKESELECTREPLY is intended for use by the Windows Sockets implementation
* when constructing the response to WSAAsyncSelect().
*/
#define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error)
/*
* WSAGETASYNCBUFLEN is intended for use by the Windows Sockets application
* to extract the buffer length from the lParam in the response
* to a WSAGetXByY().
*/
#define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam)
/*
* WSAGETASYNCERROR is intended for use by the Windows Sockets application
* to extract the error code from the lParam in the response
* to a WSAGetXByY().
*/
#define WSAGETASYNCERROR(lParam) HIWORD(lParam)
/*
* WSAGETSELECTEVENT is intended for use by the Windows Sockets application
* to extract the event code from the lParam in the response
* to a WSAAsyncSelect().
*/
#define WSAGETSELECTEVENT(lParam) LOWORD(lParam)
/*
* WSAGETSELECTERROR is intended for use by the Windows Sockets application
* to extract the error code from the lParam in the response
* to a WSAAsyncSelect().
*/
#define WSAGETSELECTERROR(lParam) HIWORD(lParam)
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _GNU_H_WINDOWS32_SOCKETS */

View File

@@ -1,778 +0,0 @@
/*
* Adapted from linux for the reactos kernel, march 1998 -- David Welch
* Removed extern specifier from ___strtok and ___wcstok, june 1998 -- Boudewijn Dekker
* Added stricmp and strnicmp -- Boudewijn Dekker
*/
#ifndef _LINUX_STRING_H_
#define _LINUX_STRING_H_
#include <types.h> /* for size_t */
#ifndef NULL
#define NULL ((void *) 0)
#endif
#ifdef __cplusplus
extern "C" {
#endif
char * ___strtok; // removed extern specifier 02-06-98, BD
extern char * strcpy(char *,const char *);
extern char * strncpy(char *,const char *, __kernel_size_t);
extern char * strcat(char *, const char *);
extern char * strncat(char *, const char *, __kernel_size_t);
extern char * strchr(const char *,int);
extern char * strrchr(const char *,int);
extern char * strpbrk(const char *,const char *);
extern char * strtok(char *,const char *);
extern char * strstr(const char *,const char *);
extern __kernel_size_t strlen(const char *);
extern __kernel_size_t strnlen(const char *,__kernel_size_t);
extern __kernel_size_t strspn(const char *,const char *);
extern int strcmp(const char *,const char *);
extern int strncmp(const char *,const char *,__kernel_size_t);
extern int stricmp(const char* cs,const char * ct)
extern int strnicmp(const char* cs,const char * ct, size_t count);
extern void * memset(void *,int,__kernel_size_t);
extern void * memcpy(void *,const void *,__kernel_size_t);
extern void * memmove(void *,const void *,__kernel_size_t);
extern void * memscan(void *,int,__kernel_size_t);
extern int memcmp(const void *,const void *,__kernel_size_t);
/*
* Include machine specific inline routines
*/
#ifndef _I386_STRING_H_
#define _I386_STRING_H_
/*
* On a 486 or Pentium, we are better off not using the
* byte string operations. But on a 386 or a PPro the
* byte string ops are faster than doing it by hand
* (MUCH faster on a Pentium).
*
* Also, the byte strings actually work correctly. Forget
* the i486 routines for now as they may be broken..
*/
#if FIXED_486_STRING && (CPU == 486 || CPU == 586)
#include <asm/string-486.h>
#else
/*
* This string-include defines all string functions as inline
* functions. Use gcc. It also assumes ds=es=data space, this should be
* normal. Most of the string-functions are rather heavily hand-optimized,
* see especially strtok,strstr,str[c]spn. They should work, but are not
* very easy to understand. Everything is done entirely within the register
* set, making the functions fast and clean. String instructions have been
* used through-out, making for "slightly" unclear code :-)
*
* Copyright (C) 1991, 1992 Linus Torvalds
*/
#define __HAVE_ARCH_STRCPY
extern inline char * strcpy(char * dest,const char *src)
{
__asm__ __volatile__(
"cld\n"
"1:\tlodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
: /* no output */
:"S" (src),"D" (dest):"si","di","ax","memory");
return dest;
}
#define __HAVE_ARCH_STRNCPY
extern inline char * strncpy(char * dest,const char *src,size_t count)
{
__asm__ __volatile__(
"cld\n"
"1:\tdecl %2\n\t"
"js 2f\n\t"
"lodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n\t"
"rep\n\t"
"stosb\n"
"2:"
: /* no output */
:"S" (src),"D" (dest),"c" (count):"si","di","ax","cx","memory");
return dest;
}
#define __HAVE_ARCH_STRCAT
extern inline char * strcat(char * dest,const char * src)
{
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasb\n\t"
"decl %1\n"
"1:\tlodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
: /* no output */
:"S" (src),"D" (dest),"a" (0),"c" (0xffffffff):"si","di","ax","cx");
return dest;
}
#define __HAVE_ARCH_STRNCAT
extern inline char * strncat(char * dest,const char * src,size_t count)
{
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasb\n\t"
"decl %1\n\t"
"movl %4,%3\n"
"1:\tdecl %3\n\t"
"js 2f\n\t"
"lodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n"
"2:\txorl %2,%2\n\t"
"stosb"
: /* no output */
:"S" (src),"D" (dest),"a" (0),"c" (0xffffffff),"g" (count)
:"si","di","ax","cx","memory");
return dest;
}
#define __HAVE_ARCH_STRCMP
extern inline int strcmp(const char * cs,const char * ct)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\tlodsb\n\t"
"scasb\n\t"
"jne 2f\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"jmp 3f\n"
"2:\tsbbl %%eax,%%eax\n\t"
"orb $1,%%eax\n"
"3:"
:"=a" (__res):"S" (cs),"D" (ct):"si","di");
return __res;
}
#define __HAVE_ARCH_STRNCMP
extern inline int strncmp(const char * cs,const char * ct,size_t count)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\tdecl %3\n\t"
"js 2f\n\t"
"lodsb\n\t"
"scasb\n\t"
"jne 3f\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n"
"2:\txorl %%eax,%%eax\n\t"
"jmp 4f\n"
"3:\tsbbl %%eax,%%eax\n\t"
"orb $1,%%al\n"
"4:"
:"=a" (__res):"S" (cs),"D" (ct),"c" (count):"si","di","cx");
return __res;
}
#define __HAVE_ARCH_STRCHR
extern inline char * strchr(const char * s, int c)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movb %%al,%%ah\n"
"1:\tlodsb\n\t"
"cmpb %%ah,%%al\n\t"
"je 2f\n\t"
"testb %%al,%%al\n\t"
"jne 1b\n\t"
"movl $1,%1\n"
"2:\tmovl %1,%0\n\t"
"decl %0"
:"=a" (__res):"S" (s),"0" (c):"si");
return __res;
}
#define __HAVE_ARCH_STRRCHR
extern inline char * strrchr(const char * s, int c)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movb %%al,%%ah\n"
"1:\tlodsb\n\t"
"cmpb %%ah,%%al\n\t"
"jne 2f\n\t"
"leal -1(%%esi),%0\n"
"2:\ttestb %%al,%%al\n\t"
"jne 1b"
:"=d" (__res):"0" (0),"S" (s),"a" (c):"ax","si");
return __res;
}
#define __HAVE_ARCH_STRSPN
extern inline size_t strspn(const char * cs, const char * ct)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"je 1b\n"
"2:\tdecl %0"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"ax","cx","dx","di");
return __res-cs;
}
#define __HAVE_ARCH_STRCSPN
extern inline size_t strcspn(const char * cs, const char * ct)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"jne 1b\n"
"2:\tdecl %0"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"ax","cx","dx","di");
return __res-cs;
}
#define __HAVE_ARCH_STRPBRK
extern inline char * strpbrk(const char * cs,const char * ct)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"jne 1b\n\t"
"decl %0\n\t"
"jmp 3f\n"
"2:\txorl %0,%0\n"
"3:"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"ax","cx","dx","di");
return __res;
}
#define __HAVE_ARCH_STRSTR
extern inline char * strstr(const char * cs,const char * ct)
{
register char * __res;
__asm__ __volatile__(
"cld\n\t" \
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t" /* NOTE! This also sets Z if searchstring='' */
"movl %%ecx,%%edx\n"
"1:\tmovl %4,%%edi\n\t"
"movl %%esi,%%eax\n\t"
"movl %%edx,%%ecx\n\t"
"repe\n\t"
"cmpsb\n\t"
"je 2f\n\t" /* also works for empty string, see above */
"xchgl %%eax,%%esi\n\t"
"incl %%esi\n\t"
"cmpb $0,-1(%%eax)\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"2:"
:"=a" (__res):"0" (0),"c" (0xffffffff),"S" (cs),"g" (ct)
:"cx","dx","di","si");
return __res;
}
#define __HAVE_ARCH_STRLEN
extern inline size_t strlen(const char * s)
{
register int __res;
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasb\n\t"
"notl %0\n\t"
"decl %0"
:"=c" (__res):"D" (s),"a" (0),"0" (0xffffffff):"di");
return __res;
}
#define __HAVE_ARCH_STRTOK
extern inline char * strtok(char * s,const char * ct)
{
register char * __res;
__asm__ __volatile__(
"testl %1,%1\n\t"
"jne 1f\n\t"
"testl %0,%0\n\t"
"je 8f\n\t"
"movl %0,%1\n"
"1:\txorl %0,%0\n\t"
"movl $-1,%%ecx\n\t"
"xorl %%eax,%%eax\n\t"
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasb\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"je 7f\n\t" /* empty delimiter-string */
"movl %%ecx,%%edx\n"
"2:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 7f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"je 2b\n\t"
"decl %1\n\t"
"cmpb $0,(%1)\n\t"
"je 7f\n\t"
"movl %1,%0\n"
"3:\tlodsb\n\t"
"testb %%al,%%al\n\t"
"je 5f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"jne 3b\n\t"
"decl %1\n\t"
"cmpb $0,(%1)\n\t"
"je 5f\n\t"
"movb $0,(%1)\n\t"
"incl %1\n\t"
"jmp 6f\n"
"5:\txorl %1,%1\n"
"6:\tcmpb $0,(%0)\n\t"
"jne 7f\n\t"
"xorl %0,%0\n"
"7:\ttestl %0,%0\n\t"
"jne 8f\n\t"
"movl %0,%1\n"
"8:"
:"=b" (__res),"=S" (___strtok)
:"0" (___strtok),"1" (s),"g" (ct)
:"ax","cx","dx","di","memory");
return __res;
}
#define __HAVE_ARCH_STRICMP
extern inline int stricmp(const char* cs,const char * ct)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\tmovb (%%esi), %%eax\n\t"
"movb (%%edi), %%dl \n\t"
"cmpb $0x5A, %%al\n\t"
"ja 2f\t\n"
"cmpb $0x40, %%al\t\n"
"jbe 2f\t\n"
"addb $0x20, %%al\t\n"
"2:\t cmpb $0x5A, %%dl\t\n"
"ja 3f\t\n"
"cmpb $0x40, %%dl\t\n"
"jbe 3f\t\n"
"addb $0x20, %%dl\t\n"
"3:\t inc %%esi\t\n"
"inc %%edi\t\n"
"cmpb %%al, %%dl\t\n"
"jne 4f\n\t"
"cmpb $00, %%al\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"jmp 5f\n"
"4:\tsbbl %%eax,%%eax\n\t"
"orb $1,%%eax\n"
"5:"
:"=a" (__res):"S" (cs),"D" (ct):"si","di");
return __res;
}
#define __HAVE_ARCH_STRNICMP
extern inline int strnicmp(const char* cs,const char * ct, size_t count)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\t decl %3\n\t"
"js 6f\n\t"
"movb (%%esi), %%al\n\t"
"movb (%%edi), %%dl \n\t"
"cmpb $0x5A, %%al\n\t"
"ja 2f\t\n"
"cmpb $0x40, %%al\t\n"
"jbe 2f\t\n"
"addb $0x20, %%al\t\n"
"2:\t cmpb $0x5A, %%dl\t\n"
"ja 3f\t\n"
"cmpb $0x40, %%dl\t\n"
"jbe 3f\t\n"
"addb $0x20, %%dl\t\n"
"3:\t inc %%esi\t\n"
"inc %%edi\t\n"
"cmpb %%al, %%dl\t\n"
"jne 4f\n\t"
"cmpb $00, %%al\n\t"
"jne 1b\n\t"
"6:xorl %%eax,%%eax\n\t"
"jmp 5f\n"
"4:\tsbbl %%eax,%%eax\n\t"
"orb $1,%%eax\n"
"5:"
:"=a" (__res):"S" (cs),"D" (ct), "c" (count):"si","di", "cx");
return __res;
}
extern inline void * __memcpy(void * to, const void * from, size_t n)
{
__asm__ __volatile__(
"cld\n\t"
"rep ; movsl\n\t"
"testb $2,%b1\n\t"
"je 1f\n\t"
"movsw\n"
"1:\ttestb $1,%b1\n\t"
"je 2f\n\t"
"movsb\n"
"2:"
: /* no output */
:"c" (n/4), "q" (n),"D" ((long) to),"S" ((long) from)
: "cx","di","si","memory");
return (to);
}
/*
* This looks horribly ugly, but the compiler can optimize it totally,
* as the count is constant.
*/
extern inline void * __constant_memcpy(void * to, const void * from, size_t n)
{
switch (n) {
case 0:
return to;
case 1:
*(unsigned char *)to = *(const unsigned char *)from;
return to;
case 2:
*(unsigned short *)to = *(const unsigned short *)from;
return to;
case 3:
*(unsigned short *)to = *(const unsigned short *)from;
*(2+(unsigned char *)to) = *(2+(const unsigned char *)from);
return to;
case 4:
*(unsigned long *)to = *(const unsigned long *)from;
return to;
case 8:
*(unsigned long *)to = *(const unsigned long *)from;
*(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
return to;
case 12:
*(unsigned long *)to = *(const unsigned long *)from;
*(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
*(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
return to;
case 16:
*(unsigned long *)to = *(const unsigned long *)from;
*(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
*(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
*(3+(unsigned long *)to) = *(3+(const unsigned long *)from);
return to;
case 20:
*(unsigned long *)to = *(const unsigned long *)from;
*(1+(unsigned long *)to) = *(1+(const unsigned long *)from);
*(2+(unsigned long *)to) = *(2+(const unsigned long *)from);
*(3+(unsigned long *)to) = *(3+(const unsigned long *)from);
*(4+(unsigned long *)to) = *(4+(const unsigned long *)from);
return to;
}
#define COMMON(x) \
__asm__("cld\n\t" \
"rep ; movsl" \
x \
: /* no outputs */ \
: "c" (n/4),"D" ((long) to),"S" ((long) from) \
: "cx","di","si","memory");
switch (n % 4) {
case 0: COMMON(""); return to;
case 1: COMMON("\n\tmovsb"); return to;
case 2: COMMON("\n\tmovsw"); return to;
case 3: COMMON("\n\tmovsw\n\tmovsb"); return to;
}
#undef COMMON
}
#define __HAVE_ARCH_MEMCPY
#define memcpy(t, f, n) \
(__builtin_constant_p(n) ? \
__constant_memcpy((t),(f),(n)) : \
__memcpy((t),(f),(n)))
#define __HAVE_ARCH_MEMMOVE
extern inline void * memmove(void * dest,const void * src, size_t n)
{
if (dest<src)
__asm__ __volatile__(
"cld\n\t"
"rep\n\t"
"movsb"
: /* no output */
:"c" (n),"S" (src),"D" (dest)
:"cx","si","di");
else
__asm__ __volatile__(
"std\n\t"
"rep\n\t"
"movsb\n\t"
"cld"
: /* no output */
:"c" (n),
"S" (n-1+(const char *)src),
"D" (n-1+(char *)dest)
:"cx","si","di","memory");
return dest;
}
#define memcmp __builtin_memcmp
#define __HAVE_ARCH_MEMCHR
extern inline void * memchr(const void * cs,int c,size_t count)
{
register void * __res;
if (!count)
return NULL;
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasb\n\t"
"je 1f\n\t"
"movl $1,%0\n"
"1:\tdecl %0"
:"=D" (__res):"a" (c),"D" (cs),"c" (count)
:"cx");
return __res;
}
extern inline void * __memset_generic(void * s, char c,size_t count)
{
__asm__ __volatile__(
"cld\n\t"
"rep\n\t"
"stosb"
: /* no output */
:"a" (c),"D" (s),"c" (count)
:"cx","di","memory");
return s;
}
/* we might want to write optimized versions of these later */
#define __constant_count_memset(s,c,count) __memset_generic((s),(c),(count))
/*
* memset(x,0,y) is a reasonably common thing to do, so we want to fill
* things 32 bits at a time even when we don't know the size of the
* area at compile-time..
*/
extern inline void * __constant_c_memset(void * s, unsigned long c, size_t count)
{
__asm__ __volatile__(
"cld\n\t"
"rep ; stosl\n\t"
"testb $2,%b1\n\t"
"je 1f\n\t"
"stosw\n"
"1:\ttestb $1,%b1\n\t"
"je 2f\n\t"
"stosb\n"
"2:"
: /* no output */
:"a" (c), "q" (count), "c" (count/4), "D" ((long) s)
:"cx","di","memory");
return (s);
}
/* Added by Gertjan van Wingerde to make minix and sysv module work */
#define __HAVE_ARCH_STRNLEN
extern inline size_t strnlen(const char * s, size_t count)
{
register int __res;
__asm__ __volatile__(
"movl %1,%0\n\t"
"jmp 2f\n"
"1:\tcmpb $0,(%0)\n\t"
"je 3f\n\t"
"incl %0\n"
"2:\tdecl %2\n\t"
"cmpl $-1,%2\n\t"
"jne 1b\n"
"3:\tsubl %1,%0"
:"=a" (__res)
:"c" (s),"d" (count)
:"dx");
return __res;
}
/* end of additional stuff */
/*
* This looks horribly ugly, but the compiler can optimize it totally,
* as we by now know that both pattern and count is constant..
*/
extern inline void * __constant_c_and_count_memset(void * s, unsigned long pattern, size_t count)
{
switch (count) {
case 0:
return s;
case 1:
*(unsigned char *)s = pattern;
return s;
case 2:
*(unsigned short *)s = pattern;
return s;
case 3:
*(unsigned short *)s = pattern;
*(2+(unsigned char *)s) = pattern;
return s;
case 4:
*(unsigned long *)s = pattern;
return s;
}
#define COMMON(x) \
__asm__("cld\n\t" \
"rep ; stosl" \
x \
: /* no outputs */ \
: "a" (pattern),"c" (count/4),"D" ((long) s) \
: "cx","di","memory")
switch (count % 4) {
case 0: COMMON(""); return s;
case 1: COMMON("\n\tstosb"); return s;
case 2: COMMON("\n\tstosw"); return s;
case 3: COMMON("\n\tstosw\n\tstosb"); return s;
}
#undef COMMON
}
#define __constant_c_x_memset(s, c, count) \
(__builtin_constant_p(count) ? \
__constant_c_and_count_memset((s),(c),(count)) : \
__constant_c_memset((s),(c),(count)))
#define __memset(s, c, count) \
(__builtin_constant_p(count) ? \
__constant_count_memset((s),(c),(count)) : \
__memset_generic((s),(c),(count)))
#define __HAVE_ARCH_MEMSET
#define memset(s, c, count) \
(__builtin_constant_p(c) ? \
__constant_c_x_memset((s),(0x01010101UL*(unsigned char)c),(count)) : \
__memset((s),(c),(count)))
/*
* find the first occurrence of byte 'c', or 1 past the area if none
*/
#define __HAVE_ARCH_MEMSCAN
extern inline void * memscan(void * addr, int c, size_t size)
{
if (!size)
return addr;
__asm__("cld
repnz; scasb
jnz 1f
dec %%edi
1: "
: "=D" (addr), "=c" (size)
: "0" (addr), "1" (size), "a" (c));
return addr;
}
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif /* _LINUX_STRING_H_ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,61 +0,0 @@
/*
* Added wide character type wchar_t, june 1998 -- Boudewijn Dekker
*/
#ifndef _LINUX_TYPES_H
#define _LINUX_TYPES_H
#ifndef NULL
# define NULL ((void *) 0)
#endif
#ifndef _I386_TYPES_H
#define _I386_TYPES_H
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
/*
* These aren't exported outside the kernel to avoid name space clashes
*/
#ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#endif /* __KERNEL__ */
#endif
typedef unsigned int size_t;
typedef size_t __kernel_size_t;
typedef unsigned short wchar_t;
#endif /* _LINUX_TYPES_H */

File diff suppressed because it is too large Load Diff

View File

@@ -1,86 +0,0 @@
/*
windows.h
Include this file if you wish to use the Windows32 API Library
Copyright (C) 1996 Free Software Foundation
Author: Scott Christley <scottc@net-community.com>
Date: 1996
This file is part of the Windows32 API Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 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
Library General Public License for more details.
If you are interested in a warranty or support for this source code,
contact Scott Christley <scottc@net-community.com> for more information.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _GNU_H_WINDOWS_H
#define _GNU_H_WINDOWS_H
#ifndef RC_INVOKED
#include <limits.h>
#include <stdarg.h>
#endif
/* Base definitions */
#include <base.h>
/* WIN32 messages */
#include <messages.h>
/* WIN32 definitions */
#include <defines.h>
#ifndef RC_INVOKED
/* WIN32 structures */
#include <structs.h>
/* WIN32 functions */
#include <funcs.h>
#endif /* ! defined (RC_INVOKED) */
/* WIN32 error codes */
#include <errors.h>
#ifndef RC_INVOKED
/* Windows sockets specification version 1.1 */
#ifdef Win32_Winsock
#include <sockets.h>
#endif
/* There is a conflict with BOOL between Objective-C and Win32,
so the Windows32 API Library defines and uses WINBOOL.
However, if we are not using Objective-C then define the normal
windows BOOL so Win32 programs compile normally. If you are
using Objective-C then you must use WINBOOL for Win32 operations.
*/
#ifndef __OBJC__
typedef WINBOOL BOOL;
#endif /* !__OBJC__ */
/* How do we get the VM page size on NT? */
#ifndef vm_page_size
#define vm_page_size 4096
#endif
#endif /* ! defined (RC_INVOKED) */
#endif /* _GNU_H_WINDOWS_H */

View File

@@ -1,535 +0,0 @@
/*
* Adapted from linux for the reactos kernel, march 1998 -- David Welch
* Added wide character string functions, june 1998 -- Boudewijn Dekker
* Removed extern specifier from ___wcstok, june 1998 -- Boudewijn Dekker
* Added wcsicmp and wcsnicmp -- Boudewijn Dekker
*/
#ifndef _LINUX_WSTRING_H_
#define _LINUX_WSTRING_H_
#include <types.h> /* for size_t */
#ifndef NULL
#define NULL ((void *) 0)
#endif
#ifdef __cplusplus
extern "C" {
#endif
wchar_t * ___wcstok;
extern wchar_t * wcscpy(wchar_t *,const wchar_t *);
extern wchar_t * wcsncpy(wchar_t *,const wchar_t *, __kernel_size_t);
extern wchar_t * wcscat(wchar_t *, const wchar_t *);
extern wchar_t * wcsncat(wchar_t *, const wchar_t *, __kernel_size_t);
extern int wcscmp(const wchar_t *,const wchar_t *);
extern int wcsncmp(const wchar_t *,const wchar_t *,__kernel_size_t);
extern wchar_t * wcschr(const wchar_t *,int);
extern wchar_t * wcsrchr(const wchar_t *,int);
extern wchar_t * wcspbrk(const wchar_t *,const wchar_t *);
extern wchar_t * wcstok(wchar_t *,const wchar_t *);
extern wchar_t * wcsstr(const wchar_t *,const wchar_t *);
extern size_t wcsnlen(const wchar_t * s, size_t count);
extern int wcsicmp(const wchar_t* cs,const wchar_t * ct);
extern int wcsnicmp(const wchar_t* cs,const wchar_t * ct, size_t count);
/*
* Include machine specific inline routines
*/
#ifndef _I386_STRING_H_
#define _I386_STRING_H_
/*
* On a 486 or Pentium, we are better off not using the
* byte string operations. But on a 386 or a PPro the
* byte string ops are faster than doing it by hand
* (MUCH faster on a Pentium).
*
* Also, the byte strings actually work correctly. Forget
* the i486 routines for now as they may be broken..
*/
#if FIXED_486_STRING && (CPU == 486 || CPU == 586)
#include <asm/string-486.h>
#else
/*
* This string-include defines all string functions as inline
* functions. Use gcc. It also assumes ds=es=data space, this should be
* normal. Most of the string-functions are rather heavily hand-optimized,
* see especially wcstok,wcsstr,wcs[c]spn. They should work, but are not
* very easy to understand. Everything is done entirely within the register
* set, making the functions fast and clean. String instructions have been
* used through-out, making for "slightly" unclear code :-)
*
* Copyright (C) 1991, 1992 Linus Torvalds
*/
#define __HAVE_ARCH_WCSCPY
inline wchar_t * wcscpy(wchar_t * dest,const wchar_t *src)
{
__asm__ __volatile__(
"cld\n"
"1:\tlodsw\n\t"
"stosw\n\t"
"testw %%eax,%%eax\n\t"
"jne 1b"
: /* no output */
:"S" (src),"D" (dest):"esi","edi","eax","memory");
return dest;
}
#define __HAVE_ARCH_WCSNCPY
inline wchar_t * wcsncpy(wchar_t * dest,const wchar_t *src,size_t count)
{
__asm__ __volatile__(
"cld\n"
"1:\tdecl %2\n\t"
"js 2f\n\t"
"lodsw\n\t"
"stosw\n\t"
"testw %%eax,%%eax\n\t"
"jne 1b\n\t"
"rep\n\t"
"stosw\n"
"2:"
: /* no output */
:"S" (src),"D" (dest),"c" (count):"esi","edi","eax","ecx","memory");
return dest;
}
#define __HAVE_ARCH_WCSCAT
inline wchar_t * wcscat(wchar_t * dest,const wchar_t * src)
{
__asm__ __volatile__(
"cld\n\t"
"repnz\n\t"
"scasw\n\t"
"decl %1\n"
"decl %1\n\t"
"1:\tlodsw\n\t"
"stosw\n\t"
"testw %%eax,%%eax\n\t"
"jne 1b"
: /* no output */
:"S" (src),"D" (dest),"a" (0),"c" (0xffffffff):"esi","edi","eax","ecx");
return dest;
}
#define __HAVE_ARCH_WCSNCAT
inline wchar_t * wcsncat(wchar_t * dest,const wchar_t * src,size_t count)
{
__asm__ __volatile__(
"cld\n\t"
"repnz\n\t"
"scasw\n\t"
"decl %1\n\t"
"movl %4,%3\n"
"decl %1\n\t"
"1:\tdecl %3\n\t"
"js 2f\n\t"
"lodsw\n\t"
"stosw\n\t"
"testw %%eax,%%eax\n\t"
"jne 1b\n"
"2:\txorl %2,%2\n\t"
"stosw"
: /* no output */
:"S" (src),"D" (dest),"a" (0),"c" (0xffffffff),"g" (count)
:"esi","edi","eax","ecx","memory");
return dest;
}
#define __HAVE_ARCH_WCSCMP
inline int wcscmp(const wchar_t* cs,const wchar_t * ct)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\tlodsw\n\t"
"scasw\n\t"
"jne 2f\n\t"
"testw %%eax,%%eax\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"jmp 3f\n"
"2:\tsbbl %%eax,%%eax\n\t"
"orw $1,%%eax\n"
"3:"
:"=a" (__res):"S" (cs),"D" (ct):"esi","edi");
return __res;
}
#define __HAVE_ARCH_WCSNCMP
inline int wcsncmp(const wchar_t * cs,const wchar_t * ct,size_t count)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\tdecl %3\n\t"
"js 2f\n\t"
"lodsw\n\t"
"scasw\n\t"
"jne 3f\n\t"
"testw %%eax,%%eax\n\t"
"jne 1b\n"
"2:\txorl %%eax,%%eax\n\t"
"jmp 4f\n"
"3:\tsbbl %%eax,%%eax\n\t"
"orw $1,%%eax\n"
"4:"
:"=a" (__res):"S" (cs),"D" (ct),"c" (count):"esi","edi","ecx");
return __res;
}
#define __HAVE_ARCH_WCSCHR
inline wchar_t * wcschr(const wchar_t * s, int c)
{
register wchar_t * __res;
__asm__ __volatile__(
"cld\n\t"
"movw %%eax,%%edx\n"
"1:\tlodsw\n\t"
"cmpw %%edx,%%eax\n\t"
"je 2f\n\t"
"testw %%eax,%%eax\n\t"
"jne 1b\n\t"
"movl $1,%1\n"
"2:\tmovl %1,%0\n\t"
"decl %0\n\t"
"decl %0\n\t"
:"=a" (__res):"S" (s),"0" (c):"esi");
return __res;
}
#define __HAVE_ARCH_WCSRCHR
inline wchar_t * wcsrchr(const wchar_t * s, int c)
{
register wchar_t * __res;
__asm__ __volatile__(
"cld\n\t"
"movw %%eax,%%edx\n"
"1:\tlodsw\n\t"
"cmpw %%edx,%%eax\n\t"
"jne 2f\n\t"
"leal -2(%%esi),%0\n"
"2:\ttestw %%eax,%%eax\n\t"
"jne 1b"
:"=d" (__res):"0" (0),"S" (s),"a" (c):"eax","esi");
return __res;
}
#define __HAVE_ARCH_WCSSPN
inline size_t wcsspn(const wchar_t * cs, const wchar_t * ct)
{
register wchar_t * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasw\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsw\n\t"
"testw %%eax,%%eax\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasb\n\t"
"je 1b\n"
"2:\tdecl %0"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"eax","ecx","edx","edi");
return __res-cs;
}
#define __HAVE_ARCH_WCSCSPN
inline size_t wcscspn(const wchar_t * cs, const wchar_t * ct)
{
register wchar_t * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasw\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsw\n\t"
"testw %%eax,%%eax\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasw\n\t"
"jne 1b\n"
"2:\tdecl %0"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"eax","ecx","edx","edi");
return __res-cs;
}
#define __HAVE_ARCH_STRPBRK
inline wchar_t * wcspbrk(const wchar_t * cs,const wchar_t * ct)
{
register wchar_t * __res;
__asm__ __volatile__(
"cld\n\t"
"movl %4,%%edi\n\t"
"repne\n\t"
"scasw\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"movl %%ecx,%%edx\n"
"1:\tlodsw\n\t"
"testw %%eax,%%eax\n\t"
"je 2f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasw\n\t"
"jne 1b\n\t"
"decl %0\n\t"
"jmp 3f\n"
"2:\txorl %0,%0\n"
"3:"
:"=S" (__res):"a" (0),"c" (0xffffffff),"0" (cs),"g" (ct)
:"eax","ecx","edx","edi");
return __res;
}
#define __HAVE_ARCH_WCSSTR
inline wchar_t * wcsstr(const wchar_t * cs,const wchar_t * ct)
{
register wchar_t * __res;
__asm__ __volatile__(
"cld\n\t" \
"movl %4,%%edi\n\t"
"repne\n\t"
"scasw\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t" /* NOTE! This also sets Z if searchstring='' */
"movl %%ecx,%%edx\n"
"1:\tmovl %4,%%edi\n\t"
"movl %%esi,%%eax\n\t"
"movl %%edx,%%ecx\n\t"
"repe\n\t"
"cmpsw\n\t"
"je 2f\n\t" /* also works for empty string, see above */
"xchgl %%eax,%%esi\n\t"
"incl %%esi\n\t"
"cmpw $0,-1(%%eax)\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"2:"
:"=a" (__res):"0" (0),"c" (0xffffffff),"S" (cs),"g" (ct)
:"ecx","edx","edi","esi");
return __res;
}
#define __HAVE_ARCH_WCSLEN
inline size_t wcslen(const wchar_t * s)
{
register int __res;
__asm__ __volatile__(
"cld\n\t"
"repne\n\t"
"scasw\n\t"
"notl %0\n\t"
"decl %0"
:"=c" (__res):"D" (s),"a" (0),"0" (0xffffffff):"edi");
return __res;
}
#define __HAVE_ARCH_WCSTOK
inline wchar_t * wcstok(wchar_t * s,const wchar_t * ct)
{
register wchar_t * __res;
__asm__ __volatile__(
"testl %1,%1\n\t"
"jne 1f\n\t"
"testl %0,%0\n\t"
"je 8f\n\t"
"movl %0,%1\n"
"1:\txorl %0,%0\n\t"
"movl $-1,%%ecx\n\t"
"xorl %%eax,%%eax\n\t"
"cld\n\t"
"movl %4,%%edi\n\t"
"repnz\n\t"
"scasw\n\t"
"notl %%ecx\n\t"
"decl %%ecx\n\t"
"decl %%ecx\n\t"
"je 7f\n\t" /* empty delimiter-string */
"movl %%ecx,%%edx\n"
"2:\tlodsw\n\t"
"testw %%eax,%%eax\n\t"
"je 7f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasw\n\t"
"je 2b\n\t"
"decl %1\n\t"
"decl %1\n\t"
"cmpw $0,(%1)\n\t"
"je 7f\n\t"
"movl %1,%0\n"
"3:\tlodsw\n\t"
"testw %%eax,%%eax\n\t"
"je 5f\n\t"
"movl %4,%%edi\n\t"
"movl %%edx,%%ecx\n\t"
"repne\n\t"
"scasw\n\t"
"jne 3b\n\t"
"decl %1\n\t"
"decl %1\n\t"
"decl %1\n\t"
"decl %1\n\t"
"cmpw $0,(%1)\n\t"
"je 5f\n\t"
"movw $0,(%1)\n\t"
"incl %1\n\t"
"incl %1\n\t"
"jmp 6f\n"
"5:\txorl %1,%1\n"
"6:\tcmpw $0,(%0)\n\t"
"jne 7f\n\t"
"xorl %0,%0\n"
"7:\ttestl %0,%0\n\t"
"jne 8f\n\t"
"movl %0,%1\n"
"8:"
:"=b" (__res),"=S" (___wcstok)
:"0" (___wcstok),"1" (s),"g" (ct)
:"eax","ecx","edx","edi","memory");
return __res;
}
#define __HAVE_ARCH_WCSNNLEN
inline size_t wcsnlen(const wchar_t * s, size_t count)
{
register int __res;
__asm__ __volatile__(
"movl %1,%0\n\t"
"jmp 2f\n"
"1:\tcmpw $0,(%0)\n\t"
"je 3f\n\t"
"incl %0\n"
"2:\tdecl %2\n\t"
"cmpl $-1,%2\n\t"
"jne 1b\n"
"3:\tsubl %1,%0"
:"=a" (__res)
:"c" (s),"d" (count)
:"edx");
return __res;
}
#define __HAVE_ARCH_WCSICMP
inline int wcsicmp(const wchar_t* cs,const wchar_t * ct)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\tmovw (%%esi), %%eax\n\t"
"movw (%%edi), %%edx \n\t"
"cmpw $0x5A, %%eax\n\t"
"ja 2f\t\n"
"cmpw $0x40, %%eax\t\n"
"jbe 2f\t\n"
"addw $0x20, %%eax\t\n"
"2:\t cmpw $0x5A, %%edx\t\n"
"ja 3f\t\n"
"cmpw $0x40, %%edx\t\n"
"jbe 3f\t\n"
"addw $0x20, %%edx\t\n"
"3:\t inc %%esi\t\n"
"inc %%esi\t\n"
"inc %%edi\t\n"
"inc %%edi\t\n"
"cmpw %%eax, %%edx\t\n"
"jne 4f\n\t"
"cmpw $00, %%eax\n\t"
"jne 1b\n\t"
"xorl %%eax,%%eax\n\t"
"jmp 5f\n"
"4:\tsbbl %%eax,%%eax\n\t"
"orw $1,%%eax\n"
"5:"
:"=a" (__res):"S" (cs),"D" (ct):"esi","edi");
return __res;
}
#define __HAVE_ARCH_WCSNICMP
inline int wcsnicmp(const wchar_t* cs,const wchar_t * ct, size_t count)
{
register int __res;
__asm__ __volatile__(
"cld\n"
"1:\t decl %3\n\t"
"js 6f\n\t"
"movw (%%esi), %%eax\n\t"
"movw (%%edi), %%edx \n\t"
"cmpw $0x5A, %%eax\n\t"
"ja 2f\t\n"
"cmpw $0x40, %%eax\t\n"
"jbe 2f\t\n"
"addw $0x20, %%eax\t\n"
"2:\t cmpw $0x5A, %%edx\t\n"
"ja 3f\t\n"
"cmpw $0x40, %%edx\t\n"
"jbe 3f\t\n"
"addw $0x20, %%edx\t\n"
"3:\t inc %%esi\t\n"
"inc %%esi\t\n"
"inc %%edi\t\n"
"inc %%edi\t\n"
"cmpw %%eax, %%edx\t\n"
"jne 4f\n\t"
"cmpw $00, %%eax\n\t"
"jne 1b\n\t"
"6:xorl %%eax,%%eax\n\t"
"jmp 5f\n"
"4:\tsbbl %%eax,%%eax\n\t"
"orw $1,%%eax\n"
"5:"
:"=a" (__res):"S" (cs),"D" (ct), "c" (count):"esi","edi", "ecx");
return __res;
}
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,58 +0,0 @@
/*
* Win32 File Api functions
* Author: Boudewijn Dekker
* to do: many more to add ..
*/
#include <windows.h>
// AnsiOrOemtoUnicode
// pupose: internal procedure used in file api
NTSTATUS AnsiOrOemtoUnicode(PUNICODE_STRING DestinationString,PANSI_STRING SourceString, BOOLEAN AllocateDestinationString);
BOOLEAN bIsFileApiAnsi; // set the file api to ansi or oem
NTSTATUS AnsiOrOemtoUnicode(PUNICODE_STRING DestinationString,PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
{
if ( bIsFileApiAnsi ) {
return __AnsiStringToUnicodeString(DestinationString, SourceString, AllocateDestinationString);
else
return __OemStringToUnicodeString(DestinationString, SourceString, AllocateDestinationString);
}
WINBASEAPI
VOID
WINAPI
SetFileApisToOEM(VOID)
{
bIsFileApiAnsi = FALSE;
return;
}
WINBASEAPI
VOID
WINAPI
SetFileApisToANSI(VOID)
{
bIsFileApiAnsi = TRUE;
return;
}
WINBASEAPI
BOOLEAN
WINAPI
AreFileApisANSI(VOID)
{
return bIsFileApiAnsi;
}

View File

@@ -1,138 +0,0 @@
/*
* created: Boudewijn Dekker
* org. source: WINE
* date: june 1998
* todo: check the _lopen for correctness
*/
#include <windows.h>
#include <string.h>
#include <wstring.h>
long _hread(
HFILE hFile,
LPVOID lpBuffer,
long lBytes
)
{
DWORD NumberOfBytesRead;
if ( ReadFile((HANDLE)hFile,(LPCVOID)lpBuffer,(DWORD)lBytes,&NumberOfBytesRead, NULL) == FALSE )
return -1;
else
return NumberOfBytesRead;
}
long
_lread(HFILE fd,LPVOID buffer,long count)
{
return _hread(fd,buffer, count);
}
long _hwrite(
HFILE hFile,
LPCSTR lpBuffer,
long lBytes
)
{
DWORD NumberOfBytesWritten;
if ( lBytes == 0 ) {
if ( SetEndOfFile((HANDLE) hFile ) == FALSE )
return -1;
else
return 0;
}
if ( WriteFile((HANDLE)hFile,(LPCVOID)lpBuffer,(DWORD)lBytes, &NumberOfBytesWritten,NULL) == FALSE )
return -1;
else
return NumberOfBytesWritten;
}
long _lwrite(
HFILE hFile,
LPCSTR lpBuffer,
long lBytes
)
{
return _hwrite(hFile,lpBuffer,lBytes);
}
#define OF_OPENMASK (OF_READ|OF_READWRITE|OF_WRITE|OF_CREATE)
#define OF_FILEMASK (OF_DELETE|OF_PARSE)
#define OF_MASK (OF_OPENMASK|OF_FILEMASK)
HFILE _open( LPCSTR lpPathName, int iReadWrite )
{
HFILE fd;
int nFunction;
/* Don't assume a 1:1 relationship between OF_* modes and O_* modes */
/* Here we translate the read/write permission bits (which had better */
/* be the low 2 bits. If not, we're in trouble. Other bits are */
/* passed through unchanged */
nFunction = wFunction & 3;
switch (wFunction & 3) {
case OF_READ:
nFunction |= O_RDONLY;
break;
case OF_READWRITE:
nFunction |= O_RDWR;
break;
case OF_WRITE:
nFunction |= O_WRONLY;
break;
default:
//ERRSTR((LF_ERROR, "_lopen: bad file open mode %x\n", wFunction));
return HFILE_ERROR;
}
SetLastError(0);
fd = CreateFileA( filename,nFunction,OPEN_EXISTING,
NULL,OPEN_EXISTING,NULL,NULL);
if (fd == INVALID_HANDLE_VALUE )
return HFILE_ERROR;
return fd;
}
int _creat(const char *filename, int pmode)
{
SetLastError(0);
return CreateFileA( filename,GENERIC_READ & GENERIC_WRITE,FILE_SHARE_WRITE,
NULL,CREATE_ALWAYS,pmode & 0x00003FB7,NULL);
}
int _lclose(
HFILE hFile
)
{
if ( CloseHandle((HANDLE)hFile) )
return 0;
else
rerturn -1;
}
LONG _llseek(
HFILE hFile,
LONG lOffset,
int iOrigin
)
{
return SetFilePointer((HANDLE) hFile, lOffset, NULL,(DWORD)iOrigin );
}

View File

@@ -1,10 +0,0 @@
all: dummy
OBJECTS = file/file.o file/lfile.o mem/virtual.o mem/local.o mem/global.o
kernel32_lib: $(OBJECTS)
$(LD) --oformat=coff-go32 -Ttext b0000000 $(LDFLAGS) $(OBJECTS) -o kernel32.dll
dummy:
include ../../rules.mak

View File

@@ -1,320 +0,0 @@
/*
* Win32 Global/Local heap functions (GlobalXXX, LocalXXX).
* These functions included in Win32 for compatibility with 16 bit Windows
* Especially the moveable blocks and handles are oldish.
* But the ability to directly allocate memory with GPTR and LPTR is widely
* used.
*/
#include <windows.h>
#define MAGIC_GLOBAL_USED 0x5342BEEF
#define GLOBAL_LOCK_MAX 0xFF
typedef struct __GLOBAL_LOCAL_HANDLE
{
ULONG Magic;
LPVOID Pointer;
BYTE Flags;
BYTE LockCount;
} GLOBAL_HANDLE, LOCAL_HANDLE, *PGLOBAL_HANDLE, *PLOCAL_HANDLE;
/*********************************************************************
* GlobalAlloc -- KERNEL32 *
*********************************************************************/
HGLOBAL WINAPI GlobalAlloc(UINT flags, DWORD size)
{
PGLOBAL_HANDLE phandle;
LPVOID palloc;
aprintf("GlobalAlloc( 0x%X, 0x%lX )\n", flags, size );
if((flags & GMEM_MOVEABLE)==0) /* POINTER */
{
palloc=HeapAlloc(__ProcessHeap, 0, size);
return (HGLOBAL) palloc;
}
else /* HANDLE */
{
HeapLock(__ProcessHeap);
phandle=__HeapAllocFragment(__ProcessHeap, 0, sizeof(GLOBAL_HANDLE));
if(size)
{
palloc=HeapAlloc(__ProcessHeap, 0, size+sizeof(HANDLE));
*(PHANDLE)palloc=(HANDLE) &(phandle->Pointer);
phandle->Pointer=palloc+sizeof(HANDLE);
}
else
phandle->Pointer=NULL;
phandle->Magic=MAGIC_GLOBAL_USED;
phandle->Flags=flags>>8;
phandle->LockCount=0;
HeapUnlock(__ProcessHeap);
return (HGLOBAL) &(phandle->Pointer);
}
}
/*********************************************************************
* GlobalLock -- KERNEL32 *
*********************************************************************/
LPVOID WINAPI GlobalLock(HGLOBAL hmem)
{
PGLOBAL_HANDLE phandle;
LPVOID palloc;
aprintf("GlobalLock( 0x%lX )\n", (ULONG) hmem );
if(((ULONG)hmem%8)==0)
return (LPVOID) hmem;
HeapLock(__ProcessHeap);
phandle=(PGLOBAL_HANDLE)(((LPVOID) hmem)-4);
if(phandle->Magic==MAGIC_GLOBAL_USED)
{
if(phandle->LockCount<GLOBAL_LOCK_MAX)
phandle->LockCount++;
palloc=phandle->Pointer;
}
else
{
dprintf("GlobalLock: invalid handle\n");
palloc=(LPVOID) hmem;
}
HeapUnlock(__ProcessHeap);
return palloc;
}
/*********************************************************************
* GlobalUnlock -- KERNEL32 *
*********************************************************************/
BOOL WINAPI GlobalUnlock(HGLOBAL hmem)
{
PGLOBAL_HANDLE phandle;
BOOL locked;
aprintf("GlobalUnlock( 0x%lX )\n", (ULONG) hmem );
if(((ULONG)hmem%8)==0)
return FALSE;
HeapLock(__ProcessHeap);
phandle=(PGLOBAL_HANDLE)(((LPVOID) hmem)-4);
if(phandle->Magic==MAGIC_GLOBAL_USED)
{
if((phandle->LockCount<GLOBAL_LOCK_MAX)&&(phandle->LockCount>0))
phandle->LockCount--;
locked=(phandle->LockCount==0) ? TRUE : FALSE;
}
else
{
dprintf("GlobalUnlock: invalid handle\n");
locked=FALSE;
}
HeapUnlock(__ProcessHeap);
return locked;
}
/*********************************************************************
* GlobalHandle -- KERNEL32 *
*********************************************************************/
HGLOBAL WINAPI GlobalHandle(LPCVOID pmem)
{
aprintf("GlobalHandle( 0x%lX )\n", (ULONG) pmem );
if(((ULONG)pmem%8)==0) /* FIXED */
return (HGLOBAL) pmem;
else /* MOVEABLE */
return (HGLOBAL) *(LPVOID *)(pmem-sizeof(HANDLE));
}
/*********************************************************************
* GlobalReAlloc -- KERNEL32 *
*********************************************************************/
HGLOBAL WINAPI GlobalReAlloc(HGLOBAL hmem, DWORD size, UINT flags)
{
LPVOID palloc;
HGLOBAL hnew;
PGLOBAL_HANDLE phandle;
aprintf("GlobalReAlloc( 0x%lX, 0x%lX, 0x%X )\n", (ULONG) hmem, size, flags );
hnew=NULL;
HeapLock(__ProcessHeap);
if(flags & GMEM_MODIFY) /* modify flags */
{
if( (((ULONG)hmem%8)==0) && (flags & GMEM_MOVEABLE))
{
/* make a fixed block moveable
* actually only NT is able to do this. And it's soo simple
*/
size=HeapSize(__ProcessHeap, 0, (LPVOID) hmem);
hnew=GlobalAlloc( flags, size);
palloc=GlobalLock(hnew);
memcpy(palloc, (LPVOID) hmem, size);
GlobalUnlock(hnew);
GlobalFree(hmem);
}
else if((((ULONG)hmem%8) != 0)&&(flags & GMEM_DISCARDABLE))
{
/* change the flags to make our block "discardable" */
phandle=(PGLOBAL_HANDLE)(((LPVOID) hmem)-4);
phandle->Flags = phandle->Flags | (GMEM_DISCARDABLE >> 8);
hnew=hmem;
}
else
{
SetLastError(ERROR_INVALID_PARAMETER);
hnew=NULL;
}
}
else
{
if(((ULONG)hmem%8)!=0)
{
/* reallocate fixed memory */
hnew=(HANDLE)HeapReAlloc(__ProcessHeap, 0, (LPVOID) hmem, size);
}
else
{
/* reallocate a moveable block */
phandle=(PGLOBAL_HANDLE)(((LPVOID) hmem)-4);
if(phandle->LockCount!=0)
SetLastError(ERROR_INVALID_HANDLE);
else if(size!=0)
{
hnew=hmem;
if(phandle->Pointer)
{
palloc=HeapReAlloc(__ProcessHeap, 0,
phandle->Pointer-sizeof(HANDLE),
size+sizeof(HANDLE) );
phandle->Pointer=palloc+sizeof(HANDLE);
}
else
{
palloc=HeapAlloc(__ProcessHeap, 0, size+sizeof(HANDLE));
*(PHANDLE)palloc=hmem;
phandle->Pointer=palloc+sizeof(HANDLE);
}
}
else
{
if(phandle->Pointer)
{
HeapFree(__ProcessHeap, 0, phandle->Pointer-sizeof(HANDLE));
phandle->Pointer=NULL;
}
}
}
}
HeapUnlock(__ProcessHeap);
return hnew;
}
/*********************************************************************
* GlobalFree -- KERNEL32 *
*********************************************************************/
HGLOBAL WINAPI GlobalFree(HGLOBAL hmem)
{
PGLOBAL_HANDLE phandle;
aprintf("GlobalFree( 0x%lX )\n", (ULONG) hmem );
if(((ULONG)hmem%4)==0) /* POINTER */
{
HeapFree(__ProcessHeap, 0, (LPVOID) hmem);
}
else /* HANDLE */
{
HeapLock(__ProcessHeap);
phandle=(PGLOBAL_HANDLE)(((LPVOID) hmem)-4);
if(phandle->Magic==MAGIC_GLOBAL_USED)
{
HeapLock(__ProcessHeap);
if(phandle->LockCount!=0)
SetLastError(ERROR_INVALID_HANDLE);
if(phandle->Pointer)
HeapFree(__ProcessHeap, 0, phandle->Pointer-sizeof(HANDLE));
__HeapFreeFragment(__ProcessHeap, 0, phandle);
}
HeapUnlock(__ProcessHeap);
}
return hmem;
}
/*********************************************************************
* GlobalSize -- KERNEL32 *
*********************************************************************/
DWORD WINAPI GlobalSize(HGLOBAL hmem)
{
DWORD retval;
PGLOBAL_HANDLE phandle;
aprintf("GlobalSize( 0x%lX )\n", (ULONG) hmem );
if(((ULONG)hmem%8)==0)
{
retval=HeapSize(__ProcessHeap, 0, hmem);
}
else
{
HeapLock(__ProcessHeap);
phandle=(PGLOBAL_HANDLE)(((LPVOID) hmem)-4);
if(phandle->Magic==MAGIC_GLOBAL_USED)
{
retval=HeapSize(__ProcessHeap, 0, (phandle->Pointer)-sizeof(HANDLE))-4;
}
else
{
dprintf("GlobalSize: invalid handle\n");
retval=0;
}
HeapUnlock(__ProcessHeap);
}
return retval;
}
/*********************************************************************
* GlobalWire -- KERNEL32 *
*********************************************************************/
LPVOID WINAPI GlobalWire(HGLOBAL hmem)
{
return GlobalLock( hmem );
}
/*********************************************************************
* GlobalUnWire -- KERNEL32 *
*********************************************************************/
BOOL WINAPI GlobalUnWire(HGLOBAL hmem)
{
return GlobalUnlock( hmem);
}
/*********************************************************************
* GlobalFix -- KERNEL32 *
*********************************************************************/
VOID WINAPI GlobalFix(HGLOBAL hmem)
{
GlobalLock( hmem );
}
/*********************************************************************
* GlobalUnfix -- KERNEL32 *
*********************************************************************/
VOID WINAPI GlobalUnfix(HGLOBAL hmem)
{
GlobalUnlock( hmem);
}
/*********************************************************************
* GlobalFlags -- KERNEL32 *
*********************************************************************/
UINT WINAPI GlobalFlags(HGLOBAL hmem)
{
return LocalFlags( (HLOCAL) hmem);
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,123 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* Copyright (C) 1996, Onno Hovers, All rights reserved
* PROJECT: ReactOS system libraries
* FILE: lib/kernel32/mem/local.cc
* PURPOSE: Manages the local heap
* PROGRAMER: Onno Hovers (original wfc version)
* David Welch (adapted for ReactOS)
* UPDATE HISTORY:
* 9/4/98: Adapted from the wfc project
*/
/* NOTES
*
* The local heap is the same as the global heap for win32 and both are only
* required for legacy apps
*
*/
/* INCLUDES ****************************************************************/
#include <windows.h>
#include <kernel32/heap.h>
/* FUNCTIONS ***************************************************************/
/*********************************************************************
* LocalFlags -- KERNEL32 *
*********************************************************************/
UINT WINAPI LocalFlags(HLOCAL hmem)
{
DWORD retval;
PGLOBAL_HANDLE phandle;
if(((ULONG)hmem%8)==0)
{
retval=0;
}
else
{
HeapLock(__ProcessHeap);
phandle=(PGLOBAL_HANDLE)(((LPVOID) hmem)-4);
if(phandle->Magic==MAGIC_GLOBAL_USED)
{
retval=phandle->LockCount + (phandle->Flags<<8);
if(phandle->Pointer==0)
retval|= LMEM_DISCARDED;
}
else
{
dprintf("GlobalSize: invalid handle\n");
retval=0;
}
HeapUnlock(__ProcessHeap);
}
return retval;
}
/*********************************************************************
* LocalAlloc -- KERNEL32 *
*********************************************************************/
HLOCAL WINAPI LocalAlloc(UINT flags, UINT size)
{
return (HLOCAL) GlobalAlloc( flags, size );
}
/*********************************************************************
* LocalLock -- KERNEL32 *
*********************************************************************/
LPVOID WINAPI LocalLock(HLOCAL hmem)
{
return GlobalLock( (HGLOBAL) hmem );
}
/*********************************************************************
* LocalUnlock -- KERNEL32 *
*********************************************************************/
BOOL WINAPI LocalUnlock(HLOCAL hmem)
{
return GlobalUnlock( (HGLOBAL) hmem);
}
/*********************************************************************
* LocalHandle -- KERNEL32 *
*********************************************************************/
HLOCAL WINAPI LocalHandle(LPCVOID pmem)
{
return (HLOCAL) GlobalHandle(pmem);
}
/*********************************************************************
* LocalReAlloc -- KERNEL32 *
*********************************************************************/
HLOCAL WINAPI LocalReAlloc(HLOCAL hmem, UINT size, UINT flags)
{
return (HLOCAL) GlobalReAlloc( (HGLOBAL) hmem, size, flags);
}
/*********************************************************************
* LocalFree -- KERNEL32 *
*********************************************************************/
HLOCAL WINAPI LocalFree(HLOCAL hmem)
{
return (HLOCAL) GlobalFree( (HGLOBAL) hmem );
}
/*********************************************************************
* LocalSize -- KERNEL32 *
*********************************************************************/
UINT WINAPI LocalSize(HLOCAL hmem)
{
return GlobalSize( (HGLOBAL) hmem );
}
/*********************************************************************
* LocalShrink -- KERNEL32 *
*********************************************************************/
UINT WINAPI LocalShrink(HLOCAL hmem, UINT newsize)
{
return (__ProcessHeap->End - (LPVOID) __ProcessHeap);
}

View File

@@ -1,23 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user mode libraries
* FILE: kernel32/mem/utils.cc
* PURPOSE: Various simple memory initalizations functions
*/
#include <windows.h>
VOID ZeroMemory(PVOID Destination, DWORD Length)
{
#ifdef __i386__
#endif /* __i386__ */
}
VOID CopyMemory(PVOID Destination, CONST VOID* Source, DWORD Length)
{
#ifdef __i386__
#endif /* __i386__ */
}

View File

@@ -1,19 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: lib/kernel32/mem/virtual.c
* PURPOSE: Passing the Virtualxxx functions onto the kernel
* PROGRAMMER: David Welch (welch@mcmail.com)
*/
/* INCLUDES ******************************************************************/
#include <windows.h>
/* FUNCTIONS *****************************************************************/
WINBOOL STDCALL VirtualFree(LPVOID lpAddress, DWORD dwSize, DWORD dwFreeType)
{
return(VirtualFreeEx(GetCurrentProcess(),lpAddress,dwSize,dwFreeType));
}

View File

@@ -1,527 +0,0 @@
#include <Atom.h>
#include <process.h>
#include <thread.h>
#include <wstring.h>
/*
title: atom.c
author: Boudewijn Dekker
hsitory:copied from twin wine source
modified: -- add wide char support
-- removed ex functions
-- use a per process local atom table
todo :
check initatomtable
check if not calling down to ntdll conflicts with anything
check anis2unicode procedure
*/
/* system global and local atom tables */
static ATOMTABLE GlobalAtomTable;
/* internal functions */
ATOM GLDeleteAtom(ATOMTABLE *at, ATOM nAtom);
ATOM AWGLAddAtom( ATOMTABLE *at, const wchar_t *lpString);
ATOM AWGLFindAtom(ATOMTABLE *at, const wchar_t *lpString);
UINT AWGLGetAtomName(ATOMTABLE *at,ATOM atom, wchar_t *lpString, int nSize);
static ATOMENTRY *GetAtomPointer(ATOMTABLE *,int);
static ATOMID AtomHashString(const wchar_t *,int *);
#define ATOMBASE 0xcc00
ATOM
STDCALL
GlobalDeleteAtom(
ATOM nAtom
)
{
return GLDeleteAtom(&GlobalAtomTable, nAtom);
}
BOOL
STDCALL
InitAtomTable(
DWORD nSize
)
{
// nSize should be a prime number
if ( nSize < 4 || nSize >= 512 ) {
nSize = 37;
}
/*
if ( GetTeb()->pPeb->LocalAtomTable == NULL ) {
GetTeb()->pPeb->LocalAtomTable = (ATOMTABLE *)malloc(nSize*sizeof(ATOMTABLE));
}
GetTeb()->pPeb->LocalAtomTable->TableSize = nSize;
*/
return TRUE;
}
ATOM
STDCALL
DeleteAtom(
ATOM nAtom
)
{
return GLDeleteAtom(&GetTeb()->pPeb->LocalAtomTable, nAtom);
}
ATOM
STDCALL
GlobalAddAtomA(
const char *lpString
)
{
UINT BufLen = strlen(lpString);
wchar_t *lpBuffer = (wchar_t *)malloc(BufLen*sizeof(wchar_t));
ATOM atom;
ansi2unicode(lpBuffer, lpString,BufLen);
atom = AWGLAddAtom(&GlobalAtomTable,lpBuffer );
free(lpBuffer);
return atom;
}
ATOM
STDCALL
GlobalAddAtomW(
const wchar_t *lpString
)
{
return AWGLAddAtom(&GlobalAtomTable, lpString);
}
ATOM
STDCALL
GlobalFindAtomA(
const char *lpString
)
{
ATOM a;
UINT BufLen = strlen(lpString);
wchar_t *lpBuffer = (wchar_t *)malloc(BufLen*sizeof(wchar_t));
ansi2unicode(lpBuffer, lpString,BufLen);
a = AWGLFindAtom(&GlobalAtomTable, lpBuffer);
free(lpBuffer);
return a;
}
ATOM
STDCALL
GlobalFindAtomW(
const wchar_t *lpString
)
{
return AWGLFindAtom(&GlobalAtomTable, lpString);
}
UINT
STDCALL
GlobalGetAtomNameA(
ATOM nAtom,
char *lpBuffer,
int nSize
)
{
wchar_t *lpUnicode = (wchar_t *)malloc(nSize *sizeof(wchar_t));
UINT x = AWGLGetAtomName(&GlobalAtomTable,nAtom, lpUnicode,nSize);
unicode2ansi(lpBuffer,lpUnicode,nSize);
free(lpUnicode);
return x;
}
UINT
STDCALL
GlobalGetAtomNameW(
ATOM nAtom,
wchar_t * lpBuffer,
int nSize
)
{
return AWGLGetAtomName(&GlobalAtomTable, nAtom, lpBuffer, nSize);
}
ATOM
STDCALL
AddAtomA(
const char *lpString
)
{
UINT BufLen = strlen(lpString);
wchar_t *lpBuffer = (wchar_t*)malloc(BufLen*2);
ATOM a;
ansi2unicode(lpBuffer, lpString,BufLen);
a = AWGLAddAtom(&GetTeb()->pPeb->LocalAtomTable, lpBuffer);
free(lpBuffer);
return a;
}
ATOM
STDCALL
AddAtomW(
const wchar_t * lpString
)
{
return AWGLAddAtom(&GetTeb()->pPeb->LocalAtomTable, lpString);
}
ATOM
STDCALL
FindAtomA(
const char *lpString
)
{
UINT BufLen = strlen(lpString);
wchar_t *lpBuffer = (wchar_t *)malloc(BufLen*2);
ATOM a;
ansi2unicode(lpBuffer, lpString,BufLen);
a = AWGLFindAtom(&GetTeb()->pPeb->LocalAtomTable, lpBuffer);
free(lpBuffer);
return a;
}
ATOM
STDCALL
FindAtomW(
const wchar_t * lpString
)
{
return AWGLFindAtom(&GetTeb()->pPeb->LocalAtomTable, lpString);
}
UINT
STDCALL
GetAtomNameA(
ATOM nAtom,
char *lpBuffer,
int nSize
)
{
LPWSTR lpUnicode = (wchar_t *)malloc(nSize *2);
UINT x = AWGLGetAtomName(&GlobalAtomTable, nAtom,lpUnicode,nSize);
unicode2ansi(lpBuffer,lpUnicode,nSize);
free(lpUnicode);
return x;
}
UINT
STDCALL
GetAtomNameW(
ATOM nAtom,
wchar_t * lpBuffer,
int nSize
)
{
return AWGLGetAtomName(&GetTeb()->pPeb->LocalAtomTable,nAtom,lpBuffer, nSize);
}
ATOM
GLDeleteAtom(
ATOMTABLE *at, ATOM nAtom
)
{
ATOMENTRY *lp;
/* a free slot has q == 0 && refcnt == 0 */
if((lp = GetAtomPointer(at,nAtom - ATOMBASE))) {
if(lp->idsize)
lp->refcnt--;
if(lp->refcnt == 0) {
free(at->AtomTable);
at->AtomTable = NULL;
free(at->AtomData);
at->AtomData = NULL;
return lp->q = 0;
}
}
return nAtom;
}
ATOM
AWGLAddAtom(
ATOMTABLE *at, const wchar_t *lpString
)
{
ATOM atom;
ATOMID q;
LPATOMENTRY lp,lpfree;
int index,freeindex;
int atomlen;
int newlen;
/* if we already have it, bump refcnt */
if((atom = AWGLFindAtom(at, lpString ))) {
lp = GetAtomPointer(at,atom - ATOMBASE);
if(lp->idsize) lp->refcnt++;
return atom;
}
/* add to a free slot */
q = AtomHashString(lpString,&atomlen);
lpfree = 0;
freeindex = 0;
for(index = 0;(lp = GetAtomPointer(at,index));index++) {
if(lp->q == 0 && lp->refcnt == 0) {
if(lp->idsize > atomlen) {
if ((lpfree == 0) ||
(lpfree->idsize > lp->idsize)) {
lpfree = lp;
freeindex = index;
}
}
}
}
/* intatoms do not take space in data, but do get new entries */
/* an INTATOM will have length of 0 */
if(lpfree && atomlen) {
lpfree->q = q;
lpfree->refcnt = 1;
wcsncpy(&at->AtomData[lpfree->idx],lpString,atomlen);
return freeindex + ATOMBASE;
}
/* no space was available, or we have an INTATOM */
/* so expand or create the table */
if(at->AtomTable == 0) {
at->AtomTable = (ATOMENTRY *) malloc(sizeof(ATOMENTRY));
at->TableSize = 1;
lp = at->AtomTable;
index = 0;
} else {
at->TableSize++;
at->AtomTable = (ATOMENTRY *) realloc(
(LPVOID) at->AtomTable,
at->TableSize * sizeof(ATOMENTRY));
lp = &at->AtomTable[at->TableSize - 1];
}
/* set in the entry */
lp->refcnt = 1;
lp->q = q;
lp->idsize = atomlen;
lp->idx = 0;
/* add an entry if not intatom... */
if(atomlen) {
newlen = at->DataSize + atomlen;
if(at->AtomData == 0) {
at->AtomData = (wchar_t *) malloc(newlen*2);
lp->idx = 0;
} else {
at->AtomData = (wchar_t *) realloc(at->AtomData,newlen*2);
lp->idx = at->DataSize;
}
wcscpy(&at->AtomData[lp->idx],lpString);
at->DataSize = newlen;
}
return index + ATOMBASE;
}
ATOM
AWGLFindAtom(
ATOMTABLE *at, const wchar_t *lpString
)
{
ATOMID q;
LPATOMENTRY lp;
int index;
int atomlen;
/* convert string to 'q', and get length */
q = AtomHashString(lpString,&atomlen);
/* find the q value, note: this could be INTATOM */
/* if q matches, then do case insensitive compare*/
for(index = 0;(lp = GetAtomPointer(at,index));index++) {
if(lp->q == q) {
if(HIWORD(lpString) == 0)
return ATOMBASE + index;
if(wcsicmp(&at->AtomData[lp->idx],lpString) == 0)
return ATOMBASE + index;
}
}
return 0;
}
UINT
AWGLGetAtomName(ATOMTABLE *at, ATOM atom, wchar_t *lpString,int len)
{
ATOMENTRY *lp;
wchar_t *atomstr;
int atomlen;
/* return the atom name, or create the INTATOM */
if((lp = GetAtomPointer(at,atom - ATOMBASE))) {
if(lp->idsize) {
atomlen = wcslen(atomstr = &at->AtomData[lp->idx]);
if (atomlen < len)
wcscpy(lpString,atomstr);
else {
wcsncpy(lpString,atomstr,len-1);
lpString[len-1] = '\0';
}
return (UINT)wcslen(lpString);
} else {
//wsprintf((wchar *)lpString,"#%d",lp->q);
return (UINT)wcslen(lpString);
}
}
return 0;
}
/********************************************************/
/* convert alphanumeric string to a 'q' value. */
/* 'q' values do not need to be unique, they just limit */
/* the search we need to make to find a string */
/********************************************************/
static ATOMID
AtomHashString(const wchar_t * lp,int *lplen)
{
ATOMID q;
wchar_t *p,ch;
int len;
/* if we have an intatom... */
if(HIWORD(lp) == 0) {
if(lplen) *lplen = 0;
return (ATOMID)lp;
}
/* convert the string to an internal representation */
for(p=(wchar_t *)lp,q=0,len=0;(p++,ch=*p++);len++)
q = (q<<1) + iswlower(ch)?towupper(ch):ch;
/* 0 is reserved for empty slots */
if(q == 0)
q++;
/* avoid strlen later */
/* check out with unicode */
if(lplen) {
*lplen = ++len;
}
return q;
}
/********************************************************/
/* convert an atom index into a pointer into an */
/* atom table. This validates the pointer is in */
/* range, and that the data is accessible */
/********************************************************/
static ATOMENTRY *
GetAtomPointer(ATOMTABLE *at,int index)
{
ATOMENTRY *lp;
/* if no table, then no pointers */
if(at->AtomTable == 0)
return 0;
/* bad index */
if((index < 0) || (index >= at->TableSize))
return 0;
/* we have a pointer */
lp = &at->AtomTable[index];
/* is the index past stored data, validity check */
/* LATER: is the size of the entry within the available space */
if(lp->idx > at->DataSize)
return 0;
return lp;
}
int ansi2unicode( wchar_t *uni, char *ansi, int s)
{
register int i;
for(i=0;i<=s;i++)
uni[i] = (wchar_t)ansi[i];
return;
}
int unicode2ansi( char *ansi, wchar_t *uni, int s)
{
register int i;
for(i=0;i<=s;i++)
ansi[i] = (char)uni[i];
return;
}

View File

@@ -1,137 +0,0 @@
#include <process.h>
/*
* Win32 Process Api functions
* Author: Boudewijn Dekker
* to do: many more to add ..
* open matters: ProcessInformation should be per process
and part of larger structure.
*/
#define NT_CURRENT_PROCESS 0xFFFFFFFF
#define NT_CURRENT_THREAD 0xFFFFFFFE
WINBASEAPI
HANDLE
WINAPI
GetCurrentProcess()
{
return NT_CURRENT_PROCESS;
}
WINBASEAPI
DWORD
WINAPI
GetCurrentProcessId()
{
return GetTeb()->dwProcessId;
}
WINBASEAPI
HANDLE
WINAPI
GetCurrentThread()
{
return NT_CURRENT_PROCESS;
}
WINBASEAPI
DWORD
WINAPI
GetCurrentThreadId()
{
return GetTeb()->dwThreadId;
}
UINT WinExec ( LPCSTR lpCmdLine, UINT uCmdShow )
{
STARTUPINFO StartUpInfo;
StartupInfo.wShowWindow = uCmdShow ;
PROCESS_INFORMATION ProcessInformation;
StartupInfo.cb = sizeof(STARTUPINFO);
StartupInfo.dwFlags = 0;
HINSTANCE hInst = CreateProcess(NULL,lpCmdLine,NULL,NULL,FALSE,NULL,NULL,NULL,&StartupInfo, &ProcessInformation);
if ( hInst == NULL ) {
dosErr = GetLastError();
if ( dosErr == 0x000000C1 )
return 0; // out of resources
else
return dosErr;
}
if ( lpfuncGlobalRegisterWaitForInputIdle != NULL )
lpfuncGlobalRegisterWaitForInputIdle(0x00007530,ProcessInformation->hProcess);
NtClose(ProcessInformation->hProcess);
NtClose(ProcessInformation->hThread);
return;
}
VOID RegisterWaitForInputIdle(lpfuncRegisterWaitForInputIdle)
{
lpfuncGlobalRegisterWaitForInputIdle = lpfuncRegisterWaitForInputIdle; //77F450C8
}
#define STARTF_IO 0x00000700
VOID
STDCALL
GetStartupInfoW(
LPSTARTUPINFO lpStartupInfo
)
{
NT_PEB *pPeb = GetTeb()->pPeb;
if (lpStartupInfo == NULL ) {
SetLastError(-1);
return;
}
lpStartupInfo->cb = pPeb->pPebInfo->cb;
lpStartupInfo->lpReserved = pPeb->pPebInfo->lpReserved1;
lpStartupInfo->lpDesktop = pPeb->pPebInfo->lpDesktop;
lpStartupInfo->lpTitle = pPeb->pPebInfo->lpTitle;
lpStartupInfo->dwX = pPeb->pPebInfo->dwX;
lpStartupInfo->dwY = pPeb->pPebInfo->dwY;
lpStartupInfo->dwXSize = pPeb->pPebInfo->dwXSize;
lpStartupInfo->dwYSize = pPeb->pPebInfo->dwYSize;
lpStartupInfo->dwXCountChars = pPeb->pPebInfo->dwXCountChars;
lpStartupInfo->dwYCountChars = pPeb->pPebInfo->dwYCountChars;
lpStartupInfo->dwFillAttribute = pPeb->pPebInfo->dwFillAttribute;
lpStartupInfo->dwFlags = pPeb->pPebInfo->dwFlags;
lpStartupInfo->wShowWindow = pPeb->pPebInfo->wShowWindow;
lpStartupInfo->cbReserved2 = pPeb->pPebInfo->cbReserved;
lpStartupInfo->lpReserved2 = pPeb->pPebInfo->lpReserved2;
if ( lpStartupInfo.dwFlags == STARTF_IO ) {
lpStartupInfo->hStdInput = pPeb->pPebInfo->hStdInput;
lpStartupInfo->hStdOutput = pPeb->pPebInfo->hStdOutput;
lpStartupInfo->hStdError = pPeb->pPebInfo->hStdError;
}
}
BOOL FlushInstructionCache(
HANDLE hProcess,
LPCVOID lpBaseAddress,
DWORD dwSize
)
{
errCode = NtFlushInstructionCache(hProcess,lpBaseAddress,dwSize);
if ( errCode < 0 ) {
CompatibleError(errCode);
return FALSE;
}
}

View File

@@ -1,123 +0,0 @@
#include <windows.h>
#include <string.h>
#include <wstring.h>
int
STDCALL
lstrcmpA(
LPCSTR lpString1,
LPCSTR lpString2
)
{
return strcmp(lpString1,lpString2);
}
int
STDCALL
lstrcmpiA(
LPCSTR lpString1,
LPCSTR lpString2
)
{
return stricmp(lpString1,lpString2);
}
LPSTR
STDCALL
lstrcpynA(
LPSTR lpString1,
LPCSTR lpString2,
int iMaxLength
)
{
return strncpy(lpString1,lpString2,iMaxLength);
}
LPSTR
STDCALL
lstrcpyA(
LPSTR lpString1,
LPCSTR lpString2
)
{
return strcpy(lpString1,lpString2);
}
LPSTR
STDCALL
lstrcatA(
LPSTR lpString1,
LPCSTR lpString2
)
{
return strcat(lpString1,lpString2);
}
int
STDCALL
lstrlenA(
LPCSTR lpString
)
{
return strlen(lpString);
}
int
STDCALL
lstrcmpW(
LPCWSTR lpString1,
LPCWSTR lpString2
)
{
return wcscmp(lpString1,lpString2);
}
int
STDCALL
lstrcmpiW(
LPCWSTR lpString1,
LPCWSTR lpString2
)
{
return wcsicmp(lpString1,lpString2);
}
LPWSTR
STDCALL
lstrcpynW(
LPWSTR lpString1,
LPCWSTR lpString2,
int iMaxLength
)
{
return wcsncpy(lpString1,lpString2,iMaxLength);
}
LPWSTR
STDCALL
lstrcpyW(
LPWSTR lpString1,
LPCWSTR lpString2
)
{
return wcscpy(lpString1,lpString2);
}
LPWSTR
STDCALL
lstrcatW(
LPWSTR lpString1,
LPCWSTR lpString2
)
{
return wcscat(lpString1,lpString2);
}
int
STDCALL
lstrlenW(
LPCWSTR lpString
)
{
return wcslen(lpString);
}

View File

@@ -1,83 +0,0 @@
/*
author: Boudewijn Dekker
original source : wine
todo: improve debug info
*/
#include <thread.h>
WINBASEAPI
BOOL
WINAPI
SwitchToThread(
VOID
)
{
return NtYieldExecution();
}
/* (WIN32) Thread Local Storage ******************************************** */
DWORD WINAPI
TlsAlloc(VOID)
{
DWORD dwTlsIndex = GetTeb()->dwTlsIndex;
void **TlsData = GetTeb()->TlsData;
APISTR((LF_API, "TlsAlloc: (API)\n"));
if (dwTlsIndex < sizeof(TlsData) / sizeof(TlsData[0]))
{
TlsData[dwTlsIndex] = NULL;
return (dwTlsIndex++);
}
return (0xFFFFFFFFUL);
}
BOOL WINAPI
TlsFree(DWORD dwTlsIndex)
{
APISTR((LF_APISTUB, "TlsFree(DWORD=%ld)\n", dwTlsIndex));
return (TRUE);
}
LPVOID WINAPI
TlsGetValue(DWORD dwTlsIndex)
{
DWORD dwTlsIndex = GetTeb()->dwTlsIndex;
void **TlsData = GetTeb()->TlsData;
APISTR((LF_API, "TlsGetValue: (API) dwTlsIndex %ld\n", dwTlsIndex));
if (dwTlsIndex < sizeof(TlsData) / sizeof(TlsData[0]))
{
LOGSTR((LF_LOG, "TlsGetValue: (LOG) [%ld] = %p\n",
dwTlsIndex, TlsData[dwTlsIndex]));
SetLastError(NO_ERROR);
return (TlsData[dwTlsIndex]);
}
SetLastErrorEx(1, 0);
return (NULL);
}
BOOL WINAPI
TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue)
{
DWORD dwTlsIndex = GetTeb()->dwTlsIndex;
void **TlsData = GetTeb()->TlsData;
APISTR((LF_API, "TlsSetValue: (API) dwTlsIndex %ld lpTlsValue %p\n",
dwTlsIndex, lpTlsValue));
if (dwTlsIndex < sizeof(TlsData) / sizeof(TlsData[0]))
{
LOGSTR((LF_LOG, "TlsSetValue: (LOG) [%ld] = %p\n",
dwTlsIndex, lpTlsValue));
TlsData[dwTlsIndex] = lpTlsValue;
return (TRUE);
}
return (FALSE);
}
/*************************************************************/

View File

@@ -1,12 +0,0 @@
LIBRARIES = ntdll kernel32
all: $(LIBRARIES)
ntdll: dummy
make -C ntdll
kernel32: dummy
make -C kernel32
dummy:

Binary file not shown.

View File

@@ -1,87 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS version of ntdll
* FILE: lib/ntdll/genntdll.c
* PURPOSE: Generates the system call stubs in ntdll
* PROGRAMMER: David Welch (welch@welch)
*/
/* INCLUDE ******************************************************************/
#include <stdio.h>
#include <stdlib.h>
/* FUNCTIONS ****************************************************************/
int process(FILE* in, FILE* out)
{
char line[255];
char* s;
char* name;
char* value;
fprintf(out,"/*\n");
fprintf(out," * Machine generated, don't edit\n");
fprintf(out," */\n\n");
fprintf(out,"#include <ntdll/napi.h>\n\n");
while (!feof(in) && fgets(line,255,in)!=NULL)
{
fgets(line,255,in);
if ((s=strchr(line,'\n'))!=NULL)
{
*s=0;
}
s=&line[0];
if ((*s)!='#')
{
name = strtok(s," \t");
value = strtok(NULL," \t");
printf("name %s value %s\n",name,value);
fprintf(out,"NTSTATUS %s(UCHAR first_arg)\n",name);
fprintf(out,"{\n");
fprintf(out,"\tMAKE_NTAPI_CALL(%s,first_arg);\n",value);
fprintf(out,"}\n");
}
}
}
void usage(void)
{
printf("Usage: genntdll infile.cll outfile.c\n");
}
int main(int argc, char* argv[])
{
FILE* in;
FILE* out;
int ret;
if (argc!=3)
{
usage();
return(1);
}
in = fopen(argv[1],"rb");
if (in==NULL)
{
perror("Failed to open input file");
return(1);
}
out = fopen(argv[2],"wb");
if (out==NULL)
{
perror("Failed to open output file");
return(1);
}
ret = process(in,out);
fclose(in);
fclose(out);
return(ret);
}

View File

@@ -1,7 +0,0 @@
all: genntdll$(EXE_POSTFIX)
genntdll$(EXE_POSTFIX): genntdll.c
$(NATIVE_CC) -g genntdll.c -o genntdll$(EXE_POSTFIX)
dummy:
include ../../rules.mak

View File

@@ -1,10 +0,0 @@
/*
* Machine generated, don't edit
*/
#include <ntdll/napi.h>
NTSTATUS NtAlertThread(UCHAR first_arg)
{
MAKE_NTAPI_CALL(4,first_arg);
}

View File

@@ -1,4 +0,0 @@
#
# This defines the kernel entry points used by ntdll
#
NtAlertThread 4

View File

@@ -1,22 +0,0 @@
.file "ntdll.c"
.version "01.01"
gcc2_compiled.:
.text
.align 16
.globl NtAlertThread
.type NtAlertThread,@function
NtAlertThread:
subl $4,%esp
movb 8(%esp),%al
movb %al,3(%esp)
leal 3(%esp),%edx
movl $4,%eax
#APP
int $0x2e
#NO_APP
addl $4,%esp
ret
.Lfe1:
.size NtAlertThread,.Lfe1-NtAlertThread
.ident "GCC: (GNU) 2.7.2.3"

View File

@@ -1,291 +0,0 @@
;
; File:
; boot.asm
; Description:
; DOS-C boot
;
; Copyright (c) 1997;
; Svante Frey
; All Rights Reserved
;
; This file is part of DOS-C.
;
; DOS-C 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, or (at your option) any later version.
;
; DOS-C 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 DOS-C; see the file COPYING. If not,
; write to the Free Software Foundation, 675 Mass Ave,
; Cambridge, MA 02139, USA.
;
; $Logfile: C:/dos-c/src/boot/boot.asv $
;
; $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/loaders/boot/Attic/boot.asm,v 1.1 1996/01/23 01:02:19 rosmgr Exp $
;
; $Log: boot.asm,v $
; Revision 1.1 1996/01/23 01:02:19 rosmgr
; Initial revision
;
;
; Rev 1.5 10 Jan 1997 4:58:06 patv
; Corrected copyright
;
; Rev 1.4 10 Jan 1997 4:52:50 patv
; Re-written to support C drive and eliminate restrictions on IPL.SYS
;
; Rev 1.3 29 Aug 1996 13:06:50 patv
; Bug fixes for v0.91b
;
; Rev 1.2 01 Sep 1995 17:56:44 patv
; First GPL release.
;
; Rev 1.1 30 Jul 1995 20:37:38 patv
; Initialized stack before use.
;
; Rev 1.0 02 Jul 1995 10:57:52 patv
; Initial revision.
;
section .text
org 0
Entry: jmp real_start
; bp is initialized to 7c00h
%define oem [bp+3]
%define bytesPerSector [bp+0bh]
%define sectPerCluster [bp+0dh]
%define resSectors [bp+0eh]
%define nFats [bp+10h]
%define nRootDir [bp+11h]
%define nSectors [bp+13h]
%define MID [bp+15h]
%define sectPerFat [bp+16h]
%define sectPerTrack [bp+18h]
%define nHeads [bp+1ah]
%define nHidden [bp+1ch]
%define nHidden_hi [bp+1eh]
%define nSectorHuge [bp+20h]
%define drive [bp+24h]
%define extBoot [bp+26h]
%define volid [bp+27h]
%define vollabel [bp+2bh]
%define filesys 36h
LOADSEG equ 2000h
FATBUF equ 4000h ; offset of temporary buffer for FAT
; chain
RETRYCOUNT equ 5 ; number of retries on disk errors
; Some extra variables that are created on the stack frame
%define fat_start [bp-4] ; first FAT sector
%define fat_start_hi [bp-2]
%define root_dir_start [bp-8] ; first root directory sector
%define root_dir_start_hi [bp-6]
%define data_start [bp-12] ; first data sector
%define data_start_hi [bp-10]
;
; Include macros for filesystem access
;
%include "boot.inc"
;
;
;
TIMES 3eh-($-$$) DB 0
%define tempbuf [bp+3eh]
load_seg dw LOADSEG
real_start: cli
cld
mov ax, cs
mov ss, ax ; initialize stack
mov bp, 7c00h
lea sp, [bp-20h]
sti
mov es, ax
mov ds, ax
mov drive, dl ; BIOS passes drive number in DL
GETDRIVEPARMS
FINDFILE ; locate file in root directory
jc boot_error ; fail if not found
GETFATCHAIN ; read FAT chain
LOADFILE ; load file (jumps to boot_sucess if successful)
boot_error: mov cx, ERRMSGLEN
mov si, errmsg+7c00h
next_char: lodsb ; print error message
mov ah, 0eh
xor bh, bh
int 10h
loop next_char
xor ah, ah
int 16h ; wait for keystroke
int 19h ; invoke bootstrap loader
boot_success: mov dl, drive
db 0eah ; far jump to LOADSEG:0000
dw 0
dw LOADSEG
; readDisk: Reads a number of sectors into memory.
;
; Call with: DX:AX = 32-bit DOS sector number
; DI = number of sectors to read
; ES:BX = destination buffer
; ES must be 64k aligned (1000h, 2000h etc).
;
; Returns: CF set on error
; ES:BX points one byte after the last byte read.
readDisk:
push si
read_next: push dx
push ax
;
; translate sector number to BIOS parameters
;
;
; abs = sector offset in track
; + head * sectPerTrack offset in cylinder
; + track * sectPerTrack * nHeads offset in platter
;
; t1 = abs / sectPerTrack (ax has t1)
; sector = abs mod sectPerTrack (cx has sector)
;
div word sectPerTrack
mov cx, dx
;
; t1 = head + track * nHeads
;
; track = t1 / nHeads (ax has track)
; head = t1 mod nHeads (dl has head)
;
xor dx, dx
div word nHeads
; the following manipulations are necessary in order to
; properly place parameters into registers.
; ch = cylinder number low 8 bits
; cl = 7-6: cylinder high two bits
; 5-0: sector
mov dh, dl ; save head into dh for bios
ror ah, 1 ; move track high bits into
ror ah, 1 ; bits 7-6 (assumes top = 0)
xchg al, ah ; swap for later
mov dl, byte sectPerTrack
sub dl, cl
inc cl ; sector offset from 1
or cx, ax ; merge cylinder into sector
mov al, dl ; al has # of sectors left
; Calculate how many sectors can be transfered in this read
; due to dma boundary conditions.
push dx
mov si, di ; temp register save
; this computes remaining bytes because of modulo 65536
; nature of dma boundary condition
mov ax, bx ; get offset pointer
neg ax ; and convert to bytes
jz ax_min_1 ; started at seg:0, skip ahead
xor dx, dx ; convert to sectors
div word bytesPerSector
cmp ax, di ; check remainder vs. asked
jb ax_min_1 ; less, skip ahead
mov si, ax ; transfer only what we can
ax_min_1: pop dx
; Check that request sectors do not exceed track boundary
mov si, sectPerTrack
inc si
mov ax, cx ; get the sector/cyl byte
and ax, 03fh ; and mask out sector
sub si, ax ; si has how many we can read
mov ax, di
cmp si, di ; see if asked <= available
jge ax_min_2
mov ax, si ; get what can be xfered
ax_min_2: mov si, RETRYCOUNT
mov ah, 2
mov dl, drive
retry: push ax
int 13h
pop ax
jnc read_ok
push ax
xor ax, ax ; reset the drive
int 13h
pop ax
dec si
jnz retry
stc
pop ax
pop dx
pop si
ret
read_next_jmp: jmp short read_next
read_ok: xor ah, ah
mov si, ax ; AX = SI = number of sectors read
mul word bytesPerSector ; AX = number of bytes read
add bx, ax ; add number of bytes read to BX
jnc no_incr_es ; if overflow...
mov ax, es
add ah, 10h ; ...add 1000h to ES
mov es, ax
no_incr_es: pop ax
pop dx ; DX:AX = last sector number
add ax, si
adc dx, 0 ; DX:AX = next sector to read
sub di, si ; if there is anything left to read,
jg read_next_jmp ; continue
clc
pop si
ret
errmsg db "Boot error"
ERRMSGLEN equ $ - errmsg
;filename db "OSLDR BIN"
filename db "KERNEL BIN"
TIMES 510-($-$$) DB 0
sign dw 0aa55h

Binary file not shown.

View File

@@ -1,196 +0,0 @@
; To save space, functions that are just called once are
; implemented as macros instead. Four bytes are saved by
; avoiding the call / ret instructions.
; FINDFILE: Searches for the file in the root directory.
;
; Returns:
;
; If file not found: CF set
;
; If file found: CF clear
; AX = first cluster of file
%macro FINDFILE 0
; First, read the whole root directory
; into the temporary buffer.
mov ax, word root_dir_start
mov dx, word root_dir_start_hi
mov di, nRootDir
xor bx, bx
mov es, tempbuf
call readDisk
jc ffDone
xor di, di
next_entry: mov cx, 11
mov si, filename+7c00h
push di
repe cmpsb
pop di
mov ax, [es:di+1ah] ; get cluster number from directory entry
clc
je ffDone
add di, 20h ; go to next directory entry
cmp byte [es:di], 0 ; if the first byte of the name is 0,
jnz next_entry ; there is no more files in the directory
stc
ffDone:
%endmacro
; GETDRIVEPARMS: Calculate start of some disk areas.
%macro GETDRIVEPARMS 0
mov si, word nHidden
mov di, word nHidden_hi
add si, word resSectors
adc di, 0 ; DI:SI = first FAT sector
mov word fat_start, si
mov word fat_start_hi, di
mov al, nFats
xor ah, ah
mul word sectPerFat ; DX:AX = total number of FAT sectors
add si, ax
adc di, dx ; DI:SI = first root directory sector
mov word root_dir_start, si
mov word root_dir_start_hi, di
; Calculate how many sectors the root directory occupies.
mov bx, bytesPerSector
mov cl, 5 ; divide BX by 32
shr bx, cl ; BX = directory entries per sector
mov ax, nRootDir
xor dx, dx
div bx
mov nRootDir, ax ; AX = sectors per root directory
add si, ax
adc di, 0 ; DI:SI = first data sector
mov data_start, si
mov data_start_hi, di
%endmacro
; GETFATCHAIN:
;
; Reads the FAT chain and stores it in a temporary buffer in the first
; 64 kb. The FAT chain is stored an array of 16-bit cluster numbers,
; ending with 0.
;
; The file must fit in conventional memory, so it can't be larger than
; 640 kb. The sector size must be at least 512 bytes, so the FAT chain
; can't be larger than around 3 kb.
;
; Call with: AX = first cluster in chain
;
; Returns: CF clear on success, set on error
%macro GETFATCHAIN 0
push ax ; store first cluster number
; Load the complete FAT into memory. The FAT can't be larger
; than 128 kb, so it should fit in the temporary buffer.
mov es, tempbuf
xor bx, bx
mov di, sectPerFat
mov ax, word fat_start
mov dx, word fat_start_hi
call readDisk
pop ax ; restore first cluster number
jc boot_error
; Set ES:DI to the temporary storage for the FAT chain.
push ds
push es
pop ds
pop es
mov di, FATBUF
next_clust: stosw ; store cluster number
mov si, ax ; SI = cluster number
cmp byte extBoot, 29h
jne fat_12
cmp byte [bp+filesys+4], '6' ; check for FAT-16 system
je fat_16
; This is a FAT-12 disk.
fat_12: add si, si ; multiply cluster number by 3...
add si, ax
shr si, 1 ; ...and divide by 2
lodsw
; If the cluster number was even, the cluster value is now in
; bits 0-11 of AX. If the cluster number was odd, the cluster
; value is in bits 4-15, and must be shifted right 4 bits. If
; the number was odd, CF was set in the last shift instruction.
jnc fat_even
mov cl, 4
shr ax, cl ; shift the cluster number
fat_even: and ah, 0fh ; mask off the highest 4 bits
cmp ax, 0fffh ; check for EOF
jmp short next_test
; This is a FAT-16 disk. The maximal size of a 16-bit FAT
; is 128 kb, so it may not fit within a single 64 kb segment.
fat_16: mov dx, tempbuf
add si, si ; multiply cluster number by two
jnc first_half ; if overflow...
add dh, 10h ; ...add 64 kb to segment value
first_half: mov ds, dx ; DS:SI = pointer to next cluster
lodsw ; AX = next cluster
cmp ax, 0fff8h ; >= FFF8 = 16-bit EOF
next_test: jb next_clust ; continue if not EOF
finished: ; Mark end of FAT chain with 0, so we have a single
; EOF marker for both FAT-12 and FAT-16 systems.
xor ax, ax
stosw
fatError:
%endmacro
; loadFile: Loads the file into memory, one cluster at a time.
%macro LOADFILE 0
mov es, tempbuf ; set ES:BX to load address
xor bx, bx
mov si, FATBUF ; set DS:SI to the FAT chain
push cs
pop ds
next_cluster: lodsw ; AX = next cluster to read
or ax, ax ; if EOF...
je boot_success ; ...boot was successful
dec ax ; cluster numbers start with 2
dec ax
mov di, word sectPerCluster
and di, 0ffh ; DI = sectors per cluster
mul di
add ax, data_start
adc dx, data_start_hi ; DX:AX = first sector to read
call readDisk
jnc next_cluster
%endmacro

View File

@@ -1,640 +0,0 @@
1 ;
2 ; File:
3 ; boot.asm
4 ; Description:
5 ; DOS-C boot
6 ;
7 ; Copyright (c) 1997;
8 ; Svante Frey
9 ; All Rights Reserved
10 ;
11 ; This file is part of DOS-C.
12 ;
13 ; DOS-C is free software; you can redistribute it and/or
14 ; modify it under the terms of the GNU General Public License
15 ; as published by the Free Software Foundation; either version
16 ; 2, or (at your option) any later version.
17 ;
18 ; DOS-C is distributed in the hope that it will be useful, but
19 ; WITHOUT ANY WARRANTY; without even the implied warranty of
20 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
21 ; the GNU General Public License for more details.
22 ;
23 ; You should have received a copy of the GNU General Public
24 ; License along with DOS-C; see the file COPYING. If not,
25 ; write to the Free Software Foundation, 675 Mass Ave,
26 ; Cambridge, MA 02139, USA.
27 ;
28 ; $Logfile: C:/dos-c/src/boot/boot.asv $
29 ;
30 ; $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/loaders/boot/Attic/boot.lst,v 1.1 1996/01/23 01:02:19 rosmgr Exp $
31 ;
32 ; $Log: boot.lst,v $
32 ; Revision 1.1 1996/01/23 01:02:19 rosmgr
32 ; Initial revision
32 ;
33 ;
34 ; Rev 1.5 10 Jan 1997 4:58:06 patv
35 ; Corrected copyright
36 ;
37 ; Rev 1.4 10 Jan 1997 4:52:50 patv
38 ; Re-written to support C drive and eliminate restrictions on IPL.SYS
39 ;
40 ; Rev 1.3 29 Aug 1996 13:06:50 patv
41 ; Bug fixes for v0.91b
42 ;
43 ; Rev 1.2 01 Sep 1995 17:56:44 patv
44 ; First GPL release.
45 ;
46 ; Rev 1.1 30 Jul 1995 20:37:38 patv
47 ; Initialized stack before use.
48 ;
49 ; Rev 1.0 02 Jul 1995 10:57:52 patv
50 ; Initial revision.
51 ;
52
53 section .text
54
55 org 0
56 00000000 E93D00 Entry: jmp real_start
57
58 ; bp is initialized to 7c00h
59 %define oem [bp+3]
60 %define bytesPerSector [bp+0bh]
61 %define sectPerCluster [bp+0dh]
62 %define resSectors [bp+0eh]
63 %define nFats [bp+10h]
64 %define nRootDir [bp+11h]
65 %define nSectors [bp+13h]
66 %define MID [bp+15h]
67 %define sectPerFat [bp+16h]
68 %define sectPerTrack [bp+18h]
69 %define nHeads [bp+1ah]
70 %define nHidden [bp+1ch]
71 %define nHidden_hi [bp+1eh]
72 %define nSectorHuge [bp+20h]
73 %define drive [bp+24h]
74 %define extBoot [bp+26h]
75 %define volid [bp+27h]
76 %define vollabel [bp+2bh]
77 %define filesys 36h
78
79 LOADSEG equ 2000h
80
81 FATBUF equ 4000h ; offset of temporary buffer for FAT
82 ; chain
83 RETRYCOUNT equ 5 ; number of retries on disk errors
84
85 ; Some extra variables that are created on the stack frame
86
87 %define fat_start [bp-4] ; first FAT sector
88 %define fat_start_hi [bp-2]
89 %define root_dir_start [bp-8] ; first root directory sector
90 %define root_dir_start_hi [bp-6]
91 %define data_start [bp-12] ; first data sector
92 %define data_start_hi [bp-10]
93
94 ;
95 ; Include macros for filesystem access
96 ;
97 %include "boot.inc"
98 <1> ; To save space, functions that are just called once are
99 <1> ; implemented as macros instead. Four bytes are saved by
100 <1> ; avoiding the call / ret instructions.
101 <1>
102 <1>
103 <1> ; FINDFILE: Searches for the file in the root directory.
104 <1> ;
105 <1> ; Returns:
106 <1> ;
107 <1> ; If file not found: CF set
108 <1> ;
109 <1> ; If file found: CF clear
110 <1> ; AX = first cluster of file
111 <1>
112 <1>
113 <1> %macro FINDFILE 0
114 <1> ; First, read the whole root directory
115 <1> ; into the temporary buffer.
116 <1>
117 <1> mov ax, word root_dir_start
118 <1> mov dx, word root_dir_start_hi
119 <1> mov di, nRootDir
120 <1> xor bx, bx
121 <1> mov es, tempbuf
122 <1> call readDisk
123 <1> jc ffDone
124 <1>
125 <1> xor di, di
126 <1>
127 <1> next_entry: mov cx, 11
128 <1> mov si, filename+7c00h
129 <1> push di
130 <1> repe cmpsb
131 <1> pop di
132 <1> mov ax, [es:di+1ah] ; get cluster number from directory entry
133 <1> clc
134 <1> je ffDone
135 <1>
136 <1> add di, 20h ; go to next directory entry
137 <1> cmp byte [es:di], 0 ; if the first byte of the name is 0,
138 <1> jnz next_entry ; there is no more files in the directory
139 <1>
140 <1> stc
141 <1> ffDone:
142 <1> %endmacro
143 <1>
144 <1> ; GETDRIVEPARMS: Calculate start of some disk areas.
145 <1>
146 <1> %macro GETDRIVEPARMS 0
147 <1> mov si, word nHidden
148 <1> mov di, word nHidden_hi
149 <1> add si, word resSectors
150 <1> adc di, 0 ; DI:SI = first FAT sector
151 <1>
152 <1> mov word fat_start, si
153 <1> mov word fat_start_hi, di
154 <1>
155 <1> mov al, nFats
156 <1> xor ah, ah
157 <1> mul word sectPerFat ; DX:AX = total number of FAT sectors
158 <1>
159 <1> add si, ax
160 <1> adc di, dx ; DI:SI = first root directory sector
161 <1> mov word root_dir_start, si
162 <1> mov word root_dir_start_hi, di
163 <1>
164 <1> ; Calculate how many sectors the root directory occupies.
165 <1> mov bx, bytesPerSector
166 <1> mov cl, 5 ; divide BX by 32
167 <1> shr bx, cl ; BX = directory entries per sector
168 <1>
169 <1> mov ax, nRootDir
170 <1> xor dx, dx
171 <1> div bx
172 <1>
173 <1> mov nRootDir, ax ; AX = sectors per root directory
174 <1>
175 <1> add si, ax
176 <1> adc di, 0 ; DI:SI = first data sector
177 <1>
178 <1> mov data_start, si
179 <1> mov data_start_hi, di
180 <1> %endmacro
181 <1>
182 <1> ; GETFATCHAIN:
183 <1> ;
184 <1> ; Reads the FAT chain and stores it in a temporary buffer in the first
185 <1> ; 64 kb. The FAT chain is stored an array of 16-bit cluster numbers,
186 <1> ; ending with 0.
187 <1> ;
188 <1> ; The file must fit in conventional memory, so it can't be larger than
189 <1> ; 640 kb. The sector size must be at least 512 bytes, so the FAT chain
190 <1> ; can't be larger than around 3 kb.
191 <1> ;
192 <1> ; Call with: AX = first cluster in chain
193 <1> ;
194 <1> ; Returns: CF clear on success, set on error
195 <1>
196 <1> %macro GETFATCHAIN 0
197 <1> push ax ; store first cluster number
198 <1>
199 <1> ; Load the complete FAT into memory. The FAT can't be larger
200 <1> ; than 128 kb, so it should fit in the temporary buffer.
201 <1>
202 <1> mov es, tempbuf
203 <1> xor bx, bx
204 <1> mov di, sectPerFat
205 <1> mov ax, word fat_start
206 <1> mov dx, word fat_start_hi
207 <1> call readDisk
208 <1> pop ax ; restore first cluster number
209 <1> jc boot_error
210 <1>
211 <1> ; Set ES:DI to the temporary storage for the FAT chain.
212 <1> push ds
213 <1> push es
214 <1> pop ds
215 <1> pop es
216 <1> mov di, FATBUF
217 <1>
218 <1> next_clust: stosw ; store cluster number
219 <1> mov si, ax ; SI = cluster number
220 <1> cmp byte extBoot, 29h
221 <1> jne fat_12
222 <1> cmp byte [bp+filesys+4], '6' ; check for FAT-16 system
223 <1> je fat_16
224 <1>
225 <1> ; This is a FAT-12 disk.
226 <1>
227 <1> fat_12: add si, si ; multiply cluster number by 3...
228 <1> add si, ax
229 <1> shr si, 1 ; ...and divide by 2
230 <1> lodsw
231 <1>
232 <1> ; If the cluster number was even, the cluster value is now in
233 <1> ; bits 0-11 of AX. If the cluster number was odd, the cluster
234 <1> ; value is in bits 4-15, and must be shifted right 4 bits. If
235 <1> ; the number was odd, CF was set in the last shift instruction.
236 <1>
237 <1> jnc fat_even
238 <1> mov cl, 4
239 <1> shr ax, cl ; shift the cluster number
240 <1>
241 <1> fat_even: and ah, 0fh ; mask off the highest 4 bits
242 <1> cmp ax, 0fffh ; check for EOF
243 <1> jmp short next_test
244 <1>
245 <1> ; This is a FAT-16 disk. The maximal size of a 16-bit FAT
246 <1> ; is 128 kb, so it may not fit within a single 64 kb segment.
247 <1>
248 <1> fat_16: mov dx, tempbuf
249 <1> add si, si ; multiply cluster number by two
250 <1> jnc first_half ; if overflow...
251 <1> add dh, 10h ; ...add 64 kb to segment value
252 <1>
253 <1> first_half: mov ds, dx ; DS:SI = pointer to next cluster
254 <1> lodsw ; AX = next cluster
255 <1>
256 <1> cmp ax, 0fff8h ; >= FFF8 = 16-bit EOF
257 <1> next_test: jb next_clust ; continue if not EOF
258 <1>
259 <1> finished: ; Mark end of FAT chain with 0, so we have a single
260 <1> ; EOF marker for both FAT-12 and FAT-16 systems.
261 <1>
262 <1> xor ax, ax
263 <1> stosw
264 <1> fatError:
265 <1> %endmacro
266 <1>
267 <1>
268 <1> ; loadFile: Loads the file into memory, one cluster at a time.
269 <1>
270 <1> %macro LOADFILE 0
271 <1> mov es, tempbuf ; set ES:BX to load address
272 <1> xor bx, bx
273 <1>
274 <1> mov si, FATBUF ; set DS:SI to the FAT chain
275 <1> push cs
276 <1> pop ds
277 <1>
278 <1> next_cluster: lodsw ; AX = next cluster to read
279 <1> or ax, ax ; if EOF...
280 <1> je boot_success ; ...boot was successful
281 <1>
282 <1> dec ax ; cluster numbers start with 2
283 <1> dec ax
284 <1>
285 <1> mov di, word sectPerCluster
286 <1> and di, 0ffh ; DI = sectors per cluster
287 <1> mul di
288 <1> add ax, data_start
289 <1> adc dx, data_start_hi ; DX:AX = first sector to read
290 <1> call readDisk
291 <1> jnc next_cluster
292 <1>
293 <1> %endmacro
294
295 ;
296 ;
297 ;
298 00000003 00<rept> TIMES 3eh-($-$$) DB 0
299
300 %define tempbuf [bp+3eh]
301 0000003E 0020 load_seg dw LOADSEG
302
303 00000040 FA real_start: cli
304 00000041 FC cld
305 00000042 8CC8 mov ax, cs
306 00000044 8ED0 mov ss, ax ; initialize stack
307 00000046 BD007C mov bp, 7c00h
308 00000049 8D66E0 lea sp, [bp-20h]
309 0000004C FB sti
310
311 0000004D 8EC0 mov es, ax
312 0000004F 8ED8 mov ds, ax
313 00000051 885624 mov drive, dl ; BIOS passes drive number in DL
314
315 GETDRIVEPARMS
316 00000054 8B761C <1> mov si, word nHidden
317 00000057 8B7E1E <1> mov di, word nHidden_hi
318 0000005A 03760E <1> add si, word resSectors
319 0000005D 81D70000 <1> adc di, 0
320 <1>
321 00000061 8976FC <1> mov word fat_start, si
322 00000064 897EFE <1> mov word fat_start_hi, di
323 <1>
324 00000067 8A4610 <1> mov al, nFats
325 0000006A 30E4 <1> xor ah, ah
326 0000006C F76616 <1> mul word sectPerFat
327 <1>
328 0000006F 01C6 <1> add si, ax
329 00000071 11D7 <1> adc di, dx
330 00000073 8976F8 <1> mov word root_dir_start, si
331 00000076 897EFA <1> mov word root_dir_start_hi, di
332 <1>
333 <1>
334 00000079 8B5E0B <1> mov bx, bytesPerSector
335 0000007C B105 <1> mov cl, 5
336 0000007E D3EB <1> shr bx, cl
337 <1>
338 00000080 8B4611 <1> mov ax, nRootDir
339 00000083 31D2 <1> xor dx, dx
340 00000085 F7F3 <1> div bx
341 <1>
342 00000087 894611 <1> mov nRootDir, ax
343 <1>
344 0000008A 01C6 <1> add si, ax
345 0000008C 81D70000 <1> adc di, 0
346 <1>
347 00000090 8976F4 <1> mov data_start, si
348 00000093 897EF6 <1> mov data_start_hi, di
349
350 FINDFILE ; locate file in root directory
351 <1>
352 <1>
353 <1>
354 00000096 8B46F8 <1> mov ax, word root_dir_start
355 00000099 8B56FA <1> mov dx, word root_dir_start_hi
356 0000009C 8B7E11 <1> mov di, nRootDir
357 0000009F 31DB <1> xor bx, bx
358 000000A1 8E463E <1> mov es, tempbuf
359 000000A4 E8B900 <1> call readDisk
360 000000A7 721E <1> jc ffDone
361 <1>
362 000000A9 31FF <1> xor di, di
363 <1>
364 000000AB B90B00 <1> next_entry: mov cx, 11
365 000000AE BE[F17D] <1> mov si, filename+7c00h
366 000000B1 57 <1> push di
367 000000B2 F3A6 <1> repe cmpsb
368 000000B4 5F <1> pop di
369 000000B5 268B451A <1> mov ax, [es:di+1ah]
370 000000B9 F8 <1> clc
371 000000BA 740B <1> je ffDone
372 <1>
373 000000BC 81C72000 <1> add di, 20h
374 000000C0 26803D00 <1> cmp byte [es:di], 0
375 000000C4 75E5 <1> jnz next_entry
376 <1>
377 000000C6 F9 <1> stc
378 <1> ffDone:
379 000000C7 727A jc boot_error ; fail if not found
380
381 GETFATCHAIN ; read FAT chain
382 000000C9 50 <1> push ax
383 <1>
384 <1>
385 <1>
386 <1>
387 000000CA 8E463E <1> mov es, tempbuf
388 000000CD 31DB <1> xor bx, bx
389 000000CF 8B7E16 <1> mov di, sectPerFat
390 000000D2 8B46FC <1> mov ax, word fat_start
391 000000D5 8B56FE <1> mov dx, word fat_start_hi
392 000000D8 E88500 <1> call readDisk
393 000000DB 58 <1> pop ax
394 000000DC 7265 <1> jc boot_error
395 <1>
396 <1>
397 000000DE 1E <1> push ds
398 000000DF 06 <1> push es
399 000000E0 1F <1> pop ds
400 000000E1 07 <1> pop es
401 000000E2 BF0040 <1> mov di, FATBUF
402 <1>
403 000000E5 AB <1> next_clust: stosw
404 000000E6 89C6 <1> mov si, ax
405 000000E8 807E2629 <1> cmp byte extBoot, 29h
406 000000EC 7506 <1> jne fat_12
407 000000EE 807E3A36 <1> cmp byte [bp+filesys+4], '6'
408 000000F2 7415 <1> je fat_16
409 <1>
410 <1>
411 <1>
412 000000F4 01F6 <1> fat_12: add si, si
413 000000F6 01C6 <1> add si, ax
414 000000F8 D1EE <1> shr si, 1
415 000000FA AD <1> lodsw
416 <1>
417 <1>
418 <1>
419 <1>
420 <1>
421 <1>
422 000000FB 7304 <1> jnc fat_even
423 000000FD B104 <1> mov cl, 4
424 000000FF D3E8 <1> shr ax, cl
425 <1>
426 00000101 80E40F <1> fat_even: and ah, 0fh
427 00000104 3DFF0F <1> cmp ax, 0fffh
428 00000107 EB10 <1> jmp short next_test
429 <1>
430 <1>
431 <1>
432 <1>
433 00000109 8B563E <1> fat_16: mov dx, tempbuf
434 0000010C 01F6 <1> add si, si
435 0000010E 7303 <1> jnc first_half
436 00000110 80C610 <1> add dh, 10h
437 <1>
438 00000113 8EDA <1> first_half: mov ds, dx
439 00000115 AD <1> lodsw
440 <1>
441 00000116 3DF8FF <1> cmp ax, 0fff8h
442 00000119 72CA <1> next_test: jb next_clust
443 <1>
444 <1> finished:
445 <1>
446 <1>
447 0000011B 31C0 <1> xor ax, ax
448 0000011D AB <1> stosw
449 <1> fatError:
450 LOADFILE ; load file (jumps to boot_sucess if successful)
451 0000011E 8E463E <1> mov es, tempbuf
452 00000121 31DB <1> xor bx, bx
453 <1>
454 00000123 BE0040 <1> mov si, FATBUF
455 00000126 0E <1> push cs
456 00000127 1F <1> pop ds
457 <1>
458 00000128 AD <1> next_cluster: lodsw
459 00000129 09C0 <1> or ax, ax
460 0000012B 742B <1> je boot_success
461 <1>
462 0000012D 48 <1> dec ax
463 0000012E 48 <1> dec ax
464 <1>
465 0000012F 8B7E0D <1> mov di, word sectPerCluster
466 00000132 81E7FF00 <1> and di, 0ffh
467 00000136 F7E7 <1> mul di
468 00000138 0346F4 <1> add ax, data_start
469 0000013B 1356F6 <1> adc dx, data_start_hi
470 0000013E E81F00 <1> call readDisk
471 00000141 73E5 <1> jnc next_cluster
472 <1>
473
474 00000143 B90A00 boot_error: mov cx, ERRMSGLEN
475 00000146 BE[E77D] mov si, errmsg+7c00h
476
477 00000149 AC next_char: lodsb ; print error message
478 0000014A B40E mov ah, 0eh
479 0000014C 30FF xor bh, bh
480 0000014E CD10 int 10h
481 00000150 E2F7 loop next_char
482
483 00000152 30E4 xor ah, ah
484 00000154 CD16 int 16h ; wait for keystroke
485 00000156 CD19 int 19h ; invoke bootstrap loader
486
487 00000158 8A5624 boot_success: mov dl, drive
488
489 0000015B EA db 0eah ; far jump to LOADSEG:0000
490 0000015C 0000 dw 0
491 0000015E 0020 dw LOADSEG
492
493
494 ; readDisk: Reads a number of sectors into memory.
495 ;
496 ; Call with: DX:AX = 32-bit DOS sector number
497 ; DI = number of sectors to read
498 ; ES:BX = destination buffer
499 ; ES must be 64k aligned (1000h, 2000h etc).
500 ;
501 ; Returns: CF set on error
502 ; ES:BX points one byte after the last byte read.
503
504 readDisk:
505 00000160 56 push si
506 00000161 52 read_next: push dx
507 00000162 50 push ax
508
509 ;
510 ; translate sector number to BIOS parameters
511 ;
512
513 ;
514 ; abs = sector offset in track
515 ; + head * sectPerTrack offset in cylinder
516 ; + track * sectPerTrack * nHeads offset in platter
517 ;
518 ; t1 = abs / sectPerTrack (ax has t1)
519 ; sector = abs mod sectPerTrack (cx has sector)
520 ;
521 00000163 F77618 div word sectPerTrack
522 00000166 89D1 mov cx, dx
523
524 ;
525 ; t1 = head + track * nHeads
526 ;
527 ; track = t1 / nHeads (ax has track)
528 ; head = t1 mod nHeads (dl has head)
529 ;
530 00000168 31D2 xor dx, dx
531 0000016A F7761A div word nHeads
532
533 ; the following manipulations are necessary in order to
534 ; properly place parameters into registers.
535 ; ch = cylinder number low 8 bits
536 ; cl = 7-6: cylinder high two bits
537 ; 5-0: sector
538 0000016D 88D6 mov dh, dl ; save head into dh for bios
539 0000016F D0CC ror ah, 1 ; move track high bits into
540 00000171 D0CC ror ah, 1 ; bits 7-6 (assumes top = 0)
541 00000173 86C4 xchg al, ah ; swap for later
542 00000175 8A5618 mov dl, byte sectPerTrack
543 00000178 28CA sub dl, cl
544 0000017A FEC1 inc cl ; sector offset from 1
545 0000017C 09C1 or cx, ax ; merge cylinder into sector
546 0000017E 88D0 mov al, dl ; al has # of sectors left
547
548 ; Calculate how many sectors can be transfered in this read
549 ; due to dma boundary conditions.
550 00000180 52 push dx
551
552 00000181 89FE mov si, di ; temp register save
553 ; this computes remaining bytes because of modulo 65536
554 ; nature of dma boundary condition
555 00000183 89D8 mov ax, bx ; get offset pointer
556 00000185 F7D8 neg ax ; and convert to bytes
557 00000187 740B jz ax_min_1 ; started at seg:0, skip ahead
558
559 00000189 31D2 xor dx, dx ; convert to sectors
560 0000018B F7760B div word bytesPerSector
561
562 0000018E 39F8 cmp ax, di ; check remainder vs. asked
563 00000190 7202 jb ax_min_1 ; less, skip ahead
564 00000192 89C6 mov si, ax ; transfer only what we can
565
566 00000194 5A ax_min_1: pop dx
567
568 ; Check that request sectors do not exceed track boundary
569 00000195 8B7618 mov si, sectPerTrack
570 00000198 46 inc si
571 00000199 89C8 mov ax, cx ; get the sector/cyl byte
572 0000019B 253F00 and ax, 03fh ; and mask out sector
573 0000019E 29C6 sub si, ax ; si has how many we can read
574 000001A0 89F8 mov ax, di
575 000001A2 39FE cmp si, di ; see if asked <= available
576 000001A4 7D02 jge ax_min_2
577 000001A6 89F0 mov ax, si ; get what can be xfered
578
579 000001A8 BE0500 ax_min_2: mov si, RETRYCOUNT
580 000001AB B402 mov ah, 2
581 000001AD 8A5624 mov dl, drive
582
583 000001B0 50 retry: push ax
584 000001B1 CD13 int 13h
585 000001B3 58 pop ax
586 000001B4 7310 jnc read_ok
587 000001B6 50 push ax
588 000001B7 31C0 xor ax, ax ; reset the drive
589 000001B9 CD13 int 13h
590 000001BB 58 pop ax
591 000001BC 4E dec si
592 000001BD 75F1 jnz retry
593 000001BF F9 stc
594 000001C0 58 pop ax
595 000001C1 5A pop dx
596 000001C2 5E pop si
597 000001C3 C3 ret
598
599 000001C4 EB9B read_next_jmp: jmp short read_next
600 000001C6 30E4 read_ok: xor ah, ah
601 000001C8 89C6 mov si, ax ; AX = SI = number of sectors read
602 000001CA F7660B mul word bytesPerSector ; AX = number of bytes read
603 000001CD 01C3 add bx, ax ; add number of bytes read to BX
604 000001CF 7307 jnc no_incr_es ; if overflow...
605
606 000001D1 8CC0 mov ax, es
607 000001D3 80C410 add ah, 10h ; ...add 1000h to ES
608 000001D6 8EC0 mov es, ax
609
610 000001D8 58 no_incr_es: pop ax
611 000001D9 5A pop dx ; DX:AX = last sector number
612
613 000001DA 01F0 add ax, si
614 000001DC 81D20000 adc dx, 0 ; DX:AX = next sector to read
615 000001E0 29F7 sub di, si ; if there is anything left to read,
616 000001E2 7FE0 jg read_next_jmp ; continue
617
618 000001E4 F8 clc
619 000001E5 5E pop si
620 000001E6 C3 ret
621
622 000001E7 426F6F74206572726F- errmsg db "Boot error"
623 000001F0 72
624 ERRMSGLEN equ $ - errmsg
625
626
627 ;filename db "OSLDR BIN"
628 000001F1 4B45524E454C202042- filename db "KERNEL BIN"
629 000001FA 494E
630
631 000001FC 00<rept> TIMES 510-($-$$) DB 0
632 000001FE 55AA sign dw 0aa55h
633
634
635
636
637

View File

@@ -1,56 +0,0 @@
#
# makefile for DOS-C boot
#
# $Header: /cygdrive/c/RCVS/CVS/ReactOS/reactos/loaders/boot/Attic/boot.mak,v 1.1 1996/01/23 01:02:19 rosmgr Exp $
#
# $Log: boot.mak,v $
# Revision 1.1 1996/01/23 01:02:19 rosmgr
# Initial revision
#
#
# Rev 1.3 10 Jan 1997 4:51:54 patv
#Changed to use FreeDOS exe2bin and support new boot code
#
# Rev 1.2 17 Dec 1996 12:52:32 patv
#Converted to FreeDOS exe2bin.
#.
#d
#
# Rev 1.1 29 Aug 1996 13:06:50 patv
#Bug fixes for v0.91b
#
# Rev 1.0 02 Jul 1995 9:11:26 patv
#Initial revision.
#
#
# Uncomment the following for a debug version
#
#AFLAGS = /zi /DDEBUG
#LFLAGS = /v
PRODUCT = boot.bin
all: $(PRODUCT)
production: all
copy boot.bin ..\..\dist\boot.bin
del *.bin
del *.map
boot.bin: boot.asm
tasm $(AFLAGS) boot,,
tlink $(LFLAGS) boot
..\utils\exe2bin boot boot.bin
del boot.obj
del boot.exe
clean:
del *.lst
del *.map
del *.bin
del *.bak
del *.las
del *.obj
del *.exe


View File

@@ -1,8 +0,0 @@
Start Stop Length Name Class
00000H 001FFH 00200H TEXT TEXT
Program entry point at 0000:0000
Warning: No stack

Some files were not shown because too many files have changed in this diff Show More