[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.
- Re: [PATCH] pkl: Remove global state from IOS, (continued)
[PATCH v2 1/2] pkl: Add user_data in IO device API, Mohammad-Reza Nabipoor, 2021/12/23
[PATCH v4] pkl: Remove global state from IOS, Mohammad-Reza Nabipoor, 2021/12/28
Re: [PATCH v4] pkl: Remove global state from IOS,
Jose E. Marchesi <=
Re: [PATCH v2 1/2] pkl: Add user_data in IO device API, Jose E. Marchesi, 2021/12/23