ufshcd_queuecommand(9)
β¨ ufshcd_queuecommand(9) β¨
okay bestie, welcome to the Kernel API Manual entry for ufshcd_queuecommand β this is the main character function, the bouncer at the club, the one that actually takes your SCSI request and gets it going π
π NAME π
ufshcd_queuecommand β main entry point for SCSI requests
Like, THE entry point. The front door. The "hey girl, come on in" of SCSI requests π«Ά
πΈ SYNOPSIS πΈ
enum scsi_qc_status ufshcd_queuecommand (struct Scsi_Host *host , struct
scsi_cmnd *cmd );
Note the return type, bestie: enum scsi_qc_status β she's not messing around β¨
π¦ ARGUMENTS π¦
hostβ SCSI host pointer. this is the host, your venue, your whole setup πcmdβ command from SCSI Midlayer. this is the actual request sliding into your DMs, handed over straight from the SCSI Midlayer π
β RETURN β
0 for success, non-zero in case of failure. that's it, that's the vibe check β zero means we ate, anything else means something's not giving π
π SEE ALSO π
Kernel file ./drivers/ufs/core/ufshcd.c β and honestly? the whole girlies' group chat of related functions, no cap:
ufshcd_enable_intr(9)ufshcd_disable_intr(9)ufshcd_print_trs_all(9)ufshcd_print_pwr_info(9)ufshcd_wait_for_register(9)ufshcd_get_intr_mask(9)ufshcd_get_ufs_version(9)ufshcd_is_device_present(9)ufshcd_get_tr_ocs(9)ufshcd_utrl_clear(9)ufshcd_utmrl_clear(9)ufshcd_get_lists_status(9)ufshcd_get_req_rsp(9)ufshcd_is_exception_event(9)ufshcd_reset_intr_aggr(9)ufshcd_config_intr_aggr(9)ufshcd_disable_intr_aggr(9)ufshcd_enable_run_stop_reg(9)ufshcd_hba_start(9)ufshcd_is_hba_active(9)ufshcd_pm_qos_init(9)ufshcd_pm_qos_exit(9)ufshcd_pm_qos_update(9)ufshcd_set_clk_freq(9)ufshcd_scale_clks(9)ufshcd_is_devfreq_scaling_required(9)ufshcd_pause_command_processing(9)ufshcd_resume_command_processing(9)ufshcd_scale_gear(9)ufshcd_devfreq_scale(9)ufshcd_hold(9)ufshcd_send_command(9)ufshcd_copy_sense_data(9)ufshcd_copy_query_response(9)ufshcd_hba_capabilities(9)ufshcd_ready_for_uic_cmd(9)ufshcd_get_upmcrs(9)ufshcd_dispatch_uic_cmd(9)ufshcd_wait_for_uic_cmd(9)__ufshcd_send_uic_cmd(9)ufshcd_send_uic_cmd(9)ufshcd_sgl_to_prdt(9)ufshcd_map_sg(9)ufshcd_prepare_req_desc_hdr(9)ufshcd_prepare_utp_scsi_cmd_upiu(9)ufshcd_prepare_utp_query_req_upiu(9)ufshcd_compose_devman_upiu(9)ufshcd_comp_scsi_upiu(9)ufshcd_upiu_wlun_to_scsi_wlun(9)ufshcd_dev_cmd_completion(9)ufshcd_exec_dev_cmd(9)ufshcd_init_query(9)ufshcd_query_flag(9)ufshcd_query_attr(9)ufshcd_query_attr_retry(9)ufshcd_query_attr_qword(9)ufshcd_query_descriptor_retry(9)ufshcd_read_desc_param(9)struct uc_string_id(9)ufshcd_read_string_desc(9)ufshcd_read_unit_desc_param(9)ufshcd_memory_alloc(9)ufshcd_host_memory_configure(9)ufshcd_dme_link_startup(9)ufshcd_dme_reset(9)ufshcd_dme_enable(9)ufshcd_dme_set_attr(9)ufshcd_dme_get_attr(9)ufshcd_dme_rmw(9)ufshcd_uic_pwr_ctrl(9)ufshcd_uic_tx_eqtr(9)ufshcd_send_bsg_uic_cmd(9)ufshcd_uic_change_pwr_mode(9)ufshcd_get_max_pwr_mode(9)ufshcd_dme_change_power_mode(9)ufshcd_change_power_mode(9)ufshcd_config_pwr_mode(9)ufshcd_complete_dev_init(9)ufshcd_make_hba_operational(9)ufshcd_hba_stop(9)ufshcd_hba_execute_hce(9)ufshcd_link_startup(9)ufshcd_verify_dev_init(9)ufshcd_setup_links(9)ufshcd_lu_init(9)ufshcd_sdev_init(9)ufshcd_change_queue_depth(9)ufshcd_sdev_configure(9)ufshcd_sdev_destroy(9)ufshcd_scsi_cmd_status(9)ufshcd_transfer_rsp_status(9)ufshcd_uic_cmd_compl(9)ufshcd_compl_one_cqe(9)__ufshcd_transfer_req_compl(9)ufshcd_mcq_compl_pending_transfer(9)ufshcd_transfer_req_compl(9)ufshcd_disable_ee(9)ufshcd_enable_ee(9)ufshcd_enable_auto_bkops(9)ufshcd_disable_auto_bkops(9)ufshcd_force_reset_auto_bkops(9)ufshcd_bkops_ctrl(9)ufshcd_exception_event_handler(9)ufshcd_quirk_dl_nac_errors(9)ufshcd_abort_all(9)ufshcd_err_handler(9)ufshcd_update_uic_error(9)ufshcd_check_errors(9)ufshcd_tmc_handler(9)ufshcd_handle_mcq_cq_events(9)ufshcd_sl_intr(9)ufshcd_intr(9)ufshcd_issue_tm_cmd(9)ufshcd_issue_devman_upiu_cmd(9)ufshcd_exec_raw_upiu_cmd(9)ufshcd_advanced_rpmb_req_handler(9)ufshcd_eh_device_reset_handler(9)ufshcd_try_to_abort_task(9)ufshcd_abort(9)ufshcd_process_probe_result(9)ufshcd_host_reset_and_restore(9)ufshcd_reset_and_restore(9)ufshcd_eh_host_reset_handler(9)ufshcd_get_max_icc_level(9)ufshcd_find_max_sup_active_icc_level(9)ufshcd_scsi_add_wlus(9)ufshcd_create_device_id(9)ufshcd_quirk_tune_host_pa_tactivate(9)ufshcd_quirk_override_pa_h8time(9)ufshcd_add_lus(9)ufshcd_get_op_mode(9)ufshcd_probe_hba(9)ufshcd_async_scan(9)ufshcd_set_dev_pwr_mode(9)ufshcd_suspend(9)ufshcd_resume(9)ufshcd_system_suspend(9)ufshcd_system_resume(9)ufshcd_runtime_suspend(9)ufshcd_runtime_resume(9)ufshcd_remove(9)ufshcd_set_dma_mask(9)ufshcd_devres_release(9)ufshcd_alloc_host(9)ufshcd_init(9)
reminder bestie: the source lives at ./drivers/ufs/core and this page is dated October 2026 β the Kernel API Manual girlies really said "we'll see you in the future" and honestly? iconic ππ
go queue those commands, ufshcd_init(9) is literally right there waiting for you π§β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms