Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add feature Interposable #31

Merged
merged 3 commits into from
Nov 13, 2023
Merged

Add feature Interposable #31

merged 3 commits into from
Nov 13, 2023

Conversation

rauhul
Copy link
Collaborator

@rauhul rauhul commented Nov 10, 2023

Adds a feature flag called 'Interposable' which allows clients to replace the memory interface of register banks and registers with a custom interposer. Interposers must conform the MMIOInterposer protocol which has two simple requirements: load(from:) and store(_:to:).

Interposers can be used to unit test the correctness of drivers and other structures which abstract over MMIO operations.

Internally MMIO uses a new type called MMIOTracingInterposer to test the interposer functionality. This type may become public API in the future to help clients test their code without needing to make their own type conforming to MMIOInterposer.

Adds a feature flag called 'Interposable' which allows clients to
replace the memory interface of register banks and registers with a
custom interposer. Interposers must conform the `MMIOInterposer`
protocol which has two simple requirements: `load(from:)` and
`store(_:to:)`.

Interposers can be used to unit test the correctness of drivers and
other structures which abstract over MMIO operations.

Internally MMIO uses a new type called MMIOTracingInterposer to test
the interposer functionality. This type may become public API in the
future to help clients test their code without needing to make their own
type conforming to `MMIOInterposer`.
@rauhul rauhul merged commit 35277aa into main Nov 13, 2023
@rauhul rauhul deleted the io-interposer branch November 13, 2023 21:24
rauhul added a commit that referenced this pull request Nov 17, 2023
Adds a feature flag called 'Interposable' which allows clients to
replace the memory interface of register banks and registers with a
custom interposer. Interposers must conform the `MMIOInterposer`
protocol which has two simple requirements: `load(from:)` and
`store(_:to:)`.

Interposers can be used to unit test the correctness of drivers and
other structures which abstract over MMIO operations.

Internally MMIO uses a new type called MMIOTracingInterposer to test the
interposer functionality. This type may become public API in the future
to help clients test their code without needing to make their own type
conforming to `MMIOInterposer`.
rauhul added a commit that referenced this pull request Nov 17, 2023
Adds a feature flag called 'Interposable' which allows clients to
replace the memory interface of register banks and registers with a
custom interposer. Interposers must conform the `MMIOInterposer`
protocol which has two simple requirements: `load(from:)` and
`store(_:to:)`.

Interposers can be used to unit test the correctness of drivers and
other structures which abstract over MMIO operations.

Internally MMIO uses a new type called MMIOTracingInterposer to test the
interposer functionality. This type may become public API in the future
to help clients test their code without needing to make their own type
conforming to `MMIOInterposer`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant