Commit Graph

39676 Commits

Author SHA1 Message Date
Ingo Weinhold
5e78920c12 * Added platform_debug_get_log_buffer() which returns the debug log buffer and
its size.
* Added "Display current boot loader log" item to the "Debug Options" boot
  loader menu. It displays what the boot loader has logged so far. Might be
  interesting for early boot issues when serial debugging is not possible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 23:31:57 +00:00
Rene Gollent
73df2f2086 * Add validation of the RSDP checksums.
* If we detect ACPI 2.0 or higher, the spec says we should use the XSDT rather
  than the RSDT. Attempt to do so, falling back to the RSDT if the former fails
  to be mapped/validated.
* Refactored acpi_find_table into a templated version to account for the fact
  that the XSDT exports different pointer widths for its links to other tables
  than the RSDT.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 22:01:43 +00:00
Rene Gollent
62e1d169f8 * TeamMemoryBlock: Now stores whether or not the block it represents is writable.
* RetrieveMemoryBlockJob: Make use of get_memory_properties() to retrieve the
  block's protection bits and mark it appropriately.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 20:51:27 +00:00
Michael Lotz
051cb22a2a Add serial_io, a simplistic BSerialPort based command line tool that prints what
it reads from the specified port and writes what gets input on stdin. It
currently hardcodes the basic setup of the serial port.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 20:40:33 +00:00
Rene Gollent
e8d73efc9c Should have been part of previous commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 20:18:01 +00:00
Rene Gollent
36dc99a323 Add private get_memory_properties() syscall which allows one to retrieve the
address protection bits as well as the wiring flags for an arbitrary address
in a team's address space. Will be used in the debugger for the purposes
of the memory inspector/editor, in order to determine whether it can in fact
allow editing for the currently inspected address range.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 20:17:14 +00:00
Joachim Seemer
d63c093e9d * Updated all catkeys from HTA. Thanks all translators!
* Since the updated Time prefs didn't make it into alpha3, I kept the older
   catkeys in SVN.
 * Renamed "Application name" to "System name" manually in the catkeys of
   CodyCam and Poorman. For some reason HTA didn't get these changes in the
   code...

+alpha3


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 18:35:56 +00:00
Joachim Seemer
7660ac681c Update user guide and welcome pages and their translations. Thanks everyone. +alpha
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 18:03:25 +00:00
Ingo Weinhold
8bcc50c336 * Added arch_debug_blue_screen_try_getchar() and arch_debug_serial_try_getchar()
which don't wait for a character, but return -1 when no character is
  available ATM. Implemented correctly for x86 only.
* Changed the semantics of the debugger_module_info::debugger_getchar() hook.
  It is supposed to return immediately now.
* Adjusted usb_keyboard accordingly. Hacked UHCI's debug_process_transfer() to
  achieve that. It does now start, check, or cancel a transfer. Split
  UHCI::ProcessDebugTransfer() into StartDebugTransfer(), and
  CheckDebugTransfer() accordingly, and also added a CancelDebugTransfer().
  The latter seems to have issues. Michael, please have a look. I have no clue
  what I'm doing. :-)
* Adjusted kgetc() to poll all possible inputs using the new
  functions/semantics. This allows to use any input (USB, PS/2, serial) in KDL.
* Removed the no longer needed "serial_input" command.
* read_line(): Also support 0x7f as backspace code. That's what xterm sends.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 17:15:42 +00:00
Axel Dörfler
21d6b8e2c7 * Let checkfs collect stats of how the data streams are used.
* Would be nice to only show this when an extra argument had been passed to
  checkfs, but I'm afraid the API is somewhat limited, not to say pretty much
  unusable for the task.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 15:24:54 +00:00
Ingo Weinhold
b23ab34f66 I accidentally committed r42122 and r42123 to the signals branch. Merged into
trunk. The interesting part of r42122 was already fixed in the trunk, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 14:53:02 +00:00
Rene Gollent
2a55b919c3 Revert r42120.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 11:24:02 +00:00
Rene Gollent
b52c7c5943 Remove unnecessary calculations from BListView::ScrollToSelection(). At least I
see no useful purpose to the distinction made here.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 02:27:17 +00:00
Rene Gollent
6b0007fb77 Rename rsdt_length to xsdt_length to avoid future confusion.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 02:12:07 +00:00
Rene Gollent
c4b692da1a Revert r42105. The rsdt_length field on the rsdp structure we have declared is
actually misleading, since it specifies the length of the xsdt rather than the rsdt. Furthermore, it is only available if the BIOS reports ACPI version 2.0 or greater. Since we don't currently support the XSDT, we can't rely on that field and have to resort to the previous approach of mapping the RSDT header in order to determine the length of the RSDT itself.

Also add validation of the RSDT's checksum so we don't get tripped up by BIOS's with broken tables.

Should fix boot problems that were introduced by r42105.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 01:56:29 +00:00
Scott McCreary
462d9019a5 Updated KeymapSwitcher which fixes an issue in the 06-11 builds, from S.Zharski.
+alpha3  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 00:38:05 +00:00
Ingo Weinhold
24df65921b Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
  handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
  support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
  of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
  [set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 00:00:23 +00:00
anevilyak
ccd31b93f1 Remove mistakenly added extra line.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 21:09:53 +00:00
anevilyak
28ca7ae021 Since the time preflet is now layout-aware, scrolling the zone list to
the current time zone must be done after layouting has been done, else 
the view doesn't have a valid size to work with yet. Resolves #7681.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 20:51:27 +00:00
jackburton
14282c1e55 We already know the rsdt length in advance,
so map the whole table without freeing and remapping later


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 19:54:56 +00:00
anevilyak
4bcb62ee96 Applied patch by Jean-Loïc Charroud that reworks the anyboot MBR to fix boot
problems on various systems. Resolves #3441. Thanks!

+alpha3



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 19:14:49 +00:00
anevilyak
6e70e32dec If we found a header, but it wasn't the one we were looking for, reset the header ptr to NULL after unmapping. Otherwise a bogus header pointer was potentially returned, leading to an invalid mem access. Fixes boot problems on my Athlon following recent ACPI changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 18:38:15 +00:00
scottmc
ede349bfd9 Updated KeymapSwitcher OptionalPackages with new icon from ZuMi.
+alpha3


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 16:35:36 +00:00
humdinger
a2ac370037 Fixed a copy&paste error spotted by korli. Thanks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 15:54:41 +00:00
leavengood
a2a9adafa2 Change value of constant to better reflect the name. It had a different name
when I first added it to the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 14:11:30 +00:00
anevilyak
448068fcce Fix incorrect ref count comparison spotted by Ingo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 14:07:55 +00:00
leavengood
5fb0d3a67a Add some padding to the time zone display.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 14:03:15 +00:00
leavengood
d2d65a82c8 Fix #7672 by applying humdinger's patch then adding more:
The server name is checked while typing and if it is not valid the text is made
red. Invalid entries cannot be added to the list.

Also made the server add message be the invoking message so that the enter key
works to add a server.

After adding a valid server the text is cleared.

Valid servers names are alpha-numeric with periods, dashes and underscores.
Could need some things added but that should cover 99% of the cases.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 14:01:03 +00:00
bonefish
ea71d6eb4f Made Remove() safe to be called with an element not in the list and changed its
return type to bool to indicate whether it was.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 13:02:41 +00:00
Rene Gollent
fca88f7b78 Fix minor oversight in previous commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 01:02:22 +00:00
Rene Gollent
c1ae7caf60 * Modify LocatableEntry and Domain to use a similar strategy as
TeamMemoryBlockManager to avert a race condition where an entry
  could be acquired while another thread was about to delete it.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 01:00:25 +00:00
Ingo Weinhold
2e8aa19c63 * The boot loader does now set up an IDT that allows it to catch processor
exceptions (page faults and the like). The handler dumps possibly interesting
  information (registers, a (numerical) stack trace) to the serial output, and,
  if possible, also to the screen. That should help debugging boot loader
  crashes.
* For the IDT the boot loader sets up for the kernel the descriptors are set up
  the same way, so until the kernel initializes the IDT itself (arch_init()) the
  facility is still in place and can thus catch very early kernel boot crashes.
  Unfortunately the on-screen output doesn't seem to work anymore at that point,
  so the output only goes to the serial port...
* ... and to the debug syslog -- dprintf() does now append it there after
  debug_cleanup() has been called. Seems to work fine in qemu, but when I tested
  it on real hardware the debug syslog was gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 00:08:42 +00:00
Rene Gollent
8c3c117201 Adjust ReleaseReference() to also return the previous ref count as
AcquireReference() now does, and adjust all callers that relied on the previous
return type.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 22:31:33 +00:00
Rene Gollent
d73d70971b * Various cleanups prompted by previous commit review:
- Introduce TeamMemoryBlockOwner to act as an interface for blocks to
	  remove themselves from the manager when they expire. Consequently remove
  	  TeamMemoryBlock's direct reference to the block manager.

	- Simplify GetBlock() to remove unnecessary recursion.

	- Store dead blocks in a doubly linked list instead of another hash table.

	- Minor style fixes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 22:20:39 +00:00
Michael Lotz
36986acbbd * Finish the port to the new tty module. Back when I left off last time it was
only halfway finished. The way it is supposed to work is that there are two
  tty cookies, representing the system and the device side. Reads and writes
  coming from the system and going to the device are using the system cookie
  while reads and writes coming from the device use the device cookie.
* Move writing to the device into an output thread, similar to how reading from
  the device works. This isn't necessarily a good idea and might be moved back
  into the write hook again to ensure that writes can be made blocking. Right
  now if you just write and then close, the writes will most likely be canceled
  before every going out to the device.
* Removed the read and write lock mutex. They aren't necessary as the tty layer
  will serialize the reads and writes anyway.
* Made simply copying the data to the write buffer the default implementation of
  the OnWrite callback and removed the OnWrite in ACMDevice. The ProlificDevice
  didn't provide an OnWrite hook before, so it would've never written anything.
* Break out the baud index to speed mapping into an inline function. Since the
  defines might change in termios.h just adding an array is a bit fragile (it
  already missed one entry and would've been broken for certain speeds).

This should make usb_serial usable for some (most?) cases. I've tested this with
an Arduino board that uses an FTDI interface. As mentioned above, since writes
currently just write into the tty layer and don't wait for the data to be
flushed, and since close doesn't wait for the output buffers to be drained
either, a simple write and close (as in "echo a > /dev/ports/usb0") will in most
cases cancel the output before it is written to the device. I'm looking into
a few ways to fix that next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 17:35:46 +00:00
Michael Lotz
5cc760197a Apply limits to the transfer lengths. At least in the case where a one byte FTDI
header is used that only has 6 bits of length info this would've previously
potentially overflowed depending on the input size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 17:20:27 +00:00
Michael Lotz
f7868b8f1a * Print the speeds even though they are marked as not used (as the baud index
is inside the cflags) since stty for example sets them.
* Turn off debug output by default and fix a warning due to that.
* Some minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 17:18:06 +00:00
Michael Lotz
6e72f897f4 Remove the global lock and the documentation for it. It was specific to the tty
driver and doesn't apply to the generic module.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 17:12:51 +00:00
Joachim Seemer
9254b0c4df Applied localization patch by mt, removed About menu/window as we decided those are not needed with system software. Fixes #7656. Compiling, working cosmetics, I'd say +alpha.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 13:43:06 +00:00
Stefano Ceccherini
b047e41327 Map the whole table also in acpi_check_rsdt().
Also print the table revision, after the vendor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 12:59:14 +00:00
Stefano Ceccherini
fb764e7fda Map the whole table, and not just the header. Fix #7497 again (hopefully
correctly now)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 10:34:41 +00:00
Rene Gollent
3e3ce16f5e * Introduce TeamMemoryBlock[Manager]. These provide an interface to raw memory
page data of the target team.
* Jobs: Add RetrieveMemoryBlockJob which performs a background read of the
  target team's memory. Used by InspectRequested() to perform the actual work.
* TeamDebugger: Added InspectRequested() hooks to allow clients to ask for
  a memory read to be performed.
* Introduce InspectorWindow and MemoryView to form the basis of a memory inspector.
  As yet these are more or less stubs and not yet hooked in.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 01:58:39 +00:00
Rene Gollent
a99d0dd7b7 AcquireReference() now returns the previous ref count.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-10 01:55:12 +00:00
Stefano Ceccherini
ad12a198d7 Revert r42068 and r42069, since they didnt' make sense (but something's
obviously fishy)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-09 21:01:57 +00:00
Alex Wilson
813147df83 * Add new SetInsets() methods to BTwoDimensionalLayout, BSplitView
* Also add equivalent methods to the layout builders in LayoutBuilder.h
* BSplitView now calls BControlLook::ComposeSpacing(), instead of BSplitLayout
* part of #7447


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-09 20:58:52 +00:00
Axel Dörfler
cd511790d7 * Minor coding style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-09 19:52:49 +00:00
Rene Gollent
b697e03121 * Create and store a messenger to the team window at creation time. Use said messenger to correctly resolve the TODO previously attempted in r42066.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-09 19:39:26 +00:00
Rene Gollent
87aa57e88e Fix minor oversight in previous commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-09 19:32:14 +00:00
Rene Gollent
930a139d70 * LockTarget[WithTimeout()]: Detect potential race condition where the looper
is deleted/recreated in between retrieval and lock. Report failure if so. 



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-09 19:29:52 +00:00
Michael Lotz
4e1d68e994 Style cleanup, 80 char limit. No functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-09 19:00:37 +00:00