# Architecture (page 1 of 4)
Pages: [ARCHITECTURE.md](ARCHITECTURE.md), [ARCHITECTURE_p2.md](ARCHITECTURE_p2.md), [ARCHITECTURE_p3.md](ARCHITECTURE_p3.md), [ARCHITECTURE_p4.md](ARCHITECTURE_p4.md)

## Internal Dependencies

- `arch/x86/ap_entry.S` -> `headers/arch/x86/boot/bootdefs.h`
- `arch/x86/boot/stage1.S` -> `headers/arch/x86/boot/bootdefs.h`
- `arch/x86/boot/stage2.S` -> `headers/arch/x86/boot/bootdefs.h`
- `arch/x86/syscall_entry.S` -> `headers/syscall_asm.h`
- `drivers/block.c` -> `headers/block.h`
- `drivers/block.c` -> `headers/driver.h`
- `drivers/block.c` -> `headers/drivers/nvme.h`
- `drivers/block.c` -> `headers/drivers/usbblk.h`
- `drivers/block.c` -> `headers/drivers/virtio_blk.h`
- `drivers/block.c` -> `headers/ide.h`
- `drivers/driver.c` -> `headers/driver.h`
- `drivers/ide.c` -> `headers/driver.h`
- `drivers/ide.c` -> `headers/ide.h`
- `drivers/kbd.c` -> `headers/arch/x86/hal_io.h`
- `drivers/kbd.c` -> `headers/drivers/kbd.h`
- `drivers/kbd.c` -> `headers/drivers/modifiers.h`
- `drivers/kbd.c` -> `headers/sched.h`
- `drivers/kbd.c` -> `headers/vga_fb.h`
- `drivers/kbd.c` -> `headers/wm_events.h`
- `drivers/mouse.c` -> `headers/arch/x86/hal_io.h`
- `drivers/mouse.c` -> `headers/drivers/mouse.h`
- `drivers/nvme.c` -> `headers/arch/x86/hal_io.h`
- `drivers/nvme.c` -> `headers/drivers/nvme.h`
- `drivers/nvme.c` -> `headers/drivers/pci.h`
- `drivers/pcm2.c` -> `headers/arch/x86/boot/bootdefs.h`
- `drivers/pcm2.c` -> `headers/pcm2.h`
- `drivers/pcm2.c` -> `headers/pcm_ring.h`
- `drivers/pcm2.c` -> `headers/sb16.h`
- `drivers/pcm2.c` -> `headers/sched.h`
- `drivers/pcm2.c` -> `headers/spinlock.h`
- `drivers/pcspk.c` -> `headers/driver.h`
- `drivers/pcspk.c` -> `headers/pcspk.h`
- `drivers/rtc.c` -> `headers/rtc.h`
- `drivers/sb16.c` -> `headers/driver.h`
- `drivers/sb16.c` -> `headers/pcm2.h`
- `drivers/sb16.c` -> `headers/sb16.h`
- `drivers/sb16.c` -> `headers/sync.h`
- `drivers/usbblk.c` -> `headers/driver.h`
- `drivers/usbblk.c` -> `headers/drivers/usbblk.h`
- `drivers/usbblk.c` -> `headers/drivers/xhci.h`
- `drivers/usbhid.c` -> `headers/arch/x86/hal_io.h`
- `drivers/usbhid.c` -> `headers/drivers/kbd.h`
- `drivers/usbhid.c` -> `headers/drivers/modifiers.h`
- `drivers/usbhid.c` -> `headers/drivers/usbhid.h`
- `drivers/usbhid.c` -> `headers/drivers/xhci.h`
- `drivers/usbhid.c` -> `headers/vga_fb.h`
- `drivers/virtio_blk.c` -> `headers/driver.h`
- `drivers/virtio_blk.c` -> `headers/drivers/pci.h`
- `drivers/virtio_blk.c` -> `headers/drivers/virtio_blk.h`
- `drivers/virtio_net.c` -> `headers/drivers/pci.h`
- `drivers/virtio_net.c` -> `headers/drivers/virtio_net.h`
- `drivers/virtio_net.c` -> `headers/net.h`
- `drivers/xhci.c` -> `headers/arch/x86/hal_io.h`
- `drivers/xhci.c` -> `headers/drivers/pci.h`
- `drivers/xhci.c` -> `headers/drivers/xhci.h`
- `fs/ext4.c` -> `headers/block.h`
- `fs/ext4.c` -> `headers/ext4.h`
- `fs/ext4.c` -> `headers/fsimg.h`
- `fs/ext4.c` -> `headers/minifs.h`
- `fs/fat32.c` -> `headers/block.h`
- `fs/fat32.c` -> `headers/fat32.h`
- `fs/fat32.c` -> `headers/fsimg.h`
- `fs/fat32.c` -> `headers/minifs.h`
- `fs/fsimg.c` -> `headers/block.h`
- `fs/fsimg.c` -> `headers/fsimg.h`
- `fs/fsimg.c` -> `headers/minifs.h`
- `fs/kfile.c` -> `headers/minifs.h`
- `fs/minifs.c` -> `headers/block.h`
- `fs/minifs.c` -> `headers/ide.h`
- `fs/minifs.c` -> `headers/lz4_kernel.h`
- `fs/minifs.c` -> `headers/minifs.h`
- `fs/minifs.c` -> `headers/pcache.h`
- `fs/pcache.c` -> `headers/pcache.h`
- `fs/vfs.c` -> `headers/ext4.h`
- `fs/vfs.c` -> `headers/fat32.h`
- `fs/vfs.c` -> `headers/minifs.h`
- `headers/arch/x86/cpu_setup.h` -> `headers/arch/x86/boot/bootdefs.h`
- `headers/editor.h` -> `headers/kernel.h`
- `headers/futex.h` -> `headers/sched.h`
- `headers/futex.h` -> `headers/spinlock.h`
- `headers/futex.h` -> `headers/sync.h`
- `headers/kernel.h` -> `headers/ldso.h`
- `headers/kernel.h` -> `headers/pipe.h`
- `headers/kernel.h` -> `headers/spinlock.h`
- `headers/kernel.h` -> `headers/vma.h`
- `headers/kernel.h` -> `progs/minios_abi.h`
- `headers/leakcheck.h` -> `kernel/string.c`
- `headers/net/rtl8139.h` -> `headers/net.h`
- `headers/percpu_rq.h` -> `headers/sched.h`
- `headers/percpu_rq.h` -> `headers/spinlock.h`
- `headers/rcu.h` -> `headers/sched.h`
- `headers/rcu.h` -> `headers/spinlock.h`
- `headers/sched.h` -> `headers/spinlock.h`
- `headers/sched.h` -> `headers/vma.h`
- `headers/shell.h` -> `headers/kernel.h`
- `headers/shell.h` -> `headers/kernel/console_in.h`
- `headers/smp.h` -> `headers/spinlock.h`
- `headers/spawn.h` -> `headers/kernel.h`
- `headers/spawn.h` -> `headers/sched.h`
- `headers/spawn.h` -> `headers/vma.h`
- `headers/sync.h` -> `headers/sched.h`
- `headers/sync.h` -> `headers/spinlock.h`
- `headers/tls_port.h` -> `headers/kernel.h`
- `headers/tls_port.h` -> `headers/net.h`
- `headers/tls_port.h` -> `kernel/string.c`
- `headers/tls_port.h` -> `kernel/time.c`
- `headers/vga_fb.h` -> `headers/wm_notify.h`
- `headers/vga_fb.h` -> `progs/minios_abi.h`
- `headers/wm_events.h` -> `headers/drivers/modifiers.h`
- `headers/wm_focus.h` -> `headers/wm_window.h`
- `headers/wm_render.h` -> `headers/wm_window.h`
- `headers/wm_window.h` -> `headers/wm_geom.h`
- `kernel.c` -> `headers/abi.h`
- `kernel.c` -> `headers/arch/x86/boot/bootdefs.h`
- `kernel.c` -> `headers/arch/x86/cpu_setup.h`
- `kernel.c` -> `headers/arch/x86/msr.h`
- `kernel.c` -> `headers/block.h`
- `kernel.c` -> `headers/drivers/usbblk.h`
- `kernel.c` -> `headers/drivers/usbhid.h`
- `kernel.c` -> `headers/drivers/virtio_blk.h`
- `kernel.c` -> `headers/drivers/xhci.h`
- `kernel.c` -> `headers/ide.h`
- `kernel.c` -> `headers/minifs.h`
- `kernel.c` -> `headers/net.h`
- `kernel.c` -> `headers/pcache.h`
- `kernel.c` -> `headers/sb16.h`
- `kernel.c` -> `headers/sched.h`
- `kernel.c` -> `headers/smp.h`
- `kernel.c` -> `headers/syscall_asm.h`
- `kernel.c` -> `headers/vga_fb.h`
- `kernel/abi.c` -> `headers/abi.h`
- `kernel/batch.c` -> `headers/batch.h`
- `kernel/console.c` -> `headers/sched.h`
- `kernel/console.c` -> `headers/vga_fb.h`
- `kernel/console_in.c` -> `headers/drivers/kbd.h`
- `kernel/console_in.c` -> `headers/drivers/usbhid.h`
- `kernel/console_in.c` -> `headers/drivers/xhci.h`
- `kernel/console_in.c` -> `headers/kernel/console_in.h`
- `kernel/console_in.c` -> `headers/pipe.h`
- `kernel/console_in.c` -> `headers/vga_fb.h`
- `kernel/ed25519.c` -> `headers/sign.h`
- `kernel/editor.c` -> `headers/editor.h`
- `kernel/editor.c` -> `headers/shell.h`
- `kernel/exec.c` -> `headers/arch/x86/boot/bootdefs.h`
- `kernel/exec.c` -> `headers/arch/x86/msr.h`
- `kernel/exec.c` -> `headers/drivers/kbd.h`
- `kernel/exec.c` -> `headers/proc_sec.h`
- `kernel/exec.c` -> `headers/sched.h`
- `kernel/exec.c` -> `headers/vga_fb.h`
- `kernel/futex.c` -> `headers/futex.h`
- `kernel/futex.c` -> `headers/sync.h`
- `kernel/ldso_parse.c` -> `headers/ldso.h`
- `kernel/loader.c` -> `headers/ldso.h`
- `kernel/loader.c` -> `headers/minifs.h`
- `kernel/loader.c` -> `headers/pcache.h`
- `kernel/loader.c` -> `headers/sched.h`
- `kernel/loader.c` -> `headers/sign.h`
- `kernel/loader.c` -> `headers/vga_fb.h`
- `kernel/lz4_kernel.c` -> `headers/lz4_kernel.h`
- `kernel/minifetch.c` -> `headers/minifetch.h`
- `kernel/minifetch.c` -> `headers/minifs.h`
- `kernel/minifetch.c` -> `headers/net.h`
- `kernel/minifetch.c` -> `headers/rtc.h`
- `kernel/minifetch.c` -> `headers/sched.h`
- `kernel/minifetch.c` -> `headers/vga_fb.h`
- `kernel/mm.c` -> `headers/arch/x86/boot/bootdefs.h`
- `kernel/mm.c` -> `headers/sched.h`
- `kernel/mm/cow.c` -> `headers/arch/x86/boot/bootdefs.h`
- `kernel/mm/cow.c` -> `headers/sched.h`
- `kernel/mm/cow.c` -> `headers/tlb.h`
- `kernel/mm/cow.c` -> `headers/vga_fb.h`
- `kernel/mm/paging.c` -> `headers/arch/x86/boot/bootdefs.h`
- `kernel/mm/paging.c` -> `headers/arch/x86/msr.h`
- `kernel/mm/paging.c` -> `headers/ldso.h`
- `kernel/mm/paging.c` -> `headers/minifs.h`
- `kernel/mm/paging.c` -> `headers/pcache.h`
- `kernel/mm/paging.c` -> `headers/tlb.h`
- `kernel/mm/paging.c` -> `headers/vga_fb.h`
- `kernel/mm/swap.c` -> `headers/ide.h`
- `kernel/mm/swap.c` -> `headers/lz4_kernel.h`
- `kernel/mm/tlb.c` -> `headers/sched.h`
- `kernel/mm/tlb.c` -> `headers/smp.h`
- `kernel/mm/tlb.c` -> `headers/spinlock.h`
- `kernel/mm/tlb.c` -> `headers/tlb.h`
- `kernel/panic.c` -> `headers/panic.h`
- `kernel/panic.c` -> `headers/sched.h`
- `kernel/panic.c` -> `headers/vga_fb.h`
- `kernel/percpu_rq.c` -> `headers/percpu_rq.h`
- `kernel/proc_sec.c` -> `headers/proc_sec.h`
- `kernel/proc_sec.c` -> `headers/sanitize.h`
- `kernel/proc_sec.c` -> `headers/sched.h`
- `kernel/proc_sec.c` -> `headers/seccomp_bpf.h`
- `kernel/proc_sec.c` -> `headers/syscalls_proc.h`
- `kernel/rcu.c` -> `headers/rcu.h`
- `kernel/sched.c` -> `headers/arch/x86/boot/bootdefs.h`
- `kernel/sched.c` -> `headers/arch/x86/hal_io.h`
- `kernel/sched.c` -> `headers/arch/x86/msr.h`
- `kernel/sched.c` -> `headers/drivers/mouse.h`
- `kernel/sched.c` -> `headers/drivers/xhci.h`
- `kernel/sched.c` -> `headers/futex.h`
- `kernel/sched.c` -> `headers/pcache.h`
- `kernel/sched.c` -> `headers/pcm2.h`
- `kernel/sched.c` -> `headers/percpu_rq.h`
- `kernel/sched.c` -> `headers/proc_sec.h`
- `kernel/sched.c` -> `headers/rcu.h`
- `kernel/sched.c` -> `headers/sb16.h`
- `kernel/sched.c` -> `headers/sched.h`
- `kernel/sched.c` -> `headers/smp.h`
- `kernel/sched.c` -> `headers/spawn.h`
- `kernel/sched.c` -> `headers/sync.h`
- `kernel/sched.c` -> `headers/tick.h`
- `kernel/sched.c` -> `headers/tlb.h`
- `kernel/sched.c` -> `headers/vga_fb.h`
- `kernel/seccomp_bpf.c` -> `headers/seccomp_bpf.h`
- `kernel/serial.c` -> `headers/sched.h`
- `kernel/shell.c` -> `headers/drivers/kbd.h`
- `kernel/shell.c` -> `headers/drivers/nvme.h`
- `kernel/shell.c` -> `headers/drivers/usbblk.h`
- `kernel/shell.c` -> `headers/drivers/usbhid.h`
- `kernel/shell.c` -> `headers/drivers/virtio_blk.h`
- `kernel/shell.c` -> `headers/drivers/virtio_net.h`
- `kernel/shell.c` -> `headers/drivers/xhci.h`
- `kernel/shell.c` -> `headers/editor.h`
- `kernel/shell.c` -> `headers/ext4.h`
- `kernel/shell.c` -> `headers/fat32.h`
- `kernel/shell.c` -> `headers/httpd.h`
- `kernel/shell.c` -> `headers/kernel/console_in.h`
- `kernel/shell.c` -> `headers/minifetch.h`
- `kernel/shell.c` -> `headers/minifs.h`
- `kernel/shell.c` -> `headers/net.h`
- `kernel/shell.c` -> `headers/pcache.h`
- `kernel/shell.c` -> `headers/pcm2.h`
- `kernel/shell.c` -> `headers/pcspk.h`
- `kernel/shell.c` -> `headers/percpu_rq.h`
- `kernel/shell.c` -> `headers/proc_sec.h`
- `kernel/shell.c` -> `headers/rtc.h`
- `kernel/shell.c` -> `headers/sb16.h`
- `kernel/shell.c` -> `headers/sched.h`
- `kernel/shell.c` -> `headers/shell.h`
- `kernel/shell.c` -> `headers/smp.h`
- `kernel/shell.c` -> `headers/spawn.h`
- `kernel/shell.c` -> `headers/tlb.h`
- `kernel/shell.c` -> `headers/vga_fb.h`
- `kernel/shell.c` -> `headers/wm_layout.h`
- `kernel/shell.c` -> `headers/wm_notify.h`
- `kernel/shell.c` -> `headers/zip.h`
- `kernel/spawn.c` -> `headers/arch/x86/msr.h`
- `kernel/spawn.c` -> `headers/arena.h`
- `kernel/spawn.c` -> `headers/minifs.h`
- `kernel/spawn.c` -> `headers/sched.h`
- `kernel/spawn.c` -> `headers/spawn.h`
- `kernel/spawn.c` -> `headers/vga_fb.h`
- `kernel/spawn.c` -> `headers/vma.h`
- `kernel/sync.c` -> `headers/sync.h`
- `kernel/syscalls.c` -> `headers/arch/x86/boot/bootdefs.h`
- `kernel/syscalls.c` -> `headers/arch/x86/hal_io.h`
- `kernel/syscalls.c` -> `headers/arch/x86/msr.h`
- `kernel/syscalls.c` -> `headers/batch.h`
- `kernel/syscalls.c` -> `headers/block.h`
- `kernel/syscalls.c` -> `headers/driver.h`
- `kernel/syscalls.c` -> `headers/drivers/kbd.h`
- `kernel/syscalls.c` -> `headers/futex.h`
- `kernel/syscalls.c` -> `headers/ide.h`
- `kernel/syscalls.c` -> `headers/ktime.h`
- `kernel/syscalls.c` -> `headers/lz4_kernel.h`
- `kernel/syscalls.c` -> `headers/minifs.h`
- `kernel/syscalls.c` -> `headers/net.h`
- `kernel/syscalls.c` -> `headers/pcache.h`
- `kernel/syscalls.c` -> `headers/pcm2.h`
- `kernel/syscalls.c` -> `headers/pcspk.h`
- `kernel/syscalls.c` -> `headers/percpu_rq.h`
- `kernel/syscalls.c` -> `headers/proc_sec.h`
- `kernel/syscalls.c` -> `headers/randmix.h`
- `kernel/syscalls.c` -> `headers/rcu.h`
- `kernel/syscalls.c` -> `headers/rtc.h`
- `kernel/syscalls.c` -> `headers/sanitize.h`
- `kernel/syscalls.c` -> `headers/sb16.h`
- `kernel/syscalls.c` -> `headers/sched.h`
- `kernel/syscalls.c` -> `headers/select_map.h`
- `kernel/syscalls.c` -> `headers/shell.h`
- `kernel/syscalls.c` -> `headers/spawn.h`
- `kernel/syscalls.c` -> `headers/sync.h`
- `kernel/syscalls.c` -> `headers/syscalls_proc.h`
- `kernel/syscalls.c` -> `headers/tlb.h`
- `kernel/syscalls.c` -> `headers/vga_fb.h`
- `kernel/syscalls.c` -> `headers/zip.h`
- `kernel/syscalls_proc.c` -> `headers/proc_sec.h`
- `kernel/syscalls_proc.c` -> `headers/sanitize.h`
- `kernel/syscalls_proc.c` -> `headers/sched.h`
- `kernel/syscalls_proc.c` -> `headers/syscalls_proc.h`
- `kernel/tick.c` -> `headers/tick.h`
- `kernel/time.c` -> `headers/ktime.h`
- `kernel/vga_cursor.c` -> `headers/kernel/vga_cursor.h`
- `kernel/vga_cursor.c` -> `headers/vga_fb.h`
- `kernel/vga_fb.c` -> `headers/arch/x86/boot/bootdefs.h`
- `kernel/vga_fb.c` -> `headers/desktop_icons.h`
- `kernel/vga_fb.c` -> `headers/desktop_shortcuts.h`
- `kernel/vga_fb.c` -> `headers/drivers/kbd.h`
- `kernel/vga_fb.c` -> `headers/kernel/vga_cursor.h`
- `kernel/vga_fb.c` -> `headers/sched.h`
- `kernel/vga_fb.c` -> `headers/vga_fb.h`
- `kernel/vga_fb.c` -> `headers/vga_fx.h`
- `kernel/vga_fb.c` -> `headers/wm_events.h`
- `kernel/vga_fb.c` -> `headers/wm_focus.h`
- `kernel/vga_fb.c` -> `headers/wm_geom.h`
- `kernel/vga_fb.c` -> `headers/wm_gfxview.h`
- `kernel/vga_fb.c` -> `headers/wm_layout.h`
- `kernel/vga_fb.c` -> `headers/wm_notify.h`
- `kernel/vga_fb.c` -> `headers/wm_render.h`
- `kernel/vga_fb.c` -> `headers/wm_tiling.h`
- `kernel/vga_fb.c` -> `headers/wm_window.h`
- `kernel/vga_fx.c` -> `headers/vga_fb.h`
- `kernel/vga_fx.c` -> `headers/vga_fx.h`
- `mcp/mcp_dbg_driver.py` -> `kernel/time.c`
- `mcp/mcp_dogfood.py` -> `kernel/time.c`
- `mcp/minios_addons.py` -> `kernel/time.c`
- `mcp/minios_mcp.py` -> `kernel/time.c`
- `mcp/minios_mcp.py` -> `mcp/minios_addons.py`
- `net/net.c` -> `headers/drivers/virtio_net.h`
- `net/net.c` -> `headers/net.h`
- `net/net.c` -> `headers/net/rtl8139.h`
- `net/net.c` -> `headers/sched.h`
- `net/net.c` -> `headers/tls.h`
- `net/rtl8139.c` -> `headers/drivers/pci.h`
- `net/rtl8139.c` -> `headers/net.h`
- `net/rtl8139.c` -> `headers/net/rtl8139.h`
- `net/rtl8139.c` -> `headers/sched.h`
- `net/tls.c` -> `headers/tls.h`
- `net/tls.c` -> `headers/tls_port.h`
- `net/tls.c` -> `headers/tls_roots.h`
- `net/tls_crypto.c` -> `headers/tls.h`
- `net/tls_crypto.c` -> `headers/tls_port.h`
- `net/tls_x509.c` -> `headers/tls.h`
- `net/tls_x509.c` -> `headers/tls_port.h`
- `progs/doomedit/doomedit.c` -> `kernel/string.c`
- `progs/doomedit/doomedit.c` -> `progs/minios_abi.h`
- `progs/doomedit/doomedit.c` -> `progs/nuklear/nuklear_minios.h`
- `progs/doomedit/doomedit.c` -> `progs/nuklear/nuklear_theme.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/am_map.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/deh_main.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/doomdef.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/doomkeys.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/doomstat.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/dstrings.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/i_system.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/m_cheat.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/m_controls.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/m_misc.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/p_local.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/r_state.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/st_stuff.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/v_video.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/w_wad.h`
- `progs/doomgeneric/am_map.c` -> `progs/doomgeneric/z_zone.h`
- `progs/doomgeneric/am_map.h` -> `progs/doomgeneric/d_event.h`
- `progs/doomgeneric/am_map.h` -> `progs/doomgeneric/m_cheat.h`
- `progs/doomgeneric/d_event.c` -> `progs/doomgeneric/d_event.h`
- `progs/doomgeneric/d_event.h` -> `progs/doomgeneric/doomtype.h`
- `progs/doomgeneric/d_items.c` -> `progs/doomgeneric/d_items.h`
- `progs/doomgeneric/d_items.c` -> `progs/doomgeneric/info.h`
- `progs/doomgeneric/d_items.h` -> `progs/doomgeneric/doomdef.h`
- `progs/doomgeneric/d_iwad.c` -> `kernel/string.c`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/config.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/d_iwad.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/deh_str.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/doomkeys.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/i_system.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/m_argv.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/m_config.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/m_misc.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/w_wad.h`
- `progs/doomgeneric/d_iwad.c` -> `progs/doomgeneric/z_zone.h`
- `progs/doomgeneric/d_iwad.h` -> `progs/doomgeneric/d_mode.h`
- `progs/doomgeneric/d_loop.c` -> `kernel/string.c`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/d_event.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/d_loop.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/d_ticcmd.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/doomfeatures.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/i_system.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/i_timer.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/i_video.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/m_argv.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/m_fixed.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/net_client.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/net_gui.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/net_io.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/net_loop.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/net_query.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/net_sdl.h`
- `progs/doomgeneric/d_loop.c` -> `progs/doomgeneric/net_server.h`
- `progs/doomgeneric/d_loop.h` -> `progs/doomgeneric/net_defs.h`
- `progs/doomgeneric/d_main.c` -> `kernel/string.c`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/am_map.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/config.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/d_iwad.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/d_main.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/deh_main.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/doomdef.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/doomfeatures.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/doomstat.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/dstrings.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/f_finale.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/f_wipe.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/g_game.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/hu_stuff.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/i_endoom.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/i_joystick.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/i_system.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/i_timer.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/i_video.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/m_argv.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/m_config.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/m_controls.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/m_menu.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/m_misc.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/net_client.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/net_dedicated.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/net_query.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/p_saveg.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/p_setup.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/r_local.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/s_sound.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/sounds.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/st_stuff.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/statdump.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/v_video.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/w_main.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/w_wad.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/wi_stuff.h`
- `progs/doomgeneric/d_main.c` -> `progs/doomgeneric/z_zone.h`
- `progs/doomgeneric/d_main.h` -> `progs/doomgeneric/doomdef.h`
- `progs/doomgeneric/d_mode.c` -> `progs/doomgeneric/d_mode.h`
- `progs/doomgeneric/d_mode.c` -> `progs/doomgeneric/doomtype.h`
- `progs/doomgeneric/d_mode.h` -> `progs/doomgeneric/doomtype.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/d_loop.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/d_main.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/deh_main.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/doomdef.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/doomfeatures.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/doomstat.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/g_game.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/i_system.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/i_timer.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/i_video.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/m_argv.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/m_menu.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/m_misc.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/w_checksum.h`
- `progs/doomgeneric/d_net.c` -> `progs/doomgeneric/w_wad.h`
- `progs/doomgeneric/d_player.h` -> `progs/doomgeneric/d_items.h`
- `progs/doomgeneric/d_player.h` -> `progs/doomgeneric/d_ticcmd.h`
- `progs/doomgeneric/d_player.h` -> `progs/doomgeneric/net_defs.h`
- `progs/doomgeneric/d_player.h` -> `progs/doomgeneric/p_mobj.h`
- `progs/doomgeneric/d_player.h` -> `progs/doomgeneric/p_pspr.h`
- `progs/doomgeneric/d_textur.h` -> `progs/doomgeneric/doomtype.h`
- `progs/doomgeneric/d_ticcmd.h` -> `progs/doomgeneric/doomtype.h`
- `progs/doomgeneric/deh_main.h` -> `progs/doomgeneric/deh_str.h`
- `progs/doomgeneric/deh_main.h` -> `progs/doomgeneric/doomfeatures.h`
- `progs/doomgeneric/deh_main.h` -> `progs/doomgeneric/doomtype.h`
- `progs/doomgeneric/deh_main.h` -> `progs/doomgeneric/sha1.h`
- `progs/doomgeneric/deh_misc.h` -> `progs/doomgeneric/doomfeatures.h`
- `progs/doomgeneric/deh_str.h` -> `progs/doomgeneric/doomfeatures.h`
- `progs/doomgeneric/doomdata.h` -> `progs/doomgeneric/doomdef.h`
- `progs/doomgeneric/doomdata.h` -> `progs/doomgeneric/doomtype.h`
- `progs/doomgeneric/doomdef.c` -> `progs/doomgeneric/doomdef.h`
- `progs/doomgeneric/doomdef.h` -> `kernel/string.c`
- `progs/doomgeneric/doomdef.h` -> `progs/doomgeneric/d_mode.h`
- `progs/doomgeneric/doomdef.h` -> `progs/doomgeneric/doomtype.h`
- `progs/doomgeneric/doomdef.h` -> `progs/doomgeneric/i_timer.h`
- `progs/doomgeneric/doomgeneric.c` -> `progs/doomgeneric/doomgeneric.h`
- `progs/doomgeneric/doomgeneric_minios.c` -> `kernel/string.c`
- `progs/doomgeneric/doomgeneric_minios.c` -> `progs/doomgeneric/doomgeneric.h`
- `progs/doomgeneric/doomgeneric_minios.c` -> `progs/doomgeneric/doomkeys.h`
- `progs/doomgeneric/doomgeneric_minios.c` -> `progs/doomgeneric/s_sound.h`
- `progs/doomgeneric/doomgeneric_minios.c` -> `progs/minios_abi.h`
- `progs/doomgeneric/doomgeneric_sdl.c` -> `progs/doomgeneric/doomgeneric.h`
- `progs/doomgeneric/doomgeneric_sdl.c` -> `progs/doomgeneric/doomkeys.h`
- `progs/doomgeneric/doomgeneric_sdl.c` -> `progs/doomgeneric/m_argv.h`
- `progs/doomgeneric/doomgeneric_sdl.c` -> `progs/pokemon/minios_stubs/SDL.h`
- `progs/doomgeneric/doomgeneric_soso.c` -> `kernel/string.c`
- `progs/doomgeneric/doomgeneric_soso.c` -> `progs/doomgeneric/doomgeneric.h`
- `progs/doomgeneric/doomgeneric_soso.c` -> `progs/doomgeneric/doomkeys.h`
- `progs/doomgeneric/doomgeneric_soso.c` -> `progs/doomgeneric/m_argv.h`
- `progs/doomgeneric/doomgeneric_sosox.c` -> `kernel/string.c`
- `progs/doomgeneric/doomgeneric_sosox.c` -> `progs/doomgeneric/doomgeneric.h`
- `progs/doomgeneric/doomgeneric_sosox.c` -> `progs/doomgeneric/doomkeys.h`
- `progs/doomgeneric/doomgeneric_sosox.c` -> `progs/doomgeneric/m_argv.h`
- `progs/doomgeneric/doomgeneric_win.c` -> `progs/doomgeneric/doomgeneric.h`
- `progs/doomgeneric/doomgeneric_win.c` -> `progs/doomgeneric/doomkeys.h`
- `progs/doomgeneric/doomgeneric_xlib.c` -> `kernel/string.c`
- `progs/doomgeneric/doomgeneric_xlib.c` -> `kernel/time.c`
- `progs/doomgeneric/doomgeneric_xlib.c` -> `progs/doomgeneric/doomgeneric.h`
- `progs/doomgeneric/doomgeneric_xlib.c` -> `progs/doomgeneric/doomkeys.h`

Next: [ARCHITECTURE_p2.md](ARCHITECTURE_p2.md)
