Commit Graph
87 Commits
Author SHA1 Message Date
Gé van Geldorp d3275bbd8b Get rid of .edf files
svn path=/trunk/; revision=10871
2004-09-16 10:25:18 +00:00
Filip Navara 3639da0250 - Use __KeStallExecutionProcessor instead of plain loop in HalCalibratePerformanceCounter since __KeStallExecutionProcessor is safe even for optimized builds.
svn path=/trunk/; revision=10361
2004-08-02 15:09:22 +00:00
Filip Navara 6e64d6266e - Implementation of HalReadDmaCounter.
- Cleaned up implementation of HalGetAdapter. Moved the initialization
  stuff from there to HalpInitDma that is called by HalInitSystem.
- Let HalAllocateCommonBuffer allocated 64K aligned memory.
- Change IoMapTransfer to support auto initialize and single transfer mode,
  16-bit DMA and common buffers.
- Stop DMA transfer in IoFlushAdapterBuffers.

svn path=/trunk/; revision=10254
2004-07-22 18:49:18 +00:00
Hartmut Birr f8db6a5d2a - Replaced all single pushf/popf inline assembler instructions with a macro
which doesn't change the stack layout.

svn path=/trunk/; revision=10236
2004-07-20 21:25:36 +00:00
Gero Kuehn 7933210d3c copied HalRequestSoftwareInterrupt from uniproc irql.c to fix SMP builds
svn path=/trunk/; revision=10071
2004-07-10 21:58:35 +00:00
Hartmut Birr bdd1e9e8c6 - Fixed the implementation of MmMapIoSpace.
svn path=/trunk/; revision=9409
2004-05-15 22:45:51 +00:00
Gé van Geldorp a2c82e3283 Avoid collision with compiler generated label
svn path=/trunk/; revision=9342
2004-05-10 11:13:15 +00:00
Filip Navara ed9f67afe7 - Initialize the serial port to reasonable state after the detection. (Needed by Virtual PC)
svn path=/trunk/; revision=9244
2004-04-29 17:06:21 +00:00
David Welch 5ab4f36e65 - Fixed crash on reboot. Sorry.
svn path=/trunk/; revision=8784
2004-03-18 19:58:35 +00:00
David Welch 3db0cc5595 - Map only the vga frame buffer for the hal to write debug messages
and map it higher up in the kernel address space so more space is available
for the nonpaged and paged pools.

svn path=/trunk/; revision=8769
2004-03-16 22:45:56 +00:00
Casper Hornstrup cc3221be2c 2004-02-22 Casper S. Hornstrup <[email protected]>
* config (REGRESSIONTESTS): Add.
	* rules.mak (REGTESTS_PATH_INC): Add.
	* drivers/net/tcpip/makefile: Support regression tests.
	* drivers/net/tcpip/tcpip/main.c: Prepare regression tests.
	* hal/halx86/Makefile: Rename TARGET_LIBPATH to TARGET_IMPLIBPATH.
	* regtests/kmregtests/driver.c (KMRegTestsRegister): Add.
	(KMRegTestsRun): Move call to InitializeTests() and RegisterTests() to
	DriverEntry().
	(KMRegTestsDispatch): Support IOCTL_KMREGTESTS_REGISTER.
	* regtests/kmregtests/kmregtests.h (IOCTL_KMREGTESTS_REGISTER): Define.
	* tools/config.mk: Define REGTESTS if REGRESSIONTESTS = 1.
	* tools/helper.mk: Support module private regression tests.
	(TARGET_LIBPATH): Rename to TARGET_IMPLIBPATH.
	(TARGET_LIBPATH, TARGET_REGTESTS): Add.
	* tools/mkconfig.c: Support REGTESTS.
	* tools/regtests.c (umstubfile, kmstubfile): Add.
	(is_file_changed, write_file_if_changed): Add.
	(KMSTUB): Add.
	(HELP): Mention -u and -k switches.
	(main): Parse -u and -k switches.
	* drivers/net/tcpip/tests: New directory.
	* drivers/net/tcpip/tests/.cvsignore: New file.
	* drivers/net/tcpip/tests/Makefile: Makefile.
	* drivers/net/tcpip/tests/tests: New directory.
	* drivers/net/tcpip/tests/tests/.cvsignore: New file.

