poke-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v4] pkl: Remove global state from IOS


From: Jose E. Marchesi
Subject: Re: [PATCH v4] pkl: Remove global state from IOS
Date: Tue, 28 Dec 2021 18:36:17 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Hi Mohammad.

I still need to review the patch in detail, but this catched my
attention:

> -
>  int
> -pk_register_iod (pk_compiler pkc, struct pk_iod_if *iod_if)
> +pk_register_iod (pk_compiler pkc, struct pk_iod_if *iod_if, void *data)
>  {
> -  pkc->status = PK_OK;
> +  ios_context ios_ctx = pvm_ios_context (pkc->vm);
>  
> -#define CF(FN) foreign_iod_if.FN = iod_if->FN
> -  CF (get_if_name);
> -  CF (handler_normalize);
> -  CF (open);
> -  CF (close);
> -  CF (pread);
> -  CF (pwrite);
> -  CF (get_flags);
> -  CF (size);
> -  CF (flush);
> -  CF (data);
> -#undef CF
> -
> -  (void) ios_register_foreign_iod (&foreign_iod_if);
> +  pkc->status = PK_OK;
> +  memcpy (&pkc->foreign_iod_if, iod_if, sizeof (pkc->foreign_iod_if));
> +  (void) ios_register_foreign_iod (ios_ctx, &pkc->foreign_iod_if, data);
>    return pkc->status;
>  }

Please do not do this.  The previous approach was done purposedly in
order to not rely on both structs to have exactly the same fields in the
same order.

A struct pk_iod_if is not the same than a struct ios_dev_if.



reply via email to

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