drivers/video/console/dummycon.c
Source file repositories/reference/linux-study-clean/drivers/video/console/dummycon.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/video/console/dummycon.c- Extension
.c- Size
- 4039 bytes
- Lines
- 160
- Domain
- Driver Families
- Bucket
- drivers/video
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/kdev_t.hlinux/console.hlinux/vt_kern.hlinux/screen_info.hlinux/init.hlinux/module.hasm/vga.h
Detected Declarations
function dummycon_register_output_notifierfunction dummycon_unregister_output_notifierfunction dummycon_putcfunction dummycon_putcsfunction dummycon_blankfunction dummycon_switchfunction dummycon_putcfunction dummycon_switchfunction dummycon_initfunction dummycon_deinitexport dummy_con
Annotated Snippet
if (init) {
vc->vc_cols = DUMMY_COLUMNS;
vc->vc_rows = DUMMY_ROWS;
} else
vc_resize(vc, DUMMY_COLUMNS, DUMMY_ROWS);
}
static void dummycon_deinit(struct vc_data *vc) { }
static void dummycon_clear(struct vc_data *vc, unsigned int sy, unsigned int sx,
unsigned int width) { }
static void dummycon_cursor(struct vc_data *vc, bool enable) { }
static bool dummycon_scroll(struct vc_data *vc, unsigned int top,
unsigned int bottom, enum con_scroll dir,
unsigned int lines)
{
return false;
}
/*
* The console `switch' structure for the dummy console
*
* Most of the operations are dummies.
*/
const struct consw dummy_con = {
.owner = THIS_MODULE,
.con_startup = dummycon_startup,
.con_init = dummycon_init,
.con_deinit = dummycon_deinit,
.con_clear = dummycon_clear,
.con_putc = dummycon_putc,
.con_putcs = dummycon_putcs,
.con_cursor = dummycon_cursor,
.con_scroll = dummycon_scroll,
.con_switch = dummycon_switch,
.con_blank = dummycon_blank,
};
EXPORT_SYMBOL_GPL(dummy_con);
Annotation
- Immediate include surface: `linux/types.h`, `linux/kdev_t.h`, `linux/console.h`, `linux/vt_kern.h`, `linux/screen_info.h`, `linux/init.h`, `linux/module.h`, `asm/vga.h`.
- Detected declarations: `function dummycon_register_output_notifier`, `function dummycon_unregister_output_notifier`, `function dummycon_putc`, `function dummycon_putcs`, `function dummycon_blank`, `function dummycon_switch`, `function dummycon_putc`, `function dummycon_switch`, `function dummycon_init`, `function dummycon_deinit`.
- Atlas domain: Driver Families / drivers/video.
- Implementation status: integration 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.