svn path=/trunk/; revision=8298
2004-02-22 09:59:17 +00:00
Gé van Geldorp 7ee686f0e0 Spinlock can also be acquired using KeAcquireSpinLockRaiseToSynch(),
take this into account when checking the IRQL on release

svn path=/trunk/; revision=8129
2004-02-10 15:16:12 +00:00
Gunnar Dalsnes 11a4e44d62 KiAcquire/ReleaseSpinLock adaption
svn path=/trunk/; revision=7757
2004-01-18 22:35:26 +00:00
Gé van Geldorp 08277c1b6a Rewrite loop so it can't be optimized away. Patch by Mike Nordell
svn path=/trunk/; revision=7589
2004-01-12 22:36:04 +00:00
Jason Filby 633f796e40 Initial implementaions of MmAllocateContiguousMemorySpecifyCache() and MmFreeContiguousMemorySpecifyCache()
svn path=/trunk/; revision=7360
2003-12-31 05:33:04 +00:00
Aleksey Bragin 5a6b27edc4 This is part of the big 'ReactOS under MSVC6' project. Main work on converting ROS to be able to be compiled under MSVC6 was done by Mark Nordell.
Work done by me - incorporating all this stuff into the newest CVS tree. So blame me if I did something wrong during tamlin -> new CVS tree merging :-)
It's HAL turn now.

svn path=/trunk/; revision=7301
2003-12-28 22:39:06 +00:00
Eric Kohl ecc20f6dc5 Minor cleanup
svn path=/trunk/; revision=6722
2003-11-20 00:57:29 +00:00
Gunnar Dalsnes 9f05e5563f -HalRequestSoftwareInterrupt impl. (does nothing yet)
svn path=/trunk/; revision=6717
2003-11-19 21:04:21 +00:00
Thomas Bluemel 1c3867a641 Patch by Jonathon Wilson:
fix most of ReactOS to build with -Wall -Werror by default

svn path=/trunk/; revision=6645
2003-11-14 17:13:36 +00:00
Gé van Geldorp 53c66fe57b Raise IRQL to SYNCH_LEVEL in KeAcquireSpinLockRaiseToSynch for UP machines also
svn path=/trunk/; revision=6553
2003-11-06 21:13:21 +00:00
Gé van Geldorp b2a4140643 Store interrupt in resource list returned by HalpAssignPciSlotResources
svn path=/trunk/; revision=6535
2003-11-05 22:39:01 +00:00
Gé van Geldorp 7a2ebc71ae - Add -Wall and -Werror compile flags and fix resulting problems
- Reimplement KeAcquireSpinLockRaiseToSynch with the help of Vizzini

svn path=/trunk/; revision=6534
2003-11-05 22:37:42 +00:00
Gé van Geldorp f1259f48fe Avoid infinite loop
svn path=/trunk/; revision=6528
2003-11-04 21:36:22 +00:00
Gunnar Dalsnes 888ca1574d improved IoMapTransfer (hopefylly)
svn path=/trunk/; revision=6476
2003-10-31 01:08:00 +00:00
Vizzini 3c640340fe Fixes to get slave DMA working again, as well as more architectural changes
that bring us closer to the Windows 2000 DMA model.

adapter.c: significantly re-worked and heavily commented
hal.h: more additions to ADAPTER_OBJECT; more pending
dma.c: added initialization of ADAPTER_OBJECT
ndis/io.c: minor DMA changes and addition of fixmes

svn path=/trunk/; revision=6411
2003-10-23 09:03:51 +00:00
Vizzini f177ad4810 Changes to support the 3Com 3c90x ndis5 driver and other bugfixes:
- Update registry with new 3com infor and set cards to disable by default
  - removed unnecessary crap from miniport.h
  - switch to using MINIPORT_BLOCK whenever possible for internal NDIS stuff
  - implemented NdisGetBufferPhysicalArraySize
  - fixed three similar bugs with overwriting memory in the config api
  - implemented NdisMQueryAssignedResources
  - fixed NdisMAllocateMapRegisters
  - implemented NdisMStartPhysicalBufferMapping
  - implemented NdisMCompletePhysicalBufferMapping
  - implemented NdisMMapIoSpace
  - implemented NdisMUnmapIoSpace
  - fixed HalAllocateAdapterChannel and IoAllocateAdapterChannel to
    act more like windows
  - fixed up a couple of enums
  - other misc. stuff

svn path=/trunk/; revision=6382
2003-10-20 06:03:29 +00:00
Eric Kohl 892557fccc Added Adapter-Object used for PCI-Bus-Master-DMA.
svn path=/trunk/; revision=6045
2003-09-11 11:45:28 +00:00
Vizzini f0496db9c5 implemented HalAllocateCommonBuffer
svn path=/trunk/; revision=5974
2003-09-04 06:45:38 +00:00
Emanuele Aliberti 190fc39af4 HALx86: minor cleanup and internal calling convention changes in display functions.
svn path=/trunk/; revision=5962
2003-09-02 20:11:43 +00:00
David Welch 927f2ae503 - Implement backspace control code in hal output.
svn path=/trunk/; revision=5882
2003-08-27 20:56:26 +00:00
David Welch 0fb5176276 - Fixed DAC mask register definition.
svn path=/trunk/; revision=5849
2003-08-25 12:26:50 +00:00
David Welch d7e545ac33 - Added in some code from XFree86 to save the vga state on the startup
and restore it on a bugcheck.

svn path=/trunk/; revision=5836
2003-08-24 20:56:16 +00:00
David Welch d2c4219caf - Support for resetting the display mode on a bug check.
svn path=/trunk/; revision=5817
2003-08-24 11:58:16 +00:00
Royce Mitchell III 974eb2f364 patch by vizzini - Fixed a typoed struct member, Fixed a unicode->hex integer bug.
svn path=/trunk/; revision=5692
2003-08-20 04:18:31 +00:00
Royce Mitchell III 038fbb6783 implemented KeAcquireSpinLockRaiseToSynch
svn path=/trunk/; revision=5547
2003-08-12 21:19:50 +00:00
Casper Hornstrup 9858f2daeb 2003-08-11 Casper S. Hornstrup <[email protected]>
* bootdata/txtsetup.sif (SetupData): Add /NOBOOTSCREEN to OsLoadOptions.
	* hal/halx86/display.c (CHAR_ATTRIBUTE_BLACK): Define.
	(HalClearDisplay): Add CharAttribute parameter.
	(HalInitializeDisplay, HalReleaseDisplayOwnership): Blue screen.
	* hal/halx86/halinit.c (DriverEntry): Blue screen for boot phase 2.
	* include/reactos/resource.h (IDB_BOOTIMAGE): Define.
	* ntoskrnl/Makefile: Add boot video objects.
	* ntoskrnl/Makefile.i386: Ditto.
	* ntoskrnl/ntoskrnl.def: Add boot video exports.
	* ntoskrnl/ntoskrnl.edf: Ditto.
	* ntoskrnl/ntoskrnl.rc (IDB_BOOTIMAGE): Define.
	* ntoskrnl/include/internal/kd.h (KdInit3): Add.
	* ntoskrnl/kd/kdebug.c (KdInitSystem): Print information in KdInit3.
	* ntoskrnl/ke/bug.c (KeBugCheckWithTf, KeBugCheckEx): Switch to
	text-mode on crash if needed.
	* ntoskrnl/ke/main.c (ExpInitializeExecutive): Display bootscreen image
	during boot.
	* ntoskrnl/ke/i386/v86m_sup.S (_KiV86Complete): Restore previous mode and
	old exception handler list.
	* subsys/csrss/init.c: Change PrintString to DPRINT1.
	* subsys/smss/init.c: Change PrintString to DPRINT1.
	(SignalInitEvent): New.
	(InitSessionManager): Call SignalInitEvent to switch to text-mode if
	needed.
	* subsys/smss/smss.c: Change PrintString to DPRINT1.
	* ntoskrnl/inbv: New directory.
	* ntoskrnl/inbv/i386: Ditto.
	* ntoskrnl/res: Ditto.
	* include/ntos/bootvid.h: New file.
	* ntoskrnl/inbv/.cvsignore: Ditto.
	* ntoskrnl/inbv/bootvid.c: Ditto.
	* ntoskrnl/inbv/inbv.c: Ditto.
	* ntoskrnl/inbv/i386/.cvsignore: Ditto.
	* ntoskrnl/inbv/i386/pixelsup.S: Ditto.
	* ntoskrnl/res/bootimage.bmp: Ditto.

