Message ID | 20220111145817.22170-1-jgross@suse.com (mailing list archive) |
---|---|
Headers | show |
Series | mini-os: remove struct file dependency on config | expand |
On 11/01/2022 14:57, Juergen Gross wrote: > 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, patches 15-17 are introducing a common framework to access a > struct file via its file descriptor, and to allocate new file types > dynamically instead of having them all pre-defined. The file type > specific operations are supplied via a function vector in order to > remove the dependency of lib/sys.c on all the various file types. Patches 1 thru 15 seem fine and ready to go. Would it help to get those committed now? ~Andrew
On 11.01.22 20:42, Andrew Cooper wrote: > On 11/01/2022 14:57, Juergen Gross wrote: >> 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, patches 15-17 are introducing a common framework to access a >> struct file via its file descriptor, and to allocate new file types >> dynamically instead of having them all pre-defined. The file type >> specific operations are supplied via a function vector in order to >> remove the dependency of lib/sys.c on all the various file types. > > Patches 1 thru 15 seem fine and ready to go. Would it help to get those > committed now? With the one remark you had for patch 15 I think patches 1-14 could go in now. Juergen