Commit Graph

3569 Commits

Author SHA1 Message Date
Magnus Olsen
6c16e66402 implemented NdisScheduleWorkItem writen by me and arty
svn path=/trunk/; revision=32750
2008-03-22 22:11:54 +00:00
Magnus Olsen
9797b5eeb0 add a missing struct NDIS_WORK_ITEM and missing prototype NdisScheduleWorkItem
svn path=/trunk/; revision=32749
2008-03-22 20:49:46 +00:00
Timo Kreuzer
12fca51a88 remove duplicate definitions
svn path=/trunk/; revision=32748
2008-03-22 14:59:02 +00:00
Magnus Olsen
9a08ab6b7c Fixing a typo in ndis rename NdisGetSystemUptime to NdisGetSystemUpTime
svn path=/trunk/; revision=32747
2008-03-22 09:18:21 +00:00
Timo Kreuzer
19761f316e - make Simplecall definitions (NtUserCallXxx) compatible to different Win versions (currently XP and Vista), using an enum and conditional compiling
- move incompatible definitions to the bottom of ntuser.h (bad section)
- fix parameters of NtUserCallHwnd* and move the rest of them to simplecall.c


svn path=/trunk/; revision=32743
2008-03-22 02:53:56 +00:00
Timo Kreuzer
b690ccfd98 update NTDDI defines
svn path=/trunk/; revision=32742
2008-03-22 02:23:08 +00:00
James Tabor
838ab11768 Finish Stefan Ginsberg patch from rev 32726.
svn path=/trunk/; revision=32733
2008-03-21 06:55:43 +00:00
James Tabor
ac4140e1d2 Sorry Timo! I think I forgot to remove these months ago.
svn path=/trunk/; revision=32732
2008-03-21 05:42:48 +00:00
Timo Kreuzer
51792c41f0 - started fixing NtUserCallXxx defines
- moved bad NtUserXxx macros to bottom
- added some comments to ntuser bad stuff

svn path=/trunk/; revision=32729
2008-03-21 00:01:33 +00:00
Timo Kreuzer
070880c0a2 patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com):
- remove NtUserAcquireOrReleaseInputOwnership and NtUserSendMessageCallback
- move ros specific types belonging to ros specific ntuser calls into ntuser.h near the respective prototypes
- add a commented out GDI_DEBUG define to gdiobj.c

svn path=/trunk/; revision=32726
2008-03-20 14:30:42 +00:00
Timo Kreuzer
835306e6f4 Add GDILoObjType enum to ntgdityp.h
svn path=/trunk/; revision=32720
2008-03-19 00:33:11 +00:00
Aleksey Bragin
82c66415ab - MAINTENANCE: Fix inconsistent new lines.
svn path=/trunk/; revision=32708
2008-03-17 11:02:00 +00:00
Aleksey Bragin
1789bf3561 Daniel Zimmerman <netzimme@aim.com>
- Implement RtlGetCallersAddress.
- Add RtlCaptureStackBackTrace prototype to PSDK.
See issue #3125 for more details.

svn path=/trunk/; revision=32693
2008-03-15 09:29:54 +00:00
ReactOS Portable Systems Group
362ca1e480 - Implement IRQL functions for the PL190 VIC.
- Start coding HalInitSystem.
- Implement HalRequestSoftwareInterrupt for the PL190 VIC. The interrupt fires! (This interrupt is responsible for forcing DPC delivery, which should also force thread scheduling, which should force the switch to the phase 1 thread)

svn path=/trunk/; revision=32674
2008-03-13 16:29:45 +00:00
Aleksey Bragin
ed5a4088f7 - Update FSRTL_ADVANCED_FCB_HEADER to support newer version headers.
- Split Reserved into two bitfields: Reserved and Version.

svn path=/trunk/; revision=32662
2008-03-11 19:03:29 +00:00
ReactOS Portable Systems Group
a31f9d1367 - Convert all Loader Block structures to virtual addresses (By adding KSEG0_BASE) since the kernel eventually unmaps the page table responsible for the physical->virtual identity mapping, but we'll still need to access the loader block.
- Implement proper trap prolog/epilog code -- currently used and tested in the data abort handler. Currently hacked away some KTRAP_FRAME stuff on ARM.
- The data abort handler has a very rudimentary check to detect page faults and will call MmAccessFaults, this means we now support paged pool!
- We now succesfully go past MmInitSystem and go all the way until ObInitSystem (still in Phase 0).


svn path=/trunk/; revision=32659
2008-03-11 16:13:43 +00:00
Aleksey Bragin
be684e0471 - Remove kilobyte of unneeded MS support database text copypaste.
- Rename and add two application compatibility flags to W32THREADINFO structure (one for ancient compat flags, and one for a bit more modern flags).
- Implement GetAppCompatFlags2() too.