svn path=/trunk/; revision=5529
2003-08-11 18:50:12 +00:00
Royce Mitchell III 74ff28452f * added _DISABLE_TIDENTS macro to disable any ANSI/UNICODE ambiguous elements from the header files.
* enabled _DISABLE_TIDENTS for most ReactOS OS components.
* fixed all errors that resulted from this change
* a few small bugfixes along the way

svn path=/trunk/; revision=5449
2003-08-07 04:03:25 +00:00
Royce Mitchell III 2a438cfb48 created KEBUGCHECK, KEBUGCHECKEX, KEBUGCHECKWITHTS macros to report file/line of bugcheck. replace all direct calls of KeBugCheck, KeBugCheckEx and KeBugCheckWithTs with corresponding macros. I rebuilt from a make clean and it looks good.
svn path=/trunk/; revision=5213
2003-07-21 21:53:53 +00:00
Andrew Greenwood acd21b1447 My first CVS commit. Hope I get this right. I did put a few files in the CVS dir manually... Innocent mistake... I'll clean it up after I'm done with this. Sorry!
Some of NTOSKRNL now compiles with __USE_W32API enabled. Note that this commit is purely so I know what to do, and also to allow other people to continue working on this if they wish to do so. I will continue hacking away at it.

It's not complete yet, but I've ensured that the changes I have made aren't incompatible with ReactOS as it stands at the moment. It compiles without __USE_W32API fine.

* Modified the tools/depend.mk file to force the use of forward slash (SEH variable?) otherwise it tries to run "toolsdepend.exe" without a slash.

* Moved a couple of routines from include/ddk/halfuncs.h to hal/halx86/include/hal.h

* Fixed conflicting types in ntoskrnl/ex/interlck.c

* Replaced .a with .u, #undef'd "lite" functions and defined NONAMELESSUNION in ntoskrnl/ex/resource.c so that it compiles with Win 32 API

* Added some more conditional defines to include/shared_data.h, ntoskrnl/include/internal/mm.h (and i386/mm.h), ntoskrnl/include/internal/ps.h

* Replaced .a with .u for OWNER_ENTRY and ERESOURCE in include/ddk/extypes.h (so they are compatible with Win 32 API headers)

* Various other small adjustments

Hope this works!

svn path=/trunk/; revision=5130
2003-07-15 16:26:18 +00:00
guido 19a10245f0 again more .cvsignore maintenance
svn path=/trunk/; revision=4988
2003-06-28 23:10:02 +00:00
Gé van Geldorp ba8e03d72f Implement display ownership, also makes ATI Rage 3rd party video driver
runnable

svn path=/trunk/; revision=4937
2003-06-21 14:25:30 +00:00
Gé van Geldorp b5c47abf10 Implement KeQueryPerformanceCounter() and move all timer related stuff to
a single file timer.c

svn path=/trunk/; revision=4926
2003-06-19 16:00:03 +00:00
Casper Hornstrup 39c92c6522 2003-06-07 Casper S. Hornstrup <[email protected]>
* hal/halx86/dma.c (AdapterObjects): Don't put braces on scalar
	initializers.

svn path=/trunk/; revision=4868
2003-06-07 12:25:53 +00:00
Casper Hornstrup ebabe56624 2003-06-07 Casper S. Hornstrup <[email protected]>
Changes for compiling with w32api

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

