drivers/gpib/ni_usb/ni_usb_gpib.c
Source file repositories/reference/linux-study-clean/drivers/gpib/ni_usb/ni_usb_gpib.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpib/ni_usb/ni_usb_gpib.c- Extension
.c- Size
- 79678 bytes
- Lines
- 2676
- Domain
- Driver Families
- Bucket
- drivers/gpib
- 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/kernel.hlinux/module.hlinux/slab.hni_usb_gpib.hgpibP.hnec7210.htnt4882_registers.h
Detected Declarations
function ni_usb_timeout_msecsfunction ni_usb_timeout_codefunction ni_usb_bulk_completefunction ni_usb_timeout_handlerfunction ni_usb_nonblocking_send_bulk_msgfunction ni_usb_send_bulk_msgfunction ni_usb_nonblocking_receive_bulk_msgfunction ni_usb_receive_bulk_msgfunction ni_usb_receive_control_msgfunction ni_usb_soft_update_statusfunction ni_usb_parse_status_blockfunction ni_usb_dump_raw_blockfunction ni_usb_parse_register_read_blockfunction ni_usb_parse_termination_blockfunction parse_board_ibrd_readbackfunction ni_usb_parse_reg_write_status_blockfunction ni_usb_write_registersfunction ni_usb_readfunction ni_usb_writefunction ni_usb_command_chunkfunction ni_usb_commandfunction ni_usb_take_controlfunction ni_usb_go_to_standbyfunction ni_usb_request_system_controlfunction ni_usb_interface_clearfunction ni_usb_remote_enablefunction ni_usb_enable_eosfunction ni_usb_disable_eosfunction ni_usb_update_statusfunction ni_usb_stopfunction ni_usb_primary_addressfunction ni_usb_write_sadfunction ni_usb_secondary_addressfunction ni_usb_parallel_pollfunction ni_usb_parallel_poll_configurefunction ni_usb_parallel_poll_responsefunction ni_usb_serial_poll_responsefunction ni_usb_serial_poll_statusfunction ni_usb_return_to_localfunction ni_usb_line_statusfunction ni_usb_setup_t1_delayfunction ni_usb_t1_delayfunction ni_usb_allocate_privatefunction ni_usb_free_privatefunction ni_usb_setup_initfunction ni_usb_initfunction ni_usb_interrupt_completefunction ni_usb_set_interrupt_monitor
Annotated Snippet
module_init(ni_usb_init_module);
module_exit(ni_usb_exit_module);
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/module.h`, `linux/slab.h`, `ni_usb_gpib.h`, `gpibP.h`, `nec7210.h`, `tnt4882_registers.h`.
- Detected declarations: `function ni_usb_timeout_msecs`, `function ni_usb_timeout_code`, `function ni_usb_bulk_complete`, `function ni_usb_timeout_handler`, `function ni_usb_nonblocking_send_bulk_msg`, `function ni_usb_send_bulk_msg`, `function ni_usb_nonblocking_receive_bulk_msg`, `function ni_usb_receive_bulk_msg`, `function ni_usb_receive_control_msg`, `function ni_usb_soft_update_status`.
- Atlas domain: Driver Families / drivers/gpib.
- 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.