bug-hurd
[Top][All Lists]
Advanced

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

Re: [PATCH 02/15] simplify ipc_kmsg_copyout_body() usage


From: Samuel Thibault
Subject: Re: [PATCH 02/15] simplify ipc_kmsg_copyout_body() usage
Date: Sun, 28 Aug 2022 02:42:41 +0200
User-agent: NeoMutt/20170609 (1.8.3)

Luca Dariz, le mar. 28 juin 2022 12:10:41 +0200, a ecrit:
> * ipc/ipc_kmsg.h: change prototype of ipc_kmsg_copyout_body()
> * ipc/ipc_kmsg.c: change prototype and usage of
>   ipc_kmsg_copyout_body() by incorporating common code
> * ipc/mach_msg.c: change usage of ipc_kmsg_copyout_body()
> 
> Signed-off-by: Luca Dariz <luca@orpolo.org>

Applied, thanks!

> ---
>  ipc/ipc_kmsg.c | 24 ++++++++----------------
>  ipc/ipc_kmsg.h |  2 +-
>  ipc/mach_msg.c |  4 +---
>  3 files changed, 10 insertions(+), 20 deletions(-)
> 
> diff --git a/ipc/ipc_kmsg.c b/ipc/ipc_kmsg.c
> index 28ed23c6..b9d29853 100644
> --- a/ipc/ipc_kmsg.c
> +++ b/ipc/ipc_kmsg.c
> @@ -2336,13 +2336,17 @@ ipc_kmsg_copyout_object(
>  
>  mach_msg_return_t
>  ipc_kmsg_copyout_body(
> -     vm_offset_t     saddr, 
> -     vm_offset_t     eaddr,
> +    ipc_kmsg_t kmsg,
>       ipc_space_t     space,
>       vm_map_t        map)
>  {
>       mach_msg_return_t mr = MACH_MSG_SUCCESS;
>       kern_return_t kr;
> +        vm_offset_t saddr, eaddr;
> +
> +        saddr = (vm_offset_t) (&kmsg->ikm_header + 1);
> +        eaddr = (vm_offset_t) &kmsg->ikm_header +
> +            kmsg->ikm_header.msgh_size;
>  
>       while (saddr < eaddr) {
>               vm_offset_t taddr = saddr;
> @@ -2502,13 +2506,7 @@ ipc_kmsg_copyout(
>               return mr;
>  
>       if (mbits & MACH_MSGH_BITS_COMPLEX) {
> -             vm_offset_t saddr, eaddr;
> -
> -             saddr = (vm_offset_t) (&kmsg->ikm_header + 1);
> -             eaddr = (vm_offset_t) &kmsg->ikm_header +
> -                             kmsg->ikm_header.msgh_size;
> -
> -             mr = ipc_kmsg_copyout_body(saddr, eaddr, space, map);
> +             mr = ipc_kmsg_copyout_body(kmsg, space, map);
>               if (mr != MACH_MSG_SUCCESS)
>                       mr |= MACH_RCV_BODY_ERROR;
>       }
> @@ -2560,13 +2558,7 @@ ipc_kmsg_copyout_pseudo(
>       kmsg->ikm_header.msgh_local_port = reply_name;
>  
>       if (mbits & MACH_MSGH_BITS_COMPLEX) {
> -             vm_offset_t saddr, eaddr;
> -
> -             saddr = (vm_offset_t) (&kmsg->ikm_header + 1);
> -             eaddr = (vm_offset_t) &kmsg->ikm_header +
> -                             kmsg->ikm_header.msgh_size;
> -
> -             mr |= ipc_kmsg_copyout_body(saddr, eaddr, space, map);
> +             mr |= ipc_kmsg_copyout_body(kmsg, space, map);
>       }
>  
>       return mr;
> diff --git a/ipc/ipc_kmsg.h b/ipc/ipc_kmsg.h
> index c6cd77f0..2d75b173 100644
> --- a/ipc/ipc_kmsg.h
> +++ b/ipc/ipc_kmsg.h
> @@ -270,7 +270,7 @@ ipc_kmsg_copyout_object(ipc_space_t, ipc_object_t,
>                       mach_msg_type_name_t, mach_port_t *);
>  
>  extern mach_msg_return_t
> -ipc_kmsg_copyout_body(vm_offset_t, vm_offset_t, ipc_space_t, vm_map_t);
> +ipc_kmsg_copyout_body(ipc_kmsg_t, ipc_space_t, vm_map_t);
>  
>  extern mach_msg_return_t
>  ipc_kmsg_copyout(ipc_kmsg_t, ipc_space_t, vm_map_t, mach_port_t);
> diff --git a/ipc/mach_msg.c b/ipc/mach_msg.c
> index fe0c43e3..0ae8fe0c 100644
> --- a/ipc/mach_msg.c
> +++ b/ipc/mach_msg.c
> @@ -1148,9 +1148,7 @@ mach_msg_trap(
>                       kmsg->ikm_header.msgh_remote_port = MACH_PORT_NULL;
>  
>                       mr = ipc_kmsg_copyout_body(
> -                             (vm_offset_t) (&kmsg->ikm_header + 1),
> -                             (vm_offset_t) &kmsg->ikm_header
> -                                     + kmsg->ikm_header.msgh_size,
> +                            kmsg,
>                               space,
>                               current_map());
>  
> -- 
> 2.30.2
> 
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.



reply via email to

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