svn path=/trunk/; revision=4861
2003-06-07 10:14:40 +00:00
Eric Kohl 3f270ca3d4 Removed unused bios32 support.
svn path=/trunk/; revision=4603
2003-04-27 18:12:15 +00:00
Hartmut Birr 40b6b22911 - Fixed the offset in ReadPciConfigUshort/WritePciConfigUshort.
svn path=/trunk/; revision=4585
2003-04-26 07:06:55 +00:00
Casper Hornstrup 09754161f9 2003-04-06 Casper S. Hornstrup <[email protected]>
* drivers/storage/atapi/atapi.c (AtapiReadWrite): Expect an interrupt a
	bit sooner.
	* hal/halx86/isa.c (HalpGetIsaInterruptVector): Compute vector for MP.
	* hal/halx86/pci.c (HalpGetPciInterruptVector): Ditto.
	* hal/halx86/sysbus.c (HalpGetSystemInterruptVector): Ditto.
	* hal/halx86/mp.c (AssignIrqVector): Rewrite.
	(MpsTimerHandler): Disable for now.
	(MpsSpuriousHandler): Do not acknowledge interrupt.
	(HalAllProcessorsStarted): Only boot 1 CPU for now.
	(RescheduleDpcRoutine): New function.
	(RescheduleDpc): New variable.
	(HalpInitMPS): Initialize RescheduleDpc. Fix bug in call to memset.
	* hal/halx86/mpsirql.c: Rewrite.
	* hal/halx86/include/mps.h (VECTOR2IRQ, IRQ2VECTOR, VECTOR2IRQL,
	IRQL2VECTOR): New macros.
	* ntoskrnl/ntoskrnl.def: Add KeRescheduleThread@0.
	* ntoskrnl/ntoskrnl.edf: Ditto.
	* ntoskrnl/include/internal/ke.h (KeRescheduleThread): Prototype.
	* ntoskrnl/ke/kthread.c (KeRescheduleThread): New function.
	* ntoskrnl/ke/i386/exp.c (KeInitExceptions): Remove unneeded call to
	set_trap_gate().
	* ntoskrnl/ke/i386/irq.c (VECTOR2IRQ, IRQ2VECTOR, VECTOR2IRQL): Correct.
	(IRQ_BASE): Define as FIRST_DEVICE_VECTOR.
	(NR_IRQS): Define using IRQ_BASE.
	(KeInitInterrupts): Use IRQ_BASE.
	(KiInterruptDispatch2): Rewrite.
	(KiInterruptDispatch): Ditto.
	(KeConnectInterrupt): Pass Vector to HalEnableSystemInterrupt() for MP.
	(KeDisconnectInterrupt): Pass Vector to HalDisableSystemInterrupt() for MP.
	* ntoskrnl/ke/i386/trap.s (_KiTrapProlog): Change 0x124 to KPCR_CURRENT_THREAD.

svn path=/trunk/; revision=4505
2003-04-06 10:45:16 +00:00
Casper Hornstrup 7b1020a10e 2003-04-05 Casper S. Hornstrup <[email protected]>
* Makefile: Add bootcd target.
	(BOOTCD_INSTALL): Set for bootcd install.
	* rules.mak (TOPDIR): Define on windows.
	(BOOTCD_DIR): Define.
	(RLINE): Define.
	* apps/tests/lpc/makefile: Handle BOOTCD_INSTALL.
	* apps/tests/mstest/Makefile: Ditto.
	* apps/tests/nptest/Makefile: Ditto.
	* apps/tests/shm/makefile: Ditto.
	* ntoskrnl/Makefile: Handle BOOTCD_INSTALL. Add bootcd target.
	* drivers/dd/vga/makefile: Add bootcd target.
	* drivers/dd/blue/makefile (TARGET_BOOTSTRAP): Define as yes.
	* drivers/dd/floppy/Makefile: Ditto.
	* drivers/fs/cdfs/makefile: Ditto.
	* drivers/fs/ntfs/makefile: Ditto.
	* drivers/fs/vfat/makefile: Ditto.
	* drivers/input/keyboard/makefile: Ditto.
	* drivers/storage/atapi/makefile: Ditto.
	* drivers/storage/cdrom/makefile: Ditto.
	* drivers/storage/class2/makefile: Ditto.
	* drivers/storage/disk/makefile: Ditto.
	* drivers/storage/scsiport/makefile: Ditto.
	* hal/halx86/Makefile: Ditto.
	* lib/ntdll/makefile: Ditto.
	* subsys/system/usetup/makefile (TARGET_BOOTSTRAP): Define as yes.
	(TARGET_BOOTSTRAP_NAME): Define as smss.exe.
	* tools/Makefile: Add rline executable.
	* tools/helper.mk: Support bootcd targets.
	* tools/rline.c: New file.

svn path=/trunk/; revision=4494
2003-04-05 09:37:45 +00:00
Eric Kohl 64e0e82479 Fixed some hal dispatch table issues.
Improved HalExamineMBR() to detect disk managers.

svn path=/trunk/; revision=4200
2003-02-26 14:14:47 +00:00
Gé van Geldorp 7e66e6636b Implemented HalpAssignPciSlotResources
svn path=/trunk/; revision=4171
2003-02-17 21:24:13 +00:00