Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There are five objectives here:
General usage is something kinda like this:
There are two mildly annoying things here:
callconv(.C)
. There's no way to avoid this without introducing additional indirection.context()
helper method that just returns@as(*ContextType, @ptrCast(&block.context_bytes))
.Note that this PR will require a corresponding update to the main Mach repo to consume the new block-related APIs.
Also note that I don't intend on publicly exposing the libSystem bindings. It's fine to do it, though. They're just low-level enough that they're not enjoyable to work with so wrapper APIs are better IMO.