Commit Graph

4613 Commits

Author SHA1 Message Date
Oliver Tappe
5c112a16ff Reset mbstate to initial in wcrtomb() with 0 wchar. 2011-11-23 19:31:13 +01:00
Oliver Tappe
9161a59746 Fix build of libroot-addon-icu with gcc4. 2011-11-22 23:27:17 +01:00
Oliver Tappe
bb79d18614 Drop no longer needed multibyte stuff from glibc. 2011-11-22 18:56:41 +01:00
Oliver Tappe
b4435552a7 Drop our old, limited multibyte implementation. 2011-11-22 18:38:43 +01:00
Oliver Tappe
cc5eca7554 Activate our new multibyte implementation.
* add implementations for the following multibyte-related
  functions:
    btwoc()
    mblen()
    mbrlen()
    mbrtowc()
    mbsinit()
    mbtowc()
    wcrtomb()
    wcswidth()
    wctob()
    wctomb()
* the implementation of the above function live in a symbol
  named __<name>, the above symbol names are defined as a weak
  alias to the internal ones - TODO: we need to make sure to
  only invoked the internal functions (i.e. prepended with __)
  in order to avoid problems with symbol preemption.
* deactivate the limited mb implementation we provided before,
  as well as respective stuff from glibc
2011-11-22 18:31:27 +01:00
Oliver Tappe
28ae43d033 Add multibyte-support to ctype-locale backend.
* add actual converter methods MultibyteToWchar() and WcharToMultibyte()
  to locale backend and implement them in the ctype subpart
* add management code for maintaining converters referenced by mbstate_t
2011-11-22 18:17:58 +01:00
Oliver Tappe
e0eb1d38c4 Let MB_CUR_LEN lookup the actual value.
* instead of yielding 1, MB_CUR_LEN now looks up the correct
  value in the ctype data provided by the locale backend
2011-11-22 17:32:39 +01:00
Oliver Tappe
bf5ff48092 Use TLS and converter manager in locale backend. 2011-11-22 17:17:18 +01:00
Oliver Tappe
bcadc4ca66 Start work on multibyte-support in locale backend.
* add ICUThreadLocaleStorageValue, which will be used to maintain
  per-thread ICU converters
* add ICUConverterManager
2011-11-22 16:55:39 +01:00
Oliver Tappe
3a57f54e4d Glibc-features: protect against existing __STDC_ISO_10646__.
* we define it in our compilers now, but glibc expects to define
  this itself - we let our own version overrule
2011-11-22 16:34:18 +01:00
François Revol
a8eaac6934 U-Boot: board-specific setup is already in build/jam/board/ 2011-11-22 02:27:11 +01:00
François Revol
75e4ff02d0 Style cleanup 2011-11-21 03:19:31 +01:00
François Revol
1cdb5905fc U-Boot: Print the panic message also to the serial port
It seems puts() currently hangs when used in panic(), will need some more work.
2011-11-21 03:00:07 +01:00
François Revol
70ac17baab U-Boot: Cleanup; s/arm/$(TARGET_ARCH)/g
U-Boot is not only about arm...
2011-11-21 01:36:43 +01:00
François Revol
d1460ff57b ARM: Rename flash and mmc base generic targets
They are not so much arm-specific, really.
We now have haiku-flash-*image variations,
and haiku-mmc-image.
2011-11-21 01:30:02 +01:00
François Revol
1d6f7e86ee ARM: Use proper Jamfiles for u-boot/arch/ subdirs 2011-11-21 01:22:32 +01:00
François Revol
e3591817b3 ARM: move kernel calling code to arch specific file
* needs some more cleanup.
* had to change gUBootOS to 32bit to avoid a linker bug.
2011-11-21 01:22:32 +01:00
Michael Lotz
8a5fb91c07 Stricter tests for PCI bridges at interrupt routing.
Validate the candidate child device a bit more by checking the device ID
and the base and subclass of the device. We don't even know if the child
is still on the PCI bus and some firmware may mark disabled devices by
simply invalidating one of these values. Possibly fixes #8111.

