Commit Graph

2999 Commits

Author SHA1 Message Date
Ithamar R. Adema
cd4265c803 * For ARM, we now always read from the serial for KDL input.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-18 01:15:13 +00:00
Ithamar R. Adema
ce30d635e3 * fix outdated commented dprintf (still useful for local debugging)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-17 20:00:21 +00:00
Ithamar R. Adema
1ca7a3536c * let arch_debug_call_with_fault_handler() at least do the call, though without fault handler for now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-17 19:58:14 +00:00
Philippe Houdoin
89fa2a8573 Move the boot images conditional selection in one place, to remove
possible mismatch images info between loader and kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-11 12:54:21 +00:00
Axel Dörfler
c5e2c3ec4d * Fixed a bug that would cause allocate_page_run() to be called with an out of
bounds index - the system would overwrite memory then and eventually KDL.
  This could best be reproduced with overlays after a while.
* Added a TODO comment that explains why free_cached_pages() might fail even
  though the page is actually free now.
* Added an explanation of how the sFreePageQueuesLock is to be used, thanks to
  Ingo for explaining it to me in the first place :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38895 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-08 07:40:42 +00:00
Philippe Houdoin
64141b1b74 Enable development splash logo for "official" --distro_compatibility.
The official release one stay the well-known one, just renamed to show it's trademarked images.
Fixed #6183.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-05 10:31:13 +00:00
Fredrik Holmqvist
01f964efeb Introduce a gSystemShutdown flag to be able to check if system is shutting down. ACPI Embedded Controller now uses polling when it is set to true.
This might help with ACPI shutdown issues, if not this change can be reverted. Not verified as it works on all my machines even without this.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-08 19:19:49 +00:00
Fredrik Holmqvist
b0c5015140 If source_index is != 0 it is hardwired to a GSI (Global System Interrupt).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-05 08:20:47 +00:00
Fredrik Holmqvist
688768804f The flag returns true if io_apic is disabled. Use the proper check so that it can be toggled while booting. (io_apic is not working though so no need to try unless you are interested in development).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-03 21:45:41 +00:00
Axel Dörfler
506894b6a8 * Return an error on initialization error. This fixes CID 1566.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38461 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 20:21:06 +00:00
Axel Dörfler
73b1cb8240 * The IOCache always needs a DMAResource; it was sometimes checked, and
sometimes not.
* This fixes CIDs 1755-1756, and 1505-1506.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38460 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 20:06:52 +00:00
Axel Dörfler
9910e4f1bf * The parent of an IOOperation cannot be NULL for completed operations.
* This fixes CID 1507.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 19:41:08 +00:00
Axel Dörfler
31d8c43d1c * Fixed CID 1262: waitForLock was not only -1 when exiting the loop, it didn't
make much sense to wake up any waiters either in this case.
* Fixed doubled semaphore deletion.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 15:17:23 +00:00
Axel Dörfler
46af4e7787 * Fixed CID 566 that was duplicated in blue_screen.cpp as well (but was not
discovered by Coverity for some reason): commands without arguments would
  overwrite memory (in this case the sConsole::arg_count only, though).
* Travis's copyright was missing in blue_screen.cpp.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 21:36:07 +00:00
Axel Dörfler
00400fd683 * Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:48:31 +00:00
Andreas Färber
e633c3c15b kernel_ppc: Disable fake serial output for frame buffer
Avoid writing to stdout if the frame buffer is enabled.

Part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-22 00:57:20 +00:00
Andreas Färber
ff46905b11 kernel_ppc: Remove unused commented-out variable
This is a leftover from the r25913 build fix. It used to be an out parameter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-21 12:50:17 +00:00
Andreas Färber
edaaaae8cd ppc: Implement arch_vm_translation_map_is_kernel_page_accessible()
This remedies "Current thread pointer [...] is an address we can't read from."
on entering KDL. Closes ticket #6163.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-21 02:12:25 +00:00
Andreas Färber
f290297bb6 ppc: Support other memory types
Let setting the memory type to B_MTR_UC succeed.

Add initial support for those memory types in the translation map,
pointed out by Ingo in ticket #5193.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-21 00:36:09 +00:00
Andreas Färber
31bce16715 ppc: Keep memory mappings set up by OpenFirmware
Revert r36886 and fix compilation of insert_virtual_range_to_keep().
The use of void* vs. addr_t matches the surrounding boot loader code
but should probably be revised in favour of addr_t.

create_area() in the kernel wrongly assumed a RAM-backed address range,
which was destined to fail since ranges below the kernel address space
were ignored anyway. Use vm_map_physical_memory() instead.

