SSAM_DEFINE_...EQUEST_MD_WR(9)
π NAME π
Okay bestie, we're in the Kernel API Manual, section 9, and the page title is SSAM_DEFINE_SYNC_REQUEST_MD_WR(9). The actual name is SSAM_DEFINE_SYNC_REQUEST_MD_WR β and it defines a synchronous multi-device SAM request function with both an argument and a return value. Slay. β¨
πΈ SYNOPSIS πΈ
SSAM_DEFINE_SYNC_REQUEST_MD_WR (name , atype , rtype , spec... );
π ARGUMENTS π
nameβ the name of the generated function. You pick it, it's giving main character energy. πatypeβ the type of the request's argument.rtypeβ the type of the request's return value.specβ the specification (astruct ssam_request_spec_md) that defines the request. π
π¦ DESCRIPTION π¦
Okay so this definition creates a function that executes the synchronous SAM request specified by spec. That request takes an argument of type atype and has a return value of type rtype. Device specifying parameters are not hard-coded β instead they must be provided to the function. The generated function handles setting up the request and response structs, buffer allocation, and executing the request itself, and it returns once the request has been fully completed. The required transport buffer will be allocated on the stack. No cap, it's all handled. π«Ά
The generated function is defined as:
static int name(struct ssam_controller *ctrl, u8 tid, u8 iid, const atype *arg, rtype *ret)
It returns the status of the request, which is zero on success and negative on failure. The ctrl parameter is the controller via which the request is sent, tid is the target ID for the request, and iid is the instance ID. The request argument is specified via the arg pointer. The request's return value is written to the memory pointed to by the ret parameter. Literally so clean. π
For more details on the behavior of the generated function, refer to ssam_request_do_sync_onstack. π¦
π SEE ALSO π
Kernel file: ./include/linux/surface_aggregator/controller.h
Then the whole see-also squad, bestie:
enum ssam_event_flags(9)struct ssam_event(9)enum ssam_request_flags(9)struct ssam_request(9)struct ssam_response(9)struct ssam_request_sync(9)ssam_request_sync_set_data(9)ssam_request_sync_set_resp(9)ssam_request_sync_wait(9)ssam_request_do_sync_onstack(9)__ssam_retry(9)ssam_retry(9)struct ssam_request_spec(9)struct ssam_request_spec_md(9)SSAM_DEFINE_SYNC_REQUEST_N(9)SSAM_DEFINE_SYNC_REQUEST_W(9)SSAM_DEFINE_SYNC_REQUEST_R(9)SSAM_DEFINE_SYNC_REQUEST_WR(9)SSAM_DEFINE_SYNC_REQUEST_MD_N(9)SSAM_DEFINE_SYNC_REQUEST_MD_W(9)SSAM_DEFINE_SYNC_REQUEST_MD_R(9)enum ssam_notif_flags(9)struct ssam_notifier_block(9)ssam_notifier_from_errno(9)ssam_notifier_to_errno(9)struct ssam_event_registry(9)struct ssam_event_id(9)enum ssam_event_mask(9)SSAM_EVENT_REGISTRY(9)enum ssam_event_notifier_flags(9)struct ssam_event_notifier(9)ssam_notifier_unregister(9)
Cute sign-off time: this page is from source/version ./include/linux/surface_aggreg..., dated October 2026, and the footer title is SSAM_DEFINE_...EQUEST_MD_WR(9). Byeee bestie, go be iconic with your synchronous SAM requests πβ¨π
π¦ 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