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

events: Move implementation of events::send() to lib/events #22112

Merged
merged 1 commit into from
Sep 25, 2023

Commits on Sep 21, 2023

  1. events: Move implementation of events::send() to lib/events

    Events have a global, system-wide sequence number, which must be handled
    atomically, (fetching and incrementing the sequence AND sending the event
    to uORB must be atomic). Currently in FLAT mode, only one instance of this
    sequence number exists, so it is OK to have it in px4_platform.
    
    However, in PROTECTED mode px4_platform is instantiated both in kernel-
    and user spaces, which makes two instances of this sequence number, which
    causes problems in the mavlink event handling logic.
    
    When mavlink receives and handles events, it expects that:
    - The sequence numbers arrive in order (seq n is followed by n+1 etc)
    - It increments by 1
    - There is only one instance of the sequence number
    
    In PROTECTED mode this is violated, as the kernel and user sequence
    numbers run freely on their own. This patch fixes the issue by moving
    the event backend to the kernel and by providing user access to it via
    ioctl.
    pussuw committed Sep 21, 2023
    Configuration menu
    Copy the full SHA
    f2f263b View commit details
    Browse the repository at this point in the history