This fixes a hang once the frame buffer and other resources used by OF
get unmapped. Closes ticket #5193 again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-20 22:22:38 +00:00
Fredrik Holmqvist
59ada82f26 First version of reading IRQ's that returns proper results.
There are TODO's in here, because the ACPI module needs restructuring and which I will take care of.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-20 19:48:49 +00:00
Fredrik Holmqvist
6555d1e061 Mismatch with ACPI definition.
(Refactoring ACPI never looked so good...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-19 20:10:52 +00:00
Axel Dörfler
4af303359b * We need to reset the blockNumber, or else we'll discard the wrong blocks
which has rather desastrous consequences - thanks to Stippi for the heads
  up :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 16:44:51 +00:00
Axel Dörfler
c141a31f83 * Fixed CID 1447 which was an actual bug which completely voided the whole
discard mechanism eventually causing the conflicts between the file cache
  and the block cache it intended to fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 12:23:38 +00:00
Axel Dörfler
7ac6de66a4 * Removed a few superfluous "else" keywords.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 11:58:27 +00:00
Axel Dörfler
3e86abbd71 * Added an extra check as requested by CID 1567, but also added a comment why
this (and other checks) should not be necessary in the first place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 11:39:39 +00:00
Axel Dörfler
d74f5f5bb5 * Cleaned up the code which also closes CID 176 which was not a bug, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 11:26:23 +00:00
Axel Dörfler
adc92cdef7 * Fixed CID 1750: the team args could be leaked in exec_team() on error.
* Also fixed a leak of the same object in team_create_thread_start() I spotted
  while looking into it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-18 11:07:20 +00:00
Axel Dörfler
9189743037 * Style cleanup.
* Made an enum out of the mailbox type.
* Rearranged some code to get rid of CID 1328 which was not a bug, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-17 19:07:16 +00:00
Axel Dörfler
87de0cb4e1 * Fixed CID 1199-1202: only call the cache listener in case the open succeeded
(this might also have derefenced a potentially freed vnode).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-17 16:15:45 +00:00
Axel Dörfler
297e601d68 * Fixed CID 1293: a vnode reference, and the cookie could be leaked.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-17 16:08:50 +00:00
Axel Dörfler
6dcca7f6ab * Fixed CID 1472: "next" could be NULL and dereferenced.
* Simplified code a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-17 15:39:26 +00:00
Oliver Tappe
dbe1e23aa8 Optimised passing around of timezone a bit
* _kern_[sg]et_timezone() now accepts/passes out the timezone name, too
* adjust Time preflet and clockconfig to pass the timezone name into the kernel
  when calling _kern_set_timezone()
* ajust implementation of tzset() to fetch the timezone name from the kernel
  via _kern_get_timezone() instead of reading 'libroot_timezone_info'
* the Time preflet no longer writes 'libroot_timezone_info'


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-16 22:01:28 +00:00
Stefano Ceccherini
5574811008 CID 1653. symbolTable could be leaked in certain error cases.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-15 12:46:10 +00:00
Axel Dörfler
7a1123a7bf * Moved the "run me on the boot CPU" code to where it is actually used.
* Added a TODO that thread_yield() doesn't like to be called from the idle
  thread.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-15 10:17:42 +00:00
Stefano Ceccherini
5e2ed2f356 tempName was leaked in case team was NULL. CID 1702
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-08 12:11:46 +00:00
Oliver Tappe
e0ea55e0a0 * added get_timezone_offset() to kernel, which returns the offset in seconds
* made FAT add-on use get_timezone_offset(), this time correctly adjusted for
  the difference in units (minutes/seconds)
This makes the times in our FAT-fs agree with Linux again, at least :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-04 17:11:47 +00:00
Axel Dörfler
3426ce1404 * Thanks to Janito I had a closer look to cache_detach_sub_transaction(), and it
turned out it's pretty much broken. Not only did it potentially leak memory,
  it would also potentially replace the original data with a NULL pointer,
  making the current transaction non revertable. The code should now be much
  clearer. This fixes bug #6378.
* Changed a few "if (... != NULL)" into ASSERTs, since the code should bail out
  earlier in these cases already.
* Added a TODO comment to cache_start_sub_transaction() about its broken discard
  handling. This can cause FS corruptions in case the parent transaction is ever
  going to be aborted (which shouldn't happen in real life, though).
* Added a bit more and better comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-04 13:19:20 +00:00
Oliver Tappe
7e965f506d More consolidation of timezone code:
* dropped DaylightSavingTime from real_time_clock code in kernel, it was
  never really being used for what it meant (and just being referred to by
  gettimeofday(), which put a different meaning to it
* adjusted the syscalls get_timezone() & set_timezone() as well as their callers 
  accordingly
* got rid of get_rtc_info() and rtc_info struct in kernel, as it was only
  being referred to by the FAT add-on and that one (like gettimeofday()) put a
  different meaning to tz_minuteswest. Added a comment to FAT's util.c
  showing a possible solution, should the hardcoded GMT timezone pose a problem.
* fixed declaration of gettimeofday() to match POSIX base specs, issue 7
* changed implementation of gettimeofday() to not bother trying to fill struct
  timezone - it was using wrong values before, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 23:02:57 +00:00
Axel Dörfler
dac5d7fe4f * Made sure that at least the common case with a single writer exits write()
once the file descriptor is closed.
* Reinstantiated the FIFO functionality as long there are no writers yet as
  explained by Ingo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37883 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 19:27:52 +00:00
Oliver Tappe
96ac47e312 Made some progress with consolidation of timezone-related code:
* renamed syscalls _kern_[gs]et_tzfilename 
  to _kern_[gs]et_real_time_clock_is_gmt, as the filename part is no longer
  relevant (and the two corresponding parameters were removed)
* C++-ified and reworked clockconfig to use the info from 'Time settings' 
  to setup the timezone info during boot
* removed invocation of _kern_get_tzfilename() from tzset(), as the syscall
  no longer exists and tzset() is currently broken anyway
* adjusted the Time preflet to use the renamed syscall when getting/setting 
  the RTC info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 17:47:26 +00:00
Axel Dörfler
1ffa502964 * Cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37861 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 07:35:42 +00:00
Axel Dörfler
81fcd71e3a * Implemented a different way to notify waiting read()s when a file descriptor
is closed; their ReadRequest will now be notified with B_FILE_ERROR.
* This is a better fix for #5947, though note that I left the changes in
  Inode::ReadDataFromBuffer() in place, as I think this is what POSIX requires.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37860 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 06:55:28 +00:00
Axel Dörfler
8e855d520a * Changed some POSIX error codes to native ones.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-02 14:17:35 +00:00
Axel Dörfler
29145bab8a * Allow heap.cpp to compile if both, KERNEL_HEAP_LEAK_CHECK, and
USE_SLAB_ALLOCATOR_FOR_MALLOC are defined.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37837 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-02 11:10:51 +00:00
Axel Dörfler
da6c14611b * I see no reason for the fActive check here. Until Ingo enlightens me, this
fixes bug #5947, IOW BePDF should now close fine again :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37836 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-02 09:43:29 +00:00
Axel Dörfler
9061bf7e80 * Improved debug output.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-02 09:41:25 +00:00
Axel Dörfler
61729d9323 * Reworked the complete stack to allow more than one address per network
interface - this caused quite a number of changes.
* Network interfaces, and its addresses are now reference counted (not yet
  complete, though, InterfaceAddresses need to hold references to their
  interface as well).
* There are two known regressions of this commit that I will fix later:
  - you cannot remove interfaces anymore
  - IPv4 multicast was broken anyway, but now it's disabled, too.
* Moved a device_interfaces.cpp|h out of interfaces.cpp.
* The datalink layer chain is now instantiated per domain per interface,
  not just per interface anymore.
* When a buffer reaches the network layer, it has no known interface yet, ie.
  the ipv4|6|whatever modules need to set this manually.
* Added more debug output, and some new debugger commands, the control option
  is now printed in clear text.
* Added hash_address() function to the address modules. Added "const" to
  set_to_defaults() where needed.
* Fixed net_buffer's restore header functions offset use as reported by Atis.
* Improved buffer dump output, use the domain module to print the address if
  available.
* Moved net_buffer::type into the union, as it's not needed by the upper layers
  anymore.
* Moved IPv6 specific code from {add|remove}_default_route() to where it
  belongs, but disabled it for the time being.
* Completely discarded useless ipv4_datagram module.
* Added ping6 to the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-28 17:38:23 +00:00
Axel Dörfler
2ebcf777bf * Implemented support for the 'z' qualifier prefix for [s]size_t.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37773 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-27 15:39:47 +00:00
Matt Madia
2dc707e529 Utilize HAIKU_DISTRO_COMPATIBILITY for the boot splash. Currently only
'--distro-compatibility official' will result in the HAIKU logo being
displayed. When 'default' or 'compatible', only the icons will display. Due to
issues with generate_boot_screen, the "development" logo is not utilized.

Relates to #6183 and #6255


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-25 20:22:10 +00:00