[PATCH hurd] Update server handlers to return kern_return_error to fix -Werror=enum-int-mismatch warnings

2023-12-13 Thread Flavio Cruz
MiG expects those to return kern_return_t. --- acpi/acpi-ops.c| 4 ++-- boot/boot.c| 2 +- console-client/trans.c | 10 console/display.c | 8 +++ ext2fs/storeinfo.c | 2 +- fatfs/inode.c

[PATCH glibc] Update code to handle the new ABI for sending inlined port rights.

2023-12-13 Thread Flavio Cruz
For i686, this change is no op but for x86_64 it forces all inlined port rights to be 8 bytes long. --- hurd/intr-msg.c| 26 -- mach/msg-destroy.c | 12 +--- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c index

[PATCH gnumach] x86_64: Support 8 byte inlined port rights to avoid message resizing.

2023-12-13 Thread Flavio Cruz
If a port is inlined in a message, the user has to use mach_port_name_inlined_t to define each port. Out of line memory continues to use mach_port_name_t since that memory has to be copied to the kernel anyway. Both copyinmsg and copyoutmsg can be reduced to nothing (if we ignore USER32) as a foll

[PATCH hurd] Update hurd code to handle the new ABI for sending inlined port rights.

2023-12-13 Thread Flavio Cruz
--- libfshelp/start-translator-long.c | 16 proc/stubs.c | 8 +--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/libfshelp/start-translator-long.c b/libfshelp/start-translator-long.c index 0b16e7d0..f788f0a7 100644 --- a/libfshelp/star

[PATCH mig] x86_64: adapt MiG generated stubs to use mach_port_name_inlined_t for inlined port rights.

2023-12-13 Thread Flavio Cruz
For i686, we just change the code to use mach_port_name_inlined_t when defining the types. This is a no-op. For x86_64, there's a few things that are different: - In the server code, the server handler can get inlined ports and the array will be resized and cast as an array of mach_port_name_t.

Patch series to avoid message resizing for x86_64 (v2)

2023-12-13 Thread Flavio Cruz
Hello Sending the updated patch series with the warnings fixed. The only difference is in the glibc patch (added a cast when calling clean_inlined_ports) and the MiG patch, which required a 3 line change to add appropriate casts from mach_port_name_inlined_t* to mach_port_t* in server.c. Flavio