diff options
author | Flavio Cruz <flaviocruz@gmail.com> | 2023-03-07 02:01:13 -0500 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-03-08 00:44:07 +0100 |
commit | 8e5e86fc13732b60d2e4d14152d92db1f1ae73f9 (patch) | |
tree | 07aacb1367209c143667ebaac6f838fcddad3e89 /i386/i386at/ioapic.c | |
parent | e52779eb879ea8a14bb293e97c989f52eb439cbb (diff) | |
download | gnumach-8e5e86fc13732b60d2e4d14152d92db1f1ae73f9.tar.gz gnumach-8e5e86fc13732b60d2e4d14152d92db1f1ae73f9.tar.bz2 gnumach-8e5e86fc13732b60d2e4d14152d92db1f1ae73f9.zip |
Align mach_msg_type_t and mach_msg_type_long_t with the same alignment as uintptr_t.
With this change, any 64 bit code using the IPC subsystem without relying on
MiG will work without any changes. We have a few examples of this inside gnumach but
also in the Hurd servers. For example, in hurd/console/display.c
typedef struct
{
mach_msg_header_t Head;
mach_msg_type_t ticknoType;
natural_t tickno;
mach_msg_type_t changeType;
file_changed_type_t change;
mach_msg_type_t startType;
loff_t start;
mach_msg_type_t endType;
loff_t end;
} Request;
This will now work correctly in 64 bits, without requiring any explicit padding.
As a follow up, we can simplify mach_msg_type_long_t so that we
only need an 8 byte structure where the second field will include the
number of elements for the long form. This is already included in
mach_msg_type_t as unused_msgtl_number.
Message-Id: <ZAbhOfOzsb8qPFs6@jupiter.tail36e24.ts.net>
Diffstat (limited to 'i386/i386at/ioapic.c')
0 files changed, 0 insertions, 0 deletions