Commit Graph
100 Commits
Author SHA1 Message Date
X512 2a4448e033 PicturePlayer: Use C++ virtual interface instead of C function table
Also use C function table instead of `void*` table function casts.

Improve type safety and readability.

Change-Id: Ie5f544b5c2bb9f2333fe3353462325dbfb4453ec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9656
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-01-04 22:56:43 +00:00
X512 ceaf2dd2d6 app_server: add gradient stroke support
TODO: HTML5 remote desktop client.

Change-Id: Ie2a32c4a498462578476d29a7000ea0b6f86810b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9625
Reviewed-by: waddlesplash <[email protected]>
2026-01-04 22:56:43 +00:00
X512 457cf2a9bf app_server: remove unreferenced server protocol commands
Change-Id: I48ec8a823bfc8660975cb6647b36f809f31374d3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10164
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-12-28 11:54:57 +00:00
X512 31f0983fb2 remove accidentally set executable file bit
Change-Id: I6eb500ee8dc3ad0e699c3c3ec5e07d4a75264eb5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9686
Reviewed-by: waddlesplash <[email protected]>
2025-10-10 15:31:55 +00:00
X512 47538c534f ClientMemoryAllocator: use map and reference count
- Resolve TODO about using map for server area_id lookup.

- Remove server cloned area delete request logic because it is less
  efficient and robust. Cloned area delete request messages may be
  missed if client message queue is full so it may cause cloned area
  leak.

- Implement reference counting for cloned areas instead.

Change-Id: Ie434ad36c2761ab0df00d341d55a6cea67b69830
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9667
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-10-06 15:10:48 +00:00
X512 5247c8c14f app_server: add screen ID for BScreen::ReadBitmap
For consistency and future multiple screen support.

Change-Id: I65363a0476d6244dfc9d2a3f26546fc43a9394f0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9679
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-10-06 15:10:16 +00:00
X512 b6f74b4905 app_server: do not pass BAffineTransform as-is over server link
BAffineTransform is not POD type and contains vtable. Reading it from
byte stream as-is will cause vtable corruption.

Change-Id: I1371444444ffa47f77a88f5f82b3fe6ea031b14c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9660
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-09-23 01:54:28 +00:00
X512 508ff7e831 app_server: consolidate BRegion sending format
Change-Id: I6ba33fb3583f1292af7119c16964f7bec16aef54
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9629
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-09-08 16:42:25 +00:00
X512 647aba7574 ServerLink: move Read*/Attach* method implementations to LinkSender/Receiver
Change-Id: Ib4dec3348b1438bbdfbaf18146d8aebb1978c39c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9631
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-09-08 16:42:25 +00:00
X512 03d4f24535 BPicture: fix clipping region storage
Part of #1133.

Change-Id: I0d727056dd7302f5a320987b83a27c9571e9684f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9609
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-08-25 14:32:39 +00:00
X512 ecc2dea520 TokenSpace: fix GCC 2 build
Change-Id: Iab645e1219cb3aeba21a01815fc0abc8c7b84b4e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9582
Reviewed-by: waddlesplash <[email protected]>
2025-08-06 16:52:33 +00:00
X512 2a70c45937 TokenSpace: fix token wraparound
Fix bug that allocating/freeing a lot of BHandler cause token wraparound
and overwriting existing assigned tokens.

Change-Id: I12527126644bca1793a8475dc487f131e6f83437
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9533
Reviewed-by: waddlesplash <[email protected]>
2025-08-03 22:50:25 +00:00
X512 c5f7786d06 BPicture: fix BeOS flattened format compatibility
- BeOS store strings with `int32` size prefix.

- Corrected `B_PIC_DRAW_STRING` field order to match BeOS.

Part of #1133.

Change-Id: I354fbf3e8a093ee21a87a6400a036751b442955b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9307
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Stephan Aßmus <[email protected]>
2025-05-27 12:56:03 +00:00
X512 a73ec86407 Shape: remove unused code
Change-Id: I5fc23415aa79d216f04cdf0481794b3fa4c35bdf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9304
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-05-21 20:23:53 +00:00
X512 1ab126b49f BPopUpMenu: install shortcuts into menu window instead of caller window
This reverts commit a502215d78.

