bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH mig] Make MIG work for pure 64 bit kernel and userland.


From: Samuel Thibault
Subject: Re: [PATCH mig] Make MIG work for pure 64 bit kernel and userland.
Date: Sun, 12 Feb 2023 15:15:23 +0100
User-agent: NeoMutt/20170609 (1.8.3)

Hello,

Flavio Cruz, le dim. 12 févr. 2023 01:15:05 -0500, a ecrit:
> diff --git a/configure.ac b/configure.ac
> index e4645bd..8d52d5f 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -55,6 +55,13 @@ AC_SUBST([MIGCOM])
>  [MIG=`echo mig | sed "$program_transform_name"`]
>  AC_SUBST([MIG])
>  
> +AC_ARG_ENABLE(user32,
> +              AS_HELP_STRING([--enable-user32],
> +                             [Build mig for 64 bit kernel that works with 32 
> bit userland]))
> +AS_IF([test "x$enable_user32" = "xyes"], [
> +       AC_DEFINE([USER32], [1], ["Build mig for 64 bit kernel that works 
> with 32 bit userland"])
> +])
> +
>  AC_OUTPUT([Makefile mig tests/Makefile \
>             tests/good/Makefile \
>             tests/generate-only/Makefile \

> diff --git a/parser.y b/parser.y
> index 03c5ec8..1ebeae5 100644
> --- a/parser.y
> +++ b/parser.y
> @@ -212,6 +212,16 @@ Subsystem                :       SubsystemStart 
> SubsystemMods
>              IsKernelUser ? ", KernelUser" : "",
>              IsKernelServer ? ", KernelServer" : "");
>      }
> +    if (IsKernelUser || IsKernelServer) {
> +        port_size = vm_offset_size;
> +        port_size_in_bits = vm_offset_size_in_bits;
> +#ifdef USER32
> +        /* Since we are using MIG to generate stubs for a 64 bit kernel that 
> operates
> +           with a 32 bit userland, then we need to consider that `word_size` 
> is 4 byte aligned.
> +         */
> +        word_size = sizeof(uint32_t);
> +#endif
> +    }
>      init_type();
>  }
>                       ;

Mmm, I thought Luca's work was already handling the message translation,
so that the stubs parts of the kernel only sees 64bit messages already
with proper alignments etc.?

At least, I believe we'd rather aim for that, to have only a 64bit mig
and a 32bit mig, and not need a separate 64/32bit mig.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]