STRUCT HL_CQ(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct hl_cq(9) β€” like, the completion queue glow-up ✨

okay bestie, grab your iced coffee πŸ“ because we're diving into struct hl_cq from the Kernel API Manual β€” this is the little struct that describes a completion queue, and honestly it's giving main character energy for something so smol. no cap, every field matters here, so let's go 🫢


🌸 SYNOPSIS 🌸

here's the whole vibe, verbatim, don't touch a single character bestie:

struct hl_cq {
    struct hl_device        *hdev;
    void *kernel_address;
    dma_addr_t bus_address;
    u32 cq_idx;
    u32 hw_queue_id;
    u32 ci;
    u32 pi;
    atomic_t free_slots_cnt;
};

like, that's it. that's the struct. iconic. πŸ‘‘


πŸŽ€ Members πŸŽ€

every single one, no skips, we're not doing that πŸ™ˆ

  • hdev β€” a pointer to the device structure. yes queen, it knows where it lives πŸ’–
  • kernel_address β€” holds the queue's kernel virtual address. its home address in kernel land 🏠
  • bus_address β€” holds the queue's DMA address. the ✨bus✨ version of the address, iykyk
  • cq_idx β€” completion queue index in the array. which one of the girlies it is πŸ’…
  • hw_queue_id β€” the id of the matching H/W queue. its hardware bestie fr fr πŸ”₯
  • ci β€” ci inside the queue. literally just ci. that's the whole description, and honestly? valid 😭
  • pi β€” pi inside the queue. same energy, pi this time πŸ₯§
  • free_slots_cnt β€” counter of free slots in the queue. how many seats are still open at the function πŸŽ€

πŸ¦‹ SEE ALSO πŸ¦‹

okay this list is long long, but we do not gatekeep and we do not skip a single one, so buckle up bestie β€” here's every single reference, in order, exactly as the original had them πŸ’œ

the Kernel file: ./drivers/accel/habanalabs/common/habanalabs.h

and then the whole friend group: enum hl_mmu_page_table_location(9), struct iterate_module_ctx(9), struct hl_gen_wait_properties(9), struct pgt_info(9), enum hl_pci_match_mode(9), enum hl_fw_component(9), enum hl_fw_types(9), enum hl_queue_type(9), struct hw_queue_properties(9), enum vm_type(9), enum mmu_op_flags(9), enum hl_device_hw_state(9), struct hl_mmu_properties(9), struct hl_hints_range(9), struct asic_fixed_properties(9), struct hl_fence(9), struct hl_cs_compl(9), struct hl_ts_buff(9), struct hl_mem_mgr(9), struct hl_mem_mgr_fini_stats(9), struct hl_mmap_mem_buf_behavior(9), struct hl_mmap_mem_buf(9), struct hl_cb(9), struct hl_sync_stream_properties(9), struct hl_encaps_signals_mgr(9), struct hl_hw_queue(9), struct hl_ts_free_jobs(9), struct hl_user_interrupt(9), struct timestamp_reg_free_node(9), struct hl_user_pending_interrupt(9), struct hl_eq(9), struct hl_dec(9), enum hl_asic_type(9), enum hl_pm_mng_profile(9), enum hl_pll_frequency(9), struct pci_mem_region(9), struct static_fw_load_mgr(9), struct fw_response(9), struct dynamic_fw_load_mgr(9), struct pre_fw_load_props(9), struct fw_image_props(9), struct fw_load_mgr(9), struct engines_data(9), struct hl_asic_funcs(9), enum hl_va_range_type(9), struct hl_va_range(9), struct hl_cs_counters_atomic(9), struct hl_dmabuf_priv(9), struct hl_cs_outcome(9), struct hl_cs_outcome_store(9), struct hl_ctx(9), struct hl_ctx_mgr(9), struct hl_userptr(9), struct hl_cs(9), struct hl_cs_job(9), struct hl_cs_parser(9), struct hl_vm_hash_node(9), struct hl_vm_hw_block_list_node(9), struct hl_vm_phys_pg_pack(9), struct hl_vm_va_block(9), struct hl_vm(9), struct hl_debug_params(9), struct hl_notifier_event(9), struct hl_fpriv(9), struct hl_info_list(9), struct hl_debugfs_entry(9), struct hl_dbg_device_entry(9), struct hl_debugfs_cfg_access_entry(9), struct hl_debugfs_cfg_access(9), struct hl_hw_obj_name_entry(9), struct hl_mon_state_dump(9), struct hl_sync_to_engine_map_entry(9), struct hl_sync_to_engine_map(9), struct hl_state_dump_specs_funcs(9), struct hl_state_dump_specs(9), struct hl_device_reset_work(9), struct hl_mmu_priv(9), struct hl_mmu_per_hop_info(9), struct hl_mmu_hop_info(9), struct hl_hr_mmu_funcs(9), struct hl_mmu_funcs(9), struct hl_prefetch_work(9), struct multi_cs_completion(9), struct multi_cs_data(9), struct hl_clk_throttle_timestamp(9), struct hl_clk_throttle(9), struct user_mapped_block(9), struct cs_timeout_info(9), struct undefined_opcode_info(9), struct page_fault_info(9), struct razwi_info(9), struct hw_err_info(9), struct fw_err_info(9), struct engine_err_info(9), struct hl_error_info(9), struct hl_reset_info(9), struct eq_heartbeat_debug_info(9), struct hl_device(9), struct hl_cs_encaps_sig_handle(9), struct hl_info_fw_err_info(9), hl_ioctl_t(9), struct hl_ioctl_desc(9), hl_get_sg_info(9), hl_mem_area_inside_range(9), hl_mem_area_crosses_range(9)

and yeah, they all have (9) after them because they're kernel API section 9 pages, not because they're nine years old πŸ’€

🌈 the cute sign-off πŸ’–

this little legend came out of ./drivers/accel/habanalabs/common, dated October 2026, and the page is literally called struct hl_cq(9) β€” go off, bestie πŸŽ€βœ¨ you ate and left no crumbs 🫢🌷

πŸ“¦ where this page comes from