feat(bare_metal): Add someip polling processing feature#126
Open
FelicianoAngulo2 wants to merge 7 commits into
Open
feat(bare_metal): Add someip polling processing feature#126FelicianoAngulo2 wants to merge 7 commits into
FelicianoAngulo2 wants to merge 7 commits into
Conversation
added 5 commits
June 8, 2026 10:48
…estCallback Two related changes to land the no-alloc bare-metal server path: 1. drop _alloc from the server feature and gate every alloc usage (use alloc::sync::Arc, Wrappable handles, SocketOptions, sd-protocol import, run_inner's 64 KiB vec! and new_with_deps/new_passive_with_deps' Arc-wrap constructors) so client+server+bare_metal builds with zero __rust_alloc/__rg_alloc symbol references. The Server struct's started latch is now a feature-gated StartedLatch type alias (Arc<AtomicBool> under _alloc, &'static AtomicBool on bare metal) passed through ServerStorage; the H/Hsd/Hep default generics use cfg'd DefaultSocketHandle/DefaultSdStateHandle/DefaultEventPublisherHandle aliases so Arc names don't need to resolve under no-alloc. StaticSubscriptionHandle returns core::future::Ready instead of alloc::boxed::Box::pin (the lock closures are synchronous). 2. Add NonSdRequestCallback fn-pointer on ServerStorage/Server, threaded through run_with_buffers/run_combined/recv_loop, invoked in place of the historical 'non-SD ignored' branch — surfaces method requests / fire-and-forget calls (e.g. halo's HWP1* requests) to the consumer FFI without requiring a ChannelFactory-backed ServerUpdates channel.
…uilders for efficient SD packet encoding
6d4b507 to
e7c956c
Compare
…related functions
2844504 to
4c2531d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request introduces new modules and features to support bare-metal and polled operation modes.
Additionallly, several improvements and refactoring to enhance flexibility, configurability, and clarity across the codebase, especially around the E2E registry and SOME/IP header handling. The most significant changes are the introduction of const-generic parameters for the E2E registry, improved documentation, and a more robust and flexible approach to handling SOME/IP headers.
Halo integration:
https://github.com/luminartech/halo/pull/4767
E2E Registry Refactor and Improvements
E2ERegistryto use a const-genericCAPparameter, allowing consumers to specify the registry's capacity at instantiation time for better configurability and memory usage. Updated all usages and documentation to reflect this change. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]E2ERegistry::registerto report the actual capacity used, not just the default constant, improving diagnostics. [1] [2]SOME/IP Header Handling Enhancements
HEADER_SIZEconstant for the SOME/IP header, replacing magic numbers throughout the code for clarity and maintainability. UpdatedHeaderViewand all relevant parsing, encoding, and documentation to use this constant. [1] [2] [3] [4] [5] [6] [7]upper_header_bytesmethod toHeaderViewfor extracting bytes needed by E2E Profile 5, improving zero-copy access and documentation.Feature Flags and Modularization
Cargo.tomland the codebase: clarified which features pull in allocator-backed conveniences, and added new features/modules for bare-metal and polled operation (bare_metal_poll,single_context_mutex,polled). [1] [2] [3]Documentation Improvements
These changes collectively make the codebase more flexible, maintainable, and better suited for both embedded and standard environments.