include/scsi/scsi_driver.h
Source file repositories/reference/linux-study-clean/include/scsi/scsi_driver.h
File Facts
- System
- Linux kernel
- Corpus path
include/scsi/scsi_driver.h- Extension
.h- Size
- 1330 bytes
- Lines
- 46
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: operation-table or driver-model contract
- Status
- pattern implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/blk_types.hlinux/device.hscsi/scsi_cmnd.h
Detected Declarations
struct modulestruct requeststruct scsi_driver
Annotated Snippet
struct device_driver gendrv;
int (*probe)(struct scsi_device *);
void (*remove)(struct scsi_device *);
void (*shutdown)(struct scsi_device *);
int (*resume)(struct device *);
void (*rescan)(struct device *);
blk_status_t (*init_command)(struct scsi_cmnd *);
void (*uninit_command)(struct scsi_cmnd *);
int (*done)(struct scsi_cmnd *);
int (*eh_action)(struct scsi_cmnd *, int);
void (*eh_reset)(struct scsi_cmnd *);
};
#define to_scsi_driver(drv) \
container_of((drv), struct scsi_driver, gendrv)
#define scsi_register_driver(drv) \
__scsi_register_driver(drv, THIS_MODULE)
int __scsi_register_driver(struct scsi_driver *, struct module *);
#define scsi_unregister_driver(drv) \
driver_unregister(&(drv)->gendrv);
extern int scsi_register_interface(struct class_interface *);
#define scsi_unregister_interface(intf) \
class_interface_unregister(intf)
/* make sure not to use it with passthrough commands */
static inline struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd)
{
return to_scsi_driver(cmd->device->sdev_gendev.driver);
}
#endif /* _SCSI_SCSI_DRIVER_H */
Annotation
- Immediate include surface: `linux/blk_types.h`, `linux/device.h`, `scsi/scsi_cmnd.h`.
- Detected declarations: `struct module`, `struct request`, `struct scsi_driver`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: pattern implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.