aac_queue_get(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… aac_queue_get(9) β€” like, the Kernel API Manual page, bestie

Okay so this is aac_queue_get from the Kernel API Manual, and it's genuinely one of those little functions that holds the whole queue situation together. Sit down, grab a strawberry drink, we're learning ✨


🌸 NAME

aac_queue_get β€” get the next free QE. That's it, that's the vibe. One free queue entry, coming right up πŸŽ€


πŸ¦‹ SYNOPSIS

int aac_queue_get (struct aac_dev * dev , u32 * index , u32 qid , struct
hw_fib * hw_fib , int wait , struct fib * fibptr , unsigned long
*nonotify );

Yeah, that's a lot of parameters. Seven of them. She's high-maintenance but she delivers πŸ’…


πŸ‘‘ ARGUMENTS

  • dev β€” Adapter. The whole device situation, the main character here.
  • index β€” Returned index. She gives you back an index, that's the whole point.
  • qid β€” Queue number. Which queue we're talking about, be specific.
  • hw_fib β€” Fib to associate with the queue entry. These two are getting paired up, it's giving set-up-my-friend energy 🫢
  • wait β€” Wait if queue full. Like, do we sit and wait or do we not. Your call.
  • fibptr β€” Driver fib object to go with fib. Goes together with hw_fib, they're a matching set 🌸
  • nonotify β€” Don't notify the adapter. Exactly what it says, no cap.

✨ DESCRIPTION

So basically, aac_queue_get gets the next free QE off the requested priorty adapter command queue, and associates the Fib with the QE. That's the whole thing.

And then β€” and this part is iconic β€” the QE represented by index is ready to insert on the queue when this routine returns success. So like, once it comes back happy, you can just go ahead and insert it. Slay πŸ”₯

Fr fr, only on success though. Don't be out here inserting stuff when it didn't return success. Read the return value, bestie, it's literally right there 😭

🌈 SEE ALSO

Kernel file ./drivers/scsi/aacraid/commsup.c, plus the whole friend group:

fib_map_alloc(9), aac_fib_map_free(9), aac_fib_setup(9), aac_fib_alloc_tag(9), aac_fib_alloc(9), aac_fib_free(9), aac_fib_init(9), fib_dealloc(9), aac_get_entry(9), aac_fib_send(9), aac_consumer_get(9), aac_consumer_free(9), aac_fib_adapter_complete(9), aac_fib_complete(9), aac_printf(9), aac_handle_aif(9), aac_handle_sa_aif(9), aac_command_thread(9)

Like literally the entire aacraid extended universe. Go read them all, iykyk πŸ’–


πŸ¦‹ Okay that's the whole page! This little gem lives in ./drivers/scsi/aacraid, and it's dated October 2026 β€” yes, October 2026, don't ask. Bye bestie, go get yourself a free QE πŸ’œπŸ‘‘

πŸ“¦ where this page comes from