drivers/watchdog/hpwdt.c
Source file repositories/reference/linux-study-clean/drivers/watchdog/hpwdt.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/watchdog/hpwdt.c- Extension
.c- Size
- 11039 bytes
- Lines
- 446
- Domain
- Driver Families
- Bucket
- drivers/watchdog
- Inferred role
- Driver Families: operation-table or driver-model contract
- Status
- pattern 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 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/device.hlinux/hex.hlinux/io.hlinux/kernel.hlinux/module.hlinux/moduleparam.hlinux/pci.hlinux/pci_ids.hlinux/types.hlinux/watchdog.hasm/nmi.hasm/uv/uv.hlinux/crash_dump.h
Detected Declarations
function hpwdt_hw_is_runningfunction hpwdt_startfunction hpwdt_stopfunction hpwdt_stop_corefunction hpwdt_ping_ticksfunction hpwdt_pingfunction hpwdt_gettimeleftfunction hpwdt_settimeoutfunction hpwdt_set_pretimeoutfunction hpwdt_pretimeoutfunction hpwdt_init_nmi_decodingfunction hpwdt_exit_nmi_decodingfunction hpwdt_init_onefunction hpwdt_exitfunction hpwdt_suspendfunction hpwdt_resume
Annotated Snippet
static struct pci_driver hpwdt_driver = {
.name = "hpwdt",
.id_table = hpwdt_devices,
.probe = hpwdt_init_one,
.remove = hpwdt_exit,
.driver = {
.name = "hpwdt",
.pm = &hpwdt_pm_ops,
}
};
MODULE_AUTHOR("Tom Mingarelli");
MODULE_DESCRIPTION("hpe watchdog driver");
MODULE_LICENSE("GPL");
MODULE_VERSION(HPWDT_VERSION);
module_param(soft_margin, int, 0);
MODULE_PARM_DESC(soft_margin, "Watchdog timeout in seconds");
module_param_named(timeout, soft_margin, int, 0);
MODULE_PARM_DESC(timeout, "Alias of soft_margin");
module_param(nowayout, bool, 0);
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
module_param(kdumptimeout, int, 0444);
MODULE_PARM_DESC(kdumptimeout, "Timeout applied for crash kernel transition in seconds");
#ifdef CONFIG_HPWDT_NMI_DECODING
module_param(pretimeout, bool, 0);
MODULE_PARM_DESC(pretimeout, "Watchdog pretimeout enabled");
#endif
module_pci_driver(hpwdt_driver);
Annotation
- Immediate include surface: `linux/device.h`, `linux/hex.h`, `linux/io.h`, `linux/kernel.h`, `linux/module.h`, `linux/moduleparam.h`, `linux/pci.h`, `linux/pci_ids.h`.
- Detected declarations: `function hpwdt_hw_is_running`, `function hpwdt_start`, `function hpwdt_stop`, `function hpwdt_stop_core`, `function hpwdt_ping_ticks`, `function hpwdt_ping`, `function hpwdt_gettimeleft`, `function hpwdt_settimeout`, `function hpwdt_set_pretimeout`, `function hpwdt_pretimeout`.
- Atlas domain: Driver Families / drivers/watchdog.
- 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.