[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH hurd] Use c_string for default_pager_filename_t to define a n
From: |
Samuel Thibault |
Subject: |
Re: [PATCH hurd] Use c_string for default_pager_filename_t to define a new default_pager_paging_storage RPC. |
Date: |
Mon, 24 Apr 2023 22:40:44 +0200 |
User-agent: |
NeoMutt/20170609 (1.8.3) |
Flavio Cruz, le lun. 24 avril 2023 00:58:22 -0400, a ecrit:
> @@ -76,7 +76,8 @@ skip; /*
> default_pager_register_fileserver */
> number of a region whose length is given by the next odd-numbered
> element. NAME is used in any diagnostics the default pager prints
> about device errors when paging. When removing a paging area, NAME
> - and RUNS must match exactly. */
> + and RUNS must match exactly.
> + Note: please use default_pager_paging_storage_new. */
Rather move the documentation...
> routine default_pager_paging_storage(
> default_pager : mach_port_t;
> device_port : mach_port_t;
> @@ -101,3 +102,15 @@ routine default_pager_storage_info(
> array[] of vm_size_t, dealloc;
> out name : data_t);
>
> +type new_default_pager_filename_t = c_string[256]
> + ctype: default_pager_filename_t;
> +
... here, and leave as only documentation of the old RPC a ref (and hint
to migrate) to the new RPC.
> +/* Same as default_pager_paging_storage but uses new_default_pager_filename_t
> + which uses c_string for the type definition. */
> +routine default_pager_paging_storage_new(
> + default_pager : mach_port_t;
> + device_port : mach_port_t;
> + runs : recnum_array_t =
> + array[] of recnum_t;
> + name : new_default_pager_filename_t;
> + add : boolean_t);
> diff --git a/mach-defpager/setup.c b/mach-defpager/setup.c
> index 8cd1fed2..087ede71 100644
> --- a/mach-defpager/setup.c
> +++ b/mach-defpager/setup.c
> @@ -100,6 +100,16 @@ S_default_pager_paging_storage (mach_port_t pager,
> return 0;
> }
>
> +kern_return_t
> +S_default_pager_paging_storage_new (mach_port_t pager,
> + mach_port_t device,
> + const recnum_t *runs, mach_msg_type_number_t
> nrun,
> + const_default_pager_filename_t name,
> + boolean_t add)
> +{
> + return S_default_pager_paging_storage (pager,
> + device, runs, nrun, name, add);
> +}
>
> /* Called to read a page from backing store. */
> int
> diff --git a/sutils/swapon.c b/sutils/swapon.c
> index 2ee3cd7f..c965d8e2 100644
> --- a/sutils/swapon.c
> +++ b/sutils/swapon.c
> @@ -409,8 +409,13 @@ swaponoff (const char *file, int add, int
> skipnotexisting)
> runs[j++] = store->runs[i].start;
> runs[j++] = store->runs[i].length;
> }
> - err = default_pager_paging_storage (def_pager, store->port,
> - runs, j, file, add);
> + err = default_pager_paging_storage_new (def_pager, store->port,
> + runs, j, file, add);
> + if (err == MIG_BAD_ID || err == EOPNOTSUPP)
> + {
> + err = default_pager_paging_storage (def_pager, store->port,
> + runs, j, file, add);
> + }
>
> store_free (store);
>
> diff --git a/trans/proxy-defpager.c b/trans/proxy-defpager.c
> index 878beffe..5d952546 100644
> --- a/trans/proxy-defpager.c
> +++ b/trans/proxy-defpager.c
> @@ -112,6 +112,17 @@ S_default_pager_paging_storage (mach_port_t
> default_pager,
> ?: mach_port_deallocate (mach_task_self (), device);
> }
>
> +kern_return_t
> +S_default_pager_paging_storage_new (mach_port_t default_pager,
> + mach_port_t device,
> + const recnum_t *runs, mach_msg_type_number_t
> nruns,
> + const_default_pager_filename_t name,
> + boolean_t add)
> +{
> + return S_default_pager_paging_storage (default_pager,
> + device, runs, nruns, name, add);
> +}
> +
> kern_return_t
> S_default_pager_object_set_size (mach_port_t memory_object,
> mach_port_seqno_t seqno,
> --
> 2.39.2
>
>
--
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.