Commit Graph

35203 Commits

Author SHA1 Message Date
Ingo Weinhold
977ffe5233 No longer ignore the physical memory beyond 4 GB, if we have a 64 bit
phys_addr_t. IOW, if PAE is enabled, that memory should be put to use now.
Apparently we report an incorrect amount of total memory (also counting
memory gaps), which also suggests that we need another method to manage the
vm_page structures (currently a huge array with indexes proportional to
physical page addresses, i.e. wasting memory for the gaps).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-12 00:36:44 +00:00
Ingo Weinhold
4d2b2dc4d2 Enable PAE on all CPUs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-12 00:13:54 +00:00
Ingo Weinhold
bd4454cb95 * Simplified smp_trap_non_boot_cpus() and smp_wake_up_non_boot_cpus(): We don't
need a spinlock per CPU; a single variable suffices.
* Extended call_all_cpus[_sync]() to work before smp_wake_up_non_boot_cpus()
  (even before smp_init()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-12 00:13:30 +00:00
Ingo Weinhold
4bdc89aa14 * Implemented X86PagingMethodPAE::PhysicalPageSlotPool::AllocatePool().
* Implemented X86PagingMethodPAE::IsKernelPageAccessible().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 23:23:44 +00:00
Ingo Weinhold
83c3e7d3ba Added kPAEPageDirRange constant.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 23:21:02 +00:00
Ingo Weinhold
bdc4a73afc Disable debug output also in C++ mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 18:04:25 +00:00
Ingo Weinhold
d382fc3a8e Added commented line to enable PAE.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 16:26:11 +00:00
Ingo Weinhold
68b53104ba * Implemented X86VMTranslationMapPAE and X86PagingStructuresPAE destruction.
* Implemented X86VMTranslationMapPAE::QueryInterrupt().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 16:21:13 +00:00
Matt Madia
99f806cc7f Corrected the leaves. After a closer look, the gradients of all 3 leaves are
different based on the background color.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 15:35:07 +00:00
François Revol
c1c42eb1c5 Use bilinear filtering for Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 12:59:57 +00:00
Wim van der Meer
46f84134a9 Use B_PAGE_SIZE for calculating memory size in the AboutSystem app.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 10:56:39 +00:00
Wim van der Meer
08bed3e8aa Use bilinear bitmap scaling for the screenshot preview.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 08:38:39 +00:00
Axel Dörfler
12c93cc7f8 * Before stippi starts clobbering the sources everywhere with superfluous
work-arounds, I applied the work-around where the problem actually occurs,
  until someone takes the time to look into it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 07:56:51 +00:00
Axel Dörfler
be816234e8 * Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 07:29:16 +00:00
Wim van der Meer
fc0d49483e Forgot to change the application signature in one location
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 02:36:51 +00:00
Philippe Houdoin
2586d9d144 Forgot to detect when an interface configuration is "disabled"
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 01:17:58 +00:00
Philippe Houdoin
2d3904fe20 Add interface disabling support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-11 01:00:49 +00:00
Ingo Weinhold
b35f3d132c X86VMTranslationMapPAE::Init(): Implemented the initialization for userland
maps. Now we can at least fully boot in qemu with one CPU. A few things
still need to be implemented, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 17:45:38 +00:00
François Revol
8736281d13 Missing default namespace. Maybe stippi could fix WonderBrush and regenerate it though ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 17:40:19 +00:00
Ingo Weinhold
5d89694992 Added methods {Allocate,Free}32BitPage(), which allocate+map/unmap+free a
page with a 32 bit physical address (needed for the PDPTs). A small set of
free pages is cached, so the rather expensive vm_page_allocate_page_run() can
be avoided most of the time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 17:38:47 +00:00
Ingo Weinhold
f498c07968 Added STATIC_ASSERT() macro (from <Debug.h>, which cannot be included in the
kernel).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 17:31:57 +00:00
Ingo Weinhold
1d26c7248f vm_page_allocate_page_run(): Added parameter "limit", specifying the upper
physical address limit for the page run to allocate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 17:30:49 +00:00
Ingo Weinhold
0c4c918a3d Fleshed out most of the unimplemented methods. The kernel boots up to the
creation of the initial shell, now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 13:25:36 +00:00
Ingo Weinhold
1c01dd3be0 Added InvalidatePage() which adds a new address to the invalidation cache.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 13:22:44 +00:00
Axel Dörfler
4c75e72cde * Fixed style violations introduced by Rudolf.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 10:56:05 +00:00
Rudolf Cornelissen
a586cdf275 added ricatech netbook touchpad recognition. works ok now. hope nobody minds..
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 10:48:07 +00:00
Ingo Weinhold
297bfa1aba Converted sources that include the private <vm/vm.h> to C++. Fixes the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 10:38:29 +00:00
Stephan Aßmus
d0a2818e88 * Do not use the Scaler anymore for asynchronous bilinear filtering, but pass
B_FILTER_BITMAP_BILINEAR to DrawBitmap(). There is virtually no delay at all.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 09:43:10 +00:00
Stephan Aßmus
6794f5b5c2 Removed obsolete run script.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 09:03:00 +00:00
Stephan Aßmus
1179b11bf2 Work around a bug in the tool tip implementation that prevents changing the
tool tip once it has been displayed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 09:02:29 +00:00
Stephan Aßmus
70e39d0927 Adding a button at a specific position did not work since converting LaunchBox
to using layout management. When storing the settings, the new button was stored
last. Using the BLayoutItem at the given index retrieves the correct button.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-10 08:52:57 +00:00
Ingo Weinhold
5d6d1935d6 Implemented X86PagingMethodPAE::Init() and all of its direct dependencies:
* The 32 bit paging structures inherited from the boot loader are translated
  to PAE structures and PAE is enabled.
* Implemented the initialization of the initial PhysicalPageSlotPool, so that
  the physical page mapper can be initialized.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-09 21:31:00 +00:00
Ingo Weinhold
38bde24102 Added some definitions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-09 21:23:45 +00:00
Ingo Weinhold
e5885c7d0c Moved kPageTableAlignment to paging.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-09 21:22:23 +00:00
Ingo Weinhold
9e101ddfcc Definition for CR4 PAE bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-09 21:21:48 +00:00
Ingo Weinhold
641b3c82df Renamed allocate_early_physical_page() to vm_allocate_early_physical_page()
and made it public.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-09 21:21:18 +00:00
DarkWyrm
0b50919e23 Make FileTypes edit resources on resource files and not just applications
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-09 14:37:00 +00:00
Ingo Weinhold
2ea7b17cf3 * vm_allocate_early(): Replace "bool blockAlign" parameter by a more flexible
"addr_t aligmnent".
* X86PagingMethod32Bit::PhysicalPageSlotPool::InitInitial(),
  generic_vm_physical_page_mapper_init(): Use vm_allocate_early()'s alignment
  feature instead of aligning by hand.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-09 11:15:43 +00:00
Ingo Weinhold
c8a1d3ad1e Added PAE bits and type definitions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 22:12:20 +00:00
Ingo Weinhold
a410098f28 Only use PAE, if supported by the CPU.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 21:43:19 +00:00
Ingo Weinhold
12f0b50c3a Removed not needed and no longer existing header. Fixes the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 21:21:55 +00:00
Ingo Weinhold
5b4d62a261 Skeleton classes for PAE support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37066 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 21:15:29 +00:00
Stephan Aßmus
d698997098 Fixed misspelled header, closes ticket #6147.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 21:07:38 +00:00
Ingo Weinhold
1c7fda897e * Moved X86VMTranslationMap32Bit to its own source file.
* Made all helper function operating on paging structures static methods of
  X86PagingMethod32Bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 20:35:53 +00:00
Joachim Seemer
2d192e7a80 Improved TeamManager default button behaviour, closing #6051.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 16:43:14 +00:00
Ingo Weinhold
2434bdc4d9 * Introduced global variable gX86PagingMethod, so the paging method can be
accessed from anywhere. Added static X86PagingMethod32Bit::Method()
  returning it as the subtype pointer -- to be used in the code related to
  that method only, of course.
* Made a bunch of static variables non-static members of
  X86PagingMethod32Bit and added accessors for them. This makes them
  accessible in other source files (allowing for more refactoring) and saves
  memory, when we actually have another paging method implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 16:18:57 +00:00
Ingo Weinhold
f0675bf757 Moved X86PagingStructures32Bit into its own source/header pair.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 15:39:47 +00:00
Ingo Weinhold
1b3e83adde Moved paging related files to new subdirectories paging and paging/32bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 15:00:56 +00:00
Wim van der Meer
3417d2a90f * Rename "ScreenshotApp" to "Screenshot", rename its signature from
"application/x-vnd.haiku-screenshotapp" to "application/x-vnd.haiku-screenshot"
* Rename "Screenshot" to "screenshot", rename its signature from
"application/x-vnd.haiku-screenshot" to "application/x-vnd.haiku-screenshot-cli"
* Move screenshot from /system/apps to /bin


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 13:15:17 +00:00
Ingo Weinhold
5aa0503c7c * Removed i386_translation_map_get_pgdir() and adjusted the one place where it
was used.
* Renamed X86VMTranslationMap to X86VMTranslationMap32Bit and pulled the paging
  method agnostic part into new base class X86VMTranslationMap.
* Moved X86PagingStructures into its own header/source pair.
* Moved pgdir_virt from X86PagingStructures to X86PagingStructures32Bit where
  it is actually used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 00:20:34 +00:00