Commit graph

39206 commits

Author SHA1 Message Date
Aleksey Bragin 18857bc6be [fastfat_new]
- Minor comments/TODO improvement in FatiCreate.

svn path=/trunk/; revision=43512
2009-10-16 12:29:34 +00:00
Cameron Gutman c53695755d - Fix build
svn path=/trunk/; revision=43511
2009-10-16 04:41:40 +00:00
Cameron Gutman 181002e46e - Add Alex's rasadhlp
- It builds on my WC but it may not build on trunk (because of our lacking headers)

svn path=/trunk/; revision=43510
2009-10-16 04:33:22 +00:00
Cameron Gutman 6a80145ce3 - Define GUIDs correctly to prevent "multiple definition" errors
svn path=/trunk/; revision=43509
2009-10-16 04:20:34 +00:00
ReactOS Portable Systems Group d37d315a7e - Move some unimplemented Ex* Pool routines into ARM3's expool.c.
- Move some unimplemented Mm* Pool routines into ARM3's pool.c.


svn path=/trunk/; revision=43508
2009-10-16 00:28:33 +00:00
ReactOS Portable Systems Group c0bb477b78 - Implement ARM3 page fault handling.
- Paged pool PTEs are demand zero PTEs while the memory hasn't been accessed -- this is the only type of fault supported.
- Because paged pool PDEs are also demand-paged, added code to handle demand paging of PDEs as well.
- Also, because paged pool is non-resident, but can be accessed from any process, we need a mechanism to sync up the kernel's page directory with the per-process one, on demand. This is done at startup, but other processes may have paged in paged pool that another process knows nothing about when he faults.
  - Similar to the hack ReactOS Mm uses, but done properly.
  - This is what that shadow system page directory is finally being used for.
- Assert if we get a user-mode fault, a transition fault, or a soft fault, since these shouldn't happen.
- Disable APCs while dispatching faults, and pseudo-use the working set lock.
- Assert if we get write errors on read-only pages, since we don't use those in ARM3 yet.
- Assert if we have a paged out PTE, this shouldn't happen yet.
- Enable test to see if we can touch a paged pool allocation.


svn path=/trunk/; revision=43507
2009-10-15 22:08:26 +00:00
ReactOS Portable Systems Group 5ac42f871f - Add some simple code to handle paged pool page allocation and freeing in MiAllocatePoolPages and MiFreePoolPages.
- Allocation does not support paged pool expansion yet, so we're limited to the initial 4MB that are initialized on startup.
- This only tests the raw page allocation routines so touching memory will fail as we don't handle paged pool faults yet.
- Nothing excercises this code path other than some simple tests while booting.


svn path=/trunk/; revision=43503
2009-10-15 21:23:24 +00:00
Johannes Anderwald ac9e8c032c - Revert accidental change
svn path=/trunk/; revision=43502
2009-10-15 20:29:04 +00:00
Aleksey Bragin b2a0c58433 - Update user32_winetest to Wine-1.1.31.
svn path=/trunk/; revision=43499
2009-10-15 20:00:27 +00:00
Aleksey Bragin a96cc21b73 - Update gdi32_winetest to Wine-1.1.31 keeping a bitmap font test skipping hack.
svn path=/trunk/; revision=43496
2009-10-15 19:50:01 +00:00
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