diff options
author | Flavio Cruz <flaviocruz@gmail.com> | 2023-01-27 01:41:02 -0500 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-01-27 08:55:38 +0100 |
commit | e6fec85fbd4ef5b54353c4b4eda2b4f2b5484a26 (patch) | |
tree | 7fd5fe86c75c8f538e3cf1fcff416b06be21ab91 /i386/include | |
parent | 248d0c7a784f33c7a682cee038ebcaf33af7cb36 (diff) | |
download | gnumach-e6fec85fbd4ef5b54353c4b4eda2b4f2b5484a26.tar.gz gnumach-e6fec85fbd4ef5b54353c4b4eda2b4f2b5484a26.tar.bz2 gnumach-e6fec85fbd4ef5b54353c4b4eda2b4f2b5484a26.zip |
Change i386 RPC subsystem to include descriptor instead of real_descriptor
This should avoid issues with glibc and hurd as introduced in
https://git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=b379d5afdf65cce11426ab0349a3778b3fd632f5
since we are changing the types of the parameters when implementing the RPCs to match the previous
declaration using `struct descriptor`.
Message-Id: <Y9Nx/qCRtVruxGwb@jupiter.tail36e24.ts.net>
Diffstat (limited to 'i386/include')
-rw-r--r-- | i386/include/mach/i386/mach_i386.defs | 11 | ||||
-rw-r--r-- | i386/include/mach/i386/mach_i386_types.h | 40 |
2 files changed, 8 insertions, 43 deletions
diff --git a/i386/include/mach/i386/mach_i386.defs b/i386/include/mach/i386/mach_i386.defs index 4694522b..965d5c3b 100644 --- a/i386/include/mach/i386/mach_i386.defs +++ b/i386/include/mach/i386/mach_i386.defs @@ -43,9 +43,6 @@ MACH_I386_IMPORTS type descriptor_t = struct[2] of uint32_t; type descriptor_list_t = array[*] of descriptor_t; -type real_descriptor_t = descriptor_t; -type real_descriptor_list_t = array[*] of real_descriptor_t; - import <mach/machine/mach_i386_types.h>; #if KERNEL_SERVER @@ -69,13 +66,13 @@ skip; /* i386_io_port_list */ routine i386_set_ldt( target_thread : thread_t; first_selector : int; - desc_list : real_descriptor_list_t, serverCopy); + desc_list : descriptor_list_t, serverCopy); routine i386_get_ldt( target_thread : thread_t; first_selector : int; selector_count : int; - out desc_list : real_descriptor_list_t); + out desc_list : descriptor_list_t); /* Request a new port IO_PERM that represents the capability to access the I/O ports [FROM; TO] directly. MASTER_PORT is the master device port. @@ -107,10 +104,10 @@ routine i386_io_perm_modify( routine i386_set_gdt( target_thread : thread_t; inout selector : int; - desc : real_descriptor_t); + desc : descriptor_t); /* Fetch a segment descriptor set with a prior i386_set_gdt call. */ routine i386_get_gdt( target_thread : thread_t; selector : int; - out desc : real_descriptor_t); + out desc : descriptor_t); diff --git a/i386/include/mach/i386/mach_i386_types.h b/i386/include/mach/i386/mach_i386_types.h index bfa91ca0..f5177fb5 100644 --- a/i386/include/mach/i386/mach_i386_types.h +++ b/i386/include/mach/i386/mach_i386_types.h @@ -34,46 +34,14 @@ /* * i386 segment descriptor. */ -struct segment_descriptor { +struct descriptor { unsigned int low_word; unsigned int high_word; }; -typedef struct segment_descriptor descriptor_t; -typedef struct segment_descriptor *descriptor_list_t; -typedef const struct descriptor *const_segment_descriptor_list_t; - -/* - * Real segment descriptor. - */ -struct real_descriptor { - unsigned int limit_low:16, /* limit 0..15 */ - base_low:16, /* base 0..15 */ - base_med:8, /* base 16..23 */ - access:8, /* access byte */ - limit_high:4, /* limit 16..19 */ - granularity:4, /* granularity */ - base_high:8; /* base 24..31 */ -}; -typedef struct real_descriptor real_descriptor_t; -typedef real_descriptor_t *real_descriptor_list_t; -typedef const real_descriptor_list_t const_real_descriptor_list_t; - -#ifdef __x86_64__ -struct real_descriptor64 { - unsigned int limit_low:16, /* limit 0..15 */ - base_low:16, /* base 0..15 */ - base_med:8, /* base 16..23 */ - access:8, /* access byte */ - limit_high:4, /* limit 16..19 */ - granularity:4, /* granularity */ - base_high:8, /* base 24..31 */ - base_ext:32, /* base 32..63 */ - reserved1:8, - zero:5, - reserved2:19; -}; -#endif +typedef struct descriptor descriptor_t; +typedef struct descriptor *descriptor_list_t; +typedef const struct descriptor *const_descriptor_list_t; #endif /* !__ASSEMBLER__ */ |