Commit graph

39196 commits

Author SHA1 Message Date
Aleksey Bragin 637fc75ac0 [PSDK]
- Add MM_MIN / MM_MAX definitions.

svn path=/trunk/; revision=43495
2009-10-15 19:49:10 +00:00
Gregor Schneider c7d855690a Amendment to r43487: check last character as well
svn path=/trunk/; revision=43494
2009-10-15 19:28:11 +00:00
ReactOS Portable Systems Group 657da0b009 - Fix comments.
- Fix reading the incorrect pool type when freeing pool. The PoolType in the entry is offset by 1, so it can be either 1 for NonPaged or 2 for paged. This used to give us index 0 for nonpaged (correct), and index -1 for paged (oops!). Mask by 3 instead, so we get 0 and 1.


svn path=/trunk/; revision=43489
2009-10-15 19:19:40 +00:00
ReactOS Portable Systems Group 3b34847f3e - Collapse MmInit1 into MmInitSystem.
- Check for ARM3-owned memory areas during a page fault, and crash the system as this shouldn't happen yet.
- Use portable PTE macro instead of setting the owner bit directly, fixing an ARM port build issue.


svn path=/trunk/; revision=43488
2009-10-15 19:12:43 +00:00
Gregor Schneider b452b0b30a [kernel32] IsBadStringPtrA/W:
- Remove overflow failure case, this isn't checked for string validation
- Adapt page check to let the full string be checked in case of overflow
See issue #4861 for more details.

svn path=/trunk/; revision=43487
2009-10-15 19:12:37 +00:00
ReactOS Portable Systems Group 071a297838 - Fix a bug in memory area creation: Static memory areas had the static flag embedded in their type, so code that was switch()ing on the type would fail to recognize the actual type, because MEMORY_AREA_STATIC was ORed in.
- Add a new memory area type: MEMORY_AREA_OWNED_BY_ARM3. This will allow us to instruct the ReactOS Memory MAnager to "Back. The Fuck. Off."  during page faults and such, so we can handle page faults inside ARM3-owned PTEs ourselves.
  - Right now, all ARM3 PTEs and data is nonpaged, so no page faults should happen, but this may change in the future.
  - Also will allow us to manage our own PDEs so we can do on-demand inpage instead of syncing with the ReactOS Mm hack cache.
- Create all memory areas in one shot in MmCreateSystemMemoryAreas (get rid of MiInitPageDirectoryMap and MiInitPagedPool memory area creation).
  - Mark all of ours as owned by ARM3.
  - Make them all static.
  - The only non-ARM3 one right now is paged pool, we own all the other static areas.
  - Move this code into mm, instead of mm/ARM3, since memory areas are not an ARM3 concept.
  - Also create memory areas for session space, session view, and other ARM3 memory ranges, so nobody touches those ranges.
- Dump the kernel address space after all this is done, in a MmDbg function in mm.
- This cleans up ARM3 of some ROS-specific code, and also collapses Phase 1 and 2 into a single phase.


svn path=/trunk/; revision=43486
2009-10-15 18:54:35 +00:00
Aleksey Bragin 8774094ea9 [kernel32]
- Initialize PreviousStackBase/Limit to NULL in BasepCreateStack. Previously this bug was hidden because those values were ignored by the kernel.

svn path=/trunk/; revision=43485
2009-10-15 18:36:35 +00:00
Stefan Ginsberg c199e1e3ee - MiReserveAlignedSystemPtes: Add missing lock release, spotted by janderwald
svn path=/trunk/; revision=43484
2009-10-15 18:34:21 +00:00
ReactOS Portable Systems Group e233c46dec - Add required globals for the ARM port.
svn path=/trunk/; revision=43483
2009-10-15 17:41:09 +00:00
ReactOS Portable Systems Group b20ae45a3f - Fix calculations error in the setup of the paged pool bitmap.
- Initialize the paged pool guarded mutex.
- Add helper routines ExLock/UnlockPool to either acquire the NPP QSL or the PP GM depending on the pool descriptor, instead of hardcoding the NPP QSL.
- Implement InitializePool for the PagedPool case.
- Now call InitializePool for PagedPool as well.


svn path=/trunk/; revision=43482
2009-10-15 17:23:21 +00:00
ReactOS Portable Systems Group 331debbeec - Get rid of mm/mmsup.c and move some of the ROS-internal functions better where they belong.
- Add ARM3/mmsup.c for miscellaneous function helper functions.
  - Implemented:
  - Move MmIsRecursiveIoFault, MmIsThisanNtAsSystem and MmQuerySystemSize. These belong here.
  - Unimplemented:
  - Move MmSetBankedSection and fix the prototype. This should probably go somewhere else later.
  - Move MmAdjustWorkingSetSize and fix the prototype. This should probably go in procsup.c later.
  - Move MmMapUserAddressesToPage. This should also probably go in procsup.c later.
  - Move MmSetAddressrangeModified and MmIsNonPagedsystemAddressValid. These should probably go somewhere else later.

