The video buffer used for colorspace conversion was not aligned enough
(it could need as much as 64 bytes alignment) and did not include enough
padding (the functions work on 64 bytes blocks at once in some cases).
This code could be made simpler by using sws_scale_frame instead of
sws_scale, but that's more refactoring than I'm willing to do right now.
Thanks to k32n13 for providing a script to generate test videos!
Fixes#20200.
Change-Id: I8b51fd777201cdb899ce1834152066378b258521
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11343
Reviewed-by: waddlesplash <[email protected]>
(cherry picked from commit a0bfeae472eee24a9855e9685a507f6f85d91673)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11344
The BIOS module is used to run BIOS code in a "fake" machine so it can
be called from protected mode without having to go back to real mode.
To achieve this, it copies some parts of the physical memory into that
physical machine. It used to also map some of that memory directly
rather than copying it.
In hrev55544 this was changed to do a copy instead of a mapping. The
copy can then be written to, which opens the way for VESA BIOS live
patching.
However, the copy also means that the entire copied physical memory area
is accessed by the CPU. That area includes the VGA memory, which may not
exist or be masked. In particular this happens in QEMU by default (the
memory is only mapped when graphics mode is activated). In the case of
the NVMM virtualizer, this results in a crash of the virtualizer as
the guest attempts to access memory that doesn't exist.
To avoid the issue, the "fake" machine now includes a copy of the EBDA
(top of RAM) and the BIOS ROMs, but not the video RAM (that part of the
memory space is left uninitialized). This way, it doesn't matter if the
hardware has valid memory there or not.
With this fix, Haiku can boot even without the "Don't call the BIOS"
option set.
Thanks to sed4906 and waddlesplash for the help in locating the issue!
Fixes#20123.
Change-Id: Ide9b6900d2b2abe59138c0c370c8f37a856c4bcd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11337
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
(cherry picked from commit f8e60239a31589e57f0693f27bf731fa98ad1c52)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11338
- Move Philippe Houdoin back to active contributors (welcome back!)
- Add all GSoC contributors since 2012 who worked on directly
Haiku-related work (excluded: failed projects, projects related to
Trac or other tooling, and 3rd party apps). Students before 2012 were
already consistently added but we forgot to do it for some of them in
the next years. They are added to the "contributors" section (if some
of then do have commit access, they should be moved to past
maintainers or active maintainers accordingly).
Change-Id: Icc615b07bc2911ce81d13ee2a6305b7251405647
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11270
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
(cherry picked from commit 33f8320181e5809e89bcdcaedcd1c259992a19ff)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11275
Use the proper "Set" method instead of getting and modifying an existing
entry. This creates the entry if needed.
Fixes#20166
Change-Id: I6ad8bc379372a0b04b42b0f12a46e2c07d23f60a
- Less strict sizing constraints for the button so it can always occupy
the full height of the URL bar
- Use "draw after children" for the URL bar border so it is drawn above
the button and icon edges
- Remove insets that were there to attempt to make the outline visible
(I think)
- Use negative spacing to make the button border collapse into the text
control border so they look visually as a single control
Fixes#20124
Change-Id: I4be0c422c00acbc37a4197406a86a73c3193b9f5
This seems to fix the crash when opening a filepanel. I didn't test it
further. It may make more sense to revert all my attempted changes
instead and find a better approach.
Fixes#20128.
Change-Id: Ibf8d77a5f435abdbf4610666642235f2f727879f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11074
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This provides more intuitive behavior when writing drivers: a hook that
does nothing and returns an error should be the same as not setting the
hook at all.
Also, it allows the hook to fail only on some cursors (for example if
there are size or colorspace limitations in what the driver/hardware
can handle).
Change-Id: Ia7b8c7f61c1a5af3214653bb05d9568b1bba1147
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11030
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
CMD6 is a normal command on MMC, but an application command on SD. And
the parameters and response type are different.
Change-Id: I0583b8a98cf18dc4d77d28066673d0d07229e161
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10934
Reviewed-by: Adrien Destugues <[email protected]>
A similar change was made to address sectors instead of bytes.
The detection method is different in the initialization sequence.
Change-Id: I38af6e21b720d4437594431964a5244fb0d80848
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10933
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This is needed to handle MMC devices larger than 2GB. The protocol used
is different from how it's done in SDHC/SDXC.
Change-Id: I12edb1a4196c1e8f375886e9e5a5c1cef111e33c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10929
Reviewed-by: Adrien Destugues <[email protected]>
The command inhibit status bit is only set after trying to send another
command while the card is busy. But the clearing can be done without
waiting for that, which is simpler and faster.
This allows eMMC cards to get past the failed CMD8 used to differenciate
them from SD cards.
Change-Id: Id5a104e0d9bd6f9afe2c9e149bb95cb41f137fbc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10927
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Apparently, ACPI string attributes can exist but be NULL.
Fixes a crash on boot when the driver is enabled on my Chromebook.
Change-Id: I11a56eec5d86b7e348cbffb305270732633e7390
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10924
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This is how BeOS does it, and changing it break things.
The regression was in 42df4f9689.
Previously this was broken in d2d239f4c4
and fixed again in de9c53f8f5.
Add a comment explaining that it is done this way for BeOS
compatibility, hopefully this will avoid future regressions.
Fixes#19803.
Change-Id: I03d9f0aa379b2a0c729e1e0a2b148d88c7949376
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10181
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: John Scipione <[email protected]>
Tested-by: Commit checker robot <[email protected]>
The rule to add an executable or shared library to the Haiku image
automatically also includes the corresponding locale catalogs and MIME
database entries.
The locale catalogs for .a files linked in the executable are also
included, since .a files are not themselves added to the same package.
This makes sure the executable has all the catalogs it needs.
The jam rule was written assuming that NEEDLIBS would only contain .a
files, but that is not the case when compiling Haiku. Libroot for
example is also in NEEDLIBS (this makes sure it is linked by absolute
file path, whereas LINKLIBS would instead use -lroot and may link the
host system one).
Rewrite the rule to include catalogs from the selected target and only
its .a dependencies.
Fixes#19721.
Change-Id: I0315476030d2e6e4dea574bb5f254ce9b442f556
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10563
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Mozilla Location Service was killed by Mozilla.
This is a (mostly) compatible replacement that does not need a secret key.
The differences are:
- No API key: instead Beacon DB asks users to identify themselves by
user agent
- The content type for the request has to be set to application/json
Change-Id: I4fd95ff66f1d77c2380e393800c0a09a7f4f0cf5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10329
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Previous change accidentally switched to showing used blocks instead,
which is less useful.
Also fix an alignment issue in the header.
Change-Id: I5878c2336009c351a5f305ab510d42354d6db18d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10229
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
As discussed in #15102, atime behavior may be POSIX compliant by a
technicality, but it's not the expected behavior. In any case,
compliance requires documenting the functions that update atime.
Change-Id: I266b4d8d8a4a5d0f28f7c352d8942b417c2e31e4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10219
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
POSIX shell now supports $((expression)) for arithmetic expression
evaluation. This removes the need for an external command, which may not
be available on the build host.
Change-Id: Ibd1342c723c2320d77c4de5b1620be32086daa56
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9238
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Tracker creates a drag bitmap containing the selection being dragged.
There is a size limit if the selection is too large to avoid moving a
huge bitmap around.
There were two problems with the way this was done:
- The smaller rectangle was always centered on the cursor, even if that
was near the edge of the selection being dragged. In that situation,
most of the drag bitmap would end up being empty. Instead, move the
rectangle to align it with the edges of the selection if it goes
outside them. This makes sure we always use as much of the drag
rectangle as possible for useful data.
- Moreover, there was a regression on the rendering of the
"fade" at the edge of the rectangle. This is a transparency gradient
that should be at the edge only, to indicate that the drag bitmap has
been truncated, and that more (invisible) things are also being
dragged. In hrev58665, this transparency gradient was changed to cover
the entire width and height of the dragged bitmap, instead of just the
edge. This lead to most of the text being almost invisible in a lot of
cases. Change the code to use a gradient only near edges again.
Fixes#19429.
Change-Id: I395fda191dc61732e4bdc5287a09882cdc2b5f55
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10177
Reviewed-by: John Scipione <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
TFilePanel inherits from Tracker's ContainerWindow, which calls Run() in
its constructor.
This results in the constructor of the subclasses being run while the
window message loop is already running and processing messages.
Specifically, views are getting resized and moved both by the
constructor (in RestoreState) and by the resizing code (_ResizeBy
recursively relayouting all children).
This results in the cancel button being left at the wrong place at the
end of the constructor (or shortly thereafter). While that on its own
has no consequences because the layout is fixed when the window is
finally shown, the position of the cancel button just after the
constructor is relied on by applications which add custom widgets to the
window (Wonderbrush, Icon-O-Matic, Pe for example).
Make sure to keep the window locked while setting it up, so the message
loop does not interfere.
Fixes#19499.
Change-Id: I83f8fcfc56434e979b20043d8d652074f2f3cf5d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10176
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
- Check superblock magic. Overwriting the first sectors of partitions
using other filesystems than BFS is likely to cause trouble.
- Check presence of bootcode in the same version, as well as the correct
partition offset.
- Tell the user when the partition was already bootable and nothing was
done, hopefully this will finally stop people from thinking that
makebootable is of any use (it isn't, Installer already does the
work).
Change-Id: I792fb29166773e224266d35a4976ac90662e5cb6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10174
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Same thing is done in Installer to avoid confusion in case workspace
switching shortcuts are used accidentally.
Fixes#19278
Change-Id: I20af1a235f47f012a120c6a94511bfe94a2cdfbd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10145
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Timestamps in BFS are stored with a 16 bit subsecond precision. However,
a lot of files have this field set to 0 as they are created with APIs
that do not set a subsecond precsion value.
The previous format (introduced in hrev31057) did not track wether the
stored data was a 12 bit sequential number or a 12 bit subsecond
timestamp + 4 bit sequential number.
As a result, setting a timestamp with nsec=0 would read back a different
value (exposing the sequential counter to userspace).
Older versions of Haiku, and BeOS according to the Practical Filesystem
Design book, did not store a timestamp there. Haiku used to store the
volume UID (I don't understand why), and BeOS stored a sequence number
because the POSIX APIs at the time didn't allow to get and set the time
with nanosecond precision.
The Practical Filesystem Design already mentions that storing a
subsecond precision value here would have been better than their
workaround.
The new format relies on the fact that nanoseconds can only be in the
range from 0 to 999999999. After the conversion to a 16 bit value using
simple shifts, this result in a maximum possible value of 0xEE60. The
new format exploits that, and uses the range 0xF000 to 0xFFFF to
represent 0 timestamps with a 12 bit sequence number.
This allows the sequence number to be hidden from userspace entirely.
Fixes#19213.
Change-Id: Id80289a4331ecfbf2f1a35520b58a99227d1f1d6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10146
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
- Check superblock magic. Overwriting the first sector of partitions
using other filesystems is likely to cause trouble
- Tell the user when the partition was already bootable and nothing was
done, hopefully this will finally stop people from thinking that
makebootable is of any use (it isn't, Installer already does the
work).
Change-Id: I9352f1a3853626d093c04f8283771189395d023b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10171
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
The rule to add an executable or shared library to the Haiku image
automatically also includes the corresponding locale catalogs and MIME
database entries.
The locale catalogs for .a files linked in the executable are also
included, since .a files are not themselves added to the same package.
This makes sure the executable has all the catalogs it needs.
The jam rule was written assuming that NEEDLIBS would only contain .a
files, but that is not the case when compiling Haiku. Libroot for
example is also in NEEDLIBS (this makes sure it is linked by absolute
file path, whereas LINKLIBS would instead use -lroot and may link the
host system one).
Filter out .so files from the NEEDLIBS list when determining which
catalogs to include.
Fixes#19721.
Change-Id: I04604bd37c656f987dd17be8db6edffe88cee651
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10144
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Use the existing practice from other operatign systems (at least
some places in Windows XP do this): fill the checkbox with a square
to indiate that it is partially activated.
There is already a color difference, but that is not visible when the
checkbox is also disabled, and maybe a bit too subtle in general.
Change-Id: Icd4403374bd1cec3efeb3146e64b352caabc6d82
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10051
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
The arch_start code is quite similar for all efi architectures and may
be unified someday. Try to keep it as similar as possible by
synchronizing at least style fixes (variables renaming, line breaks,
format macro fixes).
No functional changes intended.
Change-Id: Ie4d54e73020e05a2af6755b7f5a65b92b4953080
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10106
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
The uart virtual address changes as soon as we apply the kernel memory
map. gUART is used only after that, from serial_init() onwards. So it
should use the virtual address, and not the physical address it was
previously created with while parsing the FDT.
Change-Id: I8c8a024fe564b49d6555f8e48f5ab31652d30708
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10068
Reviewed-by: Fredrik Holmqvist <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Prepare for replacement of modified version used in input_server addons.
Adapt existing callers.
The "this" argument is required, and the CALLED macro can only set it to
one single value for an entire file currently. So, in any case where at
least one standalone function or static method uses CALLED, the macro
has to use a NULL pointer for all calls.
Change-Id: I42fdcbeaf6dd039d4c4369818220ad85e0b8087e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10041
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
- Update texinfo to 7.2
- Update bash to 5.3
- Update ICU to 70.1
These versions are patched in haikuports.cross and allow cross compiling
from Debian sid with a modern GCC. Confirmed that both architectures can
build a filesystem, kernel and bootloader.
Get the name from the _STR method of the ACPI object.
Convert from UTF16 as needed.
In cases where the ACPI implementation provides multiple zones, this
allows to differenciate them.
Change-Id: If349207dcfd22cc9c3baf50b8f8d63d56dc62f21
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9739
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
_DrawHands modifies the high color when drawing the shadow. This
resulted in the middle dot being drawn with the shadow color.
Fixes#19633
Change-Id: I32886c56dfb22d4a83fca9164c326ddbc3fcf0de
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9601
Reviewed-by: Adrien Destugues <[email protected]>
This allows the controller to set up its own timing registers with
default values automatically. It is especially useful when working with
multiple MMC devices, as the controller can switch to the right speed
automatically for each transaction.
Change-Id: I356f5fd289ce55d72ad1cbb5cd27f019ea6f767b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9697
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This allows to do things in the order specified in the specification,
and keeps the calling code simpler.
Change-Id: I3c81b9501712db4b1cff09a7b146cd2436c74be3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9695
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
The default value can be too small, in which case data transfers always
fail with a timeout. Since we previously didn't enable the data timeout
interrupt, this would lock things up completely.
May fix#17031, #17604, #19081.
Change-Id: I422ac599515d1199cdf69daac6ceae649e116de4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9694
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Without this, the general error bit in the normal interrupt register
never gets set, and the corresponding interrupt never happens.
Change-Id: Ic950e55ab04ba7409a4f10bbab8f7a3ce9f08a49
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5057
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
- Return tags for methods that don't return anything
- ingroup without matching defgroup
- confusion between ref, a, and link tags (they are not the same)
- missed API changes (BObjectList templated owning, new url
encode/decode API)
- duplicate defgroup definitions
Change-Id: I94a31b04a10a62e71659522c5ed77098728c0843
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9689
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This makes the code safer and easier to read.
Things work up to the first sector read, that tries to use a DMA
transfer. The "transfer complete" interrupt for it never happens.
I assume I am not setting up the SDMA correctly, but I have not found
what I'm missing yet. The old code accidentally gets past the first
transfers while it's not actually complete, and fails in the same way
as the new code during the second one.
Change-Id: I7c82aa0da4aea91b6c60165a50d656115270a3c4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9682
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
CLucene and Taglib have not been updated since the switch to package
management. The old rules do not wrk since they relied on the
haiku-files.org domain. The libraries can be reintroduced as build
packages if we ever decide to resume the project that needed them
(general file content indexing).
Change-Id: Id7e3fb7c5b9070addaaa9763053d7d006f2b3484
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9690
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
The notify loop normally checks all pending condition variable entries
and notifies either all of them, or only the first one.
In the case where the first one is being removed from the condition
variable just as the notification happens, it is skipped, however, in
the case of NotifyOne, that should lead to attempting to notify the next
one.
It looks like an oversight in 6d3065508f,
where the notified threads counter was changed in a similar way, but
these two lines of code were not.
The problem seems pretty unlikely, as it would need:
- Multiple threads waiting on the same condition variable,
- The first one being removed just as the variable is notified
Change-Id: I0492c56b15b6b2871954e9114df046ec94539971
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9677
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
- On read errors, make sure to reset the read buffer pointer and not
return any more packets from the incorrectly read buffer
- Fix a case where an error didn't stop the processing, and we would
return a zero-byte packet to the network stack instead of an error
- Make sure to use different log messages for different error cases
- Use strerror where appropriate
- Add some TRACE calls to be able to fully trace the code.
There seem to be an error at the XHCI level where it has an "USB
Transaction" error (converted to a B_DEVICE_CRC_ERROR Haiku error code).
After that, despite cancelling that transfer and clearing the HALT
feature, it is not possible to receive anything from the receive
endpoint and the connexion is stuck (it appears sending data still
works, at least from the network stack point of view).
Change-Id: I58687a6eb7b19ba7e7ca594c55499b60fb8b5b26
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9658
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
- Update the file with the latest version (from
https://uefi.org/sites/default/files/resources/devids%20%285%29.txt)
- Tweak the Jamfile and awk script a bit to fix conflicts with acpi
device IDs structures, add missing const, allow tabs in the input file
instead of spaces (it is not formatted consistently)
- Match the hid or cid of ACPI devices to show well known names from the
file if available and we have nothing better.
Change-Id: Iea11ca44c8fef245d044a7535e7e7a13230be848
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9632
Reviewed-by: waddlesplash <[email protected]>
Add the following:
- CS and SS registers
- For 32bit: DS, ES, FS, GS registers (on 64 bit these are not part of
the iframe structure)
- CR2 register (fault address)
- Hardware interrupt number
- Hardware error code
The hardware error code, interrupt number and fault address are not
modifiable by the signal handlers. The other registers can be modified.
This is used for example in dosemu to intercept errors from JIT generated
code and resume execution. Wine can also make use of it.
In order to not change the size of struct mcontext, these are inserted
in a region of the FXSAVE structure that is available for the OS to
store some data (as documented by Intel) and that we didn't use before.
Fixes#7867
Change-Id: Ia3c27a2c728e32995196c646c1d78adf40e793ed
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9456
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Just the library name in parentheses doesn't look so great in the book
index (in particular for libroot in the "special topics" list). So include
a short description there.
Change-Id: I99ea8f85b042c5606b078aca906a0717aff6d46f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9452
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
The RTLD_GROUP flag to dlopen comes from Solaris. It makes the symbol
resolution for dlopen not use the global symbols from the current team
(anything that's already loaded). The loaded object must be explicitly
linked against any symbol it needs to use (or it can use dlsym to search
symbols in the global scope explicitly).
This is also how symbol resolution worked in BeOS, meaning we already
have the code to do this, and just need to enable it.
This can be used in dosemu, where DOS-like executable are linked against
their own C library and should not use symbols from libroot.
Fixes#19674.
Change-Id: I8d127c7812a31e231edb1e44edf70b868c2670e7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9450
Reviewed-by: waddlesplash <[email protected]>
The openboot mmu code does not like addresses above 4GB, so load the
kernel to a lower address. It doesn't really matter anyway, because on
sparc the kernel normally lives in a separate address space and uses
special instructions to access userland memory.
See #19597 for details, further changes will be needed here.
Change-Id: Iac6901f275667efef5e64d059daf4c96032a7baf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3573
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
The old BUrl constructor with just a string is now private. The new one
has a default value for the second parameter, but C++ doesn't exclude
the private constructor from the candidate functions search. So, the
default argument for the new constructor needs to be explicitly
specified now.
Change-Id: Idb1915649ea3d2c59e344801a9d4fe201f8040e9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9236
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
- Only patch remaining in Haiku is replacement of a #error with a #warning
in achaiku.h. This change is preserved here.
Change-Id: I34474dc2995864ea67ae4e7257b0f6cc8f6a0d64
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8901
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Add a section about various known problems and be more clear that this
is still unfortunately quite not well tested and experimental.
Change-Id: If8f83682e03f23097edd00a855423febaaff43ce
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9157
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
This is unused but defined in Darwin, BSD, and Linux.
It allows developers to feel good about specifying that they want to map
a file (which is the default behavior anyway). The value is 0, so
specifying this flag does not have any effect.
This allows to more easily compile code that uses the flag.
Change-Id: I7a880a3090d90b7e8cef5144e82f71beb61147a8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9152
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
Reviewed-by: waddlesplash <[email protected]>