We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
For clarify and to avoid mixing them up, we can use Sail's newtype feature to create distinct types for physical and virtual addresses. For example:
newtype
newtype physaddr = physaddr : xlenbits newtype virtaddr = virtaddr : xlenbits function translate(virtaddr(vaddr) : virtaddr) -> physaddr = physaddr(vaddr + 1) function main() -> unit = { let x = physaddr(zeros(32)); let y = translate(x) }
This will give a compile time error since we accidentally passed a physical address into translate().
translate()
See #433
The text was updated successfully, but these errors were encountered:
No branches or pull requests
For clarify and to avoid mixing them up, we can use Sail's
newtype
feature to create distinct types for physical and virtual addresses. For example:This will give a compile time error since we accidentally passed a physical address into
translate()
.See #433
The text was updated successfully, but these errors were encountered: