SSAM_VDEV(9)
π SSAM_VDEV π
okay so this is a page from the Kernel API Manual β yes, the kernel has its own manual, she's iconic like that β and today's main character is SSAM_VDEV, a macro that sets up a virtual device match id for you. bestie, let's get into it π«Ά
β¨ NAME β¨
SSAM_VDEV β Initialize a &struct ssam_device_id as virtual device with the given parameters. literally that's the whole job and she does it flawlessly π
πΈ SYNOPSIS πΈ
SSAM_VDEV (cat , tid , iid , fun );
π ARGUMENTS π
catβ the target category of the device π± (no, not that kind of cat, it's a category, but slay)tidβ the target ID of the deviceiidβ the instance ID of the devicefunβ the sub-function of the device β¨
π¦ DESCRIPTION π¦
so what she does: initializes a struct ssam_device_id with the given parameters in the virtual domain. that's the vibe π«
if you wanna know the details on what these parameters actually mean, go look at struct ssam_device_uid β she has the lore.
now here's the cute part: you can pass these special values β
SSAM_SSH_TID_ANYSSAM_SSH_IID_ANYSSAM_SSH_FUN_ANY
β to say "matching should ignore target ID / instance ID / and-or sub-function, respectively" π like, don't even look at that field, we're not checking it, periodt.
and this macro also initializes the match_flags field based on the given parameters. she's doing extra credit and honestly? we love that for her π
π₯ NOTE π₯
read this part carefully bestie, no skimming:
catmust be a validu8value.tid,iid, andfunmust be either validu8values orSSAM_SSH_TID_ANY,SSAM_SSH_IID_ANY, orSSAM_SSH_FUN_ANY, respectively.
other non-u8 values are not allowed. not "eh probably fine", not "she'll figure it out" β not allowed. fr fr π
π SEE ALSO π
the whole friend group, in no particular order π:
- Kernel file
./include/linux/surface_aggregator/device.h enum ssam_device_domain(9)enum ssam_virtual_tc(9)struct ssam_device_uid(9)SSAM_DEVICE(9)SSAM_SDEV(9)struct ssam_device(9)struct ssam_device_driver(9)is_ssam_device(9)to_ssam_device(9)to_ssam_device_driver(9)ssam_device_mark_hot_removed(9)ssam_device_is_hot_removed(9)ssam_device_get(9)ssam_device_put(9)ssam_device_get_drvdata(9)ssam_device_set_drvdata(9)ssam_device_driver_register(9)module_ssam_device_driver(9)ssam_register_clients(9)ssam_device_register_clients(9)SSAM_DEFINE_SYNC_REQUEST_CL_N(9)SSAM_DEFINE_SYNC_REQUEST_CL_W(9)SSAM_DEFINE_SYNC_REQUEST_CL_R(9)SSAM_DEFINE_SYNC_REQUEST_CL_WR(9)ssam_device_notifier_register(9)ssam_device_notifier_unregister(9)
and that's the page!! source is ./include/linux/surface_aggreg... and it's dated October 2026 β go read the rest of the docs bestie, ily, bye ππβ¨
π¦ 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