ssam_event_item_alloc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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