STRUCT RELAY_TRANSACTION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct relay_transaction β€” internal data used to handle transactions. That's the whole vibe, bestie: it's the backstage-pass struct for transaction handling. ✨

✨ SYNOPSIS ✨

struct relay_transaction {
    bool incoming;
    u32 remote;
    u32 rid;
    u32 *request;
    u32 request_len;
    u32 *response;
    u32 response_len;
    u32 offset;
    u32 request_buf[GUC_CTB_MAX_DWORDS];
    u32 response_buf[GUC_CTB_MAX_DWORDS];
    int reply;
    struct completion done;
    struct list_head link;
 };

Okay so this is struct relay_transaction(9), straight from the Kernel API Manual, section 9 β€” and here's every member, no skipping, fr fr. 🫢

πŸ‘₯ Members πŸ‘‘

  • incoming β€” bool energy: says whether this transaction is an incoming request from the remote VF/PF, or an outgoing request headed to the remote VF/PF. πŸŒ€
  • remote β€” the PF/VF identifier for where the relay request message came from (or where it's going). πŸ“
  • rid β€” the identifier for the VF/PF relay message. 🏷️
  • request β€” points to the inner VF/PF request message, copied to the #response_buf starting at #offset. 🧡
  • request_len β€” length of the inner VF/PF request message. πŸ“
  • response β€” points to the placeholder buffer where the inner VF/PF response will be located; for an outgoing transaction this could be the caller's buffer (if provided), otherwise it points to the #response_buf starting at #offset. 🫧
  • response_len β€” length of the inner VF/PF response message (only if #status is 0), initially set to the size of the placeholder buffer where the response message will be copied. 🎯
  • offset β€” offset to the start of the inner VF/PF relay message inside buffers; this offset is equal to the length of the outer GuC relay header message. 🧭
  • request_buf β€” buffer with the VF/PF request message including the outer transport message. πŸ“¦
  • response_buf β€” buffer with the VF/PF response message including the outer transport message. 🎁
  • reply β€” status of the reply; 0 means that data pointed to by #response is valid. βœ…
  • done β€” completion of the outgoing transaction. ⏳
  • link β€” transaction list link. πŸ”—

πŸ’¬ Description πŸ’¬

Relation between struct relay_transaction members β€” it's giving diagram time, and the layout is literally this:

                       <-------------------- GUC_CTB_MAX_DWORDS -------------->
                                        <-------- GUC_RELAY_MSG_MAX_LEN --->
                       <--- offset ---> <--- request_len ------->
                      +----------------+-------------------------+----------+--+
                      |                |                         |          |  |
                      +----------------+-------------------------+----------+--+
                      ^                ^
                     /                /
          request_buf          request
                       <-------------------- GUC_CTB_MAX_DWORDS -------------->
                                        <-------- GUC_RELAY_MSG_MAX_LEN --->
                       <--- offset ---> <--- response_len --->
                      +----------------+----------------------+-------------+--+
                      |                |                      |             |  |
                      +----------------+----------------------+-------------+--+
                      ^                ^
                     /                /
         response_buf         response

πŸ”— SEE ALSO πŸ”—


that's the page, bestie 🫢✨ source path ./drivers/gpu/drm/xe, version/date October 2026, and this was struct relay_transaction(9) in the Kernel API Manual. mwah πŸ’‹

πŸ“¦ where this page comes from