Commit Graph

43061 Commits

Author SHA1 Message Date
Alex Smith
d38f1301d1 Cleaned up 32-bit descriptors.h. 2012-07-12 13:55:03 +01:00
Alex Smith
5774b5afa4 C++ified remaining C users of arch_cpu.h. 2012-07-12 13:54:18 +01:00
Alex Smith
6ba74ba51c Fixed compilation of the boot loader on GCC 2.
Not sure why but GCC 2 seems to be ignoring the extern "C" in smp.h when
compiling smp_boot_other_cpus() resulting in undefined references. Fixed
by putting extern "C" on the definition too.
2012-07-12 12:21:09 +01:00
Alex Smith
98614a9658 Merge branch 'master' into x86_64 2012-07-12 11:33:39 +01:00
Alex Smith
c3f0fd28cd Fixed formatting of output in some debugger commands.
Currently all debugger commands assume 32-bit pointers when formatting their
output. This means that on x86_64 the output is incorrectly formatted. Fixed
this by adding a B_PRINTF_POINTER_WIDTH definition (16 on 64-bit, 8 on
32-bit), and using this to correctly format the output. Not all commands have
been fixed yet, but all VM, slab, VFS, team, thread and image commands should
be correct.
2012-07-12 11:29:33 +01:00
Ingo Weinhold
8c51cca27e Fix accidental partial revert of 0174267 2012-07-12 11:06:10 +02:00
Ingo Weinhold
b1700b2cd1 Declare syscall_numbers.h include for x86_signals.cpp
Fixes #8718.
2012-07-12 10:54:30 +02:00
Ingo Weinhold
e2d2662bc4 Automatic whitespace cleanup 2012-07-12 10:53:42 +02:00
Rene Gollent
95453175cd Fix other part of #8710.
- When binary searching functions in the source entry list,
  comparing by name and location alone isn't sufficient, since
  templates will match those for different instances, Fixes a crash on
  exit where the wrong function would get removed from the list, while
  the one we actually wanted to remove was still in the list, but then
  had its source code cleared. This would later crash the comparison
  function due to not being able to get its source location.
2012-07-11 23:39:17 -04:00
Rene Gollent
aeadcf457d Partially fix #8710.
- When an image was unloaded, its corresponding image info was never
  removed from TeamDebugInfo's list, leading to the latter containing
  a deleted object, resulting in various random crashes.
2012-07-11 23:37:36 -04:00
Rene Gollent
c4120026a5 Refactor previous commit.
- Keep knowledge of the existence and need to search the different
  frame sections contained within DwarfFile.
2012-07-11 21:56:15 -04:00
Rene Gollent
dfa21dfeab Fix #8508.
- When attempting to unwind the call frame, we now search for the appropriate
  FDE in both .debug_frame and .eh_frame. This mirrors gdb's behavior and
  works around the ever-changing whims of the gcc developers as to which
  section the requisite FDE/CIE resides in.
2012-07-11 19:12:59 -04:00
Alexandre Deckner
2218c029a5 Add localization support to WebPositive, patch by Humdinger
* Includes style fixes
* Functional fixes by myself, patch wouldn't build
2012-07-12 00:47:46 +02:00
Jérôme Duval
f190d7d580 app_server: cleanup of the previous commit 2012-07-11 23:56:38 +02:00
luroh
d0a19242a8 Add FreeType headers dependencies, #8716. 2012-07-11 23:51:49 +02:00
Alexandre Deckner
41a212d241 Update haiku-webkit build package. Use new version info 2012-07-11 22:43:22 +02:00
Jérôme Duval
9fb13e2c1e app_server: fixed FreeType headers dependency #8716
* added DrawingEngine.cpp
2012-07-11 22:12:38 +02:00
Jérôme Duval
36daae570c app_server: fixed FreeType headers dependency #8716
* added ServerFont.cpp
2012-07-11 21:44:46 +02:00
Alexander von Gluck IV
e278dc80e9 Flurry: Fix Mesa dependency for out-of-order builds
* Resolves #8717
2012-07-11 14:15:06 -05:00
Jérôme Duval
74880af10c app_server: fixed FreeType headers dependency #8716
* added source files which use ServerFont.h and ServerApp.h
2012-07-11 20:38:10 +02:00
Alex Smith
76a1175dbe Support for SMP on x86_64.
No major changes to the kernel: just compiled in arch_smp.cpp and fixed the
IDT load in arch_cpu_init_percpu to use the correct limit for x86_64 (uses
sizeof(interrupt_descriptor)). In the boot loader, changed smp_boot_other_cpus
to construct a temporary GDT and get the page directory address from CR3, as
what's in kernel_args will be 64-bit stuff and will not work to switch the
CPUs into 32-bit mode in the trampoline code. Refactored 64-bit kernel entry
code to not use the stack after disabling paging, as the secondary CPUs are
given a 32-bit virtual stack address by the SMP trampoline code which will
no longer work.
2012-07-11 18:29:15 +01:00
Fredrik Holmqvist
0174267ad4 Move ACPICA files into acpica subdir and use acpica subdir layout.
This matches layout in ACPICA and keeps a cleaner boundry between
Haiku and ACPICA code. The only haiku specific file in ACPICA is
achaiku.h and it will hopefully be included upstream soon.

Merging will be simpler as we can just replace acpica contents and
fix Jamfile and build errors in our code.
2012-07-11 18:50:06 +02:00
Alex Smith
97f5a0bd35 Fixed case-sensitive filesystem check. 2012-07-11 17:41:52 +01:00
Fredrik Holmqvist
e9bad6ecf5 Remove duplicate include. 2012-07-11 16:56:41 +02:00
Alex Smith
659bacac26 Compile arch_real_time_clock.cpp and arch_system_info.cpp for x86_64. 2012-07-11 14:43:44 +01:00
Alex Smith
d776fd53f7 Implemented arch_cpu_user_*() for x86_64, based on the x86 versions. 2012-07-11 14:19:19 +01:00
Alex Smith
fc644104ac Merge branch 'master' into x86_64 2012-07-11 12:24:47 +01:00
Alex Smith
609b308e64 Return B_NOT_SUPPORTED for shutdown if ACPI is unavailable (no APM on x86_64). 2012-07-11 12:23:18 +01:00
Rene Gollent
3691496222 Fix #8709.
- The buffer that the debugger used to retrieve messages from
  the debug port was slightly too small for the largest of the message
  data structs (currently 1100 bytes), causing some types of debug events
  to get truncated. This resulted in image creation/deletion events being
  received with a truncated image_info struct, which would result in several
  fields being returned with random values, most notably the text/data base
  and size fields. Consequently, searching those images for an address within
  them would fail, leading to #8709. It's possible but not yet confirmed
  that this bug is also responsible for #8710, need to test further.
2012-07-10 22:06:01 -04:00
Rene Gollent
36c85ca8df Fix add-on image unloading for shelf replicants (ticket #8708).
- The version of instantiate_object() that returns the image id from which
  the object was reinstantiated was not correctly returning it in all
  circumstances, only if it had to find/load the add-on itself. This caused
  problems for BShelf since the latter relies on that image id in order to
  determine what image to unload when replicants are removed. To remedy this,
  introduce an additional version of find_instantiation_func() that returns
  the image id in which the instantiation function was found, and make use
  of it in instantiate_object() in order to also be able to return the image
  id in that case.
2012-07-10 18:41:49 -04:00
Alex Smith
0962132cc6 Fixed Mac OS X 10.7 as a build platform (for GCC 4).
* Use gcc and g++ rather than cc and c++, as the latter now point to
  clang with recent Xcode versions and compilation of the host tools
  fail for various reasons with it.
* Replace the case-sensitive filesystem check with a more basic one,
  as diskutil no longer supports the behaviour of getting info for the
  volume that any path is on.
* Updated ReadMe with a correct list of prerequisites for OS X.
* GCC 2 builds are still broken due to a strange error that only
  occurs with a GCC 2 built on OS X 10.7
2012-07-10 19:33:39 +01:00
Matt Madia
f4eb5cf7e1 Process the sub-jam's opt packages before OptionalBuildFeatures
Several build features (including a future patch for WebKit)
are enabled only if a respective optional package is added.
Prior to this, none of those build features could be activated
in a sub-jam process.
2012-07-09 20:38:20 +00:00
Alex Smith
5670b0a8e4 Moved the 32-bit page fault handler to arch_int.cpp, use it for x86_64.
A proper page fault handler was required for areas that were not locked
into the kernel address space. This enables the boot process to get
up to the point of trying to find the boot volume.
2012-07-09 19:18:09 +01:00
Alex Smith
c8049a88a3 Enabled hardware interrupt handler, timers now work and threads are preempted. 2012-07-09 17:42:34 +01:00
Alex Smith
b5c9d24abc Implemented threading for x86_64.
* Thread creation and switching is working fine, however threads do not yet
  get interrupted because I've not implemented hardware interrupt handling
  yet (I'll do that next).
* I've made some changes to struct iframe: I've removed the e/r prefixes
  from the member names for both 32/64, so now they're just named ip, ax,
  bp, etc. This makes it easier to write code that works with both 32/64
  without having to deal with different iframe member names.
2012-07-09 16:43:01 +01:00
Alex Smith
85d4a8bc4e Fixed compilation of C code using ELF headers. 2012-07-09 14:35:01 +01:00
Alex Smith
8c5e747190 Don't need to shift the factor in system_time(), just store the already shifted value. 2012-07-09 12:25:49 +01:00
Alex Smith
5e9bb17da7 Renamed remaining i386_* functions to x86_* for consistency. 2012-07-09 12:14:18 +01:00
Alex Smith
ee7aba5117 Print symbol information in a stack trace. 2012-07-09 11:54:03 +01:00
Alex Smith
3b802628b8 Support ELF64 in the kernel.
This has been done by adding typedefs in elf_common.h to the correct ELF
structures for the architecture, and changing all Elf32_* uses to those
types. I don't know whether image loading works as I cannot test it yet,
there may be some 64-bit safety issues around. However, symbol lookup for
the kernel is working correctly.
2012-07-09 11:11:38 +01:00
Alex Smith
bc3093488f Changes suggested by Ingo: style fix, and a system_time optimization. 2012-07-09 09:03:11 +01:00
Matt Madia
7101dd4b29 Whitespace cleanup. No functional change. 2012-07-08 20:12:07 +00:00
Matt Madia
fbd52296f3 Consolidate baseURL variables. No functional change. 2012-07-08 20:07:24 +00:00
Alex Wilson
72cee743c2 Adapt LookTest to BMenuField API changes. Fixes #6648 2012-07-09 11:25:59 +12:00
Adam Hartford
8522ef247b Fixed minor UI issues in Screenshot (Ticket #8378)
Signed-off-by: Alex Wilson <yourpalal2@gmail.com>
2012-07-09 11:03:35 +12:00
Rene Gollent
fd04f5cc26 Fix image deletion events.
- Due to (most likely) a copy/paste error, image deletion events were
  mistakenly being sent to the userland debugger as creation events.
2012-07-08 10:50:46 -04:00
Alex Smith
93cba1da96 Fixed a bug resulting from a mistake in the boot 64-bit paging setup.
This was an interesting bug to find. Was getting spurious triple faults
in the slab allocator. The problem was that the boot paging setup code
was mapping all page tables it created into the virtual address space,
but in the kernel no areas were being created to cover them, so during
arch_vm_init_end() the pages for them ended up being freed and then
overwritten later on. Fixed by unmapping page tables after populating
them in long_mmu_init().
2012-07-08 15:03:23 +01:00
Alex Smith
cc248cf2b3 A couple of bug fixes.
* mmu_get_virtual_mapping() should check that the page directory entry is
  present rather than assuming there's a page table there. This was resulting
  in some invalid mappings being created in the 64-bit virtual address space.
* arch_vm_init_end() should clear from KERNEL_LOAD_BASE to virtual_end, not
  from KERNEL_BASE. On x86_64 this was causing it to loop through ~512GB of
  address space, which obviously was taking quite a while.
2012-07-08 11:56:06 +01:00
Alex Smith
5c7d52183c Implemented system_time() for x86_64.
* Uses 64-bit multiplication, special handling for CPUs clocked < 1 GHz
  in system_time_nsecs() not required like on x86.
* Tested against a straight conversion of the x86 version, noticably
  faster with a large number of system_time() calls.
2012-07-08 10:16:44 +01:00
Alex Smith
7444a55ce5 Merge branch 'master' into x86_64 2012-07-06 15:55:59 +01:00