Do not overwrite caller window shortcuts with popup menu shortcuts, otherwise shortcuts will stop working after closing popup menu.

Fixes #19439.

Change-Id: I2199ebd1d8cbfc6212c8fb9c1b6291f0d39ecb46
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9216
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-04-28 14:34:42 +00:00
X512 2b5263a0d9 drivers/framebuffer: do not attempt to map whole PCI BAR
Mapping whole PCI bar breaks 3D acceleration drivers that need to map
GPU memory with different caching attibutes, triggering caching
attributes mismatch KDL.

Change-Id: I41eaf56031f7095e259ed4c390c5e3fcdf99bc58
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9149
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-03-31 20:58:37 +00:00
X512 c02537f91b BPicture: add missing WriteSetBlendingMode method.
Actual blending mode writing is still disabled for now. According to
previous commit messages it cause problems with BView::Begin/EndLayer
API.

Change-Id: Ib3c58b05a949e556e9f14a57822b20cd259e12d4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8559
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-03-23 10:30:14 +00:00
X512 2e46e092db drivers/input: fix unkillable input_server
Change-Id: I8bcad3a166ccf45bac0832e9cfbdfbf601abbd13
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9138
Reviewed-by: waddlesplash <[email protected]>
2025-03-20 17:37:01 +00:00
X512 0a80f7f0e2 MediaPlayer: add 25% video scale menu option
Useful for high resolution video on low resolution screen.

Change-Id: I9e8c5ee4eee4ea39b14af896d126d412d087aa16
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9132
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-03-18 11:22:55 +00:00
X512 71368ea719 BPicture: remove point count argument from private draw bezier callback
Fill/StrokeBezier always have 4 points so passing point count is not
needed. Point count is not passed to BView drawing API and not stored in
BPicture data.

Change-Id: Iddb32bd493143d4450acfb76bdc56fc02136448e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8560
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-02-26 19:00:33 +00:00
X512 44cc18e1c4 app_server: make AS_SET_DECORATOR use the same error handling as other setters
Change-Id: Ia094099caddf2e53b0a5af814516e182c4404227
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8816
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-01-10 03:40:22 +00:00
X512 aa453612ef app_server: remove GPU->GPU rect shifting code
It is not used anymore and is very slow on real hardware because it read
GPU memory by CPU.

Change-Id: I06f7ca072220b758d849921e844bb2aa75342e2c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8680
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-12-18 17:26:41 +00:00
X512 8ea4167e8b kernel/vm: use DoublyLinkedList for VMCache areas list
Change-Id: I0c6a231f245fa542f5d90959755de1e6ba39eb8e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8685
Reviewed-by: waddlesplash <[email protected]>
2024-12-17 17:53:47 +00:00
X512 a681d5a772 app_server: drop obsolete comment
Change-Id: I78bf3b72e6f93c510201450fe9d792f37462f9b4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8679
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-12-14 15:15:12 +00:00
X512 5b2ecc7859 app_server: remove UpdateQueue
- It is a dead code that was not enabled for a long time.

- Asynchrous back to front framebuffer copying breaks update session
logic and introduce flickering artefacts.

Change-Id: Ifefd711e8dcd900443ba976f5efe128744fef2ca
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8617
Reviewed-by: Axel Dörfler <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-12-10 21:32:33 +00:00
X512 03f77fd7d9 app_server: drop legacy 2D hardware acceleration
- It is not enabled for a long time and is actually a dead code.

- It was tested before that it is actually slower on < 15 year old
  hardware so it have no any benefits. Modern CPUs have no problems
  with simple memory filling/copying operations. More complex
  acceleration operations are not supported in current accelerant driver
  API.

- It breaks double buffering and reintroduce flickering artefacts.

