drivers/scsi/bnx2fc/bnx2fc_debug.c
Source file repositories/reference/linux-study-clean/drivers/scsi/bnx2fc/bnx2fc_debug.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/bnx2fc/bnx2fc_debug.c- Extension
.c- Size
- 1854 bytes
- Lines
- 85
- Domain
- Driver Families
- Bucket
- drivers/scsi
- Inferred role
- Driver Families: implementation source
- Status
- source 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
bnx2fc.h
Detected Declarations
function BNX2FC_IO_DBGfunction BNX2FC_TGT_DBGfunction BNX2FC_HBA_DBG
Annotated Snippet
#include "bnx2fc.h"
void BNX2FC_IO_DBG(const struct bnx2fc_cmd *io_req, const char *fmt, ...)
{
struct va_format vaf;
va_list args;
if (likely(!(bnx2fc_debug_level & LOG_IO)))
return;
va_start(args, fmt);
vaf.fmt = fmt;
vaf.va = &args;
if (io_req && io_req->port && io_req->port->lport &&
io_req->port->lport->host)
shost_printk(KERN_INFO, io_req->port->lport->host,
PFX "xid:0x%x %pV",
io_req->xid, &vaf);
else
pr_info("NULL %pV", &vaf);
va_end(args);
}
void BNX2FC_TGT_DBG(const struct bnx2fc_rport *tgt, const char *fmt, ...)
{
struct va_format vaf;
va_list args;
if (likely(!(bnx2fc_debug_level & LOG_TGT)))
return;
va_start(args, fmt);
vaf.fmt = fmt;
vaf.va = &args;
if (tgt && tgt->port && tgt->port->lport && tgt->port->lport->host &&
tgt->rport)
shost_printk(KERN_INFO, tgt->port->lport->host,
PFX "port:%x %pV",
tgt->rport->port_id, &vaf);
else
pr_info("NULL %pV", &vaf);
va_end(args);
}
void BNX2FC_HBA_DBG(const struct fc_lport *lport, const char *fmt, ...)
{
struct va_format vaf;
va_list args;
if (likely(!(bnx2fc_debug_level & LOG_HBA)))
return;
va_start(args, fmt);
vaf.fmt = fmt;
vaf.va = &args;
if (lport && lport->host)
shost_printk(KERN_INFO, lport->host, PFX "%pV", &vaf);
else
pr_info("NULL %pV", &vaf);
va_end(args);
}
Annotation
- Immediate include surface: `bnx2fc.h`.
- Detected declarations: `function BNX2FC_IO_DBG`, `function BNX2FC_TGT_DBG`, `function BNX2FC_HBA_DBG`.
- Atlas domain: Driver Families / drivers/scsi.
- Implementation status: source 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.