[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH 02/15] simplify ipc_kmsg_copyout_body() usage,
Samuel Thibault <=