svn path=/trunk/; revision=32657
2008-03-11 15:58:31 +00:00
ReactOS Portable Systems Group
a6b9a98b82 - Fix incorrect definition of PCR and USERPCR which was making us incorrect memory.
- Fix incorrect definition of ARM_CONTROL_REGISTER, which was stopping us from correctly enabling High Vectors.
- The RtlCaptureStackLimits and RtlWakeChainFrame routines in libsupp.c cannot possibly be portable across all architectures -- separated ARM versions in an arm directory.
- Setup the panic stack for abort/undefined exceptions, and the interrupt stack for FIQs.
- Implement support for exceptions! We can now display the address which caused a data abort, and begin handling exceptions.
- Implement all the HAL Spinlock/IRQL functions except KfRaise/LowerIrql which actually do the work.
- We're booting all the way to setting up the user_shared_data memory area.

svn path=/trunk/; revision=32653
2008-03-11 02:45:13 +00:00
Magnus Olsen
50b6c2d1d0 part 1/2 for implement GetAppCompatFlags
svn path=/trunk/; revision=32651
2008-03-11 00:08:07 +00:00
Aleksey Bragin
be3386232b - Sync STORAGE_PROPERTY_ID enum with WDK.
svn path=/trunk/; revision=32646
2008-03-10 20:26:03 +00:00
ReactOS Portable Systems Group
0b44376e27 ARM Port Memory Management Checkpoint:
- Implemented and defined the MMU-OS architecture for the ARM port. The details are too long for a commit message, but we have decided to replicate the x86 NT memory manager layout. We've defined a PTE_BASE at 0xC0000000 just like on x86, and we use a PDE_BASE at 0xC1000000. Unlike the x86, we can't use PDE-PTE self-mapping because ARM has different formats (and sizes!) for PDE vs PTEs! We emulate the behavior however (which adds a small performance hit) and the Mm porting is thus at least 10 times easier.
- Moved serial port to 0xE0000000 for now.
- We now parse the board memory map from u-boot.
- Added memory allocation code to FreeLDR -- we now build a full ARC memory map for the kernel.
- FreeLDR allocates page tables and sets up the initial support for our memory layout (see comments for some lengthier explenations)
- Allocations made by FreeLDR for loading ReactOS are now made from a "shared heap" page that's also marked in the memory map.
- Registry and NLS data are now being put into the loader block.
- We now create a loader entry for the kernel (but not anything else -- we'll have to parse the list properly later).
- Defined correct _HARDWARE_PTE_ARM and _MMPTE_HARDWARE for ARM.
- ARM_COARSE_PAGE_TABLE is now 4KB instead of 1KB, going against the architecture! We do this for proper OS support of the PTE_BASE.
- Fixed build due to KiSystemStartulReal change.
- Fixed a bug on the x86 build when creating memory allocation descriptors. Memory corruption could occur in certain scenarios.
- Implemented significant portions of the ARM memory manager code in the kernel:
  - MmGetPageDirectory.
  - MmDeletePageTable (for the kernel address space only).
  - MmIsPagePresent (for the kernel address space only).
  - MmCreateVirtualMappingForKernel.
  - MmCreateVirtualMapping (calls MmCreateVirtualMappingUnsafe).
  - MmCreateVirtualMappingUnsafe (for the kernel address space only).
  - MmSetPageProtect (unused on ARM).
  - MmCreateHyperspaceMapping.
  - MmDeleteHyperspaceMapping.
  - MmInitGlobalKernelPageDirectory.
  - MmInitPageDirectoryMap.
- With the above, this means we now go well inside MmInit1: the PFN database is setup and works, memory areas are functional, and non-paged pool is fully working.
- We currently hit a data abort during paged pool setup -- this is to be expected, since we don't have any exception handlers yet. These are coming up next -- we have to start handling crashes (and page faults).


svn path=/trunk/; revision=32640
2008-03-10 17:27:14 +00:00
Aleksey Bragin
ac644e6d90 - Leftovers.
svn path=/trunk/; revision=32613
2008-03-08 17:23:03 +00:00
Christoph von Wittich
4e8e7ffccd Huw Davies : shell32: ABM_GETAUTOHIDEBAR should return a HWND or NULL
Alexander Nicolaysen Sørnes : shell32: Use LocalFree in CommandLineToArgvW.
Rob Shearman : shell32: Memory allocated by CommandLineToArgvW should be that got from LocalAlloc/ LocalReAlloc, not from GlobalAlloc.

svn path=/trunk/; revision=32582
2008-03-06 11:30:26 +00:00
Christoph von Wittich
f6b757cd37 #define inline __inline for msvc
svn path=/trunk/; revision=32567
2008-03-05 08:09:56 +00:00
Christoph von Wittich
68844e0d8e don't include unistd.h in msvc builds
add some x64 declarations from wine to port.h

svn path=/trunk/; revision=32566
2008-03-05 08:06:17 +00:00
Christoph von Wittich
d3ea26544a msvc compat fix
svn path=/trunk/; revision=32565
2008-03-05 08:02:02 +00:00
Magnus Olsen
93f970da42 Implemented : DxEngLockHdev, DxEngUnlockHdev
Thanks jimtabor for the help with these two. 

svn path=/trunk/; revision=32564
2008-03-04 23:35:01 +00:00
Gregor Brunmar
37eaa4b5db Implemented IDirect3D:CheckDeviceFormat()
svn path=/trunk/; revision=32541
2008-03-02 12:29:35 +00:00
Colin Finck
19d6003deb Fix portcls build, broken in r32517, by moving the header inclusion order in "portcls.h" around.
I checked this with MS DDK and its "wdm.h" file also defines no types and depends on a previously included "ntddk.h" by the driver.

svn path=/trunk/; revision=32519
2008-02-27 22:47:56 +00:00
Aleksey Bragin
1aaa081b2d - The forgotten declaration.
svn path=/trunk/; revision=32517
2008-02-27 20:50:41 +00:00
Colin Finck
1d57e7d51b The C99 __VA_ARGS__ is also supported under GCC, no reason to add a compiler switch here and use ##args for GCC
svn path=/trunk/; revision=32514
2008-02-27 19:58:48 +00:00
Colin Finck
0e419d44d8 - Remove an unneeded MSVC block in windef.h and indent the definition of the "min" and "max" macros
- Shuffle the header inclusion order in charmap around, so that it compiles warning-free under MSVC (at /W3)

svn path=/trunk/; revision=32513
2008-02-27 14:57:47 +00:00
Gregor Brunmar
ec108a7c35 Added D3DCAPS8 to d3dhal.h
svn path=/trunk/; revision=32495
2008-02-26 21:18:32 +00:00
Colin Finck
cfe2ae5fcf - Remove much Win9x-specific stuff from the scrnsave library and make it more compatible to the MS version of the library
- Change the 3dtext screensaver to use the library
- Reduce the amount of code in the blankscr screensaver to a minimum
- Remove unneeded resources from both screensavers
- Indentation fixes, MSVC build and warning fixes, small translation fixes, etc. for both screensavers and the library

See issue #2966 for more details.

svn path=/trunk/; revision=32437
2008-02-20 21:43:41 +00:00
Timo Kreuzer
d4002d1793 Patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com):
- move bad ntuser syscalls in ntuser.h to the bottom
- sort win32k export list alphabetically
- remove Win32kInitialize and NtGdiGetAspectRatioFilterEx
by myself:
- add missing exports to win32k.def (all from xp)

