SSAM_DEFINE...REQUEST_CL_W(9)
π
SSAM_DEFINE...REQUEST_CL_W(9) π
okay bestie, welcome to the Kernel API Manual page for SSAM_DEFINE_SYNC_REQUEST_CL_W β this one is literally all about generating a synchronous client-device SAM request function with an argument. no cap, it's a macro moment. π
πΈ NAME πΈ
SSAM_DEFINE_SYNC_REQUEST_CL_W β define a synchronous client-device SAM request function with an argument. iconic.
β¨ SYNOPSIS β¨
SSAM_DEFINE_SYNC_REQUEST_CL_W (name , atype , spec... );
π ARGUMENTS π
nameβ the name of the generated function.atypeβ the type of the request's argument.specβ the specification (struct ssam_request_spec_md) that defines the request.
π¦ DESCRIPTION π¦
so this macro defines a function that executes the synchronous SAM request specified by spec, and that request takes an argument of type atype and has no return value. the device specifying parameters are not hard-coded β instead they're provided via the client device, specifically its UID, supplied when you call this function. the generated function handles setting up the request struct, buffer allocation, and execution of the request itself, and it returns once the request has been fully completed. the required transport buffer will be allocated on the stack. stack allocation bestie, we love to see it. π
the generated function is defined as static int name(struct ssam_device *sdev, const atype *arg) and returns the status of the request, which is zero on success and negative on failure. the sdev parameter specifies both the target device of the request and, by association, the controller via which the request is sent. the request's argument is specified via the arg pointer. π«Ά
for more details on the behavior of the generated function, refer to ssam_request_do_sync_onstack. periodt.
π SEE ALSO π
the kernel file is ./include/linux/surface_aggregator/device.h, and the whole reference squad is:
enum ssam_device_domain(9)enum ssam_virtual_tc(9)struct ssam_device_uid(9)SSAM_DEVICE(9)SSAM_VDEV(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_R(9)SSAM_DEFINE_SYNC_REQUEST_CL_WR(9)ssam_device_notifier_register(9)ssam_device_notifier_unregister(9)
mwah π β source/version: ./include/linux/surface_aggreg...; date: October 2026; page name in the footer: SSAM_DEFINE...REQUEST_CL_W(9). that's the whole page, bestie π«Ά
π¦ 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