Applied, thanks!

Manolo de Medici, le jeu. 26 mars 2026 22:46:43 +0000, a ecrit:
> This call allows to get the list of unprivileged processor ports
> belonging to a processor set.
> ---
>  include/mach/mach_host.defs |  7 +++++++
>  kern/host.c                 | 33 +++++++++++++++++++++++++++++++++
>  2 files changed, 40 insertions(+)
> 
> diff --git a/include/mach/mach_host.defs b/include/mach/mach_host.defs
> index 936e2bde..70a2e866 100644
> --- a/include/mach/mach_host.defs
> +++ b/include/mach/mach_host.defs
> @@ -393,3 +393,10 @@ routine  host_get_kernel_version(
>  routine      host_get_uptime64(
>               host            : host_t;
>       out     uptime          : time_value64_t);
> +
> +/*
> + *   Get list of processors in processor set
> + */
> +routine processor_set_processors(
> +             set_name        : processor_set_name_t;
> +     out     processors_list : processor_name_array_t);
> diff --git a/kern/host.c b/kern/host.c
> index e7219e1c..035ef05f 100644
> --- a/kern/host.c
> +++ b/kern/host.c
> @@ -387,3 +387,36 @@ host_processor_set_priv(
>       pset_reference(*pset);
>       return KERN_SUCCESS;
>  }
> +
> +kern_return_t processor_set_processors(
> +     const processor_set_t   pset,
> +     processor_name_array_t  *processor_list,
> +     natural_t               *countp)
> +{
> +     unsigned int            count, i = 0;
> +     processor_t             p;
> +     ipc_port_t              *tp;
> +
> +     if (pset == PROCESSOR_SET_NULL)
> +             return KERN_INVALID_ARGUMENT;
> +
> +     simple_lock(&pset->lock);
> +
> +     count = pset->processor_count;
> +
> +     tp = (ipc_port_t *)kalloc(count * sizeof(ipc_port_t));
> +     if (tp == NULL) {
> +             simple_unlock(&pset->lock);
> +             return KERN_RESOURCE_SHORTAGE;
> +     }
> +
> +     queue_iterate(&pset->processors, p, processor_t, processors) {
> +             tp[i++] = convert_processor_name_to_port(p);
> +     }
> +
> +     *countp = count;
> +     *processor_list = (mach_port_t *)tp;
> +
> +     simple_unlock(&pset->lock);
> +     return KERN_SUCCESS;
> +}
> -- 
> 2.53.0
> 
> 

-- 
Samuel
As usual, this being a 1.3.x release, I haven't even compiled this
kernel yet.  So if it works, you should be doubly impressed.
(Linus Torvalds, announcing kernel 1.3.3 on the linux-kernel mailing list.)

Reply via email to