svn path=/trunk/; revision=32430
2008-02-20 03:01:46 +00:00
Timo Kreuzer
ebc9271c72 some cleanup
- move NtGdiFlushUserBatch prototype to ntgdi.h
- move pool tags from ntgdihdl.h to win32k/tags.h
- move DC struct from ntgdihdl.h to win32k/dc.h
- replace GDIEMPTYHDR with BASEOBJECT
- use BASEOBJECT in DC and GDIDEVICE structures
- rename some NtGdiXxx functions that don't deserve that name and remove some that were defined by a macro, but don't exist on windows (#if 0'ed atm)
- remove RetrieveDisplayHDC() prototype (doesn't exist)

svn path=/trunk/; revision=32419
2008-02-18 23:05:41 +00:00
Gregor Brunmar
aa6f9c2d05 Fixed duplicate typedef in DirectX headers for real this time :)
svn path=/trunk/; revision=32404
2008-02-17 14:51:26 +00:00
Gregor Brunmar
751b0ea821 Fixed duplicate typedefs in DirectX headers
svn path=/trunk/; revision=32403
2008-02-17 14:40:23 +00:00
Gregor Brunmar
aea05840ef Oops, removed OsThunkD3dDrawPrimitives2 from d3d8thk.h.
svn path=/trunk/; revision=32402
2008-02-17 13:42:02 +00:00
Gregor Brunmar
df7c6698f8 * Updated d3d headers to make it possible to include both d3d and d3d9 at the same time.
* Updated d3dhal.h to support DirectX 9
* Fixed broken d3dnthal.h
* Fixed missing structures in d3d8thk.h

svn path=/trunk/; revision=32401
2008-02-17 13:34:59 +00:00
James Tabor
d04bc15143 - Patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com): Removed NtGdiStretchDIBits and NtGdiAddFontResource. Replaced with correct API.
svn path=/trunk/; revision=32391
2008-02-16 18:14:36 +00:00
ReactOS Portable Systems Group
34e64ee87b We now define KUSER_SHARED_DATA per architecture, since the address isn't portable. Now SharedUserData works on ARM.
Implemented KeAcquireInSTackQueuedSpinLock, KeAcquireInStackQueuedSpinLockRaiseToSYnc and KeReleaseInStackQueuedSpinLock based on x86 UP versions.
On ARM, the PCR is fully exposed, so some APIs are always-inlined direct-memory-access (unlike x86 which has the fs selector, and undocumented parts of the PCR). This means we can define several macros -- fixed the headers to allow this, by defining the previous stuff for x86 only.
Setup registry data in the ARM loader block.
The ARM port boots all the way through ExpInitializeExecutive until reaching MmInit1. The boot-registry is correctly loaded and parsed, as are NLS files!

svn path=/trunk/; revision=32379
2008-02-15 19:01:45 +00:00
Dmitry Chapyshev
7bbd9b91ed - Add winhttp.dll from Wine
- Add winhttp.h from Wine
- Add rbuild file for winfax.dll
- Add winhttp and winfax to bootcd

svn path=/trunk/; revision=32346
2008-02-13 16:46:28 +00:00
ReactOS Portable Systems Group
0c117eca26 Kill PSEH on ARM
svn path=/trunk/; revision=32339
2008-02-13 05:11:12 +00:00
ReactOS Portable Systems Group
172094a162 First attempt at ARM Exception Frame structure definition
svn path=/trunk/; revision=32338
2008-02-13 05:10:45 +00:00
ReactOS Portable Systems Group
ed323f3711 We now have a good initialization routine for ARM. We call HalInitializeProcessor (TBD) to setup the board, then we configure the PRCB and PCR. We also setup some global CPU variables and setup minimal interrupt support. The rest of the code follows the x86 design (Create initial thread/process).
There's now a cpu.c for ARM as well, and the cache routines are now there.
KDCOM APIs were marked as kernel stubs, so the kernel was never linking with kdcom. This has been fixed, and boot now stops in kdcom!KdPortInitializeEx since there's no ARM-compatible code.

svn path=/trunk/; revision=32334
2008-02-12 22:50:54 +00:00
ReactOS Portable Systems Group
93970a965e Added cache sweeping code into the HAL, for ARM926EJ-S and ARM1026EJ-S CPUs.
Finished implementation of KiSystemStartup.
Copied KiInitializeKernel from x86 to ARM, removing irrelevant parts. This is our current checkpoint.

svn path=/trunk/; revision=32333
2008-02-12 20:32:23 +00:00
ReactOS Portable Systems Group
e28048569a Fixed some bugs in KeFillFixedEntryTb -- we actually needed to map the PTE into memory (then we can umap it).
We were doing the initial PCR/PDR page allocation completely wrong since we're using 1MB section pages, not 4KB pages (this needs to be fixed later).
Piggyhack arm_kprintf on top of DebugService which we now define. DPRINT1 and ASSERT now work!
Send ARC paths and normalized command-line in the loader parameter block.
Current state:
FreeLoader v3.0 for ARM
Bootargs: rdbase=0x2000000 rdsize=0x1400000
Detecting Hardware...
Loading...
Reading NTOSKRNL.EXE
Reading BOOTVID.DLL
Reading HAL.DLL
Reading HAL.DLL                                                                 
Reading c_1252.nls
Reading c_437.nls
Reading l_intl.nls
Reading scsiport.sys
Reading atapi.sys
Reading buslogic.sys
Reading pci.sys
Reading class2.sys
Reading disk.sys
Reading vfatfs.sys
Reading ndis.sys
Mapped serial port to 0xc00f1000
(ntoskrnl/ke/arm/kiinit.c:135) -----------------------------------------------------
(ntoskrnl/ke/arm/kiinit.c:136) ReactOS 0.4-SVN (Build 20080207-r32151)
(ntoskrnl/ke/arm/kiinit.c:137) Command Line: DEBUG  DEBUGPORT=COM1  BAUDRATE=115200  SOS
(ntoskrnl/ke/arm/kiinit.c:138) ARC Paths: ramdisk(0) \ ramdisk(0) \ReactOS\


svn path=/trunk/; revision=32328
2008-02-12 18:34:33 +00:00
ReactOS Portable Systems Group
40ecc5259a Fix the build.
Your friendly ARM ninjas apologize.

svn path=/trunk/; revision=32309
2008-02-12 03:06:06 +00:00
ReactOS Portable Systems Group
5c6d974c05 FORCEINLINE is a lot more...forcefull... now ;-). Previous version didn't always inline as requested.
svn path=/trunk/; revision=32306
2008-02-11 22:13:35 +00:00