Commit graph

29848 commits

Author SHA1 Message Date
Timo Kreuzer
4f6b034f60 make syscalldump dump the names of the functions in apfnSimpleCall array.
svn path=/trunk/; revision=32690
2008-03-15 03:08:30 +00:00
Timo Kreuzer
58e1c142fe NtGdiExtGetObjectW has really nothing to do with dcs, move it to gdiobj.c
svn path=/trunk/; revision=32689
2008-03-15 01:10:53 +00:00
Colin Finck
751cc71ebd Aaand yet another one, including fixed indentation for the whole file
(sorry for the commit spam, but I'm trying to solve the building problems of a user over IRC :D)

svn path=/trunk/; revision=32688
2008-03-15 00:44:07 +00:00
Colin Finck
6f3e8ec662 Add yet another missing include
svn path=/trunk/; revision=32687
2008-03-15 00:38:42 +00:00
Colin Finck
ddef9f1617 - Add <cstring> for "memset", "strchr" and "strstr"
- Use the C++ wrapper headers consistently
- Fix indentation

svn path=/trunk/; revision=32686
2008-03-15 00:35:48 +00:00
Colin Finck
1e2d76a86c - Consistently use the C++ wrapper headers (cstdio, cstdlib, ...) around the standard C headers and also add <cstring> for "strtok", "strcpy" and "strncmp"
- Remove a useless typedef, which causes a warning with newer GCC's

svn path=/trunk/; revision=32685
2008-03-15 00:23:40 +00:00
Timo Kreuzer
feb0960458 enable a additional GDI_DEBUG backtraces
svn path=/trunk/; revision=32684
2008-03-15 00:10:27 +00:00
Colin Finck
22a1118107 Include <cstdlib> and <cstring> for "getenv" and "strlen"
svn path=/trunk/; revision=32683
2008-03-15 00:04:43 +00:00
Colin Finck
32da68f4ea Include <cstdlib> for "strtod" and "strtol"
svn path=/trunk/; revision=32682
2008-03-14 23:59:55 +00:00
Colin Finck
cf076f2c7b Change, simplify and document the conditions for the include files.
Fix two build problems in Fedora 8 and probably other hosts with a newer C library (reported by Dosadi on #reactos)

svn path=/trunk/; revision=32681
2008-03-14 23:55:32 +00:00
Timo Kreuzer
2b61e55c4e - modify the way the way the Frames parameter in KeRosDumpStackFrames() is handled, wasn't used so far
- remove some code duplication

svn path=/trunk/; revision=32680
2008-03-14 23:51:27 +00:00
Timo Kreuzer
92d76b88e9 hide mouse cursor in mazescr
svn path=/trunk/; revision=32677
2008-03-14 00:08:00 +00:00
Timo Kreuzer
9457b015d6 - Simplify IntSetCursor
- Make NtUserSetCursor hide Cursor on hCursor = NULL
- Don't set the cursor pos if the cursor is hidden in IntMouseInput
- remove 2 useless ASSERTs
- Dereference old cursor- Make the screensaver lib hide the cursor directly after creating it (the window never recieves a WM_SETCURSOR)
partly fixes bug 2965
See issue #2965 for more details.

svn path=/trunk/; revision=32676
2008-03-14 00:05:58 +00:00
Aleksey Bragin
0d99c97ab4 - Switch to using the cache bitmap (the cache manager uses one large memory region within the kernel address space and allocate/deallocate space from this block over a bitmap).
- This removes (hides?) the so-called "ResourceNeverExclusive" problem at the end of the 1st stage setup or during file copy operation. Also it makes file copying process (not only in the 1st stage) more stable.
- Cacheseg mapping region size enlarged to 256Mb.
See issue #2872 for more details.

svn path=/trunk/; revision=32675
2008-03-13 20:14:30 +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
Andrew Munger
e2d5ba4e1f Simplify and rename the functions that touch UserPageListHead.
They were confusingly coded to accept any flavor of PFN_TYPE, which resulted in at least one bug.
Constrained the calls to the MmRequest/ReleasePageMemoryConsumer and MmTrimUserMemory.

svn path=/trunk/; revision=32673
2008-03-13 15:26:17 +00:00
Aleksey Bragin
b473957147 - Factor out physical pages allocation and creating a virtual mapping into a standalone function called MmMapMemoryArea (idea proposed by Art Yerkes).
- As a result, removed one case of a potentially dangerous _alloca usage in the kernel, increased code readability.

svn path=/trunk/; revision=32672
2008-03-13 13:17:57 +00:00
ReactOS Portable Systems Group
9901f9409a - Finish implementing very basic system call dispatcher. Our very first system call to NtClose works properly.
- The rest of Phase 0 initialization continues smoothly, we now reach the while(TRUE) loop at the end of KiSystemStartup!
- Phase 0 bring-up is complete: The phase 1 thread should now start (once thread scheduling works).
- Next steps: IRQLs, HAL Initialization (Timers and IRQs) to get the interval clock timer running for quantum end/scheduling/time accounting.
- After that: context switching code to be able to switch to the Phase 1 thread.
- Then: Phase 1 bring-up!


svn path=/trunk/; revision=32671
2008-03-12 22:06:42 +00:00
Daniel Reimer
e4a3ca1233 Polish Translation Update by Olaf Siejka.
svn path=/trunk/; revision=32670
2008-03-12 21:32:45 +00:00
Gregor Brunmar
13f9fd3700 Removed false unimplemented output :)
svn path=/trunk/; revision=32669
2008-03-12 19:40:31 +00:00
Gregor Brunmar
8bca78461c * Made IDirect3D9 structure more MS compatible.
* Removed duplicate initing of internal structure
* Started implementing IDirect3D9::CreateDevice() error return values

svn path=/trunk/; revision=32668
2008-03-12 19:29:10 +00:00
Aleksey Bragin
bae787dbd9 - Fix build.
svn path=/trunk/; revision=32667
2008-03-12 19:07:32 +00:00
ReactOS Portable Systems Group
465f0c0e28 - We now define a much simpler system call interface -- instead of using interrupt 2E with the system call ID in the ip register, we use the system call ID as the interrupt number! On ARM, all software interrupts have a generic handler, so ANY software interrupt will be a system call, and the interrupt number is the system call ID!
- Removed a bunch more i386-only exports from the ARM kernel.
- Implemented all the READ/WRITE_REGISTER* routines for ARM/PPC.
- Implement half of KiSoftwareInterruptException, which calls KiSoftwareInterruptHandler, which calls KiSystemService. We now reach the first kernel-mode system call! (ZwClose from PspInitPhase0).
- Reformat fastinterlck.c and change the way it's included per-architecture.


svn path=/trunk/; revision=32666
2008-03-12 18:17:55 +00:00
Colin Finck
374a272eac [FORMATTING] Fix indentation
svn path=/trunk/; revision=32665
2008-03-12 13:50:30 +00:00
ReactOS Portable Systems Group
0d376b34fa - Make another kind of page fault also be handleable by our hacked-up handler: paged pool now fully works.
- Current status: we now make it all the way to the first system call at the end of Phase 0!
- We now make the IRQL routines modify the IRQL saved in the KPCR, to make some assertions work.
- Build mem.c and memgen.c from RTL in order to get non-optimized but portable Rtl*Memory routines and Rtl*Swap routines.
- Take the PPC non-optimized but portable Ex*Interlocked* routines and make them available for ARM as well. Play with the code a bit to get other routines in there too.
- Major TODO: Cleanup these routines, re-format them, make them compatible for all architectures, and later on, provided optimized ARM versions.
- Remove _all* _aull* MSVC-i386 helper exports from the kernel, as well as Exfi386* routines -- they're only for x86 kernels.

svn path=/trunk/; revision=32664
2008-03-12 00:13:09 +00:00
Daniel Reimer
ec0c36d5e6 Update German language File
svn path=/trunk/; revision=32663
2008-03-11 19:44:22 +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
Dmitry Chapyshev
5e375382ea - Fix typo (part 2/2)
svn path=/trunk/; revision=32661
2008-03-11 17:03:20 +00:00
Dmitry Chapyshev
b730023197 - Fix typo (part 1/2)
svn path=/trunk/; revision=32660
2008-03-11 16:39:58 +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
Dmitry Chapyshev
f5402d88df - Fix build
svn path=/trunk/; revision=32658
2008-03-11 16:13:26 +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
Dmitry Chapyshev
e121cc7e3d - Rewrite input.dll
- Delete unused resources
- Update all languages

svn path=/trunk/; revision=32656
2008-03-11 15:52:27 +00:00
ReactOS Portable Systems Group
f955e35cab - We missed this one -- fix the x86 build.
svn path=/trunk/; revision=32655
2008-03-11 06:05:57 +00:00
ReactOS Portable Systems Group
3d10a2eabc - Forgot to commit previous HAL changes.
- There is no reason to implement the Interlocked* APIs in assembly in the kernel -- just have them call the intrinsics.
- Also fix the way we were overloading the exported APIs, we now use the intrinsics all the time.
- Convert loader block address to virtual, and parse the addresses inside it and convert them to virtual too, after we don't use them in FreeLDR anymore -- the kernel will delete the p->v identity mapping, and eventually still need to touch the loader block.
- Implement MmGetPhysicalAddress and MiGetUserPageDirectoryCount for ARM.
- We now reach the point where we start initializing the boot drivers' memory information.

svn path=/trunk/; revision=32654
2008-03-11 04:42:54 +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
cfb18d14ea part 2/2 for implement GetAppCompatFlags
left todo implemented set AppCompatFlags 

svn path=/trunk/; revision=32652
2008-03-11 00:09:23 +00:00
Magnus Olsen
50b6c2d1d0 part 1/2 for implement GetAppCompatFlags
svn path=/trunk/; revision=32651
2008-03-11 00:08:07 +00:00
Magnus Olsen
0b1f2480f3 partly implement gdi32 Escape
implemented command STARTDOC: Escape

 

svn path=/trunk/; revision=32650
2008-03-10 22:12:12 +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
Aleksey Bragin
c74b0b6ad8 - A better freebsd/macosx fix.
svn path=/trunk/; revision=32645
2008-03-10 20:04:46 +00:00
Aleksey Bragin
3a17306654 - Add sys/types.h and sys/stat.h includes for mkfifo() declaration, for *nix-builds.
svn path=/trunk/; revision=32644
2008-03-10 19:28:33 +00:00
Aleksey Bragin
a70da8b4d0 - Fix rgenstat build on FreeBSD and MacOSX
svn path=/trunk/; revision=32643
2008-03-10 19:24:19 +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
James Tabor
6f83c4fcb6 - Cleanup GreatLordisms and half implement GdiRealizationInfo.
svn path=/trunk/; revision=32637
2008-03-10 04:02:49 +00:00
Magnus Olsen
fc93cf79dd partly implement gdi32 Escape
implemented command ENDDOC: Escape

 

svn path=/trunk/; revision=32636
2008-03-10 00:27:25 +00:00
Magnus Olsen
b6b6d6b267 partly implement gdi32 Escape need it for getting opengl icd driver working, if they are using ms icd ddk
implemented command DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE for they are not longer supported in windows XP/2003
implemented command SETABORTPROC it is still stub in gdi32/misc/stubs.c

 

svn path=/trunk/; revision=32635
2008-03-09 23:32:52 +00:00
Magnus Olsen
b9cb142148 partly implement gdi32 Escape
implemented command ABORTDOC Escape

 

svn path=/trunk/; revision=32634
2008-03-09 22:58:13 +00:00
Franz Lehner
15c1c603c3 Revert Change in readme.txt -- HTTP DAV access working
svn path=/trunk/; revision=32633
2008-03-09 21:56:42 +00:00
Franz Lehner
179fe706d2 SVN TEST
svn path=/trunk/; revision=32632
2008-03-09 21:48:27 +00:00