ssam_nf_call(9)
π ssam_nf_call(9) π
okay so we're in the Kernel API Manual bestie, and this page is all about one lil function that's honestly kind of the main character of the notifier system π
β¨ NAME β¨
ssam_nf_call β Call notification callbacks for the provided event.
like, it literally calls the callbacks. that's the whole vibe. no cap π
πΈ SYNOPSIS πΈ
void ssam_nf_call (struct ssam_nf *nf , struct device *dev , u16 rqid ,
struct ssam_event *event );
π¦ ARGUMENTS π¦
nfβ The notifier system π this is the whole squad of notifiers you're rolling with.devβ The associated device, only used for logging. yeah it's just here to make the logs look cute, it's not doing heavy lifting π«Άrqidβ The request ID of the event.eventβ The event provided to the callbacks. like handing out snacks at a party π
π DESCRIPTION π
So here's the tea β: this function executes registered callbacks in order of their priority until either no callback is left, or a callback returns a value with the SSAM_NOTIF_STOP bit set. periodt.
ngl, a lil heads up: that bit is set automatically when converting non-zero error values via ssam_notifier_from_errno to notifier values. so you don't even have to do it yourself, it's giving convenience π
β¨ also note β¨ any callback that could handle an event should return a value with bit SSAM_NOTIF_HANDLED set, indicating that the event does not go unhandled/ignored. lowkey important β if no registered callback could handle an event, this function will emit a warning. π so like, don't leave your events on read.
And in case a callback failed, this function will emit an error message. bestie, if you see that, something went wrong fr fr π
π SEE ALSO π
- Kernel file
./drivers/platform/surface/aggregator/controller.c
and the whole extended friend group π:
ssh_seq_reset(9),ssh_seq_next(9),ssh_rqid_reset(9),ssh_rqid_next(9),ssam_event_matches_notifier(9),ssam_nfblk_call_chain(9),ssam_nfblk_insert(9),ssam_nfblk_find(9),ssam_nfblk_remove(9),ssam_nf_head_init(9),ssam_nf_head_destroy(9),struct ssam_nf_refcount_key(9),struct ssam_nf_refcount_entry(9),ssam_nf_refcount_inc(9),ssam_nf_refcount_dec(9),ssam_nf_refcount_dec_free(9),ssam_nf_refcount_empty(9),ssam_nf_init(9),ssam_nf_destroy(9),ssam_event_item_cache_init(9),ssam_event_item_cache_destroy(9),ssam_event_item_free(9),ssam_event_item_alloc(9),ssam_event_queue_push(9),ssam_event_queue_pop(9),ssam_event_queue_is_empty(9),ssam_cplt_get_event_queue(9),ssam_cplt_submit(9),ssam_cplt_submit_event(9),ssam_cplt_flush(9),ssam_event_queue_init(9),ssam_cplt_init(9),ssam_cplt_destroy(9),ssam_controller_device(9),ssam_controller_get(9),ssam_controller_put(9),ssam_controller_statelock(9),ssam_controller_stateunlock(9),ssam_controller_lock(9),ssam_controller_caps_load_from_acpi(9),ssam_controller_caps_load_from_of(9),ssam_controller_caps_load(9),ssam_controller_init(9),ssam_controller_start(9),ssam_controller_shutdown(9),ssam_controller_destroy(9),ssam_controller_suspend(9),ssam_controller_resume(9),ssam_request_write_data(9),ssam_request_sync_alloc(9),ssam_request_sync_free(9),ssam_request_sync_init(9),ssam_request_sync_submit(9),ssam_request_do_sync(9),ssam_request_do_sync_with_buffer(9),struct ssh_notification_params(9),ssam_ssh_event_enable(9),ssam_ssh_event_disable(9),ssam_get_firmware_version(9),ssam_ctrl_notif_display_off(9),ssam_ctrl_notif_display_on(9),ssam_ctrl_notif_d0_exit(9),ssam_ctrl_notif_d0_entry(9),ssam_nf_refcount_enable(9),ssam_nf_refcount_disable_free(9),ssam_notifier_register(9),__ssam_notifier_unregister(9),ssam_controller_event_enable(9),ssam_controller_event_disable(9),ssam_notifier_disable_registered(9),ssam_notifier_restore_registered(9),ssam_notifier_is_empty(9),ssam_notifier_unregister_all(9),ssam_irq_setup(9),ssam_irq_free(9),ssam_irq_arm_for_wakeup(9),ssam_irq_disarm_wakeup(9)
k that's the whole page bestie, go forth and call your callbacks responsibly π
this lil masterpiece came from ./drivers/platform/surface/agg... and it's dated October 2026 β yes, future vibes only β¨π¦ see u in the next manpage, mwah π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms