STRUCT QDR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct qdr(9) β€” the queue description record glow-up

okay bestie, buckle up, we're reading struct qdr(9) from the Kernel API Manual and honestly? it's giving "backstage pass to the queue" energy. QDR = queue description record, and it's the little blueprint that tells you everything about a queue's format, sizes, addresses and key. no cap, it's iconic. πŸŽ€


✨ NAME ✨

struct qdr β€” queue description record (QDR). that's it, that's the whole vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

here's the whole thing, copied exactly, don't @ me:

struct qdr {
    u32 qfmt   : 8;
    u32 : 16;
    u32 ac     : 8;
    u32 : 8;
    u32 iqdcnt : 8;
    u32 : 8;
    u32 oqdcnt : 8;
    u32 : 8;
    u32 iqdsz  : 8;
    u32 : 8;
    u32 oqdsz  : 8;
    dma64_t qiba;
    u32 : 32;
    u32 qkey   : 4;
    u32 : 28;
    struct qdesfmt0 qdf0[126];
 };

like, look at all those anonymous bit-field gaps (: 16, : 8, : 32, : 28…). they're not filler, they're padding, and they are serving structure. periodt. πŸ’…


πŸ‘‘ Members πŸ‘‘

bestie, let's go member by member, no skipping, we don't do that here:

  • qfmt β€” queue format. the whole personality of the queue in one field. ✨
  • ac β€” adapter characteristics. the adapter's little resume of traits. 🫢
  • iqdcnt β€” input queue descriptor count. how many input descriptors we're working with. πŸ“
  • oqdcnt β€” output queue descriptor count. same energy, but output. 🌸
  • iqdsz β€” input queue descriptor size. the size, for the input side. πŸ’œ
  • oqdsz β€” output queue descriptor size. the size, for the output side. πŸ’œ
  • qiba β€” absolute address of queue information block. a whole absolute address, main character energy. πŸ”₯
  • qkey β€” queue information block key. it's a 4-bit key and it's lowkey important. πŸ”‘ (well, : 4 bits important.)
  • qdf0 β€” queue descriptions. an array [126] of struct qdesfmt0, and yes, 126 of them, we counted. 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

the friend group!! go say hi, they all live in Kernel file ./arch/s390/include/asm/qdio.h:

  • struct qdesfmt0(9)
  • struct qib(9)
  • struct slibe(9)
  • struct qaob(9)
  • struct slib(9)
  • struct qdio_buffer_element(9)
  • struct qdio_buffer(9)
  • struct sl_element(9)
  • struct sl(9)
  • struct slsb(9)
  • struct qdio_initialize(9)

ngl, if you're touching queues on s390 you're gonna want to read these. iykyk. πŸ’€

and that's the page!! mwah πŸ’– this one came from ./arch/s390/include/asm, dated October 2026, and it's struct qdr(9) forever and always. slay, go read your headers. πŸ§šβ€β™€οΈβ­

πŸ“¦ where this page comes from