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
* 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
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
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
problems on various systems. Resolves#3441. Thanks!
+alpha3
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42104 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
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
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
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
- 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
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
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
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
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
* 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
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
regression), since the tables are bigger than that.
Accessing unmapped memory was doing bad things on
XenServer.
Fixes ticket #7497.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42068 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Begin using multi-architecture friendly formatting macros per ML
* Change uint32 snoozeTime to preferred bigtime_t per ML
* Thanks for the great feedback!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42062 a95241bf-73f2-0310-859d-f6bbb57e9c96
* add additional tracing to usb_disk lun inquiry
* cd and other optical disk devices can take some time to spin up
when plugged. Now we give them some time to do so to ensure we
can detect the media type properly if there is a cd in the drive.
Things non-mechanical (flash drives) will continue almost immediately
as there is no spin up time. The more attempts, the longer the wait.
We now try 7 times (28 seconds total), my modern usb cdrom takes
about 6 (21 seconds) of those cycles to be ready on power up and 4
(10 seconds) on media change while powered up.
* tested with usb media and cd media. Doesn't introduce any visible
delay to the user.
* the write protected status in lun is now correct for my usb cd device
on plug (it wasn't previously)
* still seeing it though as read/write. Looking at this now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42058 a95241bf-73f2-0310-859d-f6bbb57e9c96