NCR5380_select(9)
π NCR5380_select(9) β a Kernel API Manual moment β¨
okay so bestie, welcome to the Kernel API Manual page for NCR5380_select π this is the group chat where we explain how to get a SCSI command its very own nexus. stay with me, it's giving iconic π
β¨ NAME β¨
NCR5380_select β attempt arbitration and selection for a given command π¦
πΈ SYNOPSIS πΈ
bool NCR5380_select (struct Scsi_Host *instance , struct scsi_cmnd *cmd
);
π«Ά ARGUMENTS π«Ά
instanceβ theScsi_Hostinstance, aka the host that's doing all this πcmdβ thescsi_cmndto execute, the little errand we're running πββοΈ
π₯ DESCRIPTION π₯
so this routine establishes an I_T_L nexus for a SCSI command β that's the whole main character energy of the function. and to do that it goes through ARBITRATION, SELECTION and MESSAGE OUT phases, plus an IDENTIFY message. it's a whole production, no cap π
as for what it gives back:
- returns
trueif the operation should be retried (try again bestie π) - returns
falseif it should not be retried (not this time π)
Side effects, because yes there are always side effects:
- if the bus is busy, or arbitration failed, or whatever other drama happened,
NCR5380_selectwill exit with the registers exactly as they should have been on entry β ie.SELECT_ENABLEwill be set appropriately, and theNCR5380will cease to drive any SCSI bus signals β - if it's successful: the I_T_L nexus gets established, and
hostdata->connectedwill be set tocmd. the SELECT interrupt will be disabled π - if it fails (no target):
scsi_donewill be called, and thecmd->resulthost byte set toDID_BAD_TARGETπ
fr fr, keep that nexus-or-nothing energy in mind β the success and failure exits do very different things, and the "no target" path is the one doing thescsi_donecall and settingDID_BAD_TARGET. π
π SEE ALSO π
Kernel file ./drivers/scsi/NCR5380.c and its entire friend group, all invited to the group chat:
initialize_SCp(9)NCR5380_poll_politely2(9)NCR5380_print(9)NCR5380_print_phase(9)NCR5380_info(9)NCR5380_init(9)NCR5380_maybe_reset_bus(9)NCR5380_exit(9)complete_cmd(9)NCR5380_queue_command(9)dequeue_next_cmd(9)NCR5380_main(9)NCR5380_intr(9)NCR5380_transfer_pio(9)do_reset(9)do_abort(9)list_find_cmd(9)NCR5380_abort(9)NCR5380_host_reset(9)
that's the whole page bestie, ily, go establish some nexuses π§π this one came straight out of ./drivers/scsi and it's dated October 2026 β slay, see you next manpage β¨π
π¦ 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