ssam_event_item_alloc(9)
π ssam_event_item_alloc β Kernel API Manual, section 9 π
okay bestie, so this is ssam_event_item_alloc(9), from the Kernel API Manual (section 9, kernel-space stuff, you know the vibe). It's a tiny little allocator and honestly? It ate. Let's get into it β¨
πΈ NAME πΈ
ssam_event_item_alloc β literally just allocates an event item with the payload size you hand it. That's the whole gig. No cap π«Ά
π¦ SYNOPSIS π¦
struct ssam_event_item * ssam_event_item_alloc (size_t len , gfp_t flags );
β¨ ARGUMENTS β¨
lenβ the event payload length. Like, how much payload you're bringing to the function. πflagsβ the flags used for allocation. The allocation vibe-check, if you will. π©
π DESCRIPTION π
So here's what happens: it allocates an event item with the payload size you gave it, and it prefers pulling from the event item cache β but only if your payload is small enough, i.e. smaller than SSAM_EVENT_ITEM_CACHE_PAYLOAD_LEN. Small payload? Cache. Big payload? It goes and does its own thing. Main character energy either way π
It also sets the item operations and the payload length values for you. Cute, right? It's got you π₯°
β οΈ okay this is the important bit, don't skip it: the item free callback (ops.free) should not be overwritten after this call. Like, do not touch it. The function already set it. Hands off. ππ
π RETURN π
Returns the newly allocated event item. Fresh out the oven, still warm π
π SEE ALSO π
Also the kernel file ./drivers/platform/surface/aggregator/controller.c β that's where the magic lives, bestie π
And the whole extended friend group, all of them, no one left out:
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_call(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_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)
mwah π this page came from ./drivers/platform/surface/agg..., dated October 2026, and its whole name-tag is ssam_event_item_alloc(9). bye bestie, go allocate responsibly π§ββοΈβ
π¦ 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