Added TODO concerning that we might not want to fail at all since we
ensure that we matched all devices after routing preparation at which
state we would notice any missing child devices anyway.
2011-11-18 13:03:46 +01:00
Michael Lotz
35632c56af Fix harmless oversight marking pages with the wrong state.
While the log of hrev35726 says that unusable page ranges are supposed
to be marked with PAGE_STATE_UNUSED and allocated ones with
PAGE_STATE_WIRED, both actually marked with PAGE_STATE_UNUSED.
2011-11-16 11:06:46 +01:00
Michael Lotz
4200073542 Tiny optimization by skipping a no-op iteration.
We initialize the physicalPagesEnd from physical_memory_range[0] so
re-evaluating that range is a no-op.
2011-11-16 10:56:16 +01:00
Michael Lotz
3dbd9c1148 Fix the LIMIT_AVAILABLE_MEMORY debug option.
When limiting the available memory by reducing the page count it may not
be enough to just limit sNumPages. Depending on the physical memory map
non existing pages between ranges (sNonExistingPages) would still be
added up and later subtracted from the sNumPages, resulting in a wrong
max page count. Also due to the fixed removal of non existing page
ranges the actually available memory would usually not be the amount
set via LIMIT_AVAILABLE_MEMORY.

Instead we now calculate the available memory when going through the
physical memory ranges and limit/exit as soon as we've reached the
desired amount of available memory (also ignoring further non-existing
pages).
2011-11-16 10:40:56 +01:00
Michael Lotz
c12f51264b Ensure the sanity of the stats returned, make the TODO a Note.
* Ensure that we don't underflow the used_pages count and that used
  + cached pages don't overflow max_pages. As there is no locking the
  values may change while we read them so that such situations could
  arise.
* Make the TODO about the missing locking into a Note explaining the
  above, as it is not really worth adding locking here. The stats are
  only informational.
2011-11-14 19:07:37 +01:00
François Revol
478dc9887e PPC: Preliminary untested boot support for Common Firmware Environment
CFE is used in the upcoming Amiga X-1000 dualcore PPC board.
* Largely inspired by the OF and U-Boot code.
* Still largely stubbed out.
* The loader builds but I don't have a machine to test it. Anyone interested?
2011-11-14 01:31:50 +01:00
Michael Lotz
5247333d36 Don't do the heap size calculation when using the slab as heap.
The initial heap size calculation only applies to the legacy/debug
heap, so it isn't needed when using the slab as kernel heap.
2011-11-13 22:20:24 +01:00
Michael Lotz
a28bab4790 Add the object pointers to the panic messages. 2011-11-13 22:18:29 +01:00
Michael Lotz
3733c51d38 Fix the computation of used memory and add a TODO.
* The altered used pages calculation of hrev43168 wasn't correct, as
  the inactive page queue may (validly) contain mapped pages as well.
  Those would then get counted twice (as they are included in
  gMappedPagesCount already).
  Instead we calculate the used pages from the total page count, minus
  everything we account for otherwise. Doing it this way is possible
  without introducing any additional counters, as all the counts to
  subtract are already present (as opposed to some of the ones that
  would be needed for adding the counts up). Fixes #8109.
* Added TODO regarding the problem of not locking any of the counters
  which runs the risk of them getting modified while we haven't yet read
  all of them.
2011-11-13 22:02:36 +01:00
François Revol
9638d7f4aa ARM: Use the serial port as console for now, as VT100.
* Subclass ConsoleNode as VTConsole
* use it to implement SerialConsole
* Use it as the default console for now to simplify debugging.
VTConsole could probably be factored out into boot/platform/generic/ someday.
2011-11-12 23:58:56 +01:00
François Revol
9e5b2c347a Fix typo. 2011-11-12 17:35:02 +01:00
Ingo Weinhold
ee87d51d97 Build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43218 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-07 20:03:57 +00:00
Michael Lotz
a5c94bedb6 * Verify the MP config table signature and add some more sanity checks.
* Also reset the local and IO APIC base physical addresses when configuration
  failed.

