> In order to support I/O projection, we are splitting I/O types into two > categories: owned objects and views. Owned objects have a specific type > that is related to setting up and tearing down, while views can have their > type changed with I/O projection. > > Things like `IoMem` or `Bar` are owned objects, which requires setting up > mapping and cleaning up on drop. On the other side, `ConfigSpace` is really > just a view, as the resource is associated with the `pci::Device`. > > Remove the `ConfigSpaceKind` bound on `ConfigSpace` and make it a generic > view. This means that `ConfigSpace` object now represents a subregion and > therefore encodes offset (as address of pointers) and size (as metadata of > pointers) itself. The full region case is still supported with offset 0 and > size of `cfg_size`. > > Signed-off-by: Gary Guo <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=8