- It is incompatible with antialiased CPU drawing because GPU
  framebuffer memory reading is deadly slow and reading is required for
  alpha blending operation. So rendering buffer must be in CPU memory,
  offscreen GPU buffer can't be used.

- Hardware 2D acceleration for modern hardware is usually implemented
  using generic GPU rendering APIs such as OpenGL or Vulkan.

Change-Id: Ifb93c80cca4fc5f072e3166b29fc63b643ddb437
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8616
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Axel Dörfler <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-12-10 21:32:33 +00:00
X512 8776466030 BRect: add 2 argument width, height constructor
Left top position will be set to zero.

It is a common pattern to define `BRect` value with only width and height so it allow to simplify code a bit.

Change-Id: Ie14644843324c9e5bcc55e7cfbd557a8884559d3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8535
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-11-11 16:56:19 +00:00
X512 2b0aa4245b BShape: use BShape::Private class to access private methods.
Avoid declaring random friend classes in public header. Allow to access
private methods from arbitrary source if needed.

Change-Id: Iac2cf0ca59e483aa0657e3fe1fc47080c661cf8b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8534
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-11-11 16:56:19 +00:00
X512 e892302909 BShape: add move construction and assignment support
GCC 2 support is also provided with `MoveFrom` method.

Change-Id: Ifedaf0b1406a5a2cb6bf3465249cea0f360e06d6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8531
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-11-11 16:56:19 +00:00
X512 80fcf2df19 BRegion: add move construction and assignment support
GCC 2 support is also provided with `MoveFrom` method.

Change-Id: Ibd062f501fdeb5538ade6c84dcafb61cff70cc32
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8529
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-11-11 16:56:19 +00:00
X512 4bfc14b6c7 libroot: add posix_devctl() from POSIX.1-2024
Change-Id: I2ae748b2febcdeca0256e9033119dcf9988ccc74
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8556
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2024-11-10 20:08:54 +00:00
X512 30be30f25d Application: do not delete port owned by app_server
Change-Id: I99dbee8ed7900eda8bf0024e0893449e1b217255
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8516
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-11-01 16:07:04 +00:00
X512 cfe81d33f1 View: use ServerLink::AttachShape
No protocol change intended.

Change-Id: If2ca573a3b6763c62ab1ae0d8a11f783d6ecc233
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8473
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-10-20 22:30:56 +00:00
X512 2141d2fe3a input: fix KEY_power key code conflict with japanese \_ key
- This key code is inherited from BeOS, where it was used for the power
  key on Apple ADB keyboards
- Since then, we have introduced a new system for "multimedia" keys,
  that uses HID key codes directly instead of defining our own mappings
- The PS2 driver was using the HID keycode, but the USB driver was still
  using the BeOS defined one
- Japanese keyboards, which have a few more keys than US and European
  ones, reused the same keycode for something else

Since the power key does not need to be mapped by the keymap, move it
out of the way by using the HID keycode (key codes larger than 0x7f
cannot be mapped to UTF8 symbols). Remove all mentions of the use of
0x6b as a keycode for the power key, but add a note in the documentation
that BeOS did this.

To avoid further confusions, complete the documentation of extra
keycodes, and remove some definitions from keyboard_mouse_driver.h that
should have been in InterfaceDefs.h.

While researching this, I also found that some keys specific to Korean
keyboards were declared in the wrong place, as mapped codes instead of
unmapped ones (checked that by looking at the HID driver, which emits
these raw keycodes, and confirming that the mapped ones are not used in
any keymaps. Also added a note about the mapping of the extra modifier
keys in Japanese keyboards, which I think may be a problem since these
map to invalid UTF-8 byte sequences, but this is what the existing
keymap does, so leaving it as is for now until we can determine if this
can be changed or if we have to keep it that way.

Change-Id: I6a198a0840cba7739bdc78e0c65e5d8fd23956c9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8047
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2024-08-19 16:00:25 +00:00
X512 ebe72d868b build: put each package build entry to separate line, adjust code style
Change-Id: Ib682fc276a08131e69fcdaa2cdba8c22d9e54a1a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8004
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2024-08-12 20:40:07 +00:00
X512 e2c588b594 build: put each image build target to separate line
It helps to simplify to view difference and apply patches.

No functional changes.

Change-Id: Ia29368eceaeb3306990c09da77c4527eff87c72a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7932
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-08-08 16:21:35 +00:00
X512 05c46731b8 GLInfo: fix double free
BView and BColumn are owned by its parent objects and deleted automatically.

Fix crash on exit.
Fixes #14535
Fixes #18331

Change-Id: If4bc4268542d4975b60f8f42c2868ec8a1a0a83f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7901
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Alexander von Gluck <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2024-07-25 17:34:19 +00:00
X512 65a86bce72 kernel/fd: use function table to identify file descriptor type
It allows introducing new file descriptor types without editing enumeration every time. Anonymous FDs will be needed for Mesa
OpenGL/Vulkan drivers to reference GPU memory buffers and other driver objects that can be referenced as FDs from userland.

This change breaks private VFS API compatibility.
No behavior changes intended.

Change-Id: Iac109aad420b0b6aae704b38619436e01dcf4969
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7838
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-07-23 20:23:19 +00:00
X512 372509626a kernel/riscv64/arch_debug: port from x86 version
Change-Id: I917d7d81c83098d3b42551190338c73f221450d2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7897
Reviewed-by: waddlesplash <[email protected]>
2024-07-23 17:29:16 +00:00
X512 747004e221 tracker: fix file name edit field misalignment
Font size have no direct relation with actual text line height and is a
choose of a font designer. Ascend + descent formula should be used to
calculate actual text line height.

`BRect` `right` and `bottom` coordinates are inclusive so it means for
example `BRect(0, 0, 15, 15)` width is 16 pixels.
`BRect::Width`/`Height` methods returns `right - left` and
`bottom - top` accordingly so actual size in pixels bigger by one. There
is some confusion that string width and rect width have a difference by one.

Change-Id: If29f8a2e6804a90e63dd2d92580160160229392f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7668
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-05-19 08:57:07 +00:00
X512 8b5f785b6a kits/package: allow to set BPackageResolvable to parsed string
Change-Id: I8ebb46b12a8af229d05994eb3cdd2d8180edc903
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7555
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-03-28 14:37:49 +00:00
X512 02463fb461 kernel/int: consolidate interrupt vector number to int32
This is no-op for 32 bit platforms because `int32` is defined as `long` there.

Change interrupt vector number from 64 bits to 32 bits for 64 bit platforms.

Change-Id: I52d1ad616cab16488804e9733c7afaf772a670ba
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7507
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2024-03-06 16:03:45 +00:00
X512 629f071bb9 pci: extend MSI interrupt vector number to 32 bits
Also increase MSI message data size to 32 bits according to PCIe spec.

Remove 0xff check for MSI interrupts because it is potentially valid
interrupt vector number. Reject 0xff only for legacy pin interrupts.

- MSI-X supports up to 2048 interrupts per device that do not fit to
`uint8`.

- Non-x86 systems may use separate interrupt vector ranges for
hard-wired interrupts and MSI interrupts so `uint8` is not enough to
represent all of them.

Change-Id: Iaf9ffb197ec23db0f97ffe3ea756d28d7bfc8705
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7433
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-02-28 23:17:42 +00:00
X512 1701b7b537 usb_webcam/uvc: fix 64 bit build
Change-Id: I17ae9fd139283b98684c4156bea0d2bb25113654
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7435
Reviewed-by: waddlesplash <[email protected]>
2024-02-27 19:19:55 +00:00
X512 d72ca12e19 app_server/BitmapManager: fix memory leak caused by missing token remove
`BTokenSpace::NewToken` put all allocated tokens into `fTokenMap` so
`BTokenSpace::RemoveToken` should be called for tokens that become unused to avoid infinite `fTokenMap` growth.

Change-Id: I0aee709234143ceaf4416d63b38fb2a26eb8f891
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7417
Reviewed-by: Axel Dörfler <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2024-02-19 14:30:21 +00:00
X512 0e268215f3 app_server/Screen: fix finalization order to avoid use after free
Change-Id: I41ba464a365be9449dfd47b2248746b9a338769e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7416
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Axel Dörfler <[email protected]>
2024-02-19 14:29:37 +00:00
X512 e925863d95 kernel/DPC: allow adding callback to queue if already added (will do nothing)
It caused DPC list corruption when adding already added callback before
this change.

Change-Id: I81928795f91c6cf46fe3be4a8a042e07b9203161
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7363
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2024-02-01 14:42:14 +00:00
X512 3433ec7334 vfs/preallocate: fix file descriptor leak
Fixes #18724.

Change-Id: I1a17a36106d13853888342a397ecd03087b1fdcf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7299
Reviewed-by: waddlesplash <[email protected]>
2024-01-06 15:20:09 +00:00
X512 21fa9b3bb4 registrar: use smaller minimal timer interval
Fixes #4576.

Change-Id: Ie0788ba9b48597bb9cead20b3125af251b5b59cf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2888
Reviewed-by: Fredrik Holmqvist <[email protected]>
2024-01-03 19:18:46 +00:00
X512 0bb43cbf5a poke: map area into client team in POKE_MAP_MEMORY ioctl
After this change `POKE_UNMAP_MEMORY` ioctl will became redurant and
an alias for `delete_area()`. Areas will be automatically deleted
on team exit.

Change-Id: I336b49c2281abf064e1bf28d908c7b2c5afd4df0
2023-12-23 22:26:26 -05:00
X512 b5ba4badb3 app_server: clear background immediately on expose
Reduce stamping artifacts when application slowly responds to redraw requests.

This fixes and reintroduces logic previously removed in hrev53711.
Previous logic was incorrect as it didn't take the possibility of multiple
invalidations of different kinds (expose, update request) into account.
Now separate update and expose regions are maintained and only expose region
is cleared immediately.

Change-Id: I0fd98cb1b45ccec285154e8c0d8e3a1400d156d7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6067
Reviewed-by: Jérôme Duval <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2023-12-13 11:31:27 +00:00
X512 33365c2a0d AbstractSocket: do not bind AF_LOCAL socket when connecting
Fix connection error for AF_LOCAL sockets.

Change-Id: I2e822f34e64434ccdbdd484f1647de2a8a6232d7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7166
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2023-12-11 18:09:42 +00:00
X512 f866c78257 poke: fix setting area name in POKE_MAP_MEMORY ioctl
Fix regression caused hrev52304

Change-Id: Ibadaed3a098d33787c18f243c55c546ff8c2d03b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7099
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2023-11-13 08:19:39 +00:00
X512 81c282f4b5 bus_managers/pci: dynamically register host controllers
Fixes handling of multiple PCI host controllers.

Change-Id: Iba79f2aa51b88d37bb6f5ec02d5cd3f470284ddb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6958
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2023-10-07 01:30:05 +00:00
X512 84a57f9a2d riscv/mmu: fix some code typos in hrev57298 that lead to boot failure
Change-Id: If0b2fded13ac079e505038fb51d05f7cfcb3d161
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6953
Reviewed-by: waddlesplash <[email protected]>
2023-09-25 21:20:56 +00:00
X512 98895d0417 riscv64/mmu: use struct bitfield for flags and std::atomic
Fixes some PTE concurrent access bugs.

Change-Id: I09ec56861fae389a8a3e228b17a3921b85202c8b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6949
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-09-25 15:50:59 +00:00
X512 f83058d1ed elf: add PT_RISCV_ATTRIBUTES program header
Attribute is ignored for now.

It is supposed to check ABI compatiblity and reject loading incompatible images.
Haiku currently do not use multiple ABIs for RISC-V so it is safe to ignore attributes.

PT_RISCV_ATTRIBUTES program header is produced by default in GCC 13 and Clang 17.

Change-Id: I4659e9bacbf34a2a0bc16b34c2aaa37232d700fa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6948
Reviewed-by: David Karoly <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-09-25 15:20:13 +00:00
X512 f8bd82e198 xhci: report link status for USB 3 ports
The values come from XHCI table 5-27.

PS_PLS_MASK is the same as PORT_STATUS_SS_LINK_STATE.

Change-Id: Ie54abcda0c33738fe7dc5caa4e4f3abae3b40adc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6488
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2023-07-31 21:44:21 +00:00
X512 ae65daec10 kernel/riscv64: remove unused code
Change-Id: Ia140c962b3ae70faac3c9ae19125b0e245326586
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6743
Reviewed-by: waddlesplash <[email protected]>
2023-07-24 21:18:04 +00:00
X512 eb4b22adca virtio_mmio: fix logic
- Use separate descriptor count. Queue length and descriptor count do not need to be the same.

- Assotiate cookies with descriptors, not used queue index.

- Use mask instead of modulo operator for better efficiency (queue length is always power of 2).

Change-Id: I5f053287e2a0cfad8da25053c63c42aa06fb238d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6710
Reviewed-by: waddlesplash <[email protected]>
2023-07-24 21:00:56 +00:00
X512 0235c04759 util/Bitmap: add more utility methods
Change-Id: I021c2fafa01266e8a38c1cb2fd748fd89a4b75bd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6742
Reviewed-by: waddlesplash <[email protected]>
2023-07-24 21:00:56 +00:00
X512 da70563f7f interface/Size: fix -Wdeprecated-enum-float-conversion warning
Change-Id: I8ca131f57495f974a79292a42ba5ce42a47d2437
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6702
Reviewed-by: waddlesplash <[email protected]>
2023-07-15 13:10:33 +00:00
X512 1d9ad3fad7 mmu/riscv64: implement global page mapping support
ASID allocation is not supported yet, so always use ASID 0 for user pages for now.

Change-Id: I021e77dae692c22984bc625dd0588362bece45b7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6698
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-07-11 17:34:31 +00:00
X512 5d39116f10 fdt: copy FDT data from kernel_args to kernel heap
Change-Id: Id7b18c582357b8eeaa2e6b7956da3db35ebded3a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6599
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2023-06-30 00:29:58 +00:00
X512 2075595c78 fdt: expose FDT data to userland
Change-Id: I05c935735f54874630c641bf8ab7cbd378b71ba0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6598
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: Niels Sascha Reedijk <[email protected]>
2023-06-30 00:29:58 +00:00
X512 4a6b1e401c repo/riscv64: Bump HaikuPorts build-packages for riscv64
Change-Id: Idba2bc58c46deaa182ad27011b5a99e3231afe56
2023-06-16 14:44:48 -05:00
X512 edd8e471a6 xhci: fix root hub endpoint companion descriptor size
Fixes "SuperSpeed device without an endpoint companion descriptor!" error on riscv64.

Change-Id: Ie4d02997f17b68ea89bb3f3c8ab1ead99a2fc07a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6596
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2023-06-11 21:55:51 +00:00
X512 b3e608ab9f keymaps/Japanese: Japanese keymap do not use Alt Gr key
Set modifier keys as following:
- Right Cmd -> Right Alt
- Right Opt -> Right Win

Change-Id: I61a193a7690fca8486ecd2c17eb672d24d69e241
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6471
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2023-05-25 17:38:43 +00:00
X512 ef240bfffa makefile-engine: fix for riscv64
Change-Id: I85c18ce812db65606ef6aba64f81b80872618263
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4317
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2023-05-20 14:05:57 +00:00
X512 fe3f797dc8 kernel: fully remove arch_check_syscall_restart
Currently there are only stub implementations that are never used.

Change-Id: I00dc42cad7d24f40761b93e325d3df8683745b57
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6441
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2023-05-17 05:34:59 +00:00
X512 6550124ea0 riscv64: implement memory barriers
Change-Id: Ied9e6dad38968cee6e828dff6ec413e6281086cd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6436
Reviewed-by: waddlesplash <[email protected]>
2023-05-10 20:55:18 +00:00
X512 b3fc3bc71d kernel/arch/riscv64: disable debug stack trace when sending signal
Writing stack trace outside of kernel debug mode may cause locking
related assert violation.

Change-Id: I7c77dd8a8de2831d528b6307b19a576398c1edb9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5256
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-04-30 23:47:26 +00:00
X512 b01b40745e kernel/arch/riscv64: restore SSTATUS register first
It cause to disable interrupts needed for correct trap frame restore.

Change-Id: I8b60023c9a878eb147796e76adb344c377cfcf11
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5255
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: X512 <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-04-30 23:46:57 +00:00
X512 3b91d73bce bus & drivers: drop PCI_x86
Change-Id: I494deaf24a4793a5e0fe9fa46ecdce32f65e616a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6226
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
2023-04-25 15:54:32 +00:00
X512 f33c8f9ce2 busses/pci/designware: add
Change-Id: I43dfc8a4b4fabe7b892e98aa192db95ba1b9378f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6225
Reviewed-by: waddlesplash <[email protected]>
2023-04-25 15:54:32 +00:00
X512 912bdb2aca busses/pci/ecam: add
Change-Id: I8decef75a2d7f30bb5d45fc4774037d6a92bc161
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6223
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2023-04-25 15:54:32 +00:00
X512 a23ac85fa9 bus_managers/pci: split PCI controller to separate add-on
busses/pci/x86: add
Other add-ons are in following commits.

Change-Id: I7a77bfaef0e8995917b4b54c8369d7075533ec26
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6220
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2023-04-25 15:54:32 +00:00
X512 97b7c7719d bus_managers/pci: move MSI handling to generic code
Change-Id: I6194838b7b46222f720fc328bb4512fdb88a9c8a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6222
Reviewed-by: Adrien Destugues <[email protected]>
2023-04-25 15:54:32 +00:00
X512 e942269a1f pci: generic MSI interrupts support
Change-Id: Ib4fd23f6bca867a2b428bf2651234d719ee08672
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6221
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2023-04-25 15:54:32 +00:00
X512 0ec55fb069 framebuffer: fix NULL framebuffer address for non-x86
Change-Id: Ib24d4c04da102f40907002f59550635616b9a290
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6313
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2023-04-11 15:57:01 +00:00
X512 11e68e0c54 apps/haiku3d: Swap then unlock to fix rendering on glvnd
* The old non-EGL OpenGL kit did some weird stuff (tm) trying
  to fix Be's mistakes around OpenGL locking.
* The EGL libglvnd OpenGL kit (coming soon) no longer does wierd
  unlocking behaviours. This fixes a "white screen" for Haiku3D

Change-Id: I2a6804098516c0cd9ec63ccd1eb25c0813452933
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6267
Reviewed-by: waddlesplash <[email protected]>
2023-03-30 20:03:20 +00:00
X512 a83ee8cf77 build: enable network driver build for riscv64
Change-Id: I954c78a98103abdf98ed96e1a639e9d9e2f0ddc8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6235
Reviewed-by: Fredrik Holmqvist <[email protected]>
Tested-by: Automation <[email protected]>
2023-03-20 22:14:15 +00:00
X512 5865e68ef2 kernel/riscv: timer freq calculation, interrupt handling fixes
Change-Id: Ibe8b260a49c1b6e51df06f82b6c3a066c44accb1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6219
Reviewed-by: X512 <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-03-20 16:52:27 +00:00
X512 604b6f7e9b fdt: implement '#address-cells', '#size-cells' support
Change-Id: Ic1c1e75b9352d676da6f07ebd05b0491bd41f7a8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6218
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-03-20 16:52:27 +00:00
X512 408a7e27d9 kernel: implement clear_caches for riscv64
Change-Id: I28296725ce22b47e94481abf794b92cf4ffd98a5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6217
Tested-by: Automation <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2023-03-20 14:24:26 +00:00
X512 1e4146cbc6 RISCV64VMTranslationMap: add missing instruction cache invalidation
Change-Id: Ie4081a3642e5de84865895e81aaa28f090b2c5eb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6216
Tested-by: Automation <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-03-20 14:23:54 +00:00
X512 6d13693a78 kernel/int: increase max interrupt vector count
Change-Id: Ia16e66a7bdac37019e6256405b9f10024909c69a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6215
Tested-by: Automation <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-03-20 14:23:54 +00:00
X512 1bb04f4a43 preferences/Keymap: use transparent background, reduce stamping artifacts
Change-Id: I4109808f81659f86c8dd75f16e38b5eca6fdbc9c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6188
Tested-by: Automation <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2023-03-20 07:28:54 +00:00
X512 7003a4cb1d i2c/ocores: add fdt compat for HiFive Unmatched
Change-Id: I325a33d224e4711c71e324ac2afeae2dffc8aaeb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5952
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
2023-01-09 14:54:02 +00:00
X512 f6c51a5dc4 BBitmap: add ability to specify client-defined area
Change-Id: Iae1550b3088b0f6c26b0b91d9acb7f7cbcc721d3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4369
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: X512 <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2023-01-02 18:07:53 +00:00
X512 ad59349e16 runtime_loader: dequeue disposable image before calling image finalizers
Fix #18181.

Change-Id: I2e86d72eb2b32b807364fb45126080540e62dcdf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5970
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-12-29 18:58:09 +00:00
X512 85d9d60045 ocores_i2c: add
Change-Id: Ib48f8dbc0bf485b469b590f1472994d250b6ed45
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5900
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2022-12-20 15:11:32 +00:00
X512 215b685f7f kernel: Drop non-standard GNU inline assignment syntax
* We needed this previously due to our gcc2 compiled kernel.
* Now that our kernel is always latest gcc, we can move to the
  c++20 syntax for inline assignment.
* Improves compatibility with clang, less GNU-specific stuff

Change-Id: Ib7272a0a52554a31e9a0e788fd3f031db9049795
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5898
Reviewed-by: Alex von Gluck IV <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2022-12-13 20:49:53 +00:00
X512 54fb2560ae bus_managers/fdt: register multiple fdt/compatible attrs
Change-Id: I71efa8051d104d4b6a627071cd231c887271eb2e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5901
Reviewed-by: Adrien Destugues <[email protected]>
2022-12-13 01:55:44 +00:00
X512 36fa4b7e7d debug_server: improve stack trace
Change-Id: I94fc9e9e547f0191484cad8e7dc6e8b233b981db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4299
Reviewed-by: David Karoly <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-12-12 15:49:12 +00:00
X512 fa557843f2 riscv: use atomic CSR bit set/clear operations, refactor
Fix race conditions that cause broken timer interrupts.

Change-Id: I78e13a18d394b1566977e894a1def16a66c9ca5f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5883
Reviewed-by: X512 <[email protected]>
Reviewed-by: Alex von Gluck IV <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-12-11 18:43:15 +00:00
X512 bf2786efae kernel: enable ramfs build and automount to shared_memory directory
This will allow proper operation of POSIX SHM API (shm_open etc.).
Now memory files are stored fully in memory and do not affect disk
storage (except swap if enabled).

Change-Id: Iae3ce1afa968df72e82198e598a273cbf7cb0269
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5802
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-12-01 02:09:21 +00:00
X512 f0e187c3fd kernel: follow-up to hrev56619: use new(std::nothrow)
to handle allocation failures.

Change-Id: I15d84b24dcea17741382b1d5285acf6219a39811
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5868
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-11-30 23:48:17 +00:00
X512 8426404f97 pch_i2c: move to its own directory
Prepare for more i2c host controller drivers.

Change-Id: I85a4faf8376ffb501994a2bd89e0903bd89ed8cf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5856
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2022-11-30 05:11:51 +00:00
X512 8be7c1aa58 kernel/file_cache: fix VMCache object leak
Fixes #18039.

Change-Id: Ia3cda69f91e56efb36931a97028378ec3ceb2100
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5801
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2022-11-05 13:27:15 +00:00