STRUCT QAIC_ATTACH_SLICE_ENTRY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct qaic_attach_slice_entry β€” Kernel API Manual πŸ’…

okay so bestie, welcome to the group chat for struct qaic_attach_slice_entry(9) β€” this is the Kernel API Manual page for it, and we're gonna get you fluent, no cap. It's a struct that defines a single BO slice. That's the whole vibe. One slice. One entry. Iconic behavior honestly.


✨ NAME ✨

struct qaic_attach_slice_entry β€” literally just defines a single BO slice. That's it. That's the job. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct qaic_attach_slice_entry {
    __u64 size;
    struct qaic_sem sem0;
    struct qaic_sem sem1;
    struct qaic_sem sem2;
    struct qaic_sem sem3;
    __u64 dev_addr;
    __u64 db_addr;
    __u32 db_data;
    __u32 db_len;
    __u64 offset;
 };

look at her. ten fields. flawless layout. the way the four sems are just sitting there in a row like a little squad πŸ˜­πŸ’œ


🌸 Members 🌸

so every single one of these is marked In. β€” meaning input, you're feeding it in, it's not gonna hand anything back to you. let's go through them one by one, bestie:

  • size β€” In. Size of this slice, in bytes. πŸ“ keep it in bytes, not vibes.
  • sem0 β€” In. Semaphore command 0. the original wording here is literally "Must be 0 is not valid." β€” yeah, that's exactly how it's written on the page, so I'm handing it to you verbatim, iykyk πŸ‘€πŸ«Ά
  • sem1 β€” In. Semaphore command 1. same deal, original says "Must be 0 is not valid." ⭐
  • sem2 β€” In. Semaphore command 2. and again β€” "Must be 0 is not valid." 🌈
  • sem3 β€” In. Semaphore command 3. one more time for the people in the back β€” "Must be 0 is not valid." πŸ’€
  • dev_addr β€” In. The device address this slice pushes to or pulls from. main character energy, honestly β€” it does both directions. πŸ”₯
  • db_addr β€” In. Address of the doorbell to ring. πŸ”” yes, ring it. ding dong.
  • db_data β€” In. The data to write to that doorbell. πŸ“
  • db_len β€” In. Size of the doorbell data, in bits β€” and it's 32, 16, or 8. If you pass 0, that's for inactive doorbells (so like, no bell to ring, no problem). πŸ™ˆ
  • offset β€” In. Start of this slice, expressed as an offset from the start of the BO. 🎯 so it's a relative little guy.
ngl the sem0–sem3 descriptions are worded exactly like that on the page β€” I'm not paraphrasing them into something else, because changing a technical caveat would be a crime and I refuse 🫢

πŸ’– SEE ALSO πŸ’–

Kernel file ./include/uapi/drm/qaic_accel.h β€” that's struct, bestie. Here's the full squad, all (9), all linked:

  • struct qaic_manage_trans_hdr(9)
  • struct qaic_manage_trans_passthrough(9)
  • struct qaic_manage_trans_dma_xfer(9)
  • struct qaic_manage_trans_activate_to_dev(9)
  • struct qaic_manage_trans_activate_from_dev(9)
  • struct qaic_manage_trans_deactivate(9)
  • struct qaic_manage_trans_status_to_dev(9)
  • struct qaic_manage_trans_status_from_dev(9)
  • struct qaic_manage_msg(9)
  • struct qaic_create_bo(9)
  • struct qaic_mmap_bo(9)
  • struct qaic_sem(9)
  • struct qaic_attach_slice_hdr(9)
  • struct qaic_attach_slice(9)
  • struct qaic_execute_entry(9)
  • struct qaic_partial_execute_entry(9)
  • struct qaic_execute_hdr(9)
  • struct qaic_execute(9)
  • struct qaic_wait(9)
  • struct qaic_perf_stats_hdr(9)
  • struct qaic_perf_stats(9)
  • struct qaic_perf_stats_entry(9)
  • struct qaic_detach_slice(9)

like, go read them. it's giving "required reading" and honestly you'll thank me later πŸ’…πŸ“š


and that's the page!! πŸŽ€ sourced from ./include/uapi/drm, dated October 2026, and the whole thing is filed under struct qaic_..._slice_entry(9) in case you need to find her again. mwah, go slay your slices bestie πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from