Hello,
I had a glimpse at the changes, this looks good to me!
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
on the whole series.
I'll see when I'll be able to find time to review the changes, unless
somebody beats me to it :)
Samuel
Juergen Gross, le jeu. 06 janv. 2022 12:57:26 +0100, a ecrit:
> Today the layout of struct file is depending on the Mini-OS
> configuration. This is especially bad as the layout is exported to
> external users like the Xen libraries built for Mini-OS, and those
> are being built only once for multiple stubdom configurations.
>
> Today there is no direct problem resulting from this, as the main
> difference between struct file layouts is a large union containing all
> the device specific data for the different file types. The largest
> union member is not configuration dependant, so the build is currently
> not broken.
>
> In order to avoid any future problems this patch series is eliminating
> the configuration dependency by replacing most of the device specific
> union members by a single pointer.
>
> The two union members used by Xen libraries can't be replaced yet, as
> those need to be switched to use the generic pointer first.
>
> In order to hide the Mini-OS internal implementation of the files
> array, the last patch is introducing a service function for obtaining
> the pointer to struct file for a given file descriptor, which must be
> used for that purpose by all Mini-OS external components.
>
> Juergen Gross (15):
> mini-os: split struct file definition from its usage
> mini-os: makes file.read bool and move it ahead of device specific
> part
> mini-os: make offset a common struct file member for all types
> mini-os: replace multiple fd elements in struct file by common one
> mini-os: introduce a common dev pointer in struct file
> mini-os: eliminate blkfront union member in struct file
> mini-os: eliminate consfront union member in struct file
> mini-os: eliminate fbfront union member in struct file
> mini-os: eliminate kbdfront union member in struct file
> mini-os: eliminate netfront union member in struct file
> mini-os: move tpm respgot member of struct file to device specific
> data
> mini-os: eliminate tpmfront union member in struct file
> mini-os: eliminate tpmtis union member in struct file
> mini-os: eliminate xenbus union member in struct file
> mini-os: introduce get_file_from_fd()
>
> blkfront.c | 15 +++---
> console/xencons_ring.c | 2 +-
> fbfront.c | 16 +++----
> include/lib.h | 59 ++++-------------------
> include/tpmfront.h | 2 +
> lib/sys.c | 103 ++++++++++++++++++++++-------------------
> lib/xs.c | 13 +++---
> netfront.c | 6 +--
> tpm_tis.c | 23 ++++-----
> tpmfront.c | 33 +++++++------
> 10 files changed, 119 insertions(+), 153 deletions(-)
>
> --
> 2.26.2