Should fix #8102, but is otherwise untested for lack of old enough hardware.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-07 19:23:33 +00:00
Ingo Weinhold
fae2ce1945 Enlarge threads and ports KMessage notification stack buffers
They were too small for all the fields added. This is why the system
profiler skipped "thread added" notifications.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-07 19:22:02 +00:00
Ingo Weinhold
40287cba78 Add opt-in panic for KMessage buffer overflow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-07 19:19:34 +00:00
Ingo Weinhold
65d7b9312b x86: Also set iframe::orig_{eax,edx} in TRAP_ERRC(). This makes
get_iframe_registers() in arch_user_debugger.cpp return the correct
eax/edx values also when the kernel was entered via an exception that
doesn't push an error code (e.g. page fault).
Fixes incorrect eax and edx values shown in Debugger and variable values
based on them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-06 12:53:20 +00:00
Michael Lotz
90c6930ebb Add VM page allocation tracking similar to what happens in the slab already.
Introduces "page_allocation_infos" and "page_allocations_per_caller" KDL
commands.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-04 18:07:07 +00:00
Michael Lotz
905c75a595 Tiny pointer style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-04 18:04:22 +00:00
Michael Lotz
75088a863b Move AllocationTrackingInfo into a header. This way it can be re-used outside
of the slab code. It is generic as it only contains the link to a tracing entry
and not any application specific info.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-04 18:03:34 +00:00
Michael Lotz
6d41dfd95c Move some of the trace entries around so that we know the page(s) they concern
and add that info to the trace entries.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-04 18:01:15 +00:00
Michael Lotz
865a0be1c0 Add optional stack traces to {Allocate|Free}Page[Run] tracing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-04 17:58:50 +00:00
Michael Lotz
448d8d6fcb Indent cleanup only, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-04 17:57:42 +00:00
François Revol
9b74cc6637 Further reduced the region allocated for the uncompressed data to 8 MB.
Wastes a bit less time allocating pages for nothing, and makes debugging
mmu support less verbose as well.
The (gunzipped) tar file is still less than 4MB and will never be 8MB
realistically anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-04 17:54:31 +00:00
François Revol
e5081da48c Large cleanup of the bootloader shell code. Replaced the x86 comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-04 17:22:01 +00:00
Rene Gollent
58ce0a2c12 When calculating the number of used pages for a get_system_info() request,
also include inactive pages. Fixes #7714.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-03 20:51:17 +00:00
François Revol
a4b79a647b Allow up to 2MB for the kernel, since it's already over 1MB.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43150 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-03 02:48:33 +00:00
François Revol
983b0dfa95 Fix building libroot on m68k.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-03 02:41:14 +00:00
François Revol
b29bbc9a80 Fix the bootloader build for m68k.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-03 01:09:49 +00:00
Ingo Weinhold
951c43ff21 Allocate VMKernelAddressRange and VMKernelArea in their own object
caches to reduce slab area fragmentation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-02 22:04:37 +00:00
Ingo Weinhold
f8154d172d mmlr (distracted) + bonefish:
* Turn VMCache::consumers C list into a DoublyLinkedList.
* Use object caches for the different VMCache types and the VMCacheRefs.
  The purpose is to reduce slab area fragmentation.
* Requires the introduction of a pure virtual VMCache::DeleteObject()
  method, implemented in the derived classes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-02 21:14:11 +00:00
Ingo Weinhold
b0ee1941f3 Revert change that did accidentally sneak into the style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-02 19:12:46 +00:00
Ingo Weinhold
ab3d6a3eaf Style cleanup. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-02 19:09:48 +00:00
Michael Lotz
3d1f420b23 bonefish+mmlr:
* Add "allocation_infos" KDL command. Can be used to print the allocation info,
  including the stack trace, given an object cache, slab, allocation within a
  slab or allocation address. It can also optionally be filtered by team/thread.
* Fix the AllocationDetailPrinterCallback to not access a possibly invalid
  trace entry for printing a stack trace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-02 16:12:48 +00:00