drivers/target/target_core_user.c
Source file repositories/reference/linux-study-clean/drivers/target/target_core_user.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/target/target_core_user.c- Extension
.c- Size
- 88296 bytes
- Lines
- 3404
- Domain
- Driver Families
- Bucket
- drivers/target
- Inferred role
- Driver Families: exported/initcall integration point
- Status
- integration implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/spinlock.hlinux/module.hlinux/kernel.hlinux/timer.hlinux/parser.hlinux/vmalloc.hlinux/uio_driver.hlinux/xarray.hlinux/stringify.hlinux/bitops.hlinux/highmem.hlinux/configfs.hlinux/mutex.hlinux/workqueue.hlinux/pagemap.hnet/genetlink.hscsi/scsi_common.hscsi/scsi_proto.htarget/target_core_base.htarget/target_core_fabric.htarget/target_core_backend.hlinux/target_core_user.h
Detected Declarations
struct tcmu_hbastruct tcmu_devstruct tcmu_nl_cmdstruct tcmu_devstruct tcmu_cmdstruct tcmu_tmrenum tcmu_multicast_groupsfunction tcmu_set_global_max_data_areafunction tcmu_get_global_max_data_areafunction tcmu_get_block_netlinkfunction tcmu_set_block_netlinkfunction tcmu_fail_netlink_cmdfunction tcmu_set_reset_netlinkfunction tcmu_genl_cmd_donefunction tcmu_genl_rm_dev_donefunction tcmu_genl_add_dev_donefunction tcmu_genl_reconfig_dev_donefunction tcmu_genl_set_featuresfunction tcmu_cmd_free_datafunction tcmu_get_empty_blockfunction tcmu_get_empty_blocksfunction tcmu_free_cmdfunction tcmu_cmd_set_block_cntsfunction new_block_to_iovfunction tcmu_setup_iovsfunction tcmu_flush_dcache_rangefunction spc_usedfunction spc_freefunction head_to_endfunction tcmu_copy_datafunction scatter_data_areafunction gather_data_areafunction spc_bitmap_freefunction is_ring_space_availfunction tcmu_alloc_data_spacefunction tcmu_cmd_get_base_cmd_sizefunction tcmu_cmd_get_cmd_sizefunction tcmu_setup_cmd_timerfunction add_to_qfull_queuefunction ring_insert_paddingfunction tcmu_unplug_devicefunction queue_cmd_ringfunction queue_tmr_ringfunction tcmu_queue_cmdfunction tcmu_set_next_deadlinefunction tcmu_tmr_typefunction tcmu_tmr_notifyfunction list_for_each_entry
Annotated Snippet
module_init(tcmu_module_init);
module_exit(tcmu_module_exit);
Annotation
- Immediate include surface: `linux/spinlock.h`, `linux/module.h`, `linux/kernel.h`, `linux/timer.h`, `linux/parser.h`, `linux/vmalloc.h`, `linux/uio_driver.h`, `linux/xarray.h`.
- Detected declarations: `struct tcmu_hba`, `struct tcmu_dev`, `struct tcmu_nl_cmd`, `struct tcmu_dev`, `struct tcmu_cmd`, `struct tcmu_tmr`, `enum tcmu_multicast_groups`, `function tcmu_set_global_max_data_area`, `function tcmu_get_global_max_data_area`, `function tcmu_get_block_netlink`.
- Atlas domain: Driver Families / drivers/target.
- Implementation status: integration implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.