svn path=/trunk/; revision=43481
2009-10-15 17:01:31 +00:00
ReactOS Portable Systems Group c04d1d038e - Multiple Virtual Memory API fixes:
- MiDoMappedcopy: The MDL should have 16 pages total, so MI_MAPPED_COPY_PAGES should be 14, not 16, to account for the MDL page itself, and the extra add-on page.
  - MiDoMappedCopy: Check for working set quota exception.
  - NtRead/WriteVirtualMemory: Do not attempt to do any work if the size is 0.
  - NtRead/WriteVirtualMemory: Do not return SEH status if we fail to write the number of bytes read/written -- return the function status.
  - NtProtectVirtualMemory: Protect the memory while attached to the target process.
  - NtProtectVirtualMemory: Do not return SEH status if we fail to write the number of bytes protected -- return the function status.
  - NtLock/UnlockVirtualMemory: Fix incorrect function definition. The last parameter is a bitfield. The middle two parameters are pointers, not values.
  - VirtualLock/Unlock: Fix calling NtLock/UnlockVirtualMemory with new correct function definitions. Call with MAP_PROCESS.
  - NtLock/UnlockVirtualMemory: Apply SEH. Validate flags. Validate parameters.
  - NtLock/UnlockVirtualMemory: Attach to the process while doing the operation. Reference the process.
  - NtLock/UnlockVirtualMemory: Check for SE_LOCK_MEMORY_PRIVILEGE if MAP_SYSTEM is specified.
  - Move MAP_SYSTEM and MAP_PROCESS from ntifs.h to mmtypes.h in NDK.
  - NtLock/UnlockVirtualMemory: Return success and semi-legitimate return values saying nothing was actually done.
  - NtFlushVirtualMemory: Apply SEH. Validate flags. Validate parameters. Call MmFlushVirtualMemory.
  - NtFlushVirtualMemory: Reference the process.
  - NtFlushVirtualMemory: Return success and semi-legitimate return values indicating nothing was flushed.
  - NtGetWriteWatch: Fix function prototype.
  - NtGet/ResetWriteWatch: Apply SEH instead of hacked parameter checks. Validate parameters.
  - NtGet/ResetWriteWatch: Reference the process.
  - NtGet/ResetWriteWatch: Return semi-legitimate return values indicating nothing was written to.
- These APIs are now owned by ARM3.


svn path=/trunk/; revision=43480
2009-10-15 16:50:49 +00:00
Aleksey Bragin e3d56ce220 - Fix inverted if condition in TEB initialization, spotted by Stefan.
svn path=/trunk/; revision=43479
2009-10-15 16:47:26 +00:00
Gregor Schneider 1eebc8c0cf Remove duplicate libjpeg from rosapps, used one is in trunk
svn path=/trunk/; revision=43478
2009-10-15 15:19:58 +00:00
Aleksey Bragin c3e1235c5a [fastfat_new]
- Add a helper function for reading (mapping) volume's stream file object.
- Read a boot sector during volume mounting, unpack it and store values in Vcb->Bpb for later usage. In particular, a volume's serial number being empty problem is fixed now. Volume label is still empty.
- Silence more non-important debug prints.

svn path=/trunk/; revision=43477
2009-10-15 10:50:12 +00:00
ReactOS Portable Systems Group 1ea8fff57a - Multiple PEB/TEB creation fixes:
- Set up PEB and TEB under SEH to handle possible paging errors (which are legitimate).
  - Also touch the image under SEH to handle image paging errors (also legitimate).
  - Should avoid kernel panics in cases where the executable is damaged, invalid, or impossible to page in.
  - Initialize more PEB fields.
  - Add new INITIAL_PEB structure to support fork() in the future. Also fixes the fact we don't create a PEB for the system process anymore.
  - Create PEB while attached to the process.
  - Handle UP-only images, and set correct affinity mask in the PEB.
  - Set session ID instead of session structure (currently zero).
  - Set correct TIB version in the TEB. Due to a historical oddity, the NT TIB identifies itself as '0x1e00', which is 30 shifted 8 bits. 30 is the version identifier of OS/2 3.0, the original 32-bit target of the Windows NT effort.
  - Handle initial TEB correctly for fork().
  - Move AWE APIs to procsup.c instea of section.c since they are unrelated.
  - Move the rewritten PEB/TEB functions to ARM3's procsup.c.

svn path=/trunk/; revision=43476
2009-10-15 05:56:41 +00:00
James Tabor 0387f3045a - Revert 43470.
svn path=/trunk/; revision=43475
2009-10-15 05:23:06 +00:00
ReactOS Portable Systems Group 649c4322fc - unix is one of many platforms that use LP64, so instead of defining every single possible OS which uses LP64, how about we define the *only* OS that uses LLP64: Win64.
- Fixes building on BSD and Solaris.


svn path=/trunk/; revision=43474
2009-10-15 04:34:47 +00:00
ReactOS Portable Systems Group d2b61cb87e - Define KeInitializeSpinLock for ARM to unbreak build.
svn path=/trunk/; revision=43473
2009-10-15 04:24:13 +00:00
ReactOS Portable Systems Group b938d88b35 - Add some more PTE field macros for portability.
- Define PTE_TOP.


svn path=/trunk/; revision=43472
2009-10-15 04:09:36 +00:00
ReactOS Portable Systems Group a97e4c52ab - Remove calls to MmMarkPageMapped/UnMapped -- these APIs don't exist anymore.
- Unbreaks part of kernel ARM build.


svn path=/trunk/; revision=43471
2009-10-15 04:03:37 +00:00
Cameron Gutman b8d2774f7e - Fix a typo
svn path=/trunk/; revision=43470
2009-10-15 02:26:16 +00:00
Cameron Gutman 45c5b396f7 - Import Alex's dnslib
- Add headers and definitions needed for dnslib to build
 - Part 2 of 2

svn path=/trunk/; revision=43469
2009-10-15 01:23:39 +00:00
Cameron Gutman d7ac1e87e8 - Import Alex's dnslib
- Part 1 of 2

svn path=/trunk/; revision=43468
2009-10-15 01:04:39 +00:00
Hervé Poussineau 7b529de220 [freeldr] List in menu all entries from [Operating Systems] section, even if they don't have an associated section
Try to infer the boot type if not specified
See issue #4455 for more details.

svn path=/trunk/; revision=43467
2009-10-14 21:04:44 +00:00
Timo Kreuzer 9fcbb3422d Some 64 bit heap fixes by encoded, merged from amd64 branch
svn path=/trunk/; revision=43466
2009-10-14 20:46:58 +00:00
Timo Kreuzer bb2982398a Define __unaligned to nothing on gcc, we don't need it for amd64, and the old definition was wrong anyway.
Fix definition of UNALIGNED for amd64.

svn path=/trunk/; revision=43465
2009-10-14 20:09:13 +00:00
Sylvain Petreolle d123d28729 fix typo
svn path=/trunk/; revision=43464
2009-10-14 19:44:23 +00:00
Johannes Anderwald d97059c731 - Fix debugging flood
- Pass correct flags to KsProbeStreamIrp
- Remove dead code

svn path=/trunk/; revision=43463
2009-10-14 18:09:28 +00:00
Stefan Ginsberg f1d4f68d22 - Remove a hack from KiGetMachineBootPointers and set the TSS selector properly in KiRosPrepareForSystemStartup instead.
- Use KGDT_TSS in WinLdrSetProcessorContext instead of a hardcoded value.

svn path=/trunk/; revision=43462
2009-10-14 18:07:29 +00:00
Stefan Ginsberg e5604f31b1 Move x86 assembly macros into the x86 directory.
svn path=/trunk/; revision=43461
2009-10-14 17:21:56 +00:00
Timo Kreuzer c236dd31f9 Fix definition of PORT_MAXIMUM_MESSAGE_LENGTH for 64 bit
svn path=/trunk/; revision=43460
2009-10-14 17:05:51 +00:00
Johannes Anderwald a299db4e69 - Fix debugging flood #2
svn path=/trunk/; revision=43459
2009-10-14 17:04:08 +00:00
Timo Kreuzer e34f5ea80b Add back PORT_MAXIMUM_MESSAGE_LENGTH for user mode, thanks Stefan
svn path=/trunk/; revision=43458
2009-10-14 17:03:41 +00:00
Johannes Anderwald c2f2fe2649 - Fix debugging flood
svn path=/trunk/; revision=43457
2009-10-14 16:59:07 +00:00
Timo Kreuzer b40f0f355b [NDK] remove PORT_MAXIMUM_MESSAGE_LENGTH, it's defined in wdm.h
svn path=/trunk/; revision=43456
2009-10-14 16:56:54 +00:00
Timo Kreuzer af3f2d5454 Merge amd64 NDK from amd64 branch:
34711, 34712, 34842, 34925, 34967, 34970, 35323, 35324, 35347, 35348, 35361, 35436, 35509, 35588, 35739, 35823, 35952, 35966, 36360, 37323, 37434, 37472, 37536, 37820, 37821, 37869, 37990, 38013, 38014, 43426, 43454

svn path=/trunk/; revision=43455
2009-10-14 16:45:35 +00:00
Aleksey Bragin fd5c075531 [fastfat_new]
- Implement shared VCB locking.
- Implement QueryVolumeInfo common handler, and a handler of QueryFsVolumeInfo class. Doesn't currently work due to missing VPB.

svn path=/trunk/; revision=43453
2009-10-14 15:59:14 +00:00
Timo Kreuzer 91984711f0 Update ReactOS-amd64.rbuild
svn path=/trunk/; revision=43452
2009-10-14 14:29:32 +00:00
Johannes Anderwald 7f2ba55772 - Implement KSPROPERTY_CONNECTION_ALLOCATORFRAMING for CPortPinWaveCyclic + CPortPinWavePci
svn path=/trunk/; revision=43446
2009-10-14 10:24:19 +00:00
Michael Martin a9b7f4cd7a - CmpPrepareKey: If cell signature is CM_KEY_NODE_SIGNATURE, the KeyCell is index leaf, handle it properly by calling CmpPrepareKey vice CmpPrepareIndexOfKeys. Fixes ASSERT in cminit.c that occurs on reboot after installing some applications.
svn path=/trunk/; revision=43445
2009-10-14 09:50:31 +00:00
Christoph von Wittich 7143b94c1b -revert accidental change
svn path=/trunk/; revision=43444
2009-10-13 21:51:16 +00:00
Christoph von Wittich 688c43c992 [BDASUP]
-fix some function declarations

svn path=/trunk/; revision=43443
2009-10-13 21:49:36 +00:00
Christoph von Wittich df9eccd994 partial sync to wine 1.1.31
svn path=/trunk/; revision=43442
2009-10-13 21:09:08 +00:00
Gregor Schneider 3a38bb048a [spider]
- Check for completed stack after dealing cards by installing one function to do this in call three cases, bug #4886
- Fix and simplify drop rules (only by number) and validation rules (by number and type) for two and four color games
- Fix typo in Polish Translation

svn path=/trunk/; revision=43441
2009-10-13 20:34:05 +00:00
Stefan Ginsberg 26a8c4b69a - Add the MMDBG_COPY_* flags and MmDbgCopyMemory's prototype.
- Add KdpCopyMemoryChunks and use it to handle virtual memory read/write (physical memory support still stubbed). The actual copy is still a hack and its only safeguard against invalid memory is still a simple check for NULL.
- Properly implement KdpReadVirtualMemory, KdpWriteVirtualMemory, KdpReadPhysicalmemory and KdpWritePhysicalmemory using KdpCopyMemoryChunks.
- Merge Timo's ReportFlags fix from the AMD64 branch.
- Implement KdpSysWriteMsr and KdpSysReadMsr for x86. SEH is commented as our GPF handler seems to swallow exceptions caused by accessing invalid MSRs.
- Change DataValue parameter of KdpSysReadIoSpace and KdpSysWriteIoSpace to PVOID to better match how it is used.

svn path=/trunk/; revision=43440
2009-10-13 19:45:40 +00:00
Dmitry Gorbachev bfb5499f5c - See if it is a multibyte code page.
- Remove check against zero.
- Fix comments, formatting.

svn path=/trunk/; revision=43439
2009-10-13 18:43:42 +00:00
Aleksey Bragin 352dfbf644 [rtl]
- Fix an out-of-bounds read in RtlpDidUnicodeToOemWorked.
See issue #4888 for more details.

svn path=/trunk/; revision=43438
2009-10-13 18:01:55 +00:00
Johannes Anderwald 89bda0c12e - Fix various bugs such as wrong function definitions, using of uninitialized variables
- Add macros which are not present in the WDK
- Check return type of synchronized interrupt routine
- Use PcHandlePropertyWithTable IPortPinWavePci
- Remove IServiceSink implementation from IPortWaveRt as it is a hack
- Add a small hack to IResource list implementation as prefast doesnt find decl of NumberOfEntries
- Fix build

svn path=/trunk/; revision=43437
2009-10-13 12:29:41 +00:00
Johannes Anderwald 09ef80af6b - Fix interface definition
svn path=/trunk/; revision=43436
2009-10-13 12:25:10 +00:00