diff --git a/KNOWLEDGE_BASE.md b/KNOWLEDGE_BASE.md index c00bbfa..ebfed1b 100644 --- a/KNOWLEDGE_BASE.md +++ b/KNOWLEDGE_BASE.md @@ -6,7 +6,7 @@ **Total Files Parsed:** 362 | **Total Symbols Extracted:** 5193 | **Total Imports:** 1372 | **Resolved Imports:** 15 - + ## Table of Contents @@ -215,31 +215,46 @@ Most architecturally central files ranked by combined import/export degree and s Files grouped by import-based community detection. Cohesion measures how tightly connected each community is internally. -### root (Cohesion: 0.95) +### root (Cohesion: 0.44) -**60 files** in this community: +**10 files** in this community: - `ap_stub.h` (h, 0 symbols) +- `mm.c` (c, 6 symbols) +- `serial.c` (c, 9 symbols) +- `sync.c` (c, 19 symbols) +- `sched.h` (h, 18 symbols) +- `smp.c` (c, 34 symbols) +- `smp.h` (h, 1 symbols) +- `spinlock.h` (h, 17 symbols) +- `sync.h` (h, 7 symbols) +- `test_sync.c` (c, 6 symbols) + +### kernel (Cohesion: 0.57) + +**37 files** in this community: + - `msr.h` (h, 9 symbols) -- `block.h` (h, 4 symbols) - `desktop_icons.h` (h, 3 symbols) - `desktop_shortcuts.h` (h, 13 symbols) -- `block.c` (c, 12 symbols) - `ide.c` (c, 14 symbols) - `kbd.c` (c, 17 symbols) -- `kbd.h` (h, 1 symbols) - `pcspk.c` (c, 14 symbols) - `rtc.c` (c, 19 symbols) - `sb16.c` (c, 58 symbols) - `editor.h` (h, 1 symbols) -- `kfile.c` (c, 16 symbols) -- `minifs.c` (c, 53 symbols) - `ramdisk.c` (c, 18 symbols) -- `vfs.c` (c, 23 symbols) - `zip.c` (c, 7 symbols) -- `ide.h` (h, 27 symbols) -- `kernel.c` (c, 31 symbols) -- ... and 40 more files +- `kernel.h` (h, 64 symbols) +- `editor.c` (c, 20 symbols) +- `exec.c` (c, 8 symbols) +- `klog.c` (c, 6 symbols) +- `loader.c` (c, 30 symbols) +- `lz4_kernel.c` (c, 9 symbols) +- `paging.c` (c, 8 symbols) +- `printf.c` (c, 10 symbols) +- `redirect.c` (c, 3 symbols) +- ... and 17 more files ### root (Cohesion: 1.00) @@ -248,13 +263,41 @@ Files grouped by import-based community detection. Cohesion measures how tightly - `audio.h` (h, 5 symbols) - `platform_minios.c` (c, 70 symbols) -### tools (Cohesion: 0.75) +### root (Cohesion: 0.57) -**10 files** in this community: +**24 files** in this community: + +- `block.h` (h, 4 symbols) +- `block.c` (c, 12 symbols) +- `kbd.h` (h, 1 symbols) +- `kfile.c` (c, 16 symbols) +- `minifs.c` (c, 53 symbols) +- `vfs.c` (c, 23 symbols) +- `ide.h` (h, 27 symbols) +- `kernel.c` (c, 31 symbols) +- `swap.c` (c, 8 symbols) +- `syscalls.c` (c, 83 symbols) +- `lz4_kernel.h` (h, 1 symbols) +- `minifs.h` (h, 31 symbols) +- `net.h` (h, 34 symbols) +- `rtl8139.h` (h, 1 symbols) +- `tls.c` (c, 26 symbols) +- `tls_crypto.c` (c, 76 symbols) +- `tls_x509.c` (c, 23 symbols) +- `pcspk.h` (h, 4 symbols) +- `tls.h` (h, 42 symbols) +- `tls_port.h` (h, 27 symbols) +- ... and 4 more files + +### tools (Cohesion: 0.92) + +**12 files** in this community: - `time.c` (c, 3 symbols) - `mcp_dbg_driver.py` (py, 6 symbols) - `mcp_dogfood.py` (py, 6 symbols) +- `minios_addons.py` (py, 16 symbols) +- `minios_mcp.py` (py, 50 symbols) - `test_http_server.py` (py, 3 symbols) - `tls_test.py` (py, 16 symbols) - `gdb_repro.py` (py, 4 symbols) @@ -263,26 +306,6 @@ Files grouped by import-based community detection. Cohesion measures how tightly - `qga_client.py` (py, 4 symbols) - `repro_gui.py` (py, 10 symbols) -### mcp (Cohesion: 0.33) - -**2 files** in this community: - -- `minios_addons.py` (py, 16 symbols) -- `minios_mcp.py` (py, 50 symbols) - -### root (Cohesion: 0.71) - -**8 files** in this community: - -- `tls.c` (c, 26 symbols) -- `tls_crypto.c` (c, 76 symbols) -- `tls_x509.c` (c, 23 symbols) -- `tls.h` (h, 42 symbols) -- `tls_port.h` (h, 27 symbols) -- `tls_roots.h` (h, 0 symbols) -- `tls_test.c` (c, 23 symbols) -- `tls_test_roots.h` (h, 0 symbols) - ### progs/src (Cohesion: 1.00) **4 files** in this community: @@ -292,25 +315,17 @@ Files grouped by import-based community detection. Cohesion measures how tightly - `shell.py` (py, 3 symbols) - `test.py` (py, 20 symbols) -### root (Cohesion: 0.67) - -**3 files** in this community: - -- `test_vma.c` (c, 8 symbols) -- `vma.c` (c, 11 symbols) -- `vma.h` (h, 3 symbols) - --- ## Surprising Connections Files in different communities connected through 3+ indirect hops. -- `sync.c` <-> `tls_roots.h` (6 hops, across 2 communities) -- `sync.c` <-> `tls_test_roots.h` (6 hops, across 2 communities) -- `test_sync.c` <-> `tls_roots.h` (6 hops, across 2 communities) -- `test_sync.c` <-> `tls_test_roots.h` (6 hops, across 2 communities) -- `ap_stub.h` <-> `tls_roots.h` (5 hops, across 2 communities) +- `sync.c` <-> `tls_roots.h` (6 hops, across 3 communities) +- `sync.c` <-> `tls_test_roots.h` (6 hops, across 3 communities) +- `test_sync.c` <-> `tls_roots.h` (6 hops, across 3 communities) +- `test_sync.c` <-> `tls_test_roots.h` (6 hops, across 3 communities) +- `ap_stub.h` <-> `rtl8139.h` (5 hops, across 2 communities) --- @@ -321,8 +336,8 @@ Auto-generated exploration prompts based on graph structure: - What does kernel.h depend on, and what depends on it? (39 connections) - What does syscalls.c depend on, and what depends on it? (15 connections) - What does kernel.c depend on, and what depends on it? (16 connections) -- How are the 60 files in 'root' related to each other? -- Why are sync.c and tls_roots.h connected through 6 hops across 2 communities? +- How are the 10 files in 'root' related to each other? +- Why are sync.c and tls_roots.h connected through 6 hops across 3 communities? --- @@ -535,7 +550,7 @@ graph TD class progs_doomgeneric_i_input_c mod; progs_doomgeneric_i_system_c["i_system.c (c)"] class progs_doomgeneric_i_system_c mod; - subgraph community_0 ["root"] + subgraph community_3 ["root"] kernel_c["kernel.c (c)"] class kernel_c mod; progs_doomgeneric_m_misc_c["m_misc.c (c)"] @@ -566,12 +581,14 @@ graph TD class progs_doomgeneric_d_iwad_c mod; progs_doomgeneric_f_finale_c["f_finale.c (c)"] class progs_doomgeneric_f_finale_c mod; + end + subgraph community_1 ["kernel"] kernel_shell_c["shell.c (c)"] class kernel_shell_c mod; progs_doomgeneric_p_map_c["p_map.c (c)"] class progs_doomgeneric_p_map_c mod; end - subgraph community_3 ["mcp"] + subgraph community_4 ["tools"] mcp_minios_mcp_py["minios_mcp.py (py)"] class mcp_minios_mcp_py mod; progs_doomgeneric_m_config_c["m_config.c (c)"] @@ -594,14 +611,10 @@ graph TD class progs_doomgeneric_p_enemy_c mod; progs_doomgeneric_i_sound_c["i_sound.c (c)"] class progs_doomgeneric_i_sound_c mod; - end - subgraph community_4 ["root"] tls_test_c["tls_test.c (c)"] class tls_test_c mod; progs_doomgeneric_p_mobj_c["p_mobj.c (c)"] class progs_doomgeneric_p_mobj_c mod; - end - subgraph community_2 ["tools"] tls_test_py["tls_test.py (py)"] class tls_test_py mod; progs_doomgeneric_doomgeneric_soso_c["doomgeneric_soso.c (c)"] @@ -623,7 +636,7 @@ graph TD progs_doomgeneric_r_local_h["r_local.h (h)"] class progs_doomgeneric_r_local_h mod; end - subgraph community_1 ["root"] + subgraph community_2 ["root"] progs_pokemon_platform_minios_c["platform_minios.c (c)"] class progs_pokemon_platform_minios_c mod; progs_doomgeneric_p_pspr_c["p_pspr.c (c)"] @@ -684,6 +697,8 @@ graph TD class progs_doomgeneric_w_checksum_c mod; progs_doomgeneric_w_main_c["w_main.c (c)"] class progs_doomgeneric_w_main_c mod; + end + subgraph community_0 ["root"] smp_c["smp.c (c)"] class smp_c mod; progs_doomgeneric_sha1_c["sha1.c (c)"] @@ -808,8 +823,6 @@ graph TD class kernel_mm_swap_c mod; progs_src_sbtone_c["sbtone.c (c)"] class progs_src_sbtone_c mod; - end - subgraph community_6 ["root"] tests_test_vma_c["test_vma.c (c)"] class tests_test_vma_c mod; sync_h["sync.h (h)"] @@ -1792,7 +1805,7 @@ classDiagram Machine-readable Code Property Graph (CPG) in JSON-LD format. This block allows AI agents to parse the full structural graph without additional file reads. Compatible with GraphRAG pipelines. ```json -{"@context": "https://schema.org", "analysis": {"communities": [{"cohesion": 0.955, "id": 0, "label": "root", "size": 60}, {"cohesion": 1.0, "id": 1, "label": "root", "size": 2}, {"cohesion": 0.75, "id": 2, "label": "tools", "size": 10}, {"cohesion": 0.333, "id": 3, "label": "mcp", "size": 2}, {"cohesion": 0.714, "id": 4, "label": "root", "size": 8}, {"cohesion": 1.0, "id": 5, "label": "progs/src", "size": 4}, {"cohesion": 0.667, "id": 6, "label": "root", "size": 3}], "god_nodes": [{"node_id": "kernel.h", "score": 84.4}, {"node_id": "kernel/syscalls.c", "score": 38.3}, {"node_id": "kernel.c", "score": 35.1}, {"node_id": "kernel/shell.c", "score": 32.0}, {"node_id": "progs/doomgeneric/d_englsh.h", "score": 28.6}, {"node_id": "kernel/time.c", "score": 24.3}, {"node_id": "vga_fb.h", "score": 23.1}, {"node_id": "sched.h", "score": 21.8}, {"node_id": "kernel/sched.c", "score": 18.3}, {"node_id": "net.h", "score": 17.4}], "surprising_connections": [{"hops": 6, "source": "kernel/sync.c", "target": "tls_roots.h"}, {"hops": 6, "source": "kernel/sync.c", "target": "tls_test_roots.h"}, {"hops": 6, "source": "tests/test_sync.c", "target": "tls_roots.h"}, {"hops": 6, "source": "tests/test_sync.c", "target": "tls_test_roots.h"}, {"hops": 5, "source": "ap_stub.h", "target": "tls_roots.h"}]}, "edges": [{"confidence": "EXTRACTED", "relation": "imports", "source": "desktop_icons.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "desktop_shortcuts.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/block.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/block.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/block.c", "target": "block.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/ide.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/ide.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/kbd.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/kbd.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/kbd.c", "target": "kbd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/pcspk.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/pcspk.c", "target": "pcspk.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/rtc.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/rtc.c", "target": "rtc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/sb16.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/sb16.c", "target": "sb16.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "drivers/sb16.c", "target": "sync.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "editor.h", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/kfile.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/kfile.c", "target": "minifs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/minifs.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/minifs.c", "target": "minifs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/minifs.c", "target": "block.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/minifs.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/minifs.c", "target": "lz4_kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/ramdisk.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/vfs.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/vfs.c", "target": "minifs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/zip.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "fs/zip.c", "target": "miniz.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "gen_minifs.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/cvm_host.c", "target": "cvm.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/cvm_host.c", "target": "cvm_jit.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/editor.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/editor.c", "target": "shell.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/editor.c", "target": "editor.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/exec.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/exec.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/exec.c", "target": "arch/x86/msr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/exec.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/exec.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/exec.c", "target": "drivers/kbd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/klog.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/loader.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/loader.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/lz4_kernel.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/lz4_kernel.c", "target": "lz4_kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm/paging.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm/paging.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm/paging.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm/paging.c", "target": "arch/x86/msr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm/swap.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm/swap.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm/swap.c", "target": "lz4_kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/mm.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/printf.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/redirect.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sched.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sched.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sched.c", "target": "smp.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sched.c", "target": "sync.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sched.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sched.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sched.c", "target": "sb16.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sched.c", "target": "arch/x86/msr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/scrollback.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/serial.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/serial.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "minifs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "smp.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "pcspk.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "sb16.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "rtc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "drivers/kbd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "xxhash.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "zip.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "shell.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/shell.c", "target": "editor.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/string.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/symtab.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/sync.c", "target": "sync.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "minifs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "block.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "pcspk.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "sb16.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "rtc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "lz4_kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "drivers/kbd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "arch/x86/msr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/syscalls.c", "target": "zip.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/time.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/vga_fb.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/vga_fb.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/vga_fb.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/vga_fb.c", "target": "desktop_shortcuts.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel/vga_fb.c", "target": "desktop_icons.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "minifs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "block.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "pcspk.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "sb16.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "smp.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "rtc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "lz4_kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "drivers/kbd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "arch/x86/msr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "xxhash.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "stb/stb_api.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "zip.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.h", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.h", "target": "vma.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "re"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "tempfile"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "atexit"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "signal"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "tempfile"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "threading"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "tty"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "minios_addons"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "tempfile"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "unittest"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs_dump.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs_dump.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs_fsck.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs_fsck.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkfs.minifs.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkfs.minifs.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkfs.minifs.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkramdisk.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkramdisk.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkramdisk.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/net.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/net.c", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/net.c", "target": "rtl8139.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/rtl8139.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/rtl8139.c", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/rtl8139.c", "target": "rtl8139.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/rtl8139.h", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/tls.c", "target": "tls_port.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/tls.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/tls.c", "target": "tls_roots.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/tls_crypto.c", "target": "tls_port.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/tls_crypto.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/tls_x509.c", "target": "tls_port.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net/tls_x509.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.h", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_event.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_event.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_event.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_items.c", "target": "info.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_items.c", "target": "d_items.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_items.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "d_iwad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "windows.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.h", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "d_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_client.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_gui.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_io.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_query.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_server.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_sdl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "d_iwad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "w_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "f_finale.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "f_wipe.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "p_saveg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_endoom.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "wi_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "net_client.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "net_dedicated.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "net_query.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "p_setup.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "statdump.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_mode.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_mode.c", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_mode.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "w_checksum.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "d_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "d_items.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "p_pspr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "p_mobj.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_textur.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_ticcmd.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_main.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_main.h", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_main.h", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_main.h", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_misc.h", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_str.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_str.h", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdata.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdata.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric.h", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "stdbool.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "SDL.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "sys/ioctl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "sys/mman.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "termios.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "soso.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "sys/ioctl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "termios.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "soso.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "nano-X.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_win.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_win.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_win.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_win.c", "target": "Windows.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "sys/time.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "X11/Xlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "X11/Xutil.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "X11/Xatom.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "doomdata.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "d_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "d_player.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomtype.h", "target": "strings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomtype.h", "target": "inttypes.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomtype.h", "target": "limits.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/dstrings.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/dstrings.h", "target": "d_englsh.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/dummy.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "f_wipe.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "f_finale.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "p_setup.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "p_saveg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "p_tick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "wi_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "statdump.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "hu_lib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "r_draw.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.h", "target": "r_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "hu_lib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "SDL.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "SDL_cdrom.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "i_cdmus.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "txt_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_scale.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "SDL.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "SDL_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "i_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_main.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_main.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "SDL_mixer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "gusconf.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_swap.h", "target": "SDL_endian.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "stdarg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "windows.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "SDL.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "CoreFoundation/CFUserNotification.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_timer.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_timer.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_timer.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_timer.c", "target": "stdarg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "stdbool.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "stdarg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "sys/types.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "info.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "p_mobj.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.h", "target": "d_think.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_bbox.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_bbox.h", "target": "limits.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_bbox.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_cheat.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_cheat.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_cheat.c", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "errno.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_fixed.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_fixed.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_fixed.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_fixed.c", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "p_saveg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "errno.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "windows.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "io.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "direct.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "sys/stat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "sys/types.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.h", "target": "stdarg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_random.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "memio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_client.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_client.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_client.h", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_client.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_defs.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_defs.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_defs.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_defs.h", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_gui.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_io.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_loop.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_packet.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_query.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_sdl.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "p_inter.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_local.h", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_local.h", "target": "p_spec.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "d_think.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "doomdata.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "info.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "p_pspr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.h", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.h", "target": "info.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "p_saveg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_sight.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_sight.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_sight.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_sight.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_tick.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_tick.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_tick.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_user.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_user.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_user.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_user.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "r_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "r_plane.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "r_things.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.h", "target": "r_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.h", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "d_think.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "p_mobj.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "v_patch.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_bsp.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_segs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_plane.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_things.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_draw.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "d_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.h", "target": "d_player.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_sky.c", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_sky.c", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_sky.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_state.h", "target": "d_player.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_state.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.h", "target": "p_mobj.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.h", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "assert.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sounds.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sounds.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sounds.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sounds.h", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "st_lib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.h", "target": "r_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "st_lib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "p_inter.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.h", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "d_player.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "statdump.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/tables.c", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/tables.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/tables.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "png.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.h", "target": "v_patch.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "w_checksum.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "w_file.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file_stdc.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file_stdc.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file_stdc.c", "target": "w_file.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file_stdc.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "d_iwad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "w_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "w_merge.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "d_iwad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.h", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.h", "target": "w_file.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "wi_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/z_zone.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/z_zone.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/z_zone.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/z_zone.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/lua_main.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/lua_main.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/lua_main.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/lua_main.c", "target": "lua.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/lua_main.c", "target": "lauxlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/lua_main.c", "target": "lualib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/minios.c", "target": "lua.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/minios.c", "target": "lauxlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/minios.c", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/lua/minios.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/micropython/variants/minios/lib/hello.py", "target": "minios"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/micropython/variants/minios/minios_module.c", "target": "py/runtime.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/micropython/variants/minios/minios_module.c", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/micropython/variants/minios/minios_module.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/cvm_emit.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/cvm_emit.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/cvm_emit.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/cvm_emit.c", "target": "cvm_emit.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "sys/types.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "sys/stat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "nuklear.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "nuklear_minios.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/node_editor.c", "target": "cvm_emit.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/nuklear_minios.c", "target": "nuklear.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/nuklear_minios.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/nuklear_minios.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/nuklear_minios.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/nuklear_minios.c", "target": "nuklear_minios.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/nuklear_minios.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/nuklear/nuklear_minios.h", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/piano/piano.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/piano/piano.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/piano/piano.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/piano/piano.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/piano/piano.c", "target": "nuklear.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/piano/piano.c", "target": "nuklear_minios.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/piano/piano.c", "target": "opl3.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/piano/piano.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/minios_stubs/SDL.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "gbrt.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "ppu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "platform_sdl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "audio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/pokemon/platform_minios.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/quake2generic/q2generic_minios.c", "target": "quake2.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/quake2generic/q2generic_minios.c", "target": "quakegeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/quake2generic/q2generic_minios.c", "target": "client/keys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/quake2generic/q2generic_minios.c", "target": "ref_soft/r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/quake2generic/q2generic_minios.c", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/quake2generic/q2generic_minios.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/quake2generic/q2generic_minios.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/quake2generic/q2generic_minios.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/audio.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/mthreads.h", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/opl3.c", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/opl3.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/opl3.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/opl3.c", "target": "opl3.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/opl3.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/sbtone.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/sbtone.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/sbtone.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/shell.py", "target": "minios"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/shell.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/shell.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/test.py", "target": "minios"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/test.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/thdemo.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/thdemo.c", "target": "mthreads.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/src/thdemo.c", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/topogpt3/topogpt3.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/topogpt3/topogpt3.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/topogpt3/topogpt3.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/topogpt3/topogpt3.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/topogpt3/topogpt3.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "qga.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "qga.c", "target": "qga.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "qga.c", "target": "rtc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sched.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sched.h", "target": "spinlock.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "shell.h", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "smp.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "smp.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "smp.c", "target": "smp.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "smp.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "smp.c", "target": "ap_stub.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "smp.c", "target": "arch/x86/msr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "smp.h", "target": "spinlock.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sync.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sync.h", "target": "spinlock.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sync.h", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "http.server"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "fcntl"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tests/test_sync.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tests/test_sync.c", "target": "sync.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tests/test_vma.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tests/test_vma.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tests/test_vma.c", "target": "vma.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "time.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "sys/socket.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "sys/select.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "netinet/in.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "arpa/inet.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "tls_port.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "tls_test_roots.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "re"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "shlex"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "socket"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "ssl"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "threading"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "datetime"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_cohesion.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_cohesion.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_cohesion.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_cohesion.py", "target": "argparse"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_complexity.py", "target": "re"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_complexity.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_complexity.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_complexity.py", "target": "argparse"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_kb_sync.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_kb_sync.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_kb_sync.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_kb_sync.py", "target": "argparse"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_surprising.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_surprising.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_surprising.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_surprising.py", "target": "collections"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/check_surprising.py", "target": "argparse"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gdb_repro.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gdb_repro.py", "target": "pty"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gdb_repro.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gdb_repro.py", "target": "socket"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gdb_repro.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gdb_repro.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gdb_repro.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gen_icons.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gen_icons.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gen_icons.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gen_icons.py", "target": "zlib"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gen_zip_fixtures.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gen_zip_fixtures.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/gen_zip_fixtures.py", "target": "zipfile"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_cli.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_cli.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_cli.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_cli.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_cli.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_cli.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_gui.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_gui.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_gui.py", "target": "pty"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_gui.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_gui.py", "target": "socket"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_gui.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_gui.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/minios_gui.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/mkpak1.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/mkpak1.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/mkpak1.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/qga_client.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/qga_client.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/qga_client.py", "target": "socket"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/qga_client.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/qga_client.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/repro_gui.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/repro_gui.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/repro_gui.py", "target": "pty"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/repro_gui.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/repro_gui.py", "target": "socket"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/repro_gui.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/repro_gui.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tools/repro_gui.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "vga_fb.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "vga_fb.h", "target": "minios_abi.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "vma.c", "target": "vma.h"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "mcp/mcp_dbg_driver.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "mcp/mcp_dogfood.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "mcp/minios_addons.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "mcp/minios_mcp.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "mcp/minios_mcp.py", "target": "mcp/minios_addons.py"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "progs/micropython/variants/minios/lib/hello.py", "target": "progs/lua/minios.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "progs/src/shell.py", "target": "progs/lua/minios.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "progs/src/test.py", "target": "progs/lua/minios.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "test_http_server.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "tls_test.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "tools/gdb_repro.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "tools/minios_cli.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "tools/minios_gui.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "tools/qga_client.py", "target": "kernel/time.c"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "tools/repro_gui.py", "target": "kernel/time.c"}], "generator": "readmenator", "metadata": {"edge_count": 3814, "file_count": 362, "language_count": 7, "symbol_count": 5193}, "nodes": [{"doc": "generated from ap_stub.bin - do not edit", "id": "ap_stub.h", "kind": "module", "label": "ap_stub.h", "language": "h", "sha256": "c14ec42262bd89b7", "symbol_count": 0, "symbols": []}, {"doc": "_*_ coding: utf8 _*_", "id": "app.py", "kind": "module", "label": "app.py", "language": "py", "sha256": "57b21bdb023585b8", "symbol_count": 0, "symbols": []}, {"doc": "ap_entry.S - SMP application-processor bootstrap stub.", "id": "arch/x86/ap_entry.S", "kind": "module", "label": "ap_entry.S", "language": "S", "sha256": "f901a6e3e7262b5e", "symbol_count": 9, "symbols": [{"kind": "function", "line": 21, "name": "ap_stub_start"}, {"kind": "function", "line": 39, "name": "ap_pm"}, {"kind": "function", "line": 62, "name": "ap_lm"}, {"kind": "function", "line": 80, "name": "ap_patch_slot"}, {"kind": "function", "line": 84, "name": "ap_gdt32"}, {"doc": "movw %ax, %ss /* Load smp_ap_entry()'s address from the BSP-patched slot and go. mov ap_patch_slot(%rip), %rax jmp *%rax .globl ap_patch_slot ap_patch_slot: .quad 0 .p2align 2 ap_gdt32: .quad 0x0000000000000000 .quad 0x00CF9A000000FFFF /* code32 base 0 limit 4G .quad 0x00CF92000000FFFF /* data32 base 0 limit 4G", "kind": "function", "line": 88, "name": "ap_gdt32_ptr"}, {"kind": "function", "line": 91, "name": "ap_gdt32_end"}, {"kind": "function", "line": 93, "name": "ap_gdt64_ptr"}, {"kind": "function", "line": 98, "name": "ap_stub_end"}]}, {"doc": "bootdefs.h - centralized configuration for the MiniOS two-stage boot path.", "id": "arch/x86/boot/bootdefs.h", "kind": "module", "label": "bootdefs.h", "language": "h", "sha256": "5e4726dad4d99727", "symbol_count": 129, "symbols": [{"kind": "macro", "line": 46, "name": "BOOTDEFS_H"}, {"kind": "macro", "line": 47, "name": "SECTOR_BYTES"}, {"kind": "macro", "line": 49, "name": "SECTOR_PARAGRAPH_SHIFT"}, {"kind": "macro", "line": 50, "name": "SECTOR_DWORD_SHIFT"}, {"kind": "macro", "line": 51, "name": "BOOT_SIGNATURE"}, {"kind": "macro", "line": 53, "name": "BOOT_SIGNATURE_BYTES"}, {"kind": "macro", "line": 54, "name": "BOOT_SEG_NULL"}, {"kind": "macro", "line": 56, "name": "BOOT_STACK_TOP"}, {"kind": "macro", "line": 57, "name": "BOOT_DAP_ADDR"}, {"kind": "macro", "line": 59, "name": "BOOT_DAP_SIZE"}, {"kind": "macro", "line": 60, "name": "BOOT_DAP_OFF_COUNT"}, {"kind": "macro", "line": 61, "name": "BOOT_DAP_OFF_OFFSET"}, {"kind": "macro", "line": 62, "name": "BOOT_DAP_OFF_SEGMENT"}, {"kind": "macro", "line": 63, "name": "BOOT_DAP_OFF_LBA_LO"}, {"kind": "macro", "line": 64, "name": "BOOT_DAP_OFF_LBA_HI"}, {"kind": "macro", "line": 65, "name": "BOOT_DRIVE_ADDR"}, {"kind": "macro", "line": 66, "name": "BOOT_KASLR_ADDR"}, {"kind": "macro", "line": 67, "name": "BOOT_STAGE2_LBA"}, {"kind": "macro", "line": 69, "name": "BOOT_STAGE2_SECTORS"}, {"kind": "macro", "line": 70, "name": "BOOT_STAGE2_ADDR"}, {"kind": "macro", "line": 71, "name": "BOOT_STAGE2_SEG"}, {"kind": "macro", "line": 72, "name": "BOOT_KERNEL_LBA"}, {"kind": "macro", "line": 74, "name": "BOOT_KERNEL_BUF_ADDR"}, {"kind": "macro", "line": 75, "name": "BOOT_KERNEL_BUF_SEG"}, {"kind": "macro", "line": 76, "name": "BOOT_KERNEL_PHYS_ADDR"}, {"kind": "macro", "line": 77, "name": "BOOT_CHUNK_SECTORS"}, {"kind": "macro", "line": 79, "name": "BOOT_BIOS_MAX_SECTORS"}, {"kind": "macro", "line": 80, "name": "BOOT_PM_STACK_TOP"}, {"kind": "macro", "line": 82, "name": "BIOS_DISK_INT"}, {"kind": "macro", "line": 84, "name": "BIOS_DISK_EXT_CHECK"}, {"kind": "macro", "line": 85, "name": "BIOS_DISK_EXT_REQ_MAGIC"}, {"kind": "macro", "line": 86, "name": "BIOS_DISK_EXT_ACK_MAGIC"}, {"kind": "macro", "line": 87, "name": "BIOS_DISK_EXT_PACKET_BIT"}, {"kind": "macro", "line": 88, "name": "BIOS_DISK_READ_EXT"}, {"kind": "macro", "line": 89, "name": "BIOS_VIDEO_INT"}, {"kind": "macro", "line": 91, "name": "BIOS_VIDEO_TTY_WRITE"}, {"kind": "macro", "line": 92, "name": "BIOS_VIDEO_TTY_ATTR"}, {"kind": "macro", "line": 93, "name": "BIOS_VIDEO_SET_MODE"}, {"kind": "macro", "line": 101, "name": "BIOS_VBE_GET_MODE_INFO"}, {"kind": "macro", "line": 102, "name": "BIOS_VBE_SET_MODE"}, {"kind": "macro", "line": 103, "name": "VBE_MODE_800x600x8"}, {"kind": "macro", "line": 104, "name": "VBE_MODE_640x480x8"}, {"kind": "macro", "line": 105, "name": "VBE_MODE_LFB"}, {"kind": "macro", "line": 106, "name": "VBE_MODE_INFO_ADDR"}, {"kind": "macro", "line": 107, "name": "VBE_MODE_ATTR_OFF"}, {"kind": "macro", "line": 108, "name": "VBE_ATTR_SUPPORTED"}, {"kind": "macro", "line": 109, "name": "VBE_ATTR_LFB"}, {"kind": "macro", "line": 110, "name": "VBE_INFO_XRES_OFF"}, {"kind": "macro", "line": 111, "name": "VBE_INFO_YRES_OFF"}, {"kind": "macro", "line": 112, "name": "VBE_INFO_BYTES_SCAN_OFF"}, {"kind": "macro", "line": 113, "name": "VBE_INFO_PHYSBASE_OFF"}, {"kind": "macro", "line": 123, "name": "VBE_INFO_ADDR"}, {"kind": "macro", "line": 124, "name": "VBE_INFO_FBBASE_OFF"}, {"kind": "macro", "line": 125, "name": "VBE_INFO_PITCH_OFF"}, {"kind": "macro", "line": 126, "name": "VBE_INFO_WIDTH_OFF"}, {"kind": "macro", "line": 127, "name": "VBE_INFO_HEIGHT_OFF"}, {"kind": "macro", "line": 128, "name": "VBE_INFO_VALID_OFF"}, {"kind": "macro", "line": 129, "name": "A20_CONTROL_PORT"}, {"kind": "macro", "line": 131, "name": "A20_ENABLE_BIT"}, {"kind": "macro", "line": 132, "name": "A20_RESET_CLEAR_MASK"}, {"kind": "macro", "line": 133, "name": "CR0_PE"}, {"kind": "macro", "line": 135, "name": "CR0_PE_CLEAR_MASK"}, {"kind": "macro", "line": 136, "name": "CR0_PG"}, {"kind": "macro", "line": 137, "name": "CR4_PAE"}, {"kind": "macro", "line": 138, "name": "MSR_EFER"}, {"kind": "macro", "line": 140, "name": "EFER_LME"}, {"kind": "macro", "line": 141, "name": "EFER_NXE"}, {"kind": "macro", "line": 142, "name": "GDT32_CODE32_SEL"}, {"kind": "macro", "line": 144, "name": "GDT32_DATA32_SEL"}, {"kind": "macro", "line": 145, "name": "GDT32_CODE16_SEL"}, {"kind": "macro", "line": 146, "name": "GDT32_DATA16_SEL"}, {"kind": "macro", "line": 147, "name": "GDT32_DESC_NULL"}, {"kind": "macro", "line": 149, "name": "GDT32_DESC_CODE32"}, {"kind": "macro", "line": 150, "name": "GDT32_DESC_DATA32"}, {"kind": "macro", "line": 151, "name": "GDT32_DESC_CODE16"}, {"kind": "macro", "line": 152, "name": "GDT32_DESC_DATA16"}, {"kind": "macro", "line": 153, "name": "GDT64_ADDR"}, {"kind": "macro", "line": 155, "name": "GDT64_BYTES"}, {"kind": "macro", "line": 160, "name": "GDT64_SMP_BYTES"}, {"kind": "macro", "line": 165, "name": "AP_STUB_ADDR"}, {"kind": "macro", "line": 166, "name": "GDT64_CODE_SEL"}, {"kind": "macro", "line": 167, "name": "GDT64_DATA_SEL"}, {"kind": "macro", "line": 168, "name": "GDT64_USER_DATA_SEL"}, {"kind": "macro", "line": 169, "name": "GDT64_USER_CODE_SEL"}, {"kind": "macro", "line": 170, "name": "GDT64_DESC_NULL"}, {"kind": "macro", "line": 171, "name": "GDT64_DESC_CODE"}, {"kind": "macro", "line": 172, "name": "GDT64_DESC_DATA"}, {"kind": "macro", "line": 173, "name": "GDT64_DESC_UDATA"}, {"kind": "macro", "line": 174, "name": "GDT64_DESC_UCODE"}, {"kind": "macro", "line": 175, "name": "PT_PML4_ADDR"}, {"kind": "macro", "line": 177, "name": "PT_PDPT_ADDR"}, {"kind": "macro", "line": 178, "name": "PT_PD_ADDR"}, {"kind": "macro", "line": 179, "name": "PT_USER0_ADDR"}, {"kind": "macro", "line": 180, "name": "PT_USER1_ADDR"}, {"kind": "macro", "line": 181, "name": "PT_ZERO_DWORDS"}, {"kind": "macro", "line": 182, "name": "PT_FLAGS_PRESENT_RW"}, {"kind": "macro", "line": 183, "name": "PT_FLAGS_PRESENT_RW_PS"}, {"kind": "macro", "line": 184, "name": "PT_FLAGS_PS"}, {"kind": "macro", "line": 185, "name": "PT_FLAGS_USER"}, {"kind": "macro", "line": 186, "name": "PT_FLAGS_PCD"}, {"kind": "macro", "line": 187, "name": "PT_FLAGS_NX"}, {"kind": "macro", "line": 188, "name": "PT_ADDR_MASK"}, {"kind": "macro", "line": 189, "name": "PT_USER_ENTRY"}, {"kind": "macro", "line": 190, "name": "PT_USER_NX_ENTRY"}, {"kind": "macro", "line": 191, "name": "PT_ENTRY_PRESENT"}, {"kind": "macro", "line": 192, "name": "PT_ENTRY_USER"}, {"kind": "macro", "line": 198, "name": "SB16_DMA_PT_ENTRY"}, {"kind": "macro", "line": 199, "name": "SB16_DMA_PT_PAGES"}, {"kind": "macro", "line": 200, "name": "PT_PD_ENTRIES"}, {"kind": "macro", "line": 201, "name": "PT_PD_ENTRY_BYTES"}, {"kind": "macro", "line": 202, "name": "PT_PD_PAGE_BYTES"}, {"kind": "macro", "line": 203, "name": "PT_PD_INDEX_SHIFT"}, {"kind": "macro", "line": 204, "name": "PT_FILL_START_INDEX"}, {"kind": "macro", "line": 205, "name": "PT_FILL_START_ADDR"}, {"kind": "macro", "line": 206, "name": "PT_FILL_ENTRIES"}, {"kind": "macro", "line": 226, "name": "PT_USER_TABLES_ADDR"}, {"kind": "macro", "line": 227, "name": "PT_USER_TABLES_BYTES"}, {"kind": "macro", "line": 239, "name": "KASLR_MIN_ADDR"}, {"kind": "macro", "line": 240, "name": "KASLR_ALIGN_SHIFT"}, {"kind": "macro", "line": 241, "name": "KASLR_MAX_UNITS"}, {"kind": "macro", "line": 242, "name": "KASLR_IMG_OFF_1MB"}, {"kind": "macro", "line": 243, "name": "KASLR_IMG_OFF_2MB"}, {"kind": "macro", "line": 244, "name": "KASLR_IMAGE_SPAN"}, {"kind": "macro", "line": 245, "name": "CMOS_INDEX_PORT"}, {"kind": "macro", "line": 247, "name": "CMOS_DATA_PORT"}, {"kind": "macro", "line": 248, "name": "CMOS_NMI_DISABLE"}, {"kind": "macro", "line": 249, "name": "CMOS_REG_SECONDS"}, {"kind": "macro", "line": 250, "name": "CMOS_REG_MINUTES"}, {"kind": "macro", "line": 251, "name": "CMOS_REG_HOURS"}]}, {"doc": "stage1.S - MiniOS boot sector.", "id": "arch/x86/boot/stage1.S", "kind": "module", "label": "stage1.S", "language": "S", "sha256": "24326caac4c8b35e", "symbol_count": 11, "symbols": [{"kind": "function", "line": 28, "name": "main"}, {"kind": "function", "line": 32, "name": "normalize"}, {"kind": "function", "line": 78, "name": "no_extensions"}, {"kind": "function", "line": 82, "name": "read_failed"}, {"kind": "function", "line": 85, "name": "fail"}, {"kind": "function", "line": 88, "name": "halt"}, {"kind": "function", "line": 93, "name": "puts"}, {"kind": "function", "line": 97, "name": "puts_next"}, {"kind": "function", "line": 103, "name": "puts_done"}, {"kind": "function", "line": 107, "name": "msg_no_lba"}, {"kind": "function", "line": 109, "name": "msg_read"}]}, {"doc": "stage2.S - MiniOS second-stage loader.", "id": "arch/x86/boot/stage2.S", "kind": "module", "label": "stage2.S", "language": "S", "sha256": "2d6bdf0dd88f368f", "symbol_count": 39, "symbols": [{"kind": "function", "line": 39, "name": "stage2_main"}, {"kind": "function", "line": 54, "name": "a20_ready"}, {"kind": "function", "line": 69, "name": "load_chunk"}, {"kind": "function", "line": 74, "name": "chunk_size_ready"}, {"kind": "function", "line": 81, "name": "read_piece"}, {"kind": "function", "line": 86, "name": "piece_size_ready"}, {"kind": "function", "line": 118, "name": "chunk_copy"}, {"kind": "function", "line": 131, "name": "chunk_leave_pm"}, {"kind": "function", "line": 141, "name": "chunk_resume"}, {"kind": "function", "line": 162, "name": "enter_long_mode"}, {"kind": "function", "line": 190, "name": "fill_pt0_low"}, {"kind": "function", "line": 208, "name": "dma_uncache"}, {"kind": "function", "line": 216, "name": "fill_pt0_kernel"}, {"kind": "function", "line": 235, "name": "fill_pt1_kernel"}, {"kind": "function", "line": 244, "name": "fill_pt1_bss"}, {"doc": "endif", "kind": "function", "line": 260, "name": "fill_page_directory"}, {"kind": "function", "line": 289, "name": "read_failed"}, {"kind": "function", "line": 293, "name": "halt"}, {"kind": "function", "line": 298, "name": "puts"}, {"kind": "function", "line": 302, "name": "puts_next"}, {"kind": "function", "line": 308, "name": "puts_done"}, {"kind": "function", "line": 312, "name": "msg_read"}, {"doc": "Probe VESA BIOS Extensions for a high-resolution 8-bit-palette linear framebuffer and record it for the kernel in the fixed VBE_INFO_ADDR struct. Tries 800x600x8, then 640x480x8, then falls back to VGA Mode 13h. Runs in real mode (the kernel image is already fully loaded, so this scratch is safe) and must complete before the transition to long mode kills the BIOS video services. The 8-bit modes keep the 256-entry VGA DAC path the kernel * desktop and DOOM rely on.", "kind": "function", "line": 322, "name": "vbe_probe"}, {"doc": "Try one VBE mode held in %bx. On success the mode is set with the linear framebuffer bit and carry is cleared; on any failure carry is set so the * caller can try the next candidate.", "kind": "function", "line": 343, "name": "vbe_try_mode"}, {"kind": "function", "line": 387, "name": "vbe_set_fail"}, {"kind": "function", "line": 390, "name": "vbe_try_fail"}, {"kind": "function", "line": 396, "name": "vbe_ok"}, {"doc": "Pick the kernel's physical load base: a 2 MB-aligned address in the 64-position window above the kernel heap, seeded from the TSC and the RTC so consecutive boots land at different locations. Returns the base in eax. The virtual base stays at the link-time 0x100000, which PT0/PT1 map * to the returned physical base.", "kind": "function", "line": 405, "name": "kaslr_pick"}, {"kind": "function", "line": 442, "name": "gdt32_start"}, {"kind": "function", "line": 448, "name": "gdt32_end"}, {"kind": "function", "line": 449, "name": "gdt32_ptr"}, {"kind": "function", "line": 454, "name": "gdt64_image"}, {"kind": "function", "line": 460, "name": "gdt64_ptr"}, {"kind": "function", "line": 464, "name": "saved_gdtr"}, {"kind": "function", "line": 467, "name": "sectors_left"}, {"kind": "function", "line": 469, "name": "chunk_sectors"}, {"kind": "function", "line": 471, "name": "next_lba"}, {"kind": "function", "line": 473, "name": "dest_addr"}, {"kind": "function", "line": 475, "name": "kaslr_dest"}]}, {"id": "arch/x86/ctx_sw.S", "kind": "module", "label": "ctx_sw.S", "language": "S", "sha256": "7515db77248b925e", "symbol_count": 5, "symbols": [{"kind": "function", "line": 35, "name": "switch_save_only"}, {"kind": "function", "line": 44, "name": "switch_to"}, {"kind": "function", "line": 76, "name": "switch_to_notrap"}, {"kind": "function", "line": 135, "name": "user_trampoline"}, {"kind": "function", "line": 148, "name": "resume_iretq"}]}, {"id": "arch/x86/isr_stubs.S", "kind": "module", "label": "isr_stubs.S", "language": "S", "sha256": "9227535534f7ef58", "symbol_count": 24, "symbols": [{"kind": "function", "line": 67, "name": "tf_rax"}, {"kind": "function", "line": 68, "name": "tf_rbx"}, {"kind": "function", "line": 69, "name": "tf_rcx"}, {"kind": "function", "line": 70, "name": "tf_rdx"}, {"kind": "function", "line": 71, "name": "tf_rsi"}, {"kind": "function", "line": 72, "name": "tf_rdi"}, {"kind": "function", "line": 73, "name": "tf_rbp"}, {"kind": "function", "line": 74, "name": "tf_r8"}, {"kind": "function", "line": 75, "name": "tf_r9"}, {"kind": "function", "line": 76, "name": "tf_r10"}, {"kind": "function", "line": 77, "name": "tf_r11"}, {"kind": "function", "line": 78, "name": "tf_r12"}, {"kind": "function", "line": 79, "name": "tf_r13"}, {"kind": "function", "line": 80, "name": "tf_r14"}, {"kind": "function", "line": 81, "name": "tf_r15"}, {"kind": "function", "line": 82, "name": "tf_rip"}, {"kind": "function", "line": 83, "name": "tf_cs"}, {"kind": "function", "line": 84, "name": "tf_rflags"}, {"kind": "function", "line": 85, "name": "tf_rsp"}, {"kind": "function", "line": 86, "name": "tf_ss"}, {"kind": "function", "line": 87, "name": "tf_vector"}, {"kind": "function", "line": 88, "name": "tf_errcode"}, {"kind": "function", "line": 96, "name": "isr_common"}, {"kind": "function", "line": 195, "name": "isr_stub_table"}]}, {"doc": "ifndef ARCH_X86_MSR_H define ARCH_X86_MSR_H Model-Specific Register access for x86-64.", "id": "arch/x86/msr.h", "kind": "module", "label": "msr.h", "language": "h", "sha256": "40b733a147980599", "symbol_count": 9, "symbols": [{"doc": "Model-Specific Register access for x86-64. Shared by kernel.c (syscall_init, arch_prctl, k_exec_user), * paging.c (mm_setup_protections), and syscalls.c (arch_prctl handler).", "kind": "function", "line": 7, "name": "wrmsr", "signature": "static inline void wrmsr(unsigned msr, unsigned long val)"}, {"kind": "function", "line": 12, "name": "rdmsr", "signature": "static inline unsigned long rdmsr(unsigned msr)"}, {"kind": "macro", "line": 2, "name": "ARCH_X86_MSR_H"}, {"kind": "macro", "line": 18, "name": "MSR_STAR"}, {"kind": "macro", "line": 20, "name": "MSR_LSTAR"}, {"kind": "macro", "line": 21, "name": "MSR_SFMASK"}, {"kind": "macro", "line": 22, "name": "MSR_FSBASE"}, {"kind": "macro", "line": 23, "name": "MSR_GSBASE"}, {"kind": "macro", "line": 24, "name": "MSR_KERNEL_GS_BASE"}]}, {"doc": "ifndef AUDIO_H define AUDIO_H Unified audio API for MiniOS.", "id": "audio.h", "kind": "module", "label": "audio.h", "language": "h", "sha256": "dc59b6dd07208b61", "symbol_count": 5, "symbols": [{"kind": "macro", "line": 2, "name": "AUDIO_H"}, {"kind": "macro", "line": 14, "name": "AUDIO_RATE_DEFAULT"}, {"kind": "macro", "line": 16, "name": "AUDIO_CHANNELS_MONO"}, {"kind": "macro", "line": 17, "name": "AUDIO_FORMAT_U8"}, {"kind": "macro", "line": 18, "name": "AUDIO_FORMAT_S16"}]}, {"doc": "ifndef BLOCK_H define BLOCK_H Block device abstraction for MiniFS. Maps 4096-byte logical blocks to 512-byte IDE sectors.", "id": "block.h", "kind": "module", "label": "block.h", "language": "h", "sha256": "d65f42d353cea321", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 2, "name": "BLOCK_H"}, {"kind": "macro", "line": 6, "name": "BLOCK_SIZE"}, {"kind": "macro", "line": 8, "name": "BLOCK_SHIFT"}, {"kind": "macro", "line": 9, "name": "SECTORS_PER_BLOCK"}]}, {"id": "bootloader.c", "kind": "module", "label": "bootloader.c", "language": "c", "sha256": "7bd57cae9f873eb1", "symbol_count": 2, "symbols": [{"doc": "\"gdt_start:\\n\" \" .quad 0\\n\" \" .quad 0x00CF9A000000FFFF\\n\" \" .quad 0x00CF92000000FFFF\\n\" \"gdt_end:\\n\" \".global gdt32_ptr\\n\" \"gdt32_ptr:\\n\" \" .word gdt_end - gdt_start - 1\\n\" \" .long gdt_start\\n\" ); __asm__(\"boot_drive: .byte 0\\n\"); /* Number of 512-byte sectors of kernel to load from LBA 1 to phys 0x10000. define KSECTORS 508", "kind": "function", "line": 20, "name": "main", "signature": "void main(void)"}, {"kind": "macro", "line": 19, "name": "KSECTORS"}]}, {"doc": "desktop_icons.h -- embedded icon pixel data for desktop shortcuts.", "id": "desktop_icons.h", "kind": "module", "label": "desktop_icons.h", "language": "h", "sha256": "8669d183d119ecba", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 8, "name": "DESKTOP_ICONS_H"}, {"kind": "macro", "line": 11, "name": "ICON_EMBEDDED_W"}, {"kind": "macro", "line": 13, "name": "ICON_EMBEDDED_H"}]}, {"doc": "desktop_shortcuts.h -- configurable desktop icon shortcuts.", "id": "desktop_shortcuts.h", "kind": "module", "label": "desktop_shortcuts.h", "language": "h", "sha256": "287229c03df5ba50", "symbol_count": 13, "symbols": [{"doc": "Icon palette: 16 colours loaded into VGA DAC indices 240-255. Indices 0-14 stay as the desktop palette; the icon palette gives * enough range for simple pixel-art icons. #define ICON_PAL_BASE 240 #define ICON_PAL_SIZE 16 /* A decoded+cached desktop shortcut.", "kind": "struct", "line": 36, "name": "desktop_shortcut"}, {"kind": "macro", "line": 12, "name": "DESKTOP_SHORTCUTS_H"}, {"kind": "macro", "line": 17, "name": "MAX_SHORTCUTS"}, {"kind": "macro", "line": 18, "name": "SHORTCUT_NAME_LEN"}, {"kind": "macro", "line": 19, "name": "SHORTCUT_CMD_LEN"}, {"kind": "macro", "line": 20, "name": "SHORTCUT_PATH_LEN"}, {"kind": "macro", "line": 23, "name": "ICON_W"}, {"kind": "macro", "line": 24, "name": "ICON_H"}, {"kind": "macro", "line": 25, "name": "ICON_PAD_X"}, {"kind": "macro", "line": 26, "name": "ICON_PAD_Y"}, {"kind": "macro", "line": 27, "name": "ICON_LABEL_H"}, {"kind": "macro", "line": 32, "name": "ICON_PAL_BASE"}, {"kind": "macro", "line": 33, "name": "ICON_PAL_SIZE"}]}, {"doc": "Block device layer for MiniFS.", "id": "drivers/block.c", "kind": "module", "label": "block.c", "language": "c", "sha256": "eefd91f7383c3103", "symbol_count": 12, "symbols": [{"kind": "function", "line": 27, "name": "bc_index", "signature": "static unsigned int bc_index(unsigned int block_num)"}, {"kind": "function", "line": 31, "name": "bc_invalidate", "signature": "static void bc_invalidate(unsigned int block_num)"}, {"kind": "function", "line": 36, "name": "block_init", "signature": "void block_init(void)"}, {"kind": "function", "line": 42, "name": "block_set_base", "signature": "void block_set_base(unsigned int lba_base)"}, {"kind": "function", "line": 46, "name": "block_read", "signature": "int block_read(unsigned int block_num, void *buf)"}, {"kind": "function", "line": 66, "name": "block_write", "signature": "int block_write(unsigned int block_num, const void *buf)"}, {"kind": "function", "line": 72, "name": "block_read_multi", "signature": "int block_read_multi(unsigned int block_num, unsigned int count, void *buf)"}, {"kind": "function", "line": 77, "name": "block_write_multi", "signature": "int block_write_multi(unsigned int block_num, unsigned int count, const void *buf)"}, {"kind": "function", "line": 84, "name": "block_flush", "signature": "void block_flush(void)"}, {"kind": "function", "line": 86, "name": "block_total", "signature": "unsigned int block_total(void)"}, {"kind": "macro", "line": 22, "name": "BC_WAYS"}, {"kind": "macro", "line": 23, "name": "BC_MASK"}]}, {"doc": "IDE/ATA PIO driver for MiniOS.", "id": "drivers/ide.c", "kind": "module", "label": "ide.c", "language": "c", "sha256": "c48e8f0789074589", "symbol_count": 14, "symbols": [{"kind": "function", "line": 11, "name": "ide_delay", "signature": "static void ide_delay(void)"}, {"kind": "function", "line": 21, "name": "ide_read_status", "signature": "static unsigned char ide_read_status(void)"}, {"kind": "function", "line": 25, "name": "ide_wait_not_busy", "signature": "static int ide_wait_not_busy(unsigned int timeout)"}, {"kind": "function", "line": 33, "name": "ide_wait_drq", "signature": "static int ide_wait_drq(unsigned int timeout)"}, {"kind": "function", "line": 44, "name": "ide_select_drive", "signature": "static void ide_select_drive(unsigned char drive)"}, {"kind": "function", "line": 50, "name": "ide_soft_reset", "signature": "static void ide_soft_reset(void)"}, {"kind": "function", "line": 57, "name": "ide_identify", "signature": "static int ide_identify(void)"}, {"kind": "function", "line": 82, "name": "ide_init", "signature": "void ide_init(void)"}, {"kind": "function", "line": 100, "name": "ide_present", "signature": "int ide_present(void)"}, {"kind": "function", "line": 102, "name": "ide_total_sectors", "signature": "unsigned int ide_total_sectors(void)"}, {"kind": "function", "line": 103, "name": "ide_read_sectors", "signature": "int ide_read_sectors(unsigned int lba, unsigned int count, void *buf)"}, {"kind": "function", "line": 134, "name": "ide_write_sectors", "signature": "int ide_write_sectors(unsigned int lba, unsigned int count, const void *buf)"}, {"kind": "function", "line": 164, "name": "ide_read_sector", "signature": "int ide_read_sector(unsigned int lba, void *buf)"}, {"kind": "function", "line": 168, "name": "ide_write_sector", "signature": "int ide_write_sector(unsigned int lba, const void *buf)"}]}, {"doc": "include \"kernel.h\" include \"vga_fb.h\" include \"kbd.h\" ================================================================", "id": "drivers/kbd.c", "kind": "module", "label": "kbd.c", "language": "c", "sha256": "f63d78cf42a389b7", "symbol_count": 17, "symbols": [{"kind": "function", "line": 48, "name": "kbd_q_push", "signature": "void kbd_q_push(unsigned char c)"}, {"kind": "function", "line": 55, "name": "kbd_raw_push_internal", "signature": "static void kbd_raw_push_internal(unsigned char c)"}, {"kind": "function", "line": 62, "name": "kbd_q_empty", "signature": "int kbd_q_empty(void)"}, {"kind": "function", "line": 64, "name": "kbd_q_pop", "signature": "int kbd_q_pop(void)"}, {"kind": "function", "line": 71, "name": "kbd_available", "signature": "int kbd_available(void)"}, {"kind": "function", "line": 77, "name": "kbd_raw_mode_get", "signature": "int kbd_raw_mode_get(void)"}, {"kind": "function", "line": 79, "name": "kbd_raw_mode_set", "signature": "void kbd_raw_mode_set(int on)"}, {"kind": "function", "line": 80, "name": "kbd_raw_empty", "signature": "int kbd_raw_empty(void)"}, {"kind": "function", "line": 81, "name": "kbd_raw_pop", "signature": "int kbd_raw_pop(void)"}, {"kind": "function", "line": 87, "name": "kbd_raw_push_byte", "signature": "void kbd_raw_push_byte(unsigned char c)"}, {"kind": "function", "line": 88, "name": "kbd_e0_get", "signature": "int kbd_e0_get(void)"}, {"kind": "function", "line": 89, "name": "kbd_e0_set", "signature": "void kbd_e0_set(int v)"}, {"kind": "function", "line": 90, "name": "kbd_flush_all", "signature": "void kbd_flush_all(void)"}, {"kind": "function", "line": 94, "name": "kbd_read", "signature": "int kbd_read(void)"}, {"kind": "function", "line": 190, "name": "kbd_reset_for_shell", "signature": "void kbd_reset_for_shell(void)"}, {"kind": "macro", "line": 38, "name": "KBD_QUEUE_LEN"}, {"kind": "macro", "line": 43, "name": "KBD_RAW_LEN"}]}, {"doc": "ifndef KBD_H define KBD_H", "id": "drivers/kbd.h", "kind": "module", "label": "kbd.h", "language": "h", "sha256": "16ff5480d19d2805", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 2, "name": "KBD_H"}]}, {"doc": "include \"kernel.h\" include \"pcspk.h\" PC speaker driver with a software master volume. The speaker has no", "id": "drivers/pcspk.c", "kind": "module", "label": "pcspk.c", "language": "c", "sha256": "dd960a881b5f511f", "symbol_count": 14, "symbols": [{"kind": "function", "line": 26, "name": "pcspk_init", "signature": "void pcspk_init(void)"}, {"kind": "function", "line": 31, "name": "pcspk_set_volume", "signature": "void pcspk_set_volume(unsigned volume)"}, {"kind": "function", "line": 35, "name": "pcspk_get_volume", "signature": "unsigned pcspk_get_volume(void)"}, {"kind": "function", "line": 39, "name": "pcspk_tone", "signature": "void pcspk_tone(unsigned freq)"}, {"kind": "function", "line": 57, "name": "pcspk_off", "signature": "void pcspk_off(void)"}, {"kind": "macro", "line": 12, "name": "PIT_CH2_DATA"}, {"kind": "macro", "line": 14, "name": "PIT_CH2_CMD"}, {"kind": "macro", "line": 15, "name": "SPEAKER_PORT"}, {"kind": "macro", "line": 16, "name": "PIT_FREQ"}, {"kind": "macro", "line": 17, "name": "PCSPK_MIN_FREQ"}, {"kind": "macro", "line": 19, "name": "PCSPK_MAX_FREQ"}, {"kind": "macro", "line": 20, "name": "SPEAKER_DATA_BIT"}, {"kind": "macro", "line": 22, "name": "SPEAKER_GATE_BIT"}, {"kind": "macro", "line": 23, "name": "SPEAKER_ENABLE_BITS"}]}, {"doc": "include \"kernel.h\" include \"rtc.h\" CMOS RTC time-of-day reader. The desktop clock and the shell `date` builtin", "id": "drivers/rtc.c", "kind": "module", "label": "rtc.c", "language": "c", "sha256": "de43161d391f56ff", "symbol_count": 19, "symbols": [{"doc": "The RTC reports a time-of-day that is mid-update; waiting out this flag * before reading the three fields makes the snapshot consistent. define RTC_UPDATE_WAIT 100000", "kind": "function", "line": 31, "name": "rtc_cmos_read", "signature": "static inline unsigned char rtc_cmos_read(unsigned char reg)"}, {"kind": "function", "line": 36, "name": "rtc_from_bcd", "signature": "static int rtc_from_bcd(unsigned char v)"}, {"kind": "function", "line": 40, "name": "rtc_read_tod", "signature": "int rtc_read_tod(int *hour, int *min, int *sec)"}, {"kind": "macro", "line": 8, "name": "RTC_CMOS_ADDR"}, {"kind": "macro", "line": 10, "name": "RTC_CMOS_DATA"}, {"kind": "macro", "line": 11, "name": "RTC_REG_SEC"}, {"kind": "macro", "line": 13, "name": "RTC_REG_MIN"}, {"kind": "macro", "line": 14, "name": "RTC_REG_HOUR"}, {"kind": "macro", "line": 15, "name": "RTC_REG_STATUS_A"}, {"kind": "macro", "line": 16, "name": "RTC_REG_STATUS_B"}, {"kind": "macro", "line": 17, "name": "RTC_UPDATE_IN_PROGRESS"}, {"kind": "macro", "line": 19, "name": "RTC_BCD_FLAG"}, {"kind": "macro", "line": 20, "name": "RTC_HOUR_MIN"}, {"kind": "macro", "line": 22, "name": "RTC_HOUR_MAX"}, {"kind": "macro", "line": 23, "name": "RTC_MIN_MIN"}, {"kind": "macro", "line": 24, "name": "RTC_MIN_MAX"}, {"kind": "macro", "line": 25, "name": "RTC_SEC_MIN"}, {"kind": "macro", "line": 26, "name": "RTC_SEC_MAX"}, {"kind": "macro", "line": 30, "name": "RTC_UPDATE_WAIT"}]}, {"doc": "include \"kernel.h\" include \"sb16.h\" include \"sync.h\" Sound Blaster 16 DMA audio driver.", "id": "drivers/sb16.c", "kind": "module", "label": "sb16.c", "language": "c", "sha256": "6daafcad274ff435", "symbol_count": 58, "symbols": [{"doc": "Mixer stream id backing the legacy sb16_pcm_open/submit API (WQ_NONE when closed). The legacy path forwards into the mixer so submitted PCM actually reaches the DMA ring through sb16_mix_all; a dedicated * kernel-side ring here would be a second, never-drained copy. static int legacy_stream = WQ_NONE; /* Reset the legacy kernel-side audio ring to empty.", "kind": "function", "line": 117, "name": "sb16_kring_reset", "signature": "static void sb16_kring_reset(void)"}, {"kind": "function", "line": 128, "name": "sb16_slot", "signature": "static unsigned char *sb16_slot(unsigned i)"}, {"doc": "streams[(unsigned)legacy_stream].count = 0; } } /* Mix output buffer: one SB16_PCM_BUF chunk of mixed 8-bit unsigned audio. static unsigned char mix_buf[SB16_PCM_BUF]; static unsigned char *sb16_slot(unsigned i) { return (unsigned char *)(unsigned long)(SB16_DMA_BUF0 + i * SB16_BUF); } /* ------------------------------------------------------------------ /* Mixer stream API /* ------------------------------------------------------------------", "kind": "function", "line": 136, "name": "sb16_stream_open", "signature": "int sb16_stream_open(void)"}, {"kind": "function", "line": 152, "name": "sb16_stream_close", "signature": "void sb16_stream_close(int id)"}, {"kind": "function", "line": 160, "name": "sb16_stream_submit", "signature": "int sb16_stream_submit(int id, const unsigned char *pcm, unsigned len)"}, {"kind": "function", "line": 175, "name": "sb16_stream_volume", "signature": "void sb16_stream_volume(int id, unsigned char vol)"}, {"kind": "function", "line": 181, "name": "sb16_stream_count", "signature": "int sb16_stream_count(void)"}, {"doc": "if (!streams[id].active) return; streams[id].volume = vol; } int sb16_stream_count(void) { int i, n = 0; for (i = 0; i < (int)SB16_STREAMS; i++) if (streams[i].active) n++; return n; } /* ------------------------------------------------------------------ /* Mixer: sum all active streams into mix_buf /* ------------------------------------------------------------------", "kind": "function", "line": 192, "name": "sb16_mix_all", "signature": "static void sb16_mix_all(void)"}, {"doc": "sample += (src * (int)s->volume) >> 8; if (sample > 127) sample = 127; if (sample < -128) sample = -128; mix_buf[k] = (unsigned char)(sample + 128); } s->tail = (s->tail + len) % SB16_STREAM_BUF; s->count -= len; } sb16_stat.mixes++; } /* ------------------------------------------------------------------ /* Pump: drain mixer output into DMA slots and arm the hardware. /* ------------------------------------------------------------------", "kind": "function", "line": 228, "name": "sb16_pump", "signature": "void sb16_pump(void)"}, {"doc": "DSP write-ready: bit 7 of the status port clear means the DSP accepts a command or data byte. Bounded so a dead DSP can never hang the kernel; the byte is still issued after the timeout (the DSP takes it * once it catches up after a reset).", "kind": "function", "line": 260, "name": "sb16_wait_write", "signature": "static int sb16_wait_write(void)"}, {"kind": "function", "line": 266, "name": "sb16_cmd", "signature": "static void sb16_cmd(unsigned char c)"}, {"kind": "function", "line": 271, "name": "sb16_read_data", "signature": "static int sb16_read_data(unsigned char *out)"}, {"kind": "function", "line": 283, "name": "sb16_reset_dsp", "signature": "static int sb16_reset_dsp(void)"}, {"kind": "function", "line": 296, "name": "sb16_dma_play", "signature": "static void sb16_dma_play(unsigned addr, unsigned len)"}, {"kind": "function", "line": 312, "name": "sb16_refill", "signature": "static void sb16_refill(int slot_index)"}, {"kind": "function", "line": 328, "name": "sb16_arm", "signature": "static void sb16_arm(int from_irq)"}, {"kind": "function", "line": 352, "name": "sb16_present", "signature": "int sb16_present(void)"}, {"kind": "function", "line": 354, "name": "sb16_tone", "signature": "void sb16_tone(unsigned freq)"}, {"kind": "function", "line": 369, "name": "sb16_pcm_open", "signature": "void sb16_pcm_open(void)"}, {"kind": "function", "line": 392, "name": "sb16_pcm_close", "signature": "void sb16_pcm_close(void)"}, {"kind": "function", "line": 401, "name": "sb16_pcm_submit", "signature": "int sb16_pcm_submit(const unsigned char *pcm, unsigned len)"}, {"kind": "function", "line": 418, "name": "sb16_irq", "signature": "void sb16_irq(void)"}, {"kind": "function", "line": 425, "name": "sb16_poll", "signature": "void sb16_poll(void)"}, {"kind": "function", "line": 430, "name": "sb16_ring_free", "signature": "unsigned sb16_ring_free(void)"}, {"kind": "function", "line": 432, "name": "sb16_mode_active", "signature": "int sb16_mode_active(void)"}, {"kind": "function", "line": 433, "name": "sb16_counters", "signature": "void sb16_counters(sb16_counters_t *out)"}, {"kind": "function", "line": 437, "name": "sb16_init", "signature": "int sb16_init(void)"}, {"kind": "macro", "line": 45, "name": "SB16_BASE_PORT"}, {"kind": "macro", "line": 47, "name": "SB16_DSP_RESET"}, {"kind": "macro", "line": 48, "name": "SB16_DSP_READ_DATA"}, {"kind": "macro", "line": 49, "name": "SB16_DSP_WRITE_DATA"}, {"kind": "macro", "line": 50, "name": "SB16_DSP_STATUS"}, {"kind": "macro", "line": 51, "name": "SB16_IRQ_ACK"}, {"kind": "macro", "line": 52, "name": "SB16_CMD_READ_VER"}, {"kind": "macro", "line": 54, "name": "SB16_CMD_SET_FREQ"}, {"kind": "macro", "line": 55, "name": "SB16_CMD_PLAY8"}, {"kind": "macro", "line": 56, "name": "SB16_CMD_SPK_ON"}, {"kind": "macro", "line": 57, "name": "SB16_CMD_SPK_OFF"}, {"kind": "macro", "line": 58, "name": "SB16_DSP_RDSTATUS"}, {"kind": "macro", "line": 65, "name": "DMA_MODE_PORT"}, {"kind": "macro", "line": 66, "name": "DMA_CH1_SINGLE_READ"}, {"kind": "macro", "line": 67, "name": "SB16_FREQ_LO"}, {"kind": "macro", "line": 69, "name": "SB16_FREQ_HI"}, {"kind": "macro", "line": 70, "name": "SB16_DSP_READY_MASK"}, {"kind": "macro", "line": 72, "name": "DMA_CH1_ADDR"}, {"kind": "macro", "line": 74, "name": "DMA_CH1_CNT"}, {"kind": "macro", "line": 75, "name": "DMA_CH1_PAGE"}, {"kind": "macro", "line": 76, "name": "DMA_MASK"}, {"kind": "macro", "line": 77, "name": "DMA_FF_CLR"}, {"kind": "macro", "line": 78, "name": "DMA_CH1_UNMASK"}, {"kind": "macro", "line": 79, "name": "DMA_CH1_MASK"}, {"kind": "macro", "line": 80, "name": "SB16_DMA_BUF0"}, {"kind": "macro", "line": 82, "name": "SB16_SILENCE_SLOT"}, {"kind": "macro", "line": 83, "name": "SB16_BUF"}, {"kind": "macro", "line": 84, "name": "SB16_PROBE_WAIT"}, {"kind": "macro", "line": 86, "name": "SB16_MODE_TONE"}, {"kind": "macro", "line": 88, "name": "SB16_MODE_PCM"}, {"kind": "macro", "line": 89, "name": "SB16_SQ_CYCLE"}]}, {"doc": "ifndef EDITOR_H define EDITOR_H editor.h -- the built-in line editor contract.", "id": "editor.h", "kind": "module", "label": "editor.h", "language": "h", "sha256": "eecd76d060a49a0d", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 2, "name": "EDITOR_H"}]}, {"doc": "include \"kernel.h\" include \"minifs.h\" ================================================================", "id": "fs/kfile.c", "kind": "module", "label": "kfile.c", "language": "c", "sha256": "320161f46c257010", "symbol_count": 16, "symbols": [{"kind": "function", "line": 14, "name": "kfile_stdin", "signature": "KFILE *kfile_stdin(void)"}, {"kind": "function", "line": 16, "name": "kfile_stdout", "signature": "KFILE *kfile_stdout(void)"}, {"kind": "function", "line": 17, "name": "kfile_stderr", "signature": "KFILE *kfile_stderr(void)"}, {"kind": "function", "line": 18, "name": "kfopen", "signature": "KFILE *kfopen(const char *path, const char *mode)"}, {"kind": "function", "line": 88, "name": "kfclose", "signature": "int kfclose(KFILE *f)"}, {"kind": "function", "line": 101, "name": "kfgetc", "signature": "int kfgetc(KFILE *f)"}, {"kind": "function", "line": 122, "name": "kfgets", "signature": "char *kfgets(char *buf, int size, KFILE *f)"}, {"kind": "function", "line": 136, "name": "kfungetc", "signature": "int kfungetc(int c, KFILE *f)"}, {"kind": "function", "line": 142, "name": "kfread", "signature": "unsigned long kfread(void *ptr, unsigned long size, unsigned long n, KFILE *f)"}, {"kind": "function", "line": 164, "name": "kfwrite", "signature": "unsigned long kfwrite(const void *ptr, unsigned long size, unsigned long n, KFILE *f)"}, {"kind": "function", "line": 193, "name": "kfseek", "signature": "int kfseek(KFILE *f, long offset, int whence)"}, {"kind": "function", "line": 207, "name": "kftell", "signature": "long kftell(KFILE *f)"}, {"kind": "function", "line": 211, "name": "kfflush", "signature": "int kfflush(KFILE *f)"}, {"kind": "function", "line": 234, "name": "kfputs", "signature": "int kfputs(const char *s, KFILE *f)"}, {"kind": "function", "line": 240, "name": "kfputc", "signature": "int kfputc(int c, KFILE *f)"}, {"kind": "function", "line": 245, "name": "krewind", "signature": "void krewind(KFILE *f)"}]}, {"doc": "MiniFS: minimal Unix-like filesystem for MiniOS.", "id": "fs/minifs.c", "kind": "module", "label": "minifs.c", "language": "c", "sha256": "b2d5cee537dcd825", "symbol_count": 53, "symbols": [{"doc": "#include \"block.h\" #include \"ide.h\" #include \"lz4_kernel.h\" #define DE_NAME(de) ((const char *)((de) + 1)) #define DE_NAME_W(de) ((char *)((de) + 1)) static MiniFSSuper fs_sb; static unsigned char *fs_ibitmap; static unsigned char *fs_bbitmap; static unsigned int fs_lba_start; static unsigned int fs_next_txn; static int fs_mounted; /* ---- Compression wrappers ----", "kind": "function", "line": 23, "name": "minifs_compress", "signature": "unsigned int minifs_compress(const void *src, unsigned int src_len,\n ..."}, {"kind": "function", "line": 33, "name": "minifs_decompress", "signature": "unsigned int minifs_decompress(const void *src, unsigned int src_len,\n ..."}, {"kind": "function", "line": 44, "name": "minifs_crc16", "signature": "static unsigned short minifs_crc16(const void *data, unsigned int len)"}, {"kind": "function", "line": 56, "name": "minifs_crc32", "signature": "static unsigned int minifs_crc32(const void *data, unsigned int len)"}, {"kind": "function", "line": 68, "name": "roundup4", "signature": "static unsigned int roundup4(unsigned int v)"}, {"kind": "function", "line": 70, "name": "div_round_up", "signature": "static unsigned int div_round_up(unsigned int n, unsigned int d)"}, {"doc": "crc ^= (unsigned int)p[i]; for (j = 0; j < 8; j++) crc = (crc >> 1) ^ ((crc & 1) ? 0xEDB88320 : 0); } return crc ^ 0xFFFFFFFF; } static unsigned int roundup4(unsigned int v) { return (v + 3) & ~3u; } static unsigned int div_round_up(unsigned int n, unsigned int d) { return (n + d - 1) / d; } /* ---- Superblock I/O ----", "kind": "function", "line": 76, "name": "fs_write_super", "signature": "static int fs_write_super(void)"}, {"doc": "} /* ---- Superblock I/O ---- static int fs_write_super(void) { unsigned char buf[MINIFS_BLOCK_SIZE]; kmemset(buf, 0, MINIFS_BLOCK_SIZE); fs_sb.checksum = minifs_crc16(&fs_sb, sizeof(MiniFSSuper) - 2); kmemcpy(buf, &fs_sb, sizeof(MiniFSSuper)); return block_write(0, buf); } /* ---- Inode I/O ----", "kind": "function", "line": 87, "name": "fs_read_inode", "signature": "static int fs_read_inode(unsigned int num, MiniFSInode *out)"}, {"kind": "function", "line": 96, "name": "fs_write_inode", "signature": "static int fs_write_inode(unsigned int num, const MiniFSInode *in)"}, {"doc": "kmemcpy(out, buf + offset, sizeof(MiniFSInode)); return 0; } static int fs_write_inode(unsigned int num, const MiniFSInode *in) { unsigned int block = fs_sb.inode_table_start + (num / MINIFS_INODES_PER_BLOCK); unsigned int offset = (num % MINIFS_INODES_PER_BLOCK) * sizeof(MiniFSInode); unsigned char buf[MINIFS_BLOCK_SIZE]; if (block_read(block, buf) < 0) return -1; kmemcpy(buf + offset, in, sizeof(MiniFSInode)); return block_write(block, buf); } /* ---- Bitmap helpers ----", "kind": "function", "line": 107, "name": "bm_test", "signature": "static int bm_test(unsigned char *bm, unsigned int bit)"}, {"kind": "function", "line": 111, "name": "bm_set", "signature": "static void bm_set(unsigned char *bm, unsigned int bit)"}, {"kind": "function", "line": 115, "name": "bm_clear", "signature": "static void bm_clear(unsigned char *bm, unsigned int bit)"}, {"doc": "static int bm_test(unsigned char *bm, unsigned int bit) { return (bm[bit / 8] >> (bit % 8)) & 1; } static void bm_set(unsigned char *bm, unsigned int bit) { bm[bit / 8] |= (unsigned char)(1u << (bit % 8)); } static void bm_clear(unsigned char *bm, unsigned int bit) { bm[bit / 8] &= (unsigned char)~(1u << (bit % 8)); } /* ---- Block allocator ----", "kind": "function", "line": 121, "name": "minifs_alloc_block", "signature": "int minifs_alloc_block(void)"}, {"kind": "function", "line": 138, "name": "minifs_free_block", "signature": "void minifs_free_block(unsigned int block)"}, {"doc": "fs_sb.first_free_hint = (idx + 1) % total; return (int)idx; } } return -1; } void minifs_free_block(unsigned int block) { if (block >= fs_sb.total_blocks) return; bm_clear(fs_bbitmap, block); fs_sb.free_blocks++; } /* ---- Inode allocator ----", "kind": "function", "line": 146, "name": "minifs_alloc_inode", "signature": "int minifs_alloc_inode(void)"}, {"kind": "function", "line": 158, "name": "minifs_free_inode", "signature": "void minifs_free_inode(int num)"}, {"doc": "fs_sb.free_inodes--; return (int)i; } } return -1; } void minifs_free_inode(int num) { if (num < 0 || (unsigned int)num >= fs_sb.total_inodes) return; bm_clear(fs_ibitmap, (unsigned int)num); fs_sb.free_inodes++; } /* ---- Inode block mapping ----", "kind": "function", "line": 166, "name": "minifs_inode_get_block", "signature": "int minifs_inode_get_block(MiniFSInode *inode, unsigned int logblk,\n un..."}, {"kind": "function", "line": 189, "name": "fs_inode_set_block", "signature": "static int fs_inode_set_block(MiniFSInode *inode, unsigned int logblk,\n ..."}, {"kind": "function", "line": 235, "name": "minifs_inode_alloc_block", "signature": "int minifs_inode_alloc_block(MiniFSInode *inode, unsigned int logblk)"}, {"kind": "function", "line": 249, "name": "fs_inode_free_all_blocks", "signature": "static void fs_inode_free_all_blocks(MiniFSInode *inode)"}, {"kind": "function", "line": 319, "name": "journal_load_super", "signature": "static void journal_load_super(void)"}, {"kind": "function", "line": 335, "name": "journal_save_super", "signature": "static void journal_save_super(unsigned int state)"}, {"kind": "function", "line": 346, "name": "journal_save_entries", "signature": "static void journal_save_entries(void)"}, {"kind": "function", "line": 361, "name": "minifs_journal_begin", "signature": "void minifs_journal_begin(unsigned int txn_id)"}, {"kind": "function", "line": 368, "name": "minifs_journal_add_block", "signature": "void minifs_journal_add_block(unsigned int block)"}, {"kind": "function", "line": 393, "name": "minifs_journal_commit", "signature": "int minifs_journal_commit(unsigned int txn_id)"}, {"kind": "function", "line": 411, "name": "minifs_journal_recover", "signature": "void minifs_journal_recover(void)"}, {"doc": "kmemcpy(&e, ebuf + slot * sizeof(MiniFSJournalEntry), sizeof(MiniFSJournalEntry)); /* Restore the original block content unsigned char orig[MINIFS_BLOCK_SIZE]; block_read(data_base + i, orig); block_write(e.affected_blocks[0], orig); } journal_save_super(MINIFS_JSTATE_CLEAN); journal_load_super(); kprintf(\"minifs: journal recovery complete\\n\"); } /* ---- Path resolution ----", "kind": "function", "line": 451, "name": "fs_namecmp", "signature": "static int fs_namecmp(const char *a, unsigned char alen, const char *b)"}, {"kind": "function", "line": 460, "name": "minifs_dir_lookup", "signature": "int minifs_dir_lookup(int dir_ino, const char *name)"}, {"kind": "function", "line": 484, "name": "minifs_dir_add_entry", "signature": "int minifs_dir_add_entry(int dir_ino, const char *name, int child_ino,\n u..."}, {"kind": "function", "line": 598, "name": "minifs_dir_remove_entry", "signature": "int minifs_dir_remove_entry(int dir_ino, const char *name)"}, {"kind": "function", "line": 623, "name": "minifs_dir_read", "signature": "int minifs_dir_read(int dir_ino, int index, MiniFSDirEntry *out, char *name_out)"}, {"doc": "kmemcpy(out, de, sizeof(MiniFSDirEntry)); kmemcpy(name_out, DE_NAME(de), de->name_len); name_out[de->name_len] = 0; return 0; } count++; } off += de->rec_len; } } return -1; } /* ---- Resolve a path to an inode number ----", "kind": "function", "line": 657, "name": "minifs_resolve_path", "signature": "int minifs_resolve_path(const char *path)"}, {"doc": "if (*p) p++; continue; } if (len > MINIFS_MAX_FILENAME) return -1; kmemcpy(namebuf, start, len); namebuf[len] = 0; ino = minifs_dir_lookup(ino, namebuf); if (ino < 0) return -1; if (*p) p++; } return ino; } /* ---- File operations ----", "kind": "function", "line": 690, "name": "minifs_create", "signature": "int minifs_create(const char *path, unsigned short mode)"}, {"kind": "function", "line": 742, "name": "minifs_mkdir", "signature": "int minifs_mkdir(const char *path, unsigned short mode)"}, {"kind": "function", "line": 792, "name": "minifs_unlink", "signature": "int minifs_unlink(const char *path)"}, {"kind": "function", "line": 828, "name": "minifs_rmdir", "signature": "int minifs_rmdir(const char *path)"}, {"kind": "function", "line": 865, "name": "minifs_read", "signature": "int minifs_read(int inode_num, void *buf, unsigned int offset, unsigned int len)"}, {"kind": "function", "line": 929, "name": "minifs_write", "signature": "int minifs_write(int inode_num, const void *buf, unsigned int offset,\n unsigned i..."}, {"kind": "function", "line": 1012, "name": "minifs_truncate", "signature": "int minifs_truncate(int inode_num, unsigned int new_size)"}, {"kind": "function", "line": 1028, "name": "minifs_stat", "signature": "int minifs_stat(int inode_num, MiniFSInode *out)"}, {"kind": "function", "line": 1032, "name": "minifs_access", "signature": "int minifs_access(const char *path)"}, {"doc": "inode.size = new_size; inode.checksum = minifs_crc32(&inode, sizeof(MiniFSInode) - 4); return fs_write_inode((unsigned int)inode_num, &inode); } int minifs_stat(int inode_num, MiniFSInode *out) { return fs_read_inode((unsigned int)inode_num, out); } int minifs_access(const char *path) { return minifs_resolve_path(path) >= 0 ? 0 : -1; } /* ---- Init / mount / mkfs ----", "kind": "function", "line": 1038, "name": "minifs_init", "signature": "void minifs_init(void)"}, {"kind": "function", "line": 1046, "name": "minifs_get_lba_start", "signature": "unsigned int minifs_get_lba_start(void)"}, {"kind": "function", "line": 1048, "name": "minifs_is_mounted", "signature": "int minifs_is_mounted(void)"}, {"kind": "function", "line": 1049, "name": "minifs_mount", "signature": "int minifs_mount(void)"}, {"kind": "function", "line": 1123, "name": "minifs_mkfs", "signature": "int minifs_mkfs(unsigned int total_blocks)"}, {"kind": "function", "line": 1194, "name": "minifs_sync", "signature": "int minifs_sync(void)"}, {"kind": "function", "line": 1209, "name": "minifs_file_open", "signature": "MiniFSFile *minifs_file_open(int inode_num, int flags)"}, {"kind": "function", "line": 1223, "name": "minifs_file_close", "signature": "int minifs_file_close(MiniFSFile *f)"}, {"kind": "function", "line": 1230, "name": "minifs_get_total_blocks", "signature": "unsigned int minifs_get_total_blocks(void)"}, {"kind": "macro", "line": 12, "name": "DE_NAME"}, {"kind": "macro", "line": 13, "name": "DE_NAME_W"}]}, {"doc": "include \"kernel.h\" ================================================================", "id": "fs/ramdisk.c", "kind": "module", "label": "ramdisk.c", "language": "c", "sha256": "d170a149f70d819a", "symbol_count": 18, "symbols": [{"kind": "function", "line": 24, "name": "ramdisk_reserve", "signature": "static int ramdisk_reserve(unsigned long want)"}, {"kind": "function", "line": 42, "name": "ramdisk_setup_from", "signature": "void ramdisk_setup_from(void *data, unsigned size)"}, {"kind": "function", "line": 94, "name": "ramdisk_init", "signature": "void ramdisk_init(void)"}, {"kind": "function", "line": 111, "name": "ramdisk_open", "signature": "RDFile *ramdisk_open(const char *name)"}, {"kind": "function", "line": 121, "name": "ramdisk_read", "signature": "int ramdisk_read(RDFile *f, void *buf, unsigned offset, unsigned len)"}, {"kind": "function", "line": 129, "name": "ramdisk_write", "signature": "int ramdisk_write(RDFile *f, const void *buf, unsigned offset, unsigned len)"}, {"kind": "function", "line": 137, "name": "ramdisk_create", "signature": "RDFile *ramdisk_create(const char *name, unsigned size)"}, {"kind": "function", "line": 151, "name": "ramdisk_resize", "signature": "int ramdisk_resize(RDFile *f, unsigned newsize)"}, {"kind": "function", "line": 188, "name": "ramdisk_list", "signature": "int ramdisk_list(RDFile **out, int max)"}, {"kind": "function", "line": 196, "name": "ramdisk_count", "signature": "int ramdisk_count(void)"}, {"kind": "function", "line": 201, "name": "ramdisk_file_name", "signature": "const char *ramdisk_file_name(int idx)"}, {"kind": "function", "line": 206, "name": "ramdisk_delete", "signature": "int ramdisk_delete(RDFile *f)"}, {"kind": "macro", "line": 6, "name": "RD_MAGIC"}, {"kind": "macro", "line": 8, "name": "RD_HEADER_SIZE"}, {"kind": "macro", "line": 9, "name": "RD_ENTRY_SIZE"}, {"kind": "macro", "line": 10, "name": "RD_DATA_MIN"}, {"kind": "macro", "line": 11, "name": "RD_DATA_SPARE"}, {"kind": "macro", "line": 12, "name": "RD_DATA_MAX"}]}, {"doc": "include \"kernel.h\" include \"minifs.h\" ================================================================", "id": "fs/vfs.c", "kind": "module", "label": "vfs.c", "language": "c", "sha256": "18c251914851b30f", "symbol_count": 23, "symbols": [{"kind": "function", "line": 19, "name": "vfs_init", "signature": "void vfs_init(void)"}, {"kind": "function", "line": 24, "name": "vfs_register", "signature": "int vfs_register(const char *prefix, const vfs_ops_t *ops)"}, {"kind": "function", "line": 40, "name": "vfs_unregister", "signature": "int vfs_unregister(const char *prefix)"}, {"kind": "function", "line": 52, "name": "vfs_open", "signature": "int vfs_open(const char *path, int mode, vfs_file_t *f)"}, {"kind": "function", "line": 85, "name": "ramdisk_vfs_open", "signature": "static int ramdisk_vfs_open(const char *path, int mode, void **handle)"}, {"kind": "function", "line": 110, "name": "ramdisk_vfs_read", "signature": "static int ramdisk_vfs_read(void *handle, void *buf, unsigned long pos, unsigned long len)"}, {"kind": "function", "line": 119, "name": "ramdisk_vfs_write", "signature": "static int ramdisk_vfs_write(void *handle, const void *buf, unsigned long pos, unsigned long len)"}, {"kind": "function", "line": 127, "name": "ramdisk_vfs_close", "signature": "static int ramdisk_vfs_close(void *handle)"}, {"kind": "function", "line": 133, "name": "ramdisk_vfs_fstat", "signature": "static int ramdisk_vfs_fstat(void *handle, unsigned long *size_out)"}, {"kind": "function", "line": 140, "name": "ramdisk_vfs_truncate", "signature": "static int ramdisk_vfs_truncate(void *handle, unsigned long size)"}, {"kind": "function", "line": 164, "name": "minifs_vfs_open", "signature": "static int minifs_vfs_open(const char *path, int mode, void **handle)"}, {"kind": "function", "line": 192, "name": "minifs_vfs_read", "signature": "static int minifs_vfs_read(void *handle, void *buf, unsigned long pos, unsigned long len)"}, {"kind": "function", "line": 201, "name": "minifs_vfs_write", "signature": "static int minifs_vfs_write(void *handle, const void *buf, unsigned long pos, unsigned long len)"}, {"kind": "function", "line": 209, "name": "minifs_vfs_close", "signature": "static int minifs_vfs_close(void *handle)"}, {"kind": "function", "line": 215, "name": "minifs_vfs_fstat", "signature": "static int minifs_vfs_fstat(void *handle, unsigned long *size_out)"}, {"kind": "function", "line": 222, "name": "minifs_vfs_truncate", "signature": "static int minifs_vfs_truncate(void *handle, unsigned long size)"}, {"kind": "function", "line": 243, "name": "fs_resolve", "signature": "int fs_resolve(const char *path, char *out, unsigned cap)"}, {"kind": "function", "line": 276, "name": "fs_dir_exists", "signature": "int fs_dir_exists(const char *dir)"}, {"kind": "function", "line": 301, "name": "fs_is_dir", "signature": "int fs_is_dir(const char *resolved)"}, {"kind": "function", "line": 314, "name": "minifs_mkdir_p", "signature": "int minifs_mkdir_p(const char *resolved)"}, {"kind": "function", "line": 337, "name": "vfs_register_builtins", "signature": "void vfs_register_builtins(void)"}, {"kind": "macro", "line": 7, "name": "VFS_MAX_MOUNTS"}, {"kind": "macro", "line": 9, "name": "VFS_PREFIX_LEN"}]}, {"doc": "zip.c — the unzip/zip shell builtins over the miniz zip library.", "id": "fs/zip.c", "kind": "module", "label": "zip.c", "language": "c", "sha256": "9336da717bf4f92d", "symbol_count": 7, "symbols": [{"doc": "Read a whole file (ramdisk first, MiniFS fallback) into a fresh kernel buffer, growing until the read stops making progress. The buffer is bounded by the file size, so a hostile file cannot drive an oversized * allocation. Returns 0 on failure.", "kind": "function", "line": 25, "name": "zip_read_whole", "signature": "static unsigned char *zip_read_whole(const char *path, unsigned long *size)"}, {"kind": "function", "line": 50, "name": "marker", "signature": "* marker (trailing '/') is preserved by the caller, not here. */\nstatic int zip_sanitize_name(con..."}, {"doc": "Build the combined extraction path: destdir (already resolved, may be \"\") joined with the sanitized entry name. Returns 1 and fills `out` when the * path fits.", "kind": "function", "line": 79, "name": "zip_build_path", "signature": "static int zip_build_path(const char *destdir, const char *name, char *out)"}, {"doc": "Create every directory component of `dir` (a resolved, slash-separated name with no trailing '/'), including `dir` itself, as ramdisk directory * markers. Returns 1 on success; the root (empty) always succeeds.", "kind": "function", "line": 95, "name": "zip_ensure_dir_tree", "signature": "static int zip_ensure_dir_tree(const char *dir)"}, {"doc": "Extract one archive entry under destdir. Junk entries (empty or '.'-only * names) are skipped and count as success. Returns 1 on success.", "kind": "function", "line": 117, "name": "zip_do_entry", "signature": "static int zip_do_entry(mz_zip_archive *zip, mz_uint idx, const char *destdir)"}, {"doc": "if (!data) return 0; if (n != usize) { mz_free(data); return 0; } f = kfopen(resolved, \"w\"); if (!f) { mz_free(data); return 0; } rc = (kfwrite(data, 1, usize, f) == usize) ? 0 : -1; if (kfclose(f) != 0) rc = -1; mz_free(data); if (rc != 0) return 0; kprintf(\" %-24s %lu bytes\\n\", resolved, usize); } return 1; } /* unzip [dir] — extract; unzip -l — list.", "kind": "function", "line": 176, "name": "shell_cmd_unzip", "signature": "void shell_cmd_unzip(int argc, char **argv)"}, {"doc": "zip — store each file (under its sanitized name) into * a new archive.", "kind": "function", "line": 254, "name": "shell_cmd_zip", "signature": "void shell_cmd_zip(int argc, char **argv)"}]}, {"id": "gen_minifs.py", "kind": "module", "label": "gen_minifs.py", "language": "py", "sha256": "e7d4cac4d07804fb", "symbol_count": 0, "symbols": []}, {"doc": "ifndef IDE_H define IDE_H IDE/ATA PIO driver for MiniOS.", "id": "ide.h", "kind": "module", "label": "ide.h", "language": "h", "sha256": "2f4c64dd2da4cd2f", "symbol_count": 27, "symbols": [{"kind": "macro", "line": 2, "name": "IDE_H"}, {"kind": "macro", "line": 9, "name": "IDE_PRIMARY_BASE"}, {"kind": "macro", "line": 10, "name": "IDE_PRIMARY_CTRL"}, {"kind": "macro", "line": 13, "name": "IDE_REG_DATA"}, {"kind": "macro", "line": 14, "name": "IDE_REG_ERROR"}, {"kind": "macro", "line": 15, "name": "IDE_REG_SECCOUNT"}, {"kind": "macro", "line": 16, "name": "IDE_REG_LBA_LO"}, {"kind": "macro", "line": 17, "name": "IDE_REG_LBA_MID"}, {"kind": "macro", "line": 18, "name": "IDE_REG_LBA_HI"}, {"kind": "macro", "line": 19, "name": "IDE_REG_DRIVE"}, {"kind": "macro", "line": 20, "name": "IDE_REG_STATUS"}, {"kind": "macro", "line": 21, "name": "IDE_REG_ALTSTATUS"}, {"kind": "macro", "line": 24, "name": "IDE_STATUS_ERR"}, {"kind": "macro", "line": 25, "name": "IDE_STATUS_DRQ"}, {"kind": "macro", "line": 26, "name": "IDE_STATUS_SRV"}, {"kind": "macro", "line": 27, "name": "IDE_STATUS_DF"}, {"kind": "macro", "line": 28, "name": "IDE_STATUS_RDY"}, {"kind": "macro", "line": 29, "name": "IDE_STATUS_BSY"}, {"kind": "macro", "line": 32, "name": "IDE_CMD_READ"}, {"kind": "macro", "line": 33, "name": "IDE_CMD_WRITE"}, {"kind": "macro", "line": 34, "name": "IDE_CMD_IDENTIFY"}, {"kind": "macro", "line": 35, "name": "IDE_CMD_FLUSH"}, {"kind": "macro", "line": 38, "name": "IDE_DRIVE_LBA"}, {"kind": "macro", "line": 39, "name": "IDE_DRIVE_MASTER"}, {"kind": "macro", "line": 40, "name": "IDE_DRIVE_SLAVE"}, {"kind": "macro", "line": 43, "name": "IDE_TIMEOUT"}, {"kind": "macro", "line": 46, "name": "IDE_SECTOR_SIZE"}]}, {"id": "install.sh", "kind": "module", "label": "install.sh", "language": "sh", "sha256": "c907d80fd6734993", "symbol_count": 0, "symbols": []}, {"id": "kernel/cvm_host.c", "kind": "module", "label": "cvm_host.c", "language": "c", "sha256": "9a977752f469836d", "symbol_count": 45, "symbols": [{"kind": "function", "line": 21, "name": "n_strcmp", "signature": "static int64_t n_strcmp(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 27, "name": "n_strncmp", "signature": "static int64_t n_strncmp(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 34, "name": "n_strcpy", "signature": "static int64_t n_strcpy(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 40, "name": "n_strncpy", "signature": "static int64_t n_strncpy(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 47, "name": "n_memcpy", "signature": "static int64_t n_memcpy(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 54, "name": "n_memset", "signature": "static int64_t n_memset(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 60, "name": "n_memmove", "signature": "static int64_t n_memmove(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 67, "name": "n_memcmp", "signature": "static int64_t n_memcmp(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 74, "name": "n_strchr", "signature": "static int64_t n_strchr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 80, "name": "n_strstr", "signature": "static int64_t n_strstr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 87, "name": "n_malloc", "signature": "static int64_t n_malloc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 92, "name": "n_free", "signature": "static int64_t n_free(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 97, "name": "n_calloc", "signature": "static int64_t n_calloc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 105, "name": "n_realloc", "signature": "static int64_t n_realloc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 113, "name": "n_exit", "signature": "static int64_t n_exit(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 120, "name": "n_fopen", "signature": "static int64_t n_fopen(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 127, "name": "n_fclose", "signature": "static int64_t n_fclose(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 133, "name": "n_fread", "signature": "static int64_t n_fread(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 140, "name": "n_fwrite", "signature": "static int64_t n_fwrite(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 147, "name": "n_fseek", "signature": "static int64_t n_fseek(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 153, "name": "n_ftell", "signature": "static int64_t n_ftell(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 159, "name": "n_rewind", "signature": "static int64_t n_rewind(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 166, "name": "n_fputs", "signature": "static int64_t n_fputs(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 172, "name": "n_fputc", "signature": "static int64_t n_fputc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 178, "name": "n_fgetc", "signature": "static int64_t n_fgetc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 184, "name": "n_ungetc", "signature": "static int64_t n_ungetc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 190, "name": "n_fflush", "signature": "static int64_t n_fflush(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 196, "name": "n_putchar", "signature": "static int64_t n_putchar(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 203, "name": "n_write", "signature": "static int64_t n_write(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 212, "name": "n_read", "signature": "static int64_t n_read(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 227, "name": "n_puts", "signature": "static int64_t n_puts(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 235, "name": "n_atol", "signature": "static int64_t n_atol(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 248, "name": "n_strtol", "signature": "static int64_t n_strtol(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 261, "name": "n_stderr_addr", "signature": "static int64_t n_stderr_addr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 266, "name": "n_stdout_addr", "signature": "static int64_t n_stdout_addr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 271, "name": "n_stdin_addr", "signature": "static int64_t n_stdin_addr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 276, "name": "kout_char", "signature": "static void kout_char(void *ctx, char c)"}, {"kind": "function", "line": 282, "name": "kout_uint", "signature": "static void kout_uint(void *ctx, unsigned long long v, int base, int upper)"}, {"kind": "function", "line": 295, "name": "kformat", "signature": "static void kformat(void *ctx, const char *fmt, uint64_t *argv, int argc)"}, {"kind": "function", "line": 361, "name": "n_fprintf", "signature": "static int64_t n_fprintf(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 368, "name": "n_printf", "signature": "static int64_t n_printf(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 375, "name": "n_sprintf", "signature": "static int64_t n_sprintf(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 383, "name": "n_snprintf", "signature": "static int64_t n_snprintf(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 391, "name": "register_host_natives", "signature": "static void register_host_natives(CvmState *vm)"}, {"kind": "function", "line": 436, "name": "cvm_main", "signature": "int cvm_main(int argc, char **argv)"}]}, {"doc": "include \"kernel.h\" include \"shell.h\" include \"editor.h\" ================================================================", "id": "kernel/editor.c", "kind": "module", "label": "editor.c", "language": "c", "sha256": "84098e8001a0a4a5", "symbol_count": 20, "symbols": [{"kind": "function", "line": 37, "name": "edit_alloc", "signature": "static EditBuf *edit_alloc(const char *fname)"}, {"kind": "function", "line": 54, "name": "edit_free", "signature": "static void edit_free(EditBuf *e)"}, {"kind": "function", "line": 60, "name": "edit_load", "signature": "static int edit_load(EditBuf *e)"}, {"kind": "function", "line": 96, "name": "edit_save", "signature": "static int edit_save(EditBuf *e)"}, {"kind": "function", "line": 110, "name": "edit_print", "signature": "static void edit_print(EditBuf *e, int idx)"}, {"doc": "List a (possibly empty) range [start, end], both 1-based inclusive. A * single argument lists from that line; no argument lists everything.", "kind": "function", "line": 121, "name": "edit_list", "signature": "static void edit_list(EditBuf *e, int start, int end)"}, {"kind": "function", "line": 132, "name": "edit_set_line", "signature": "static int edit_set_line(EditBuf *e, int idx, const char *text)"}, {"kind": "function", "line": 141, "name": "edit_insert", "signature": "static int edit_insert(EditBuf *e, int idx, const char *text)"}, {"kind": "function", "line": 151, "name": "edit_delete", "signature": "static int edit_delete(EditBuf *e, int idx)"}, {"doc": "Copy a line into a NUL-terminated scratch buffer (lines are otherwise * stored length-prefixed without a terminator).", "kind": "function", "line": 164, "name": "edit_line_cstr", "signature": "static void edit_line_cstr(EditLine *l, char *out)"}, {"kind": "function", "line": 168, "name": "edit_search", "signature": "static void edit_search(EditBuf *e, const char *needle)"}, {"kind": "function", "line": 185, "name": "edit_status", "signature": "static void edit_status(EditBuf *e)"}, {"kind": "function", "line": 193, "name": "edit_usage", "signature": "static void edit_usage(void)"}, {"doc": "A buffer that did not hold the whole file must never be written back: * saving it would drop the part that was never loaded.", "kind": "function", "line": 205, "name": "edit_refuse_save", "signature": "static int edit_refuse_save(EditBuf *e)"}, {"kind": "function", "line": 210, "name": "edit_arg_line", "signature": "static int edit_arg_line(int argc, char **argv, EditBuf *e, int *out)"}, {"kind": "function", "line": 218, "name": "edit_loop", "signature": "static void edit_loop(EditBuf *e)"}, {"kind": "function", "line": 306, "name": "shell_cmd_edit", "signature": "void shell_cmd_edit(int argc, char **argv)"}, {"kind": "macro", "line": 19, "name": "EDIT_MAX_LINES"}, {"kind": "macro", "line": 21, "name": "EDIT_LINE_MAX"}, {"kind": "macro", "line": 22, "name": "EDIT_FILE_MAX"}]}, {"doc": "exec.c - Process execution: setjmp/longjmp, k_exec_user, k_run_rel, kexit.", "id": "kernel/exec.c", "kind": "module", "label": "exec.c", "language": "c", "sha256": "53fa65a972005559", "symbol_count": 8, "symbols": [{"kind": "function", "line": 59, "name": "vga_mode_set", "signature": "void vga_mode_set(int on)"}, {"kind": "function", "line": 61, "name": "vga_mode_is_active", "signature": "int vga_mode_is_active(void)"}, {"kind": "function", "line": 62, "name": "vga_gfx_ran_set", "signature": "void vga_gfx_ran_set(int on)"}, {"doc": "VGA mode tracking: set/cleared by k_exec_user and k_run_rel when a * graphics program owns the display. static int vga_mode13h; static int graphics_program_ran; void vga_mode_set(int on) { vga_mode13h = on; } int vga_mode_is_active(void) { return vga_mode13h; } void vga_gfx_ran_set(int on) { graphics_program_ran = on; } /* Called from the ISR exception handler when a ring-3 user program faults.", "kind": "function", "line": 65, "name": "k_user_fault_return", "signature": "void k_user_fault_return(void)"}, {"doc": "__asm__ volatile( \"mov %[kdata], %%ax\\n\" \"mov %%ax, %%ds\\n\" \"mov %%ax, %%es\\n\" \"mov %%ax, %%fs\\n\" \"mov %%ax, %%gs\\n\" :: [kdata] \"i\"(GDT64_DATA_SEL) : \"ax\", \"memory\"); wrmsr(MSR_FSBASE, 0); wrmsr(MSR_GSBASE, (unsigned long)&cpus[0]); klongjmp(&exec_return, 1); } /* ---- Build the SysV initial stack and jump to the ELF entry -------------", "kind": "function", "line": 81, "name": "setup_user_stack", "signature": "unsigned long *setup_user_stack(char *sbase, unsigned long ssize,\n ..."}, {"kind": "function", "line": 116, "name": "k_exec_user", "signature": "int k_exec_user(void *entry, int argc, char **argv)"}, {"kind": "function", "line": 209, "name": "k_run_rel", "signature": "int k_run_rel(prog_entry_t entry, int argc, char **argv)"}, {"kind": "function", "line": 241, "name": "kexit", "signature": "void kexit(int code)"}]}, {"doc": "klog.c - Structured kernel logging with levels and subsystems.", "id": "kernel/klog.c", "kind": "module", "label": "klog.c", "language": "c", "sha256": "d71eb7f73825b698", "symbol_count": 6, "symbols": [{"kind": "function", "line": 28, "name": "klog_set_level", "signature": "void klog_set_level(log_level_t level)"}, {"kind": "function", "line": 32, "name": "klog_set_subsys_level", "signature": "void klog_set_subsys_level(log_subsystem_t subsys, log_level_t level)"}, {"kind": "function", "line": 37, "name": "klog_disable", "signature": "void klog_disable(void)"}, {"kind": "function", "line": 39, "name": "klog_enable", "signature": "void klog_enable(void)"}, {"kind": "function", "line": 40, "name": "klog", "signature": "void klog(log_level_t level, log_subsystem_t subsys,\n const char *fmt, ...)"}, {"kind": "function", "line": 118, "name": "klog_hexdump", "signature": "void klog_hexdump(log_level_t level, log_subsystem_t subsys,\n const void *data, ..."}]}, {"doc": "include \"kernel.h\" include \"vga_fb.h\" ================================================================", "id": "kernel/loader.c", "kind": "module", "label": "loader.c", "language": "c", "sha256": "51c5f88a030a5a7b", "symbol_count": 30, "symbols": [{"kind": "struct", "line": 83, "name": "exec_range"}, {"doc": "#define PF_X 1 #define ELF_MAX_SEGMENTS 64 #define ELF_NAME_MAX 64 struct exec_range { unsigned long start, end; }; /* ---- Globals shared with kernel.c (syscall dispatcher, brk/mmap) ---- unsigned long g_brk; /* current program break unsigned long g_brk_limit; /* upper bound for brk growth unsigned long user_mmap_cur; /* anonymous mmap cursor, grows down /* ---- ELF helper functions ----", "kind": "function", "line": 92, "name": "elf_name_copy", "signature": "static void elf_name_copy(char *out, unsigned out_cap, const char *tab,\n ..."}, {"kind": "function", "line": 106, "name": "elf_load_fail", "signature": "static void elf_load_fail(void *base, void **sec_addrs, const char *why)"}, {"doc": "if (out[i] == '\\0') break; i++; } } out[i] = '\\0'; } static void elf_load_fail(void *base, void **sec_addrs, const char *why) { if (why) kprintf(\"load: %s\\n\", why); if (sec_addrs) kfree(sec_addrs); if (base) kfree(base); } /* ---- ET_REL loader (ring-0 toolchain objects) ----", "kind": "function", "line": 114, "name": "elf_load", "signature": "void *elf_load(void *data, unsigned size)"}, {"doc": "char sn[ELF_NAME_MAX]; elf_name_copy(sn, sizeof(sn), strtab, strtab_size, symtab[k].st_name); int alloc = (symtab[k].st_shndx < shnum && sec_addrs[symtab[k].st_shndx]) ? 1 : 0; kprintf(\" [%u] '%s' sec=%u val=%lu alloc=%d\\n\", k, sn, symtab[k].st_shndx, symtab[k].st_value, alloc); } elf_load_fail(base, sec_addrs, \"no valid entry point\"); return 0; } kfree(sec_addrs); return entry; } /* ---- ET_EXEC / ET_DYN loader (Linux ring-3 binaries) ----", "kind": "function", "line": 348, "name": "apply_exec_relocs", "signature": "static void apply_exec_relocs(void *data, unsigned size, unsigned long base,\n ..."}, {"kind": "function", "line": 431, "name": "load_exec_elf", "signature": "void *load_exec_elf(void *data, unsigned size)"}, {"kind": "macro", "line": 53, "name": "ELF64_R_SYM"}, {"kind": "macro", "line": 55, "name": "ELF64_R_TYPE"}, {"kind": "macro", "line": 56, "name": "SHN_UNDEF"}, {"kind": "macro", "line": 57, "name": "SHT_SYMTAB"}, {"kind": "macro", "line": 59, "name": "SHT_STRTAB"}, {"kind": "macro", "line": 60, "name": "SHT_RELA"}, {"kind": "macro", "line": 61, "name": "SHT_PROGBITS"}, {"kind": "macro", "line": 62, "name": "SHT_NOBITS"}, {"kind": "macro", "line": 63, "name": "SHF_ALLOC"}, {"kind": "macro", "line": 64, "name": "SHF_EXECINSTR"}, {"kind": "macro", "line": 65, "name": "EM_X86_64"}, {"kind": "macro", "line": 67, "name": "PT_LOAD"}, {"kind": "macro", "line": 68, "name": "R_X86_64_64"}, {"kind": "macro", "line": 70, "name": "R_X86_64_PC32"}, {"kind": "macro", "line": 71, "name": "R_X86_64_PLT32"}, {"kind": "macro", "line": 72, "name": "R_X86_64_GLOB_DAT"}, {"kind": "macro", "line": 73, "name": "R_X86_64_JUMP_SLOT"}, {"kind": "macro", "line": 74, "name": "R_X86_64_RELATIVE"}, {"kind": "macro", "line": 75, "name": "R_X86_64_32"}, {"kind": "macro", "line": 76, "name": "R_X86_64_32S"}, {"kind": "macro", "line": 77, "name": "R_X86_64_IRELATIVE"}, {"kind": "macro", "line": 78, "name": "PF_X"}, {"kind": "macro", "line": 80, "name": "ELF_MAX_SEGMENTS"}, {"kind": "macro", "line": 81, "name": "ELF_NAME_MAX"}]}, {"doc": "include \"kernel.h\" include \"lz4_kernel.h\" define HASH_BITS 12 define HASH_SIZE (1 << HASH_BITS)", "id": "kernel/lz4_kernel.c", "kind": "module", "label": "lz4_kernel.c", "language": "c", "sha256": "aac68687285f592f", "symbol_count": 9, "symbols": [{"doc": "define HASH_BITS 12 define HASH_SIZE (1 << HASH_BITS)", "kind": "function", "line": 6, "name": "LZ4_read32", "signature": "static inline unsigned int LZ4_read32(const unsigned char *p)"}, {"kind": "function", "line": 13, "name": "LZ4_read16", "signature": "static inline unsigned int LZ4_read16(const unsigned char *p)"}, {"kind": "function", "line": 20, "name": "LZ4_write16", "signature": "static inline void LZ4_write16(unsigned char *dst, unsigned short v)"}, {"kind": "function", "line": 25, "name": "LZ4_hash", "signature": "static unsigned int LZ4_hash(const unsigned char *p)"}, {"kind": "function", "line": 32, "name": "LZ4_compressBound", "signature": "int LZ4_compressBound(int inputSize)"}, {"kind": "function", "line": 39, "name": "LZ4_compress_default", "signature": "int LZ4_compress_default(const char *src, char *dst, int srcSize, int dstCapacity)"}, {"kind": "function", "line": 163, "name": "LZ4_decompress_safe", "signature": "int LZ4_decompress_safe(const char *src, char *dst, int compressedSize, int dstCapacity)"}, {"kind": "macro", "line": 3, "name": "HASH_BITS"}, {"kind": "macro", "line": 5, "name": "HASH_SIZE"}]}, {"doc": "paging.c - Page table management for the user window and per-process KPTI.", "id": "kernel/mm/paging.c", "kind": "module", "label": "paging.c", "language": "c", "sha256": "7d9f2f5ed55afb3a", "symbol_count": 8, "symbols": [{"doc": "mm_setup_protections - boot-time user-window NX + framebuffer/backbuffer mapping mm_user_pte_update - set/clear NX on a single 4 KB page mm_user_set_exec - mark ELF segment pages as executable pt_page_alloc/free - page-aligned allocator for page-table pages pt_clone_user - build per-process PML4 (KPTI) pt_free_user - release per-process page-table pages #include \"kernel.h\" #include \"bootdefs.h\" #include \"vga_fb.h\" #include \"arch/x86/msr.h\" /* ---- Page table helpers (from kernel.c, now shared via bootdefs.h) ----", "kind": "function", "line": 18, "name": "mm_setup_protections", "signature": "void mm_setup_protections(void)"}, {"kind": "function", "line": 100, "name": "mm_user_pte_update", "signature": "void mm_user_pte_update(unsigned long vaddr, int exec, unsigned long cr3)"}, {"kind": "function", "line": 121, "name": "mm_user_set_exec", "signature": "void mm_user_set_exec(unsigned long start, unsigned long end, unsigned long cr3)"}, {"doc": "define PT_ALLOC_HDR sizeof(void *)", "kind": "function", "line": 133, "name": "pt_page_alloc", "signature": "void *pt_page_alloc(void)"}, {"kind": "function", "line": 143, "name": "pt_page_free", "signature": "void pt_page_free(void *ptr)"}, {"kind": "function", "line": 149, "name": "pt_clone_user", "signature": "uint64_t pt_clone_user(uint64_t parent_cr3)"}, {"kind": "function", "line": 227, "name": "pt_free_user", "signature": "void pt_free_user(uint64_t cr3)"}, {"kind": "macro", "line": 131, "name": "PT_ALLOC_HDR"}]}, {"doc": "swap.c - Swap-out/swap-in for the user window (LZ4-compressed disk swap).", "id": "kernel/mm/swap.c", "kind": "module", "label": "swap.c", "language": "c", "sha256": "be3163e0ef374127", "symbol_count": 8, "symbols": [{"kind": "function", "line": 23, "name": "swap_lba", "signature": "static unsigned long swap_lba(void)"}, {"kind": "function", "line": 29, "name": "swap_out", "signature": "int swap_out(unsigned long window_sz)"}, {"kind": "function", "line": 78, "name": "swap_in", "signature": "int swap_in(void)"}, {"kind": "macro", "line": 14, "name": "SWAP_CHUNK_RAW"}, {"kind": "macro", "line": 16, "name": "SWAP_CHUNK_SECTORS"}, {"kind": "macro", "line": 17, "name": "SWAP_HDR_SECTORS"}, {"kind": "macro", "line": 18, "name": "SWAP_MAX_SECTORS"}, {"kind": "macro", "line": 19, "name": "SWAP_MAGIC"}]}, {"doc": "include \"kernel.h\" include \"sched.h\" ================================================================", "id": "kernel/mm.c", "kind": "module", "label": "mm.c", "language": "c", "sha256": "48c2634555f1f135", "symbol_count": 6, "symbols": [{"doc": "================================================================ Memory allocator Thin wrappers over dlmalloc 2.8.6 (third_party/dlmalloc), a private mspace rooted at the fixed kernel heap. The space is built with HAVE_MORECORE=0 and HAVE_MMAP=0, so it can never grow past HEAP_SIZE; an exhausted heap returns 0. * ================================================================", "kind": "function", "line": 12, "name": "kallocator_init", "signature": "void kallocator_init(void)"}, {"kind": "function", "line": 16, "name": "kmalloc", "signature": "void *kmalloc(unsigned long size)"}, {"kind": "function", "line": 21, "name": "kfree", "signature": "void kfree(void *ptr)"}, {"kind": "function", "line": 26, "name": "kcalloc", "signature": "void *kcalloc(unsigned long nmemb, unsigned long size)"}, {"kind": "function", "line": 30, "name": "krealloc", "signature": "void *krealloc(void *ptr, unsigned long size)"}, {"doc": "Per-CPU memory allocation. Allocates cpu_count * size bytes, aligned to `align`, zeroed. Each CPU accesses its own region at offset cpu_id * size. Returns NULL on failure. The caller must not free individual CPU regions; the whole block is freed as one allocation. This is a building block for Phase 2 (per-CPU run queues) and Phase 3 (per-CPU wait queue caches). Not wired into * any subsystem yet; the API is established for future use.", "kind": "function", "line": 47, "name": "kmalloc_percpu", "signature": "void *kmalloc_percpu(unsigned long size, unsigned long align)"}]}, {"doc": "include \"kernel.h\" ================================================================", "id": "kernel/printf.c", "kind": "module", "label": "printf.c", "language": "c", "sha256": "21b5ba97e9a12ace", "symbol_count": 10, "symbols": [{"kind": "struct", "line": 177, "name": "snctx"}, {"doc": "================================================================ printf family * ================================================================", "kind": "function", "line": 6, "name": "putc_buf", "signature": "static void putc_buf(char c, void *ctx, int *written)"}, {"kind": "function", "line": 12, "name": "putc_file", "signature": "static void putc_file(char c, void *ctx, int *written)"}, {"kind": "function", "line": 18, "name": "putc_str", "signature": "static void putc_str(char c, void *ctx, int *written)"}, {"kind": "function", "line": 25, "name": "emit_num", "signature": "static void emit_num(void (*emit)(char, void *, int *), void *ctx, int *written,\n ..."}, {"kind": "function", "line": 43, "name": "kformat", "signature": "static void kformat(void (*emit)(char, void *, int *), void *ctx,\n int *writte..."}, {"kind": "function", "line": 156, "name": "kfprintf", "signature": "int kfprintf(KFILE *f, const char *fmt, ...)"}, {"kind": "function", "line": 165, "name": "ksprintf", "signature": "int ksprintf(char *buf, const char *fmt, ...)"}, {"kind": "function", "line": 178, "name": "putc_snbuf", "signature": "static void putc_snbuf(char c, void *ctx, int *written)"}, {"kind": "function", "line": 183, "name": "ksnprintf", "signature": "int ksnprintf(char *buf, unsigned long size, const char *fmt, ...)"}]}, {"doc": "include \"kernel.h\" ================================================================", "id": "kernel/redirect.c", "kind": "module", "label": "redirect.c", "language": "c", "sha256": "dcffbec2560bca7c", "symbol_count": 3, "symbols": [{"doc": "================================================================ Console output capture for shell redirection The hot-path redirect_putc() lives in kernel.c (inlined into vga_putc) and accesses the state directly. This file owns the lifecycle functions: begin, commit, suspend, resume, report. * ================================================================", "kind": "function", "line": 10, "name": "shell_report_exit", "signature": "void shell_report_exit(int code)"}, {"kind": "function", "line": 16, "name": "shell_report", "signature": "void shell_report(const char *what, const char *detail)"}, {"kind": "function", "line": 24, "name": "shell_take_redirect", "signature": "int shell_take_redirect(int *argc, char **argv, char **path, int *append_mode)"}]}, {"id": "kernel/sched.c", "kind": "module", "label": "sched.c", "language": "c", "sha256": "acfbc92d3e1e092d", "symbol_count": 43, "symbols": [{"kind": "function", "line": 32, "name": "read_cr3", "signature": "static inline unsigned long read_cr3(void)"}, {"doc": "--- TSS (one per CPU) ---- Every CPU that runs ring-3 code needs a private TSS: a timer tick that preempts ring 3 switches to TSS.rsp0, so two CPUs sharing one TSS would run their ISRs on the same stack. The runtime GDT grows from 7 entries (5 from stage 2 + 1 TSS descriptor of 2 slots) to 5 + 2*MAX_CPUS entries; CPU 0 keeps selector 0x28 exactly as before. The GDT lives at 0x8000 with 4 KB reserved up to stage 2 at 0x9000, so 21 entries * (168 bytes) fit with room to spare.", "kind": "function", "line": 58, "name": "__attribute__", "signature": "typedef struct __attribute__((packed))"}, {"doc": "Per-CPU idle stacks: a park into the idle context re-enters * smp_ap_idle_loop here (idle_proc ctx.rsp points at the top). static char ap_idle_stack[MAX_CPUS][4096] __attribute__((aligned(16))); proc_t ap_idle_proc[MAX_CPUS]; volatile unsigned long smp_dispatches[MAX_CPUS]; volatile unsigned long smp_idle_polls[MAX_CPUS]; static volatile int ser_e_reported; /* ---- IDT ----", "kind": "function", "line": 79, "name": "__attribute__", "signature": "typedef struct __attribute__((packed))"}, {"doc": "typedef struct __attribute__((packed)) { uint16_t off_lo; uint16_t sel; uint8_t ist; uint8_t type_attr; uint16_t off_mid; uint32_t off_hi; uint32_t zero; } idt_entry_t; static idt_entry_t idt[256] __attribute__((aligned(16))); /* Exported IDTR for APs to load during SMP bring-up. Filled by idt_init(). idtr_t bsp_idtr; extern void *isr_stub_table[]; /* ---- Kernel stack pool ---- static char kstack_pool[MAX_PROCS][16*1024] __attribute__((aligned(16))); static int kstack_used[MAX_PROCS]; /* 0 = free, 1 = in use", "kind": "function", "line": 93, "name": "alloc_kstack", "signature": "static uint64_t alloc_kstack(void)"}, {"kind": "function", "line": 104, "name": "free_kstack", "signature": "static void free_kstack(uint64_t top)"}, {"doc": "Parked trap frames for preempted ring-3 contexts, one slot per pid. The ISR copies the preempted frame here (never onto a live stack: the TSS stack is reused by the next tick and a thread's own kstack may be mid-syscall), points ctx at the copy and resumes it later through resume_iretq + iretq. Dedicated slots mean parking can never clobber * live kernel state. static trap_frame_t isr_park[MAX_PROCS]; /* ---- IDT init ----", "kind": "function", "line": 128, "name": "idt_set", "signature": "static void idt_set(int vec, void (*h)(void))"}, {"kind": "function", "line": 138, "name": "idt_init", "signature": "static void idt_init(void)"}, {"doc": "} static void idt_init(void) { kmemset(idt, 0, sizeof(idt)); int i; for (i = 0; i < 256; i++) if (isr_stub_table[i]) idt_set(i, (void(*)(void))isr_stub_table[i]); bsp_idtr.limit = sizeof(idt) - 1; bsp_idtr.base = (uint64_t)&idt; __asm__ volatile(\"lidt %0\" :: \"m\"(bsp_idtr)); } /* ---- PIC ----", "kind": "function", "line": 151, "name": "pic_init", "signature": "static void pic_init(void)"}, {"doc": "Master: unmask IRQ0 (timer) + IRQ1 (keyboard) + IRQ2 (cascade) + IRQ4 (COM1, UART IER stays 0 so it never fires) + IRQ5 (Sound Blaster 16 DMA done). In the mask register a bit set means masked, so 0xC8 masks only IRQ3, IRQ6 and IRQ7. Masking IRQ5 here starves the SB16 completion interrupt and leaves audio on the * timer watchdog alone (audible as jitter); keep it unmasked. outb(0x21,0xC8); /* Slave: unmask IRQ12 (mouse) only. 0xEF = ~bit4. outb(0xA1,0xEF); } /* ---- PIT channel 0: 100 Hz ----", "kind": "function", "line": 186, "name": "pit_init", "signature": "static void pit_init(void)"}, {"kind": "function", "line": 192, "name": "pic_eoi", "signature": "static void pic_eoi(int irq)"}, {"kind": "function", "line": 200, "name": "tss_write_desc", "signature": "static void tss_write_desc(int cpu)"}, {"kind": "function", "line": 217, "name": "tss_init", "signature": "static void tss_init(void)"}, {"doc": "Load this AP's task register. The BSP wrote every descriptor in tss_init before the APs were woken, so the AP only points its TR at its own slot; its ring-3 preempts then land on its private rsp0 * stack instead of the BSP's.", "kind": "function", "line": 249, "name": "tss_init_ap", "signature": "void tss_init_ap(int cpu)"}, {"kind": "function", "line": 267, "name": "context", "signature": "* context (anything entered via k_exec_user) is inside a syscall\n * (entry swapped 0 in), and a c..."}, {"kind": "function", "line": 280, "name": "point", "signature": "* return address as the resume point (\"continue the ISR\"), which\n * required the stranded ISR fra..."}, {"doc": "Round-robin scan with sched_lock HELD. Returns a claimed (PROC_RUNNING) pid or -1. vm_only restricts the pick to CLONE_VM threads, which is * what APs run: same CR3, no brk/mmap view switch, no TLB work.", "kind": "function", "line": 296, "name": "sched_next_locked", "signature": "static int sched_next_locked(int start, int vm_only)"}, {"doc": "Claim one READY thread for this CPU's idle loop (the AP only claims CLONE_VM threads): marks it RUNNING under lock and installs it as the * CPU's current pid. Returns the pid, or -1 when nothing is ready.", "kind": "function", "line": 312, "name": "smp_claim_thread_v", "signature": "static int smp_claim_thread_v(int vm_only)"}, {"doc": "AP idle loop: hlt until a CLONE_VM thread is ready, run it, repeat. Entered once from smp_ap_entry on the AP stub stack; the first switch_to out of here saves these registers into ap_idle_proc[cpu], so every return to idle resumes this loop. Interrupts stay OFF from the claim through the switch: a LAPIC tick landing in between would park this half-switched state over the incoming thread's ctx. Threads enter with their own rflags (IF=1); a resume back to idle restores IF=0, so sti runs after every * switch_to return. The hlt itself needs IF=1 to wake.", "kind": "function", "line": 332, "name": "smp_ap_idle_loop", "signature": "void smp_ap_idle_loop(void)"}, {"doc": "AP timer preemption: time-slice the AP's current CLONE_VM thread with the next READY one. An idle AP (cur_pid -1) needs nothing: its idle loop polls. The park/unclaim discipline is the same as the BSP tick: park the trap frame (complete ctx), publish READY, claim the next, switch NOTRAP (load-only) so a stealing CPU always resumes a valid context. A non-VM proc can never run here by construction; if one is * ever observed, leave it alone (fail safe, never migrate it).", "kind": "function", "line": 366, "name": "sched_ap_preempt", "signature": "static void sched_ap_preempt(trap_frame_t *frame)"}, {"doc": "True when some AP is idle. The BSP tick uses this to leave freshly parked CLONE_VM threads unclaimed: the idle AP's next poll (IPI wake) picks them up, which keeps thread execution biased to the APs * instead of the BSP winning every claim race.", "kind": "function", "line": 392, "name": "smp_any_ap_idle", "signature": "static int smp_any_ap_idle(void)"}, {"kind": "function", "line": 419, "name": "isr_dispatch", "signature": "void isr_dispatch(int vector, trap_frame_t *frame)"}, {"kind": "function", "line": 656, "name": "BSP", "signature": "* CPU believe it is the BSP (wrong per-CPU identity, two CPUs\n * running the shell contex..."}, {"doc": "serial_puts(\" [recovering: ring-3 user fault, returning EFAULT]\\n\"); k_user_fault_return(); __builtin_unreachable(); } serial_puts(\" [thread faulted: killing]\\n\"); do_exit(EFAULT); __builtin_unreachable(); } serial_puts(\" [no recovery]\\n\"); for(;;) __asm__(\"hlt\"); } } /* ---- Process management ----", "kind": "function", "line": 676, "name": "proc_get", "signature": "proc_t *proc_get(int pid)"}, {"kind": "function", "line": 682, "name": "proc_create", "signature": "int proc_create(const char *name, int parent_pid)"}, {"kind": "function", "line": 748, "name": "sched_park_as_returned", "signature": "static void sched_park_as_returned(proc_t *cur)"}, {"kind": "function", "line": 757, "name": "schedule", "signature": "void schedule(void)"}, {"kind": "function", "line": 831, "name": "yield", "signature": "void yield(void)"}, {"kind": "function", "line": 846, "name": "do_exit", "signature": "void do_exit(int code)"}, {"doc": "frame is ambiguous, this one starts cleanly at fn(arg) on the given stack: child RIP = fn, child RSP = stack, child RDI = arg (SysV first arg), entered through the same user_trampoline + iretq path as proc_create. The caller (pthread-like user code) owns the stack: it must be allocated before the call (8 KB each per the roadmap) with its TOP passed here, and must stay alive until the thread is joined. fn and stack must lie in the user window (checked by the syscall wrapper). The thread shares CR3, the file table and (by the schedule() CLONE_VM rule) the live brk/mmap view with its parent; the parent joins it with do_waitpid, which reaps the exit code without freeing the shared page tables. * Returns the child PID, or -1 when no slot or stack is usable.", "kind": "function", "line": 886, "name": "do_thread_spawn", "signature": "long do_thread_spawn(unsigned long fn, unsigned long stack,\n unsigned long arg)"}, {"kind": "function", "line": 993, "name": "do_waitpid", "signature": "int do_waitpid(int pid)"}, {"kind": "function", "line": 1027, "name": "do_kill", "signature": "int do_kill(int pid)"}, {"kind": "function", "line": 1034, "name": "timer_tick", "signature": "void timer_tick(void)"}, {"doc": "schedule(); } } int do_kill(int pid) { proc_t *p = proc_get(pid); if (!p) return -1; do_exit(-1); return 0; } void timer_tick(void) { __sync_fetch_and_add(&sys_ticks, 1); } /* ---- PS/2 mouse hardware init ----", "kind": "function", "line": 1038, "name": "mouse_wait_cmd", "signature": "static void mouse_wait_cmd(void)"}, {"kind": "function", "line": 1044, "name": "mouse_wait_data", "signature": "static void mouse_wait_data(void)"}, {"kind": "function", "line": 1051, "name": "mouse_write", "signature": "static void mouse_write(unsigned char data)"}, {"kind": "function", "line": 1058, "name": "mouse_read", "signature": "static unsigned char mouse_read(void)"}, {"kind": "function", "line": 1063, "name": "mouse_hw_init", "signature": "static void mouse_hw_init(void)"}, {"kind": "function", "line": 1114, "name": "mouse_disable", "signature": "void mouse_disable(void)"}, {"kind": "function", "line": 1116, "name": "mouse_enable", "signature": "void mouse_enable(void)"}, {"kind": "function", "line": 1117, "name": "sched_init", "signature": "void sched_init(void)"}, {"kind": "macro", "line": 18, "name": "MY_SYS_KSTK_TOP"}, {"kind": "macro", "line": 19, "name": "MY_USER_STACK_TOP"}, {"kind": "macro", "line": 20, "name": "MY_USER_LOAD_BASE"}]}, {"doc": "scrollback.c - Console scrollback ring buffer.", "id": "kernel/scrollback.c", "kind": "module", "label": "scrollback.c", "language": "c", "sha256": "e9c63fd43c5f0ddf", "symbol_count": 7, "symbols": [{"kind": "function", "line": 16, "name": "sb_init", "signature": "void sb_init(void)"}, {"kind": "function", "line": 22, "name": "sb_capture_row0", "signature": "void sb_capture_row0(void)"}, {"kind": "function", "line": 33, "name": "sb_reset", "signature": "void sb_reset(void)"}, {"kind": "function", "line": 37, "name": "sb_get_count", "signature": "int sb_get_count(void)"}, {"kind": "function", "line": 39, "name": "sb_get_head", "signature": "int sb_get_head(void)"}, {"kind": "function", "line": 40, "name": "sb_get_char", "signature": "char sb_get_char(int row, int col)"}, {"kind": "macro", "line": 11, "name": "SCROLLBACK_ROWS"}]}, {"doc": "include \"kernel.h\" include \"sched.h\" serial.c -- COM1 16550 UART driver.", "id": "kernel/serial.c", "kind": "module", "label": "serial.c", "language": "c", "sha256": "5ad69c60a803395c", "symbol_count": 9, "symbols": [{"doc": "define COM1 0x3F8", "kind": "function", "line": 19, "name": "serial_init", "signature": "void serial_init(void)"}, {"kind": "function", "line": 29, "name": "serial_tx_ready", "signature": "static int serial_tx_ready(void)"}, {"kind": "function", "line": 31, "name": "serial_rx_ready", "signature": "static int serial_rx_ready(void)"}, {"kind": "function", "line": 32, "name": "serial_putc", "signature": "void serial_putc(char c)"}, {"kind": "function", "line": 37, "name": "serial_e_count", "signature": "unsigned long serial_e_count(void)"}, {"kind": "function", "line": 39, "name": "serial_puts", "signature": "void serial_puts(const char *s)"}, {"kind": "function", "line": 41, "name": "serial_available", "signature": "int serial_available(void)"}, {"kind": "function", "line": 43, "name": "serial_getc", "signature": "int serial_getc(void)"}, {"kind": "macro", "line": 17, "name": "COM1"}]}, {"doc": "include \"kernel.h\" include \"net.h\" include \"minifs.h\" include \"sched.h\" include \"smp.h\" include \"vga_fb.h\" include \"pcspk.h\" include \"sb16.h\" include \"rtc.h\" include \"drivers/kbd.h\" define XXH_STATIC_LINKING_ONLY include \"xxhash.h\" include \"zip.h\" include \"shell.h\" include \"editor.h\" ================================================================", "id": "kernel/shell.c", "kind": "module", "label": "shell.c", "language": "c", "sha256": "154520bdb02fed2a", "symbol_count": 60, "symbols": [{"doc": "Queue a desktop-icon command to run after the current user program exits. Overwrites any earlier pending launch; safe to call from the ISR (it only * copies into a kernel buffer).", "kind": "function", "line": 66, "name": "shell_queue_launch", "signature": "void shell_queue_launch(const char *cmd)"}, {"kind": "function", "line": 86, "name": "shell_prompt", "signature": "static void shell_prompt(void)"}, {"doc": "Strict decimal parse for the `vol` builtin: the whole argument must be an optional sign followed by at least one digit, and the value is clamped to * the speaker's valid range. Garbage is rejected, never silently zero.", "kind": "function", "line": 94, "name": "shell_parse_vol", "signature": "static int shell_parse_vol(const char *s, unsigned *out)"}, {"kind": "function", "line": 127, "name": "pb_empty", "signature": "static int pb_empty(void)"}, {"kind": "function", "line": 129, "name": "pb_count", "signature": "static int pb_count(void)"}, {"kind": "function", "line": 130, "name": "pb_push_back", "signature": "static void pb_push_back(unsigned char c)"}, {"kind": "function", "line": 135, "name": "pb_push_front", "signature": "static void pb_push_front(unsigned char c)"}, {"kind": "function", "line": 140, "name": "pb_pop", "signature": "static int pb_pop(void)"}, {"kind": "function", "line": 146, "name": "pb_peek", "signature": "static int pb_peek(void)"}, {"doc": "Next raw byte (kbd queue, then serial, then PS/2) without touching the * pushback FIFO; blocks until one is available.", "kind": "function", "line": 153, "name": "raw_blocking_getc", "signature": "static int raw_blocking_getc(void)"}, {"doc": "int c = serial_getc(); if (c >= 0) return c; } if (kbd_available()) { int c = kbd_read(); if (c >= 0) return c; } if (vga_fb_active && (++mouse_tick_cnt & 0xFF) == 0) vga_fb_mouse_tick(); __asm__ volatile(\"pause\"); } } /* Non-blocking variant of the above for sequence lookahead.", "kind": "function", "line": 172, "name": "raw_try_getc", "signature": "static int raw_try_getc(void)"}, {"doc": "Called after an ESC byte has been read. Pulls the remainder of the sequence non-blocking and classifies it. Returns 1 (PageUp), 2 (PageDown), or 0 for \"not a page key\" — in which case every byte pulled EXCEPT the leading ESC is re-injected into the pushback FIFO so the caller can hand them back to * the readline layer exactly as it would a raw escape.", "kind": "function", "line": 207, "name": "consume_page_after_esc", "signature": "static int consume_page_after_esc(void)"}, {"kind": "function", "line": 232, "name": "console_getc", "signature": "* returns console_getc() simply serves the FIFO again. */\nint console_getc(void)"}, {"doc": "Next buffered byte without consuming it, or -1 when nothing is available right now. Used to tell an ESC prefix from a complete escape sequence, * which always arrives in one burst.", "kind": "function", "line": 254, "name": "console_peek", "signature": "static int console_peek(void)"}, {"doc": "--- Scrollback view ---- Renders a 25-row window over (scrollback ring + live screen) into the VGA framebuffer and to the serial console, hides the cursor, and lets the user page up/down through history. PageDown at the bottom, or any other key, exits; the exit key is re-injected into the pushback FIFO so the readline * that was waiting for input receives it as if scrollback never happened. define SB_LEN (VGA_ROWS * VGA_COLS * 2)", "kind": "function", "line": 269, "name": "scrollback_render", "signature": "static void scrollback_render(int voff, int total, const unsigned char *saved)"}, {"kind": "function", "line": 306, "name": "scrollback_view", "signature": "static void scrollback_view(int initial_dir)"}, {"doc": "Read one line into buf (at most size-1 chars). Echoes input and * honours backspace. Shared by the shell prompt and the editor.", "kind": "function", "line": 351, "name": "shell_readline_buf", "signature": "void shell_readline_buf(char *buf, int size)"}, {"doc": "The component of a ramdisk path after the last '/', or the whole path when * there is no '/'. Used to match a bare command word against a file's name.", "kind": "function", "line": 380, "name": "shell_name_base", "signature": "static const char *shell_name_base(const char *path)"}, {"doc": "Replace the current word [word_start, word_start+wlen) in `buf` with `text` and move the cursor to the end of the completed line. Bounds checked: a * completion that would overflow `size` is refused, never truncated.", "kind": "function", "line": 390, "name": "shell_complete_replace", "signature": "static void shell_complete_replace(char *buf, int size, int *pos,\n ..."}, {"kind": "function", "line": 407, "name": "shell_readline", "signature": "static void shell_readline(void)"}, {"doc": "Redraw the edit line: erase what is shown, then write `text` into buf and onto the console, leaving the text cursor at `*pos`. The cursor is drawn on the framebuffer terminal; on the serial console the text is rewritten * and the reader's position is implied by the console cursor.", "kind": "function", "line": 416, "name": "shell_hist_show", "signature": "static void shell_hist_show(char *buf, int size, int *pos, const char *text)"}, {"doc": "Repaint the edit line after a cursor move or mid-line edit: erase the whole visible line, rewrite buf, then back the console cursor up to `pos` and redraw the framebuffer text cursor there. `shell_cur` holds the on-screen cursor column, so the erase backs up to the line start before blanking it * (a serial backspace alone does not clear a character).", "kind": "function", "line": 438, "name": "shell_line_repaint", "signature": "static void shell_line_repaint(char *buf, int size, int pos)"}, {"doc": "Insert character c into buf at `pos`, shifting the tail right. Bounds * checked; the caller repaints afterwards.", "kind": "function", "line": 451, "name": "shell_line_insert", "signature": "static void shell_line_insert(char *buf, int size, int *pos, char c)"}, {"doc": "Insert character c into buf at `pos`, shifting the tail right. Bounds * checked; the caller repaints afterwards. static void shell_line_insert(char *buf, int size, int *pos, char c) { int len = (int)kstrlen(buf); if (len >= size - 1) return; kmemmove(buf + *pos + 1, buf + *pos, (unsigned long)(len - *pos + 1)); buf[*pos] = c; (*pos)++; } /* Delete the character before the cursor (backspace).", "kind": "function", "line": 460, "name": "shell_line_backspace", "signature": "static void shell_line_backspace(char *buf, int size, int *pos)"}, {"doc": "kmemmove(buf + *pos + 1, buf + *pos, (unsigned long)(len - *pos + 1)); buf[*pos] = c; (*pos)++; } /* Delete the character before the cursor (backspace). static void shell_line_backspace(char *buf, int size, int *pos) { int len = (int)kstrlen(buf); if (*pos <= 0) return; kmemmove(buf + *pos - 1, buf + *pos, (unsigned long)(len - *pos + 1)); (*pos)--; } /* Delete the character at the cursor (Delete key).", "kind": "function", "line": 468, "name": "shell_line_delete", "signature": "static void shell_line_delete(char *buf, int size, int *pos)"}, {"doc": "int len = (int)kstrlen(buf); if (*pos <= 0) return; kmemmove(buf + *pos - 1, buf + *pos, (unsigned long)(len - *pos + 1)); (*pos)--; } /* Delete the character at the cursor (Delete key). static void shell_line_delete(char *buf, int size, int *pos) { int len = (int)kstrlen(buf); if (*pos >= len) return; kmemmove(buf + *pos, buf + *pos + 1, (unsigned long)(len - *pos)); } /* Delete from the cursor to the start of the line (Ctrl+U).", "kind": "function", "line": 475, "name": "shell_line_kill_front", "signature": "static void shell_line_kill_front(char *buf, int size, int *pos)"}, {"doc": "static void shell_line_delete(char *buf, int size, int *pos) { int len = (int)kstrlen(buf); if (*pos >= len) return; kmemmove(buf + *pos, buf + *pos + 1, (unsigned long)(len - *pos)); } /* Delete from the cursor to the start of the line (Ctrl+U). static void shell_line_kill_front(char *buf, int size, int *pos) { int len = (int)kstrlen(buf); kmemmove(buf, buf + *pos, (unsigned long)(len - *pos + 1)); pos = 0; } /* Delete from the cursor to the end of the line (Ctrl+K).", "kind": "function", "line": 482, "name": "shell_line_kill_tail", "signature": "static void shell_line_kill_tail(char *buf, int size, int *pos)"}, {"doc": "/* Delete from the cursor to the start of the line (Ctrl+U). static void shell_line_kill_front(char *buf, int size, int *pos) { int len = (int)kstrlen(buf); kmemmove(buf, buf + *pos, (unsigned long)(len - *pos + 1)); pos = 0; } /* Delete from the cursor to the end of the line (Ctrl+K). static void shell_line_kill_tail(char *buf, int size, int *pos) { buf[*pos] = '\\0'; } /* Delete the word before the cursor (Ctrl+W): skip spaces, then non-spaces.", "kind": "function", "line": 487, "name": "shell_line_kill_word", "signature": "static void shell_line_kill_word(char *buf, int size, int *pos)"}, {"doc": "Move through the history ring: up recalls older entries, down moves * forward again and finally restores the live line.", "kind": "function", "line": 498, "name": "shell_hist_nav", "signature": "static void shell_hist_nav(char *buf, int size, int *pos, int up)"}, {"kind": "function", "line": 697, "name": "shell_parse", "signature": "int shell_parse(char *line, char **argv, int max_args)"}, {"kind": "function", "line": 718, "name": "shell_run", "signature": "void shell_run(void)"}, {"doc": "Load an ELF file from the ramdisk and register it under its filename stem. Returns 1 for an ET_REL program, 2 for an ET_EXEC/ET_DYN Linux process, * 0 on failure. progname_out must hold at least 32 bytes.", "kind": "function", "line": 765, "name": "shell_load", "signature": "static int shell_load(const char *fname, char *progname_out, void **entry_out)"}, {"kind": "function", "line": 823, "name": "outw_port", "signature": "static inline void outw_port(unsigned short port, unsigned short val)"}, {"doc": "define QEMU_PM_PORT 0x604", "kind": "function", "line": 829, "name": "shell_cmd_poweroff", "signature": "static void shell_cmd_poweroff(void)"}, {"doc": "The toolchain directory that owns `name`, chosen by suffix. Bare names with * no recognised suffix fall through to the command path bin/.", "kind": "function", "line": 846, "name": "shell_run_dir_for", "signature": "static const ShellRunDir *shell_run_dir_for(const char *name)"}, {"doc": "Is `resolved` (already normalised against the cwd) a real ramdisk file? A * directory name or a non-existent path is rejected, never run.", "kind": "function", "line": 864, "name": "shell_file_is_real", "signature": "static int shell_file_is_real(const char *resolved)"}, {"doc": "Resolve `name` to a full ramdisk path suitable for running. A bare name is tried first against the cwd, then through the suffix-picked toolchain directory, then through the remaining directories as fallback. Returns 1 and fills `out` (cap bytes) on success, 0 when no candidate is a real file. A candidate that cannot fit `cap` is skipped like a missing file, never * truncated.", "kind": "function", "line": 876, "name": "shell_resolve_run", "signature": "static int shell_resolve_run(const char *name, char *out, unsigned cap)"}, {"doc": "Run a raw ELF image (ET_REL, ET_EXEC or ET_DYN) already read into `data`. argv[0] is the program name the program sees. Returns the exit code, or -1 when the buffer is not a loadable ELF. The image is not registered; it is * relocated and executed fresh, then dropped.", "kind": "function", "line": 912, "name": "shell_run_elf_buf", "signature": "static int shell_run_elf_buf(const char *data, unsigned size, int argc,\n ..."}, {"doc": "Load the ramdisk file at `full` and run it as an ELF. Returns the exit * code, or -1 when the file cannot be read or loaded.", "kind": "function", "line": 933, "name": "shell_run_elf_file", "signature": "static int shell_run_elf_file(const char *full, int argc, char **argv)"}, {"doc": "Load a Linux ELF from the MiniFS disk and run it (preserves the historical * `run` fallback when a name is not on the ramdisk).", "kind": "function", "line": 946, "name": "shell_run_elf_minifs", "signature": "static int shell_run_elf_minifs(const char *name, int argc, char **argv)"}, {"doc": "Run a `.cvm` module at the resolved path `full`. The interpreter is loaded from the ramdisk on first use and cached. argv[0] is the module name the module sees; the interpreter passes it and the remaining words through as * a Linux-style argv.", "kind": "function", "line": 992, "name": "shell_run_cvm", "signature": "static int shell_run_cvm(const char *full, int argc, char **argv)"}, {"doc": "Run `name` as a ramdisk/MiniFS file: `.cvm` modules through the interpreter, ELF files by content through the matching loader. Returns the * exit code, or -1 when the name resolves to nothing runnable.", "kind": "function", "line": 1021, "name": "shell_run_file", "signature": "static int shell_run_file(const char *name, int argc, char **argv)"}, {"doc": "Unified dispatcher used by `run` and by bare commands: a registered program wins, then the runnable-file resolver. argv[0] is the command/program name * as typed. Returns the exit code, or -1 when the name cannot be run.", "kind": "function", "line": 1050, "name": "shell_run_any", "signature": "int shell_run_any(const char *name, int argc, char **argv)"}, {"doc": "--- Graphics debugging (`gfx` builtin) ---- The serial console is the observability surface the BDD suite drives, but a framebuffer program's output never reaches it. `gfx` lifts the graphics side onto the console: state, single-pixel sampling, region statistics and a PPM screenshot are all reported as text, so the desktop and the windowed graphics programs are testable from the shell exactly like `date`/`vol` are. Every coordinate is clamped to the framebuffer and every parse is * strict, so a malformed invocation is a usage diagnostic, never a crash.", "kind": "function", "line": 1110, "name": "gfx_parse_int", "signature": "static int gfx_parse_int(const char *s, int *out)"}, {"doc": "Read the current 256-entry VGA DAC palette (3x6-bit per entry, read at 8-bit precision by the kernel's normalisation). Used by `gfx shot` to turn the * indexed framebuffer into an RGB PPM.", "kind": "function", "line": 1130, "name": "gfx_read_palette", "signature": "static void gfx_read_palette(unsigned char pal[768])"}, {"kind": "function", "line": 1136, "name": "shell_cmd_gfx", "signature": "static void shell_cmd_gfx(int argc, char **argv)"}, {"doc": "`wm ` — window-manager operations on the terminal window, exposed as a shell builtin so the tilin-WM behaviour (minimize/maximize/close) is observable and testable over the serial console exactly like `date`/`vol`. The operations are the same functions the title-bar buttons and the Alt * shortcuts call, so the framebuffer and the shell can never disagree.", "kind": "function", "line": 1252, "name": "shell_cmd_wm", "signature": "static void shell_cmd_wm(int argc, char **argv)"}, {"doc": "`hash ` — XXH64 (64-bit, seed 0) of a ramdisk/MiniFS file, streamed in bounded chunks so a large MiniFS file never needs a whole-file buffer. This is the integrity tool for CVM modules and any ramdisk payload: an image built from source is compared against a recorded hash, and a module * that drifted is detected before it is trusted.", "kind": "function", "line": 1273, "name": "shell_cmd_hash", "signature": "static void shell_cmd_hash(int argc, char **argv)"}, {"kind": "function", "line": 1287, "name": "shell_exec_builtin", "signature": "void shell_exec_builtin(int argc, char **argv)"}, {"kind": "macro", "line": 11, "name": "XXH_STATIC_LINKING_ONLY"}, {"kind": "macro", "line": 34, "name": "SHELL_CVM_INTERP"}, {"kind": "macro", "line": 53, "name": "SHELL_RUN_DIRS"}, {"kind": "macro", "line": 76, "name": "SHELL_HIST_MAX"}, {"kind": "macro", "line": 123, "name": "PB_LEN"}, {"kind": "macro", "line": 189, "name": "MAX_SEQ_POLL"}, {"kind": "macro", "line": 268, "name": "SB_LEN"}, {"kind": "macro", "line": 290, "name": "SB_PGUP"}, {"kind": "macro", "line": 292, "name": "SB_PGDN"}, {"kind": "macro", "line": 293, "name": "SB_EXIT"}, {"kind": "macro", "line": 827, "name": "QEMU_PM_PORT"}]}, {"doc": "include \"kernel.h\" string.c -- Kernel string and memory functions.", "id": "kernel/string.c", "kind": "module", "label": "string.c", "language": "c", "sha256": "ac33d742651efcd0", "symbol_count": 13, "symbols": [{"doc": "string.c -- Kernel string and memory functions. Pure functions with no dependencies beyond their own prototypes in kernel.h. These replace the libc equivalents for the freestanding kernel and are also registered as kernel symbols for ET_REL programs. Contract: All functions handle NUL-terminated strings or fixed-size buffers. kmemmove handles overlapping regions correctly (copy forward when dst < src, backward when dst > src). kstrncpy does NOT NUL-pad; the caller must ensure the destination is already zeroed if NUL-termination is required.", "kind": "function", "line": 16, "name": "kstrlen", "signature": "unsigned long kstrlen(const char *s)"}, {"kind": "function", "line": 22, "name": "kstrcpy", "signature": "char *kstrcpy(char *dst, const char *src)"}, {"kind": "function", "line": 28, "name": "kstrncpy", "signature": "char *kstrncpy(char *dst, const char *src, unsigned long n)"}, {"kind": "function", "line": 34, "name": "kstrncat", "signature": "char *kstrncat(char *dst, const char *src, unsigned long n)"}, {"kind": "function", "line": 42, "name": "kstrcmp", "signature": "int kstrcmp(const char *a, const char *b)"}, {"kind": "function", "line": 47, "name": "kstrncmp", "signature": "int kstrncmp(const char *a, const char *b, unsigned long n)"}, {"kind": "function", "line": 52, "name": "kstrchr", "signature": "char *kstrchr(const char *s, int c)"}, {"kind": "function", "line": 57, "name": "kstrstr", "signature": "char *kstrstr(const char *hay, const char *ndl)"}, {"kind": "function", "line": 67, "name": "kmemcpy", "signature": "void *kmemcpy(void *dst, const void *src, unsigned long n)"}, {"kind": "function", "line": 74, "name": "kmemset", "signature": "void *kmemset(void *dst, int c, unsigned long n)"}, {"kind": "function", "line": 80, "name": "kmemcmp", "signature": "int kmemcmp(const void *a, const void *b, unsigned long n)"}, {"kind": "function", "line": 86, "name": "kmemmove", "signature": "void *kmemmove(void *dst, const void *src, unsigned long n)"}, {"kind": "function", "line": 94, "name": "katol", "signature": "long katol(const char *s)"}]}, {"doc": "include \"kernel.h\" ================================================================", "id": "kernel/symtab.c", "kind": "module", "label": "symtab.c", "language": "c", "sha256": "a0068d25f5a39443", "symbol_count": 7, "symbols": [{"kind": "function", "line": 9, "name": "k_register_symbol", "signature": "void k_register_symbol(const char *name, void *addr)"}, {"kind": "function", "line": 17, "name": "ksym_resolve", "signature": "void *ksym_resolve(const char *name)"}, {"kind": "function", "line": 33, "name": "kprog_slot", "signature": "KProg *kprog_slot(const char *name)"}, {"kind": "function", "line": 41, "name": "kprog_lookup", "signature": "KProg *kprog_lookup(const char *name)"}, {"kind": "function", "line": 48, "name": "k_register_program", "signature": "void k_register_program(const char *name, prog_entry_t entry)"}, {"kind": "function", "line": 56, "name": "k_register_process", "signature": "void k_register_process(const char *name, void *proc_entry)"}, {"kind": "function", "line": 64, "name": "k_spawn", "signature": "int k_spawn(const char *name, int argc, char **argv)"}]}, {"doc": "sync.c -- Blocking synchronization primitives (roadmap Phase 3.1).", "id": "kernel/sync.c", "kind": "module", "label": "sync.c", "language": "c", "sha256": "225c4e723244d46d", "symbol_count": 19, "symbols": [{"doc": "endif", "kind": "function", "line": 25, "name": "wq_init", "signature": "void wq_init(wait_queue_t *q)"}, {"kind": "function", "line": 31, "name": "sleep_on", "signature": "void sleep_on(wait_queue_t *q)"}, {"kind": "function", "line": 52, "name": "wake_up", "signature": "int wake_up(wait_queue_t *q)"}, {"kind": "function", "line": 68, "name": "wake_up_all", "signature": "int wake_up_all(wait_queue_t *q)"}, {"kind": "function", "line": 74, "name": "mutex_init", "signature": "void mutex_init(mutex_t *m)"}, {"kind": "function", "line": 81, "name": "mutex_lock", "signature": "void mutex_lock(mutex_t *m)"}, {"kind": "function", "line": 96, "name": "mutex_unlock", "signature": "void mutex_unlock(mutex_t *m)"}, {"kind": "function", "line": 105, "name": "sem_init", "signature": "void sem_init(sem_t *s, int value)"}, {"kind": "function", "line": 111, "name": "sem_wait", "signature": "void sem_wait(sem_t *s)"}, {"kind": "function", "line": 125, "name": "sem_post", "signature": "void sem_post(sem_t *s)"}, {"kind": "function", "line": 133, "name": "cond_init", "signature": "void cond_init(cond_t *c)"}, {"kind": "function", "line": 137, "name": "cond_wait", "signature": "void cond_wait(cond_t *c, mutex_t *m)"}, {"kind": "function", "line": 143, "name": "cond_signal", "signature": "void cond_signal(cond_t *c)"}, {"kind": "function", "line": 147, "name": "cond_broadcast", "signature": "void cond_broadcast(cond_t *c)"}, {"kind": "function", "line": 151, "name": "rwlock_init", "signature": "void rwlock_init(rwlock_t *rw)"}, {"kind": "function", "line": 158, "name": "rwlock_read_lock", "signature": "void rwlock_read_lock(rwlock_t *rw)"}, {"kind": "function", "line": 172, "name": "rwlock_read_unlock", "signature": "void rwlock_read_unlock(rwlock_t *rw)"}, {"kind": "function", "line": 181, "name": "rwlock_write_lock", "signature": "void rwlock_write_lock(rwlock_t *rw)"}, {"kind": "function", "line": 195, "name": "rwlock_write_unlock", "signature": "void rwlock_write_unlock(rwlock_t *rw)"}]}, {"doc": "syscalls.c - Linux x86-64 syscall dispatcher and SYS_SPAWN.", "id": "kernel/syscalls.c", "kind": "module", "label": "syscalls.c", "language": "c", "sha256": "d37356ffcecafa05", "symbol_count": 83, "symbols": [{"kind": "struct", "line": 340, "name": "kiovec"}, {"kind": "function", "line": 67, "name": "sys_minios_dns", "signature": "static long sys_minios_dns(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 73, "name": "sys_minios_tls_handshake", "signature": "static long sys_minios_tls_handshake(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 78, "name": "sys_minios_tls_send", "signature": "static long sys_minios_tls_send(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 83, "name": "sys_minios_tls_recv", "signature": "static long sys_minios_tls_recv(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 88, "name": "sys_minios_time", "signature": "static long sys_minios_time(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 92, "name": "sys_minios_kbd", "signature": "static long sys_minios_kbd(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 107, "name": "sys_minios_palette", "signature": "static long sys_minios_palette(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 115, "name": "sys_minios_kbd_raw", "signature": "static long sys_minios_kbd_raw(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 121, "name": "sys_minios_vga_mode", "signature": "static long sys_minios_vga_mode(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 128, "name": "sys_minios_pcspk_init", "signature": "static long sys_minios_pcspk_init(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 132, "name": "sys_minios_pcspk_tone", "signature": "static long sys_minios_pcspk_tone(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 136, "name": "sys_minios_doom_frame", "signature": "static long sys_minios_doom_frame(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 140, "name": "sys_minios_rtc", "signature": "static long sys_minios_rtc(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 154, "name": "sys_minios_fb_info", "signature": "static long sys_minios_fb_info(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 166, "name": "sys_minios_pcspk_vol", "signature": "static long sys_minios_pcspk_vol(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 174, "name": "sys_minios_spawn", "signature": "static long sys_minios_spawn(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 185, "name": "sys_minios_lz4_compress", "signature": "static long sys_minios_lz4_compress(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 198, "name": "sys_minios_lz4_decompress", "signature": "static long sys_minios_lz4_decompress(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 212, "name": "sys_minios_mouse", "signature": "static long sys_minios_mouse(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 221, "name": "sys_minios_nk_frame", "signature": "static long sys_minios_nk_frame(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 231, "name": "sys_minios_sb16_open", "signature": "static long sys_minios_sb16_open(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 236, "name": "sys_minios_sb16_submit", "signature": "static long sys_minios_sb16_submit(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 244, "name": "sys_minios_gfx_title", "signature": "static long sys_minios_gfx_title(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 258, "name": "sys_minios_sb16_pump", "signature": "static long sys_minios_sb16_pump(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 262, "name": "sys_minios_sb16_stream_open", "signature": "static long sys_minios_sb16_stream_open(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 266, "name": "sys_minios_sb16_stream_close", "signature": "static long sys_minios_sb16_stream_close(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 270, "name": "sys_minios_sb16_stream_submit", "signature": "static long sys_minios_sb16_stream_submit(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 278, "name": "sys_minios_sb16_stream_vol", "signature": "static long sys_minios_sb16_stream_vol(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 288, "name": "sys_minios_clone", "signature": "static long sys_minios_clone(long flags, long newsp, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 296, "name": "sys_minios_thread_spawn", "signature": "static long sys_minios_thread_spawn(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 345, "name": "syscall_trace_enabled", "signature": "long syscall_trace_enabled(void)"}, {"kind": "function", "line": 347, "name": "syscall_trace_set", "signature": "void syscall_trace_set(int on)"}, {"kind": "function", "line": 391, "name": "sys_linux_write", "signature": "static long sys_linux_write(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 401, "name": "sys_linux_writev", "signature": "static long sys_linux_writev(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"doc": "return EFAULT; for (k = 0; k < cnt; k++) { unsigned long j; if (iov[k].iov_len > 0 && !user_range_ok((unsigned long)iov[k].iov_base, iov[k].iov_len)) return EFAULT; if (a1 == 1 || a1 == 2) for (j = 0; j < iov[k].iov_len; j++) vga_putc(iov[k].iov_base[j]); total += (long)iov[k].iov_len; } return total; } /* Shared by sys_linux_open (2) and the openat fall-through (257).", "kind": "function", "line": 422, "name": "do_open_path", "signature": "static long do_open_path(const char *path, long flags)"}, {"kind": "function", "line": 437, "name": "sys_linux_open", "signature": "static long sys_linux_open(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 442, "name": "sys_linux_close", "signature": "static long sys_linux_close(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 451, "name": "sys_linux_lseek", "signature": "static long sys_linux_lseek(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 461, "name": "sys_linux_brk", "signature": "static long sys_linux_brk(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 475, "name": "sys_linux_mmap", "signature": "static long sys_linux_mmap(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 516, "name": "sys_linux_munmap", "signature": "static long sys_linux_munmap(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 534, "name": "sys_linux_mprotect", "signature": "static long sys_linux_mprotect(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 539, "name": "sys_linux_sigaction", "signature": "static long sys_linux_sigaction(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 544, "name": "sys_linux_sigprocmask", "signature": "static long sys_linux_sigprocmask(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 549, "name": "sys_linux_ioctl", "signature": "static long sys_linux_ioctl(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 554, "name": "sys_linux_access", "signature": "static long sys_linux_access(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 576, "name": "sys_linux_yield", "signature": "static long sys_linux_yield(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 581, "name": "sys_linux_getpid", "signature": "static long sys_linux_getpid(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 586, "name": "sys_linux_socket", "signature": "static long sys_linux_socket(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 591, "name": "sys_linux_connect", "signature": "static long sys_linux_connect(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 597, "name": "sys_linux_sendto", "signature": "static long sys_linux_sendto(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 602, "name": "sys_linux_recvfrom", "signature": "static long sys_linux_recvfrom(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 607, "name": "sys_linux_shutdown", "signature": "static long sys_linux_shutdown(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 612, "name": "sys_linux_poll", "signature": "static long sys_linux_poll(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 619, "name": "sys_linux_fork", "signature": "static long sys_linux_fork(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 624, "name": "sys_linux_vfork", "signature": "static long sys_linux_vfork(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 629, "name": "sys_linux_execve", "signature": "static long sys_linux_execve(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 651, "name": "sys_linux_exit", "signature": "static long sys_linux_exit(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 656, "name": "sys_linux_wait4", "signature": "static long sys_linux_wait4(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 661, "name": "sys_linux_kill", "signature": "static long sys_linux_kill(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 666, "name": "sys_linux_flock", "signature": "static long sys_linux_flock(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 671, "name": "sys_linux_getcwd", "signature": "static long sys_linux_getcwd(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 683, "name": "sys_linux_unlink", "signature": "static long sys_linux_unlink(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 696, "name": "sys_linux_readlink", "signature": "static long sys_linux_readlink(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 701, "name": "sys_linux_fstat", "signature": "static long sys_linux_fstat(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 721, "name": "sys_linux_gettimeofday", "signature": "static long sys_linux_gettimeofday(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 736, "name": "sys_linux_arch_prctl", "signature": "static long sys_linux_arch_prctl(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 748, "name": "sys_linux_gettid", "signature": "static long sys_linux_gettid(long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 796, "name": "trace_is_noisy", "signature": "static int trace_is_noisy(long n)"}, {"kind": "function", "line": 800, "name": "ksyscall", "signature": "long ksyscall(long n, long a1, long a2, long a3, long a4, long a5, long a6)"}, {"doc": "--- User-pointer validation --------------------------------------------- The syscall boundary is the hardened edge between ring 3 and ring 0. Every pointer a Linux ABI program hands the kernel must lie inside the user window [USER_LOAD_BASE, USER_LOAD_END), because that is the only memory the page tables marked user-accessible. Anything else — kernel heap, kernel image, page tables, MMIO — must be rejected before a single * dereference. All arithmetic is overflow checked.", "kind": "function", "line": 819, "name": "user_range_ok", "signature": "int user_range_ok(unsigned long p, unsigned long len)"}, {"kind": "function", "line": 825, "name": "user_str_ok", "signature": "int user_str_ok(unsigned long p, unsigned long maxlen)"}, {"kind": "function", "line": 833, "name": "ksyscall_dispatch", "signature": "static long ksyscall_dispatch(long n, long a1, long a2, long a3, long a4, long a5, long a6)"}, {"kind": "function", "line": 969, "name": "tools", "signature": "* ET_EXEC tools (lzss/lz4/aes/json/freedom) are run by the shell, not from an\n * interpreter.\n */..."}, {"kind": "macro", "line": 30, "name": "KFD_MAX"}, {"kind": "macro", "line": 61, "name": "MINIOS_SYSCALL_BASE"}, {"kind": "macro", "line": 63, "name": "MINIOS_SYSCALL_COUNT"}, {"kind": "macro", "line": 341, "name": "SYSCALL_TRACE"}, {"kind": "macro", "line": 353, "name": "SYS_NOISY_TIME"}, {"kind": "macro", "line": 354, "name": "SYS_NOISY_KBD"}, {"kind": "macro", "line": 355, "name": "SYS_NOISY_MOUSE"}, {"kind": "macro", "line": 753, "name": "LINUX_SYSCALL_COUNT"}]}, {"doc": "include \"kernel.h\" ================================================================", "id": "kernel/time.c", "kind": "module", "label": "time.c", "language": "c", "sha256": "457ba28bb3235306", "symbol_count": 3, "symbols": [{"kind": "function", "line": 11, "name": "ktime_rdtsc", "signature": "static unsigned long ktime_rdtsc(void)"}, {"kind": "function", "line": 17, "name": "ktime_init", "signature": "static void ktime_init(void)"}, {"kind": "function", "line": 31, "name": "ktime_ms", "signature": "unsigned long ktime_ms(void)"}]}, {"id": "kernel/vga_fb.c", "kind": "module", "label": "vga_fb.c", "language": "c", "sha256": "aa98895e125abe6d", "symbol_count": 71, "symbols": [{"kind": "function", "line": 24, "name": "vga_fb_boot_config", "signature": "void vga_fb_boot_config(void)"}, {"doc": "as new content is added, and remain reachable in the ring. There is deliberately no \"scroll the screen up\" operation. A completed logical line is pushed to the ring exactly once, when it ends with '\\n'; that eliminates the duplicated/partial scrollback entries the old two-buffer * scheme produced, which were the source of the pixel artifacts. static char lg[SB_MAX_LINES][SB_LINE_MAX]; /* completed logical lines static int lg_head, lg_tail, lg_count; static char act[SB_LINE_MAX]; /* in-progress line static int act_len; static int disp_off; /* scrollback rows above the bottom static int term_cursor_col = -1; /* text cursor column (-1 = hidden) /* Ring accessor: logical line at age i (0 = oldest, count-1 = newest).", "kind": "function", "line": 79, "name": "lg_get", "signature": "static const char *lg_get(int i)"}, {"doc": "Append a completed logical line to the ring. The line is stored whole (no * width-dependent wrap), so it can be re-wrapped on any future resize.", "kind": "function", "line": 85, "name": "lg_push", "signature": "static void lg_push(const char *line, int len)"}, {"doc": "Append a completed logical line to the ring. The line is stored whole (no * width-dependent wrap), so it can be re-wrapped on any future resize. static void lg_push(const char *line, int len) { int k, idx; if (len >= SB_LINE_MAX) len = SB_LINE_MAX - 1; idx = lg_tail; for (k = 0; k < len; k++) lg[idx][k] = line[k]; lg[idx][len] = '\\0'; lg_tail = (lg_tail + 1) % SB_MAX_LINES; if (lg_count < SB_MAX_LINES) lg_count++; else lg_head = (lg_head + 1) % SB_MAX_LINES; } /* Display rows a logical line of `len` characters occupies at term_cols.", "kind": "function", "line": 97, "name": "line_nrows", "signature": "static int line_nrows(int len)"}, {"kind": "function", "line": 103, "name": "act_nrows", "signature": "static int act_nrows(void)"}, {"doc": "else lg_head = (lg_head + 1) % SB_MAX_LINES; } /* Display rows a logical line of `len` characters occupies at term_cols. static int line_nrows(int len) { int w = term_cols > 0 ? term_cols : 1; int n = len / w + (len % w ? 1 : 0); if (n < 1) n = 1; /* an empty line still shows as one row return n; } static int act_nrows(void) { return line_nrows(act_len); } /* Total display rows of the whole history (completed lines + active line).", "kind": "function", "line": 107, "name": "total_rows", "signature": "static int total_rows(void)"}, {"doc": "return n; } static int act_nrows(void) { return line_nrows(act_len); } /* Total display rows of the whole history (completed lines + active line). static int total_rows(void) { int t = 0, i; for (i = 0; i < lg_count; i++) t += line_nrows((int)kstrlen(lg_get(i))); return t + act_nrows(); } /* Clamp disp_off to a legal scroll range.", "kind": "function", "line": 115, "name": "disp_clamp", "signature": "static void disp_clamp(void)"}, {"doc": "Locate the logical line contributing the display row `abs`, and set *off to the character offset where that display row starts. Returns the line text, * or 0 when abs is beyond the history.", "kind": "function", "line": 133, "name": "line_at", "signature": "static const char *line_at(int abs, int *off)"}, {"doc": "The cursor is drawn with its arrow tip at (mx, my), so the sprite spans up-left of the pointer by CURSOR_TIP offsets. The caller clamps mx/my so the sprite's top-left corner stays non-negative and the raw FB reads in * cursor_save_bg never go out of bounds.", "kind": "function", "line": 174, "name": "cursor_save_bg", "signature": "static void cursor_save_bg(int mx, int my)"}, {"kind": "function", "line": 182, "name": "cursor_draw", "signature": "static void cursor_draw(int mx, int my)"}, {"kind": "function", "line": 193, "name": "cursor_restore", "signature": "static void cursor_restore(int mx, int my)"}, {"doc": "True when the cursor sprite overlaps the given screen rectangle. Used to decide whether a partial repaint (taskbar, terminal content) overwrote the cursor, in which case its saved background must be refreshed; otherwise the * cursor keeps its saved background and moves without leaving a trail.", "kind": "function", "line": 207, "name": "cursor_over", "signature": "static int cursor_over(int x0, int y0, int w, int h)"}, {"kind": "function", "line": 231, "name": "vga_fb_set_gfx_mode", "signature": "void vga_fb_set_gfx_mode(int on)"}, {"doc": "Restore the last composite's pointer before the new frame covers it. Only meaningful in graphics mode; the desktop path (vga_fb_mouse_tick) manages * its own cursor with the same functions.", "kind": "function", "line": 244, "name": "vga_fb_gfx_cursor_erase", "signature": "static void vga_fb_gfx_cursor_erase(void)"}, {"doc": "Clamp the mouse into the framebuffer (the idle loop that normally clamps * never runs in graphics mode) and draw the pointer at the current position.", "kind": "function", "line": 252, "name": "vga_fb_gfx_cursor_draw", "signature": "static void vga_fb_gfx_cursor_draw(void)"}, {"doc": "The text area starts one FONT_H below the window's top-left corner, which * is occupied by the title bar. static int term_content_y(void) { return term_px_y + FONT_H; } /* ---- Palette ----", "kind": "function", "line": 405, "name": "vga_fb_set_palette", "signature": "static void vga_fb_set_palette(void)"}, {"doc": "{ 15, 15, 50}, /* D navy (desktop bg) { 60, 90,140}, /* E title blue { 0,220, 0}, /* F terminal green }; outb(0x3C8, ICON_PAL_BASE); for (i = 0; i < ICON_PAL_SIZE; i++) { outb(0x3C9, icon_pal[i][0] >> 2); outb(0x3C9, icon_pal[i][1] >> 2); outb(0x3C9, icon_pal[i][2] >> 2); } } } /* ---- Drawing primitives ----", "kind": "function", "line": 460, "name": "vga_fb_pixel", "signature": "void vga_fb_pixel(int x, int y, uint8_t color)"}, {"kind": "function", "line": 464, "name": "vga_fb_rect", "signature": "void vga_fb_rect(int x, int y, int w, int h, uint8_t color)"}, {"kind": "function", "line": 471, "name": "vga_fb_char", "signature": "void vga_fb_char(int col, int row, char c, uint8_t fg, uint8_t bg)"}, {"kind": "function", "line": 486, "name": "vga_fb_str", "signature": "void vga_fb_str(int col, int row, const char *s, uint8_t fg, uint8_t bg)"}, {"doc": "Blit a text string at an absolute pixel position. Used for window chrome (title bar, taskbar) which lives outside the content-relative coordinate * space that vga_fb_char/str operate in.", "kind": "function", "line": 498, "name": "text_px", "signature": "static void text_px(int px, int py, const char *s, uint8_t fg, uint8_t bg)"}, {"doc": "--- Window controls ---- Three glyph buttons at the right end of a window's title bar: minimize (_), maximize (square) and close (X). They are shared by the terminal window and the composited graphics windows (DOOM/Nuklear), so hit-testing must work on * any titled window. Each button is FONT_W x FONT_H, separated by WM_BTN_PAD. static int wm_buttons_x0(int win_x, int win_w) { return win_x + win_w - 3 * (WM_BTN_W + WM_BTN_PAD); } /* Draw the three window-control glyphs at (px,py), the title bar's top-left.", "kind": "function", "line": 525, "name": "wm_draw_buttons", "signature": "static void wm_draw_buttons(int px, int py, int win_w, uint8_t fg, uint8_t bg)"}, {"doc": "} for (i = 1; i < WM_BTN_H - 1; i++) { vga_fb_pixel(bx + 1, by + i, fg); vga_fb_pixel(bx + WM_BTN_W - 2, by + i, fg); } bx += WM_BTN_W + WM_BTN_PAD; /* close: two crossing diagonals. for (i = 1; i < WM_BTN_W - 1; i++) { vga_fb_pixel(bx + i, by + i, fg); vga_fb_pixel(bx + WM_BTN_W - 1 - i, by + i, fg); } } /* Return which window-control button is under (mx,my), or 0 for none.", "kind": "function", "line": 551, "name": "wm_buttons_hit", "signature": "static int wm_buttons_hit(int mx, int my, int win_x, int win_y, int win_w)"}, {"doc": "Close request bridge: the syscall dispatcher polls this so a graphics * program's next syscall exits it on the child's own stack.", "kind": "function", "line": 566, "name": "wm_close_pending", "signature": "int wm_close_pending(void)"}, {"kind": "function", "line": 567, "name": "wm_clear_close", "signature": "void wm_clear_close(void)"}, {"kind": "function", "line": 568, "name": "wm_gfx_mode_active", "signature": "int wm_gfx_mode_active(void)"}, {"doc": "Hit-test and dispatch a click on a titled window's controls. The active window is the graphics window when one is composited, else the terminal. * Returns 1 when the click was consumed by a window control.", "kind": "function", "line": 573, "name": "wm_button_click", "signature": "static int wm_button_click(int mx, int my)"}, {"kind": "function", "line": 616, "name": "vga_fb_blit_gfx_window", "signature": "void vga_fb_blit_gfx_window(void)"}, {"kind": "function", "line": 641, "name": "vga_fb_clear", "signature": "void vga_fb_clear(void)"}, {"doc": "Composite the Nuklear UI back-buffer onto the desktop as a titled window, mirroring the DOOM window: the back-buffer is a kernel-heap region mapped into the user window that the ring-3 app renders into, and the kernel blits it to the framebuffer on SYS_NK_FRAME. The window is centered and the shell * window stays visible around it.", "kind": "function", "line": 657, "name": "vga_fb_blit_nk_window", "signature": "void vga_fb_blit_nk_window(void)"}, {"kind": "function", "line": 688, "name": "term_recalc", "signature": "static void term_recalc(void)"}, {"doc": "Preserve the current window position, clamping it into range so a * drag or Ctrl+arrow move is not undone by the next layout pass. if (term_x < 0) term_x = 0; if (term_y < 0) term_y = 0; if (term_x > max_cols - term_cols) term_x = max_cols - term_cols; if (term_y > max_rows - term_rows) term_y = max_rows - term_rows; } term_px_x = term_x * FONT_W; term_px_y = term_y * FONT_H; term_px_w = term_cols * FONT_W; term_px_h = term_rows * FONT_H; } /* ---- Desktop ----", "kind": "function", "line": 715, "name": "draw_title", "signature": "static void draw_title(void)"}, {"kind": "function", "line": 732, "name": "taskbar_layout", "signature": "static void taskbar_layout(void)"}, {"doc": "x -= TASKBAR_PAD; x -= TASKBAR_VOL_CH * FONT_W; tb_vol_x = x; x -= TASKBAR_PAD; x -= TASKBAR_BTN_W; tb_plus_x = x; x -= TASKBAR_PAD; x -= TASKBAR_BTN_W; tb_minus_x = x; x -= TASKBAR_PAD; x -= TASKBAR_ICON_W; tb_spk_x = x; /* Restore button on the far left: \"[]\" when a window is minimized. tb_restore_w = 2 * FONT_W; tb_restore_x = TASKBAR_PAD; } /* 8x8 speaker glyph: body on the left, two sound arcs to the right.", "kind": "function", "line": 750, "name": "draw_speaker_icon", "signature": "static void draw_speaker_icon(int x, int y, uint8_t color)"}, {"kind": "function", "line": 758, "name": "taskbar_render", "signature": "static void taskbar_render(void)"}, {"doc": "Redraw the clock only when the wall-clock second changes. Only the taskbar strip is repainted, so the cursor must be re-saved (cursor_visible = 0) only when it actually sat over the taskbar; otherwise it keeps its saved * background and moves normally, which is what prevents pointer trails.", "kind": "function", "line": 785, "name": "taskbar_tick", "signature": "static void taskbar_tick(void)"}, {"doc": "Click handling for the speaker icon and -/+ buttons, plus the restore * button that reappears while the terminal window is minimized.", "kind": "function", "line": 799, "name": "taskbar_handle_click", "signature": "static void taskbar_handle_click(int mx, int my)"}, {"doc": "return; } if (mx >= tb_minus_x && mx < tb_minus_x + TASKBAR_BTN_W) { v = pcspk_get_volume(); pcspk_set_volume(v > TASKBAR_VOL_STEP ? v - TASKBAR_VOL_STEP : 0); return; } if (mx >= tb_plus_x && mx < tb_plus_x + TASKBAR_BTN_W) { pcspk_set_volume(pcspk_get_volume() + TASKBAR_VOL_STEP); return; } } /* ---- Scrollbar (attached to the window's right edge) ----", "kind": "function", "line": 833, "name": "draw_scrollbar", "signature": "static void draw_scrollbar(void)"}, {"doc": "Render one display row at viewport row `vrow` for the absolute display row `abs`. Rows outside the history (above the oldest line, or below the active line) are blanked. When this is a row of the active line and a text cursor * is shown, the cursor cell is drawn inverted (COL_TERM_CUR background).", "kind": "function", "line": 869, "name": "render_row", "signature": "static void render_row(int vrow, int abs)"}, {"doc": "Full repaint of the terminal window from the logical history, honouring the current scroll position. Used on desktop redraws, resize, wrap, scroll and * any structural change.", "kind": "function", "line": 897, "name": "term_render", "signature": "static void term_render(void)"}, {"doc": "Repaint only the bottom region that a live edit touches: from the active line's first visible display row to the bottom of the window. Used for a character append/backspace that does not change the number of display rows, * so typing stays cheap while remaining correct.", "kind": "function", "line": 910, "name": "term_render_active", "signature": "static void term_render_active(void)"}, {"kind": "function", "line": 951, "name": "line", "signature": "* display stale bytes left over from a longer previous line (e.g. the prompt\n * would show the ta..."}, {"kind": "function", "line": 993, "name": "vga_fb_puts_term", "signature": "void vga_fb_puts_term(const char *s)"}, {"doc": "Show the text cursor at character column `col` of the active line, or hide * it with a negative column. The cursor is a block rendered by render_row.", "kind": "function", "line": 1000, "name": "vga_fb_text_cursor", "signature": "void vga_fb_text_cursor(int col)"}, {"doc": "Show the text cursor at character column `col` of the active line, or hide * it with a negative column. The cursor is a block rendered by render_row. void vga_fb_text_cursor(int col) { if (col < 0) { term_cursor_col = -1; } else { term_cursor_col = col; } disp_clamp(); term_render(); } /* Hide the text cursor (used when a live edit starts or the window redraws).", "kind": "function", "line": 1008, "name": "vga_fb_hide_text_cursor", "signature": "void vga_fb_hide_text_cursor(void)"}, {"kind": "function", "line": 1011, "name": "vga_fb_draw_desktop", "signature": "void vga_fb_draw_desktop(void)"}, {"doc": "Any redraw changed the pixels under the cursor; force a fresh save so a * stale snapshot never leaves pointer trails behind. cursor_visible = 0; } /* ---- Keyboard shortcuts ----", "kind": "function", "line": 1037, "name": "vga_fb_toggle_fullscreen", "signature": "void vga_fb_toggle_fullscreen(void)"}, {"doc": "Minimize/restore the terminal window. The content is not touched; the window is merely hidden and repainted on restore. Fullscreen and minimize * are mutually exclusive: entering fullscreen un-minimizes.", "kind": "function", "line": 1047, "name": "vga_fb_toggle_minimize", "signature": "void vga_fb_toggle_minimize(void)"}, {"kind": "function", "line": 1053, "name": "vga_fb_is_minimized", "signature": "int vga_fb_is_minimized(void)"}, {"kind": "function", "line": 1055, "name": "vga_fb_is_fullscreen", "signature": "int vga_fb_is_fullscreen(void)"}, {"kind": "function", "line": 1076, "name": "vga_fb_move_terminal", "signature": "void vga_fb_move_terminal(int dx, int dy)"}, {"doc": "--- Tiling window operations (Alt = WM modifier) ---- Snap places the window in a screen half or quadrant and sizes it to that region; resize grows/shrinks the persisted size. Both exit fullscreen and * preserve the new size across redraws.", "kind": "function", "line": 1105, "name": "term_max_cols", "signature": "static int term_max_cols(void)"}, {"kind": "function", "line": 1109, "name": "term_max_rows", "signature": "static int term_max_rows(void)"}, {"kind": "function", "line": 1113, "name": "term_finish_layout", "signature": "static void term_finish_layout(void)"}, {"kind": "function", "line": 1119, "name": "vga_fb_snap_window", "signature": "void vga_fb_snap_window(int zone)"}, {"kind": "function", "line": 1141, "name": "vga_fb_resize", "signature": "void vga_fb_resize(int dcols, int drows)"}, {"doc": "int ncol = term_sz_cols + dcols; int nrow = term_sz_rows + drows; if (ncol < 1) ncol = 1; if (nrow < 1) nrow = 1; if (ncol > mc) ncol = mc; if (nrow > mr) nrow = mr; if (ncol == term_sz_cols && nrow == term_sz_rows && !term_fullscreen) return; term_fullscreen = 0; term_sz_cols = ncol; term_sz_rows = nrow; term_finish_layout(); } /* Alt+0: restore the default window position and size (not just position).", "kind": "function", "line": 1159, "name": "vga_fb_reset_default", "signature": "void vga_fb_reset_default(void)"}, {"doc": "--- Desktop shortcut icons ---- Shortcuts are defined in etc/shortcuts on the ramdisk, one per line: name|icon_path|command Icons are 32x32 PNG files decoded at boot via stbi_load_file and mapped to the icon palette (VGA DAC indices 240-255). The cached palette-indexed * pixels are redrawn on every desktop paint; mouse clicks launch the command. static struct desktop_shortcut shortcuts[MAX_SHORTCUTS]; static int shortcut_count; static int shortcuts_loaded; /* Find a pipe-delimited field by index (0-based).", "kind": "function", "line": 1199, "name": "pipe_field", "signature": "static const char *pipe_field(const char *line, int idx, char *buf, int buflen)"}, {"kind": "function", "line": 1214, "name": "desktop_shortcuts_load", "signature": "void desktop_shortcuts_load(void)"}, {"kind": "function", "line": 1273, "name": "desktop_shortcuts_draw", "signature": "void desktop_shortcuts_draw(void)"}, {"kind": "function", "line": 1295, "name": "desktop_shortcuts_hit_test", "signature": "const char *desktop_shortcuts_hit_test(int mx, int my)"}, {"doc": "} const char *desktop_shortcuts_hit_test(int mx, int my) { for (int i = 0; i < shortcut_count; i++) { struct desktop_shortcut *sc = &shortcuts[i]; if (mx >= sc->x && mx < sc->x + ICON_W && my >= sc->y && my < sc->y + ICON_H + ICON_LABEL_H) { return sc->cmd; } } return 0; } /* ---- Mouse ----", "kind": "function", "line": 1308, "name": "vga_fb_mouse_tick", "signature": "void vga_fb_mouse_tick(void)"}, {"kind": "function", "line": 1431, "name": "vga_fb_mouse_init", "signature": "void vga_fb_mouse_init(void)"}, {"kind": "function", "line": 1446, "name": "vga_fb_init", "signature": "void vga_fb_init(void)"}, {"kind": "macro", "line": 163, "name": "CURSOR_TIP_X"}, {"kind": "macro", "line": 164, "name": "CURSOR_TIP_Y"}, {"kind": "macro", "line": 374, "name": "WIN_DEF_COLS"}, {"kind": "macro", "line": 375, "name": "WIN_DEF_ROWS"}, {"kind": "macro", "line": 376, "name": "WIN_DEF_X"}, {"kind": "macro", "line": 377, "name": "WIN_DEF_Y"}, {"kind": "macro", "line": 397, "name": "FB_OFFSET"}]}, {"doc": "include \"kernel.h\" include \"net.h\" include \"tls.h\" include \"bootdefs.h\" include \"minifs.h\" include \"ide.h\" include \"block.h\" include \"sched.h\" include \"vga_fb.h\" include \"pcspk.h\" include \"sb16.h\" include \"smp.h\" include \"rtc.h\" include \"lz4_kernel.h\" include \"drivers/kbd.h\" include \"arch/x86/msr.h\" define XXH_STATIC_LINKING_ONLY include \"xxhash.h\" include \"stb/stb_api.h\" include \"zip.h\" ================================================================", "id": "kernel.c", "kind": "module", "label": "kernel.c", "language": "c", "sha256": "760bacee26c83704", "symbol_count": 31, "symbols": [{"doc": "================================================================ VGA driver * ================================================================ /* vga_mode13h and graphics_program_ran moved to kernel/exec.c static int vga_x, vga_y; static char vga_color = 0x07; /* light grey on black", "kind": "function", "line": 29, "name": "vga_get_x", "signature": "int vga_get_x(void)"}, {"kind": "function", "line": 31, "name": "vga_get_y", "signature": "int vga_get_y(void)"}, {"kind": "function", "line": 32, "name": "vga_set_xy", "signature": "void vga_set_xy(int x, int y)"}, {"kind": "function", "line": 33, "name": "vga_get_color", "signature": "char vga_get_color(void)"}, {"doc": "================================================================ VGA driver * ================================================================ /* vga_mode13h and graphics_program_ran moved to kernel/exec.c static int vga_x, vga_y; static char vga_color = 0x07; /* light grey on black int vga_get_x(void) { return vga_x; } int vga_get_y(void) { return vga_y; } void vga_set_xy(int x, int y) { vga_x = x; vga_y = y; } char vga_get_color(void) { return vga_color; } /* Scrollback ring moved to kernel/scrollback.c", "kind": "function", "line": 36, "name": "vga_offset", "signature": "static inline unsigned vga_offset(int x, int y)"}, {"kind": "function", "line": 38, "name": "vga_clear", "signature": "void vga_clear(void)"}, {"kind": "function", "line": 49, "name": "vga_set_cursor", "signature": "void vga_set_cursor(int x, int y)"}, {"kind": "function", "line": 69, "name": "vga_scroll", "signature": "void vga_scroll(void)"}, {"kind": "function", "line": 88, "name": "vga_newline", "signature": "void vga_newline(void)"}, {"doc": "Toggle the hardware text cursor. bit 5 of VGA index 0x0A disables the * cursor; clearing it brings the cursor back.", "kind": "function", "line": 99, "name": "vga_cursor_enable", "signature": "void vga_cursor_enable(int on)"}, {"kind": "function", "line": 105, "name": "vga_raw_space", "signature": "static void vga_raw_space(void)"}, {"kind": "function", "line": 128, "name": "redir_grow", "signature": "static int redir_grow(void)"}, {"kind": "function", "line": 138, "name": "redirect_active", "signature": "int redirect_active(void)"}, {"kind": "function", "line": 140, "name": "redirect_putc", "signature": "static int redirect_putc(char c)"}, {"kind": "function", "line": 147, "name": "redirect_suspend", "signature": "int redirect_suspend(void)"}, {"kind": "function", "line": 153, "name": "redirect_resume", "signature": "void redirect_resume(int was)"}, {"kind": "function", "line": 157, "name": "redirect_begin", "signature": "int redirect_begin(void)"}, {"kind": "function", "line": 165, "name": "redirect_commit", "signature": "int redirect_commit(const char *path, int append_mode)"}, {"kind": "function", "line": 189, "name": "vga_putc", "signature": "void vga_putc(char c)"}, {"kind": "function", "line": 233, "name": "vga_puts", "signature": "void vga_puts(const char *s)"}, {"kind": "function", "line": 317, "name": "syscall_init", "signature": "void syscall_init(void)"}, {"doc": "================================================================ Libc symbol registration * ================================================================", "kind": "function", "line": 560, "name": "register_libc_symbols", "signature": "static void register_libc_symbols(void)"}, {"kind": "function", "line": 635, "name": "__attribute__", "signature": "__attribute__((section(\".init.text\")))\nvoid kmain(void)"}, {"kind": "macro", "line": 17, "name": "XXH_STATIC_LINKING_ONLY"}, {"kind": "macro", "line": 119, "name": "REDIR_INITIAL_CAP"}, {"kind": "macro", "line": 121, "name": "REDIR_MAX_BYTES"}, {"kind": "macro", "line": 266, "name": "USER_WIN_LO"}, {"kind": "macro", "line": 267, "name": "USER_WIN_HI"}, {"kind": "macro", "line": 268, "name": "STR_"}, {"kind": "macro", "line": 269, "name": "STR"}, {"kind": "macro", "line": 307, "name": "KSYM_MAX"}]}, {"doc": "ifndef KERNEL_H define KERNEL_H define EFAULT (-14) The user-window memory layout (load base, stack, brk cap, graphics", "id": "kernel.h", "kind": "module", "label": "kernel.h", "language": "h", "sha256": "d6350951113edb45", "symbol_count": 64, "symbols": [{"doc": "close. Never modified after open. handle: driver-private state, valid between open and close. pos: current file position. Updated by read/write. Never exceeds the file's size after a read. mode: 0=read, 1=write, 2=append. Set by open, immutable after. is_console: 1 for stdin/stdout/stderr (console I/O path). Invariants: 1. vfs_open returns a vfs_file_t with ops != NULL on success. 2. Every successful open must be paired with exactly one close. 3. read/write on a closed handle is undefined (debug builds assert). 4. VFS_MAX_MOUNTS (8) limits concurrent registrations. 5. Prefix matching is longest-prefix-first. * =========================================================================", "kind": "struct", "line": 248, "name": "vfs_ops"}, {"kind": "struct", "line": 257, "name": "vfs_file"}, {"doc": "The user-window memory layout (load base, stack, brk cap, graphics back-buffers, framebuffer, kernel heap) is defined ONCE in the ABI header shared with ring-3 programs. The kernel derives its own constants from it, so growing the window or moving a back-buffer cannot leave the two sides disagreeing -- that mismatch is what made the lua/MicroPython in-OS tests and DOOM's window go dark when the layout moved. Do not hardcode a layout * address in the kernel or in a ring-3 program; put it in minios_abi.h. #include \"minios_abi.h\" #include \"vma.h\" /* ========== Port I/O helpers ========== define ALIGN_UP(x, a) (((x) + (a) - 1) & ~((a) - 1)) ifndef PORT_IO_DEFINED define PORT_IO_DEFINED", "kind": "function", "line": 20, "name": "outb", "signature": "static inline void outb(unsigned short port, unsigned char val)"}, {"kind": "function", "line": 23, "name": "inb", "signature": "static inline unsigned char inb(unsigned short port)"}, {"kind": "function", "line": 28, "name": "outw", "signature": "static inline void outw(unsigned short port, unsigned short val)"}, {"kind": "function", "line": 31, "name": "inw", "signature": "static inline unsigned short inw(unsigned short port)"}, {"kind": "macro", "line": 2, "name": "KERNEL_H"}, {"kind": "macro", "line": 3, "name": "EFAULT"}, {"kind": "macro", "line": 17, "name": "ALIGN_UP"}, {"kind": "macro", "line": 19, "name": "PORT_IO_DEFINED"}, {"kind": "macro", "line": 39, "name": "VGA_BASE"}, {"kind": "macro", "line": 40, "name": "VGA_COLS"}, {"kind": "macro", "line": 41, "name": "VGA_ROWS"}, {"kind": "macro", "line": 75, "name": "KEY_BACKSPACE"}, {"kind": "macro", "line": 76, "name": "KEY_ENTER"}, {"kind": "macro", "line": 77, "name": "KEY_LSHIFT"}, {"kind": "macro", "line": 78, "name": "KEY_RSHIFT"}, {"kind": "macro", "line": 79, "name": "KEY_CAPS"}, {"kind": "macro", "line": 80, "name": "KEY_E0"}, {"kind": "macro", "line": 81, "name": "KEY_UP"}, {"kind": "macro", "line": 82, "name": "KEY_DOWN"}, {"kind": "macro", "line": 83, "name": "KEY_PGUP"}, {"kind": "macro", "line": 84, "name": "KEY_PGDN"}, {"kind": "macro", "line": 85, "name": "KEY_ESC"}, {"kind": "macro", "line": 86, "name": "KEY_CSI"}, {"kind": "macro", "line": 87, "name": "KEY_ARR_UP"}, {"kind": "macro", "line": 88, "name": "KEY_ARR_DOWN"}, {"kind": "macro", "line": 89, "name": "KEY_ARR_RIGHT"}, {"kind": "macro", "line": 90, "name": "KEY_ARR_LEFT"}, {"kind": "macro", "line": 91, "name": "KEY_HOME_SEQ"}, {"kind": "macro", "line": 92, "name": "KEY_END_SEQ"}, {"kind": "macro", "line": 93, "name": "KEY_PGUP_SEQ"}, {"kind": "macro", "line": 94, "name": "KEY_PGDN_SEQ"}, {"kind": "macro", "line": 95, "name": "KEY_LEFT"}, {"kind": "macro", "line": 96, "name": "KEY_RIGHT"}, {"kind": "macro", "line": 97, "name": "KEY_LCTRL"}, {"kind": "macro", "line": 98, "name": "KEY_F5"}, {"kind": "macro", "line": 99, "name": "KEY_F11"}, {"kind": "macro", "line": 100, "name": "KEY_TILDE"}, {"kind": "macro", "line": 101, "name": "KEY_LALT"}, {"kind": "macro", "line": 102, "name": "KEY_RALT"}, {"kind": "macro", "line": 103, "name": "KEY_HOME"}, {"kind": "macro", "line": 104, "name": "KEY_END"}, {"kind": "macro", "line": 120, "name": "USER_LOAD_BASE"}, {"kind": "macro", "line": 121, "name": "USER_LOAD_END"}, {"kind": "macro", "line": 122, "name": "USER_STACK_SIZE"}, {"kind": "macro", "line": 123, "name": "USER_STACK_TOP"}, {"kind": "macro", "line": 124, "name": "USER_STACK_BASE"}, {"kind": "macro", "line": 125, "name": "USER_BRK_END"}, {"kind": "macro", "line": 130, "name": "SYS_KSTK_TOP"}, {"kind": "macro", "line": 131, "name": "SYS_KSTK_BASE"}, {"kind": "macro", "line": 132, "name": "HEAP_BASE"}, {"kind": "macro", "line": 134, "name": "HEAP_SIZE"}, {"kind": "macro", "line": 173, "name": "RAMDISK_MAX_FILES"}, {"kind": "macro", "line": 174, "name": "RAMDISK_FNAME_LEN"}, {"kind": "macro", "line": 193, "name": "RD_DATA_MAX"}, {"kind": "macro", "line": 299, "name": "EOF"}, {"kind": "macro", "line": 395, "name": "KSYM_MAX"}, {"kind": "macro", "line": 397, "name": "KPROG_MAX"}, {"kind": "macro", "line": 468, "name": "EI_NIDENT"}, {"kind": "macro", "line": 492, "name": "ET_REL"}, {"kind": "macro", "line": 494, "name": "ET_EXEC"}, {"kind": "macro", "line": 495, "name": "ET_DYN"}, {"kind": "macro", "line": 508, "name": "KFD_MAX"}]}, {"doc": "ifndef LZ4_KERNEL_H define LZ4_KERNEL_H", "id": "lz4_kernel.h", "kind": "module", "label": "lz4_kernel.h", "language": "h", "sha256": "754626da274a1d10", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 2, "name": "LZ4_KERNEL_H"}]}, {"id": "mcp/__init__.py", "kind": "module", "label": "__init__.py", "language": "py", "sha256": "9a62779e844a15fa", "symbol_count": 0, "symbols": []}, {"id": "mcp/mcp_dbg_driver.py", "kind": "module", "label": "mcp_dbg_driver.py", "language": "py", "sha256": "d729864610ee717c", "symbol_count": 6, "symbols": [{"kind": "class", "line": 14, "name": "Client", "signature": "class Client"}, {"kind": "method", "line": 62, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 15, "name": "__init__", "signature": "def __init__(self)"}, {"kind": "method", "line": 26, "name": "request", "signature": "def request(self, method, params)"}, {"kind": "method", "line": 44, "name": "tool", "signature": "def tool(self, name, params)"}, {"kind": "method", "line": 52, "name": "close", "signature": "def close(self)"}]}, {"id": "mcp/mcp_dogfood.py", "kind": "module", "label": "mcp_dogfood.py", "language": "py", "sha256": "0fca1f780714df8f", "symbol_count": 6, "symbols": [{"kind": "class", "line": 18, "name": "Client", "signature": "class Client"}, {"kind": "method", "line": 76, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 19, "name": "__init__", "signature": "def __init__(self, addons_dir)"}, {"kind": "method", "line": 38, "name": "request", "signature": "def request(self, method, params)"}, {"kind": "method", "line": 56, "name": "tool", "signature": "def tool(self, name, params)"}, {"kind": "method", "line": 66, "name": "close", "signature": "def close(self)"}]}, {"id": "mcp/minios_addons.py", "kind": "module", "label": "minios_addons.py", "language": "py", "sha256": "26bc9344556d357f", "symbol_count": 16, "symbols": [{"doc": "Expected marketplace failure, reported to the client as isError.", "kind": "class", "line": 42, "name": "AddonError", "signature": "class AddonError(Exception)"}, {"kind": "method", "line": 48, "name": "_clean", "signature": "def _clean(s)"}, {"kind": "method", "line": 52, "name": "_unquote", "signature": "def _unquote(v)"}, {"doc": "Parse the strict YAML subset. Returns the addon dict.\n\nGrammar: flat `key: value` lines; `install:` opens an indented block\nwith `repo_url:`, a `files:` list of `- src:`/`dst:` pairs, and\n`build:` / `verify:` lists of `- ...` command lines (`verify` items\nmay carry a nested `exit_code:`). Everything else is a parse error\nwith its line number.", "kind": "method", "line": 59, "name": "parse_addon_yaml", "signature": "def parse_addon_yaml(text)"}, {"doc": "Check bounds and character sets. Raises AddonError.", "kind": "method", "line": 189, "name": "validate_addon", "signature": "def validate_addon(addon, source)"}, {"doc": "dst paths live on the ramdisk: relative, no '..', bounded charset.", "kind": "method", "line": 250, "name": "validate_addon_path", "signature": "def validate_addon_path(path)"}, {"doc": "Build/verify lines are single printable-ASCII shell commands.", "kind": "method", "line": 264, "name": "validate_shell_line", "signature": "def validate_shell_line(line)"}, {"doc": "Load every addon yaml; each entry is a dict or an error string.", "kind": "method", "line": 278, "name": "load_addons_dir", "signature": "def load_addons_dir(addons_dir)"}, {"doc": "Split a source into editor-sized chunks. Raises AddonError.", "kind": "method", "line": 302, "name": "split_for_editor", "signature": "def split_for_editor(text)"}, {"kind": "method", "line": 327, "name": "exit_code_of", "signature": "def exit_code_of(text)"}, {"doc": "Host-side record of installed addons (system temp dir).", "kind": "class", "line": 332, "name": "AddonState", "signature": "class AddonState"}, {"doc": "Install one validated addon into the booted MiniOS session.\n\nFailure at any step raises AddonError; upload parts are removed and\nnothing is recorded, so a half-installed package is never reported.", "kind": "method", "line": 356, "name": "install_addon", "signature": "def install_addon(session, addon, cfg)"}, {"kind": "method", "line": 69, "name": "fail", "signature": "def fail(lineno, why)"}, {"kind": "method", "line": 335, "name": "__init__", "signature": "def __init__(self, path)"}, {"kind": "method", "line": 338, "name": "load", "signature": "def load(self)"}, {"kind": "method", "line": 348, "name": "save", "signature": "def save(self, addons)"}]}, {"id": "mcp/minios_mcp.py", "kind": "module", "label": "minios_mcp.py", "language": "py", "sha256": "d6aeb09687624924", "symbol_count": 50, "symbols": [{"doc": "Resolve the configuration: defaults overridden by the environment.", "kind": "function", "line": 68, "name": "env_config", "signature": "def env_config()"}, {"doc": "Clamp a requested wait to the bounded timeout range.", "kind": "function", "line": 86, "name": "clamp_timeout", "signature": "def clamp_timeout(ms)"}, {"doc": "Reject file names the ramdisk or the shell would mishandle.", "kind": "function", "line": 99, "name": "validate_path", "signature": "def validate_path(name)"}, {"doc": "Reject lines the kernel readline cannot carry (printable ASCII).", "kind": "function", "line": 115, "name": "validate_content", "signature": "def validate_content(text)"}, {"doc": "Expected tool failure, reported to the client as isError.", "kind": "class", "line": 128, "name": "ToolError", "signature": "class ToolError(Exception)"}, {"doc": "JSON-RPC level failure carrying a standard error code.", "kind": "class", "line": 134, "name": "RPCError", "signature": "class RPCError(Exception)"}, {"doc": "Bounded console log with absolute byte positions and waits.", "kind": "class", "line": 143, "name": "LogBuffer", "signature": "class LogBuffer"}, {"doc": "One QEMU child, one pty, one console log, one consume cursor.", "kind": "class", "line": 199, "name": "MiniOSSession", "signature": "class MiniOSSession"}, {"kind": "method", "line": 560, "name": "subprocess_launch", "signature": "def subprocess_launch(cfg, slave_fd)"}, {"doc": "JSON-RPC dispatch loop over stdio.", "kind": "class", "line": 711, "name": "MCPServer", "signature": "class MCPServer"}, {"kind": "method", "line": 868, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 137, "name": "__init__", "signature": "def __init__(self, code, message)"}, {"kind": "method", "line": 146, "name": "__init__", "signature": "def __init__(self, cap)"}, {"kind": "method", "line": 152, "name": "append", "signature": "def append(self, data)"}, {"kind": "method", "line": 160, "name": "bytes_from", "signature": "def bytes_from(self, pos)"}, {"kind": "method", "line": 165, "name": "text_from", "signature": "def text_from(self, pos, end)"}, {"kind": "method", "line": 172, "name": "find", "signature": "def find(self, marker, start)"}, {"doc": "Block until marker appears at or after start; return position.", "kind": "method", "line": 176, "name": "wait_for", "signature": "def wait_for(self, marker, start, timeout_ms)"}, {"kind": "method", "line": 189, "name": "_find_locked", "signature": "def _find_locked(self, marker, start)"}, {"kind": "method", "line": 202, "name": "__init__", "signature": "def __init__(self, cfg)"}, {"kind": "method", "line": 213, "name": "booted", "signature": "def booted(self)"}, {"kind": "method", "line": 216, "name": "status", "signature": "def status(self)"}, {"kind": "method", "line": 225, "name": "_reap_stale", "signature": "def _reap_stale(self)"}, {"kind": "method", "line": 261, "name": "_drop_pidfile", "signature": "def _drop_pidfile(self)"}, {"kind": "method", "line": 267, "name": "boot", "signature": "def boot(self, timeout_ms)"}, {"kind": "method", "line": 302, "name": "_read_loop", "signature": "def _read_loop(self)"}, {"kind": "method", "line": 312, "name": "_close_pty", "signature": "def _close_pty(self)"}, {"kind": "method", "line": 322, "name": "_write_line", "signature": "def _write_line(self, line)"}, {"doc": "Editor content lines may be empty (blank lines in the file).", "kind": "method", "line": 331, "name": "_write_editor_line", "signature": "def _write_editor_line(self, line)"}, {"kind": "method", "line": 339, "name": "send", "signature": "def send(self, line, timeout_ms)"}, {"kind": "method", "line": 350, "name": "expect", "signature": "def expect(self, marker, timeout_ms)"}, {"kind": "method", "line": 364, "name": "snapshot", "signature": "def snapshot(self, max_bytes)"}, {"doc": "Run a generic scenario: send a list of shell commands, then assert\nthat each expected marker appears (and each refuted marker does not)\nin the output those commands produced. Returns a verdict plus the\ncaptured transcript. This is the reusable harness behind every in-OS\nfeature test, so a session never has to hand-roll a QEMU boot and\nmarker-assertion script.", "kind": "method", "line": 374, "name": "run_test", "signature": "def run_test(self, commands, expect, refute, timeout_ms)"}, {"kind": "method", "line": 430, "name": "cat", "signature": "def cat(self, path)"}, {"doc": "Run a MicroPython script (or `-c` code) inside MiniOS and return\nits output, including the `exit code: N` line. MicroPython now runs\nreliably thanks to the kernel fix that zeroes the initial registers\nat the ELF entry (rdx is rtld_fini for glibc's _start).", "kind": "method", "line": 436, "name": "run_python", "signature": "def run_python(self, script, args, timeout_ms)"}, {"doc": "Read a ramdisk file and return exactly its bytes.\n\nThe serial driver emits CRLF; the kernel cat appends one newline\nafter the content, so the body is extracted by stripping the echoed\ncommand line, the prompt and that single trailing newline.", "kind": "method", "line": 447, "name": "cat_body", "signature": "def cat_body(self, path, missing_ok)"}, {"kind": "method", "line": 473, "name": "_cleanup_parts", "signature": "def _cleanup_parts(self, parts)"}, {"kind": "method", "line": 480, "name": "write", "signature": "def write(self, path, content)"}, {"kind": "method", "line": 517, "name": "poweroff", "signature": "def poweroff(self, timeout_ms)"}, {"kind": "method", "line": 537, "name": "terminate", "signature": "def terminate(self)"}, {"kind": "method", "line": 556, "name": "close", "signature": "def close(self)"}, {"kind": "method", "line": 714, "name": "__init__", "signature": "def __init__(self, cfg)"}, {"kind": "method", "line": 718, "name": "run", "signature": "def run(self)"}, {"kind": "method", "line": 726, "name": "_handle", "signature": "def _handle(self, line)"}, {"kind": "method", "line": 752, "name": "_initialize", "signature": "def _initialize(self, params)"}, {"kind": "method", "line": 759, "name": "_call", "signature": "def _call(self, params)"}, {"kind": "method", "line": 776, "name": "_dispatch", "signature": "def _dispatch(self, name, args)"}, {"kind": "method", "line": 822, "name": "_addons_list", "signature": "def _addons_list(self)"}, {"kind": "method", "line": 843, "name": "_addon_install", "signature": "def _addon_install(self, args)"}, {"kind": "method", "line": 864, "name": "_reply", "signature": "def _reply(self, msg)"}]}, {"doc": "Mutation testing for the MiniOS MCP bridge. Every mutant is injected into a private copy of minios_mcp.py and run against the unit and BDD suite. A mutant that survives (suite fully green) exposes a test gap. Suites run in parallel (one worker per core, MUTATE_JOBS to override); each mutant gets its own pid file and addon state so the runs stay independent. Mutation format: \"name | sed -i expression | file\"", "id": "mcp/mutate_mcp.sh", "kind": "module", "label": "mutate_mcp.sh", "language": "sh", "sha256": "fff886f5090d023d", "symbol_count": 1, "symbols": [{"doc": "Each mutant runs the suite in its own directory with its own pid file and addon state, so the runs are independent and may execute in parallel. The worker writes the exit code; the loop below maps it onto the verdict.", "kind": "function", "line": 115, "name": "run_one"}]}, {"id": "mcp/test_minios_mcp.py", "kind": "module", "label": "test_minios_mcp.py", "language": "py", "sha256": "884c11e8239cc94b", "symbol_count": 99, "symbols": [{"kind": "function", "line": 29, "name": "load_module", "signature": "def load_module()"}, {"kind": "function", "line": 52, "name": "have_qemu", "signature": "def have_qemu()"}, {"doc": "Child process running minios_mcp.py, driven over stdio JSON-RPC.", "kind": "class", "line": 58, "name": "MCPServer", "signature": "class MCPServer"}, {"kind": "class", "line": 141, "name": "TestProtocol", "signature": "class TestProtocol(TestCase)"}, {"kind": "class", "line": 205, "name": "TestValidation", "signature": "class TestValidation(TestCase)"}, {"kind": "class", "line": 254, "name": "TestLogBuffer", "signature": "class TestLogBuffer(TestCase)"}, {"doc": "Fail-fast for QEMU-backed classes: once a tool call has hit a\nconsole wait timeout the bridge is stuck (a mutated marker, a hung\nshell) and every remaining test would only burn its own timeout, so\nthey are skipped instead.", "kind": "class", "line": 286, "name": "_ConsoleBDDBase", "signature": "class _ConsoleBDDBase(TestCase)"}, {"kind": "class", "line": 322, "name": "TestMiniOSBDD", "signature": "class TestMiniOSBDD(_ConsoleBDDBase)"}, {"kind": "class", "line": 457, "name": "TestAddonYaml", "signature": "class TestAddonYaml(TestCase)"}, {"kind": "class", "line": 519, "name": "TestAddonHelpers", "signature": "class TestAddonHelpers(TestCase)"}, {"doc": "In-memory stand-in for the MiniOS session (no QEMU).", "kind": "class", "line": 559, "name": "FakeOS", "signature": "class FakeOS"}, {"kind": "class", "line": 625, "name": "TestAddonInstall", "signature": "class TestAddonInstall(TestCase)"}, {"doc": "Install a fixture addon from a local git repo into the real OS.", "kind": "class", "line": 760, "name": "TestAddonBDD", "signature": "class TestAddonBDD(_ConsoleBDDBase)"}, {"kind": "method", "line": 61, "name": "__init__", "signature": "def __init__(self, env_extra)"}, {"kind": "method", "line": 80, "name": "initialize", "signature": "def initialize(self)"}, {"kind": "method", "line": 84, "name": "request", "signature": "def request(self, method, params)"}, {"kind": "method", "line": 91, "name": "raw", "signature": "def raw(self, line)"}, {"kind": "method", "line": 96, "name": "_read_response", "signature": "def _read_response(self)"}, {"kind": "method", "line": 102, "name": "_roundtrip", "signature": "def _roundtrip(self, msg)"}, {"kind": "method", "line": 110, "name": "tool", "signature": "def tool(self, name, params)"}, {"kind": "method", "line": 120, "name": "close", "signature": "def close(self)"}, {"kind": "method", "line": 143, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 149, "name": "tearDownClass", "signature": "def tearDownClass(cls)"}, {"kind": "method", "line": 152, "name": "test_initialize", "signature": "def test_initialize(self)"}, {"kind": "method", "line": 158, "name": "test_tools_list", "signature": "def test_tools_list(self)"}, {"kind": "method", "line": 166, "name": "test_ping", "signature": "def test_ping(self)"}, {"kind": "method", "line": 170, "name": "test_unknown_method", "signature": "def test_unknown_method(self)"}, {"kind": "method", "line": 174, "name": "test_malformed_json", "signature": "def test_malformed_json(self)"}, {"kind": "method", "line": 178, "name": "test_unknown_tool", "signature": "def test_unknown_tool(self)"}, {"kind": "method", "line": 183, "name": "test_send_not_booted", "signature": "def test_send_not_booted(self)"}, {"kind": "method", "line": 189, "name": "test_send_empty_line_rejected", "signature": "def test_send_empty_line_rejected(self)"}, {"kind": "method", "line": 195, "name": "test_test_not_booted", "signature": "def test_test_not_booted(self)"}, {"kind": "method", "line": 207, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 212, "name": "test_path_accepts_plain_names", "signature": "def test_path_accepts_plain_names(self)"}, {"kind": "method", "line": 216, "name": "test_path_rejects_unsafe", "signature": "def test_path_rejects_unsafe(self)"}, {"kind": "method", "line": 220, "name": "test_path_rejects_long", "signature": "def test_path_rejects_long(self)"}, {"kind": "method", "line": 223, "name": "test_content_accepts_ascii", "signature": "def test_content_accepts_ascii(self)"}, {"kind": "method", "line": 226, "name": "test_content_rejects_non_printable", "signature": "def test_content_rejects_non_printable(self)"}, {"kind": "method", "line": 230, "name": "test_timeout_clamped", "signature": "def test_timeout_clamped(self)"}, {"kind": "method", "line": 234, "name": "test_write_rejects_line_too_long", "signature": "def test_write_rejects_line_too_long(self)"}, {"kind": "method", "line": 243, "name": "test_write_rejects_too_many_lines", "signature": "def test_write_rejects_too_many_lines(self)"}, {"kind": "method", "line": 256, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 261, "name": "test_bounds", "signature": "def test_bounds(self)"}, {"kind": "method", "line": 268, "name": "test_find_and_total", "signature": "def test_find_and_total(self)"}, {"kind": "method", "line": 275, "name": "test_cursor_prevents_stale_match", "signature": "def test_cursor_prevents_stale_match(self)"}, {"kind": "method", "line": 295, "name": "guard_server", "signature": "def guard_server(cls)"}, {"kind": "method", "line": 316, "name": "setUp", "signature": "def setUp(self)"}, {"kind": "method", "line": 324, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 331, "name": "tearDownClass", "signature": "def tearDownClass(cls)"}, {"kind": "method", "line": 335, "name": "test_t01_boot", "signature": "def test_t01_boot(self)"}, {"kind": "method", "line": 345, "name": "test_t02_expect", "signature": "def test_t02_expect(self)"}, {"kind": "method", "line": 352, "name": "test_t03_write_and_cat", "signature": "def test_t03_write_and_cat(self)"}, {"kind": "method", "line": 362, "name": "test_t04_toolchain_elf", "signature": "def test_t04_toolchain_elf(self)"}, {"kind": "method", "line": 373, "name": "test_t05_toolchain_cvm", "signature": "def test_t05_toolchain_cvm(self)"}, {"kind": "method", "line": 383, "name": "test_t06_selfhosted_compiler", "signature": "def test_t06_selfhosted_compiler(self)"}, {"kind": "method", "line": 389, "name": "test_t07_bin_command_path", "signature": "def test_t07_bin_command_path(self)"}, {"kind": "method", "line": 397, "name": "test_t08_python_script", "signature": "def test_t08_python_script(self)"}, {"kind": "method", "line": 404, "name": "test_t09_py_eval", "signature": "def test_t09_py_eval(self)"}, {"kind": "method", "line": 409, "name": "test_t10_minios_test", "signature": "def test_t10_minios_test(self)"}, {"kind": "method", "line": 430, "name": "test_t11_poweroff_and_reboot", "signature": "def test_t11_poweroff_and_reboot(self)"}, {"kind": "method", "line": 459, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 469, "name": "test_parse_valid", "signature": "def test_parse_valid(self)"}, {"kind": "method", "line": 479, "name": "test_validate_accepts_valid", "signature": "def test_validate_accepts_valid(self)"}, {"kind": "method", "line": 483, "name": "test_unknown_key_rejected", "signature": "def test_unknown_key_rejected(self)"}, {"kind": "method", "line": 487, "name": "test_bad_indent_rejected", "signature": "def test_bad_indent_rejected(self)"}, {"kind": "method", "line": 491, "name": "test_validate_rejects_bad_dst", "signature": "def test_validate_rejects_bad_dst(self)"}, {"kind": "method", "line": 496, "name": "test_validate_rejects_missing_name", "signature": "def test_validate_rejects_missing_name(self)"}, {"kind": "method", "line": 500, "name": "test_validate_rejects_long_build_line", "signature": "def test_validate_rejects_long_build_line(self)"}, {"kind": "method", "line": 508, "name": "test_validate_rejects_control_chars", "signature": "def test_validate_rejects_control_chars(self)"}, {"kind": "method", "line": 513, "name": "test_validate_rejects_empty_files", "signature": "def test_validate_rejects_empty_files(self)"}, {"kind": "method", "line": 521, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 531, "name": "test_split_for_editor_chunks", "signature": "def test_split_for_editor_chunks(self)"}, {"kind": "method", "line": 538, "name": "test_split_rejects_long_line", "signature": "def test_split_rejects_long_line(self)"}, {"kind": "method", "line": 542, "name": "test_split_rejects_non_ascii", "signature": "def test_split_rejects_non_ascii(self)"}, {"kind": "method", "line": 546, "name": "test_exit_code_of", "signature": "def test_exit_code_of(self)"}, {"kind": "method", "line": 551, "name": "test_state_roundtrip", "signature": "def test_state_roundtrip(self)"}, {"kind": "method", "line": 562, "name": "__init__", "signature": "def __init__(self, exit_codes)"}, {"kind": "method", "line": 569, "name": "booted", "signature": "def booted(self)"}, {"kind": "method", "line": 572, "name": "boot", "signature": "def boot(self, timeout_ms)"}, {"kind": "method", "line": 576, "name": "write", "signature": "def write(self, path, content)"}, {"kind": "method", "line": 583, "name": "send", "signature": "def send(self, line, timeout_ms)"}, {"kind": "method", "line": 607, "name": "cat_body", "signature": "def cat_body(self, path, missing_ok)"}, {"kind": "class", "line": 614, "name": "_toolerror", "signature": "class _toolerror(Exception)"}, {"kind": "method", "line": 619, "name": "_cleanup_parts", "signature": "def _cleanup_parts(self, parts)"}, {"kind": "method", "line": 627, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 659, "name": "tearDownClass", "signature": "def tearDownClass(cls)"}, {"kind": "method", "line": 664, "name": "make_addon", "signature": "def make_addon(self)"}, {"kind": "method", "line": 686, "name": "test_install_success", "signature": "def test_install_success(self)"}, {"kind": "method", "line": 699, "name": "test_install_mismatch_aborts_and_cleans", "signature": "def test_install_mismatch_aborts_and_cleans(self)"}, {"kind": "method", "line": 713, "name": "test_install_multi_chunk_reassembly", "signature": "def test_install_multi_chunk_reassembly(self)"}, {"kind": "method", "line": 744, "name": "test_install_verify_failure_aborts", "signature": "def test_install_verify_failure_aborts(self)"}, {"kind": "method", "line": 751, "name": "test_install_build_failure_aborts", "signature": "def test_install_build_failure_aborts(self)"}, {"kind": "method", "line": 764, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 801, "name": "tearDownClass", "signature": "def tearDownClass(cls)"}, {"kind": "method", "line": 809, "name": "test_addons_list", "signature": "def test_addons_list(self)"}, {"kind": "method", "line": 815, "name": "test_install_fixture", "signature": "def test_install_fixture(self)"}, {"kind": "method", "line": 824, "name": "test_install_unknown_addon_fails", "signature": "def test_install_unknown_addon_fails(self)"}, {"kind": "method", "line": 298, "name": "guarded", "signature": "def guarded(name, params)"}, {"kind": "method", "line": 703, "name": "broken_cat", "signature": "def broken_cat(path, missing_ok)"}]}, {"doc": "ifndef MINIFS_H define MINIFS_H MiniFS: a minimal Unix-like filesystem for MiniOS.", "id": "minifs.h", "kind": "module", "label": "minifs.h", "language": "h", "sha256": "7c097ccd642f2c22", "symbol_count": 31, "symbols": [{"kind": "macro", "line": 2, "name": "MINIFS_H"}, {"kind": "macro", "line": 7, "name": "MINIFS_MAGIC"}, {"kind": "macro", "line": 9, "name": "MINIFS_VERSION"}, {"kind": "macro", "line": 10, "name": "MINIFS_BLOCK_SIZE"}, {"kind": "macro", "line": 11, "name": "MINIFS_MAX_FILENAME"}, {"kind": "macro", "line": 12, "name": "MINIFS_ROOT_INODE"}, {"kind": "macro", "line": 13, "name": "MINIFS_INODES_PER_BLOCK"}, {"kind": "macro", "line": 14, "name": "MINIFS_DIR_ENTRIES_PER_BLOCK"}, {"kind": "macro", "line": 15, "name": "MINIFS_S_IFMT"}, {"kind": "macro", "line": 17, "name": "MINIFS_S_IFREG"}, {"kind": "macro", "line": 18, "name": "MINIFS_S_IFDIR"}, {"kind": "macro", "line": 19, "name": "MINIFS_S_IFLNK"}, {"kind": "macro", "line": 20, "name": "MINIFS_S_IRWXU"}, {"kind": "macro", "line": 21, "name": "MINIFS_S_IRWXG"}, {"kind": "macro", "line": 22, "name": "MINIFS_S_IRWXO"}, {"kind": "macro", "line": 23, "name": "MINIFS_FT_FILE"}, {"kind": "macro", "line": 25, "name": "MINIFS_FT_DIR"}, {"kind": "macro", "line": 26, "name": "MINIFS_FT_SYMLINK"}, {"kind": "macro", "line": 27, "name": "MINIFS_INODE_COMPRESSED"}, {"kind": "macro", "line": 74, "name": "MINIFS_DIR_ENTRY_HDR_SIZE"}, {"kind": "macro", "line": 76, "name": "MINIFS_JOURNAL_BLOCKS"}, {"kind": "macro", "line": 78, "name": "MINIFS_JOURNAL_MAX_ENTRIES"}, {"kind": "macro", "line": 79, "name": "MINIFS_JOP_WRITE"}, {"kind": "macro", "line": 80, "name": "MINIFS_JOP_CREATE"}, {"kind": "macro", "line": 81, "name": "MINIFS_JOP_DELETE"}, {"kind": "macro", "line": 82, "name": "MINIFS_JOP_MKDIR"}, {"kind": "macro", "line": 83, "name": "MINIFS_JOP_RMDIR"}, {"kind": "macro", "line": 84, "name": "MINIFS_JOP_TRUNCATE"}, {"kind": "macro", "line": 85, "name": "MINIFS_JOP_COMMIT"}, {"kind": "macro", "line": 86, "name": "MINIFS_JSTATE_CLEAN"}, {"kind": "macro", "line": 88, "name": "MINIFS_JSTATE_DIRTY"}]}, {"id": "minifs_dump.py", "kind": "module", "label": "minifs_dump.py", "language": "py", "sha256": "66129ad54e4c9a50", "symbol_count": 12, "symbols": [{"kind": "function", "line": 13, "name": "u16", "signature": "def u16(d, o)"}, {"kind": "function", "line": 14, "name": "u32", "signature": "def u32(d, o)"}, {"kind": "function", "line": 16, "name": "mode_str", "signature": "def mode_str(m)"}, {"kind": "class", "line": 25, "name": "FS", "signature": "class FS"}, {"kind": "method", "line": 105, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 26, "name": "__init__", "signature": "def __init__(self, fn)"}, {"kind": "method", "line": 29, "name": "blk", "signature": "def blk(self, n)"}, {"kind": "method", "line": 30, "name": "_sb", "signature": "def _sb(self)"}, {"kind": "method", "line": 38, "name": "inode", "signature": "def inode(self, i)"}, {"kind": "method", "line": 47, "name": "read", "signature": "def read(self, ino)"}, {"kind": "method", "line": 67, "name": "resolve", "signature": "def resolve(self, path)"}, {"kind": "method", "line": 86, "name": "ls", "signature": "def ls(self, ino, prefix)"}]}, {"id": "minifs_fsck.py", "kind": "module", "label": "minifs_fsck.py", "language": "py", "sha256": "05066a08385e60bd", "symbol_count": 14, "symbols": [{"kind": "function", "line": 13, "name": "u16", "signature": "def u16(d, o)"}, {"kind": "function", "line": 14, "name": "u32", "signature": "def u32(d, o)"}, {"kind": "class", "line": 16, "name": "FSCK", "signature": "class FSCK"}, {"kind": "method", "line": 97, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 17, "name": "__init__", "signature": "def __init__(self, fn)"}, {"kind": "method", "line": 23, "name": "blk", "signature": "def blk(self, n)"}, {"kind": "method", "line": 24, "name": "_sb", "signature": "def _sb(self)"}, {"kind": "method", "line": 30, "name": "inode", "signature": "def inode(self, i)"}, {"kind": "method", "line": 37, "name": "read", "signature": "def read(self, ino)"}, {"kind": "method", "line": 52, "name": "err", "signature": "def err(self, msg)"}, {"kind": "method", "line": 54, "name": "mark_block", "signature": "def mark_block(self, n)"}, {"kind": "method", "line": 59, "name": "scan_inode", "signature": "def scan_inode(self, i)"}, {"kind": "method", "line": 68, "name": "scan_dir", "signature": "def scan_dir(self, ino)"}, {"kind": "method", "line": 82, "name": "run", "signature": "def run(self)"}]}, {"id": "mkfs.minifs.py", "kind": "module", "label": "mkfs.minifs.py", "language": "py", "sha256": "afb69d43746e6758", "symbol_count": 20, "symbols": [{"kind": "function", "line": 22, "name": "roundup4", "signature": "def roundup4(v)"}, {"kind": "function", "line": 25, "name": "div_round_up", "signature": "def div_round_up(n, d)"}, {"kind": "function", "line": 28, "name": "crc16", "signature": "def crc16(data)"}, {"kind": "function", "line": 36, "name": "crc32", "signature": "def crc32(data)"}, {"kind": "class", "line": 44, "name": "MiniFS", "signature": "class MiniFS"}, {"kind": "method", "line": 241, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 45, "name": "__init__", "signature": "def __init__(self, total_blocks)"}, {"kind": "method", "line": 67, "name": "mark_inodes_used", "signature": "def mark_inodes_used(self, start, count)"}, {"kind": "method", "line": 71, "name": "mark_blocks_used", "signature": "def mark_blocks_used(self, start, count)"}, {"kind": "method", "line": 75, "name": "alloc_inode", "signature": "def alloc_inode(self)"}, {"kind": "method", "line": 81, "name": "alloc_block", "signature": "def alloc_block(self)"}, {"kind": "method", "line": 87, "name": "create_root", "signature": "def create_root(self)"}, {"kind": "method", "line": 95, "name": "create_inode", "signature": "def create_inode(self, mode)"}, {"kind": "method", "line": 102, "name": "inode_set_size", "signature": "def inode_set_size(self, ino, size)"}, {"kind": "method", "line": 106, "name": "inode_set_block", "signature": "def inode_set_block(self, ino, logblk, phys)"}, {"kind": "method", "line": 136, "name": "add_dir_entry", "signature": "def add_dir_entry(self, dir_ino, name, child_ino, ftype)"}, {"kind": "method", "line": 174, "name": "write_file", "signature": "def write_file(self, parent_ino, name, data)"}, {"kind": "method", "line": 191, "name": "write_dir", "signature": "def write_dir(self, parent_ino, name)"}, {"kind": "method", "line": 197, "name": "serialize", "signature": "def serialize(self)"}, {"kind": "method", "line": 271, "name": "pack_tree", "signature": "def pack_tree(parent_ino, path, rel)"}]}, {"id": "mkramdisk.py", "kind": "module", "label": "mkramdisk.py", "language": "py", "sha256": "e890ba2ab94eb112", "symbol_count": 2, "symbols": [{"kind": "function", "line": 20, "name": "pack_name", "signature": "def pack_name(path, common)"}, {"kind": "function", "line": 30, "name": "main", "signature": "def main()"}]}, {"doc": "mkroots.sh - regenerate tls_roots.h from the DER files in tls_roots_src/. Provenance of each root (2026 web PKI reality; everything a real site chains to is one of these): isrg_root_x1.der Let's Encrypt ISRG Root X1 (RSA, older chains) https://letsencrypt.org/certs/isrg-root-x1.pem isrg_root_x2.der Let's Encrypt ISRG Root X2 (ECDSA P-384, current) https://letsencrypt.org/certs/isrg-root-x2.pem digicert_global_root_g2.der DigiCert Global Root G2 (RSA) https://cacerts.digicert.com/DigiCertGlobalRootG2.crt globalsign_root_r3.der GlobalSign Root CA R3 (RSA) https://secure.globalsign.com/cacert/root-r3.crt gts_root_r4.der Google Trust Services Root R4 (ECDSA P-384) https://pki.goog/repo/certs/gtsr4.pem sslcom_ecc_2022.der SSL.com TLS ECC Root CA 2022 (Cloudflare ECC chains) sslcom_rsa_2022.der SSL.com TLS RSA Root CA 2022 (Cloudflare RSA chains) The two SSL.com roots have no stable public URL; they are extracted from the certificate chain example.com serves (openssl s_client -showcerts, ECDHE-ECDSA and ECDHE-RSA respectively). The build never runs this script: tls_roots.h is a committed input, regenerated only when the root set changes.", "id": "mkroots.sh", "kind": "module", "label": "mkroots.sh", "language": "sh", "sha256": "785077624212c370", "symbol_count": 0, "symbols": []}, {"doc": "Mutation testing for MiniOS. Each mutation is applied to the source in place, the disk image is rebuilt and the behavioural suite is run in fail-fast mode. A mutant that survives a full green suite exposes a gap that must be closed by adding a scenario, never by deleting the mutant. The sources are backed up before the first mutation and restored on every exit path, including interrupts. A mutation whose expression matches nothing is reported as broken rather than surviving: `sed -i` exits zero when it changes nothing, which would otherwise rebuild pristine sources and look like a test gap. Progress is persisted to a state file (default .mutate-state in the repo root, overridable with --state or MINIOS_MUTATE_STATE). A run therefore RESUMES where it left off: mutants already recorded are skipped, so a timed-out run can be picked up without re-running the finished ones. The state file is just a list of \"name outcome\" lines and can be edited by hand to re-target work. Usage: mutate.sh full run, resuming from the first mutant not yet recorded in the state file mutate.sh --from NAME force-run from the mutant NAME onward, ignoring recorded state for those mutants mutate.sh --match REGEX only run mutants whose name matches REGEX mutate.sh --limit N run at most N mutants this invocation mutate.sh --state FILE use FILE as the progress file mutate.sh --reset clear the state file and run the full suite", "id": "mutate.sh", "kind": "module", "label": "mutate.sh", "language": "sh", "sha256": "8cb86c3aa466a915", "symbol_count": 5, "symbols": [{"kind": "function", "line": 51, "name": "usage"}, {"kind": "function", "line": 87, "name": "restore_sources"}, {"kind": "function", "line": 94, "name": "cleanup"}, {"kind": "function", "line": 201, "name": "record"}, {"doc": "Locate a mutant by name.", "kind": "function", "line": 207, "name": "find_index"}]}, {"doc": "MiniOS network stack: rtl8139 under QEMU slirp user networking.", "id": "net/net.c", "kind": "module", "label": "net.c", "language": "c", "sha256": "41a93c1399f38d4f", "symbol_count": 55, "symbols": [{"kind": "struct", "line": 68, "name": "net_arp_entry"}, {"kind": "struct", "line": 194, "name": "net_dns_state"}, {"kind": "struct", "line": 362, "name": "net_tcp_sock"}, {"doc": "================================================================ Byte helpers * ================================================================", "kind": "function", "line": 29, "name": "net_put16", "signature": "static void net_put16(unsigned char *p, unsigned short v)"}, {"kind": "function", "line": 34, "name": "net_put32", "signature": "static void net_put32(unsigned char *p, unsigned int v)"}, {"kind": "function", "line": 41, "name": "net_get16", "signature": "static unsigned short net_get16(const unsigned char *p)"}, {"kind": "function", "line": 45, "name": "net_get32", "signature": "static unsigned int net_get32(const unsigned char *p)"}, {"kind": "function", "line": 50, "name": "net_checksum", "signature": "static unsigned short net_checksum(const void *data, unsigned len)"}, {"kind": "function", "line": 75, "name": "net_arp_store", "signature": "static void net_arp_store(const unsigned char *ip, const unsigned char *mac)"}, {"kind": "function", "line": 90, "name": "net_arp_lookup", "signature": "static int net_arp_lookup(const unsigned char *ip, unsigned char *mac_out)"}, {"kind": "function", "line": 101, "name": "net_arp_request", "signature": "static void net_arp_request(const unsigned char *ip)"}, {"doc": "kmemcpy(frame + 6, net_mac, NET_ETH_ALEN); net_put16(frame + 12, NET_ETHERTYPE_ARP); net_put16(frame + 14, 1); /* ethernet net_put16(frame + 16, 0x0800); /* IPv4 frame[18] = 6; frame[19] = 4; net_put16(frame + 20, NET_ARP_REQUEST); kmemcpy(frame + 22, net_mac, NET_ETH_ALEN); kmemcpy(frame + 28, net_our_ip, 4); kmemcpy(frame + 38, ip, 4); rtl_send(frame, 42); } /* Resolve an IP on the 10.0.2.0/24 link. Retries, bounded timeout.", "kind": "function", "line": 120, "name": "net_arp_resolve", "signature": "static int net_arp_resolve(const unsigned char *ip, unsigned char *mac_out)"}, {"doc": "================================================================ IPv4 / ICMP / UDP / DNS * ================================================================ static unsigned short net_ip_id; static unsigned short net_icmp_id = 0x4D49; static unsigned short net_udp_port = NET_EPHEMERAL_MIN; static unsigned int net_tx_bytes; static unsigned int net_rx_bytes; /* Send a frame on the link: dst IP decides the destination MAC.", "kind": "function", "line": 145, "name": "net_ip_send", "signature": "static int net_ip_send(const unsigned char *dip, unsigned char proto,\n cons..."}, {"kind": "function", "line": 180, "name": "net_udp_send", "signature": "static int net_udp_send(const unsigned char *dip, unsigned short sport,\n u..."}, {"doc": "net_put16(pkt + 6, 0); /* checksum optional for UDP kmemcpy(pkt + 8, data, len); return net_ip_send(dip, NET_PROTO_UDP, pkt, total); } struct net_dns_state { unsigned short id; unsigned char ip[4]; int done; }; static struct net_dns_state net_dns; /* Parse a DNS response for the first A record.", "kind": "function", "line": 203, "name": "net_dns_parse", "signature": "static void net_dns_parse(const unsigned char *data, unsigned len)"}, {"doc": "rtype = net_get16(data + pos); rdlen = net_get16(data + pos + 8); pos += 10; if (pos + rdlen > len) return; if (rtype == 1 && rdlen == 4) { kmemcpy(net_dns.ip, data + pos, 4); net_dns.done = 1; return; } pos += rdlen; } } /* Blocking A-record lookup against NET_DNS.", "kind": "function", "line": 239, "name": "net_dns_resolve", "signature": "static int net_dns_resolve(const char *host, unsigned char ip_out[4])"}, {"kind": "function", "line": 295, "name": "net_udp_send", "signature": "net_udp_send((const unsigned char[])"}, {"kind": "function", "line": 309, "name": "net_icmp_rx", "signature": "static void net_icmp_rx(const unsigned char *ip, unsigned len)"}, {"kind": "function", "line": 332, "name": "net_ping", "signature": "static int net_ping(const unsigned char ip[4])"}, {"kind": "function", "line": 384, "name": "net_sock_alloc", "signature": "static struct net_tcp_sock *net_sock_alloc(void)"}, {"kind": "function", "line": 397, "name": "net_sock_index", "signature": "static int net_sock_index(const struct net_tcp_sock *s)"}, {"doc": "return &net_sockets[i]; } } return 0; } static int net_sock_index(const struct net_tcp_sock *s) { int i; for (i = 0; i < NET_SOCKETS; i++) if (&net_sockets[i] == s) return i; return -1; } /* Compute the TCP checksum over a pseudo header + segment.", "kind": "function", "line": 406, "name": "net_tcp_checksum", "signature": "static unsigned short net_tcp_checksum(const unsigned char *src, const unsigned char *dst,\n ..."}, {"doc": "const unsigned char *seg, unsigned len) { unsigned char buf[NET_TX_MAX + 12]; unsigned total = 12 + len; kmemcpy(buf, src, 4); kmemcpy(buf + 4, dst, 4); buf[8] = 0; buf[9] = NET_PROTO_TCP; net_put16(buf + 10, (unsigned short)len); kmemcpy(buf + 12, seg, len); if (total & 1) buf[total++] = 0; return net_checksum(buf, total); } /* UDP checksum over pseudo header + datagram (may be 0 = not computed).", "kind": "function", "line": 422, "name": "net_udp_checksum_ok", "signature": "static int net_udp_checksum_ok(const unsigned char *src, const unsigned char *dst,\n ..."}, {"kind": "function", "line": 437, "name": "net_tcp_xmit", "signature": "static int net_tcp_xmit(struct net_tcp_sock *s, unsigned flags,\n const uns..."}, {"doc": "seg[21] = 0x04; /* len 4 net_put16(seg + 22, NET_TCP_MSS); } else { seg[12] = 0x50; } kmemcpy(seg + hlen, data, len); net_put16(seg + 16, net_tcp_checksum(net_our_ip, s->dip, s->sport, s->dport, seg, hlen + len)); if (!net_ip_send(s->dip, NET_PROTO_TCP, seg, hlen + len)) return 0; if (fresh && (flags & (0x02 | 0x08 | 0x01))) s->seq += len + ((flags & (0x02 | 0x01)) ? 1 : 0); return 1; } /* Process one received TCP segment.", "kind": "function", "line": 469, "name": "net_tcp_rx", "signature": "static void net_tcp_rx(const unsigned char *ip, unsigned len)"}, {"doc": "} if (flags & 0x10) { /* ACK: peer acks our data if (s->tx_pending && (int)(ack - (s->tx_seq + s->tx_len)) >= 0) { s->tx_pending = 0; } if (s->state == NET_TCP_FIN_SENT && (int)(ack - (s->seq)) >= 0) { s->state = NET_TCP_DEAD; } } } } /* Blocking connect of an allocated socket to an IPv4 address.", "kind": "function", "line": 555, "name": "net_tcp_connect_into", "signature": "static int net_tcp_connect_into(struct net_tcp_sock *s, const unsigned char ip[4],\n ..."}, {"doc": "unsigned long retry = net_time_ms() + NET_RETRY_MS; while (net_time_ms() < retry && s->state == NET_TCP_SYN_SENT) rtl_poll(); if (s->state == NET_TCP_SYN_SENT) net_tcp_xmit(s, 0x02, 0, 0, 0); } if (s->state != NET_TCP_ESTABLISHED) { s->in_use = 0; s->state = NET_TCP_CLOSED; return 0; } return 1; } /* Blocking send (stop-and-wait, one outstanding segment).", "kind": "function", "line": 582, "name": "net_tcp_send", "signature": "static int net_tcp_send(struct net_tcp_sock *s, const char *buf, int len)"}, {"doc": "net_time_ms() < deadline) { unsigned long retry = net_time_ms() + NET_RETRY_MS; while (net_time_ms() < retry && s->tx_pending) rtl_poll(); if (s->tx_pending) net_tcp_xmit(s, 0x18, s->tx_buf, chunk, 0); } if (s->tx_pending || s->state != NET_TCP_ESTABLISHED) return sent ? sent : -1; buf += chunk; len -= (int)chunk; sent += (int)chunk; } return sent; } /* Blocking receive; 0 = EOF (FIN).", "kind": "function", "line": 608, "name": "net_tcp_recv", "signature": "static int net_tcp_recv(struct net_tcp_sock *s, char *buf, int len)"}, {"kind": "function", "line": 645, "name": "net_tcp_close", "signature": "static void net_tcp_close(struct net_tcp_sock *s)"}, {"doc": "================================================================ Receive path: NIC -> ethernet -> ARP/IP -> demux * ================================================================", "kind": "function", "line": 665, "name": "net_rx_handle_frame", "signature": "void net_rx_handle_frame(const unsigned char *frame, unsigned len)"}, {"doc": "================================================================ Public libc-style API * ================================================================", "kind": "function", "line": 723, "name": "net_open", "signature": "int net_open(void)"}, {"kind": "function", "line": 729, "name": "net_connect", "signature": "int net_connect(const char *host, unsigned short port)"}, {"kind": "function", "line": 738, "name": "net_send", "signature": "int net_send(int fd, const char *buf, int len)"}, {"kind": "function", "line": 743, "name": "net_recv", "signature": "int net_recv(int fd, char *buf, int len)"}, {"kind": "function", "line": 748, "name": "net_recv_timeout", "signature": "int net_recv_timeout(int fd, char *buf, int len, unsigned long timeout_ms)"}, {"kind": "function", "line": 753, "name": "net_close", "signature": "void net_close(int fd)"}, {"doc": "================================================================ Linux syscall ABI * ================================================================", "kind": "function", "line": 762, "name": "net_sys_socket", "signature": "long net_sys_socket(long a1, long a2, long a3)"}, {"kind": "function", "line": 771, "name": "net_sys_connect", "signature": "long net_sys_connect(long fd, long sockaddr, long addrlen)"}, {"kind": "function", "line": 784, "name": "net_sys_sendto", "signature": "long net_sys_sendto(long fd, long buf, long len, long flags, long to, long tolen)"}, {"kind": "function", "line": 794, "name": "net_sys_recvfrom", "signature": "long net_sys_recvfrom(long fd, long buf, long len, long flags, long from, long fromlen)"}, {"kind": "function", "line": 804, "name": "net_sys_shutdown", "signature": "long net_sys_shutdown(long fd, long how)"}, {"kind": "function", "line": 811, "name": "net_sys_close", "signature": "long net_sys_close(long fd)"}, {"kind": "function", "line": 818, "name": "net_sys_poll", "signature": "long net_sys_poll(long fds, long nfds, long timeout_ms)"}, {"doc": "MiniOS syscall 200: resolve a hostname, returned as a network-order * 32-bit address (like inet_addr), or -1 on failure.", "kind": "function", "line": 849, "name": "net_sys_dns", "signature": "long net_sys_dns(long host)"}, {"doc": "================================================================ Shell commands * ================================================================", "kind": "function", "line": 859, "name": "net_parse_ip", "signature": "static int net_parse_ip(const char *text, unsigned char ip[4])"}, {"kind": "function", "line": 884, "name": "net_cmd_status", "signature": "void net_cmd_status(void)"}, {"kind": "function", "line": 900, "name": "net_cmd_ping", "signature": "void net_cmd_ping(const char *ip_text)"}, {"kind": "function", "line": 911, "name": "net_cmd_dns", "signature": "void net_cmd_dns(const char *host)"}, {"doc": "================================================================ Init and symbol registration * ================================================================", "kind": "function", "line": 924, "name": "net_register_symbols", "signature": "void net_register_symbols(void)"}, {"kind": "function", "line": 932, "name": "net_init", "signature": "void net_init(void)"}, {"kind": "macro", "line": 355, "name": "NET_TCP_CLOSED"}, {"kind": "macro", "line": 357, "name": "NET_TCP_SYN_SENT"}, {"kind": "macro", "line": 358, "name": "NET_TCP_ESTABLISHED"}, {"kind": "macro", "line": 359, "name": "NET_TCP_FIN_SENT"}, {"kind": "macro", "line": 360, "name": "NET_TCP_DEAD"}]}, {"doc": "include \"kernel.h\" include \"net.h\" include \"rtl8139.h\"", "id": "net/rtl8139.c", "kind": "module", "label": "rtl8139.c", "language": "c", "sha256": "694fcfe1cfa621a0", "symbol_count": 35, "symbols": [{"kind": "function", "line": 23, "name": "outb_port", "signature": "static void outb_port(unsigned short port, unsigned char val)"}, {"kind": "function", "line": 27, "name": "inb_port", "signature": "static unsigned char inb_port(unsigned short port)"}, {"kind": "function", "line": 33, "name": "outw_port", "signature": "static void outw_port(unsigned short port, unsigned short val)"}, {"kind": "function", "line": 37, "name": "outl_port", "signature": "static void outl_port(unsigned short port, unsigned int val)"}, {"kind": "function", "line": 41, "name": "inw_port", "signature": "static unsigned short inw_port(unsigned short port)"}, {"kind": "function", "line": 47, "name": "inl_port", "signature": "static unsigned int inl_port(unsigned short port)"}, {"kind": "function", "line": 53, "name": "rtl_reg8", "signature": "static unsigned char rtl_reg8(unsigned short off)"}, {"kind": "function", "line": 55, "name": "rtl_reg8_w", "signature": "static void rtl_reg8_w(unsigned short off, unsigned char v)"}, {"kind": "function", "line": 56, "name": "rtl_reg16", "signature": "static unsigned short rtl_reg16(unsigned short off)"}, {"kind": "function", "line": 57, "name": "rtl_reg16_w", "signature": "static void rtl_reg16_w(unsigned short off, unsigned short v)"}, {"kind": "function", "line": 58, "name": "rtl_reg32", "signature": "static unsigned int rtl_reg32(unsigned short off)"}, {"kind": "function", "line": 59, "name": "rtl_reg32_w", "signature": "static void rtl_reg32_w(unsigned short off, unsigned int v)"}, {"doc": "define RTL_REG_CR 0x37 define RTL_REG_TSD0 0x10 define RTL_REG_TSAD0 0x20 define RTL_REG_RBSTART 0x30 define RTL_REG_CAPR 0x38 define RTL_REG_CBR 0x3A define RTL_REG_9346CR 0x50 define RTL_REG_CONFIG1 0x52", "kind": "function", "line": 69, "name": "pci_read32", "signature": "static unsigned int pci_read32(unsigned bus, unsigned dev, unsigned func, unsigned reg)"}, {"kind": "function", "line": 74, "name": "pci_write32", "signature": "static void pci_write32(unsigned bus, unsigned dev, unsigned func, unsigned reg, unsigned int val)"}, {"kind": "function", "line": 79, "name": "rtl_find", "signature": "static unsigned short rtl_find(void)"}, {"kind": "function", "line": 101, "name": "rtl_rdtsc", "signature": "static unsigned long rtl_rdtsc(void)"}, {"kind": "function", "line": 107, "name": "net_time_init", "signature": "static void net_time_init(void)"}, {"kind": "function", "line": 121, "name": "net_time_ms", "signature": "unsigned long net_time_ms(void)"}, {"kind": "function", "line": 137, "name": "rtl_present", "signature": "int rtl_present(void)"}, {"kind": "function", "line": 141, "name": "rtl_reset", "signature": "static void rtl_reset(void)"}, {"kind": "function", "line": 150, "name": "rtl_init", "signature": "void rtl_init(void)"}, {"kind": "function", "line": 181, "name": "rtl_send", "signature": "int rtl_send(const unsigned char *frame, unsigned len)"}, {"kind": "function", "line": 209, "name": "rtl_get_mac", "signature": "void rtl_get_mac(unsigned char out[NET_ETH_ALEN])"}, {"kind": "function", "line": 214, "name": "rtl_iobase", "signature": "unsigned short rtl_iobase(void)"}, {"kind": "function", "line": 218, "name": "rtl_counters", "signature": "void rtl_counters(unsigned int *tx_frames, unsigned int *rx_frames)"}, {"doc": "Copy one received frame out of the ring into the scratch buffer, * wrapping at the ring end, then hand it to the protocol demux.", "kind": "function", "line": 226, "name": "rtl_rx_frame_wrapped", "signature": "static void rtl_rx_frame_wrapped(unsigned length)"}, {"kind": "function", "line": 236, "name": "rtl_poll", "signature": "void rtl_poll(void)"}, {"kind": "macro", "line": 60, "name": "RTL_REG_CR"}, {"kind": "macro", "line": 62, "name": "RTL_REG_TSD0"}, {"kind": "macro", "line": 63, "name": "RTL_REG_TSAD0"}, {"kind": "macro", "line": 64, "name": "RTL_REG_RBSTART"}, {"kind": "macro", "line": 65, "name": "RTL_REG_CAPR"}, {"kind": "macro", "line": 66, "name": "RTL_REG_CBR"}, {"kind": "macro", "line": 67, "name": "RTL_REG_9346CR"}, {"kind": "macro", "line": 68, "name": "RTL_REG_CONFIG1"}]}, {"doc": "ifndef RTL8139_H define RTL8139_H", "id": "net/rtl8139.h", "kind": "module", "label": "rtl8139.h", "language": "h", "sha256": "cbf837375fdb5ea1", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 2, "name": "RTL8139_H"}]}, {"doc": "tls.c - TLS 1.2 client sessions for MiniOS.", "id": "net/tls.c", "kind": "module", "label": "tls.c", "language": "c", "sha256": "fe86a55c47ab5dc9", "symbol_count": 26, "symbols": [{"doc": "Diagnostics are `freedom: tls: : ` lines (freedom is the only consumer of the TLS syscalls). #include \"tls_port.h\" #include \"tls.h\" #ifndef TLS_TEST #include \"tls_roots.h\" #endif static struct tls_session *tls_sessions[TLS_FD_MAX]; /* ---- diagnostics and teardown ----", "kind": "function", "line": 24, "name": "tls_fail", "signature": "static void tls_fail(struct tls_session *s, const char *stage, const char *reason)"}, {"kind": "function", "line": 32, "name": "tls_fd_of", "signature": "static int tls_fd_of(const struct tls_session *s)"}, {"kind": "function", "line": 39, "name": "tls_free_fd", "signature": "void tls_free_fd(int fd)"}, {"doc": "Build the TLS 1.2 AEAD additional data: seq(8) || type || 0303 || * TLSCompressed.length (the plaintext length, RFC 5288 section 3).", "kind": "function", "line": 52, "name": "tls_aad", "signature": "static void tls_aad(unsigned char aad[13], int type, unsigned long long seq,\n ..."}, {"doc": "Send one record: header || nonce_explicit(8) || ciphertext || tag. The nonce_explicit is the sequence number (RFC 5288 allows it and * OpenSSL uses it); the nonce is salt || nonce_explicit.", "kind": "function", "line": 66, "name": "tls_send_record", "signature": "static int tls_send_record(struct tls_session *s, int type,\n const unsi..."}, {"doc": "for (i = 0; i < 8; i++) buf[5 + i] = (unsigned char)(s->cli_seq >> (56 - i * 8)); TLS_MEMCPY(nonce, s->cli_salt, 4); TLS_MEMCPY(nonce + 4, buf + 5, 8); if (aes128_gcm_seal_core(s->cli_key, nonce, aad, 13, payload, (unsigned)len, buf + 5 + 8, buf + 5 + 8 + len) != 0) return -1; s->cli_seq++; if (TLS_SEND(tls_fd_of(s), (const char *)buf, total) != total) return -1; return 0; } /* Send one plaintext record (ChangeCipherSpec is never encrypted).", "kind": "function", "line": 95, "name": "tls_send_raw_record", "signature": "static int tls_send_raw_record(struct tls_session *s, int type,\n co..."}, {"doc": "Read one record: header into s->rec_hdr, payload into s->rec. Returns: 1 = record ready, 0 = clean TCP EOF, -1 = torn record or bad header, -2 = timeout. A non-positive deadline blocks forever * (application-data reads behave like plain TCP).", "kind": "function", "line": 114, "name": "tls_read_record", "signature": "static int tls_read_record(struct tls_session *s, int fd, int deadline_ms)"}, {"kind": "function", "line": 173, "name": "exchange", "signature": "* key exchange (ClientHello, ClientKeyExchange) go out in plaintext\n * records, as TLS 1.2 requir..."}, {"doc": "const unsigned char *body, int len) { if (len < 0 || len > 1024) return -1; s->pt[0] = (unsigned char)type; s->pt[1] = (unsigned char)(len >> 16); s->pt[2] = (unsigned char)(len >> 8); s->pt[3] = (unsigned char)len; TLS_MEMCPY(s->pt + 4, body, (unsigned)len); sha256_update(&s->hs_hash, s->pt, (unsigned)(len + 4)); if (!s->keys_ready) return tls_send_raw_record(s, TLS_CT_HANDSHAKE, s->pt, len + 4); return tls_send_record(s, TLS_CT_HANDSHAKE, s->pt, len + 4); } /* ClientHello body (without the handshake header). Returns length.", "kind": "function", "line": 190, "name": "build_client_hello", "signature": "static int build_client_hello(struct tls_session *s, unsigned char *out)"}, {"doc": "out[pos++] = 0x00; out[pos++] = 0x06; out[pos++] = 0x04; out[pos++] = 0x01; /* rsa_pkcs1_sha256 out[pos++] = 0x04; out[pos++] = 0x03; /* ecdsa_p256_sha256 out[pos++] = 0x05; out[pos++] = 0x03; /* ecdsa_p384_sha384 { int extlen = pos - ext_start - 2; out[ext_start] = (unsigned char)(extlen >> 8); out[ext_start + 1] = (unsigned char)extlen; } } return pos; } /* Derive all keys and send ClientKeyExchange, CCS, Finished.", "kind": "function", "line": 244, "name": "client_finish_flight", "signature": "static int client_finish_flight(struct tls_session *s)"}, {"doc": "sha256_final(&hcopy, hash); } tls_prf(s->master, 48, \"client finished\", hash, 32, verify, 12); TLS_MEMCPY(finished + 4, verify, 12); if (tls_send_record(s, TLS_CT_HANDSHAKE, finished, 16) != 0) { tls_fail(s, \"send\", \"client finished\"); return -1; } /* the server Finished covers the transcript including our Finished sha256_update(&s->hs_hash, finished, 16); return 0; } /* ---- handshake message parsers ----", "kind": "function", "line": 339, "name": "parse_server_hello", "signature": "static int parse_server_hello(struct tls_session *s,\n const unsigned..."}, {"kind": "function", "line": 369, "name": "parse_certificate", "signature": "static int parse_certificate(struct tls_session *s,\n const unsigned c..."}, {"kind": "function", "line": 400, "name": "parse_server_key_exchange", "signature": "static int parse_server_key_exchange(struct tls_session *s,\n ..."}, {"doc": "sha256(data, 64 + params_len, digest); return ecdsa_verify(0, s->leaf_pk.qx, s->leaf_pk.qy, digest, 32, m + pos, sig_len); } if (sig_alg == TLS_SIG_ECDSA_P384_SHA384) { if (s->leaf_pk.kind != 2) return -1; sha384(data, 64 + params_len, digest); return ecdsa_verify(1, s->leaf_pk.qx, s->leaf_pk.qy, digest, 48, m + pos, sig_len); } return -1; } /* ---- handshake driver ----", "kind": "function", "line": 465, "name": "tls_handshake", "signature": "int tls_handshake(int fd, const char *host)"}, {"doc": "pre-Finished is refused tls_fail(s, \"handshake\", \"unexpected message\"); tls_sessions[fd] = 0; return -1; } } s->hs_msg_len = 0; s->hs_msg_want = 0; } } } } /* ---- application data ----", "kind": "function", "line": 686, "name": "tls_send", "signature": "int tls_send(int fd, const char *buf, int len)"}, {"kind": "function", "line": 695, "name": "tls_recv", "signature": "int tls_recv(int fd, char *buf, int len)"}, {"doc": "ifndef TLS_TEST", "kind": "function", "line": 772, "name": "tls_sys_handshake", "signature": "long tls_sys_handshake(long fd, long host)"}, {"kind": "function", "line": 776, "name": "tls_sys_send", "signature": "long tls_sys_send(long fd, long buf, long len)"}, {"kind": "function", "line": 781, "name": "tls_sys_recv", "signature": "long tls_sys_recv(long fd, long buf, long len)"}, {"doc": "return tls_handshake((int)(fd - NET_FD_BASE), (const char *)host); } long tls_sys_send(long fd, long buf, long len) { if (fd < NET_FD_BASE || fd >= NET_FD_BASE + NET_SOCKETS || !buf) return -1; return tls_send((int)(fd - NET_FD_BASE), (const char *)buf, (int)len); } long tls_sys_recv(long fd, long buf, long len) { if (fd < NET_FD_BASE || fd >= NET_FD_BASE + NET_SOCKETS || !buf) return -1; return tls_recv((int)(fd - NET_FD_BASE), (char *)buf, (int)len); } /* ---- kernel entropy and clock ----", "kind": "function", "line": 788, "name": "tls_rdtsc", "signature": "static inline unsigned long long tls_rdtsc(void)"}, {"kind": "function", "line": 794, "name": "tls_random", "signature": "void tls_random(unsigned char *out, unsigned len)"}, {"doc": "unsigned long long seed = tls_rdtsc() ^ ((unsigned long long)net_time_ms() << 33); unsigned i; static unsigned long long counter = 0x6D696E69544C53ULL; counter ^= seed; for (i = 0; i < len; i++) { seed = seed * 6364136223846793005ULL + 1442695040888963407ULL; out[i] = (unsigned char)((seed >> 33) ^ (counter >> (i & 7) * 8)); counter = counter * 6364136223846793005ULL + 1; } } /* The port helpers in net.c are static; these live here for the RTC. ifndef PORT_IO_DEFINED define PORT_IO_DEFINED", "kind": "function", "line": 810, "name": "outb", "signature": "static inline void outb(unsigned short port, unsigned char v)"}, {"kind": "function", "line": 813, "name": "inb", "signature": "static inline unsigned char inb(unsigned short port)"}, {"doc": "/* The port helpers in net.c are static; these live here for the RTC. #ifndef PORT_IO_DEFINED #define PORT_IO_DEFINED static inline void outb(unsigned short port, unsigned char v) { __asm__ volatile(\"outb %0, %1\" : : \"a\"(v), \"Nd\"(port)); } static inline unsigned char inb(unsigned short port) { unsigned char v; __asm__ volatile(\"inb %1, %0\" : \"=a\"(v) : \"Nd\"(port)); return v; } #endif /* CMOS RTC -> days since epoch. Registers are BCD.", "kind": "function", "line": 821, "name": "cmos_read", "signature": "static inline unsigned char cmos_read(unsigned char reg)"}, {"kind": "function", "line": 825, "name": "tls_now_days", "signature": "long tls_now_days(void)"}, {"kind": "macro", "line": 809, "name": "PORT_IO_DEFINED"}]}, {"doc": "tls_crypto.c - the crypto behind the kernel TLS 1.2 client.", "id": "net/tls_crypto.c", "kind": "module", "label": "tls_crypto.c", "language": "c", "sha256": "e9700edc0717d424", "symbol_count": 76, "symbols": [{"kind": "struct", "line": 655, "name": "mont_ctx"}, {"kind": "struct", "line": 838, "name": "ec_curve"}, {"doc": "Jacobian point: three coordinates in Montgomery domain, nw words each. * The point at infinity has Z = 0.", "kind": "struct", "line": 859, "name": "jpt"}, {"kind": "function", "line": 32, "name": "sha256_rotr", "signature": "static unsigned sha256_rotr(unsigned x, unsigned n)"}, {"kind": "function", "line": 36, "name": "sha256_init", "signature": "void sha256_init(struct sha256_ctx *c)"}, {"kind": "function", "line": 49, "name": "sha256_block", "signature": "static void sha256_block(struct sha256_ctx *c, const unsigned char *p)"}, {"kind": "function", "line": 79, "name": "sha256_update", "signature": "void sha256_update(struct sha256_ctx *c, const unsigned char *data, unsigned len)"}, {"kind": "function", "line": 104, "name": "sha256_final", "signature": "void sha256_final(struct sha256_ctx *c, unsigned char out[32])"}, {"kind": "function", "line": 125, "name": "sha256", "signature": "void sha256(const unsigned char *data, unsigned len, unsigned char out[32])"}, {"doc": "out[i * 4 + 1] = (unsigned char)(c->state[i] >> 16); out[i * 4 + 2] = (unsigned char)(c->state[i] >> 8); out[i * 4 + 3] = (unsigned char)(c->state[i]); } } void sha256(const unsigned char *data, unsigned len, unsigned char out[32]) { struct sha256_ctx c; sha256_init(&c); sha256_update(&c, data, len); sha256_final(&c, out); } /* ========== HMAC-SHA256 ==========", "kind": "function", "line": 134, "name": "hmac_sha256", "signature": "void hmac_sha256(const unsigned char *key, unsigned klen,\n const unsigned char *d..."}, {"doc": "opad[i] = k[i] ^ 0x5c; } sha256_init(&c); sha256_update(&c, ipad, 64); sha256_update(&c, data, dlen); sha256_final(&c, inner); sha256_init(&c); sha256_update(&c, opad, 64); sha256_update(&c, inner, 32); sha256_final(&c, out); } /* ========== TLS 1.2 PRF (P_SHA256) ==========", "kind": "function", "line": 164, "name": "p_hash", "signature": "static void p_hash(const unsigned char *secret, unsigned secret_len,\n const uns..."}, {"kind": "function", "line": 187, "name": "tls_prf", "signature": "void tls_prf(const unsigned char *secret, unsigned secret_len,\n const char *label, co..."}, {"kind": "function", "line": 229, "name": "aes_xtime", "signature": "static unsigned aes_xtime(unsigned x)"}, {"kind": "function", "line": 234, "name": "aes_key_expand", "signature": "static void aes_key_expand(const unsigned char key[16], unsigned rk[44])"}, {"kind": "function", "line": 252, "name": "aes_mixcol", "signature": "static void aes_mixcol(unsigned a0, unsigned a1, unsigned a2, unsigned a3,\n ..."}, {"kind": "function", "line": 262, "name": "aes128_encrypt_block", "signature": "void aes128_encrypt_block(const unsigned char key[16],\n const unsigned c..."}, {"kind": "function", "line": 320, "name": "gf_shift_right", "signature": "static gf128 gf_shift_right(gf128 v)"}, {"doc": "z = z * h, in GF(2^128), MSB-first. Branches on z bits (public: * AAD/ciphertext), never on h bits (secret).", "kind": "function", "line": 334, "name": "gf_mul", "signature": "static gf128 gf_mul(gf128 z, gf128 h)"}, {"kind": "function", "line": 350, "name": "gf_put", "signature": "static gf128 gf_put(const unsigned char *p)"}, {"kind": "function", "line": 360, "name": "ghash_blocks", "signature": "static gf128 ghash_blocks(gf128 z, gf128 h, const unsigned char *data, unsigned len)"}, {"doc": "if (len > 0) { unsigned char pad[16]; gf128 b; TLS_MEMSET(pad, 0, 16); TLS_MEMCPY(pad, data, len); b = gf_put(pad); z.lo ^= b.lo; z.hi ^= b.hi; z = gf_mul(z, h); } return z; } /* Compute GCM tag for aad || ct (ct already ciphertext).", "kind": "function", "line": 384, "name": "gcm_tag_core", "signature": "static void gcm_tag_core(const unsigned char key[16],\n const unsigned cha..."}, {"kind": "function", "line": 426, "name": "gcm_ctr_core", "signature": "static void gcm_ctr_core(const unsigned char key[16],\n const unsigned cha..."}, {"doc": "TLS_MEMCPY(blk, nonce, 12); blk[12] = (unsigned char)(ctr >> 24); blk[13] = (unsigned char)(ctr >> 16); blk[14] = (unsigned char)(ctr >> 8); blk[15] = (unsigned char)(ctr); aes128_encrypt_block(key, blk, crypt); if (take > 16) take = 16; for (i = 0; i < (int)take; i++) out[off + i] = in[off + i] ^ crypt[i]; off += take; ctr++; } } /* TLS nonce: 4-byte implicit salt || 8-byte sequence number.", "kind": "function", "line": 450, "name": "tls_nonce", "signature": "static void tls_nonce(const unsigned char salt[4], unsigned long long seq,\n ..."}, {"kind": "function", "line": 456, "name": "gcm_tag", "signature": "static void gcm_tag(const unsigned char key[16], const unsigned char salt[4],\n ..."}, {"kind": "function", "line": 466, "name": "gcm_ctr", "signature": "static void gcm_ctr(const unsigned char key[16], const unsigned char salt[4],\n ..."}, {"kind": "function", "line": 474, "name": "aes128_gcm_seal", "signature": "int aes128_gcm_seal(const unsigned char key[16],\n const unsigned char salt[4],..."}, {"kind": "function", "line": 486, "name": "aes128_gcm_open", "signature": "int aes128_gcm_open(const unsigned char key[16],\n const unsigned char salt[4],..."}, {"kind": "function", "line": 504, "name": "aes128_gcm_seal_core", "signature": "int aes128_gcm_seal_core(const unsigned char key[16],\n const unsigned cha..."}, {"kind": "function", "line": 515, "name": "aes128_gcm_open_core", "signature": "int aes128_gcm_open_core(const unsigned char key[16],\n const unsigned cha..."}, {"doc": "unsigned char want[16]; unsigned char diff = 0; int i; if (ct_len > TLS_REC_MAX) return -1; gcm_tag_core(key, nonce, aad, aad_len, ct, ct_len, want); for (i = 0; i < 16; i++) diff |= want[i] ^ tag[i]; if (diff) return -1; gcm_ctr_core(key, nonce, ct, pt, ct_len); return 0; } /* ========== Big integers (32-bit limbs, little-endian) ========== #define TLS_BN_WORDS 128 /* 4096 bits", "kind": "function", "line": 536, "name": "bn_zero", "signature": "static void bn_zero(unsigned *a, int nw)"}, {"kind": "function", "line": 541, "name": "bn_is_zero", "signature": "static int bn_is_zero(const unsigned *a, int nw)"}, {"kind": "function", "line": 548, "name": "bn_cmp", "signature": "static int bn_cmp(const unsigned *a, const unsigned *b, int nw)"}, {"doc": "for (i = 0; i < nw; i++) v |= a[i]; return v == 0; } static int bn_cmp(const unsigned *a, const unsigned *b, int nw) { int i; for (i = nw - 1; i >= 0; i--) { if (a[i] < b[i]) return -1; if (a[i] > b[i]) return 1; } return 0; } /* r = a + b; returns carry out.", "kind": "function", "line": 559, "name": "bn_add", "signature": "static unsigned bn_add(const unsigned *a, const unsigned *b, unsigned *r, int nw)"}, {"doc": "/* r = a + b; returns carry out. static unsigned bn_add(const unsigned *a, const unsigned *b, unsigned *r, int nw) { unsigned long long carry = 0; int i; for (i = 0; i < nw; i++) { unsigned long long t = (unsigned long long)a[i] + b[i] + carry; r[i] = (unsigned)t; carry = t >> 32; } return (unsigned)carry; } /* r = a - b; a must be >= b; returns borrow (0 = fine).", "kind": "function", "line": 571, "name": "bn_sub", "signature": "static unsigned bn_sub(const unsigned *a, const unsigned *b, unsigned *r, int nw)"}, {"doc": "r = 2a mod n, for a < n. v = 2^(32nw) mod n = 2^(32nw) - n (the * Montgomery \"one\"): 2a + carry means 2a - 2^(32nw) + v = 2a - n < n.", "kind": "function", "line": 584, "name": "bn_dbl_mod", "signature": "static void bn_dbl_mod(const unsigned *a, const unsigned *n, const unsigned *v,\n ..."}, {"doc": "Montgomery multiplication. n is odd, n0inv = -n^(-1) mod 2^32. r = a*b*R^-1 mod n, R = 2^(32nw). * a, b < n.", "kind": "function", "line": 596, "name": "bn_mont_mul", "signature": "static void bn_mont_mul(const unsigned *a, const unsigned *b, const unsigned *n,\n ..."}, {"doc": "carry = v >> 32; } s = (unsigned long long)t[nw] + carry; t[nw - 1] = (unsigned)s; t[nw] = t[nw + 1] + (unsigned)(s >> 32); } if (t[nw] || bn_cmp(t, n, nw) >= 0) { bn_sub(t, n, r, nw); } else { for (i = 0; i < nw; i++) r[i] = t[i]; } } /* -n^(-1) mod 2^32 via Newton iteration (n0 must be odd).", "kind": "function", "line": 635, "name": "bn_mont_n0inv", "signature": "static unsigned bn_mont_n0inv(unsigned n0)"}, {"doc": "} else { for (i = 0; i < nw; i++) r[i] = t[i]; } } /* -n^(-1) mod 2^32 via Newton iteration (n0 must be odd). static unsigned bn_mont_n0inv(unsigned n0) { unsigned inv = 1; int i; for (i = 0; i < 5; i++) inv *= 2 - n0 * inv; return 0 - inv; } /* R^2 mod n, R = 2^(32nw): 64*nw doublings from 1.", "kind": "function", "line": 643, "name": "bn_mont_r2", "signature": "static void bn_mont_r2(const unsigned *n, const unsigned *v, int nw,\n unsig..."}, {"kind": "function", "line": 662, "name": "bn_from_be", "signature": "static void bn_from_be(const unsigned char *bytes, unsigned len,\n unsigned ..."}, {"kind": "function", "line": 670, "name": "bn_to_be", "signature": "static void bn_to_be(const unsigned *a, unsigned char *out, unsigned len)"}, {"kind": "function", "line": 676, "name": "mont_init", "signature": "static void mont_init(struct mont_ctx *m, const unsigned char *p_bytes,\n uns..."}, {"kind": "function", "line": 688, "name": "mont_to", "signature": "static void mont_to(struct mont_ctx *m, const unsigned *a, unsigned *r)"}, {"kind": "function", "line": 692, "name": "mont_from", "signature": "static void mont_from(struct mont_ctx *m, const unsigned *a, unsigned *r)"}, {"kind": "function", "line": 699, "name": "mont_mul", "signature": "static void mont_mul(struct mont_ctx *m, const unsigned *a, const unsigned *b,\n ..."}, {"kind": "function", "line": 704, "name": "mont_sqr", "signature": "static void mont_sqr(struct mont_ctx *m, const unsigned *a, unsigned *r)"}, {"doc": "Field add/sub over the mont modulus (in Montgomery domain). The carry of a+b is corrected with one = 2^(32nw) - n, and a - b < 0 is * p - (b - a); neither path can overflow one word.", "kind": "function", "line": 712, "name": "mont_add", "signature": "static void mont_add(struct mont_ctx *m, const unsigned *a, const unsigned *b,\n ..."}, {"kind": "function", "line": 720, "name": "mont_sub", "signature": "static void mont_sub(struct mont_ctx *m, const unsigned *a, const unsigned *b,\n ..."}, {"doc": "Field inverse via Fermat: a^(p-2) mod p (a in Montgomery domain; * the result stays in Montgomery domain).", "kind": "function", "line": 736, "name": "mont_inv", "signature": "static void mont_inv(struct mont_ctx *m, const unsigned *a, unsigned *r)"}, {"kind": "function", "line": 847, "name": "ec_init", "signature": "static void ec_init(struct ec_curve *c, const unsigned char *p,\n const unsigne..."}, {"kind": "function", "line": 864, "name": "jpt_is_inf", "signature": "static int jpt_is_inf(const struct jpt *p, int nw)"}, {"kind": "function", "line": 868, "name": "jpt_set_inf", "signature": "static void jpt_set_inf(struct jpt *p, int nw)"}, {"kind": "function", "line": 874, "name": "jpt_copy", "signature": "static void jpt_copy(struct jpt *d, const struct jpt *s, int nw)"}, {"doc": "bn_zero(p->y, nw); bn_zero(p->z, nw); } static void jpt_copy(struct jpt *d, const struct jpt *s, int nw) { int i; for (i = 0; i < nw; i++) { d->x[i] = s->x[i]; d->y[i] = s->y[i]; d->z[i] = s->z[i]; } } /* Constant-time swap of two points on a 0/~0 mask.", "kind": "function", "line": 885, "name": "jpt_cswap", "signature": "static void jpt_cswap(struct jpt *a, struct jpt *b, unsigned mask, int nw)"}, {"doc": "} /* Constant-time swap of two points on a 0/~0 mask. static void jpt_cswap(struct jpt *a, struct jpt *b, unsigned mask, int nw) { int i; for (i = 0; i < nw; i++) { unsigned t; t = (a->x[i] ^ b->x[i]) & mask; a->x[i] ^= t; b->x[i] ^= t; t = (a->y[i] ^ b->y[i]) & mask; a->y[i] ^= t; b->y[i] ^= t; t = (a->z[i] ^ b->z[i]) & mask; a->z[i] ^= t; b->z[i] ^= t; } } /* P3 = 2 * P1 (a = p - 3: E = 3(A - Z1^4)).", "kind": "function", "line": 896, "name": "jpt_dbl", "signature": "static void jpt_dbl(struct ec_curve *c, const struct jpt *p1, struct jpt *p3)"}, {"doc": "mont_sqr(m, E, F); mont_add(m, D, D, t); /* 2D mont_sub(m, F, t, p3->x); /* X3 = F - 2D mont_sub(m, D, p3->x, t); mont_mul(m, E, t, t2); mont_add(m, C, C, t); mont_add(m, t, t, t); mont_add(m, t, t, t); /* 8C mont_sub(m, t2, t, p3->y); /* Y3 = E(D-X3) - 8C mont_mul(m, p1->y, p1->z, YZ); mont_add(m, YZ, YZ, p3->z); /* Z3 = 2YZ } /* P3 = P1 + P2 (generic Jacobian add).", "kind": "function", "line": 936, "name": "jpt_add", "signature": "static void jpt_add(struct ec_curve *c, const struct jpt *p1, const struct jpt *p2,\n ..."}, {"doc": "Constant-iteration scalar multiplication: the classic ladder. * Fixed iteration count, no table lookups indexed by secret bits.", "kind": "function", "line": 980, "name": "jpt_scalar_mult", "signature": "static void jpt_scalar_mult(struct ec_curve *c, const struct jpt *base,\n ..."}, {"doc": "Affine from Jacobian: x = X/Z^2, y = Y/Z^3. Bytes out are big-endian. * y_out may be NULL when only the x coordinate is wanted.", "kind": "function", "line": 1007, "name": "jpt_to_affine", "signature": "static void jpt_to_affine(struct ec_curve *c, const struct jpt *p,\n unsi..."}, {"doc": "Affine from bytes with on-curve validation. Returns 0 when the point * is valid and not the point at infinity.", "kind": "function", "line": 1032, "name": "jpt_from_affine", "signature": "static int jpt_from_affine(struct ec_curve *c, const unsigned char *x_bytes,\n ..."}, {"kind": "function", "line": 1075, "name": "ec_curve_by_id", "signature": "static struct ec_curve *ec_curve_by_id(int curve)"}, {"kind": "function", "line": 1079, "name": "ec_boot", "signature": "static void ec_boot(void)"}, {"kind": "function", "line": 1087, "name": "p256_scalar_mult", "signature": "int p256_scalar_mult(const unsigned char scalar[32],\n const unsigned char qx[..."}, {"kind": "function", "line": 1100, "name": "p384_scalar_mult", "signature": "int p384_scalar_mult(const unsigned char scalar[48],\n const unsigned char qx[..."}, {"kind": "function", "line": 1113, "name": "p256_ecdh", "signature": "int p256_ecdh(const unsigned char priv[32],\n const unsigned char peer_x[32], const u..."}, {"doc": "int p256_ecdh(const unsigned char priv[32], const unsigned char peer_x[32], const unsigned char peer_y[32], unsigned char z[32]) { struct ec_curve *c; struct jpt base, out; ec_boot(); c = &ec_p256; if (jpt_from_affine(c, peer_x, peer_y, &base) != 0) return -1; jpt_scalar_mult(c, &base, priv, &out); jpt_to_affine(c, &out, z, 0); return 0; } /* ========== ECDSA verify ==========", "kind": "function", "line": 1128, "name": "der_parse_sig", "signature": "static int der_parse_sig(const unsigned char *sig, unsigned sig_len,\n con..."}, {"kind": "function", "line": 1162, "name": "ecdsa_verify", "signature": "int ecdsa_verify(int curve, const unsigned char pub_x[], const unsigned char pub_y[],\n ..."}, {"doc": "EMSA-PKCS1-v1_5 DigestInfo check for an arbitrary hash: the encoding is 00 01 FF.. 00 . Constant-time: every byte of the * encoding contributes to the diff.", "kind": "function", "line": 1261, "name": "rsa_verify_digestinfo", "signature": "static int rsa_verify_digestinfo(const unsigned char *em, unsigned em_len,\n ..."}, {"doc": "diff |= em[i] ^ 0xff; } if (i >= em_len) return -1; /* no separator if (i < 10) return -1; /* padding too short (RFC 8017) i++; if (em_len - i != prefix_len + digest_len) return -1; for (i = 0; i < prefix_len; i++) diff |= em[em_len - prefix_len - digest_len + i] ^ prefix[i]; for (i = 0; i < digest_len; i++) diff |= em[em_len - digest_len + i] ^ digest[i]; return diff ? -1 : 0; } /* Shared RSA PKCS#1 v1.5 core: m^e mod n, EMSA-PKCS1-v1_5 in em.", "kind": "function", "line": 1285, "name": "rsa_pkcs1_verify_raw", "signature": "static int rsa_pkcs1_verify_raw(const unsigned char *n, unsigned n_len,\n ..."}, {"kind": "function", "line": 1325, "name": "rsa_pkcs1_verify_sha256", "signature": "int rsa_pkcs1_verify_sha256(const unsigned char *n, unsigned n_len,\n c..."}, {"kind": "function", "line": 1339, "name": "rsa_pkcs1_verify_sha384", "signature": "int rsa_pkcs1_verify_sha384(const unsigned char *n, unsigned n_len,\n c..."}, {"kind": "function", "line": 1385, "name": "sha384_rotr", "signature": "static unsigned long long sha384_rotr(unsigned long long x, unsigned n)"}, {"kind": "function", "line": 1389, "name": "sha384_raw", "signature": "static void sha384_raw(const unsigned char *data, unsigned len,\n unsigned c..."}, {"kind": "function", "line": 1505, "name": "sha384", "signature": "void sha384(const unsigned char *data, unsigned len, unsigned char out[48])"}, {"doc": "out[i * 8 + 2] = (unsigned char)(state[i] >> 40); out[i * 8 + 3] = (unsigned char)(state[i] >> 32); out[i * 8 + 4] = (unsigned char)(state[i] >> 24); out[i * 8 + 5] = (unsigned char)(state[i] >> 16); out[i * 8 + 6] = (unsigned char)(state[i] >> 8); out[i * 8 + 7] = (unsigned char)state[i]; } } void sha384(const unsigned char *data, unsigned len, unsigned char out[48]) { sha384_raw(data, len, out); } /* ========== P-256 helpers for the handshake ==========", "kind": "function", "line": 1511, "name": "p256_point_valid", "signature": "int p256_point_valid(const unsigned char x[32], const unsigned char y[32])"}, {"kind": "function", "line": 1519, "name": "p256_pub", "signature": "int p256_pub(const unsigned char priv[32],\n unsigned char x[32], unsigned char y[32])"}, {"kind": "function", "line": 1538, "name": "p256_scalar_valid", "signature": "int p256_scalar_valid(const unsigned char scalar[32])"}, {"kind": "macro", "line": 534, "name": "TLS_BN_WORDS"}]}, {"doc": "tls_x509.c - minimal X.509 DER parsing and chain verification.", "id": "net/tls_x509.c", "kind": "module", "label": "tls_x509.c", "language": "c", "sha256": "c8e0a93ffd6bb4e2", "symbol_count": 23, "symbols": [{"kind": "struct", "line": 43, "name": "der_tlv"}, {"kind": "struct", "line": 129, "name": "x509_name"}, {"kind": "struct", "line": 172, "name": "x509_sans"}, {"kind": "struct", "line": 265, "name": "x509_cert"}, {"kind": "function", "line": 35, "name": "oid_eq", "signature": "static int oid_eq(const unsigned char *bytes, unsigned len,\n const unsigned char..."}, {"doc": "Parse the TLV at p[pos]; advances pos to the first byte after it. * Returns 0 on success, -1 on any bound violation.", "kind": "function", "line": 51, "name": "der_next", "signature": "static int der_next(const unsigned char *p, unsigned limit, unsigned *pos,\n st..."}, {"doc": "len = (len << 8) | p[(*pos)++]; } } else { len = p[(*pos)++]; } if (len > limit - *pos) return -1; out->val = p + *pos; out->len = len; out->tag = tag; pos += len; return 0; } /* A constructed SEQUENCE/SET whose content must parse as children.", "kind": "function", "line": 82, "name": "der_container", "signature": "static int der_container(const unsigned char *p, unsigned limit, unsigned *pos,\n ..."}, {"doc": "} /* A constructed SEQUENCE/SET whose content must parse as children. static int der_container(const unsigned char *p, unsigned limit, unsigned *pos, const unsigned char **val, unsigned *len) { struct der_tlv t; if (der_next(p, limit, pos, &t) != 0) return -1; if (t.tag != 0x30) return -1; val = t.val; len = t.len; return 0; } /* ---- Time ----", "kind": "function", "line": 93, "name": "days_from_civil", "signature": "static long days_from_civil(int y, int m, int d)"}, {"doc": "/* ---- Time ---- static long days_from_civil(int y, int m, int d) { long era, doe, yoe; int doy; y -= m <= 2 ? 1 : 0; era = (y >= 0 ? y : y - 399) / 400; yoe = y - (int)era * 400; doy = (153 * (m + (m > 2 ? -3 : 9)) + 2) / 5 + d - 1; doe = (long)yoe * 365 + yoe / 4 - yoe / 100 + doy; return era * 146097 + doe - 719468; } /* UTCTime / GeneralizedTime \"....Z\" -> days since epoch, or -1.", "kind": "function", "line": 106, "name": "der_time_to_days", "signature": "static long der_time_to_days(const struct der_tlv *t)"}, {"doc": "} if (mon < 1 || mon > 12 || day < 1 || day > 31 || year < 1970 || year > 2100) return -1; return days_from_civil(year, mon, day); } /* ---- Name / extensions ---- struct x509_name { unsigned char cn[64]; unsigned cn_len; }; /* Find the first CN in an RDNSequence. Returns 0 when found.", "kind": "function", "line": 135, "name": "name_find_cn", "signature": "static int name_find_cn(const unsigned char *p, unsigned limit,\n struct x5..."}, {"kind": "function", "line": 177, "name": "san_add", "signature": "static void san_add(struct x509_sans *out, const unsigned char *v, unsigned len)"}, {"doc": "struct x509_sans { unsigned char dns[TLS_SAN_MAX][64]; unsigned len[TLS_SAN_MAX]; int count; }; static void san_add(struct x509_sans *out, const unsigned char *v, unsigned len) { if (out->count >= TLS_SAN_MAX || len >= 64) return; TLS_MEMCPY(out->dns[out->count], v, len); out->len[out->count] = len; out->count++; } /* Walk the SAN extension (2.5.29.17) OCTET STRING body.", "kind": "function", "line": 186, "name": "san_parse", "signature": "static void san_parse(const unsigned char *p, unsigned limit,\n struct x509_s..."}, {"doc": "unsigned seq_len, pos = 0; out->count = 0; if (der_container(p, limit, &pos, &seq, &seq_len) != 0) return; pos = 0; while (pos < seq_len) { struct der_tlv t; if (der_next(seq, seq_len, &pos, &t) != 0) return; if (t.tag == 0x82) san_add(out, t.val, t.len); /* dNSName } } /* ---- Public key ---- /* SPKI SEQUENCE content: { alg SEQUENCE { OID, params }, BIT STRING }.", "kind": "function", "line": 203, "name": "spki_parse", "signature": "static int spki_parse(const unsigned char *p, unsigned limit,\n struct tls_pu..."}, {"kind": "function", "line": 278, "name": "cert_parse", "signature": "static int cert_parse(const unsigned char *der, unsigned len,\n struct x509_c..."}, {"doc": "unsigned bpos = e2pos; if (der_next(ext, ext_len, &bpos, &body) != 0) break; if (oid_eq(eoid, eoid_len, oid_san, sizeof(oid_san))) san_parse(body.val, body.len, &out->sans), out->has_san = 1; } } } } } return 0; } /* ---- Hostname matching ----", "kind": "function", "line": 391, "name": "ascii_lower", "signature": "static int ascii_lower(int c)"}, {"doc": "} } } } return 0; } /* ---- Hostname matching ---- static int ascii_lower(int c) { return (c >= 'A' && c <= 'Z') ? c + ('a' - 'A') : c; } /* Exact match, ASCII case-insensitive.", "kind": "function", "line": 397, "name": "host_match_exact", "signature": "static int host_match_exact(const char *host, const unsigned char *name,\n ..."}, {"doc": "Wildcard: \"*.example.com\" matches exactly one label (\"a.example.com\", * never \"a.b.example.com\" nor \"example.com\").", "kind": "function", "line": 410, "name": "host_match_wildcard", "signature": "static int host_match_wildcard(const char *host, const unsigned char *name,\n ..."}, {"kind": "function", "line": 430, "name": "host_matches", "signature": "static int host_matches(const char *host, const struct x509_cert *leaf)"}, {"doc": "return 1; } return 0; /* SAN present and nothing matched: fail closed } if (leaf->subject.cn_len) { return host_match_exact(host, leaf->subject.cn, leaf->subject.cn_len) || host_match_wildcard(host, leaf->subject.cn, leaf->subject.cn_len); } return 0; } /* ---- Signature verification ---- /* ========== Public API ==========", "kind": "function", "line": 451, "name": "tls_x509_parse_pubkey", "signature": "int tls_x509_parse_pubkey(const unsigned char *der, unsigned len,\n struc..."}, {"doc": "Trust anchors are matched by public key, not by self-signature: a presented root is often a cross-signed copy (signed by a legacy root, e.g. the SSL.com 2022 roots are signed by Comodo AAA), so checking its signature against its own key would reject a perfectly valid anchor. Key equality is safe because every link above the top is still signature-verified: an attacker cannot present a top cert carrying an embedded root's public key unless the chain below it was signed with * that root's private key.", "kind": "function", "line": 468, "name": "pubkey_equal", "signature": "static int pubkey_equal(const struct tls_pubkey *a, const struct tls_pubkey *b)"}, {"doc": "signature-verified: an attacker cannot present a top cert carrying an embedded root's public key unless the chain below it was signed with * that root's private key. static int pubkey_equal(const struct tls_pubkey *a, const struct tls_pubkey *b) { if (a->kind != b->kind) return 0; if (a->kind == 0) return a->n_len == b->n_len && a->e_len == b->e_len && TLS_MEMCMP(a->n, b->n, a->n_len) == 0 && TLS_MEMCMP(a->e, b->e, a->e_len) == 0; return TLS_MEMCMP(a->qx, b->qx, 48) == 0 && TLS_MEMCMP(a->qy, b->qy, 48) == 0; } /* Verify one certificate's signature with an issuer public key.", "kind": "function", "line": 479, "name": "cert_verify_signature", "signature": "static int cert_verify_signature(const struct x509_cert *cert,\n c..."}, {"kind": "function", "line": 520, "name": "tls_x509_verify_chain", "signature": "int tls_x509_verify_chain(const unsigned char *chain, unsigned chain_len,\n ..."}, {"kind": "macro", "line": 170, "name": "TLS_SAN_MAX"}]}, {"doc": "ifndef NET_H define NET_H ========== Fixed slirp configuration (QEMU -nic user) ==========", "id": "net.h", "kind": "module", "label": "net.h", "language": "h", "sha256": "c29117c3ace6d14a", "symbol_count": 34, "symbols": [{"kind": "macro", "line": 2, "name": "NET_H"}, {"kind": "macro", "line": 5, "name": "NET_IP_ADDR"}, {"kind": "macro", "line": 6, "name": "NET_NETMASK"}, {"kind": "macro", "line": 7, "name": "NET_GATEWAY"}, {"kind": "macro", "line": 8, "name": "NET_DNS"}, {"kind": "macro", "line": 11, "name": "NET_PCI_VENDOR"}, {"kind": "macro", "line": 12, "name": "NET_PCI_DEVICE"}, {"kind": "macro", "line": 18, "name": "NET_RX_BUF_LEN"}, {"kind": "macro", "line": 19, "name": "NET_RX_ALIGN"}, {"kind": "macro", "line": 22, "name": "NET_RCR"}, {"kind": "macro", "line": 23, "name": "NET_MAX_FRAME"}, {"kind": "macro", "line": 24, "name": "NET_TX_SLOTS"}, {"kind": "macro", "line": 27, "name": "NET_ETH_ALEN"}, {"kind": "macro", "line": 28, "name": "NET_ETHERTYPE_IP"}, {"kind": "macro", "line": 29, "name": "NET_ETHERTYPE_ARP"}, {"kind": "macro", "line": 32, "name": "NET_PROTO_ICMP"}, {"kind": "macro", "line": 33, "name": "NET_PROTO_TCP"}, {"kind": "macro", "line": 34, "name": "NET_PROTO_UDP"}, {"kind": "macro", "line": 37, "name": "NET_ARP_CACHE"}, {"kind": "macro", "line": 38, "name": "NET_ARP_REQUEST"}, {"kind": "macro", "line": 39, "name": "NET_ARP_REPLY"}, {"kind": "macro", "line": 42, "name": "NET_TCP_MSS"}, {"kind": "macro", "line": 43, "name": "NET_TCP_WINDOW"}, {"kind": "macro", "line": 46, "name": "NET_SOCK_RX_BUF"}, {"kind": "macro", "line": 47, "name": "NET_RX_RING_SIZE"}, {"kind": "macro", "line": 48, "name": "NET_SOCKETS"}, {"kind": "macro", "line": 49, "name": "NET_DNS_PORT"}, {"kind": "macro", "line": 50, "name": "NET_EPHEMERAL_MIN"}, {"kind": "macro", "line": 51, "name": "NET_DNS_TRIES"}, {"kind": "macro", "line": 52, "name": "NET_DNS_TMO_MS"}, {"kind": "macro", "line": 53, "name": "NET_CONNECT_TMO_S"}, {"kind": "macro", "line": 54, "name": "NET_RETRY_MS"}, {"kind": "macro", "line": 55, "name": "NET_TX_MAX"}, {"kind": "macro", "line": 58, "name": "NET_FD_BASE"}]}, {"doc": "ifndef PCSPK_H define PCSPK_H define PCSPK_VOL_MIN 0 define PCSPK_VOL_MAX 100 define PCSPK_VOL_DEFAULT 100", "id": "pcspk.h", "kind": "module", "label": "pcspk.h", "language": "h", "sha256": "736b349cb77b88f9", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 2, "name": "PCSPK_H"}, {"kind": "macro", "line": 3, "name": "PCSPK_VOL_MIN"}, {"kind": "macro", "line": 5, "name": "PCSPK_VOL_MAX"}, {"kind": "macro", "line": 6, "name": "PCSPK_VOL_DEFAULT"}]}, {"id": "progs/asm/aes.s", "kind": "module", "label": "aes.s", "language": "s", "sha256": "69c3164cbf9d4c6b", "symbol_count": 28, "symbols": [{"kind": "function", "line": 3, "name": "aes_rk"}, {"kind": "function", "line": 7, "name": "aes_sb"}, {"kind": "function", "line": 11, "name": "aes_rc"}, {"kind": "function", "line": 15, "name": "aes_st"}, {"kind": "function", "line": 19, "name": "aes_iv"}, {"kind": "function", "line": 23, "name": "aes_read_all"}, {"kind": "function", "line": 240, "name": "aes_write_all"}, {"kind": "function", "line": 349, "name": "aes_has"}, {"kind": "function", "line": 502, "name": "hex_val"}, {"kind": "function", "line": 624, "name": "aes_parse_hex"}, {"kind": "function", "line": 787, "name": "aes_gf_mul"}, {"kind": "function", "line": 888, "name": "aes_xtime"}, {"kind": "function", "line": 937, "name": "aes_rotl8"}, {"kind": "function", "line": 974, "name": "aes_init_tables"}, {"kind": "function", "line": 1203, "name": "aes_key_expand"}, {"kind": "function", "line": 1652, "name": "aes_add_round_key"}, {"kind": "function", "line": 1727, "name": "aes_sub_bytes"}, {"kind": "function", "line": 1780, "name": "aes_shift_rows"}, {"kind": "function", "line": 1999, "name": "aes_mix_columns"}, {"kind": "function", "line": 2472, "name": "aes_cipher"}, {"kind": "function", "line": 2571, "name": "aes_iv_increment"}, {"kind": "function", "line": 2654, "name": "aes_ctr_crypt"}, {"kind": "function", "line": 2797, "name": "aes_hdr_put"}, {"kind": "function", "line": 2912, "name": "aes_hdr_get"}, {"kind": "function", "line": 3065, "name": "aes_tool_name"}, {"kind": "function", "line": 3083, "name": "aes_run"}, {"kind": "function", "line": 3816, "name": "main"}, {"kind": "function", "line": 4124, "name": "_start"}]}, {"id": "progs/asm/cp.s", "kind": "module", "label": "cp.s", "language": "s", "sha256": "34a0ae76f164c7de", "symbol_count": 2, "symbols": [{"kind": "function", "line": 3, "name": "main"}, {"kind": "function", "line": 328, "name": "_start"}]}, {"id": "progs/asm/fib.s", "kind": "module", "label": "fib.s", "language": "s", "sha256": "e4cc2d98e3d0b67f", "symbol_count": 3, "symbols": [{"kind": "function", "line": 3, "name": "fib"}, {"kind": "function", "line": 61, "name": "main"}, {"kind": "function", "line": 82, "name": "_start"}]}, {"id": "progs/asm/freedom.s", "kind": "module", "label": "freedom.s", "language": "s", "sha256": "11cb0786854644b7", "symbol_count": 91, "symbols": [{"kind": "function", "line": 3, "name": "f_host"}, {"kind": "function", "line": 7, "name": "f_path"}, {"kind": "function", "line": 11, "name": "f_port"}, {"kind": "function", "line": 15, "name": "f_secure"}, {"kind": "function", "line": 19, "name": "f_loc"}, {"kind": "function", "line": 23, "name": "f_redir"}, {"kind": "function", "line": 27, "name": "f_status"}, {"kind": "function", "line": 31, "name": "f_clen"}, {"kind": "function", "line": 35, "name": "f_has_clen"}, {"kind": "function", "line": 39, "name": "f_chunked"}, {"kind": "function", "line": 43, "name": "f_hdr"}, {"kind": "function", "line": 47, "name": "f_hlen"}, {"kind": "function", "line": 51, "name": "f_tag"}, {"kind": "function", "line": 55, "name": "f_suppress"}, {"kind": "function", "line": 59, "name": "f_comment"}, {"kind": "function", "line": 63, "name": "f_cmdash"}, {"kind": "function", "line": 67, "name": "f_tagn"}, {"kind": "function", "line": 71, "name": "f_tagnlen"}, {"kind": "function", "line": 75, "name": "f_ent"}, {"kind": "function", "line": 79, "name": "f_entlen"}, {"kind": "function", "line": 83, "name": "f_ws"}, {"kind": "function", "line": 87, "name": "f_utbuf"}, {"kind": "function", "line": 91, "name": "f_utlen"}, {"kind": "function", "line": 95, "name": "f_utrem"}, {"kind": "function", "line": 99, "name": "f_attr_on"}, {"kind": "function", "line": 103, "name": "f_waitq"}, {"kind": "function", "line": 107, "name": "f_inval"}, {"kind": "function", "line": 111, "name": "f_inval2"}, {"kind": "function", "line": 115, "name": "f_attr"}, {"kind": "function", "line": 119, "name": "f_attrlen"}, {"kind": "function", "line": 123, "name": "f_val"}, {"kind": "function", "line": 127, "name": "f_vallen"}, {"kind": "function", "line": 131, "name": "f_id"}, {"kind": "function", "line": 135, "name": "f_idlen"}, {"kind": "function", "line": 139, "name": "f_cls"}, {"kind": "function", "line": 143, "name": "f_clslen"}, {"kind": "function", "line": 147, "name": "f_href"}, {"kind": "function", "line": 151, "name": "f_hreflen"}, {"kind": "function", "line": 155, "name": "f_rel_ss"}, {"kind": "function", "line": 159, "name": "f_styleattr"}, {"kind": "function", "line": 163, "name": "f_stylelen"}, {"kind": "function", "line": 167, "name": "f_dump_css"}, {"kind": "function", "line": 171, "name": "f_dump_dom"}, {"kind": "function", "line": 175, "name": "f_mode"}, {"kind": "function", "line": 179, "name": "f_rawcap"}, {"kind": "function", "line": 183, "name": "f_depth"}, {"kind": "function", "line": 187, "name": "f_dom"}, {"kind": "function", "line": 191, "name": "f_domlen"}, {"kind": "function", "line": 195, "name": "f_css"}, {"kind": "function", "line": 199, "name": "f_csslen"}, {"kind": "function", "line": 203, "name": "f_linkhost"}, {"kind": "function", "line": 207, "name": "f_linkpath"}, {"kind": "function", "line": 211, "name": "f_linkn"}, {"kind": "function", "line": 215, "name": "f_cstage"}, {"kind": "function", "line": 219, "name": "f_csize"}, {"kind": "function", "line": 223, "name": "f_crem"}, {"kind": "function", "line": 227, "name": "f_bdone"}, {"kind": "function", "line": 231, "name": "atoi"}, {"kind": "function", "line": 317, "name": "append"}, {"kind": "function", "line": 402, "name": "ci_lower"}, {"kind": "function", "line": 451, "name": "ci_starts"}, {"kind": "function", "line": 524, "name": "ci_eq"}, {"kind": "function", "line": 621, "name": "ci_index"}, {"kind": "function", "line": 681, "name": "looks_like_url"}, {"kind": "function", "line": 755, "name": "has_scheme"}, {"kind": "function", "line": 1030, "name": "make_search"}, {"kind": "function", "line": 1266, "name": "split_url"}, {"kind": "function", "line": 1781, "name": "resolve_redirect"}, {"kind": "function", "line": 2306, "name": "put_ws"}, {"kind": "function", "line": 2352, "name": "put_utf"}, {"kind": "function", "line": 2888, "name": "put_text"}, {"kind": "function", "line": 2991, "name": "put_entity"}, {"kind": "function", "line": 3828, "name": "css_append"}, {"kind": "function", "line": 3899, "name": "css_line"}, {"kind": "function", "line": 3958, "name": "dom_append"}, {"kind": "function", "line": 4029, "name": "dom_space"}, {"kind": "function", "line": 4063, "name": "dom_nl"}, {"kind": "function", "line": 4097, "name": "record_attr"}, {"kind": "function", "line": 4435, "name": "is_void_tag"}, {"kind": "function", "line": 4757, "name": "classify_tag"}, {"kind": "function", "line": 5994, "name": "body_byte"}, {"kind": "function", "line": 7239, "name": "head_line"}, {"kind": "function", "line": 7500, "name": "parse_head"}, {"kind": "function", "line": 7717, "name": "recv_body"}, {"kind": "function", "line": 7778, "name": "send_all"}, {"kind": "function", "line": 7853, "name": "fetch"}, {"kind": "function", "line": 9331, "name": "fetch_css"}, {"kind": "function", "line": 10143, "name": "print_css_dump"}, {"kind": "function", "line": 10243, "name": "print_dom_dump"}, {"kind": "function", "line": 10322, "name": "main"}, {"kind": "function", "line": 11800, "name": "_start"}]}, {"id": "progs/asm/http.s", "kind": "module", "label": "http.s", "language": "s", "sha256": "c9733b03c202f81a", "symbol_count": 3, "symbols": [{"kind": "function", "line": 3, "name": "atoi"}, {"kind": "function", "line": 89, "name": "main"}, {"kind": "function", "line": 698, "name": "_start"}]}, {"id": "progs/asm/json.s", "kind": "module", "label": "json.s", "language": "s", "sha256": "074c7155d704f2ed", "symbol_count": 32, "symbols": [{"kind": "function", "line": 3, "name": "js_key"}, {"kind": "function", "line": 7, "name": "js_str"}, {"kind": "function", "line": 11, "name": "js_type"}, {"kind": "function", "line": 15, "name": "js_num"}, {"kind": "function", "line": 19, "name": "js_first"}, {"kind": "function", "line": 23, "name": "js_count"}, {"kind": "function", "line": 27, "name": "js_next"}, {"kind": "function", "line": 31, "name": "js_n"}, {"kind": "function", "line": 35, "name": "js_pool"}, {"kind": "function", "line": 39, "name": "js_plen"}, {"kind": "function", "line": 43, "name": "js_src"}, {"kind": "function", "line": 47, "name": "js_pos"}, {"kind": "function", "line": 51, "name": "js_len"}, {"kind": "function", "line": 55, "name": "js_err"}, {"kind": "function", "line": 59, "name": "js_read_all"}, {"kind": "function", "line": 276, "name": "js_new"}, {"kind": "function", "line": 308, "name": "js_skip_ws"}, {"kind": "function", "line": 399, "name": "js_peek"}, {"kind": "function", "line": 439, "name": "js_parse_string"}, {"kind": "function", "line": 853, "name": "js_parse_number"}, {"kind": "function", "line": 949, "name": "js_key_match"}, {"kind": "function", "line": 986, "name": "js_parse_object"}, {"kind": "function", "line": 1338, "name": "js_parse_array"}, {"kind": "function", "line": 1597, "name": "js_parse_value"}, {"kind": "function", "line": 2484, "name": "js_indent"}, {"kind": "function", "line": 2527, "name": "js_print_str"}, {"kind": "function", "line": 2750, "name": "js_print_value"}, {"kind": "function", "line": 3319, "name": "js_find_member"}, {"kind": "function", "line": 3398, "name": "js_array_at"}, {"kind": "function", "line": 3467, "name": "js_query"}, {"kind": "function", "line": 3781, "name": "main"}, {"kind": "function", "line": 4185, "name": "_start"}]}, {"id": "progs/asm/ldhello.s", "kind": "module", "label": "ldhello.s", "language": "s", "sha256": "1eda6c9f40c5f161", "symbol_count": 2, "symbols": [{"kind": "function", "line": 3, "name": "main"}, {"kind": "function", "line": 14, "name": "_start"}]}, {"id": "progs/asm/lz4.s", "kind": "module", "label": "lz4.s", "language": "s", "sha256": "9a66ff1296f5b5b9", "symbol_count": 7, "symbols": [{"kind": "function", "line": 3, "name": "lz4_has"}, {"kind": "function", "line": 156, "name": "lz4_read_all"}, {"kind": "function", "line": 373, "name": "lz4_write_all"}, {"kind": "function", "line": 482, "name": "lz4_compress_file"}, {"kind": "function", "line": 800, "name": "lz4_decompress_file"}, {"kind": "function", "line": 1244, "name": "main"}, {"kind": "function", "line": 1555, "name": "_start"}]}, {"id": "progs/asm/lzss.s", "kind": "module", "label": "lzss.s", "language": "s", "sha256": "403cf1708fe9d57a", "symbol_count": 29, "symbols": [{"kind": "function", "line": 3, "name": "lz_win"}, {"kind": "function", "line": 7, "name": "lz_src"}, {"kind": "function", "line": 11, "name": "lz_srclen"}, {"kind": "function", "line": 15, "name": "lz_srcpos"}, {"kind": "function", "line": 19, "name": "lz_dst"}, {"kind": "function", "line": 23, "name": "lz_dstcap"}, {"kind": "function", "line": 27, "name": "lz_dstlen"}, {"kind": "function", "line": 31, "name": "lz_err"}, {"kind": "function", "line": 35, "name": "lz_buf"}, {"kind": "function", "line": 39, "name": "lz_mask"}, {"kind": "function", "line": 43, "name": "lz_in_getc"}, {"kind": "function", "line": 79, "name": "lz_out_put"}, {"kind": "function", "line": 116, "name": "lz_putbit1"}, {"kind": "function", "line": 174, "name": "lz_putbit0"}, {"kind": "function", "line": 223, "name": "lz_flush_bits"}, {"kind": "function", "line": 251, "name": "lz_out_literal"}, {"kind": "function", "line": 321, "name": "lz_out_pair"}, {"kind": "function", "line": 447, "name": "lz_encode"}, {"kind": "function", "line": 1011, "name": "lz_getbit"}, {"kind": "function", "line": 1131, "name": "lz_decode"}, {"kind": "function", "line": 1474, "name": "lz_hdr_put"}, {"kind": "function", "line": 1589, "name": "lz_hdr_get"}, {"kind": "function", "line": 1742, "name": "lz_has"}, {"kind": "function", "line": 1895, "name": "lz_read_all"}, {"kind": "function", "line": 2112, "name": "lz_write_all"}, {"kind": "function", "line": 2221, "name": "lz_compress"}, {"kind": "function", "line": 2597, "name": "lz_decompress"}, {"kind": "function", "line": 3155, "name": "main"}, {"kind": "function", "line": 3474, "name": "_start"}]}, {"id": "progs/asm/w1.s", "kind": "module", "label": "w1.s", "language": "s", "sha256": "cfd7d7a01734e3a0", "symbol_count": 2, "symbols": [{"kind": "function", "line": 3, "name": "main"}, {"kind": "function", "line": 37, "name": "_start"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: the automap code include include \"deh_main.h\" include \"z_zone.h\" include \"doomkeys.h\" include \"doomdef.h\" include \"st_stuff.h\" include \"p_local.h\" include \"w_wad.h\"", "id": "progs/doomgeneric/am_map.c", "kind": "module", "label": "am_map.c", "language": "c", "sha256": "b26cc70e5581beb6", "symbol_count": 82, "symbols": [{"doc": "Calculates the slope and slope according to the x-axis of a line segment in map coordinates (with the upright y-axis n' all) so that it can be used with the brain-dead drawing stuff.", "kind": "function", "line": 273, "name": "AM_getIslope", "signature": "void\nAM_getIslope\n( mline_t*\tml,\n islope_t*\tis )"}, {"kind": "function", "line": 293, "name": "AM_activateNewScale", "signature": "void AM_activateNewScale(void)"}, {"kind": "function", "line": 308, "name": "AM_saveScaleAndLoc", "signature": "void AM_saveScaleAndLoc(void)"}, {"kind": "function", "line": 319, "name": "AM_restoreScaleAndLoc", "signature": "void AM_restoreScaleAndLoc(void)"}, {"doc": "adds a marker at the current location", "kind": "function", "line": 343, "name": "AM_addMark", "signature": "void AM_addMark(void)"}, {"doc": "Determines bounding box of all vertices, sets global variables controlling zoom range.", "kind": "function", "line": 355, "name": "AM_findMinMaxBoundaries", "signature": "void AM_findMinMaxBoundaries(void)"}, {"kind": "function", "line": 395, "name": "AM_changeWindowLoc", "signature": "void AM_changeWindowLoc(void)"}, {"kind": "function", "line": 424, "name": "AM_initVariables", "signature": "void AM_initVariables(void)"}, {"kind": "function", "line": 480, "name": "AM_loadPics", "signature": "void AM_loadPics(void)"}, {"kind": "function", "line": 492, "name": "AM_unloadPics", "signature": "void AM_unloadPics(void)"}, {"kind": "function", "line": 504, "name": "AM_clearMarks", "signature": "void AM_clearMarks(void)"}, {"doc": "should be called at the start of every level right now, i figure it out myself", "kind": "function", "line": 518, "name": "AM_LevelInit", "signature": "void AM_LevelInit(void)"}, {"kind": "function", "line": 541, "name": "AM_Stop", "signature": "void AM_Stop (void)"}, {"kind": "function", "line": 554, "name": "AM_Start", "signature": "void AM_Start (void)"}, {"doc": "set the window scale to the maximum size", "kind": "function", "line": 573, "name": "AM_minOutWindowScale", "signature": "void AM_minOutWindowScale(void)"}, {"doc": "set the window scale to the minimum size", "kind": "function", "line": 583, "name": "AM_maxOutWindowScale", "signature": "void AM_maxOutWindowScale(void)"}, {"doc": "Handle events (user inputs) in automap mode", "kind": "function", "line": 594, "name": "AM_Responder", "signature": "boolean\nAM_Responder\n( event_t*\tev )"}, {"doc": "Zooming", "kind": "function", "line": 742, "name": "AM_changeWindowScale", "signature": "void AM_changeWindowScale(void)"}, {"kind": "function", "line": 761, "name": "AM_doFollowPlayer", "signature": "void AM_doFollowPlayer(void)"}, {"kind": "function", "line": 785, "name": "AM_updateLightLev", "signature": "void AM_updateLightLev(void)"}, {"doc": "Updates on Game Tick", "kind": "function", "line": 806, "name": "AM_Ticker", "signature": "void AM_Ticker (void)"}, {"doc": "Clear automap frame buffer.", "kind": "function", "line": 834, "name": "AM_clearFB", "signature": "void AM_clearFB(int color)"}, {"doc": "Automap clipping of lines. Based on Cohen-Sutherland clipping algorithm but with a slightly faster reject and precalculated slopes. If the speed is needed, use a hash algorithm to handle the common cases.", "kind": "function", "line": 847, "name": "AM_clipMline", "signature": "boolean\nAM_clipMline\n( mline_t*\tml,\n fline_t*\tfl )"}, {"doc": "Classic Bresenham w/ whatever optimizations needed for speed", "kind": "function", "line": 983, "name": "AM_drawFline", "signature": "void\nAM_drawFline\n( fline_t*\tfl,\n int\t\tcolor )"}, {"doc": "Clip lines, draw visible part sof lines.", "kind": "function", "line": 1061, "name": "AM_drawMline", "signature": "void\nAM_drawMline\n( mline_t*\tml,\n int\t\tcolor )"}, {"doc": "Draws flat (floor/ceiling tile) aligned grid lines.", "kind": "function", "line": 1077, "name": "AM_drawGrid", "signature": "void AM_drawGrid(int color)"}, {"doc": "Determines visible lines, draws them. This is LineDef based, not LineSeg based.", "kind": "function", "line": 1123, "name": "AM_drawWalls", "signature": "void AM_drawWalls(void)"}, {"doc": "Rotation in 2D. Used to rotate player arrow line character.", "kind": "function", "line": 1178, "name": "AM_rotate", "signature": "void\nAM_rotate\n( fixed_t*\tx,\n fixed_t*\ty,\n angle_t\ta )"}, {"kind": "function", "line": 1196, "name": "AM_drawLineCharacter", "signature": "void\nAM_drawLineCharacter\n( mline_t*\tlineguy,\n int\t\tlineguylines,\n fixed_t\tscale,\n angle_t\tang..."}, {"kind": "function", "line": 1245, "name": "AM_drawPlayers", "signature": "void AM_drawPlayers(void)"}, {"kind": "function", "line": 1289, "name": "AM_drawThings", "signature": "void\nAM_drawThings\n( int\tcolors,\n int \tcolorrange)"}, {"kind": "function", "line": 1310, "name": "AM_drawMarks", "signature": "void AM_drawMarks(void)"}, {"kind": "function", "line": 1331, "name": "AM_drawCrosshair", "signature": "void AM_drawCrosshair(int color)"}, {"kind": "function", "line": 1337, "name": "AM_Drawer", "signature": "void AM_Drawer (void)"}, {"kind": "macro", "line": 50, "name": "REDS"}, {"kind": "macro", "line": 51, "name": "REDRANGE"}, {"kind": "macro", "line": 52, "name": "BLUES"}, {"kind": "macro", "line": 53, "name": "BLUERANGE"}, {"kind": "macro", "line": 54, "name": "GREENS"}, {"kind": "macro", "line": 55, "name": "GREENRANGE"}, {"kind": "macro", "line": 56, "name": "GRAYS"}, {"kind": "macro", "line": 57, "name": "GRAYSRANGE"}, {"kind": "macro", "line": 58, "name": "BROWNS"}, {"kind": "macro", "line": 59, "name": "BROWNRANGE"}, {"kind": "macro", "line": 60, "name": "YELLOWS"}, {"kind": "macro", "line": 61, "name": "YELLOWRANGE"}, {"kind": "macro", "line": 62, "name": "BLACK"}, {"kind": "macro", "line": 63, "name": "WHITE"}, {"kind": "macro", "line": 66, "name": "BACKGROUND"}, {"kind": "macro", "line": 67, "name": "YOURCOLORS"}, {"kind": "macro", "line": 68, "name": "YOURRANGE"}, {"kind": "macro", "line": 69, "name": "WALLCOLORS"}, {"kind": "macro", "line": 70, "name": "WALLRANGE"}, {"kind": "macro", "line": 71, "name": "TSWALLCOLORS"}, {"kind": "macro", "line": 72, "name": "TSWALLRANGE"}, {"kind": "macro", "line": 73, "name": "FDWALLCOLORS"}, {"kind": "macro", "line": 74, "name": "FDWALLRANGE"}, {"kind": "macro", "line": 75, "name": "CDWALLCOLORS"}, {"kind": "macro", "line": 76, "name": "CDWALLRANGE"}, {"kind": "macro", "line": 77, "name": "THINGCOLORS"}, {"kind": "macro", "line": 78, "name": "THINGRANGE"}, {"kind": "macro", "line": 79, "name": "SECRETWALLCOLORS"}, {"kind": "macro", "line": 80, "name": "SECRETWALLRANGE"}, {"kind": "macro", "line": 81, "name": "GRIDCOLORS"}, {"kind": "macro", "line": 82, "name": "GRIDRANGE"}, {"kind": "macro", "line": 83, "name": "XHAIRCOLORS"}, {"kind": "macro", "line": 86, "name": "AM_NUMMARKPOINTS"}, {"kind": "macro", "line": 90, "name": "INITSCALEMTOF"}, {"kind": "macro", "line": 93, "name": "F_PANINC"}, {"kind": "macro", "line": 96, "name": "M_ZOOMIN"}, {"kind": "macro", "line": 99, "name": "M_ZOOMOUT"}, {"kind": "macro", "line": 102, "name": "FTOM"}, {"kind": "macro", "line": 103, "name": "MTOF"}, {"kind": "macro", "line": 105, "name": "CXMTOF"}, {"kind": "macro", "line": 106, "name": "CYMTOF"}, {"kind": "macro", "line": 109, "name": "LINE_NEVERSEE"}, {"kind": "macro", "line": 143, "name": "R"}, {"kind": "macro", "line": 154, "name": "R"}, {"kind": "macro", "line": 175, "name": "R"}, {"kind": "macro", "line": 183, "name": "R"}, {"kind": "macro", "line": 867, "name": "DOOUTCODE"}, {"kind": "macro", "line": 1009, "name": "PUTDOT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: AutoMap module. ifndef __AMMAP_H__ define __AMMAP_H__ include \"d_event.h\" include \"m_cheat.h\" Used by ST StatusBar stuff. define AM_MSGHEADER (('a'<<24)+('m'<<16)) define AM_MSGENTERED (AM_MSGHEADER | ('e'<<8)) define AM_MSGEXITED (AM_MSGHEADER | ('x'<<8))", "id": "progs/doomgeneric/am_map.h", "kind": "module", "label": "am_map.h", "language": "h", "sha256": "675257f181196842", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 20, "name": "__AMMAP_H__"}, {"kind": "macro", "line": 26, "name": "AM_MSGHEADER"}, {"kind": "macro", "line": 27, "name": "AM_MSGENTERED"}, {"kind": "macro", "line": 28, "name": "AM_MSGEXITED"}]}, {"doc": "config.hin. Generated from configure.ac by autoheader.", "id": "progs/doomgeneric/config.h", "kind": "module", "label": "config.h", "language": "h", "sha256": "07384b139305b90c", "symbol_count": 16, "symbols": [{"kind": "macro", "line": 10, "name": "HAVE_INTTYPES_H"}, {"kind": "macro", "line": 46, "name": "HAVE_STDINT_H"}, {"kind": "macro", "line": 49, "name": "HAVE_STDLIB_H"}, {"kind": "macro", "line": 52, "name": "HAVE_STRINGS_H"}, {"kind": "macro", "line": 55, "name": "HAVE_STRING_H"}, {"kind": "macro", "line": 61, "name": "HAVE_SYS_TYPES_H"}, {"kind": "macro", "line": 67, "name": "PACKAGE"}, {"kind": "macro", "line": 73, "name": "PACKAGE_NAME"}, {"kind": "macro", "line": 76, "name": "PACKAGE_STRING"}, {"kind": "macro", "line": 79, "name": "PACKAGE_TARNAME"}, {"kind": "macro", "line": 82, "name": "PACKAGE_URL"}, {"kind": "macro", "line": 85, "name": "PACKAGE_VERSION"}, {"kind": "macro", "line": 88, "name": "PROGRAM_PREFIX"}, {"kind": "macro", "line": 91, "name": "STDC_HEADERS"}, {"kind": "macro", "line": 94, "name": "VERSION"}, {"kind": "macro", "line": 100, "name": "FILES_DIR"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Printed strings for translation. English language support (default). ifndef __D_ENGLSH__ define __D_ENGLSH__ Printed strings for translation D_Main.C define D_DEVSTR\t\"Development mode ON.\\n\"", "id": "progs/doomgeneric/d_englsh.h", "kind": "module", "label": "d_englsh.h", "language": "h", "sha256": "7c94c53e9ca22494", "symbol_count": 286, "symbols": [{"kind": "macro", "line": 21, "name": "__D_ENGLSH__"}, {"kind": "macro", "line": 30, "name": "D_DEVSTR"}, {"kind": "macro", "line": 31, "name": "D_CDROM"}, {"kind": "macro", "line": 36, "name": "PRESSKEY"}, {"kind": "macro", "line": 37, "name": "PRESSYN"}, {"kind": "macro", "line": 38, "name": "QUITMSG"}, {"kind": "macro", "line": 39, "name": "LOADNET"}, {"kind": "macro", "line": 40, "name": "QLOADNET"}, {"kind": "macro", "line": 41, "name": "QSAVESPOT"}, {"kind": "macro", "line": 42, "name": "SAVEDEAD"}, {"kind": "macro", "line": 43, "name": "QSPROMPT"}, {"kind": "macro", "line": 44, "name": "QLPROMPT"}, {"kind": "macro", "line": 45, "name": "NEWGAME"}, {"kind": "macro", "line": 49, "name": "NIGHTMARE"}, {"kind": "macro", "line": 53, "name": "SWSTRING"}, {"kind": "macro", "line": 57, "name": "MSGOFF"}, {"kind": "macro", "line": 59, "name": "MSGON"}, {"kind": "macro", "line": 60, "name": "NETEND"}, {"kind": "macro", "line": 61, "name": "ENDGAME"}, {"kind": "macro", "line": 62, "name": "DOSY"}, {"kind": "macro", "line": 64, "name": "DETAILHI"}, {"kind": "macro", "line": 66, "name": "DETAILLO"}, {"kind": "macro", "line": 67, "name": "GAMMALVL0"}, {"kind": "macro", "line": 68, "name": "GAMMALVL1"}, {"kind": "macro", "line": 69, "name": "GAMMALVL2"}, {"kind": "macro", "line": 70, "name": "GAMMALVL3"}, {"kind": "macro", "line": 71, "name": "GAMMALVL4"}, {"kind": "macro", "line": 72, "name": "EMPTYSTRING"}, {"kind": "macro", "line": 77, "name": "GOTARMOR"}, {"kind": "macro", "line": 78, "name": "GOTMEGA"}, {"kind": "macro", "line": 79, "name": "GOTHTHBONUS"}, {"kind": "macro", "line": 80, "name": "GOTARMBONUS"}, {"kind": "macro", "line": 81, "name": "GOTSTIM"}, {"kind": "macro", "line": 82, "name": "GOTMEDINEED"}, {"kind": "macro", "line": 83, "name": "GOTMEDIKIT"}, {"kind": "macro", "line": 84, "name": "GOTSUPER"}, {"kind": "macro", "line": 85, "name": "GOTBLUECARD"}, {"kind": "macro", "line": 87, "name": "GOTYELWCARD"}, {"kind": "macro", "line": 88, "name": "GOTREDCARD"}, {"kind": "macro", "line": 89, "name": "GOTBLUESKUL"}, {"kind": "macro", "line": 90, "name": "GOTYELWSKUL"}, {"kind": "macro", "line": 91, "name": "GOTREDSKULL"}, {"kind": "macro", "line": 92, "name": "GOTINVUL"}, {"kind": "macro", "line": 94, "name": "GOTBERSERK"}, {"kind": "macro", "line": 95, "name": "GOTINVIS"}, {"kind": "macro", "line": 96, "name": "GOTSUIT"}, {"kind": "macro", "line": 97, "name": "GOTMAP"}, {"kind": "macro", "line": 98, "name": "GOTVISOR"}, {"kind": "macro", "line": 99, "name": "GOTMSPHERE"}, {"kind": "macro", "line": 100, "name": "GOTCLIP"}, {"kind": "macro", "line": 102, "name": "GOTCLIPBOX"}, {"kind": "macro", "line": 103, "name": "GOTROCKET"}, {"kind": "macro", "line": 104, "name": "GOTROCKBOX"}, {"kind": "macro", "line": 105, "name": "GOTCELL"}, {"kind": "macro", "line": 106, "name": "GOTCELLBOX"}, {"kind": "macro", "line": 107, "name": "GOTSHELLS"}, {"kind": "macro", "line": 108, "name": "GOTSHELLBOX"}, {"kind": "macro", "line": 109, "name": "GOTBACKPACK"}, {"kind": "macro", "line": 110, "name": "GOTBFG9000"}, {"kind": "macro", "line": 112, "name": "GOTCHAINGUN"}, {"kind": "macro", "line": 113, "name": "GOTCHAINSAW"}, {"kind": "macro", "line": 114, "name": "GOTLAUNCHER"}, {"kind": "macro", "line": 115, "name": "GOTPLASMA"}, {"kind": "macro", "line": 116, "name": "GOTSHOTGUN"}, {"kind": "macro", "line": 117, "name": "GOTSHOTGUN2"}, {"kind": "macro", "line": 122, "name": "PD_BLUEO"}, {"kind": "macro", "line": 123, "name": "PD_REDO"}, {"kind": "macro", "line": 124, "name": "PD_YELLOWO"}, {"kind": "macro", "line": 125, "name": "PD_BLUEK"}, {"kind": "macro", "line": 126, "name": "PD_REDK"}, {"kind": "macro", "line": 127, "name": "PD_YELLOWK"}, {"kind": "macro", "line": 132, "name": "GGSAVED"}, {"kind": "macro", "line": 137, "name": "HUSTR_MSGU"}, {"kind": "macro", "line": 138, "name": "HUSTR_E1M1"}, {"kind": "macro", "line": 140, "name": "HUSTR_E1M2"}, {"kind": "macro", "line": 141, "name": "HUSTR_E1M3"}, {"kind": "macro", "line": 142, "name": "HUSTR_E1M4"}, {"kind": "macro", "line": 143, "name": "HUSTR_E1M5"}, {"kind": "macro", "line": 144, "name": "HUSTR_E1M6"}, {"kind": "macro", "line": 145, "name": "HUSTR_E1M7"}, {"kind": "macro", "line": 146, "name": "HUSTR_E1M8"}, {"kind": "macro", "line": 147, "name": "HUSTR_E1M9"}, {"kind": "macro", "line": 148, "name": "HUSTR_E2M1"}, {"kind": "macro", "line": 150, "name": "HUSTR_E2M2"}, {"kind": "macro", "line": 151, "name": "HUSTR_E2M3"}, {"kind": "macro", "line": 152, "name": "HUSTR_E2M4"}, {"kind": "macro", "line": 153, "name": "HUSTR_E2M5"}, {"kind": "macro", "line": 154, "name": "HUSTR_E2M6"}, {"kind": "macro", "line": 155, "name": "HUSTR_E2M7"}, {"kind": "macro", "line": 156, "name": "HUSTR_E2M8"}, {"kind": "macro", "line": 157, "name": "HUSTR_E2M9"}, {"kind": "macro", "line": 158, "name": "HUSTR_E3M1"}, {"kind": "macro", "line": 160, "name": "HUSTR_E3M2"}, {"kind": "macro", "line": 161, "name": "HUSTR_E3M3"}, {"kind": "macro", "line": 162, "name": "HUSTR_E3M4"}, {"kind": "macro", "line": 163, "name": "HUSTR_E3M5"}, {"kind": "macro", "line": 164, "name": "HUSTR_E3M6"}, {"kind": "macro", "line": 165, "name": "HUSTR_E3M7"}, {"kind": "macro", "line": 166, "name": "HUSTR_E3M8"}, {"kind": "macro", "line": 167, "name": "HUSTR_E3M9"}, {"kind": "macro", "line": 168, "name": "HUSTR_E4M1"}, {"kind": "macro", "line": 170, "name": "HUSTR_E4M2"}, {"kind": "macro", "line": 171, "name": "HUSTR_E4M3"}, {"kind": "macro", "line": 172, "name": "HUSTR_E4M4"}, {"kind": "macro", "line": 173, "name": "HUSTR_E4M5"}, {"kind": "macro", "line": 174, "name": "HUSTR_E4M6"}, {"kind": "macro", "line": 175, "name": "HUSTR_E4M7"}, {"kind": "macro", "line": 176, "name": "HUSTR_E4M8"}, {"kind": "macro", "line": 177, "name": "HUSTR_E4M9"}, {"kind": "macro", "line": 178, "name": "HUSTR_1"}, {"kind": "macro", "line": 180, "name": "HUSTR_2"}, {"kind": "macro", "line": 181, "name": "HUSTR_3"}, {"kind": "macro", "line": 182, "name": "HUSTR_4"}, {"kind": "macro", "line": 183, "name": "HUSTR_5"}, {"kind": "macro", "line": 184, "name": "HUSTR_6"}, {"kind": "macro", "line": 185, "name": "HUSTR_7"}, {"kind": "macro", "line": 186, "name": "HUSTR_8"}, {"kind": "macro", "line": 187, "name": "HUSTR_9"}, {"kind": "macro", "line": 188, "name": "HUSTR_10"}, {"kind": "macro", "line": 189, "name": "HUSTR_11"}, {"kind": "macro", "line": 190, "name": "HUSTR_12"}, {"kind": "macro", "line": 192, "name": "HUSTR_13"}, {"kind": "macro", "line": 193, "name": "HUSTR_14"}, {"kind": "macro", "line": 194, "name": "HUSTR_15"}, {"kind": "macro", "line": 195, "name": "HUSTR_16"}, {"kind": "macro", "line": 196, "name": "HUSTR_17"}, {"kind": "macro", "line": 197, "name": "HUSTR_18"}, {"kind": "macro", "line": 198, "name": "HUSTR_19"}, {"kind": "macro", "line": 199, "name": "HUSTR_20"}, {"kind": "macro", "line": 200, "name": "HUSTR_21"}, {"kind": "macro", "line": 202, "name": "HUSTR_22"}, {"kind": "macro", "line": 203, "name": "HUSTR_23"}, {"kind": "macro", "line": 204, "name": "HUSTR_24"}, {"kind": "macro", "line": 205, "name": "HUSTR_25"}, {"kind": "macro", "line": 206, "name": "HUSTR_26"}, {"kind": "macro", "line": 207, "name": "HUSTR_27"}, {"kind": "macro", "line": 208, "name": "HUSTR_28"}, {"kind": "macro", "line": 209, "name": "HUSTR_29"}, {"kind": "macro", "line": 210, "name": "HUSTR_30"}, {"kind": "macro", "line": 211, "name": "HUSTR_31"}, {"kind": "macro", "line": 213, "name": "HUSTR_32"}, {"kind": "macro", "line": 214, "name": "PHUSTR_1"}, {"kind": "macro", "line": 216, "name": "PHUSTR_2"}, {"kind": "macro", "line": 217, "name": "PHUSTR_3"}, {"kind": "macro", "line": 218, "name": "PHUSTR_4"}, {"kind": "macro", "line": 219, "name": "PHUSTR_5"}, {"kind": "macro", "line": 220, "name": "PHUSTR_6"}, {"kind": "macro", "line": 221, "name": "PHUSTR_7"}, {"kind": "macro", "line": 222, "name": "PHUSTR_8"}, {"kind": "macro", "line": 223, "name": "PHUSTR_9"}, {"kind": "macro", "line": 224, "name": "PHUSTR_10"}, {"kind": "macro", "line": 225, "name": "PHUSTR_11"}, {"kind": "macro", "line": 226, "name": "PHUSTR_12"}, {"kind": "macro", "line": 228, "name": "PHUSTR_13"}, {"kind": "macro", "line": 229, "name": "PHUSTR_14"}, {"kind": "macro", "line": 230, "name": "PHUSTR_15"}, {"kind": "macro", "line": 231, "name": "PHUSTR_16"}, {"kind": "macro", "line": 232, "name": "PHUSTR_17"}, {"kind": "macro", "line": 233, "name": "PHUSTR_18"}, {"kind": "macro", "line": 234, "name": "PHUSTR_19"}, {"kind": "macro", "line": 235, "name": "PHUSTR_20"}, {"kind": "macro", "line": 236, "name": "PHUSTR_21"}, {"kind": "macro", "line": 238, "name": "PHUSTR_22"}, {"kind": "macro", "line": 239, "name": "PHUSTR_23"}, {"kind": "macro", "line": 240, "name": "PHUSTR_24"}, {"kind": "macro", "line": 241, "name": "PHUSTR_25"}, {"kind": "macro", "line": 242, "name": "PHUSTR_26"}, {"kind": "macro", "line": 243, "name": "PHUSTR_27"}, {"kind": "macro", "line": 244, "name": "PHUSTR_28"}, {"kind": "macro", "line": 245, "name": "PHUSTR_29"}, {"kind": "macro", "line": 246, "name": "PHUSTR_30"}, {"kind": "macro", "line": 247, "name": "PHUSTR_31"}, {"kind": "macro", "line": 249, "name": "PHUSTR_32"}, {"kind": "macro", "line": 250, "name": "THUSTR_1"}, {"kind": "macro", "line": 252, "name": "THUSTR_2"}, {"kind": "macro", "line": 253, "name": "THUSTR_3"}, {"kind": "macro", "line": 254, "name": "THUSTR_4"}, {"kind": "macro", "line": 255, "name": "THUSTR_5"}, {"kind": "macro", "line": 256, "name": "THUSTR_6"}, {"kind": "macro", "line": 257, "name": "THUSTR_7"}, {"kind": "macro", "line": 258, "name": "THUSTR_8"}, {"kind": "macro", "line": 259, "name": "THUSTR_9"}, {"kind": "macro", "line": 260, "name": "THUSTR_10"}, {"kind": "macro", "line": 261, "name": "THUSTR_11"}, {"kind": "macro", "line": 262, "name": "THUSTR_12"}, {"kind": "macro", "line": 264, "name": "THUSTR_13"}, {"kind": "macro", "line": 265, "name": "THUSTR_14"}, {"kind": "macro", "line": 266, "name": "THUSTR_15"}, {"kind": "macro", "line": 267, "name": "THUSTR_16"}, {"kind": "macro", "line": 268, "name": "THUSTR_17"}, {"kind": "macro", "line": 269, "name": "THUSTR_18"}, {"kind": "macro", "line": 270, "name": "THUSTR_19"}, {"kind": "macro", "line": 271, "name": "THUSTR_20"}, {"kind": "macro", "line": 272, "name": "THUSTR_21"}, {"kind": "macro", "line": 274, "name": "THUSTR_22"}, {"kind": "macro", "line": 275, "name": "THUSTR_23"}, {"kind": "macro", "line": 276, "name": "THUSTR_24"}, {"kind": "macro", "line": 277, "name": "THUSTR_25"}, {"kind": "macro", "line": 278, "name": "THUSTR_26"}, {"kind": "macro", "line": 279, "name": "THUSTR_27"}, {"kind": "macro", "line": 280, "name": "THUSTR_28"}, {"kind": "macro", "line": 281, "name": "THUSTR_29"}, {"kind": "macro", "line": 282, "name": "THUSTR_30"}, {"kind": "macro", "line": 283, "name": "THUSTR_31"}, {"kind": "macro", "line": 285, "name": "THUSTR_32"}, {"kind": "macro", "line": 286, "name": "HUSTR_CHATMACRO1"}, {"kind": "macro", "line": 288, "name": "HUSTR_CHATMACRO2"}, {"kind": "macro", "line": 289, "name": "HUSTR_CHATMACRO3"}, {"kind": "macro", "line": 290, "name": "HUSTR_CHATMACRO4"}, {"kind": "macro", "line": 291, "name": "HUSTR_CHATMACRO5"}, {"kind": "macro", "line": 292, "name": "HUSTR_CHATMACRO6"}, {"kind": "macro", "line": 293, "name": "HUSTR_CHATMACRO7"}, {"kind": "macro", "line": 294, "name": "HUSTR_CHATMACRO8"}, {"kind": "macro", "line": 295, "name": "HUSTR_CHATMACRO9"}, {"kind": "macro", "line": 296, "name": "HUSTR_CHATMACRO0"}, {"kind": "macro", "line": 297, "name": "HUSTR_TALKTOSELF1"}, {"kind": "macro", "line": 299, "name": "HUSTR_TALKTOSELF2"}, {"kind": "macro", "line": 300, "name": "HUSTR_TALKTOSELF3"}, {"kind": "macro", "line": 301, "name": "HUSTR_TALKTOSELF4"}, {"kind": "macro", "line": 302, "name": "HUSTR_TALKTOSELF5"}, {"kind": "macro", "line": 303, "name": "HUSTR_MESSAGESENT"}, {"kind": "macro", "line": 308, "name": "HUSTR_PLRGREEN"}, {"kind": "macro", "line": 310, "name": "HUSTR_PLRINDIGO"}, {"kind": "macro", "line": 311, "name": "HUSTR_PLRBROWN"}, {"kind": "macro", "line": 312, "name": "HUSTR_PLRRED"}, {"kind": "macro", "line": 313, "name": "HUSTR_KEYGREEN"}, {"kind": "macro", "line": 315, "name": "HUSTR_KEYINDIGO"}, {"kind": "macro", "line": 316, "name": "HUSTR_KEYBROWN"}, {"kind": "macro", "line": 317, "name": "HUSTR_KEYRED"}, {"kind": "macro", "line": 322, "name": "AMSTR_FOLLOWON"}, {"kind": "macro", "line": 324, "name": "AMSTR_FOLLOWOFF"}, {"kind": "macro", "line": 325, "name": "AMSTR_GRIDON"}, {"kind": "macro", "line": 327, "name": "AMSTR_GRIDOFF"}, {"kind": "macro", "line": 328, "name": "AMSTR_MARKEDSPOT"}, {"kind": "macro", "line": 330, "name": "AMSTR_MARKSCLEARED"}, {"kind": "macro", "line": 335, "name": "STSTR_MUS"}, {"kind": "macro", "line": 337, "name": "STSTR_NOMUS"}, {"kind": "macro", "line": 338, "name": "STSTR_DQDON"}, {"kind": "macro", "line": 339, "name": "STSTR_DQDOFF"}, {"kind": "macro", "line": 340, "name": "STSTR_KFAADDED"}, {"kind": "macro", "line": 342, "name": "STSTR_FAADDED"}, {"kind": "macro", "line": 343, "name": "STSTR_NCON"}, {"kind": "macro", "line": 345, "name": "STSTR_NCOFF"}, {"kind": "macro", "line": 346, "name": "STSTR_BEHOLD"}, {"kind": "macro", "line": 348, "name": "STSTR_BEHOLDX"}, {"kind": "macro", "line": 349, "name": "STSTR_CHOPPERS"}, {"kind": "macro", "line": 351, "name": "STSTR_CLEV"}, {"kind": "macro", "line": 356, "name": "E1TEXT"}, {"kind": "macro", "line": 372, "name": "E2TEXT"}, {"kind": "macro", "line": 392, "name": "E3TEXT"}, {"kind": "macro", "line": 412, "name": "E4TEXT"}, {"kind": "macro", "line": 434, "name": "C1TEXT"}, {"kind": "macro", "line": 450, "name": "C2TEXT"}, {"kind": "macro", "line": 472, "name": "C3TEXT"}, {"kind": "macro", "line": 486, "name": "C4TEXT"}, {"kind": "macro", "line": 507, "name": "C5TEXT"}, {"kind": "macro", "line": 517, "name": "C6TEXT"}, {"kind": "macro", "line": 525, "name": "P1TEXT"}, {"kind": "macro", "line": 542, "name": "P2TEXT"}, {"kind": "macro", "line": 553, "name": "P3TEXT"}, {"kind": "macro", "line": 567, "name": "P4TEXT"}, {"kind": "macro", "line": 583, "name": "P5TEXT"}, {"kind": "macro", "line": 591, "name": "P6TEXT"}, {"kind": "macro", "line": 596, "name": "T1TEXT"}, {"kind": "macro", "line": 611, "name": "T2TEXT"}, {"kind": "macro", "line": 623, "name": "T3TEXT"}, {"kind": "macro", "line": 634, "name": "T4TEXT"}, {"kind": "macro", "line": 647, "name": "T5TEXT"}, {"kind": "macro", "line": 655, "name": "T6TEXT"}, {"kind": "macro", "line": 674, "name": "CC_ZOMBIE"}, {"kind": "macro", "line": 675, "name": "CC_SHOTGUN"}, {"kind": "macro", "line": 676, "name": "CC_HEAVY"}, {"kind": "macro", "line": 677, "name": "CC_IMP"}, {"kind": "macro", "line": 678, "name": "CC_DEMON"}, {"kind": "macro", "line": 679, "name": "CC_LOST"}, {"kind": "macro", "line": 680, "name": "CC_CACO"}, {"kind": "macro", "line": 681, "name": "CC_HELL"}, {"kind": "macro", "line": 682, "name": "CC_BARON"}, {"kind": "macro", "line": 683, "name": "CC_ARACH"}, {"kind": "macro", "line": 684, "name": "CC_PAIN"}, {"kind": "macro", "line": 685, "name": "CC_REVEN"}, {"kind": "macro", "line": 686, "name": "CC_MANCU"}, {"kind": "macro", "line": 687, "name": "CC_ARCH"}, {"kind": "macro", "line": 688, "name": "CC_SPIDER"}, {"kind": "macro", "line": 689, "name": "CC_CYBER"}, {"kind": "macro", "line": 690, "name": "CC_HERO"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Event handling. Events are asynchronous inputs generally generated by the game user. Events can be discarded if no responder claims them include include \"d_event.h\" define MAXEVENTS 64", "id": "progs/doomgeneric/d_event.c", "kind": "module", "label": "d_event.c", "language": "c", "sha256": "e59c83a837704ef9", "symbol_count": 3, "symbols": [{"doc": "D_PostEvent Called by the I/O functions when input is detected", "kind": "function", "line": 35, "name": "D_PostEvent", "signature": "void D_PostEvent (event_t* ev)"}, {"doc": "Read an event from the queue.", "kind": "function", "line": 42, "name": "D_PopEvent", "signature": "event_t *D_PopEvent(void)"}, {"kind": "macro", "line": 24, "name": "MAXEVENTS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __D_EVENT__ define __D_EVENT__ include \"doomtype.h\" Event handling.", "id": "progs/doomgeneric/d_event.h", "kind": "module", "label": "d_event.h", "language": "h", "sha256": "bf8349da634de493", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__D_EVENT__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: We are referring to sprite numbers. include \"info.h\" include \"d_items.h\" PSPRITE ACTIONS for waepons. This struct controls the weapon animations. Each entry is: ammo/amunition type", "id": "progs/doomgeneric/d_items.c", "kind": "module", "label": "d_items.c", "language": "c", "sha256": "71175f526df33793", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Items: key cards, artifacts, weapon, ammunition. ifndef __D_ITEMS__ define __D_ITEMS__ include \"doomdef.h\" Weapon info: sprite frames, ammunition use.", "id": "progs/doomgeneric/d_items.h", "kind": "module", "label": "d_items.h", "language": "h", "sha256": "dc26e4ff3c17194f", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__D_ITEMS__"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Search for and locate an IWAD file, and initialize according to the IWAD type. include include include include include \"config.h\" include \"deh_str.h\" include \"doomkeys.h\" include \"d_iwad.h\" include \"i_system.h\" include \"m_argv.h\" include \"m_config.h\"", "id": "progs/doomgeneric/d_iwad.c", "kind": "module", "label": "d_iwad.c", "language": "c", "sha256": "bd8d123b84420ec0", "symbol_count": 26, "symbols": [{"kind": "function", "line": 63, "name": "AddIWADDir", "signature": "static void AddIWADDir(char *dir)"}, {"kind": "function", "line": 191, "name": "GetRegistryString", "signature": "static char *GetRegistryString(registry_value_t *reg_val)"}, {"doc": "Check for the uninstall strings from the CD versions", "kind": "function", "line": 235, "name": "CheckUninstallStrings", "signature": "static void CheckUninstallStrings(void)"}, {"doc": "Check for Doom: Collector's Edition", "kind": "function", "line": 269, "name": "CheckCollectorsEdition", "signature": "static void CheckCollectorsEdition(void)"}, {"doc": "Check for Doom downloaded via Steam", "kind": "function", "line": 296, "name": "CheckSteamEdition", "signature": "static void CheckSteamEdition(void)"}, {"doc": "The BFG edition ships with a full set of GUS patches. If we find them, we can autoconfigure to use them.", "kind": "function", "line": 323, "name": "CheckSteamGUSPatches", "signature": "static void CheckSteamGUSPatches(void)"}, {"doc": "Default install directories for DOS Doom", "kind": "function", "line": 363, "name": "CheckDOSDefaults", "signature": "static void CheckDOSDefaults(void)"}, {"doc": "Returns true if the specified path is a path to a file of the specified name.", "kind": "function", "line": 390, "name": "DirIsFile", "signature": "static boolean DirIsFile(char *path, char *filename)"}, {"doc": "Check if the specified directory contains the specified IWAD file, returning the full path to the IWAD if found, or NULL if not found.", "kind": "function", "line": 407, "name": "CheckDirectoryHasIWAD", "signature": "static char *CheckDirectoryHasIWAD(char *dir, char *iwadname)"}, {"doc": "Search a directory to try to find an IWAD Returns the location of the IWAD if found, otherwise NULL.", "kind": "function", "line": 448, "name": "SearchDirectoryForIWAD", "signature": "static char *SearchDirectoryForIWAD(char *dir, int mask, GameMission_t *mission)"}, {"doc": "When given an IWAD with the '-iwad' parameter, attempt to identify it by its name.", "kind": "function", "line": 476, "name": "IdentifyIWADByName", "signature": "static GameMission_t IdentifyIWADByName(char *name, int mask)"}, {"doc": "if ORIGCODE Add directories from the list in the DOOMWADPATH environment variable.", "kind": "function", "line": 517, "name": "AddDoomWadPath", "signature": "static void AddDoomWadPath(void)"}, {"doc": "Build a list of IWAD files", "kind": "function", "line": 568, "name": "BuildIWADDirList", "signature": "static void BuildIWADDirList(void)"}, {"doc": "Searches WAD search paths for an WAD with a specific filename.", "kind": "function", "line": 629, "name": "D_FindWADByName", "signature": "char *D_FindWADByName(char *name)"}, {"doc": "D_TryWADByName Searches for a WAD by its filename, or passes through the filename if not found.", "kind": "function", "line": 680, "name": "D_TryFindWADByName", "signature": "char *D_TryFindWADByName(char *filename)"}, {"doc": "FindIWAD Checks availability of IWAD files by name, to determine whether registered/commercial features should be executed (notably loading PWADs).", "kind": "function", "line": 703, "name": "D_FindIWAD", "signature": "char *D_FindIWAD(int mask, GameMission_t *mission)"}, {"doc": "Find all IWADs in the IWAD search path matching the given mask.", "kind": "function", "line": 756, "name": "D_FindAllIWADs", "signature": "const iwad_t **D_FindAllIWADs(int mask)"}, {"doc": "Get the IWAD name used for savegames.", "kind": "function", "line": 795, "name": "D_SaveGameIWADName", "signature": "char *D_SaveGameIWADName(GameMission_t gamemission)"}, {"kind": "function", "line": 819, "name": "D_SuggestIWADName", "signature": "char *D_SuggestIWADName(GameMission_t mission, GameMode_t mode)"}, {"kind": "function", "line": 834, "name": "D_SuggestGameName", "signature": "char *D_SuggestGameName(GameMission_t mission, GameMode_t mode)"}, {"kind": "macro", "line": 57, "name": "MAX_IWAD_DIRS"}, {"kind": "macro", "line": 79, "name": "WIN32_LEAN_AND_MEAN"}, {"kind": "macro", "line": 89, "name": "UNINSTALLER_STRING"}, {"kind": "macro", "line": 102, "name": "SOFTWARE_KEY"}, {"kind": "macro", "line": 104, "name": "SOFTWARE_KEY"}, {"kind": "macro", "line": 188, "name": "STEAM_BFG_GUS_PATCHES"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Find IWAD and initialize according to IWAD type. ifndef __D_IWAD__ define __D_IWAD__ include \"d_mode.h\" define IWAD_MASK_DOOM ((1 << doom) \\", "id": "progs/doomgeneric/d_iwad.h", "kind": "module", "label": "d_iwad.h", "language": "h", "sha256": "80711f3d285bd69d", "symbol_count": 5, "symbols": [{"kind": "macro", "line": 20, "name": "__D_IWAD__"}, {"kind": "macro", "line": 23, "name": "IWAD_MASK_DOOM"}, {"kind": "macro", "line": 30, "name": "IWAD_MASK_HERETIC"}, {"kind": "macro", "line": 31, "name": "IWAD_MASK_HEXEN"}, {"kind": "macro", "line": 32, "name": "IWAD_MASK_STRIFE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Main loop code. include include include \"doomfeatures.h\" include \"d_event.h\" include \"d_loop.h\" include \"d_ticcmd.h\" include \"i_system.h\" include \"i_timer.h\" include \"i_video.h\"", "id": "progs/doomgeneric/d_loop.c", "kind": "module", "label": "d_loop.c", "language": "c", "sha256": "a485f3ad92a42b3b", "symbol_count": 17, "symbols": [{"doc": "35 fps clock adjusted by offsetms milliseconds", "kind": "function", "line": 118, "name": "GetAdjustedTime", "signature": "static int GetAdjustedTime(void)"}, {"kind": "function", "line": 135, "name": "BuildNewTic", "signature": "static boolean BuildNewTic(void)"}, {"kind": "function", "line": 202, "name": "NetUpdate", "signature": "void NetUpdate (void)"}, {"kind": "function", "line": 251, "name": "D_Disconnected", "signature": "static void D_Disconnected(void)"}, {"doc": "Invoked by the network engine when a complete set of ticcmds is available.", "kind": "function", "line": 270, "name": "D_ReceiveTic", "signature": "void D_ReceiveTic(ticcmd_t *ticcmds, boolean *players_mask)"}, {"doc": "Start game loop Called after the screen is set but before the game starts running.", "kind": "function", "line": 304, "name": "D_StartGameLoop", "signature": "void D_StartGameLoop(void)"}, {"doc": "if ORIGCODE Block until the game start message is received from the server.", "kind": "function", "line": 314, "name": "BlockUntilStart", "signature": "static void BlockUntilStart(net_gamesettings_t *settings,\n netgame_sta..."}, {"doc": "endif", "kind": "function", "line": 339, "name": "D_StartNetGame", "signature": "void D_StartNetGame(net_gamesettings_t *settings,\n netgame_startup_callback_t ..."}, {"kind": "function", "line": 451, "name": "D_InitNetGame", "signature": "boolean D_InitNetGame(net_connect_data_t *connect_data)"}, {"doc": "D_QuitNetGame Called before quitting to leave a net game without hanging the other players", "kind": "function", "line": 560, "name": "D_QuitNetGame", "signature": "void D_QuitNetGame (void)"}, {"kind": "function", "line": 567, "name": "GetLowTic", "signature": "static int GetLowTic(void)"}, {"kind": "function", "line": 590, "name": "OldNetSync", "signature": "static void OldNetSync(void)"}, {"doc": "Returns true if there are players in the game:", "kind": "function", "line": 641, "name": "PlayersInGame", "signature": "static boolean PlayersInGame(void)"}, {"doc": "When using ticdup, certain values must be cleared out when running the duplicate ticcmds.", "kind": "function", "line": 671, "name": "TicdupSquash", "signature": "static void TicdupSquash(ticcmd_set_t *set)"}, {"doc": "When running in single player mode, clear all the ingame[] array except the local player.", "kind": "function", "line": 688, "name": "SinglePlayerClear", "signature": "static void SinglePlayerClear(ticcmd_set_t *set)"}, {"doc": "TryRunTics", "kind": "function", "line": 705, "name": "TryRunTics", "signature": "void TryRunTics (void)"}, {"kind": "function", "line": 821, "name": "D_RegisterLoopCallbacks", "signature": "void D_RegisterLoopCallbacks(loop_interface_t *i)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Main loop stuff. ifndef __D_LOOP__ define __D_LOOP__ include \"net_defs.h\" Callback function invoked while waiting for the netgame to start. The callback is invoked when new players are ready. The callback should return true, or return false to abort startup.", "id": "progs/doomgeneric/d_loop.h", "kind": "module", "label": "d_loop.h", "language": "h", "sha256": "a8355729ce130c19", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 20, "name": "__D_LOOP__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: DOOM main program (D_DoomMain) and game loop (D_DoomLoop), plus functions to determine game mode (shareware, registered), parse command line parameters, configure game parameters (turbo), and call the startup functions. include include include include include \"config.h\" include \"deh_main.h\" include \"doomdef.h\"", "id": "progs/doomgeneric/d_main.c", "kind": "module", "label": "d_main.c", "language": "c", "sha256": "02929eb503986c76", "symbol_count": 21, "symbols": [{"doc": "D_ProcessEvents Send all the events of the given timestamp down the responder chain", "kind": "function", "line": 139, "name": "D_ProcessEvents", "signature": "void D_ProcessEvents (void)"}, {"kind": "function", "line": 168, "name": "D_Display", "signature": "void D_Display (void)"}, {"doc": "Add configuration file variable bindings.", "kind": "function", "line": 334, "name": "D_BindVariables", "signature": "void D_BindVariables(void)"}, {"doc": "D_GrabMouseCallback Called to determine whether to grab the mouse pointer", "kind": "function", "line": 387, "name": "D_GrabMouseCallback", "signature": "boolean D_GrabMouseCallback(void)"}, {"doc": "D_DoomLoop", "kind": "function", "line": 408, "name": "D_DoomLoop", "signature": "void D_DoomLoop (void)"}, {"doc": "D_PageTicker Handles timing for warped projection", "kind": "function", "line": 490, "name": "D_PageTicker", "signature": "void D_PageTicker (void)"}, {"doc": "D_PageDrawer", "kind": "function", "line": 501, "name": "D_PageDrawer", "signature": "void D_PageDrawer (void)"}, {"doc": "D_AdvanceDemo Called after each demo or intro demosequence finishes", "kind": "function", "line": 511, "name": "D_AdvanceDemo", "signature": "void D_AdvanceDemo (void)"}, {"doc": "This cycles through the demo sequences. FIXME - version dependend demo numbers?", "kind": "function", "line": 521, "name": "D_DoAdvanceDemo", "signature": "void D_DoAdvanceDemo (void)"}, {"doc": "D_StartTitle", "kind": "function", "line": 609, "name": "D_StartTitle", "signature": "void D_StartTitle (void)"}, {"doc": "Get game name: if the startup banner has been replaced, use that. Otherwise, use the name given", "kind": "function", "line": 657, "name": "GetGameName", "signature": "static char *GetGameName(char *gamename)"}, {"kind": "function", "line": 700, "name": "SetMissionForPackName", "signature": "static void SetMissionForPackName(char *pack_name)"}, {"doc": "Find out what version of Doom is playing.", "kind": "function", "line": 736, "name": "D_IdentifyVersion", "signature": "void D_IdentifyVersion(void)"}, {"doc": "Set the gamedescription string", "kind": "function", "line": 819, "name": "D_SetGameDescription", "signature": "void D_SetGameDescription(void)"}, {"kind": "function", "line": 882, "name": "D_AddFile", "signature": "static boolean D_AddFile(char *filename)"}, {"doc": "Prints a message only if it has been modified by dehacked.", "kind": "function", "line": 917, "name": "PrintDehackedBanners", "signature": "void PrintDehackedBanners(void)"}, {"doc": "Initialize the game version", "kind": "function", "line": 962, "name": "InitGameVersion", "signature": "static void InitGameVersion(void)"}, {"kind": "function", "line": 1064, "name": "PrintGameVersion", "signature": "void PrintGameVersion(void)"}, {"doc": "Function called at exit to display the ENDOOM screen", "kind": "function", "line": 1081, "name": "D_Endoom", "signature": "static void D_Endoom(void)"}, {"doc": "if ORIGCODE Load dehacked patches needed for certain IWADs.", "kind": "function", "line": 1105, "name": "LoadIwadDeh", "signature": "static void LoadIwadDeh(void)"}, {"doc": "D_DoomMain", "kind": "function", "line": 1178, "name": "D_DoomMain", "signature": "void D_DoomMain (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __D_MAIN__ define __D_MAIN__ include \"doomdef.h\" Read events from all input devices", "id": "progs/doomgeneric/d_main.h", "kind": "module", "label": "d_main.h", "language": "h", "sha256": "bbc489e1c3947bc9", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__D_MAIN__"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Functions and definitions relating to the game type and operational mode. include \"doomtype.h\" include \"d_mode.h\" Valid game mode/mission combinations, with the number of episodes/maps for each.", "id": "progs/doomgeneric/d_mode.c", "kind": "module", "label": "d_mode.c", "language": "c", "sha256": "65311c8ff5a09055", "symbol_count": 6, "symbols": [{"doc": "Check that a gamemode+gamemission received over the network is valid.", "kind": "function", "line": 49, "name": "D_ValidGameMode", "signature": "boolean D_ValidGameMode(GameMission_t mission, GameMode_t mode)"}, {"kind": "function", "line": 64, "name": "D_ValidEpisodeMap", "signature": "boolean D_ValidEpisodeMap(GameMission_t mission, GameMode_t mode,\n int e..."}, {"doc": "Get the number of valid episodes for the specified mission/mode.", "kind": "function", "line": 102, "name": "D_GetNumEpisodes", "signature": "int D_GetNumEpisodes(GameMission_t mission, GameMode_t mode)"}, {"kind": "function", "line": 134, "name": "D_ValidGameVersion", "signature": "boolean D_ValidGameVersion(GameMission_t mission, GameVersion_t version)"}, {"doc": "Does this mission type use ExMy form, rather than MAPxy form?", "kind": "function", "line": 160, "name": "D_IsEpisodeMap", "signature": "boolean D_IsEpisodeMap(GameMission_t mission)"}, {"kind": "function", "line": 181, "name": "D_GameMissionString", "signature": "char *D_GameMissionString(GameMission_t mission)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Functions and definitions relating to the game type and operational mode. ifndef __D_MODE__ define __D_MODE__ include \"doomtype.h\" The \"mission\" controls what game we are playing.", "id": "progs/doomgeneric/d_mode.h", "kind": "module", "label": "d_mode.h", "language": "h", "sha256": "f16f2ed640e3d4b7", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__D_MODE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: DOOM Network game communication and protocol, all OS independend parts. include include \"doomfeatures.h\" include \"d_main.h\" include \"m_argv.h\" include \"m_menu.h\" include \"m_misc.h\" include \"i_system.h\" include \"i_timer.h\" include \"i_video.h\"", "id": "progs/doomgeneric/d_net.c", "kind": "module", "label": "d_net.c", "language": "c", "sha256": "2cbf920b5971ccdb", "symbol_count": 7, "symbols": [{"doc": "Called when a player leaves the game", "kind": "function", "line": 44, "name": "PlayerQuitGame", "signature": "static void PlayerQuitGame(player_t *player)"}, {"kind": "function", "line": 70, "name": "RunTic", "signature": "static void RunTic(ticcmd_t *cmds, boolean *ingame)"}, {"doc": "Load game settings from the specified structure and set global variables.", "kind": "function", "line": 107, "name": "LoadGameSettings", "signature": "static void LoadGameSettings(net_gamesettings_t *settings)"}, {"doc": "Save the game settings from global variables to the specified game settings structure.", "kind": "function", "line": 138, "name": "SaveGameSettings", "signature": "static void SaveGameSettings(net_gamesettings_t *settings)"}, {"kind": "function", "line": 158, "name": "InitConnectData", "signature": "static void InitConnectData(net_connect_data_t *connect_data)"}, {"kind": "function", "line": 214, "name": "D_ConnectNetGame", "signature": "void D_ConnectNetGame(void)"}, {"doc": "D_CheckNetGame Works out player numbers among the net participants", "kind": "function", "line": 240, "name": "D_CheckNetGame", "signature": "void D_CheckNetGame (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __D_PLAYER__ define __D_PLAYER__ The player data structure depends on a number of other structs: items (internal inventory), animation states (closely tied to the sprites used to represent them, unfortunately). include \"d_items.h\" include \"p_pspr.h\"", "id": "progs/doomgeneric/d_player.h", "kind": "module", "label": "d_player.h", "language": "h", "sha256": "8e832306188a46a6", "symbol_count": 2, "symbols": [{"doc": "Extended player object info: player_t", "kind": "struct", "line": 78, "name": "player_s"}, {"kind": "macro", "line": 21, "name": "__D_PLAYER__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Typedefs related to to textures etc., isolated here to make it easier separating modules. ifndef __D_TEXTUR__ define __D_TEXTUR__ include \"doomtype.h\" Flats?", "id": "progs/doomgeneric/d_textur.h", "kind": "module", "label": "d_textur.h", "language": "h", "sha256": "ed0547a4cb92b44a", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "__D_TEXTUR__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: MapObj data. Map Objects or mobjs are actors, entities, thinker, take-your-pick... anything that moves, acts, or suffers state changes of more or less violent nature. ifndef __D_THINK__ define __D_THINK__ Experimental stuff.", "id": "progs/doomgeneric/d_think.h", "kind": "module", "label": "d_think.h", "language": "h", "sha256": "5bf356609994a1e2", "symbol_count": 2, "symbols": [{"doc": "Doubly linked list of actors.", "kind": "struct", "line": 58, "name": "thinker_s"}, {"kind": "macro", "line": 23, "name": "__D_THINK__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __D_TICCMD__ define __D_TICCMD__ include \"doomtype.h\" The data sampled per tick (single player) and transmitted to other peers (multiplayer). Mainly movements/button commands per game tick, plus a checksum for internal state consistency.", "id": "progs/doomgeneric/d_ticcmd.h", "kind": "module", "label": "d_ticcmd.h", "language": "h", "sha256": "2d6a30fef103c872", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "__D_TICCMD__"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Dehacked entrypoint and common code ifndef DEH_MAIN_H define DEH_MAIN_H include \"doomtype.h\" include \"doomfeatures.h\" include \"deh_str.h\" include \"sha1.h\" These are the limits that dehacked uses (from dheinit.h in the dehacked source). If these limits are exceeded, it does not generate an error, but a warning is displayed. define DEH_VANILLA_NUMSTATES 966", "id": "progs/doomgeneric/deh_main.h", "kind": "module", "label": "deh_main.h", "language": "h", "sha256": "dc82abd616bafe25", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 19, "name": "DEH_MAIN_H"}, {"kind": "macro", "line": 29, "name": "DEH_VANILLA_NUMSTATES"}, {"kind": "macro", "line": 31, "name": "DEH_VANILLA_NUMSFX"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Parses \"Misc\" sections in dehacked files ifndef DEH_MISC_H define DEH_MISC_H include \"doomfeatures.h\" define DEH_DEFAULT_INITIAL_HEALTH 100 define DEH_DEFAULT_INITIAL_BULLETS 50 define DEH_DEFAULT_MAX_HEALTH 200 define DEH_DEFAULT_MAX_ARMOR 200 define DEH_DEFAULT_GREEN_ARMOR_CLASS 1 define DEH_DEFAULT_BLUE_ARMOR_CLASS 2 define DEH_DEFAULT_MAX_SOULSPHERE 200 define DEH_DEFAULT_SOULSPHERE_HEALTH 100", "id": "progs/doomgeneric/deh_misc.h", "kind": "module", "label": "deh_misc.h", "language": "h", "sha256": "55947e8f284b1267", "symbol_count": 33, "symbols": [{"kind": "macro", "line": 19, "name": "DEH_MISC_H"}, {"kind": "macro", "line": 22, "name": "DEH_DEFAULT_INITIAL_HEALTH"}, {"kind": "macro", "line": 24, "name": "DEH_DEFAULT_INITIAL_BULLETS"}, {"kind": "macro", "line": 25, "name": "DEH_DEFAULT_MAX_HEALTH"}, {"kind": "macro", "line": 26, "name": "DEH_DEFAULT_MAX_ARMOR"}, {"kind": "macro", "line": 27, "name": "DEH_DEFAULT_GREEN_ARMOR_CLASS"}, {"kind": "macro", "line": 28, "name": "DEH_DEFAULT_BLUE_ARMOR_CLASS"}, {"kind": "macro", "line": 29, "name": "DEH_DEFAULT_MAX_SOULSPHERE"}, {"kind": "macro", "line": 30, "name": "DEH_DEFAULT_SOULSPHERE_HEALTH"}, {"kind": "macro", "line": 31, "name": "DEH_DEFAULT_MEGASPHERE_HEALTH"}, {"kind": "macro", "line": 32, "name": "DEH_DEFAULT_GOD_MODE_HEALTH"}, {"kind": "macro", "line": 33, "name": "DEH_DEFAULT_IDFA_ARMOR"}, {"kind": "macro", "line": 34, "name": "DEH_DEFAULT_IDFA_ARMOR_CLASS"}, {"kind": "macro", "line": 35, "name": "DEH_DEFAULT_IDKFA_ARMOR"}, {"kind": "macro", "line": 36, "name": "DEH_DEFAULT_IDKFA_ARMOR_CLASS"}, {"kind": "macro", "line": 37, "name": "DEH_DEFAULT_BFG_CELLS_PER_SHOT"}, {"kind": "macro", "line": 38, "name": "DEH_DEFAULT_SPECIES_INFIGHTING"}, {"kind": "macro", "line": 62, "name": "deh_initial_health"}, {"kind": "macro", "line": 64, "name": "deh_initial_bullets"}, {"kind": "macro", "line": 65, "name": "deh_max_health"}, {"kind": "macro", "line": 66, "name": "deh_max_armor"}, {"kind": "macro", "line": 67, "name": "deh_green_armor_class"}, {"kind": "macro", "line": 68, "name": "deh_blue_armor_class"}, {"kind": "macro", "line": 69, "name": "deh_max_soulsphere"}, {"kind": "macro", "line": 70, "name": "deh_soulsphere_health"}, {"kind": "macro", "line": 71, "name": "deh_megasphere_health"}, {"kind": "macro", "line": 72, "name": "deh_god_mode_health"}, {"kind": "macro", "line": 73, "name": "deh_idfa_armor"}, {"kind": "macro", "line": 74, "name": "deh_idfa_armor_class"}, {"kind": "macro", "line": 75, "name": "deh_idkfa_armor"}, {"kind": "macro", "line": 76, "name": "deh_idkfa_armor_class"}, {"kind": "macro", "line": 77, "name": "deh_bfg_cells_per_shot"}, {"kind": "macro", "line": 78, "name": "deh_species_infighting"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Dehacked string replacements ifndef DEH_STR_H define DEH_STR_H include include \"doomfeatures.h\" Used to do dehacked text substitutions throughout the program ifdef FEATURE_DEHACKED", "id": "progs/doomgeneric/deh_str.h", "kind": "module", "label": "deh_str.h", "language": "h", "sha256": "374320e2d4ac7de8", "symbol_count": 6, "symbols": [{"kind": "macro", "line": 19, "name": "DEH_STR_H"}, {"kind": "macro", "line": 37, "name": "DEH_String"}, {"kind": "macro", "line": 39, "name": "DEH_printf"}, {"kind": "macro", "line": 40, "name": "DEH_fprintf"}, {"kind": "macro", "line": 41, "name": "DEH_snprintf"}, {"kind": "macro", "line": 42, "name": "DEH_AddStringReplacement"}]}, {"id": "progs/doomgeneric/doom.h", "kind": "module", "label": "doom.h", "language": "h", "sha256": "acf2755de195d6e6", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 10, "name": "SRC_CHOCDOOM_DOOM_H_"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: all external data is defined here most of the data is loaded into different structures at run time some internal structures shared by many modules are here ifndef __DOOMDATA__ define __DOOMDATA__ The most basic types we use, portability. include \"doomtype.h\" Some global defines, that configure the game. include \"doomdef.h\"", "id": "progs/doomgeneric/doomdata.h", "kind": "module", "label": "doomdata.h", "language": "h", "sha256": "c296f3cbd788e87c", "symbol_count": 11, "symbols": [{"kind": "macro", "line": 22, "name": "__DOOMDATA__"}, {"kind": "macro", "line": 98, "name": "ML_BLOCKING"}, {"kind": "macro", "line": 101, "name": "ML_BLOCKMONSTERS"}, {"kind": "macro", "line": 105, "name": "ML_TWOSIDED"}, {"kind": "macro", "line": 117, "name": "ML_DONTPEGTOP"}, {"kind": "macro", "line": 120, "name": "ML_DONTPEGBOTTOM"}, {"kind": "macro", "line": 123, "name": "ML_SECRET"}, {"kind": "macro", "line": 126, "name": "ML_SOUNDBLOCK"}, {"kind": "macro", "line": 129, "name": "ML_DONTDRAW"}, {"kind": "macro", "line": 132, "name": "ML_MAPPED"}, {"kind": "macro", "line": 175, "name": "NF_SUBSECTOR"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: DoomDef - basic defines for DOOM, e.g. Version, game mode and skill level, and display parameters. include \"doomdef.h\" Location for any defines turned variables. None.", "id": "progs/doomgeneric/doomdef.c", "kind": "module", "label": "doomdef.c", "language": "c", "sha256": "2aebd7ef7ea9fa2d", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Internally used data structures for virtually everything, lots of other stuff. ifndef __DOOMDEF__ define __DOOMDEF__ include include include \"doomtype.h\" include \"i_timer.h\" include \"d_mode.h\"", "id": "progs/doomgeneric/doomdef.h", "kind": "module", "label": "doomdef.h", "language": "h", "sha256": "bffb986830bcf569", "symbol_count": 9, "symbols": [{"kind": "macro", "line": 21, "name": "__DOOMDEF__"}, {"kind": "macro", "line": 34, "name": "DOOM_VERSION"}, {"kind": "macro", "line": 37, "name": "DOOM_191_VERSION"}, {"kind": "macro", "line": 42, "name": "RANGECHECK"}, {"kind": "macro", "line": 45, "name": "MAXPLAYERS"}, {"kind": "macro", "line": 77, "name": "MTF_EASY"}, {"kind": "macro", "line": 78, "name": "MTF_NORMAL"}, {"kind": "macro", "line": 79, "name": "MTF_HARD"}, {"kind": "macro", "line": 82, "name": "MTF_AMBUSH"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: List of features which can be enabled/disabled to slim down the program. ifndef DOOM_FEATURES_H define DOOM_FEATURES_H Enables wad merging (the '-merge' command line parameter) undef FEATURE_WAD_MERGE Enables dehacked support ('-deh') undef FEATURE_DEHACKED Enables multiplayer support (network games)", "id": "progs/doomgeneric/doomfeatures.h", "kind": "module", "label": "doomfeatures.h", "language": "h", "sha256": "c66de1643cca80dd", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 20, "name": "DOOM_FEATURES_H"}, {"kind": "macro", "line": 35, "name": "FEATURE_SOUND"}]}, {"doc": "include \"doomgeneric.h\"", "id": "progs/doomgeneric/doomgeneric.c", "kind": "module", "label": "doomgeneric.c", "language": "c", "sha256": "4cf955277bc9de8d", "symbol_count": 1, "symbols": [{"kind": "function", "line": 4, "name": "dg_Create", "signature": "void dg_Create()"}]}, {"doc": "ifndef DOOM_GENERIC define DOOM_GENERIC include include define DOOMGENERIC_RESX 320 define DOOMGENERIC_RESY 200", "id": "progs/doomgeneric/doomgeneric.h", "kind": "module", "label": "doomgeneric.h", "language": "h", "sha256": "a0894b018bcf9735", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 2, "name": "DOOM_GENERIC"}, {"kind": "macro", "line": 6, "name": "DOOMGENERIC_RESX"}, {"kind": "macro", "line": 8, "name": "DOOMGENERIC_RESY"}]}, {"doc": "doomgeneric_minios.c - MiniOS platform layer for doomgeneric.", "id": "progs/doomgeneric/doomgeneric_minios.c", "kind": "module", "label": "doomgeneric_minios.c", "language": "c", "sha256": "a02512362c2a1e81", "symbol_count": 22, "symbols": [{"doc": "DOOM renders into a kernel-backed back-buffer in the user window; the * kernel composites it onto the desktop as a window on SYS_DOOM_FRAME. #define FB_ADDR ((volatile uint8_t *)MINIOS_DOOM_BACKBUF_ADDR) #define FB_WIDTH 320 #define FB_HEIGHT 200 /* ---------- Palette management ---------- /* Extern from i_video.c - the gamma-corrected palette colors", "kind": "struct", "line": 78, "name": "color"}, {"kind": "function", "line": 22, "name": "mini_parse_autoframes", "signature": "static void mini_parse_autoframes(int argc, char **argv)"}, {"doc": "static int mini_frames; static void mini_parse_autoframes(int argc, char **argv) { int i; mini_autoframes = 0; for (i = 1; i + 1 < argc; i++) { if (strcmp(argv[i], \"mini_autoframes\") == 0) { mini_autoframes = atoi(argv[i + 1]); if (mini_autoframes < 0) mini_autoframes = 0; return; } } } /* ---------- MiniOS syscalls (canonical table from minios_abi.h) ----------", "kind": "function", "line": 35, "name": "sys_time_ms", "signature": "static long sys_time_ms(void)"}, {"kind": "function", "line": 41, "name": "sys_kbd", "signature": "static long sys_kbd(void)"}, {"kind": "function", "line": 46, "name": "sys_palette", "signature": "static long sys_palette(const unsigned char *pal)"}, {"kind": "function", "line": 51, "name": "sys_kbd_raw", "signature": "static long sys_kbd_raw(int on)"}, {"kind": "function", "line": 56, "name": "sys_vga_mode", "signature": "static long sys_vga_mode(int on)"}, {"kind": "function", "line": 61, "name": "sys_doom_frame", "signature": "static long sys_doom_frame(void)"}, {"kind": "function", "line": 84, "name": "load_vga_palette", "signature": "static void load_vga_palette(void)"}, {"doc": "volatile int minios_palette_dirty = 1; static void load_vga_palette(void) { uint8_t dac[768]; int i; for (i = 0; i < 256; i++) { dac[i*3+0] = colors[i].r; dac[i*3+1] = colors[i].g; dac[i*3+2] = colors[i].b; } sys_palette(dac); } /* ---------- PS/2 Set 1 -> DOOM key ----------", "kind": "function", "line": 97, "name": "scancode_to_doom", "signature": "static unsigned char scancode_to_doom(unsigned char raw)"}, {"kind": "function", "line": 156, "name": "kbd_enqueue", "signature": "static void kbd_enqueue(unsigned char doom_key, int pressed)"}, {"kind": "function", "line": 163, "name": "kbd_poll", "signature": "static void kbd_poll(void)"}, {"kind": "function", "line": 206, "name": "DG_Init", "signature": "void DG_Init(void)"}, {"kind": "function", "line": 214, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame(void)"}, {"kind": "function", "line": 244, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 250, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs(void)"}, {"kind": "function", "line": 254, "name": "DG_GetKey", "signature": "int DG_GetKey(int *pressed, unsigned char *key)"}, {"kind": "function", "line": 265, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char *title)"}, {"kind": "macro", "line": 71, "name": "FB_ADDR"}, {"kind": "macro", "line": 72, "name": "FB_WIDTH"}, {"kind": "macro", "line": 73, "name": "FB_HEIGHT"}, {"kind": "macro", "line": 152, "name": "KBD_QUEUE_SIZE"}]}, {"doc": "doomgeneric for soso os include \"doomkeys.h\" include \"m_argv.h\" include \"doomgeneric.h\" include include include include ", "id": "progs/doomgeneric/doomgeneric_sdl.c", "kind": "module", "label": "doomgeneric_sdl.c", "language": "c", "sha256": "39c8c2ae3ce26a02", "symbol_count": 10, "symbols": [{"kind": "function", "line": 22, "name": "convertToDoomKey", "signature": "static unsigned char convertToDoomKey(unsigned int key)"}, {"kind": "function", "line": 62, "name": "addKeyToQueue", "signature": "static void addKeyToQueue(int pressed, unsigned int keyCode)"}, {"kind": "function", "line": 72, "name": "handleKeyInput", "signature": "static void handleKeyInput()"}, {"kind": "function", "line": 91, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 111, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 122, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 127, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 132, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 151, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 16, "name": "KEYQUEUE_SIZE"}]}, {"doc": "doomgeneric for soso os include \"doomkeys.h\" include \"m_argv.h\" include \"doomgeneric.h\" include include include include include include include include ", "id": "progs/doomgeneric/doomgeneric_soso.c", "kind": "module", "label": "doomgeneric_soso.c", "language": "c", "sha256": "5116e47ef01fc5d8", "symbol_count": 12, "symbols": [{"kind": "function", "line": 42, "name": "convertToDoomKey", "signature": "static unsigned char convertToDoomKey(unsigned char scancode)"}, {"kind": "function", "line": 91, "name": "addKeyToQueue", "signature": "static void addKeyToQueue(int pressed, unsigned char keyCode)"}, {"kind": "function", "line": 107, "name": "disableRawMode", "signature": "void disableRawMode()"}, {"kind": "function", "line": 113, "name": "enableRawMode", "signature": "void enableRawMode()"}, {"kind": "function", "line": 123, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 185, "name": "handleKeyInput", "signature": "static void handleKeyInput()"}, {"kind": "function", "line": 213, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 226, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 231, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 236, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 257, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 23, "name": "KEYQUEUE_SIZE"}]}, {"doc": "doomgeneric for soso os (nano-x version) TODO: get keys from X, not using direct keyboard access! include \"doomkeys.h\" include \"m_argv.h\" include \"doomgeneric.h\" include include include include include include include include ", "id": "progs/doomgeneric/doomgeneric_sosox.c", "kind": "module", "label": "doomgeneric_sosox.c", "language": "c", "sha256": "85bafa071feb30c3", "symbol_count": 12, "symbols": [{"kind": "function", "line": 37, "name": "convert_to_doom_key", "signature": "static unsigned char convert_to_doom_key(unsigned char scancode)"}, {"kind": "function", "line": 87, "name": "add_key_to_queue", "signature": "static void add_key_to_queue(int pressed, unsigned char key_code)"}, {"kind": "function", "line": 101, "name": "disable_raw_mode", "signature": "void disable_raw_mode()"}, {"kind": "function", "line": 106, "name": "enable_raw_mode", "signature": "void enable_raw_mode()"}, {"kind": "function", "line": 116, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 158, "name": "handle_key_input", "signature": "static void handle_key_input()"}, {"kind": "function", "line": 186, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 224, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 229, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 234, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 255, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 23, "name": "KEYQUEUE_SIZE"}]}, {"doc": "include \"doomkeys.h\" include \"doomgeneric.h\" include include ", "id": "progs/doomgeneric/doomgeneric_win.c", "kind": "module", "label": "doomgeneric_win.c", "language": "c", "sha256": "8746e0ae771aaa7e", "symbol_count": 10, "symbols": [{"kind": "function", "line": 19, "name": "convertToDoomKey", "signature": "static unsigned char convertToDoomKey(unsigned char key)"}, {"kind": "function", "line": 58, "name": "addKeyToQueue", "signature": "static void addKeyToQueue(int pressed, unsigned char keyCode)"}, {"kind": "function", "line": 69, "name": "wndProc", "signature": "static LRESULT CALLBACK wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)"}, {"kind": "function", "line": 94, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 145, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 161, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 166, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 171, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 192, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 12, "name": "KEYQUEUE_SIZE"}]}, {"doc": "include \"doomkeys.h\" include \"doomgeneric.h\" include include include include include include include include ", "id": "progs/doomgeneric/doomgeneric_xlib.c", "kind": "module", "label": "doomgeneric_xlib.c", "language": "c", "sha256": "16c80c86875861df", "symbol_count": 9, "symbols": [{"kind": "function", "line": 26, "name": "convertToDoomKey", "signature": "static unsigned char convertToDoomKey(unsigned int key)"}, {"kind": "function", "line": 67, "name": "addKeyToQueue", "signature": "static void addKeyToQueue(int pressed, unsigned int keyCode)"}, {"kind": "function", "line": 78, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 125, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 171, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 176, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 186, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 207, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 20, "name": "KEYQUEUE_SIZE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Key definitions ifndef __DOOMKEYS__ define __DOOMKEYS__ DOOM keyboard definition. This is the stuff configured by Setup.Exe. Most key data are simple ascii (uppercased). define KEY_RIGHTARROW\t0xae define KEY_LEFTARROW\t0xac define KEY_UPARROW\t\t0xad define KEY_DOWNARROW\t0xaf", "id": "progs/doomgeneric/doomkeys.h", "kind": "module", "label": "doomkeys.h", "language": "h", "sha256": "de35009e7b9f93d6", "symbol_count": 59, "symbols": [{"kind": "macro", "line": 20, "name": "__DOOMKEYS__"}, {"kind": "macro", "line": 27, "name": "KEY_RIGHTARROW"}, {"kind": "macro", "line": 28, "name": "KEY_LEFTARROW"}, {"kind": "macro", "line": 29, "name": "KEY_UPARROW"}, {"kind": "macro", "line": 30, "name": "KEY_DOWNARROW"}, {"kind": "macro", "line": 31, "name": "KEY_STRAFE_L"}, {"kind": "macro", "line": 32, "name": "KEY_STRAFE_R"}, {"kind": "macro", "line": 33, "name": "KEY_USE"}, {"kind": "macro", "line": 34, "name": "KEY_FIRE"}, {"kind": "macro", "line": 35, "name": "KEY_ESCAPE"}, {"kind": "macro", "line": 36, "name": "KEY_ENTER"}, {"kind": "macro", "line": 37, "name": "KEY_TAB"}, {"kind": "macro", "line": 38, "name": "KEY_F1"}, {"kind": "macro", "line": 39, "name": "KEY_F2"}, {"kind": "macro", "line": 40, "name": "KEY_F3"}, {"kind": "macro", "line": 41, "name": "KEY_F4"}, {"kind": "macro", "line": 42, "name": "KEY_F5"}, {"kind": "macro", "line": 43, "name": "KEY_F6"}, {"kind": "macro", "line": 44, "name": "KEY_F7"}, {"kind": "macro", "line": 45, "name": "KEY_F8"}, {"kind": "macro", "line": 46, "name": "KEY_F9"}, {"kind": "macro", "line": 47, "name": "KEY_F10"}, {"kind": "macro", "line": 48, "name": "KEY_F11"}, {"kind": "macro", "line": 49, "name": "KEY_F12"}, {"kind": "macro", "line": 50, "name": "KEY_BACKSPACE"}, {"kind": "macro", "line": 52, "name": "KEY_PAUSE"}, {"kind": "macro", "line": 53, "name": "KEY_EQUALS"}, {"kind": "macro", "line": 55, "name": "KEY_MINUS"}, {"kind": "macro", "line": 56, "name": "KEY_RSHIFT"}, {"kind": "macro", "line": 58, "name": "KEY_RCTRL"}, {"kind": "macro", "line": 59, "name": "KEY_RALT"}, {"kind": "macro", "line": 60, "name": "KEY_LALT"}, {"kind": "macro", "line": 64, "name": "KEY_CAPSLOCK"}, {"kind": "macro", "line": 66, "name": "KEY_NUMLOCK"}, {"kind": "macro", "line": 67, "name": "KEY_SCRLCK"}, {"kind": "macro", "line": 68, "name": "KEY_PRTSCR"}, {"kind": "macro", "line": 69, "name": "KEY_HOME"}, {"kind": "macro", "line": 71, "name": "KEY_END"}, {"kind": "macro", "line": 72, "name": "KEY_PGUP"}, {"kind": "macro", "line": 73, "name": "KEY_PGDN"}, {"kind": "macro", "line": 74, "name": "KEY_INS"}, {"kind": "macro", "line": 75, "name": "KEY_DEL"}, {"kind": "macro", "line": 76, "name": "KEYP_0"}, {"kind": "macro", "line": 78, "name": "KEYP_1"}, {"kind": "macro", "line": 79, "name": "KEYP_2"}, {"kind": "macro", "line": 80, "name": "KEYP_3"}, {"kind": "macro", "line": 81, "name": "KEYP_4"}, {"kind": "macro", "line": 82, "name": "KEYP_5"}, {"kind": "macro", "line": 83, "name": "KEYP_6"}, {"kind": "macro", "line": 84, "name": "KEYP_7"}, {"kind": "macro", "line": 85, "name": "KEYP_8"}, {"kind": "macro", "line": 86, "name": "KEYP_9"}, {"kind": "macro", "line": 87, "name": "KEYP_DIVIDE"}, {"kind": "macro", "line": 89, "name": "KEYP_PLUS"}, {"kind": "macro", "line": 90, "name": "KEYP_MINUS"}, {"kind": "macro", "line": 91, "name": "KEYP_MULTIPLY"}, {"kind": "macro", "line": 92, "name": "KEYP_PERIOD"}, {"kind": "macro", "line": 93, "name": "KEYP_EQUALS"}, {"kind": "macro", "line": 94, "name": "KEYP_ENTER"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Put all global tate variables here. include include \"doomstat.h\" Game Mode - identify IWAD as shareware, retail etc.", "id": "progs/doomgeneric/doomstat.c", "kind": "module", "label": "doomstat.c", "language": "c", "sha256": "6c26994f9ece76c1", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: All the global variables that store the internal state. Theoretically speaking, the internal state of the engine should be found by looking at the variables collected here, and every relevant module will have to include this header file. In practice, things are a bit messy. ifndef __D_STATE__ define __D_STATE__ We need globally shared data structures, for defining the global state variables. include \"doomdata.h\"", "id": "progs/doomgeneric/doomstat.h", "kind": "module", "label": "doomstat.h", "language": "h", "sha256": "b550e9fbbbf70ff0", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 26, "name": "__D_STATE__"}, {"kind": "macro", "line": 68, "name": "logical_gamemission"}, {"kind": "macro", "line": 227, "name": "MAX_DM_STARTS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Simple basic typedefs, isolated here to make it easier separating modules. ifndef __DOOMTYPE__ define __DOOMTYPE__ #define macros to provide functions missing in Windows. Outside Windows, we use strings.h for str[n]casecmp. ifdef _WIN32 define strcasecmp _stricmp", "id": "progs/doomgeneric/doomtype.h", "kind": "module", "label": "doomtype.h", "language": "h", "sha256": "c14454060c61de25", "symbol_count": 12, "symbols": [{"kind": "macro", "line": 22, "name": "__DOOMTYPE__"}, {"kind": "macro", "line": 29, "name": "strcasecmp"}, {"kind": "macro", "line": 31, "name": "strncasecmp"}, {"kind": "macro", "line": 50, "name": "PACKEDATTR"}, {"kind": "macro", "line": 52, "name": "PACKEDATTR"}, {"kind": "macro", "line": 87, "name": "DIR_SEPARATOR"}, {"kind": "macro", "line": 89, "name": "DIR_SEPARATOR_S"}, {"kind": "macro", "line": 90, "name": "PATH_SEPARATOR"}, {"kind": "macro", "line": 93, "name": "DIR_SEPARATOR"}, {"kind": "macro", "line": 95, "name": "DIR_SEPARATOR_S"}, {"kind": "macro", "line": 96, "name": "PATH_SEPARATOR"}, {"kind": "macro", "line": 99, "name": "arrlen"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Globally defined strings. include \"dstrings.h\"", "id": "progs/doomgeneric/dstrings.c", "kind": "module", "label": "dstrings.c", "language": "c", "sha256": "ca23811dfb9766f3", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: DOOM strings, by language. ifndef __DSTRINGS__ define __DSTRINGS__ All important printed strings. include \"d_englsh.h\" Misc. other strings. define SAVEGAMENAME\t\"doomsav\"", "id": "progs/doomgeneric/dstrings.h", "kind": "module", "label": "dstrings.h", "language": "h", "sha256": "ab1d9ea8a94aa57f", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 22, "name": "__DSTRINGS__"}, {"kind": "macro", "line": 30, "name": "SAVEGAMENAME"}, {"kind": "macro", "line": 35, "name": "NUM_QUITMESSAGES"}]}, {"id": "progs/doomgeneric/dummy.c", "kind": "module", "label": "dummy.c", "language": "c", "sha256": "1dd884aea54284e5", "symbol_count": 1, "symbols": [{"doc": "--------------------------------------------------------------------* public functions * *---------------------------------------------------------------------", "kind": "function", "line": 42, "name": "I_InitTimidityConfig", "signature": "void I_InitTimidityConfig(void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Game completion, final screen animation. include include Functions. include \"deh_main.h\" include \"i_system.h\" include \"i_swap.h\" include \"z_zone.h\" include \"v_video.h\" include \"w_wad.h\" include \"s_sound.h\"", "id": "progs/doomgeneric/f_finale.c", "kind": "module", "label": "f_finale.c", "language": "c", "sha256": "33cf193a307c0b33", "symbol_count": 15, "symbols": [{"doc": "F_StartFinale", "kind": "function", "line": 108, "name": "F_StartFinale", "signature": "void F_StartFinale (void)"}, {"kind": "function", "line": 157, "name": "F_Responder", "signature": "boolean F_Responder (event_t *event)"}, {"doc": "F_Ticker", "kind": "function", "line": 172, "name": "F_Ticker", "signature": "void F_Ticker (void)"}, {"kind": "function", "line": 225, "name": "F_TextWrite", "signature": "void F_TextWrite (void)"}, {"doc": "F_StartCast", "kind": "function", "line": 340, "name": "F_StartCast", "signature": "void F_StartCast (void)"}, {"doc": "F_CastTicker", "kind": "function", "line": 358, "name": "F_CastTicker", "signature": "void F_CastTicker (void)"}, {"doc": "F_CastResponder", "kind": "function", "line": 464, "name": "F_CastResponder", "signature": "boolean F_CastResponder (event_t* ev)"}, {"kind": "function", "line": 484, "name": "F_CastPrint", "signature": "void F_CastPrint (char* text)"}, {"doc": "F_CastDrawer", "kind": "function", "line": 540, "name": "F_CastDrawer", "signature": "void F_CastDrawer (void)"}, {"doc": "F_DrawPatchCol", "kind": "function", "line": 571, "name": "F_DrawPatchCol", "signature": "void\nF_DrawPatchCol\n( int\t\tx,\n patch_t*\tpatch,\n int\t\tcol )"}, {"doc": "F_BunnyScroll", "kind": "function", "line": 606, "name": "F_BunnyScroll", "signature": "void F_BunnyScroll (void)"}, {"kind": "function", "line": 660, "name": "F_ArtScreenDrawer", "signature": "static void F_ArtScreenDrawer(void)"}, {"doc": "F_Drawer", "kind": "function", "line": 702, "name": "F_Drawer", "signature": "void F_Drawer (void)"}, {"kind": "macro", "line": 56, "name": "TEXTSPEED"}, {"kind": "macro", "line": 58, "name": "TEXTWAIT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __F_FINALE__ define __F_FINALE__ include \"doomtype.h\" include \"d_event.h\" FINALE Called by main loop.", "id": "progs/doomgeneric/f_finale.h", "kind": "module", "label": "f_finale.h", "language": "h", "sha256": "aea25b4180f863eb", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__F_FINALE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Mission begin melt/wipe screen special effect. include include \"z_zone.h\" include \"i_video.h\" include \"v_video.h\" include \"m_random.h\" include \"doomtype.h\" include \"f_wipe.h\"", "id": "progs/doomgeneric/f_wipe.c", "kind": "module", "label": "f_wipe.c", "language": "c", "sha256": "2c05976fd5a86f3d", "symbol_count": 10, "symbols": [{"kind": "function", "line": 40, "name": "wipe_shittyColMajorXform", "signature": "void\nwipe_shittyColMajorXform\n( short*\tarray,\n int\t\twidth,\n int\t\theight )"}, {"kind": "function", "line": 63, "name": "wipe_initColorXForm", "signature": "int\nwipe_initColorXForm\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 73, "name": "wipe_doColorXForm", "signature": "int\nwipe_doColorXForm\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 119, "name": "wipe_exitColorXForm", "signature": "int\nwipe_exitColorXForm\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 131, "name": "wipe_initMelt", "signature": "int\nwipe_initMelt\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 162, "name": "wipe_doMelt", "signature": "int\nwipe_doMelt\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 217, "name": "wipe_exitMelt", "signature": "int\nwipe_exitMelt\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 229, "name": "wipe_StartScreen", "signature": "int\nwipe_StartScreen\n( int\tx,\n int\ty,\n int\twidth,\n int\theight )"}, {"kind": "function", "line": 241, "name": "wipe_EndScreen", "signature": "int\nwipe_EndScreen\n( int\tx,\n int\ty,\n int\twidth,\n int\theight )"}, {"kind": "function", "line": 254, "name": "wipe_ScreenWipe", "signature": "int\nwipe_ScreenWipe\n( int\twipeno,\n int\tx,\n int\ty,\n int\twidth,\n int\theight,\n int\tticks )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Mission start screen wipe/melt, special effects. ifndef __F_WIPE_H__ define __F_WIPE_H__ SCREEN WIPE PACKAGE", "id": "progs/doomgeneric/f_wipe.h", "kind": "module", "label": "f_wipe.h", "language": "h", "sha256": "8bb2ffc1c70cb27c", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__F_WIPE_H__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none include include include include \"doomdef.h\" include \"doomkeys.h\" include \"doomstat.h\" include \"deh_main.h\" include \"deh_misc.h\"", "id": "progs/doomgeneric/g_game.c", "kind": "module", "label": "g_game.c", "language": "c", "sha256": "8901cf0a754c566f", "symbol_count": 48, "symbols": [{"kind": "function", "line": 232, "name": "G_CmdChecksum", "signature": "int G_CmdChecksum (ticcmd_t* cmd)"}, {"kind": "function", "line": 243, "name": "WeaponSelectable", "signature": "static boolean WeaponSelectable(weapontype_t weapon)"}, {"kind": "function", "line": 280, "name": "G_NextWeapon", "signature": "static int G_NextWeapon(int direction)"}, {"doc": "G_BuildTiccmd Builds a ticcmd from all of the available inputs or reads it from the demo buffer. If recording a demo, write it out", "kind": "function", "line": 322, "name": "G_BuildTiccmd", "signature": "void G_BuildTiccmd (ticcmd_t* cmd, int maketic)"}, {"doc": "G_DoLoadLevel", "kind": "function", "line": 603, "name": "G_DoLoadLevel", "signature": "void G_DoLoadLevel (void)"}, {"kind": "function", "line": 674, "name": "SetJoyButtons", "signature": "static void SetJoyButtons(unsigned int buttons_mask)"}, {"kind": "function", "line": 702, "name": "SetMouseButtons", "signature": "static void SetMouseButtons(unsigned int buttons_mask)"}, {"doc": "G_Responder Get info needed to make ticcmd_ts for the players.", "kind": "function", "line": 733, "name": "G_Responder", "signature": "boolean G_Responder (event_t* ev)"}, {"doc": "G_Ticker Make ticcmd_ts for the players.", "kind": "function", "line": 854, "name": "G_Ticker", "signature": "void G_Ticker (void)"}, {"doc": "G_InitPlayer Called at the start. Called by the game initialization functions.", "kind": "function", "line": 1039, "name": "G_InitPlayer", "signature": "void G_InitPlayer (int player)"}, {"doc": "G_PlayerFinishLevel Can when a player completes a level.", "kind": "function", "line": 1051, "name": "G_PlayerFinishLevel", "signature": "void G_PlayerFinishLevel (int player)"}, {"doc": "G_PlayerReborn Called after a player dies almost everything is cleared and initialized", "kind": "function", "line": 1072, "name": "G_PlayerReborn", "signature": "void G_PlayerReborn (int player)"}, {"kind": "function", "line": 1114, "name": "G_CheckSpot", "signature": "boolean\nG_CheckSpot\n( int\t\tplayernum,\n mapthing_t*\tmthing )"}, {"doc": "G_DeathMatchSpawnPlayer Spawns a player at one of the random death match spots called at level load and each death", "kind": "function", "line": 1223, "name": "G_DeathMatchSpawnPlayer", "signature": "void G_DeathMatchSpawnPlayer (int playernum)"}, {"doc": "G_DoReborn", "kind": "function", "line": 1250, "name": "G_DoReborn", "signature": "void G_DoReborn (int playernum)"}, {"kind": "function", "line": 1294, "name": "G_ScreenShot", "signature": "void G_ScreenShot (void)"}, {"kind": "function", "line": 1327, "name": "G_ExitLevel", "signature": "void G_ExitLevel (void)"}, {"doc": "Here's for the german edition.", "kind": "function", "line": 1335, "name": "G_SecretExitLevel", "signature": "void G_SecretExitLevel (void)"}, {"kind": "function", "line": 1345, "name": "G_DoCompleted", "signature": "void G_DoCompleted (void)"}, {"doc": "G_WorldDone", "kind": "function", "line": 1494, "name": "G_WorldDone", "signature": "void G_WorldDone (void)"}, {"kind": "function", "line": 1518, "name": "G_DoWorldDone", "signature": "void G_DoWorldDone (void)"}, {"kind": "function", "line": 1538, "name": "G_LoadGame", "signature": "void G_LoadGame (char* name)"}, {"doc": "define VERSIONSIZE\t\t16", "kind": "function", "line": 1546, "name": "G_DoLoadGame", "signature": "void G_DoLoadGame (void)"}, {"doc": "G_SaveGame Called by the menu task. Description is a 24 byte text string", "kind": "function", "line": 1600, "name": "G_SaveGame", "signature": "void\nG_SaveGame\n( int\tslot,\n char*\tdescription )"}, {"kind": "function", "line": 1609, "name": "G_DoSaveGame", "signature": "void G_DoSaveGame (void)"}, {"kind": "function", "line": 1696, "name": "G_DeferedInitNew", "signature": "void\nG_DeferedInitNew\n( skill_t\tskill,\n int\t\tepisode,\n int\t\tmap)"}, {"kind": "function", "line": 1708, "name": "G_DoNewGame", "signature": "void G_DoNewGame (void)"}, {"kind": "function", "line": 1724, "name": "G_InitNew", "signature": "void\nG_InitNew\n( skill_t\tskill,\n int\t\tepisode,\n int\t\tmap )"}, {"doc": "DEMO RECORDING define DEMOMARKER\t\t0x80", "kind": "function", "line": 1896, "name": "G_ReadDemoTiccmd", "signature": "void G_ReadDemoTiccmd (ticcmd_t* cmd)"}, {"doc": "Increase the size of the demo buffer to allow unlimited demos", "kind": "function", "line": 1925, "name": "IncreaseDemoBuffer", "signature": "static void IncreaseDemoBuffer(void)"}, {"kind": "function", "line": 1955, "name": "G_WriteDemoTiccmd", "signature": "void G_WriteDemoTiccmd (ticcmd_t* cmd)"}, {"doc": "G_RecordDemo", "kind": "function", "line": 2010, "name": "G_RecordDemo", "signature": "void G_RecordDemo (char *name)"}, {"doc": "Get the demo version code appropriate for the version set in gameversion.", "kind": "function", "line": 2040, "name": "G_VanillaVersionCode", "signature": "int G_VanillaVersionCode(void)"}, {"kind": "function", "line": 2057, "name": "G_BeginRecording", "signature": "void G_BeginRecording (void)"}, {"kind": "function", "line": 2106, "name": "G_DeferedPlayDemo", "signature": "void G_DeferedPlayDemo (char* name)"}, {"doc": "Generate a string describing a demo version", "kind": "function", "line": 2114, "name": "DemoVersionDescription", "signature": "static char *DemoVersionDescription(int version)"}, {"kind": "function", "line": 2151, "name": "G_DoPlayDemo", "signature": "void G_DoPlayDemo (void)"}, {"doc": "G_TimeDemo", "kind": "function", "line": 2215, "name": "G_TimeDemo", "signature": "void G_TimeDemo (char* name)"}, {"doc": "=================== = = G_CheckDemoStatus = = Called after a death or level completion to allow demos to be cleaned up = Returns true if a new demo loop action will take place ===================", "kind": "function", "line": 2242, "name": "G_CheckDemoStatus", "signature": "boolean G_CheckDemoStatus (void)"}, {"kind": "macro", "line": 74, "name": "SAVEGAMESIZE"}, {"kind": "macro", "line": 151, "name": "MAXPLMOVE"}, {"kind": "macro", "line": 153, "name": "TURBOTHRESHOLD"}, {"kind": "macro", "line": 192, "name": "SLOWTURNTICS"}, {"kind": "macro", "line": 194, "name": "NUMKEYS"}, {"kind": "macro", "line": 196, "name": "MAX_JOY_BUTTONS"}, {"kind": "macro", "line": 224, "name": "BODYQUESIZE"}, {"kind": "macro", "line": 1544, "name": "VERSIONSIZE"}, {"kind": "macro", "line": 1895, "name": "DEMOMARKER"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Duh. ifndef __G_GAME__ define __G_GAME__ include \"doomdef.h\" include \"d_event.h\" include \"d_ticcmd.h\" GAME", "id": "progs/doomgeneric/g_game.h", "kind": "module", "label": "g_game.h", "language": "h", "sha256": "6fd89d9b4278cabf", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__G_GAME__"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: GUS emulation code. Actually emulating a GUS is far too much work; fortunately GUS \"emulation\" already exists in the form of Timidity, which supports GUS patch files. This code therefore converts Doom's DMXGUS lump into an equivalent Timidity configuration file. include include include include include \"w_wad.h\" include \"z_zone.h\"", "id": "progs/doomgeneric/gusconf.c", "kind": "module", "label": "gusconf.c", "language": "c", "sha256": "b187edd4b2d5278d", "symbol_count": 9, "symbols": [{"kind": "function", "line": 42, "name": "MappingIndex", "signature": "static unsigned int MappingIndex(void)"}, {"kind": "function", "line": 60, "name": "SplitLine", "signature": "static int SplitLine(char *line, char **fields, unsigned int max_fields)"}, {"kind": "function", "line": 107, "name": "ParseLine", "signature": "static void ParseLine(gus_config_t *config, char *line)"}, {"kind": "function", "line": 128, "name": "ParseDMXConfig", "signature": "static void ParseDMXConfig(char *dmxconf, gus_config_t *config)"}, {"kind": "function", "line": 164, "name": "FreeDMXConfig", "signature": "static void FreeDMXConfig(gus_config_t *config)"}, {"kind": "function", "line": 174, "name": "ReadDMXConfig", "signature": "static char *ReadDMXConfig(void)"}, {"kind": "function", "line": 196, "name": "WriteTimidityConfig", "signature": "static boolean WriteTimidityConfig(char *path, gus_config_t *config)"}, {"kind": "function", "line": 243, "name": "GUS_WriteConfig", "signature": "boolean GUS_WriteConfig(char *path)"}, {"kind": "macro", "line": 31, "name": "MAX_INSTRUMENTS"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: GUS emulation code. ifndef __GUSCONF_H__ define __GUSCONF_H__ include \"doomtype.h\"", "id": "progs/doomgeneric/gusconf.h", "kind": "module", "label": "gusconf.h", "language": "h", "sha256": "7d6216495e211a23", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "__GUSCONF_H__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: heads-up text and input code include include \"doomdef.h\" include \"doomkeys.h\" include \"v_video.h\" include \"i_swap.h\" include \"hu_lib.h\" include \"r_local.h\" include \"r_draw.h\"", "id": "progs/doomgeneric/hu_lib.c", "kind": "module", "label": "hu_lib.c", "language": "c", "sha256": "bda103386cca4a01", "symbol_count": 21, "symbols": [{"kind": "function", "line": 35, "name": "HUlib_init", "signature": "void HUlib_init(void)"}, {"kind": "function", "line": 39, "name": "HUlib_clearTextLine", "signature": "void HUlib_clearTextLine(hu_textline_t* t)"}, {"kind": "function", "line": 46, "name": "HUlib_initTextLine", "signature": "void\nHUlib_initTextLine\n( hu_textline_t*\tt,\n int\t\t\tx,\n int\t\t\ty,\n patch_t**\t\tf,\n int\t\t\tsc )"}, {"kind": "function", "line": 61, "name": "HUlib_addCharToTextLine", "signature": "boolean\nHUlib_addCharToTextLine\n( hu_textline_t*\tt,\n char\t\t\tch )"}, {"kind": "function", "line": 79, "name": "HUlib_delCharFromTextLine", "signature": "boolean HUlib_delCharFromTextLine(hu_textline_t* t)"}, {"kind": "function", "line": 92, "name": "HUlib_drawTextLine", "signature": "void\nHUlib_drawTextLine\n( hu_textline_t*\tl,\n boolean\t\tdrawcursor )"}, {"doc": "sorta called by HU_Erase and just better darn get things straight", "kind": "function", "line": 137, "name": "HUlib_eraseTextLine", "signature": "void HUlib_eraseTextLine(hu_textline_t* l)"}, {"kind": "function", "line": 167, "name": "HUlib_initSText", "signature": "void\nHUlib_initSText\n( hu_stext_t*\ts,\n int\t\tx,\n int\t\ty,\n int\t\th,\n patch_t**\tfont,\n int\t\tstar..."}, {"kind": "function", "line": 191, "name": "HUlib_addLineToSText", "signature": "void HUlib_addLineToSText(hu_stext_t* s)"}, {"kind": "function", "line": 207, "name": "HUlib_addMessageToSText", "signature": "void\nHUlib_addMessageToSText\n( hu_stext_t*\ts,\n char*\t\tprefix,\n char*\t\tmsg )"}, {"kind": "function", "line": 222, "name": "HUlib_drawSText", "signature": "void HUlib_drawSText(hu_stext_t* s)"}, {"kind": "function", "line": 245, "name": "HUlib_eraseSText", "signature": "void HUlib_eraseSText(hu_stext_t* s)"}, {"kind": "function", "line": 260, "name": "HUlib_initIText", "signature": "void\nHUlib_initIText\n( hu_itext_t*\tit,\n int\t\tx,\n int\t\ty,\n patch_t**\tfont,\n int\t\tstartchar,\n ..."}, {"doc": "The following deletion routines adhere to the left margin restriction", "kind": "function", "line": 278, "name": "HUlib_delCharFromIText", "signature": "void HUlib_delCharFromIText(hu_itext_t* it)"}, {"kind": "function", "line": 283, "name": "HUlib_eraseLineFromIText", "signature": "void HUlib_eraseLineFromIText(hu_itext_t* it)"}, {"doc": "Resets left margin as well", "kind": "function", "line": 291, "name": "HUlib_resetIText", "signature": "void HUlib_resetIText(hu_itext_t* it)"}, {"kind": "function", "line": 296, "name": "HUlib_addPrefixToIText", "signature": "void\nHUlib_addPrefixToIText\n( hu_itext_t*\tit,\n char*\t\tstr )"}, {"doc": "wrapper function for handling general keyed input. returns true if it ate the key", "kind": "function", "line": 309, "name": "HUlib_keyInIText", "signature": "boolean\nHUlib_keyInIText\n( hu_itext_t*\tit,\n unsigned char ch )"}, {"kind": "function", "line": 328, "name": "HUlib_drawIText", "signature": "void HUlib_drawIText(hu_itext_t* it)"}, {"kind": "function", "line": 339, "name": "HUlib_eraseIText", "signature": "void HUlib_eraseIText(hu_itext_t* it)"}, {"kind": "macro", "line": 32, "name": "noterased"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none ifndef __HULIB__ define __HULIB__ We are referring to patches. include \"r_defs.h\" font stuff define HU_CHARERASE\tKEY_BACKSPACE define HU_MAXLINES\t\t4 define HU_MAXLINELENGTH\t80", "id": "progs/doomgeneric/hu_lib.h", "kind": "module", "label": "hu_lib.h", "language": "h", "sha256": "3f905aa87c03ba01", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 19, "name": "__HULIB__"}, {"kind": "macro", "line": 25, "name": "HU_CHARERASE"}, {"kind": "macro", "line": 26, "name": "HU_MAXLINES"}, {"kind": "macro", "line": 28, "name": "HU_MAXLINELENGTH"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Heads-up displays include include \"doomdef.h\" include \"doomkeys.h\" include \"z_zone.h\" include \"deh_main.h\" include \"i_swap.h\" include \"i_video.h\" include \"hu_stuff.h\"", "id": "progs/doomgeneric/hu_stuff.c", "kind": "module", "label": "hu_stuff.c", "language": "c", "sha256": "9d623746758711f5", "symbol_count": 23, "symbols": [{"kind": "function", "line": 285, "name": "HU_Init", "signature": "void HU_Init(void)"}, {"kind": "function", "line": 302, "name": "HU_Stop", "signature": "void HU_Stop(void)"}, {"kind": "function", "line": 307, "name": "HU_Start", "signature": "void HU_Start(void)"}, {"kind": "function", "line": 382, "name": "HU_Drawer", "signature": "void HU_Drawer(void)"}, {"kind": "function", "line": 392, "name": "HU_Erase", "signature": "void HU_Erase(void)"}, {"kind": "function", "line": 401, "name": "HU_Ticker", "signature": "void HU_Ticker(void)"}, {"kind": "function", "line": 480, "name": "HU_queueChatChar", "signature": "void HU_queueChatChar(char c)"}, {"kind": "function", "line": 494, "name": "HU_dequeueChatChar", "signature": "char HU_dequeueChatChar(void)"}, {"kind": "function", "line": 511, "name": "HU_Responder", "signature": "boolean HU_Responder(event_t *ev)"}, {"kind": "macro", "line": 47, "name": "HU_TITLE"}, {"kind": "macro", "line": 48, "name": "HU_TITLE2"}, {"kind": "macro", "line": 49, "name": "HU_TITLEP"}, {"kind": "macro", "line": 50, "name": "HU_TITLET"}, {"kind": "macro", "line": 51, "name": "HU_TITLE_CHEX"}, {"kind": "macro", "line": 52, "name": "HU_TITLEHEIGHT"}, {"kind": "macro", "line": 53, "name": "HU_TITLEX"}, {"kind": "macro", "line": 54, "name": "HU_TITLEY"}, {"kind": "macro", "line": 55, "name": "HU_INPUTTOGGLE"}, {"kind": "macro", "line": 57, "name": "HU_INPUTX"}, {"kind": "macro", "line": 58, "name": "HU_INPUTY"}, {"kind": "macro", "line": 59, "name": "HU_INPUTWIDTH"}, {"kind": "macro", "line": 60, "name": "HU_INPUTHEIGHT"}, {"kind": "macro", "line": 474, "name": "QUEUESIZE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Head up display ifndef __HU_STUFF_H__ define __HU_STUFF_H__ include \"d_event.h\" Globally visible constants. define HU_FONTSTART\t'!'\t// the first font characters define HU_FONTEND\t'_'\t// the last font characters Calculate # of glyphs in font.", "id": "progs/doomgeneric/hu_stuff.h", "kind": "module", "label": "hu_stuff.h", "language": "h", "sha256": "387cb2aebc0fe50e", "symbol_count": 10, "symbols": [{"kind": "macro", "line": 19, "name": "__HU_STUFF_H__"}, {"kind": "macro", "line": 27, "name": "HU_FONTSTART"}, {"kind": "macro", "line": 28, "name": "HU_FONTEND"}, {"kind": "macro", "line": 31, "name": "HU_FONTSIZE"}, {"kind": "macro", "line": 32, "name": "HU_BROADCAST"}, {"kind": "macro", "line": 34, "name": "HU_MSGX"}, {"kind": "macro", "line": 36, "name": "HU_MSGY"}, {"kind": "macro", "line": 37, "name": "HU_MSGWIDTH"}, {"kind": "macro", "line": 38, "name": "HU_MSGHEIGHT"}, {"kind": "macro", "line": 39, "name": "HU_MSGTIMEOUT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. SDL implementation of the Hexen CD interface. include ifdef ORIGCODE include \"SDL.h\" include \"SDL_cdrom.h\" endif include \"doomtype.h\" include \"i_cdmus.h\" ifdef ORIGCODE", "id": "progs/doomgeneric/i_cdmus.c", "kind": "module", "label": "i_cdmus.c", "language": "c", "sha256": "08d8a487603dfcac", "symbol_count": 9, "symbols": [{"kind": "function", "line": 37, "name": "I_CDMusInit", "signature": "int I_CDMusInit(void)"}, {"doc": "We cannot print status messages inline during startup, they must be deferred until after I_CDMusInit has returned.", "kind": "function", "line": 91, "name": "I_CDMusPrintStartup", "signature": "void I_CDMusPrintStartup(void)"}, {"kind": "function", "line": 106, "name": "I_CDMusPlay", "signature": "int I_CDMusPlay(int track)"}, {"kind": "function", "line": 129, "name": "I_CDMusStop", "signature": "int I_CDMusStop(void)"}, {"kind": "function", "line": 144, "name": "I_CDMusResume", "signature": "int I_CDMusResume(void)"}, {"kind": "function", "line": 159, "name": "I_CDMusSetVolume", "signature": "int I_CDMusSetVolume(int volume)"}, {"kind": "function", "line": 168, "name": "I_CDMusFirstTrack", "signature": "int I_CDMusFirstTrack(void)"}, {"kind": "function", "line": 201, "name": "I_CDMusLastTrack", "signature": "int I_CDMusLastTrack(void)"}, {"kind": "function", "line": 218, "name": "I_CDMusTrackLength", "signature": "int I_CDMusTrackLength(int track_num)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. i_cdmus.h ifndef __ICDMUS__ define __ICDMUS__ define CDERR_NOTINSTALLED 10 // MSCDEX not installed define CDERR_NOAUDIOSUPPORT 11 // CD-ROM Doesn't support audio define CDERR_NOAUDIOTRACKS 12 // Current CD has no audio tracks define CDERR_BADDRIVE 20 // Bad drive number define CDERR_BADTRACK 21 // Bad track number define CDERR_IOCTLBUFFMEM 22 // Not enough low memory for IOCTL define CDERR_DEVREQBASE 100 // DevReq errors", "id": "progs/doomgeneric/i_cdmus.h", "kind": "module", "label": "i_cdmus.h", "language": "h", "sha256": "ebe68884a6eb1dff", "symbol_count": 8, "symbols": [{"kind": "macro", "line": 19, "name": "__ICDMUS__"}, {"kind": "macro", "line": 20, "name": "CDERR_NOTINSTALLED"}, {"kind": "macro", "line": 22, "name": "CDERR_NOAUDIOSUPPORT"}, {"kind": "macro", "line": 23, "name": "CDERR_NOAUDIOTRACKS"}, {"kind": "macro", "line": 24, "name": "CDERR_BADDRIVE"}, {"kind": "macro", "line": 25, "name": "CDERR_BADTRACK"}, {"kind": "macro", "line": 26, "name": "CDERR_IOCTLBUFFMEM"}, {"kind": "macro", "line": 27, "name": "CDERR_DEVREQBASE"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Exit text-mode ENDOOM screen. include include include \"config.h\" include \"doomtype.h\" include \"i_video.h\" ifdef ORIGCODE include \"txt_main.h\" endif define ENDOOM_W 80 define ENDOOM_H 25", "id": "progs/doomgeneric/i_endoom.c", "kind": "module", "label": "i_endoom.c", "language": "c", "sha256": "188dceeab528c268", "symbol_count": 3, "symbols": [{"doc": "Displays the text mode ending screen after the game quits", "kind": "function", "line": 35, "name": "I_Endoom", "signature": "void I_Endoom(byte *endoom_data)"}, {"kind": "macro", "line": 28, "name": "ENDOOM_W"}, {"kind": "macro", "line": 30, "name": "ENDOOM_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Exit text-mode ENDOOM screen. ifndef __I_ENDOOM__ define __I_ENDOOM__ Display the Endoom screen on shutdown. Pass a pointer to the ENDOOM lump.", "id": "progs/doomgeneric/i_endoom.h", "kind": "module", "label": "i_endoom.h", "language": "h", "sha256": "e304d78e96a5751d", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__I_ENDOOM__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. include include include include include include include \"config.h\" include \"deh_str.h\" include \"doomtype.h\" include \"doomkeys.h\" include \"i_joystick.h\" include \"i_system.h\" include \"i_swap.h\"", "id": "progs/doomgeneric/i_input.c", "kind": "module", "label": "i_input.c", "language": "c", "sha256": "871a04b652b90282", "symbol_count": 5, "symbols": [{"kind": "function", "line": 223, "name": "TranslateKey", "signature": "static unsigned char TranslateKey(unsigned char key)"}, {"doc": "Get the equivalent ASCII (Unicode?) character for a keypress.", "kind": "function", "line": 241, "name": "GetTypedChar", "signature": "static unsigned char GetTypedChar(unsigned char key)"}, {"kind": "function", "line": 262, "name": "UpdateShiftStatus", "signature": "static void UpdateShiftStatus(int pressed, unsigned char key)"}, {"kind": "function", "line": 277, "name": "I_GetEvent", "signature": "void I_GetEvent(void)"}, {"kind": "function", "line": 337, "name": "I_InitInput", "signature": "void I_InitInput(void)"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: SDL Joystick code. ifdef ORIGCODE include \"SDL.h\" include \"SDL_joystick.h\" endif include include include include \"doomtype.h\" include \"d_event.h\" include \"i_joystick.h\" include \"i_system.h\"", "id": "progs/doomgeneric/i_joystick.c", "kind": "module", "label": "i_joystick.c", "language": "c", "sha256": "4113cafe15ae07e1", "symbol_count": 10, "symbols": [{"kind": "function", "line": 76, "name": "I_ShutdownJoystick", "signature": "void I_ShutdownJoystick(void)"}, {"doc": "ifdef ORIGCODE", "kind": "function", "line": 90, "name": "IsValidAxis", "signature": "static boolean IsValidAxis(int axis)"}, {"doc": "endif", "kind": "function", "line": 114, "name": "I_InitJoystick", "signature": "void I_InitJoystick(void)"}, {"doc": "ifdef ORIGCODE", "kind": "function", "line": 171, "name": "IsAxisButton", "signature": "static boolean IsAxisButton(int physbutton)"}, {"doc": "Get the state of the given virtual button.", "kind": "function", "line": 202, "name": "ReadButtonState", "signature": "static int ReadButtonState(int vbutton)"}, {"doc": "Get a bitmask of all currently-pressed buttons", "kind": "function", "line": 227, "name": "GetButtonsState", "signature": "static int GetButtonsState(void)"}, {"doc": "Read the state of an axis, inverting if necessary.", "kind": "function", "line": 247, "name": "GetAxisState", "signature": "static int GetAxisState(int axis, int invert)"}, {"doc": "endif", "kind": "function", "line": 321, "name": "I_UpdateJoystick", "signature": "void I_UpdateJoystick(void)"}, {"kind": "function", "line": 338, "name": "I_BindJoystickVariables", "signature": "void I_BindJoystickVariables(void)"}, {"kind": "macro", "line": 37, "name": "DEAD_ZONE"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System-specific joystick interface. ifndef __I_JOYSTICK__ define __I_JOYSTICK__ Number of \"virtual\" joystick buttons defined in configuration files. This needs to be at least as large as the number of different key bindings supported by the higher-level game code (joyb* variables). define NUM_VIRTUAL_BUTTONS 10 If this bit is set in a configuration file axis value, the axis is not actually a joystick axis, but instead is a \"button axis\". This means that instead of reading an SDL joystick axis, we read the state of two buttons to get the axis value. This is needed for eg.", "id": "progs/doomgeneric/i_joystick.h", "kind": "module", "label": "i_joystick.h", "language": "h", "sha256": "51e77d0e77e0a9be", "symbol_count": 14, "symbols": [{"kind": "macro", "line": 20, "name": "__I_JOYSTICK__"}, {"kind": "macro", "line": 25, "name": "NUM_VIRTUAL_BUTTONS"}, {"kind": "macro", "line": 33, "name": "BUTTON_AXIS"}, {"kind": "macro", "line": 36, "name": "IS_BUTTON_AXIS"}, {"kind": "macro", "line": 39, "name": "BUTTON_AXIS_NEG"}, {"kind": "macro", "line": 40, "name": "BUTTON_AXIS_POS"}, {"kind": "macro", "line": 43, "name": "CREATE_BUTTON_AXIS"}, {"kind": "macro", "line": 48, "name": "HAT_AXIS"}, {"kind": "macro", "line": 49, "name": "IS_HAT_AXIS"}, {"kind": "macro", "line": 53, "name": "HAT_AXIS_HAT"}, {"kind": "macro", "line": 55, "name": "HAT_AXIS_DIRECTION"}, {"kind": "macro", "line": 56, "name": "CREATE_HAT_AXIS"}, {"kind": "macro", "line": 59, "name": "HAT_AXIS_HORIZONTAL"}, {"kind": "macro", "line": 61, "name": "HAT_AXIS_VERTICAL"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Main program, simply calls D_DoomMain high level loop. #include \"config.h\" include #include \"doomtype.h\" #include \"i_system.h\" include \"m_argv.h\" D_DoomMain() Not a globally visible function, just included for source reference, calls all startup code, parses command line options.", "id": "progs/doomgeneric/i_main.c", "kind": "module", "label": "i_main.c", "language": "c", "sha256": "c5a98b5b34564d0e", "symbol_count": 1, "symbols": [{"kind": "function", "line": 38, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"doc": "include include include include \"doomtype.h\" include \"doomfeatures.h\" include \"i_sound.h\" include \"w_wad.h\" include \"z_zone.h\" include \"doomgeneric.h\" include \"minios_abi.h\" define PCSPK_CHANNELS 4 define PCSPK_TICK_MS 14", "id": "progs/doomgeneric/i_minios_sound.c", "kind": "module", "label": "i_minios_sound.c", "language": "c", "sha256": "02ba9195760a121b", "symbol_count": 38, "symbols": [{"kind": "function", "line": 31, "name": "sys_tone", "signature": "static long sys_tone(unsigned f)"}, {"kind": "function", "line": 35, "name": "sys_time", "signature": "static long sys_time(void)"}, {"kind": "function", "line": 100, "name": "mus_read_varlen", "signature": "static int mus_read_varlen(mus_player_t *m, unsigned long *out)"}, {"doc": "Process one full block of events at the current tick and advance pos past * its delta. Returns the delta in *out. Returns 0 at end of score.", "kind": "function", "line": 115, "name": "mus_next_block", "signature": "static int mus_next_block(mus_player_t *m, unsigned long *out)"}, {"kind": "function", "line": 153, "name": "mus_note_cmp", "signature": "static int mus_note_cmp(const void *a, const void *b)"}, {"doc": "Split the sounding notes into a bass pedal (the lowest note below the bass line) and the melody arpeggio (the highest MUS_ARP_MAX melody * notes). Percussion never enters active[], so it is skipped here too.", "kind": "function", "line": 162, "name": "mus_build_chord", "signature": "static void mus_build_chord(mus_player_t *m)"}, {"doc": "} else { if (n < 16) all[n++] = (unsigned short)note; } } m->bass = bass; m->mel_len = 0; if (n > 1) qsort(all, n, sizeof(all[0]), mus_note_cmp); int start = n > MUS_ARP_MAX ? n - MUS_ARP_MAX : 0; for (i = start; i < n; i++) m->mel[m->mel_len++] = all[i]; m->arp_index = 0; } /* Hold a tone for the given number of milliseconds.", "kind": "function", "line": 185, "name": "mus_hold_tone", "signature": "static void mus_hold_tone(unsigned freq, unsigned long ms)"}, {"doc": "Play one full cycle of the pseudo-polyphony: the bass pedal first, held long like the NES triangle voice, then the melody notes arpeggiated rapidly. The repeated cycle at this cadence is what the ear integrates * into a chord instead of one voice.", "kind": "function", "line": 196, "name": "mus_play_chord", "signature": "static void mus_play_chord(mus_player_t *m)"}, {"kind": "function", "line": 209, "name": "mus_advance", "signature": "static void mus_advance(mus_player_t *m, unsigned long ms)"}, {"kind": "function", "line": 230, "name": "MUS_Init", "signature": "static boolean MUS_Init(void)"}, {"kind": "function", "line": 235, "name": "MUS_Shutdown", "signature": "static void MUS_Shutdown(void)"}, {"kind": "function", "line": 240, "name": "MUS_SetMusicVolume", "signature": "static void MUS_SetMusicVolume(int volume)"}, {"kind": "function", "line": 242, "name": "MUS_Pause", "signature": "static void MUS_Pause(void)"}, {"kind": "function", "line": 244, "name": "MUS_Resume", "signature": "static void MUS_Resume(void)"}, {"kind": "function", "line": 245, "name": "MUS_RegisterSong", "signature": "static void *MUS_RegisterSong(void *data, int len)"}, {"kind": "function", "line": 260, "name": "MUS_UnRegisterSong", "signature": "static void MUS_UnRegisterSong(void *handle)"}, {"kind": "function", "line": 266, "name": "MUS_PlaySong", "signature": "static void MUS_PlaySong(void *handle, boolean looping)"}, {"kind": "function", "line": 279, "name": "MUS_StopSong", "signature": "static void MUS_StopSong(void)"}, {"kind": "function", "line": 284, "name": "MUS_MusicIsPlaying", "signature": "static boolean MUS_MusicIsPlaying(void)"}, {"kind": "function", "line": 288, "name": "MUS_Poll", "signature": "static void MUS_Poll(void)"}, {"kind": "function", "line": 317, "name": "PCSPK_Init", "signature": "static boolean PCSPK_Init(boolean use_sfx_prefix)"}, {"kind": "function", "line": 324, "name": "PCSPK_Shutdown", "signature": "static void PCSPK_Shutdown(void)"}, {"kind": "function", "line": 329, "name": "PCSPK_GetSfxLumpNum", "signature": "static int PCSPK_GetSfxLumpNum(sfxinfo_t *sfx)"}, {"kind": "function", "line": 340, "name": "free_channel", "signature": "static void free_channel(int i)"}, {"kind": "function", "line": 349, "name": "PCSPK_Update", "signature": "static void PCSPK_Update(void)"}, {"kind": "function", "line": 381, "name": "PCSPK_UpdateSoundParams", "signature": "static void PCSPK_UpdateSoundParams(int ch, int v, int s)"}, {"kind": "function", "line": 385, "name": "PCSPK_StartSound", "signature": "static int PCSPK_StartSound(sfxinfo_t *sfx, int channel, int vol, int sep)"}, {"kind": "function", "line": 435, "name": "PCSPK_StopSound", "signature": "static void PCSPK_StopSound(int channel)"}, {"kind": "function", "line": 441, "name": "PCSPK_SoundIsPlaying", "signature": "static boolean PCSPK_SoundIsPlaying(int channel)"}, {"kind": "function", "line": 447, "name": "PCSPK_CacheSounds", "signature": "static void PCSPK_CacheSounds(sfxinfo_t *s, int n)"}, {"kind": "macro", "line": 11, "name": "PCSPK_CHANNELS"}, {"kind": "macro", "line": 13, "name": "PCSPK_TICK_MS"}, {"kind": "macro", "line": 57, "name": "MUS_TICKS_PER_SEC"}, {"kind": "macro", "line": 59, "name": "MUS_PERCUSSION_CHAN"}, {"kind": "macro", "line": 60, "name": "MUS_ARP_SLOT_MS"}, {"kind": "macro", "line": 61, "name": "MUS_BASS_HOLD_MS"}, {"kind": "macro", "line": 62, "name": "MUS_BASS_LINE_MIDI"}, {"kind": "macro", "line": 63, "name": "MUS_ARP_MAX"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Screen scale-up code: 1x,2x,3x,4x pixel doubling Aspect ratio-correcting stretch functions include include include include \"doomtype.h\" include \"i_video.h\" include \"m_argv.h\" include \"z_zone.h\"", "id": "progs/doomgeneric/i_scale.c", "kind": "module", "label": "i_scale.c", "language": "c", "sha256": "03827ee7960994cb", "symbol_count": 39, "symbols": [{"doc": "Called to set the source and destination buffers before doing the scale.", "kind": "function", "line": 60, "name": "I_InitScale", "signature": "void I_InitScale(byte *_src_buffer, byte *_dest_buffer, int _dest_pitch)"}, {"doc": "1x scale doesn't really do any scaling: it just copies the buffer a line at a time for when pitch != SCREENWIDTH (!native_surface)", "kind": "function", "line": 74, "name": "I_Scale1x", "signature": "static boolean I_Scale1x(int x1, int y1, int x2, int y2)"}, {"doc": "2x scale (640x400)", "kind": "function", "line": 104, "name": "I_Scale2x", "signature": "static boolean I_Scale2x(int x1, int y1, int x2, int y2)"}, {"doc": "3x scale (960x600)", "kind": "function", "line": 145, "name": "I_Scale3x", "signature": "static boolean I_Scale3x(int x1, int y1, int x2, int y2)"}, {"doc": "4x scale (1280x800)", "kind": "function", "line": 190, "name": "I_Scale4x", "signature": "static boolean I_Scale4x(int x1, int y1, int x2, int y2)"}, {"doc": "5x scale (1600x1000)", "kind": "function", "line": 239, "name": "I_Scale5x", "signature": "static boolean I_Scale5x(int x1, int y1, int x2, int y2)"}, {"doc": "Search through the given palette, finding the nearest color that matches the given color.", "kind": "function", "line": 294, "name": "FindNearestColor", "signature": "static int FindNearestColor(byte *palette, int r, int g, int b)"}, {"doc": "Create a stretch table. This is a lookup table for blending colors. pct specifies the bias between the two colors: 0 = all y, 100 = all x. NB: This is identical to the lookup tables used in other ports for translucency.", "kind": "function", "line": 331, "name": "GenerateStretchTable", "signature": "static byte *GenerateStretchTable(byte *palette, int pct)"}, {"doc": "Called at startup to generate the lookup tables for aspect ratio correcting scale up.", "kind": "function", "line": 360, "name": "I_InitStretchTables", "signature": "static void I_InitStretchTables(byte *palette)"}, {"doc": "Create 50%/50% table for 800x600 squash mode", "kind": "function", "line": 386, "name": "I_InitSquashTable", "signature": "static void I_InitSquashTable(byte *palette)"}, {"doc": "Destroy the scaling lookup tables. This should only ever be called if switching to a completely different palette from the normal one (in which case the mappings no longer make any sense).", "kind": "function", "line": 403, "name": "I_ResetScaleTables", "signature": "void I_ResetScaleTables(byte *palette)"}, {"doc": "Aspect ratio correcting scale up functions. These double up pixels to stretch the screen when using a 4:3 screen mode.", "kind": "function", "line": 433, "name": "WriteBlendedLine1x", "signature": "static inline void WriteBlendedLine1x(byte *dest, byte *src1, byte *src2, \n ..."}, {"doc": "1x stretch (320x240)", "kind": "function", "line": 449, "name": "I_Stretch1x", "signature": "static boolean I_Stretch1x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 506, "name": "WriteLine2x", "signature": "static inline void WriteLine2x(byte *dest, byte *src)"}, {"kind": "function", "line": 519, "name": "WriteBlendedLine2x", "signature": "static inline void WriteBlendedLine2x(byte *dest, byte *src1, byte *src2, \n ..."}, {"doc": "2x stretch (640x480)", "kind": "function", "line": 538, "name": "I_Stretch2x", "signature": "static boolean I_Stretch2x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 619, "name": "WriteLine3x", "signature": "static inline void WriteLine3x(byte *dest, byte *src)"}, {"kind": "function", "line": 633, "name": "WriteBlendedLine3x", "signature": "static inline void WriteBlendedLine3x(byte *dest, byte *src1, byte *src2, \n ..."}, {"doc": "3x stretch (960x720)", "kind": "function", "line": 653, "name": "I_Stretch3x", "signature": "static boolean I_Stretch3x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 758, "name": "WriteLine4x", "signature": "static inline void WriteLine4x(byte *dest, byte *src)"}, {"kind": "function", "line": 773, "name": "WriteBlendedLine4x", "signature": "static inline void WriteBlendedLine4x(byte *dest, byte *src1, byte *src2, \n ..."}, {"doc": "4x stretch (1280x960)", "kind": "function", "line": 794, "name": "I_Stretch4x", "signature": "static boolean I_Stretch4x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 923, "name": "WriteLine5x", "signature": "static inline void WriteLine5x(byte *dest, byte *src)"}, {"doc": "5x stretch (1600x1200)", "kind": "function", "line": 941, "name": "I_Stretch5x", "signature": "static boolean I_Stretch5x(int x1, int y1, int x2, int y2)"}, {"doc": "1x squashed scale (256x200)", "kind": "function", "line": 1029, "name": "WriteSquashedLine1x", "signature": "static inline void WriteSquashedLine1x(byte *dest, byte *src)"}, {"doc": "1x squashed (256x200)", "kind": "function", "line": 1060, "name": "I_Squash1x", "signature": "static boolean I_Squash1x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 1101, "name": "WriteSquashedLine2x", "signature": "static inline void WriteSquashedLine2x(byte *dest, byte *src)"}, {"doc": "2x squash (512x400)", "kind": "function", "line": 1159, "name": "I_Squash2x", "signature": "static boolean I_Squash2x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 1196, "name": "WriteSquashedLine3x", "signature": "static inline void WriteSquashedLine3x(byte *dest, byte *src)"}, {"doc": "3x scale squashed (800x600) This is a special case that uses the half_stretch_table (50%) rather than the normal stretch_tables(20,40%), to scale up to 800x600 exactly.", "kind": "function", "line": 1242, "name": "I_Squash3x", "signature": "static boolean I_Squash3x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 1278, "name": "WriteSquashedLine4x", "signature": "static inline void WriteSquashedLine4x(byte *dest, byte *src)"}, {"doc": "4x squashed (1024x800)", "kind": "function", "line": 1353, "name": "I_Squash4x", "signature": "static boolean I_Squash4x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 1389, "name": "WriteSquashedLine5x", "signature": "static inline void WriteSquashedLine5x(byte *dest, byte *src)"}, {"doc": "5x squashed (1280x1000)", "kind": "function", "line": 1418, "name": "I_Squash5x", "signature": "static boolean I_Squash5x(int x1, int y1, int x2, int y2)"}, {"kind": "macro", "line": 32, "name": "inline"}, {"kind": "macro", "line": 1098, "name": "DRAW_PIXEL2"}, {"kind": "macro", "line": 1192, "name": "DRAW_PIXEL3"}, {"kind": "macro", "line": 1275, "name": "DRAW_PIXEL4"}, {"kind": "macro", "line": 1386, "name": "DRAW_PIXEL5"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Pixel-doubling scale up functions. ifndef __I_SCALE__ define __I_SCALE__ include \"doomtype.h\"", "id": "progs/doomgeneric/i_scale.h", "kind": "module", "label": "i_scale.h", "language": "h", "sha256": "5a7d9dbd64598f9f", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__I_SCALE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none include include ifdef ORIGCODE include \"SDL_mixer.h\" endif include \"config.h\" include \"doomfeatures.h\" include \"doomtype.h\" ifdef ORIGCODE include \"gusconf.h\"", "id": "progs/doomgeneric/i_sound.c", "kind": "module", "label": "i_sound.c", "language": "c", "sha256": "7f0f893109a4557a", "symbol_count": 24, "symbols": [{"doc": "Check if a sound device is in the given list of devices", "kind": "function", "line": 115, "name": "SndDeviceInList", "signature": "static boolean SndDeviceInList(snddevice_t device, snddevice_t *list,\n ..."}, {"doc": "Find and initialize a sound_module_t appropriate for the setting in snd_sfxdevice.", "kind": "function", "line": 134, "name": "InitSfxModule", "signature": "static void InitSfxModule(boolean use_sfx_prefix)"}, {"doc": "Initialize music according to snd_musicdevice.", "kind": "function", "line": 162, "name": "InitMusicModule", "signature": "static void InitMusicModule(void)"}, {"doc": "Initializes sound stuff, including volume Sets channels, SFX and music volume, allocates channel buffer, sets S_sfx lookup.", "kind": "function", "line": 194, "name": "I_InitSound", "signature": "void I_InitSound(boolean use_sfx_prefix)"}, {"kind": "function", "line": 249, "name": "I_ShutdownSound", "signature": "void I_ShutdownSound(void)"}, {"kind": "function", "line": 262, "name": "I_GetSfxLumpNum", "signature": "int I_GetSfxLumpNum(sfxinfo_t *sfxinfo)"}, {"kind": "function", "line": 274, "name": "I_UpdateSound", "signature": "void I_UpdateSound(void)"}, {"kind": "function", "line": 287, "name": "CheckVolumeSeparation", "signature": "static void CheckVolumeSeparation(int *vol, int *sep)"}, {"kind": "function", "line": 308, "name": "I_UpdateSoundParams", "signature": "void I_UpdateSoundParams(int channel, int vol, int sep)"}, {"kind": "function", "line": 317, "name": "I_StartSound", "signature": "int I_StartSound(sfxinfo_t *sfxinfo, int channel, int vol, int sep)"}, {"kind": "function", "line": 330, "name": "I_StopSound", "signature": "void I_StopSound(int channel)"}, {"kind": "function", "line": 338, "name": "I_SoundIsPlaying", "signature": "boolean I_SoundIsPlaying(int channel)"}, {"kind": "function", "line": 350, "name": "I_PrecacheSounds", "signature": "void I_PrecacheSounds(sfxinfo_t *sounds, int num_sounds)"}, {"kind": "function", "line": 358, "name": "I_InitMusic", "signature": "void I_InitMusic(void)"}, {"kind": "function", "line": 362, "name": "I_ShutdownMusic", "signature": "void I_ShutdownMusic(void)"}, {"kind": "function", "line": 367, "name": "I_SetMusicVolume", "signature": "void I_SetMusicVolume(int volume)"}, {"kind": "function", "line": 375, "name": "I_PauseSong", "signature": "void I_PauseSong(void)"}, {"kind": "function", "line": 383, "name": "I_ResumeSong", "signature": "void I_ResumeSong(void)"}, {"kind": "function", "line": 391, "name": "I_RegisterSong", "signature": "void *I_RegisterSong(void *data, int len)"}, {"kind": "function", "line": 403, "name": "I_UnRegisterSong", "signature": "void I_UnRegisterSong(void *handle)"}, {"kind": "function", "line": 411, "name": "I_PlaySong", "signature": "void I_PlaySong(void *handle, boolean looping)"}, {"kind": "function", "line": 419, "name": "I_StopSong", "signature": "void I_StopSong(void)"}, {"kind": "function", "line": 427, "name": "I_MusicIsPlaying", "signature": "boolean I_MusicIsPlaying(void)"}, {"kind": "function", "line": 439, "name": "I_BindSoundVariables", "signature": "void I_BindSoundVariables(void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The not so system specific sound interface. ifndef __I_SOUND__ define __I_SOUND__ include \"doomtype.h\" SoundFX struct.", "id": "progs/doomgeneric/i_sound.h", "kind": "module", "label": "i_sound.h", "language": "h", "sha256": "d99d336be6d33415", "symbol_count": 2, "symbols": [{"kind": "struct", "line": 31, "name": "sfxinfo_struct"}, {"kind": "macro", "line": 21, "name": "__I_SOUND__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Endianess handling, swapping 16bit and 32bit. ifndef __I_SWAP__ define __I_SWAP__ ifdef ORIGCODE include \"SDL_endian.h\" Endianess handling. WAD files are stored little endian. Just use SDL's endianness swapping functions.", "id": "progs/doomgeneric/i_swap.h", "kind": "module", "label": "i_swap.h", "language": "h", "sha256": "9d714e64f58af4c4", "symbol_count": 8, "symbols": [{"kind": "macro", "line": 21, "name": "__I_SWAP__"}, {"kind": "macro", "line": 33, "name": "SHORT"}, {"kind": "macro", "line": 35, "name": "LONG"}, {"kind": "macro", "line": 40, "name": "SYS_LITTLE_ENDIAN"}, {"kind": "macro", "line": 42, "name": "SYS_BIG_ENDIAN"}, {"kind": "macro", "line": 46, "name": "SHORT"}, {"kind": "macro", "line": 48, "name": "LONG"}, {"kind": "macro", "line": 49, "name": "SYS_LITTLE_ENDIAN"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: include include include include ifdef _WIN32 define WIN32_LEAN_AND_MEAN include else include ", "id": "progs/doomgeneric/i_system.c", "kind": "module", "label": "i_system.c", "language": "c", "sha256": "e08ce48d54d7a697", "symbol_count": 20, "symbols": [{"kind": "struct", "line": 64, "name": "atexit_listentry_s"}, {"kind": "function", "line": 72, "name": "I_AtExit", "signature": "void I_AtExit(atexit_func_t func, boolean run_on_error)"}, {"doc": "Tactile feedback function, probably used for the Logitech Cyberman", "kind": "function", "line": 86, "name": "I_Tactile", "signature": "void I_Tactile(int on, int off, int total)"}, {"doc": "Zone memory auto-allocation function that allocates the zone size by trying progressively smaller zone sizes until one is found that works.", "kind": "function", "line": 94, "name": "AutoAllocMemory", "signature": "static byte *AutoAllocMemory(int *size, int default_ram, int min_ram)"}, {"kind": "function", "line": 132, "name": "I_ZoneBase", "signature": "byte *I_ZoneBase (int *size)"}, {"kind": "function", "line": 165, "name": "I_PrintBanner", "signature": "void I_PrintBanner(char *msg)"}, {"kind": "function", "line": 176, "name": "I_PrintDivider", "signature": "void I_PrintDivider(void)"}, {"kind": "function", "line": 188, "name": "I_PrintStartupBanner", "signature": "void I_PrintStartupBanner(char *gamedescription)"}, {"doc": "I_ConsoleStdout Returns true if stdout is a real console, false if it is a file", "kind": "function", "line": 209, "name": "I_ConsoleStdout", "signature": "boolean I_ConsoleStdout(void)"}, {"doc": "I_Quit", "kind": "function", "line": 245, "name": "I_Quit", "signature": "void I_Quit (void)"}, {"doc": "returns non-zero if zenity is available", "kind": "function", "line": 271, "name": "ZenityAvailable", "signature": "static int ZenityAvailable(void)"}, {"doc": "Escape special characters in the given string so that they can be safely enclosed in shell quotes.", "kind": "function", "line": 279, "name": "EscapeShellString", "signature": "static char *EscapeShellString(char *string)"}, {"doc": "Open a native error box with a message using zenity", "kind": "function", "line": 322, "name": "ZenityErrorBox", "signature": "static int ZenityErrorBox(char *message)"}, {"kind": "function", "line": 358, "name": "I_Error", "signature": "void I_Error (char *error, ...)"}, {"kind": "function", "line": 501, "name": "I_GetMemoryValue", "signature": "boolean I_GetMemoryValue(unsigned int offset, void *value, int size)"}, {"kind": "macro", "line": 27, "name": "WIN32_LEAN_AND_MEAN"}, {"kind": "macro", "line": 57, "name": "DEFAULT_RAM"}, {"kind": "macro", "line": 59, "name": "MIN_RAM"}, {"kind": "macro", "line": 268, "name": "ZENITY_BINARY"}, {"kind": "macro", "line": 489, "name": "DOS_MEM_DUMP_SIZE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __I_SYSTEM__ define __I_SYSTEM__ include \"d_ticcmd.h\" include \"d_event.h\"", "id": "progs/doomgeneric/i_system.h", "kind": "module", "label": "i_system.h", "language": "h", "sha256": "a021912f1306a390", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__I_SYSTEM__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Timer functions. include \"i_timer.h\" include \"doomtype.h\" include \"doomgeneric.h\" include #include #include I_GetTime", "id": "progs/doomgeneric/i_timer.c", "kind": "module", "label": "i_timer.c", "language": "c", "sha256": "db826c8488af3431", "symbol_count": 6, "symbols": [{"kind": "function", "line": 35, "name": "I_GetTicks", "signature": "int I_GetTicks(void)"}, {"kind": "function", "line": 41, "name": "I_GetTime", "signature": "int I_GetTime (void)"}, {"doc": "Same as I_GetTime, but returns time in milliseconds", "kind": "function", "line": 60, "name": "I_GetTimeMS", "signature": "int I_GetTimeMS(void)"}, {"doc": "Sleep for a specified number of ms", "kind": "function", "line": 74, "name": "I_Sleep", "signature": "void I_Sleep(int ms)"}, {"kind": "function", "line": 82, "name": "I_WaitVBL", "signature": "void I_WaitVBL(int count)"}, {"kind": "function", "line": 87, "name": "I_InitTimer", "signature": "void I_InitTimer(void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System-specific timer interface ifndef __I_TIMER__ define __I_TIMER__ define TICRATE 35 Called by D_DoomLoop, returns current time in tics.", "id": "progs/doomgeneric/i_timer.h", "kind": "module", "label": "i_timer.h", "language": "h", "sha256": "aff7e10d3ae75797", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 21, "name": "__I_TIMER__"}, {"kind": "macro", "line": 22, "name": "TICRATE"}]}, {"doc": "Emacs style mode select -*- C++ -*- ----------------------------------------------------------------------------- $Id:$ Copyright (C) 1993-1996 by id Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. $Log:$ DESCRIPTION: DOOM graphics stuff for X11, UNIX. -----------------------------------------------------------------------------", "id": "progs/doomgeneric/i_video.c", "kind": "module", "label": "i_video.c", "language": "c", "sha256": "996695b7d76bd3e5", "symbol_count": 27, "symbols": [{"kind": "struct", "line": 54, "name": "FB_BitField"}, {"kind": "struct", "line": 60, "name": "FB_ScreenInfo"}, {"kind": "struct", "line": 80, "name": "color"}, {"kind": "function", "line": 130, "name": "cmap_to_rgb565", "signature": "void cmap_to_rgb565(uint16_t * out, uint8_t * in, int in_pixels)"}, {"kind": "function", "line": 151, "name": "cmap_to_fb", "signature": "void cmap_to_fb(uint8_t * out, uint8_t * in, int in_pixels)"}, {"kind": "function", "line": 178, "name": "I_InitGraphics", "signature": "void I_InitGraphics (void)"}, {"kind": "function", "line": 231, "name": "I_ShutdownGraphics", "signature": "void I_ShutdownGraphics (void)"}, {"kind": "function", "line": 236, "name": "I_StartFrame", "signature": "void I_StartFrame (void)"}, {"kind": "function", "line": 241, "name": "I_StartTic", "signature": "void I_StartTic (void)"}, {"kind": "function", "line": 246, "name": "I_UpdateNoBlit", "signature": "void I_UpdateNoBlit (void)"}, {"doc": "I_FinishUpdate", "kind": "function", "line": 254, "name": "I_FinishUpdate", "signature": "void I_FinishUpdate (void)"}, {"doc": "I_ReadScreen", "kind": "function", "line": 302, "name": "I_ReadScreen", "signature": "void I_ReadScreen (byte* scr)"}, {"doc": "I_SetPalette define GFX_RGB565(r, g, b)\t\t\t((((r & 0xF8) >> 3) << 11) | (((g & 0xFC) >> 2) << 5) | ((b & 0xF8) >> 3)) define GFX_RGB565_R(color)\t\t\t((0xF800 & color) >> 11) define GFX_RGB565_G(color)\t\t\t((0x07E0 & color) >> 5) define GFX_RGB565_B(color)\t\t\t(0x001F & color)", "kind": "function", "line": 314, "name": "I_SetPalette", "signature": "void I_SetPalette (byte* palette)"}, {"doc": "Given an RGB value, find the closest matching palette index.", "kind": "function", "line": 332, "name": "I_GetPaletteIndex", "signature": "int I_GetPaletteIndex (int r, int g, int b)"}, {"kind": "function", "line": 368, "name": "I_BeginRead", "signature": "void I_BeginRead (void)"}, {"kind": "function", "line": 372, "name": "I_EndRead", "signature": "void I_EndRead (void)"}, {"kind": "function", "line": 376, "name": "I_SetWindowTitle", "signature": "void I_SetWindowTitle (char *title)"}, {"kind": "function", "line": 381, "name": "I_GraphicsCheckCommandLine", "signature": "void I_GraphicsCheckCommandLine (void)"}, {"kind": "function", "line": 385, "name": "I_SetGrabMouseCallback", "signature": "void I_SetGrabMouseCallback (grabmouse_callback_t func)"}, {"kind": "function", "line": 389, "name": "I_EnableLoadingDisk", "signature": "void I_EnableLoadingDisk(void)"}, {"kind": "function", "line": 393, "name": "I_BindVideoVariables", "signature": "void I_BindVideoVariables (void)"}, {"kind": "function", "line": 397, "name": "I_DisplayFPSDots", "signature": "void I_DisplayFPSDots (boolean dots_on)"}, {"kind": "function", "line": 401, "name": "I_CheckIsScreensaver", "signature": "void I_CheckIsScreensaver (void)"}, {"kind": "macro", "line": 310, "name": "GFX_RGB565"}, {"kind": "macro", "line": 311, "name": "GFX_RGB565_R"}, {"kind": "macro", "line": 312, "name": "GFX_RGB565_G"}, {"kind": "macro", "line": 313, "name": "GFX_RGB565_B"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __I_VIDEO__ define __I_VIDEO__ include \"doomtype.h\" Screen width and height. define SCREENWIDTH 320 define SCREENHEIGHT 200 Screen width used for \"squash\" scale functions", "id": "progs/doomgeneric/i_video.h", "kind": "module", "label": "i_video.h", "language": "h", "sha256": "e11a9289b84ca17f", "symbol_count": 6, "symbols": [{"kind": "macro", "line": 21, "name": "__I_VIDEO__"}, {"kind": "macro", "line": 26, "name": "SCREENWIDTH"}, {"kind": "macro", "line": 28, "name": "SCREENHEIGHT"}, {"kind": "macro", "line": 31, "name": "SCREENWIDTH_4_3"}, {"kind": "macro", "line": 35, "name": "SCREENHEIGHT_4_3"}, {"kind": "macro", "line": 37, "name": "MAX_MOUSE_BUTTONS"}]}, {"id": "progs/doomgeneric/icon.c", "kind": "module", "label": "icon.c", "language": "c", "sha256": "a2aacb813259f73d", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Thing frame/state LUT, generated by multigen utilitiy. This one is the original DOOM version, preserved. include include Data. include \"sounds.h\" include \"m_fixed.h\" include \"info.h\" include \"p_mobj.h\"", "id": "progs/doomgeneric/info.c", "kind": "module", "label": "info.c", "language": "c", "sha256": "e2be9ff79428bd66", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Thing frame/state LUT, generated by multigen utilitiy. This one is the original DOOM version, preserved. ifndef __INFO__ define __INFO__ Needed for action function pointer handling. include \"d_think.h\"", "id": "progs/doomgeneric/info.h", "kind": "module", "label": "info.h", "language": "h", "sha256": "e14bb0b58e162837", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "__INFO__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: include include include include include \"doomtype.h\" include \"i_system.h\" include \"m_misc.h\" include \"m_argv.h\" // haleyjd 20110212: warning fix", "id": "progs/doomgeneric/m_argv.c", "kind": "module", "label": "m_argv.c", "language": "c", "sha256": "7a430eb8ad1d7557", "symbol_count": 7, "symbols": [{"doc": "M_CheckParm Checks for the given parameter in the program's command line arguments. Returns the argument number (1 to argc-1) or 0 if not present", "kind": "function", "line": 42, "name": "M_CheckParmWithArgs", "signature": "int M_CheckParmWithArgs(char *check, int num_args)"}, {"doc": "M_ParmExists Returns true if the given parameter exists in the program's command line arguments, false if not.", "kind": "function", "line": 62, "name": "M_ParmExists", "signature": "boolean M_ParmExists(char *check)"}, {"kind": "function", "line": 67, "name": "M_CheckParm", "signature": "int M_CheckParm(char *check)"}, {"doc": "define MAXARGVS 100", "kind": "function", "line": 74, "name": "LoadResponseFile", "signature": "static void LoadResponseFile(int argv_index)"}, {"doc": "Find a Response File", "kind": "function", "line": 234, "name": "M_FindResponseFile", "signature": "void M_FindResponseFile(void)"}, {"doc": "Return the name of the executable used to start the program:", "kind": "function", "line": 249, "name": "M_GetExecutableName", "signature": "char *M_GetExecutableName(void)"}, {"kind": "macro", "line": 72, "name": "MAXARGVS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Nil. ifndef __M_ARGV__ define __M_ARGV__ include \"doomtype.h\" MISC", "id": "progs/doomgeneric/m_argv.h", "kind": "module", "label": "m_argv.h", "language": "h", "sha256": "4ef0191e13eea9da", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_ARGV__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Main loop menu stuff. Random number LUT. Default Config File. PCX Screenshots. include \"m_bbox.h\"", "id": "progs/doomgeneric/m_bbox.c", "kind": "module", "label": "m_bbox.c", "language": "c", "sha256": "879c4cd6b21c7f9a", "symbol_count": 2, "symbols": [{"doc": "include \"m_bbox.h\"", "kind": "function", "line": 25, "name": "M_ClearBox", "signature": "void M_ClearBox (fixed_t *box)"}, {"kind": "function", "line": 34, "name": "M_AddToBox", "signature": "void\nM_AddToBox\n( fixed_t*\tbox,\n fixed_t\tx,\n fixed_t\ty )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Nil. ifndef __M_BBOX__ define __M_BBOX__ include include \"m_fixed.h\" Bounding box coordinate storage.", "id": "progs/doomgeneric/m_bbox.h", "kind": "module", "label": "m_bbox.h", "language": "h", "sha256": "db33e9edbd0a29a2", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_BBOX__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Cheat sequence checking. include include \"doomtype.h\" include \"m_cheat.h\" CHEAT SEQUENCE PACKAGE", "id": "progs/doomgeneric/m_cheat.c", "kind": "module", "label": "m_cheat.c", "language": "c", "sha256": "9d0c388568c0a776", "symbol_count": 2, "symbols": [{"doc": "Called in st_stuff module, which handles the input. Returns a 1 if the cheat was successful, 0 if failed.", "kind": "function", "line": 34, "name": "cht_CheckCheat", "signature": "int\ncht_CheckCheat\n( cheatseq_t*\tcht,\n char\t\tkey )"}, {"kind": "function", "line": 80, "name": "cht_GetParam", "signature": "void\ncht_GetParam\n( cheatseq_t*\tcht,\n char*\t\tbuffer )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Cheat code checking. ifndef __M_CHEAT__ define __M_CHEAT__ CHEAT SEQUENCE PACKAGE declaring a cheat define CHEAT(value, parameters) \\", "id": "progs/doomgeneric/m_cheat.h", "kind": "module", "label": "m_cheat.h", "language": "h", "sha256": "0a988d0e60a78793", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 21, "name": "__M_CHEAT__"}, {"kind": "macro", "line": 28, "name": "CHEAT"}, {"kind": "macro", "line": 31, "name": "MAX_CHEAT_LEN"}, {"kind": "macro", "line": 33, "name": "MAX_CHEAT_PARAMS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Configuration file interface. include include include include include include \"config.h\" include \"doomtype.h\" include \"doomkeys.h\"", "id": "progs/doomgeneric/m_config.c", "kind": "module", "label": "m_config.c", "language": "c", "sha256": "ba9214b7d9f16ee3", "symbol_count": 24, "symbols": [{"doc": "Search a collection for a variable", "kind": "function", "line": 1562, "name": "SearchCollection", "signature": "static default_t *SearchCollection(default_collection_t *collection, char *name)"}, {"kind": "function", "line": 1607, "name": "SaveDefaultCollection", "signature": "static void SaveDefaultCollection(default_collection_t *collection)"}, {"doc": "Parses integer values in the configuration file", "kind": "function", "line": 1715, "name": "ParseIntParameter", "signature": "static int ParseIntParameter(char *strparm)"}, {"kind": "function", "line": 1727, "name": "SetVariable", "signature": "static void SetVariable(default_t *def, char *value)"}, {"kind": "function", "line": 1770, "name": "LoadDefaultCollection", "signature": "static void LoadDefaultCollection(default_collection_t *collection)"}, {"doc": "Set the default filenames to use for configuration files.", "kind": "function", "line": 1835, "name": "M_SetConfigFilenames", "signature": "void M_SetConfigFilenames(char *main_config, char *extra_config)"}, {"doc": "M_SaveDefaults", "kind": "function", "line": 1845, "name": "M_SaveDefaults", "signature": "void M_SaveDefaults (void)"}, {"doc": "Save defaults to alternate filenames", "kind": "function", "line": 1855, "name": "M_SaveDefaultsAlternate", "signature": "void M_SaveDefaultsAlternate(char *main, char *extra)"}, {"doc": "M_LoadDefaults", "kind": "function", "line": 1880, "name": "M_LoadDefaults", "signature": "void M_LoadDefaults (void)"}, {"doc": "Get a configuration file variable by its name", "kind": "function", "line": 1936, "name": "GetDefaultForName", "signature": "static default_t *GetDefaultForName(char *name)"}, {"doc": "Bind a variable to a given configuration file variable, by name.", "kind": "function", "line": 1963, "name": "M_BindVariable", "signature": "void M_BindVariable(char *name, void *location)"}, {"doc": "Set the value of a particular variable; an API function for other parts of the program to assign values to config variables by name.", "kind": "function", "line": 1976, "name": "M_SetVariable", "signature": "boolean M_SetVariable(char *name, char *value)"}, {"doc": "Get the value of a variable.", "kind": "function", "line": 1994, "name": "M_GetIntVariable", "signature": "int M_GetIntVariable(char *name)"}, {"kind": "function", "line": 2009, "name": "M_GetStrVariable", "signature": "const char *M_GetStrVariable(char *name)"}, {"kind": "function", "line": 2024, "name": "M_GetFloatVariable", "signature": "float M_GetFloatVariable(char *name)"}, {"doc": "Get the path to the default configuration dir to use, if NULL is passed to M_SetConfigDir.", "kind": "function", "line": 2042, "name": "GetDefaultConfigDir", "signature": "static char *GetDefaultConfigDir(void)"}, {"doc": "SetConfigDir: Sets the location of the configuration directory, where configuration files are stored - default.cfg, chocolate-doom.cfg, savegames, etc.", "kind": "function", "line": 2058, "name": "M_SetConfigDir", "signature": "void M_SetConfigDir(char *dir)"}, {"doc": "Calculate the path to the directory to use to store save games. Creates the directory as necessary.", "kind": "function", "line": 2086, "name": "M_GetSaveGameDir", "signature": "char *M_GetSaveGameDir(char *iwadname)"}, {"kind": "macro", "line": 94, "name": "CONFIG_VARIABLE_GENERIC"}, {"kind": "macro", "line": 97, "name": "CONFIG_VARIABLE_KEY"}, {"kind": "macro", "line": 100, "name": "CONFIG_VARIABLE_INT"}, {"kind": "macro", "line": 102, "name": "CONFIG_VARIABLE_INT_HEX"}, {"kind": "macro", "line": 104, "name": "CONFIG_VARIABLE_FLOAT"}, {"kind": "macro", "line": 106, "name": "CONFIG_VARIABLE_STRING"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Configuration file interface. ifndef __M_CONFIG__ define __M_CONFIG__ include \"doomtype.h\"", "id": "progs/doomgeneric/m_config.h", "kind": "module", "label": "m_config.h", "language": "h", "sha256": "0a53b2a73c535f9d", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_CONFIG__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. include include \"doomtype.h\" include \"doomkeys.h\" include \"m_config.h\" include \"m_misc.h\" Keyboard controls", "id": "progs/doomgeneric/m_controls.c", "kind": "module", "label": "m_controls.c", "language": "c", "sha256": "f64170855d5d7927", "symbol_count": 9, "symbols": [{"doc": "Bind all of the common controls used by Doom and all other games.", "kind": "function", "line": 203, "name": "M_BindBaseControls", "signature": "void M_BindBaseControls(void)"}, {"kind": "function", "line": 240, "name": "M_BindHereticControls", "signature": "void M_BindHereticControls(void)"}, {"kind": "function", "line": 255, "name": "M_BindHexenControls", "signature": "void M_BindHexenControls(void)"}, {"kind": "function", "line": 271, "name": "M_BindStrifeControls", "signature": "void M_BindStrifeControls(void)"}, {"kind": "function", "line": 306, "name": "M_BindWeaponControls", "signature": "void M_BindWeaponControls(void)"}, {"kind": "function", "line": 327, "name": "M_BindMapControls", "signature": "void M_BindMapControls(void)"}, {"kind": "function", "line": 343, "name": "M_BindMenuControls", "signature": "void M_BindMenuControls(void)"}, {"kind": "function", "line": 374, "name": "M_BindChatControls", "signature": "void M_BindChatControls(unsigned int num_players)"}, {"doc": "Apply custom patches to the default values depending on the platform we are running on.", "kind": "function", "line": 393, "name": "M_ApplyPlatformDefaults", "signature": "void M_ApplyPlatformDefaults(void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ifndef __M_CONTROLS_H__ define __M_CONTROLS_H__", "id": "progs/doomgeneric/m_controls.h", "kind": "module", "label": "m_controls.h", "language": "h", "sha256": "22f8f193cc584a78", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 18, "name": "__M_CONTROLS_H__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Fixed point implementation. include \"stdlib.h\" include \"doomtype.h\" include \"i_system.h\" include \"m_fixed.h\"", "id": "progs/doomgeneric/m_fixed.c", "kind": "module", "label": "m_fixed.c", "language": "c", "sha256": "b4f2f4db6001da11", "symbol_count": 2, "symbols": [{"doc": "Fixme. __USE_C_FIXED__ or something.", "kind": "function", "line": 32, "name": "FixedMul", "signature": "fixed_t\nFixedMul\n( fixed_t\ta,\n fixed_t\tb )"}, {"doc": "FixedDiv, C version.", "kind": "function", "line": 46, "name": "FixedDiv", "signature": "fixed_t FixedDiv(fixed_t a, fixed_t b)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Fixed point arithemtics, implementation. ifndef __M_FIXED__ define __M_FIXED__ Fixed point, 32bit as 16.16. define FRACBITS\t\t16 define FRACUNIT\t\t(1< include include \"doomdef.h\" include \"doomkeys.h\" include \"dstrings.h\" include \"d_main.h\" include \"deh_main.h\"", "id": "progs/doomgeneric/m_menu.c", "kind": "module", "label": "m_menu.c", "language": "c", "sha256": "1ce7a6f57bda5a8b", "symbol_count": 60, "symbols": [{"kind": "struct", "line": 151, "name": "menu_s"}, {"doc": "M_ReadSaveStrings read the strings from the savegame files", "kind": "function", "line": 503, "name": "M_ReadSaveStrings", "signature": "void M_ReadSaveStrings(void)"}, {"doc": "M_LoadGame & Cie.", "kind": "function", "line": 530, "name": "M_DrawLoad", "signature": "void M_DrawLoad(void)"}, {"doc": "Draw border for the savegame description", "kind": "function", "line": 549, "name": "M_DrawSaveLoadBorder", "signature": "void M_DrawSaveLoadBorder(int x,int y)"}, {"doc": "User wants to load this game", "kind": "function", "line": 572, "name": "M_LoadSelect", "signature": "void M_LoadSelect(int choice)"}, {"doc": "Selected from DOOM menu", "kind": "function", "line": 585, "name": "M_LoadGame", "signature": "void M_LoadGame (int choice)"}, {"doc": "M_SaveGame & Cie.", "kind": "function", "line": 601, "name": "M_DrawSave", "signature": "void M_DrawSave(void)"}, {"doc": "M_Responder calls this when user is finished", "kind": "function", "line": 622, "name": "M_DoSave", "signature": "void M_DoSave(int slot)"}, {"doc": "User wants to save. Start string input for M_Responder", "kind": "function", "line": 635, "name": "M_SaveSelect", "signature": "void M_SaveSelect(int choice)"}, {"doc": "Selected from DOOM menu", "kind": "function", "line": 650, "name": "M_SaveGame", "signature": "void M_SaveGame (int choice)"}, {"kind": "function", "line": 671, "name": "M_QuickSaveResponse", "signature": "void M_QuickSaveResponse(int key)"}, {"kind": "function", "line": 680, "name": "M_QuickSave", "signature": "void M_QuickSave(void)"}, {"doc": "M_QuickLoad", "kind": "function", "line": 709, "name": "M_QuickLoadResponse", "signature": "void M_QuickLoadResponse(int key)"}, {"kind": "function", "line": 717, "name": "M_QuickLoad", "signature": "void M_QuickLoad(void)"}, {"doc": "Read This Menus Had a \"quick hack to fix romero bug\"", "kind": "function", "line": 743, "name": "M_DrawReadThis1", "signature": "void M_DrawReadThis1(void)"}, {"doc": "Read This Menus - optional second page.", "kind": "function", "line": 820, "name": "M_DrawReadThis2", "signature": "void M_DrawReadThis2(void)"}, {"doc": "Change Sfx & Music volumes", "kind": "function", "line": 834, "name": "M_DrawSound", "signature": "void M_DrawSound(void)"}, {"kind": "function", "line": 844, "name": "M_Sound", "signature": "void M_Sound(int choice)"}, {"kind": "function", "line": 849, "name": "M_SfxVol", "signature": "void M_SfxVol(int choice)"}, {"kind": "function", "line": 866, "name": "M_MusicVol", "signature": "void M_MusicVol(int choice)"}, {"doc": "M_DrawMainMenu", "kind": "function", "line": 890, "name": "M_DrawMainMenu", "signature": "void M_DrawMainMenu(void)"}, {"doc": "M_NewGame", "kind": "function", "line": 902, "name": "M_DrawNewGame", "signature": "void M_DrawNewGame(void)"}, {"kind": "function", "line": 907, "name": "M_NewGame", "signature": "void M_NewGame(int choice)"}, {"kind": "function", "line": 929, "name": "M_DrawEpisode", "signature": "void M_DrawEpisode(void)"}, {"kind": "function", "line": 934, "name": "M_VerifyNightmare", "signature": "void M_VerifyNightmare(int key)"}, {"kind": "function", "line": 943, "name": "M_ChooseSkill", "signature": "void M_ChooseSkill(int choice)"}, {"kind": "function", "line": 955, "name": "M_Episode", "signature": "void M_Episode(int choice)"}, {"kind": "function", "line": 986, "name": "M_DrawOptions", "signature": "void M_DrawOptions(void)"}, {"kind": "function", "line": 1006, "name": "M_Options", "signature": "void M_Options(int choice)"}, {"doc": "Toggle messages on/off", "kind": "function", "line": 1017, "name": "M_ChangeMessages", "signature": "void M_ChangeMessages(int choice)"}, {"doc": "M_EndGame", "kind": "function", "line": 1035, "name": "M_EndGameResponse", "signature": "void M_EndGameResponse(int key)"}, {"kind": "function", "line": 1044, "name": "M_EndGame", "signature": "void M_EndGame(int choice)"}, {"doc": "M_ReadThis", "kind": "function", "line": 1069, "name": "M_ReadThis", "signature": "void M_ReadThis(int choice)"}, {"kind": "function", "line": 1074, "name": "M_ReadThis2", "signature": "void M_ReadThis2(int choice)"}, {"kind": "function", "line": 1092, "name": "M_FinishReadThis", "signature": "void M_FinishReadThis(int choice)"}, {"kind": "function", "line": 1128, "name": "M_QuitResponse", "signature": "void M_QuitResponse(int key)"}, {"kind": "function", "line": 1145, "name": "M_SelectEndMessage", "signature": "static char *M_SelectEndMessage(void)"}, {"kind": "function", "line": 1166, "name": "M_QuitDOOM", "signature": "void M_QuitDOOM(int choice)"}, {"kind": "function", "line": 1175, "name": "M_ChangeSensitivity", "signature": "void M_ChangeSensitivity(int choice)"}, {"kind": "function", "line": 1193, "name": "M_ChangeDetail", "signature": "void M_ChangeDetail(int choice)"}, {"kind": "function", "line": 1209, "name": "M_SizeDisplay", "signature": "void M_SizeDisplay(int choice)"}, {"doc": "Menu Functions", "kind": "function", "line": 1243, "name": "M_DrawThermo", "signature": "void\nM_DrawThermo\n( int\tx,\n int\ty,\n int\tthermWidth,\n int\tthermDot )"}, {"kind": "function", "line": 1266, "name": "M_DrawEmptyCell", "signature": "void\nM_DrawEmptyCell\n( menu_t*\tmenu,\n int\t\titem )"}, {"kind": "function", "line": 1277, "name": "M_DrawSelCell", "signature": "void\nM_DrawSelCell\n( menu_t*\tmenu,\n int\t\titem )"}, {"kind": "function", "line": 1286, "name": "M_StartMessage", "signature": "void\nM_StartMessage\n( char*\t\tstring,\n void*\t\troutine,\n boolean\tinput )"}, {"kind": "function", "line": 1302, "name": "M_StopMessage", "signature": "void M_StopMessage(void)"}, {"doc": "Find string width from hu_font chars", "kind": "function", "line": 1315, "name": "M_StringWidth", "signature": "int M_StringWidth(char* string)"}, {"doc": "Find string height from hu_font chars", "kind": "function", "line": 1338, "name": "M_StringHeight", "signature": "int M_StringHeight(char* string)"}, {"doc": "Write a string using the hu_font", "kind": "function", "line": 1356, "name": "M_WriteText", "signature": "void\nM_WriteText\n( int\t\tx,\n int\t\ty,\n char*\t\tstring)"}, {"doc": "These keys evaluate to a \"null\" key in Vanilla Doom that allows weird jumping in the menus. Preserve this behavior for accuracy.", "kind": "function", "line": 1402, "name": "IsNullKey", "signature": "static boolean IsNullKey(int key)"}, {"doc": "M_Responder", "kind": "function", "line": 1416, "name": "M_Responder", "signature": "boolean M_Responder (event_t* ev)"}, {"doc": "M_StartControlPanel", "kind": "function", "line": 1899, "name": "M_StartControlPanel", "signature": "void M_StartControlPanel (void)"}, {"doc": "if 0", "kind": "function", "line": 1913, "name": "M_DrawOPLDev", "signature": "static void M_DrawOPLDev(void)"}, {"doc": "M_Drawer Called after the view has been rendered, but before it has been blitted.", "kind": "function", "line": 1951, "name": "M_Drawer", "signature": "void M_Drawer (void)"}, {"doc": "M_ClearMenus", "kind": "function", "line": 2041, "name": "M_ClearMenus", "signature": "void M_ClearMenus (void)"}, {"doc": "M_SetupNextMenu", "kind": "function", "line": 2054, "name": "M_SetupNextMenu", "signature": "void M_SetupNextMenu(menu_t *menudef)"}, {"doc": "M_Ticker", "kind": "function", "line": 2064, "name": "M_Ticker", "signature": "void M_Ticker (void)"}, {"doc": "M_Init", "kind": "function", "line": 2077, "name": "M_Init", "signature": "void M_Init (void)"}, {"kind": "macro", "line": 119, "name": "SKULLXOFF"}, {"kind": "macro", "line": 121, "name": "LINEHEIGHT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Menu widget stuff, episode selection and such. ifndef __M_MENU__ define __M_MENU__ include \"d_event.h\" MENUS Called by main loop,", "id": "progs/doomgeneric/m_menu.h", "kind": "module", "label": "m_menu.h", "language": "h", "sha256": "9e3c8165d800d2b8", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_MENU__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Miscellaneous. include include include include include ifdef _WIN32 define WIN32_LEAN_AND_MEAN include include ", "id": "progs/doomgeneric/m_misc.c", "kind": "module", "label": "m_misc.c", "language": "c", "sha256": "191d386277cff149", "symbol_count": 22, "symbols": [{"doc": "Create a directory", "kind": "function", "line": 54, "name": "M_MakeDirectory", "signature": "void M_MakeDirectory(char *path)"}, {"doc": "Check if a file exists", "kind": "function", "line": 65, "name": "M_FileExists", "signature": "boolean M_FileExists(char *filename)"}, {"doc": "Determine the length of an open file.", "kind": "function", "line": 88, "name": "M_FileLength", "signature": "long M_FileLength(FILE *handle)"}, {"doc": "M_WriteFile", "kind": "function", "line": 110, "name": "M_WriteFile", "signature": "boolean M_WriteFile(char *name, void *source, int length)"}, {"doc": "M_ReadFile", "kind": "function", "line": 134, "name": "M_ReadFile", "signature": "int M_ReadFile(char *name, byte **buffer)"}, {"doc": "Returns the path to a temporary file of the given name, stored inside the system temporary directory. The returned value must be freed with Z_Free after use.", "kind": "function", "line": 165, "name": "M_TempFile", "signature": "char *M_TempFile(char *s)"}, {"kind": "function", "line": 188, "name": "M_StrToInt", "signature": "boolean M_StrToInt(const char *str, int *result)"}, {"kind": "function", "line": 196, "name": "M_ExtractFileBase", "signature": "void M_ExtractFileBase(char *path, char *dest)"}, {"doc": "-------------------------------------------------------------------------- PROC M_ForceUppercase Change string to uppercase. ---------------------------------------------------------------------------", "kind": "function", "line": 241, "name": "M_ForceUppercase", "signature": "void M_ForceUppercase(char *text)"}, {"doc": "M_StrCaseStr Case-insensitive version of strstr()", "kind": "function", "line": 257, "name": "M_StrCaseStr", "signature": "char *M_StrCaseStr(char *haystack, char *needle)"}, {"doc": "Safe version of strdup() that checks the string was successfully allocated.", "kind": "function", "line": 290, "name": "M_StringDuplicate", "signature": "char *M_StringDuplicate(const char *orig)"}, {"doc": "String replace function.", "kind": "function", "line": 309, "name": "M_StringReplace", "signature": "char *M_StringReplace(const char *haystack, const char *needle,\n const char ..."}, {"doc": "Safe string copy function that works like OpenBSD's strlcpy(). Returns true if the string was not truncated.", "kind": "function", "line": 371, "name": "M_StringCopy", "signature": "boolean M_StringCopy(char *dest, const char *src, size_t dest_size)"}, {"doc": "Safe string concat function that works like OpenBSD's strlcat(). Returns true if string not truncated.", "kind": "function", "line": 392, "name": "M_StringConcat", "signature": "boolean M_StringConcat(char *dest, const char *src, size_t dest_size)"}, {"doc": "Returns true if 's' begins with the specified prefix.", "kind": "function", "line": 407, "name": "M_StringStartsWith", "signature": "boolean M_StringStartsWith(const char *s, const char *prefix)"}, {"doc": "Returns true if 's' ends with the specified suffix.", "kind": "function", "line": 415, "name": "M_StringEndsWith", "signature": "boolean M_StringEndsWith(const char *s, const char *suffix)"}, {"doc": "Return a newly-malloced string with all the strings given as arguments concatenated together.", "kind": "function", "line": 424, "name": "M_StringJoin", "signature": "char *M_StringJoin(const char *s, ...)"}, {"doc": "Safe, portable vsnprintf().", "kind": "function", "line": 481, "name": "M_vsnprintf", "signature": "int M_vsnprintf(char *buf, size_t buf_len, const char *s, va_list args)"}, {"doc": "Safe, portable snprintf().", "kind": "function", "line": 507, "name": "M_snprintf", "signature": "int M_snprintf(char *buf, size_t buf_len, const char *s, ...)"}, {"doc": "ifdef _WIN32", "kind": "function", "line": 518, "name": "M_OEMToUTF8", "signature": "char *M_OEMToUTF8(const char *oem)"}, {"kind": "macro", "line": 28, "name": "WIN32_LEAN_AND_MEAN"}, {"kind": "macro", "line": 476, "name": "vsnprintf"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Miscellaneous. ifndef __M_MISC__ define __M_MISC__ include include include \"doomtype.h\"", "id": "progs/doomgeneric/m_misc.h", "kind": "module", "label": "m_misc.h", "language": "h", "sha256": "4677efcb264cd30e", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_MISC__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Random number LUT. M_Random Returns a 0-255 number", "id": "progs/doomgeneric/m_random.c", "kind": "module", "label": "m_random.c", "language": "c", "sha256": "ba1abbfc0fdd9741", "symbol_count": 3, "symbols": [{"doc": "Which one is deterministic?", "kind": "function", "line": 50, "name": "P_Random", "signature": "int P_Random (void)"}, {"kind": "function", "line": 55, "name": "M_Random", "signature": "int M_Random (void)"}, {"kind": "function", "line": 61, "name": "M_ClearRandom", "signature": "void M_ClearRandom (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __M_RANDOM__ define __M_RANDOM__ include \"doomtype.h\" Returns a number from 0 to 255, from a lookup table.", "id": "progs/doomgeneric/m_random.h", "kind": "module", "label": "m_random.h", "language": "h", "sha256": "a9939585aebe4801", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_RANDOM__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Emulates the IO functions in C stdio.h reading and writing to memory. include include include include \"memio.h\" include \"z_zone.h\"", "id": "progs/doomgeneric/memio.c", "kind": "module", "label": "memio.c", "language": "c", "sha256": "c636b1fe0e71a6d2", "symbol_count": 9, "symbols": [{"kind": "struct", "line": 32, "name": "_MEMFILE"}, {"doc": "Open a memory area for reading", "kind": "function", "line": 41, "name": "mem_fopen_read", "signature": "MEMFILE *mem_fopen_read(void *buf, size_t buflen)"}, {"doc": "Read bytes", "kind": "function", "line": 57, "name": "mem_fread", "signature": "size_t mem_fread(void *buf, size_t size, size_t nmemb, MEMFILE *stream)"}, {"doc": "Open a memory area for writing", "kind": "function", "line": 89, "name": "mem_fopen_write", "signature": "MEMFILE *mem_fopen_write(void)"}, {"doc": "Write bytes to stream", "kind": "function", "line": 106, "name": "mem_fwrite", "signature": "size_t mem_fwrite(const void *ptr, size_t size, size_t nmemb, MEMFILE *stream)"}, {"kind": "function", "line": 142, "name": "mem_get_buf", "signature": "void mem_get_buf(MEMFILE *stream, void **buf, size_t *buflen)"}, {"kind": "function", "line": 148, "name": "mem_fclose", "signature": "void mem_fclose(MEMFILE *stream)"}, {"kind": "function", "line": 158, "name": "mem_ftell", "signature": "long mem_ftell(MEMFILE *stream)"}, {"kind": "function", "line": 163, "name": "mem_fseek", "signature": "int mem_fseek(MEMFILE *stream, signed long position, mem_rel_t whence)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ifndef MEMIO_H define MEMIO_H", "id": "progs/doomgeneric/memio.h", "kind": "module", "label": "memio.h", "language": "h", "sha256": "b8888276fc15ec65", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 17, "name": "MEMIO_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Network client code ifndef NET_CLIENT_H define NET_CLIENT_H include \"doomtype.h\" include \"d_ticcmd.h\" include \"sha1.h\" include \"net_defs.h\"", "id": "progs/doomgeneric/net_client.h", "kind": "module", "label": "net_client.h", "language": "h", "sha256": "27e20191f1ccb74b", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 18, "name": "NET_CLIENT_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Dedicated server code. ifndef NET_DEDICATED_H define NET_DEDICATED_H", "id": "progs/doomgeneric/net_dedicated.h", "kind": "module", "label": "net_dedicated.h", "language": "h", "sha256": "5a558a5c1d54f3fb", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_DEDICATED_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Definitions for use in networking code. ifndef NET_DEFS_H define NET_DEFS_H include include \"doomtype.h\" include \"d_ticcmd.h\" include \"sha1.h\" Absolute maximum number of \"nodes\" in the game. This is different to NET_MAXPLAYERS, as there may be observers that are not participating (eg. left/right monitors)", "id": "progs/doomgeneric/net_defs.h", "kind": "module", "label": "net_defs.h", "language": "h", "sha256": "cb25e150a43ad214", "symbol_count": 18, "symbols": [{"kind": "struct", "line": 52, "name": "_net_packet_s"}, {"kind": "struct", "line": 60, "name": "_net_module_s"}, {"kind": "struct", "line": 95, "name": "_net_addr_s"}, {"kind": "macro", "line": 19, "name": "NET_DEFS_H"}, {"kind": "macro", "line": 30, "name": "MAXNETNODES"}, {"kind": "macro", "line": 36, "name": "NET_MAXPLAYERS"}, {"kind": "macro", "line": 40, "name": "MAXPLAYERNAME"}, {"kind": "macro", "line": 44, "name": "BACKUPTICS"}, {"kind": "macro", "line": 102, "name": "NET_MAGIC_NUMBER"}, {"kind": "macro", "line": 106, "name": "NET_RELIABLE_PACKET"}, {"kind": "macro", "line": 192, "name": "NET_TICDIFF_FORWARD"}, {"kind": "macro", "line": 194, "name": "NET_TICDIFF_SIDE"}, {"kind": "macro", "line": 195, "name": "NET_TICDIFF_TURN"}, {"kind": "macro", "line": 196, "name": "NET_TICDIFF_BUTTONS"}, {"kind": "macro", "line": 197, "name": "NET_TICDIFF_CONSISTANCY"}, {"kind": "macro", "line": 198, "name": "NET_TICDIFF_CHATCHAR"}, {"kind": "macro", "line": 199, "name": "NET_TICDIFF_RAVEN"}, {"kind": "macro", "line": 200, "name": "NET_TICDIFF_STRIFE"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Graphical stuff related to the networking code: * The client waiting screen when we are waiting for the server to start the game. ifndef NET_GUI_H define NET_GUI_H include \"doomtype.h\"", "id": "progs/doomgeneric/net_gui.h", "kind": "module", "label": "net_gui.h", "language": "h", "sha256": "ffc4b6f9ea539db8", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "NET_GUI_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Network packet manipulation (net_packet_t) ifndef NET_IO_H define NET_IO_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_io.h", "kind": "module", "label": "net_io.h", "language": "h", "sha256": "a6d0bf5178dc2aeb", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_IO_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Loopback network module for server compiled into the client ifndef NET_LOOP_H define NET_LOOP_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_loop.h", "kind": "module", "label": "net_loop.h", "language": "h", "sha256": "cd4d1e5e3641f016", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_LOOP_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Definitions for use in networking code. ifndef NET_PACKET_H define NET_PACKET_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_packet.h", "kind": "module", "label": "net_packet.h", "language": "h", "sha256": "7d99b7501afc4689", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_PACKET_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Querying servers to find their current status. ifndef NET_QUERY_H define NET_QUERY_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_query.h", "kind": "module", "label": "net_query.h", "language": "h", "sha256": "d3a25a19cd32385c", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_QUERY_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Networking module which uses SDL_net ifndef NET_SDL_H define NET_SDL_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_sdl.h", "kind": "module", "label": "net_sdl.h", "language": "h", "sha256": "b62e2209e55a51ce", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_SDL_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Network server code ifndef NET_SERVER_H define NET_SERVER_H initialize server and wait for connections", "id": "progs/doomgeneric/net_server.h", "kind": "module", "label": "net_server.h", "language": "h", "sha256": "f0fe89016f8f55e6", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 18, "name": "NET_SERVER_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Ceiling aninmation (lowering, crushing, raising) include \"z_zone.h\" include \"doomdef.h\" include \"p_local.h\" include \"s_sound.h\" State. include \"doomstat.h\" include \"r_state.h\" Data.", "id": "progs/doomgeneric/p_ceilng.c", "kind": "module", "label": "p_ceilng.c", "language": "c", "sha256": "214060a2a6ab4183", "symbol_count": 6, "symbols": [{"doc": "T_MoveCeiling", "kind": "function", "line": 44, "name": "T_MoveCeiling", "signature": "void T_MoveCeiling (ceiling_t* ceiling)"}, {"doc": "EV_DoCeiling Move a ceiling up/down and all around!", "kind": "function", "line": 160, "name": "EV_DoCeiling", "signature": "int\nEV_DoCeiling\n( line_t*\tline,\n ceiling_e\ttype )"}, {"doc": "Add an active ceiling", "kind": "function", "line": 240, "name": "P_AddActiveCeiling", "signature": "void P_AddActiveCeiling(ceiling_t* c)"}, {"doc": "Remove a ceiling's thinker", "kind": "function", "line": 259, "name": "P_RemoveActiveCeiling", "signature": "void P_RemoveActiveCeiling(ceiling_t* c)"}, {"doc": "Restart a ceiling that's in-stasis", "kind": "function", "line": 280, "name": "P_ActivateInStasisCeiling", "signature": "void P_ActivateInStasisCeiling(line_t* line)"}, {"doc": "EV_CeilingCrushStop Stop a ceiling from crushing!", "kind": "function", "line": 303, "name": "EV_CeilingCrushStop", "signature": "int\tEV_CeilingCrushStop(line_t\t*line)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Door animation code (opening/closing) include \"z_zone.h\" include \"doomdef.h\" include \"deh_main.h\" include \"p_local.h\" include \"s_sound.h\" State. include \"doomstat.h\" include \"r_state.h\"", "id": "progs/doomgeneric/p_doors.c", "kind": "module", "label": "p_doors.c", "language": "c", "sha256": "fe351b5a5416bb4a", "symbol_count": 10, "symbols": [{"doc": "T_VerticalDoor", "kind": "function", "line": 57, "name": "T_VerticalDoor", "signature": "void T_VerticalDoor (vldoor_t* door)"}, {"doc": "EV_DoLockedDoor Move a locked door up/down", "kind": "function", "line": 193, "name": "EV_DoLockedDoor", "signature": "int\nEV_DoLockedDoor\n( line_t*\tline,\n vldoor_e\ttype,\n mobj_t*\tthing )"}, {"kind": "function", "line": 249, "name": "EV_DoDoor", "signature": "int\nEV_DoDoor\n( line_t*\tline,\n vldoor_e\ttype )"}, {"doc": "EV_VerticalDoor : open a door manually, no tag value", "kind": "function", "line": 336, "name": "EV_VerticalDoor", "signature": "void\nEV_VerticalDoor\n( line_t*\tline,\n mobj_t*\tthing )"}, {"doc": "Spawn a door that closes after 30 seconds", "kind": "function", "line": 519, "name": "P_SpawnDoorCloseIn30", "signature": "void P_SpawnDoorCloseIn30 (sector_t* sec)"}, {"doc": "Spawn a door that opens after 5 minutes", "kind": "function", "line": 541, "name": "P_SpawnDoorRaiseIn5Mins", "signature": "void\nP_SpawnDoorRaiseIn5Mins\n( sector_t*\tsec,\n int\t\tsecnum )"}, {"kind": "function", "line": 579, "name": "P_InitSlidingDoorFrames", "signature": "void P_InitSlidingDoorFrames(void)"}, {"doc": "Return index into \"slideFrames\" array for which door type to use", "kind": "function", "line": 624, "name": "P_FindSlidingDoorType", "signature": "int P_FindSlidingDoorType(line_t*\tline)"}, {"kind": "function", "line": 638, "name": "T_SlidingDoor", "signature": "void T_SlidingDoor (slidedoor_t*\tdoor)"}, {"kind": "function", "line": 723, "name": "EV_SlidingDoor", "signature": "void\nEV_SlidingDoor\n( line_t*\tline,\n mobj_t*\tthing )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Enemy thinking, AI. Action Pointer Functions that are associated with states/frames. include include include \"m_random.h\" include \"i_system.h\" include \"doomdef.h\" include \"p_local.h\" include \"s_sound.h\"", "id": "progs/doomgeneric/p_enemy.c", "kind": "module", "label": "p_enemy.c", "language": "c", "sha256": "9daa4e08b3041a36", "symbol_count": 67, "symbols": [{"kind": "function", "line": 97, "name": "P_RecursiveSound", "signature": "void\nP_RecursiveSound\n( sector_t*\tsec,\n int\t\tsoundblocks )"}, {"doc": "P_NoiseAlert If a monster yells at a player, it will alert other monsters to the player.", "kind": "function", "line": 151, "name": "P_NoiseAlert", "signature": "void\nP_NoiseAlert\n( mobj_t*\ttarget,\n mobj_t*\temmiter )"}, {"doc": "P_CheckMeleeRange", "kind": "function", "line": 167, "name": "P_CheckMeleeRange", "signature": "boolean P_CheckMeleeRange (mobj_t*\tactor)"}, {"doc": "P_CheckMissileRange", "kind": "function", "line": 190, "name": "P_CheckMissileRange", "signature": "boolean P_CheckMissileRange (mobj_t* actor)"}, {"kind": "function", "line": 259, "name": "P_Move", "signature": "boolean P_Move (mobj_t*\tactor)"}, {"doc": "TryWalk Attempts to move actor on in its current (ob->moveangle) direction. If blocked by either a wall or an actor returns FALSE If move is either clear or blocked only by a door, returns TRUE and sets... If a door is in the way, an OpenDoor call is made to start it opening.", "kind": "function", "line": 337, "name": "P_TryWalk", "signature": "boolean P_TryWalk (mobj_t* actor)"}, {"kind": "function", "line": 347, "name": "P_NewChaseDir", "signature": "void P_NewChaseDir (mobj_t*\tactor)"}, {"doc": "P_LookForPlayers If allaround is false, only look 180 degrees in front. Returns true if a player is targeted.", "kind": "function", "line": 486, "name": "P_LookForPlayers", "signature": "boolean\nP_LookForPlayers\n( mobj_t*\tactor,\n boolean\tallaround )"}, {"doc": "A_KeenDie DOOM II special, map 32. Uses special tag 666.", "kind": "function", "line": 551, "name": "A_KeenDie", "signature": "void A_KeenDie (mobj_t* mo)"}, {"doc": "A_Look Stay in state until a player is sighted.", "kind": "function", "line": 589, "name": "A_Look", "signature": "void A_Look (mobj_t* actor)"}, {"doc": "A_Chase Actor has a melee attack, so it tries to close as fast as possible", "kind": "function", "line": 657, "name": "A_Chase", "signature": "void A_Chase (mobj_t*\tactor)"}, {"doc": "A_FaceTarget", "kind": "function", "line": 767, "name": "A_FaceTarget", "signature": "void A_FaceTarget (mobj_t* actor)"}, {"doc": "A_PosAttack", "kind": "function", "line": 787, "name": "A_PosAttack", "signature": "void A_PosAttack (mobj_t* actor)"}, {"kind": "function", "line": 805, "name": "A_SPosAttack", "signature": "void A_SPosAttack (mobj_t* actor)"}, {"kind": "function", "line": 829, "name": "A_CPosAttack", "signature": "void A_CPosAttack (mobj_t* actor)"}, {"kind": "function", "line": 849, "name": "A_CPosRefire", "signature": "void A_CPosRefire (mobj_t* actor)"}, {"kind": "function", "line": 865, "name": "A_SpidRefire", "signature": "void A_SpidRefire (mobj_t* actor)"}, {"kind": "function", "line": 882, "name": "A_BspiAttack", "signature": "void A_BspiAttack (mobj_t *actor)"}, {"doc": "A_TroopAttack", "kind": "function", "line": 898, "name": "A_TroopAttack", "signature": "void A_TroopAttack (mobj_t* actor)"}, {"kind": "function", "line": 918, "name": "A_SargAttack", "signature": "void A_SargAttack (mobj_t* actor)"}, {"kind": "function", "line": 934, "name": "A_HeadAttack", "signature": "void A_HeadAttack (mobj_t* actor)"}, {"kind": "function", "line": 953, "name": "A_CyberAttack", "signature": "void A_CyberAttack (mobj_t* actor)"}, {"kind": "function", "line": 962, "name": "A_BruisAttack", "signature": "void A_BruisAttack (mobj_t* actor)"}, {"doc": "A_SkelMissile", "kind": "function", "line": 987, "name": "A_SkelMissile", "signature": "void A_SkelMissile (mobj_t* actor)"}, {"kind": "function", "line": 1005, "name": "A_Tracer", "signature": "void A_Tracer (mobj_t* actor)"}, {"kind": "function", "line": 1076, "name": "A_SkelWhoosh", "signature": "void A_SkelWhoosh (mobj_t*\tactor)"}, {"kind": "function", "line": 1085, "name": "A_SkelFist", "signature": "void A_SkelFist (mobj_t*\tactor)"}, {"kind": "function", "line": 1113, "name": "PIT_VileCheck", "signature": "boolean PIT_VileCheck (mobj_t*\tthing)"}, {"doc": "A_VileChase Check for ressurecting a body", "kind": "function", "line": 1152, "name": "A_VileChase", "signature": "void A_VileChase (mobj_t* actor)"}, {"doc": "A_VileStart", "kind": "function", "line": 1218, "name": "A_VileStart", "signature": "void A_VileStart (mobj_t* actor)"}, {"kind": "function", "line": 1229, "name": "A_StartFire", "signature": "void A_StartFire (mobj_t* actor)"}, {"kind": "function", "line": 1235, "name": "A_FireCrackle", "signature": "void A_FireCrackle (mobj_t* actor)"}, {"kind": "function", "line": 1241, "name": "A_Fire", "signature": "void A_Fire (mobj_t* actor)"}, {"doc": "A_VileTarget Spawn the hellfire", "kind": "function", "line": 1273, "name": "A_VileTarget", "signature": "void A_VileTarget (mobj_t*\tactor)"}, {"doc": "A_VileAttack", "kind": "function", "line": 1298, "name": "A_VileAttack", "signature": "void A_VileAttack (mobj_t* actor)"}, {"doc": "Mancubus attack, firing three missiles (bruisers) in three different directions? Doesn't look like it. define\tFATSPREAD\t(ANG90/8)", "kind": "function", "line": 1338, "name": "A_FatRaise", "signature": "void A_FatRaise (mobj_t *actor)"}, {"kind": "function", "line": 1344, "name": "A_FatAttack1", "signature": "void A_FatAttack1 (mobj_t* actor)"}, {"kind": "function", "line": 1365, "name": "A_FatAttack2", "signature": "void A_FatAttack2 (mobj_t* actor)"}, {"kind": "function", "line": 1384, "name": "A_FatAttack3", "signature": "void A_FatAttack3 (mobj_t*\tactor)"}, {"doc": "SkullAttack Fly at the player like a missile. define\tSKULLSPEED\t\t(20*FRACUNIT)", "kind": "function", "line": 1414, "name": "A_SkullAttack", "signature": "void A_SkullAttack (mobj_t* actor)"}, {"doc": "A_PainShootSkull Spawn a lost soul and launch it at the target", "kind": "function", "line": 1445, "name": "A_PainShootSkull", "signature": "void\nA_PainShootSkull\n( mobj_t*\tactor,\n angle_t\tangle )"}, {"doc": "A_PainAttack Spawn a lost soul and launch it at the target", "kind": "function", "line": 1508, "name": "A_PainAttack", "signature": "void A_PainAttack (mobj_t* actor)"}, {"kind": "function", "line": 1516, "name": "A_PainDie", "signature": "void A_PainDie (mobj_t* actor)"}, {"kind": "function", "line": 1525, "name": "A_Scream", "signature": "void A_Scream (mobj_t* actor)"}, {"kind": "function", "line": 1566, "name": "A_XScream", "signature": "void A_XScream (mobj_t* actor)"}, {"kind": "function", "line": 1572, "name": "A_Pain", "signature": "void A_Pain (mobj_t* actor)"}, {"kind": "function", "line": 1578, "name": "A_Fall", "signature": "void A_Fall (mobj_t *actor)"}, {"doc": "A_Explode", "kind": "function", "line": 1594, "name": "A_Explode", "signature": "void A_Explode (mobj_t* thingy)"}, {"doc": "Check whether the death of the specified monster type is allowed to trigger the end of episode special action. This behavior changed in v1.9, the most notable effect of which was to break uac_dead.wad", "kind": "function", "line": 1604, "name": "CheckBossEnd", "signature": "static boolean CheckBossEnd(mobjtype_t motype)"}, {"doc": "A_BossDeath Possibly trigger special effects if on first boss level", "kind": "function", "line": 1656, "name": "A_BossDeath", "signature": "void A_BossDeath (mobj_t* mo)"}, {"kind": "function", "line": 1755, "name": "A_Hoof", "signature": "void A_Hoof (mobj_t* mo)"}, {"kind": "function", "line": 1762, "name": "A_Metal", "signature": "void A_Metal (mobj_t* mo)"}, {"kind": "function", "line": 1768, "name": "A_BabyMetal", "signature": "void A_BabyMetal (mobj_t* mo)"}, {"kind": "function", "line": 1774, "name": "A_OpenShotgun2", "signature": "void\nA_OpenShotgun2\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 1782, "name": "A_LoadShotgun2", "signature": "void\nA_LoadShotgun2\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 1795, "name": "A_CloseShotgun2", "signature": "void\nA_CloseShotgun2\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 1810, "name": "A_BrainAwake", "signature": "void A_BrainAwake (mobj_t* mo)"}, {"kind": "function", "line": 1839, "name": "A_BrainPain", "signature": "void A_BrainPain (mobj_t*\tmo)"}, {"kind": "function", "line": 1845, "name": "A_BrainScream", "signature": "void A_BrainScream (mobj_t*\tmo)"}, {"kind": "function", "line": 1870, "name": "A_BrainExplode", "signature": "void A_BrainExplode (mobj_t* mo)"}, {"kind": "function", "line": 1892, "name": "A_BrainDie", "signature": "void A_BrainDie (mobj_t*\tmo)"}, {"kind": "function", "line": 1898, "name": "A_BrainSpit", "signature": "void A_BrainSpit (mobj_t*\tmo)"}, {"doc": "travelling cube sound", "kind": "function", "line": 1928, "name": "A_SpawnSound", "signature": "void A_SpawnSound (mobj_t* mo)"}, {"kind": "function", "line": 1933, "name": "A_SpawnFly", "signature": "void A_SpawnFly (mobj_t* mo)"}, {"kind": "function", "line": 1989, "name": "A_PlayerScream", "signature": "void A_PlayerScream (mobj_t* mo)"}, {"kind": "macro", "line": 1337, "name": "FATSPREAD"}, {"kind": "macro", "line": 1413, "name": "SKULLSPEED"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Floor animation: raising stairs. include \"z_zone.h\" include \"doomdef.h\" include \"p_local.h\" include \"s_sound.h\" State. include \"doomstat.h\" include \"r_state.h\" Data.", "id": "progs/doomgeneric/p_floor.c", "kind": "module", "label": "p_floor.c", "language": "c", "sha256": "9479d97234dbe823", "symbol_count": 4, "symbols": [{"doc": "Move a plane (floor or ceiling) and check for crushing", "kind": "function", "line": 41, "name": "T_MovePlane", "signature": "result_e\nT_MovePlane\n( sector_t*\tsector,\n fixed_t\tspeed,\n fixed_t\tdest,\n boolean\tcrush,\n int\t..."}, {"doc": "MOVE A FLOOR TO IT'S DESTINATION (UP OR DOWN)", "kind": "function", "line": 202, "name": "T_MoveFloor", "signature": "void T_MoveFloor(floormove_t* floor)"}, {"doc": "HANDLE FLOOR TYPES", "kind": "function", "line": 250, "name": "EV_DoFloor", "signature": "int\nEV_DoFloor\n( line_t*\tline,\n floor_e\tfloortype )"}, {"doc": "BUILD A STAIRCASE!", "kind": "function", "line": 443, "name": "EV_BuildStairs", "signature": "int\nEV_BuildStairs\n( line_t*\tline,\n stair_e\ttype )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Handling interactions (i.e., collisions). Data. include \"doomdef.h\" include \"dstrings.h\" include \"sounds.h\" include \"deh_main.h\" include \"deh_misc.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/p_inter.c", "kind": "module", "label": "p_inter.c", "language": "c", "sha256": "533d0b7b7920dcdb", "symbol_count": 10, "symbols": [{"doc": "P_GiveAmmo Num is the number of clip loads, not the individual count (0= 1/2 clip). Returns false if the ammo can't be picked up at all", "kind": "function", "line": 64, "name": "P_GiveAmmo", "signature": "boolean\nP_GiveAmmo\n( player_t*\tplayer,\n ammotype_t\tammo,\n int\t\tnum )"}, {"doc": "P_GiveWeapon The weapon name may have a MF_DROPPED flag ored in.", "kind": "function", "line": 159, "name": "P_GiveWeapon", "signature": "boolean\nP_GiveWeapon\n( player_t*\tplayer,\n weapontype_t\tweapon,\n boolean\tdropped )"}, {"doc": "P_GiveBody Returns false if the body isn't needed at all", "kind": "function", "line": 222, "name": "P_GiveBody", "signature": "boolean\nP_GiveBody\n( player_t*\tplayer,\n int\t\tnum )"}, {"doc": "P_GiveArmor Returns false if the armor is worse than the current armor.", "kind": "function", "line": 245, "name": "P_GiveArmor", "signature": "boolean\nP_GiveArmor\n( player_t*\tplayer,\n int\t\tarmortype )"}, {"doc": "P_GiveCard", "kind": "function", "line": 267, "name": "P_GiveCard", "signature": "void\nP_GiveCard\n( player_t*\tplayer,\n card_t\tcard )"}, {"doc": "P_GivePower", "kind": "function", "line": 283, "name": "P_GivePower", "signature": "boolean\nP_GivePower\n( player_t*\tplayer,\n int /*powertype_t*/\tpower )"}, {"doc": "P_TouchSpecialThing", "kind": "function", "line": 332, "name": "P_TouchSpecialThing", "signature": "void\nP_TouchSpecialThing\n( mobj_t*\tspecial,\n mobj_t*\ttoucher )"}, {"doc": "KillMobj", "kind": "function", "line": 665, "name": "P_KillMobj", "signature": "void\nP_KillMobj\n( mobj_t*\tsource,\n mobj_t*\ttarget )"}, {"doc": "P_DamageMobj Damages both enemies and players \"inflictor\" is the thing that caused the damage creature or missile, can be NULL (slime, etc) \"source\" is the thing to target after taking damage creature or NULL Source and inflictor are the same for melee attacks. Source can be NULL for slime, barrel explosions and other environmental stuff.", "kind": "function", "line": 778, "name": "P_DamageMobj", "signature": "void\nP_DamageMobj\n( mobj_t*\ttarget,\n mobj_t*\tinflictor,\n mobj_t*\tsource,\n int \t\tdamage )"}, {"kind": "macro", "line": 41, "name": "BONUSADD"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __P_INTER__ define __P_INTER__", "id": "progs/doomgeneric/p_inter.h", "kind": "module", "label": "p_inter.h", "language": "h", "sha256": "eb9b7042a9dff119", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__P_INTER__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Handle Sector base lighting effects. Muzzle flash? include \"z_zone.h\" include \"m_random.h\" include \"doomdef.h\" include \"p_local.h\" State. include \"r_state.h\"", "id": "progs/doomgeneric/p_lights.c", "kind": "module", "label": "p_lights.c", "language": "c", "sha256": "571047c11df6a8e1", "symbol_count": 11, "symbols": [{"doc": "T_FireFlicker", "kind": "function", "line": 39, "name": "T_FireFlicker", "signature": "void T_FireFlicker (fireflicker_t* flick)"}, {"doc": "P_SpawnFireFlicker", "kind": "function", "line": 61, "name": "P_SpawnFireFlicker", "signature": "void P_SpawnFireFlicker (sector_t*\tsector)"}, {"doc": "T_LightFlash Do flashing lights.", "kind": "function", "line": 91, "name": "T_LightFlash", "signature": "void T_LightFlash (lightflash_t* flash)"}, {"doc": "P_SpawnLightFlash After the map has been loaded, scan each sector for specials that spawn thinkers", "kind": "function", "line": 117, "name": "P_SpawnLightFlash", "signature": "void P_SpawnLightFlash (sector_t*\tsector)"}, {"doc": "T_StrobeFlash", "kind": "function", "line": 148, "name": "T_StrobeFlash", "signature": "void T_StrobeFlash (strobe_t*\t\tflash)"}, {"doc": "P_SpawnStrobeFlash After the map has been loaded, scan each sector for specials that spawn thinkers", "kind": "function", "line": 173, "name": "P_SpawnStrobeFlash", "signature": "void\nP_SpawnStrobeFlash\n( sector_t*\tsector,\n int\t\tfastOrSlow,\n int\t\tinSync )"}, {"doc": "Start strobing lights (usually from a trigger)", "kind": "function", "line": 208, "name": "EV_StartLightStrobing", "signature": "void EV_StartLightStrobing(line_t*\tline)"}, {"doc": "TURN LINE'S TAG LIGHTS OFF", "kind": "function", "line": 229, "name": "EV_TurnTagLightsOff", "signature": "void EV_TurnTagLightsOff(line_t* line)"}, {"doc": "TURN LINE'S TAG LIGHTS ON", "kind": "function", "line": 263, "name": "EV_LightTurnOn", "signature": "void\nEV_LightTurnOn\n( line_t*\tline,\n int\t\tbright )"}, {"doc": "Spawn glowing light", "kind": "function", "line": 306, "name": "T_Glow", "signature": "void T_Glow(glow_t*\tg)"}, {"kind": "function", "line": 332, "name": "P_SpawnGlowingLight", "signature": "void P_SpawnGlowingLight(sector_t*\tsector)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Play functions, animation, global header. ifndef __P_LOCAL__ define __P_LOCAL__ ifndef __R_LOCAL__ include \"r_local.h\" endif define FLOATSPEED\t\t(FRACUNIT*4) define MAXHEALTH\t\t100", "id": "progs/doomgeneric/p_local.h", "kind": "module", "label": "p_local.h", "language": "h", "sha256": "e0547230dfa5ae83", "symbol_count": 27, "symbols": [{"kind": "macro", "line": 21, "name": "__P_LOCAL__"}, {"kind": "macro", "line": 26, "name": "FLOATSPEED"}, {"kind": "macro", "line": 28, "name": "MAXHEALTH"}, {"kind": "macro", "line": 31, "name": "VIEWHEIGHT"}, {"kind": "macro", "line": 35, "name": "MAPBLOCKUNITS"}, {"kind": "macro", "line": 36, "name": "MAPBLOCKSIZE"}, {"kind": "macro", "line": 37, "name": "MAPBLOCKSHIFT"}, {"kind": "macro", "line": 38, "name": "MAPBMASK"}, {"kind": "macro", "line": 39, "name": "MAPBTOFRAC"}, {"kind": "macro", "line": 43, "name": "PLAYERRADIUS"}, {"kind": "macro", "line": 48, "name": "MAXRADIUS"}, {"kind": "macro", "line": 49, "name": "GRAVITY"}, {"kind": "macro", "line": 51, "name": "MAXMOVE"}, {"kind": "macro", "line": 52, "name": "USERANGE"}, {"kind": "macro", "line": 54, "name": "MELEERANGE"}, {"kind": "macro", "line": 55, "name": "MISSILERANGE"}, {"kind": "macro", "line": 58, "name": "BASETHRESHOLD"}, {"kind": "macro", "line": 92, "name": "ONFLOORZ"}, {"kind": "macro", "line": 93, "name": "ONCEILINGZ"}, {"kind": "macro", "line": 96, "name": "ITEMQUESIZE"}, {"kind": "macro", "line": 153, "name": "MAXINTERCEPTS_ORIGINAL"}, {"kind": "macro", "line": 155, "name": "MAXINTERCEPTS"}, {"kind": "macro", "line": 178, "name": "PT_ADDLINES"}, {"kind": "macro", "line": 180, "name": "PT_ADDTHINGS"}, {"kind": "macro", "line": 181, "name": "PT_EARLYOUT"}, {"kind": "macro", "line": 218, "name": "MAXSPECIALCROSS"}, {"kind": "macro", "line": 220, "name": "MAXSPECIALCROSS_ORIGINAL"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard, Andrey Budko This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Movement, collision handling. Shooting and aiming. include include include \"deh_misc.h\" include \"m_bbox.h\" include \"m_random.h\" include \"i_system.h\" include \"doomdef.h\" include \"m_argv.h\"", "id": "progs/doomgeneric/p_map.c", "kind": "module", "label": "p_map.c", "language": "c", "sha256": "0367b1112e0c4aff", "symbol_count": 22, "symbols": [{"doc": "PIT_StompThing", "kind": "function", "line": 97, "name": "PIT_StompThing", "signature": "boolean PIT_StompThing (mobj_t* thing)"}, {"doc": "P_TeleportMove", "kind": "function", "line": 130, "name": "P_TeleportMove", "signature": "boolean\nP_TeleportMove\n( mobj_t*\tthing,\n fixed_t\tx,\n fixed_t\ty )"}, {"doc": "PIT_CheckLine Adjusts tmfloorz and tmceilingz as lines are contacted", "kind": "function", "line": 206, "name": "PIT_CheckLine", "signature": "boolean PIT_CheckLine (line_t* ld)"}, {"doc": "PIT_CheckThing", "kind": "function", "line": 275, "name": "PIT_CheckThing", "signature": "boolean PIT_CheckThing (mobj_t* thing)"}, {"doc": "during: special things are touched if MF_PICKUP early out on solid lines? out: newsubsec floorz ceilingz tmdropoffz the lowest point contacted (monsters won't move to a dropoff) speciallines[] numspeciallines", "kind": "function", "line": 401, "name": "P_CheckPosition", "signature": "boolean\nP_CheckPosition\n( mobj_t*\tthing,\n fixed_t\tx,\n fixed_t\ty )"}, {"doc": "P_TryMove Attempt to move to a new position, crossing special lines unless MF_TELEPORT is set.", "kind": "function", "line": 477, "name": "P_TryMove", "signature": "boolean\nP_TryMove\n( mobj_t*\tthing,\n fixed_t\tx,\n fixed_t\ty )"}, {"doc": "P_ThingHeightClip Takes a valid thing and adjusts the thing->floorz, thing->ceilingz, and possibly thing->z. This is called for all nearby monsters whenever a sector changes height. If the thing doesn't fit, the z will be set to the lowest value and false will be returned.", "kind": "function", "line": 557, "name": "P_ThingHeightClip", "signature": "boolean P_ThingHeightClip (mobj_t* thing)"}, {"doc": "P_HitSlideLine Adjusts the xmove / ymove so that the next move will slide along the wall.", "kind": "function", "line": 611, "name": "P_HitSlideLine", "signature": "void P_HitSlideLine (line_t* ld)"}, {"doc": "PTR_SlideTraverse", "kind": "function", "line": 663, "name": "PTR_SlideTraverse", "signature": "boolean PTR_SlideTraverse (intercept_t* in)"}, {"doc": "P_SlideMove The momx / momy move is bad, so try to slide along a wall. Find the first line hit, move flush to it, and slide along it This is a kludgy mess.", "kind": "function", "line": 722, "name": "P_SlideMove", "signature": "void P_SlideMove (mobj_t* mo)"}, {"doc": "PTR_AimTraverse Sets linetaget and aimslope when a target is aimed at.", "kind": "function", "line": 842, "name": "PTR_AimTraverse", "signature": "boolean\nPTR_AimTraverse (intercept_t* in)"}, {"doc": "PTR_ShootTraverse", "kind": "function", "line": 928, "name": "PTR_ShootTraverse", "signature": "boolean PTR_ShootTraverse (intercept_t* in)"}, {"doc": "P_AimLineAttack", "kind": "function", "line": 1067, "name": "P_AimLineAttack", "signature": "fixed_t\nP_AimLineAttack\n( mobj_t*\tt1,\n angle_t\tangle,\n fixed_t\tdistance )"}, {"doc": "P_LineAttack If damage == 0, it is just a test trace that will leave linetarget set.", "kind": "function", "line": 1109, "name": "P_LineAttack", "signature": "void\nP_LineAttack\n( mobj_t*\tt1,\n angle_t\tangle,\n fixed_t\tdistance,\n fixed_t\tslope,\n int\t\tdama..."}, {"kind": "function", "line": 1141, "name": "PTR_UseTraverse", "signature": "boolean\tPTR_UseTraverse (intercept_t* in)"}, {"doc": "P_UseLines Looks for special lines in front of the player to activate.", "kind": "function", "line": 1177, "name": "P_UseLines", "signature": "void P_UseLines (player_t*\tplayer)"}, {"doc": "PIT_RadiusAttack \"bombsource\" is the creature that caused the explosion at \"bombspot\".", "kind": "function", "line": 1211, "name": "PIT_RadiusAttack", "signature": "boolean PIT_RadiusAttack (mobj_t* thing)"}, {"doc": "P_RadiusAttack Source is the creature that caused the explosion at spot.", "kind": "function", "line": 1252, "name": "P_RadiusAttack", "signature": "void\nP_RadiusAttack\n( mobj_t*\tspot,\n mobj_t*\tsource,\n int\t\tdamage )"}, {"doc": "PIT_ChangeSector", "kind": "function", "line": 1304, "name": "PIT_ChangeSector", "signature": "boolean PIT_ChangeSector (mobj_t*\tthing)"}, {"doc": "P_ChangeSector", "kind": "function", "line": 1367, "name": "P_ChangeSector", "signature": "boolean\nP_ChangeSector\n( sector_t*\tsector,\n boolean\tcrunch )"}, {"doc": "Code to emulate the behavior of Vanilla Doom when encountering an overrun of the spechit array. This is by Andrey Budko (e6y) and comes from his PrBoom plus port. A big thanks to Andrey for this.", "kind": "function", "line": 1390, "name": "SpechitOverrun", "signature": "static void SpechitOverrun(line_t *ld)"}, {"kind": "macro", "line": 49, "name": "DEFAULT_SPECHIT_MAGIC"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard Copyright(C) 2005, 2006 Andrey Budko This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Movement/collision utility functions, as used by function in p_map.c. BLOCKMAP Iterator functions, and some PIT_* functions to use for iteration. include include \"m_bbox.h\" include \"doomdef.h\"", "id": "progs/doomgeneric/p_maputl.c", "kind": "module", "label": "p_maputl.c", "language": "c", "sha256": "e9a1658476869644", "symbol_count": 17, "symbols": [{"doc": "P_AproxDistance Gives an estimation of distance (not exact)", "kind": "function", "line": 42, "name": "P_AproxDistance", "signature": "fixed_t\nP_AproxDistance\n( fixed_t\tdx,\n fixed_t\tdy )"}, {"doc": "P_PointOnLineSide Returns 0 or 1", "kind": "function", "line": 60, "name": "P_PointOnLineSide", "signature": "int\nP_PointOnLineSide\n( fixed_t\tx,\n fixed_t\ty,\n line_t*\tline )"}, {"doc": "P_BoxOnLineSide Considers the line to be infinite Returns side 0 or 1, -1 if box crosses the line.", "kind": "function", "line": 104, "name": "P_BoxOnLineSide", "signature": "int\nP_BoxOnLineSide\n( fixed_t*\ttmbox,\n line_t*\tld )"}, {"doc": "P_PointOnDivlineSide Returns 0 or 1.", "kind": "function", "line": 155, "name": "P_PointOnDivlineSide", "signature": "int\nP_PointOnDivlineSide\n( fixed_t\tx,\n fixed_t\ty,\n divline_t*\tline )"}, {"doc": "P_MakeDivline", "kind": "function", "line": 205, "name": "P_MakeDivline", "signature": "void\nP_MakeDivline\n( line_t*\tli,\n divline_t*\tdl )"}, {"doc": "P_InterceptVector Returns the fractional intercept point along the first divline. This is only called by the addthings and addlines traversers.", "kind": "function", "line": 225, "name": "P_InterceptVector", "signature": "fixed_t\nP_InterceptVector\n( divline_t*\tv2,\n divline_t*\tv1 )"}, {"kind": "function", "line": 293, "name": "P_LineOpening", "signature": "void P_LineOpening (line_t* linedef)"}, {"doc": "P_UnsetThingPosition Unlinks a thing from block map and sectors. On each position change, BLOCKMAP and other lookups maintaining lists ot things inside these structures need to be updated.", "kind": "function", "line": 342, "name": "P_UnsetThingPosition", "signature": "void P_UnsetThingPosition (mobj_t* thing)"}, {"doc": "P_SetThingPosition Links a thing into both a block and a subsector based on it's x y. Sets thing->subsector properly", "kind": "function", "line": 390, "name": "P_SetThingPosition", "signature": "void\nP_SetThingPosition (mobj_t* thing)"}, {"doc": "P_BlockLinesIterator The validcount flags are used to avoid checking lines that are marked in multiple mapblocks, so increment validcount before the first call to P_BlockLinesIterator, then make one or more calls to it.", "kind": "function", "line": 466, "name": "P_BlockLinesIterator", "signature": "boolean\nP_BlockLinesIterator\n( int\t\t\tx,\n int\t\t\ty,\n boolean(*func)(line_t*) )"}, {"doc": "P_BlockThingsIterator", "kind": "function", "line": 507, "name": "P_BlockThingsIterator", "signature": "boolean\nP_BlockThingsIterator\n( int\t\t\tx,\n int\t\t\ty,\n boolean(*func)(mobj_t*) )"}, {"doc": "PIT_AddLineIntercepts. Looks for lines in the given block that intercept the given trace to add to the intercepts list. A line is crossed if its endpoints are on opposite sides of the trace. Returns true if earlyout and a solid line hit.", "kind": "function", "line": 558, "name": "PIT_AddLineIntercepts", "signature": "boolean\nPIT_AddLineIntercepts (line_t* ld)"}, {"doc": "PIT_AddThingIntercepts", "kind": "function", "line": 614, "name": "PIT_AddThingIntercepts", "signature": "boolean PIT_AddThingIntercepts (mobj_t* thing)"}, {"doc": "P_TraverseIntercepts Returns true if the traverser function returns true for all lines.", "kind": "function", "line": 681, "name": "P_TraverseIntercepts", "signature": "boolean\nP_TraverseIntercepts\n( traverser_t\tfunc,\n fixed_t\tmaxfrac )"}, {"doc": "Overwrite a specific memory location with a value.", "kind": "function", "line": 781, "name": "InterceptsMemoryOverrun", "signature": "static void InterceptsMemoryOverrun(int location, int value)"}, {"doc": "Emulate overruns of the intercepts[] array.", "kind": "function", "line": 826, "name": "InterceptsOverrun", "signature": "static void InterceptsOverrun(int num_intercepts, intercept_t *intercept)"}, {"doc": "P_PathTraverse Traces a line from x1,y1 to x2,y2, calling the traverser function for each. Returns true if the traverser function returns true for all lines.", "kind": "function", "line": 860, "name": "P_PathTraverse", "signature": "boolean\nP_PathTraverse\n( fixed_t\t\tx1,\n fixed_t\t\ty1,\n fixed_t\t\tx2,\n fixed_t\t\ty2,\n int\t\t\tflags,..."}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Moving object handling. Spawn functions. include include \"i_system.h\" include \"z_zone.h\" include \"m_random.h\" include \"doomdef.h\" include \"p_local.h\" include \"sounds.h\" include \"st_stuff.h\" include \"hu_stuff.h\"", "id": "progs/doomgeneric/p_mobj.c", "kind": "module", "label": "p_mobj.c", "language": "c", "sha256": "0ac8d58c02d71f8e", "symbol_count": 19, "symbols": [{"kind": "function", "line": 46, "name": "P_SetMobjState", "signature": "boolean\nP_SetMobjState\n( mobj_t*\tmobj,\n statenum_t\tstate )"}, {"doc": "P_ExplodeMissile", "kind": "function", "line": 84, "name": "P_ExplodeMissile", "signature": "void P_ExplodeMissile (mobj_t* mo)"}, {"doc": "P_XYMovement define STOPSPEED\t\t0x1000 define FRICTION\t\t0xe800", "kind": "function", "line": 107, "name": "P_XYMovement", "signature": "void P_XYMovement (mobj_t* mo)"}, {"doc": "P_ZMovement", "kind": "function", "line": 240, "name": "P_ZMovement", "signature": "void P_ZMovement (mobj_t* mo)"}, {"doc": "P_NightmareRespawn", "kind": "function", "line": 382, "name": "P_NightmareRespawn", "signature": "void\nP_NightmareRespawn (mobj_t* mobj)"}, {"doc": "P_MobjThinker", "kind": "function", "line": 441, "name": "P_MobjThinker", "signature": "void P_MobjThinker (mobj_t* mobj)"}, {"doc": "P_SpawnMobj", "kind": "function", "line": 505, "name": "P_SpawnMobj", "signature": "mobj_t*\nP_SpawnMobj\n( fixed_t\tx,\n fixed_t\ty,\n fixed_t\tz,\n mobjtype_t\ttype )"}, {"kind": "function", "line": 570, "name": "P_RemoveMobj", "signature": "void P_RemoveMobj (mobj_t* mobj)"}, {"doc": "P_RespawnSpecials", "kind": "function", "line": 604, "name": "P_RespawnSpecials", "signature": "void P_RespawnSpecials (void)"}, {"doc": "P_SpawnPlayer Called when a player is spawned on the level. Most of the player structure stays unchanged between levels.", "kind": "function", "line": 668, "name": "P_SpawnPlayer", "signature": "void P_SpawnPlayer (mapthing_t* mthing)"}, {"doc": "P_SpawnMapThing The fields of the mapthing should already be in host byte order.", "kind": "function", "line": 739, "name": "P_SpawnMapThing", "signature": "void P_SpawnMapThing (mapthing_t* mthing)"}, {"kind": "function", "line": 849, "name": "P_SpawnPuff", "signature": "void\nP_SpawnPuff\n( fixed_t\tx,\n fixed_t\ty,\n fixed_t\tz )"}, {"doc": "P_SpawnBlood", "kind": "function", "line": 877, "name": "P_SpawnBlood", "signature": "void\nP_SpawnBlood\n( fixed_t\tx,\n fixed_t\ty,\n fixed_t\tz,\n int\t\tdamage )"}, {"doc": "P_CheckMissileSpawn Moves the missile forward a bit and possibly explodes it right there.", "kind": "function", "line": 907, "name": "P_CheckMissileSpawn", "signature": "void P_CheckMissileSpawn (mobj_t* th)"}, {"doc": "Certain functions assume that a mobj_t pointer is non-NULL, causing a crash in some situations where it is NULL. Vanilla Doom did not crash because of the lack of proper memory protection. This function substitutes NULL pointers for pointers to a dummy mobj, to avoid a crash.", "kind": "function", "line": 928, "name": "P_SubstNullMobj", "signature": "mobj_t *P_SubstNullMobj(mobj_t *mobj)"}, {"doc": "P_SpawnMissile", "kind": "function", "line": 949, "name": "P_SpawnMissile", "signature": "mobj_t*\nP_SpawnMissile\n( mobj_t*\tsource,\n mobj_t*\tdest,\n mobjtype_t\ttype )"}, {"doc": "P_SpawnPlayerMissile Tries to aim at a nearby monster", "kind": "function", "line": 995, "name": "P_SpawnPlayerMissile", "signature": "void\nP_SpawnPlayerMissile\n( mobj_t*\tsource,\n mobjtype_t\ttype )"}, {"kind": "macro", "line": 105, "name": "STOPSPEED"}, {"kind": "macro", "line": 106, "name": "FRICTION"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Map Objects, MObj, definition and handling. ifndef __P_MOBJ__ define __P_MOBJ__ Basics. include \"tables.h\" include \"m_fixed.h\" We need the thinker_t stuff. include \"d_think.h\" We need the WAD data structure for Map things,", "id": "progs/doomgeneric/p_mobj.h", "kind": "module", "label": "p_mobj.h", "language": "h", "sha256": "4231f67c00333a31", "symbol_count": 2, "symbols": [{"doc": "Map Object definition.", "kind": "struct", "line": 201, "name": "mobj_s"}, {"kind": "macro", "line": 21, "name": "__P_MOBJ__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Plats (i.e. elevator platforms) code, raising/lowering. include include \"i_system.h\" include \"z_zone.h\" include \"m_random.h\" include \"doomdef.h\" include \"p_local.h\" include \"s_sound.h\" State.", "id": "progs/doomgeneric/p_plats.c", "kind": "module", "label": "p_plats.c", "language": "c", "sha256": "88df115207d9cc1b", "symbol_count": 6, "symbols": [{"doc": "Move a plat up and down", "kind": "function", "line": 45, "name": "T_PlatRaise", "signature": "void T_PlatRaise(plat_t* plat)"}, {"doc": "Do Platforms \"amount\" is only used for SOME platforms.", "kind": "function", "line": 128, "name": "EV_DoPlat", "signature": "int\nEV_DoPlat\n( line_t*\tline,\n plattype_e\ttype,\n int\t\tamount )"}, {"kind": "function", "line": 245, "name": "P_ActivateInStasis", "signature": "void P_ActivateInStasis(int tag)"}, {"kind": "function", "line": 262, "name": "EV_StopPlat", "signature": "void EV_StopPlat(line_t* line)"}, {"kind": "function", "line": 277, "name": "P_AddActivePlat", "signature": "void P_AddActivePlat(plat_t* plat)"}, {"kind": "function", "line": 290, "name": "P_RemoveActivePlat", "signature": "void P_RemoveActivePlat(plat_t* plat)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Weapon sprite animation, weapon objects. Action functions for weapons. include \"doomdef.h\" include \"d_event.h\" include \"deh_misc.h\" include \"m_random.h\" include \"p_local.h\" include \"s_sound.h\" State.", "id": "progs/doomgeneric/p_pspr.c", "kind": "module", "label": "p_pspr.c", "language": "c", "sha256": "37723e28aa7eb5b5", "symbol_count": 35, "symbols": [{"doc": "P_SetPsprite", "kind": "function", "line": 49, "name": "P_SetPsprite", "signature": "void\nP_SetPsprite\n( player_t*\tplayer,\n int\t\tposition,\n statenum_t\tstnum )"}, {"kind": "function", "line": 102, "name": "P_CalcSwing", "signature": "void P_CalcSwing (player_t*\tplayer)"}, {"doc": "P_BringUpWeapon Starts bringing the pending weapon up from the bottom of the screen. Uses player", "kind": "function", "line": 129, "name": "P_BringUpWeapon", "signature": "void P_BringUpWeapon (player_t* player)"}, {"doc": "P_CheckAmmo Returns true if there is enough ammo to shoot. If not, selects the next weapon to use.", "kind": "function", "line": 152, "name": "P_CheckAmmo", "signature": "boolean P_CheckAmmo (player_t* player)"}, {"doc": "P_FireWeapon.", "kind": "function", "line": 237, "name": "P_FireWeapon", "signature": "void P_FireWeapon (player_t* player)"}, {"doc": "P_DropWeapon Player died, so put the weapon away.", "kind": "function", "line": 256, "name": "P_DropWeapon", "signature": "void P_DropWeapon (player_t* player)"}, {"doc": "A_WeaponReady The player can fire the weapon or change to another weapon at this time. Follows after getting weapon up, or after previous attack/fire sequence.", "kind": "function", "line": 272, "name": "A_WeaponReady", "signature": "void\nA_WeaponReady\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_ReFire The player can re-fire the weapon without lowering it entirely.", "kind": "function", "line": 334, "name": "A_ReFire", "signature": "void A_ReFire\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 354, "name": "A_CheckReload", "signature": "void\nA_CheckReload\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_Lower Lowers current weapon, and changes weapon at bottom.", "kind": "function", "line": 375, "name": "A_Lower", "signature": "void\nA_Lower\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_Raise", "kind": "function", "line": 413, "name": "A_Raise", "signature": "void\nA_Raise\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_GunFlash", "kind": "function", "line": 439, "name": "A_GunFlash", "signature": "void\nA_GunFlash\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_Punch", "kind": "function", "line": 458, "name": "A_Punch", "signature": "void\nA_Punch\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_Saw", "kind": "function", "line": 492, "name": "A_Saw", "signature": "void\nA_Saw\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "Doom does not check the bounds of the ammo array. As a result, it is possible to use an ammo type > 4 that overflows into the maxammo array and affects that instead. Through dehacked, for example, it is possible to make a weapon that decreases the max number of ammo for another weapon. Emulate this.", "kind": "function", "line": 541, "name": "DecreaseAmmo", "signature": "static void DecreaseAmmo(player_t *player, int ammonum, int amount)"}, {"doc": "A_FireMissile", "kind": "function", "line": 558, "name": "A_FireMissile", "signature": "void\nA_FireMissile\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FireBFG", "kind": "function", "line": 571, "name": "A_FireBFG", "signature": "void\nA_FireBFG\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FirePlasma", "kind": "function", "line": 586, "name": "A_FirePlasma", "signature": "void\nA_FirePlasma\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 608, "name": "P_BulletSlope", "signature": "void P_BulletSlope (mobj_t*\tmo)"}, {"doc": "P_GunShot", "kind": "function", "line": 634, "name": "P_GunShot", "signature": "void\nP_GunShot\n( mobj_t*\tmo,\n boolean\taccurate )"}, {"doc": "A_FirePistol", "kind": "function", "line": 655, "name": "A_FirePistol", "signature": "void\nA_FirePistol\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FireShotgun", "kind": "function", "line": 677, "name": "A_FireShotgun", "signature": "void\nA_FireShotgun\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FireShotgun2", "kind": "function", "line": 704, "name": "A_FireShotgun2", "signature": "void\nA_FireShotgun2\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FireCGun", "kind": "function", "line": 741, "name": "A_FireCGun", "signature": "void\nA_FireCGun\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "?", "kind": "function", "line": 770, "name": "A_Light0", "signature": "void A_Light0 (player_t *player, pspdef_t *psp)"}, {"kind": "function", "line": 774, "name": "A_Light1", "signature": "void A_Light1 (player_t *player, pspdef_t *psp)"}, {"kind": "function", "line": 779, "name": "A_Light2", "signature": "void A_Light2 (player_t *player, pspdef_t *psp)"}, {"doc": "A_BFGSpray Spawn a BFG explosion on every monster in view", "kind": "function", "line": 790, "name": "A_BFGSpray", "signature": "void A_BFGSpray (mobj_t* mo)"}, {"doc": "A_BFGsound", "kind": "function", "line": 826, "name": "A_BFGsound", "signature": "void\nA_BFGsound\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "P_SetupPsprites Called at start of level for each player.", "kind": "function", "line": 840, "name": "P_SetupPsprites", "signature": "void P_SetupPsprites (player_t* player)"}, {"doc": "P_MovePsprites Called every tic by player thinking routine.", "kind": "function", "line": 860, "name": "P_MovePsprites", "signature": "void P_MovePsprites (player_t* player)"}, {"kind": "macro", "line": 37, "name": "LOWERSPEED"}, {"kind": "macro", "line": 39, "name": "RAISESPEED"}, {"kind": "macro", "line": 40, "name": "WEAPONBOTTOM"}, {"kind": "macro", "line": 42, "name": "WEAPONTOP"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Sprite animation. ifndef __P_PSPR__ define __P_PSPR__ Basic data types. Needs fixed point, and BAM angles. include \"m_fixed.h\" include \"tables.h\" Needs to include the precompiled", "id": "progs/doomgeneric/p_pspr.h", "kind": "module", "label": "p_pspr.h", "language": "h", "sha256": "ad1311f12ef7387d", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 21, "name": "__P_PSPR__"}, {"kind": "macro", "line": 44, "name": "FF_FULLBRIGHT"}, {"kind": "macro", "line": 45, "name": "FF_FRAMEMASK"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Archiving: SaveGame I/O. include include include \"dstrings.h\" include \"deh_main.h\" include \"i_system.h\" include \"z_zone.h\" include \"p_local.h\" include \"p_saveg.h\" State.", "id": "progs/doomgeneric/p_saveg.c", "kind": "module", "label": "p_saveg.c", "language": "c", "sha256": "3ace2f86b1aafae8", "symbol_count": 58, "symbols": [{"doc": "Get the filename of a temporary file to write the savegame to. After the file has been successfully saved, it will be renamed to the real file.", "kind": "function", "line": 46, "name": "P_TempSaveGameFile", "signature": "char *P_TempSaveGameFile(void)"}, {"doc": "Get the filename of the save game file to use for the specified slot.", "kind": "function", "line": 60, "name": "P_SaveGameFile", "signature": "char *P_SaveGameFile(int slot)"}, {"doc": "Endian-safe integer read/write functions", "kind": "function", "line": 80, "name": "saveg_read8", "signature": "static byte saveg_read8(void)"}, {"kind": "function", "line": 98, "name": "saveg_write8", "signature": "static void saveg_write8(byte value)"}, {"kind": "function", "line": 111, "name": "saveg_read16", "signature": "static short saveg_read16(void)"}, {"kind": "function", "line": 121, "name": "saveg_write16", "signature": "static void saveg_write16(short value)"}, {"kind": "function", "line": 127, "name": "saveg_read32", "signature": "static int saveg_read32(void)"}, {"kind": "function", "line": 139, "name": "saveg_write32", "signature": "static void saveg_write32(int value)"}, {"doc": "Pad to 4-byte boundaries", "kind": "function", "line": 149, "name": "saveg_read_pad", "signature": "static void saveg_read_pad(void)"}, {"kind": "function", "line": 165, "name": "saveg_write_pad", "signature": "static void saveg_write_pad(void)"}, {"doc": "Pointers", "kind": "function", "line": 184, "name": "saveg_readp", "signature": "static void *saveg_readp(void)"}, {"kind": "function", "line": 189, "name": "saveg_writep", "signature": "static void saveg_writep(void *p)"}, {"doc": "mapthing_t", "kind": "function", "line": 207, "name": "saveg_read_mapthing_t", "signature": "static void saveg_read_mapthing_t(mapthing_t *str)"}, {"kind": "function", "line": 225, "name": "saveg_write_mapthing_t", "signature": "static void saveg_write_mapthing_t(mapthing_t *str)"}, {"doc": "actionf_t", "kind": "function", "line": 247, "name": "saveg_read_actionf_t", "signature": "static void saveg_read_actionf_t(actionf_t *str)"}, {"kind": "function", "line": 253, "name": "saveg_write_actionf_t", "signature": "static void saveg_write_actionf_t(actionf_t *str)"}, {"doc": "thinker_t", "kind": "function", "line": 272, "name": "saveg_read_thinker_t", "signature": "static void saveg_read_thinker_t(thinker_t *str)"}, {"kind": "function", "line": 284, "name": "saveg_write_thinker_t", "signature": "static void saveg_write_thinker_t(thinker_t *str)"}, {"doc": "mobj_t", "kind": "function", "line": 300, "name": "saveg_read_mobj_t", "signature": "static void saveg_read_mobj_t(mobj_t *str)"}, {"kind": "function", "line": 420, "name": "saveg_write_mobj_t", "signature": "static void saveg_write_mobj_t(mobj_t *str)"}, {"doc": "ticcmd_t", "kind": "function", "line": 540, "name": "saveg_read_ticcmd_t", "signature": "static void saveg_read_ticcmd_t(ticcmd_t *str)"}, {"kind": "function", "line": 562, "name": "saveg_write_ticcmd_t", "signature": "static void saveg_write_ticcmd_t(ticcmd_t *str)"}, {"doc": "pspdef_t", "kind": "function", "line": 588, "name": "saveg_read_pspdef_t", "signature": "static void saveg_read_pspdef_t(pspdef_t *str)"}, {"kind": "function", "line": 614, "name": "saveg_write_pspdef_t", "signature": "static void saveg_write_pspdef_t(pspdef_t *str)"}, {"doc": "player_t", "kind": "function", "line": 640, "name": "saveg_read_player_t", "signature": "static void saveg_read_player_t(player_t *str)"}, {"kind": "function", "line": 771, "name": "saveg_write_player_t", "signature": "static void saveg_write_player_t(player_t *str)"}, {"doc": "ceiling_t", "kind": "function", "line": 907, "name": "saveg_read_ceiling_t", "signature": "static void saveg_read_ceiling_t(ceiling_t *str)"}, {"kind": "function", "line": 943, "name": "saveg_write_ceiling_t", "signature": "static void saveg_write_ceiling_t(ceiling_t *str)"}, {"doc": "vldoor_t", "kind": "function", "line": 980, "name": "saveg_read_vldoor_t", "signature": "static void saveg_read_vldoor_t(vldoor_t *str)"}, {"kind": "function", "line": 1010, "name": "saveg_write_vldoor_t", "signature": "static void saveg_write_vldoor_t(vldoor_t *str)"}, {"doc": "floormove_t", "kind": "function", "line": 1041, "name": "saveg_read_floormove_t", "signature": "static void saveg_read_floormove_t(floormove_t *str)"}, {"kind": "function", "line": 1074, "name": "saveg_write_floormove_t", "signature": "static void saveg_write_floormove_t(floormove_t *str)"}, {"doc": "plat_t", "kind": "function", "line": 1108, "name": "saveg_read_plat_t", "signature": "static void saveg_read_plat_t(plat_t *str)"}, {"kind": "function", "line": 1150, "name": "saveg_write_plat_t", "signature": "static void saveg_write_plat_t(plat_t *str)"}, {"doc": "lightflash_t", "kind": "function", "line": 1193, "name": "saveg_read_lightflash_t", "signature": "static void saveg_read_lightflash_t(lightflash_t *str)"}, {"kind": "function", "line": 1220, "name": "saveg_write_lightflash_t", "signature": "static void saveg_write_lightflash_t(lightflash_t *str)"}, {"doc": "strobe_t", "kind": "function", "line": 1248, "name": "saveg_read_strobe_t", "signature": "static void saveg_read_strobe_t(strobe_t *str)"}, {"kind": "function", "line": 1275, "name": "saveg_write_strobe_t", "signature": "static void saveg_write_strobe_t(strobe_t *str)"}, {"doc": "glow_t", "kind": "function", "line": 1303, "name": "saveg_read_glow_t", "signature": "static void saveg_read_glow_t(glow_t *str)"}, {"kind": "function", "line": 1324, "name": "saveg_write_glow_t", "signature": "static void saveg_write_glow_t(glow_t *str)"}, {"doc": "Write the header for a savegame", "kind": "function", "line": 1346, "name": "P_WriteSaveGameHeader", "signature": "void P_WriteSaveGameHeader(char *description)"}, {"doc": "Read the header for a savegame", "kind": "function", "line": 1378, "name": "P_ReadSaveGameHeader", "signature": "boolean P_ReadSaveGameHeader(void)"}, {"doc": "Read the end of file marker. Returns true if read successfully.", "kind": "function", "line": 1418, "name": "P_ReadSaveGameEOF", "signature": "boolean P_ReadSaveGameEOF(void)"}, {"doc": "Write the end of file marker", "kind": "function", "line": 1431, "name": "P_WriteSaveGameEOF", "signature": "void P_WriteSaveGameEOF(void)"}, {"doc": "P_ArchivePlayers", "kind": "function", "line": 1440, "name": "P_ArchivePlayers", "signature": "void P_ArchivePlayers (void)"}, {"doc": "P_UnArchivePlayers", "kind": "function", "line": 1460, "name": "P_UnArchivePlayers", "signature": "void P_UnArchivePlayers (void)"}, {"doc": "P_ArchiveWorld", "kind": "function", "line": 1484, "name": "P_ArchiveWorld", "signature": "void P_ArchiveWorld (void)"}, {"doc": "P_UnArchiveWorld", "kind": "function", "line": 1532, "name": "P_UnArchiveWorld", "signature": "void P_UnArchiveWorld (void)"}, {"doc": "P_ArchiveThinkers", "kind": "function", "line": 1592, "name": "P_ArchiveThinkers", "signature": "void P_ArchiveThinkers (void)"}, {"doc": "P_UnArchiveThinkers", "kind": "function", "line": 1620, "name": "P_UnArchiveThinkers", "signature": "void P_UnArchiveThinkers (void)"}, {"doc": "Things to handle: T_MoveCeiling, (ceiling_t: sector_t * swizzle), - active list T_VerticalDoor, (vldoor_t: sector_t * swizzle), T_MoveFloor, (floormove_t: sector_t * swizzle), T_LightFlash, (lightflash_t: sector_t * swizzle), T_StrobeFlash, (strobe_t: sector_t *), T_Glow, (glow_t: sector_t *), T_PlatRaise, (plat_t: sector_t *), - active list", "kind": "function", "line": 1704, "name": "P_ArchiveSpecials", "signature": "void P_ArchiveSpecials (void)"}, {"doc": "P_UnArchiveSpecials", "kind": "function", "line": 1793, "name": "P_UnArchiveSpecials", "signature": "void P_UnArchiveSpecials (void)"}, {"kind": "macro", "line": 35, "name": "SAVEGAME_EOF"}, {"kind": "macro", "line": 37, "name": "VERSIONSIZE"}, {"kind": "macro", "line": 196, "name": "saveg_read_enum"}, {"kind": "macro", "line": 198, "name": "saveg_write_enum"}, {"kind": "macro", "line": 265, "name": "saveg_read_think_t"}, {"kind": "macro", "line": 267, "name": "saveg_write_think_t"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Savegame I/O, archiving, persistence. ifndef __P_SAVEG__ define __P_SAVEG__ include maximum size of a savegame description define SAVESTRINGSIZE 24 temporary filename to use while saving.", "id": "progs/doomgeneric/p_saveg.h", "kind": "module", "label": "p_saveg.h", "language": "h", "sha256": "df574e1d11870a4b", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 21, "name": "__P_SAVEG__"}, {"kind": "macro", "line": 26, "name": "SAVESTRINGSIZE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Do all the WAD I/O, get map description, set up initial state and misc. LUTs. include include \"z_zone.h\" include \"deh_main.h\" include \"i_swap.h\" include \"m_argv.h\" include \"m_bbox.h\"", "id": "progs/doomgeneric/p_setup.c", "kind": "module", "label": "p_setup.c", "language": "c", "sha256": "4494c8823c82ad30", "symbol_count": 16, "symbols": [{"doc": "P_LoadVertexes", "kind": "function", "line": 118, "name": "P_LoadVertexes", "signature": "void P_LoadVertexes (int lump)"}, {"doc": "GetSectorAtNullAddress", "kind": "function", "line": 153, "name": "GetSectorAtNullAddress", "signature": "sector_t* GetSectorAtNullAddress(void)"}, {"doc": "P_LoadSegs", "kind": "function", "line": 172, "name": "P_LoadSegs", "signature": "void P_LoadSegs (int lump)"}, {"doc": "P_LoadSubsectors", "kind": "function", "line": 236, "name": "P_LoadSubsectors", "signature": "void P_LoadSubsectors (int lump)"}, {"doc": "P_LoadSectors", "kind": "function", "line": 265, "name": "P_LoadSectors", "signature": "void P_LoadSectors (int lump)"}, {"doc": "P_LoadNodes", "kind": "function", "line": 298, "name": "P_LoadNodes", "signature": "void P_LoadNodes (int lump)"}, {"doc": "P_LoadThings", "kind": "function", "line": 335, "name": "P_LoadThings", "signature": "void P_LoadThings (int lump)"}, {"doc": "P_LoadLineDefs Also counts secret lines for intermissions.", "kind": "function", "line": 392, "name": "P_LoadLineDefs", "signature": "void P_LoadLineDefs (int lump)"}, {"doc": "P_LoadSideDefs", "kind": "function", "line": 473, "name": "P_LoadSideDefs", "signature": "void P_LoadSideDefs (int lump)"}, {"doc": "P_LoadBlockMap", "kind": "function", "line": 504, "name": "P_LoadBlockMap", "signature": "void P_LoadBlockMap (int lump)"}, {"doc": "P_GroupLines Builds sector line lists and subsector sector numbers. Finds block bounding boxes for sectors.", "kind": "function", "line": 545, "name": "P_GroupLines", "signature": "void P_GroupLines (void)"}, {"doc": "Pad the REJECT lump with extra data when the lump is too small, to simulate a REJECT buffer overflow in Vanilla Doom.", "kind": "function", "line": 660, "name": "PadRejectArray", "signature": "static void PadRejectArray(byte *array, unsigned int len)"}, {"kind": "function", "line": 711, "name": "P_LoadReject", "signature": "static void P_LoadReject(int lumpnum)"}, {"doc": "P_SetupLevel", "kind": "function", "line": 743, "name": "P_SetupLevel", "signature": "void\nP_SetupLevel\n( int\t\tepisode,\n int\t\tmap,\n int\t\tplayermask,\n skill_t\tskill)"}, {"doc": "P_Init", "kind": "function", "line": 847, "name": "P_Init", "signature": "void P_Init (void)"}, {"kind": "macro", "line": 105, "name": "MAX_DEATHMATCH_STARTS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Setup a game, startup stuff. ifndef __P_SETUP__ define __P_SETUP__ NOT called by W_Ticker. Fixme.", "id": "progs/doomgeneric/p_setup.h", "kind": "module", "label": "p_setup.h", "language": "h", "sha256": "9ad381578510f3f9", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__P_SETUP__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: LineOfSight/Visibility checks, uses REJECT Lookup Table. include \"doomdef.h\" include \"i_system.h\" include \"p_local.h\" State. include \"r_state.h\" P_CheckSight", "id": "progs/doomgeneric/p_sight.c", "kind": "module", "label": "p_sight.c", "language": "c", "sha256": "38541f33f92df8e7", "symbol_count": 5, "symbols": [{"doc": "P_DivlineSide Returns side 0 (front), 1 (back), or 2 (on).", "kind": "function", "line": 47, "name": "P_DivlineSide", "signature": "int\nP_DivlineSide\n( fixed_t\tx,\n fixed_t\ty,\n divline_t*\tnode )"}, {"doc": "P_InterceptVector2 Returns the fractional intercept point along the first divline. This is only called by the addthings and addlines traversers.", "kind": "function", "line": 101, "name": "P_InterceptVector2", "signature": "fixed_t\nP_InterceptVector2\n( divline_t*\tv2,\n divline_t*\tv1 )"}, {"doc": "P_CrossSubsector Returns true if strace crosses the given subsector successfully.", "kind": "function", "line": 128, "name": "P_CrossSubsector", "signature": "boolean P_CrossSubsector (int num)"}, {"doc": "P_CrossBSPNode Returns true if strace crosses the given node successfully.", "kind": "function", "line": 258, "name": "P_CrossBSPNode", "signature": "boolean P_CrossBSPNode (int bspnum)"}, {"doc": "P_CheckSight Returns true if a straight line between t1 and t2 is unobstructed. Uses REJECT.", "kind": "function", "line": 300, "name": "P_CheckSight", "signature": "boolean\nP_CheckSight\n( mobj_t*\tt1,\n mobj_t*\tt2 )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Implements special effects: Texture animation, height or lighting changes according to adjacent sectors, respective utility functions, etc. Line Tag handling. Line and Sector triggers. include include \"doomdef.h\" include \"doomstat.h\" include \"deh_main.h\" include \"i_system.h\"", "id": "progs/doomgeneric/p_spec.c", "kind": "module", "label": "p_spec.c", "language": "c", "sha256": "48092c8d986aa0c3", "symbol_count": 24, "symbols": [{"kind": "function", "line": 140, "name": "P_InitPicAnims", "signature": "void P_InitPicAnims (void)"}, {"doc": "getSide() Will return a side_t* given the number of the current sector, the line number, and the side (0/1) that you want.", "kind": "function", "line": 202, "name": "getSide", "signature": "side_t*\ngetSide\n( int\t\tcurrentSector,\n int\t\tline,\n int\t\tside )"}, {"doc": "getSector() Will return a sector_t* given the number of the current sector, the line number and the side (0/1) that you want.", "kind": "function", "line": 218, "name": "getSector", "signature": "sector_t*\ngetSector\n( int\t\tcurrentSector,\n int\t\tline,\n int\t\tside )"}, {"doc": "twoSided() Given the sector number and the line number, it will tell you whether the line is two-sided or not.", "kind": "function", "line": 233, "name": "twoSided", "signature": "int\ntwoSided\n( int\tsector,\n int\tline )"}, {"doc": "getNextSector() Return sector_t * of sector next to current. NULL if not two-sided line", "kind": "function", "line": 249, "name": "getNextSector", "signature": "sector_t*\ngetNextSector\n( line_t*\tline,\n sector_t*\tsec )"}, {"doc": "P_FindLowestFloorSurrounding() FIND LOWEST FLOOR HEIGHT IN SURROUNDING SECTORS", "kind": "function", "line": 269, "name": "P_FindLowestFloorSurrounding", "signature": "fixed_t\tP_FindLowestFloorSurrounding(sector_t* sec)"}, {"doc": "P_FindHighestFloorSurrounding() FIND HIGHEST FLOOR HEIGHT IN SURROUNDING SECTORS", "kind": "function", "line": 296, "name": "P_FindHighestFloorSurrounding", "signature": "fixed_t\tP_FindHighestFloorSurrounding(sector_t *sec)"}, {"doc": "20 adjoining sectors max! define MAX_ADJOINING_SECTORS 20", "kind": "function", "line": 328, "name": "P_FindNextHighestFloor", "signature": "fixed_t\nP_FindNextHighestFloor\n( sector_t* sec,\n int currentheight )"}, {"doc": "FIND LOWEST CEILING IN THE SURROUNDING SECTORS", "kind": "function", "line": 391, "name": "P_FindLowestCeilingSurrounding", "signature": "fixed_t\nP_FindLowestCeilingSurrounding(sector_t* sec)"}, {"doc": "FIND HIGHEST CEILING IN THE SURROUNDING SECTORS", "kind": "function", "line": 417, "name": "P_FindHighestCeilingSurrounding", "signature": "fixed_t\tP_FindHighestCeilingSurrounding(sector_t* sec)"}, {"doc": "RETURN NEXT SECTOR # THAT LINE TAG REFERS TO", "kind": "function", "line": 443, "name": "P_FindSectorFromLineTag", "signature": "int\nP_FindSectorFromLineTag\n( line_t*\tline,\n int\t\tstart )"}, {"doc": "Find minimum light from an adjacent sector", "kind": "function", "line": 463, "name": "P_FindMinSurroundingLight", "signature": "int\nP_FindMinSurroundingLight\n( sector_t*\tsector,\n int\t\tmax )"}, {"doc": "P_CrossSpecialLine - TRIGGER Called every time a thing origin is about to cross a line with a non 0 special.", "kind": "function", "line": 501, "name": "P_CrossSpecialLine", "signature": "void\nP_CrossSpecialLine\n( int\t\tlinenum,\n int\t\tside,\n mobj_t*\tthing )"}, {"doc": "P_ShootSpecialLine - IMPACT SPECIALS Called when a thing shoots a special line.", "kind": "function", "line": 968, "name": "P_ShootSpecialLine", "signature": "void\nP_ShootSpecialLine\n( mobj_t*\tthing,\n line_t*\tline )"}, {"doc": "P_PlayerInSpecialSector Called every tic frame that the player origin is in a special sector", "kind": "function", "line": 1019, "name": "P_PlayerInSpecialSector", "signature": "void P_PlayerInSpecialSector (player_t* player)"}, {"kind": "function", "line": 1092, "name": "P_UpdateSpecials", "signature": "void P_UpdateSpecials (void)"}, {"doc": "define DONUT_FLOORHEIGHT_DEFAULT 0x00000000 define DONUT_FLOORPIC_DEFAULT 0x16", "kind": "function", "line": 1177, "name": "DonutOverrun", "signature": "static void DonutOverrun(fixed_t *s3_floorheight, short *s3_floorpic,\n li..."}, {"doc": "Special Stuff that can not be categorized", "kind": "function", "line": 1257, "name": "EV_DoDonut", "signature": "int EV_DoDonut(line_t*\tline)"}, {"doc": "Parses command line parameters.", "kind": "function", "line": 1374, "name": "P_SpawnSpecials", "signature": "void P_SpawnSpecials (void)"}, {"kind": "macro", "line": 75, "name": "MAXANIMS"}, {"kind": "macro", "line": 136, "name": "MAXLINEANIMS"}, {"kind": "macro", "line": 327, "name": "MAX_ADJOINING_SECTORS"}, {"kind": "macro", "line": 1174, "name": "DONUT_FLOORHEIGHT_DEFAULT"}, {"kind": "macro", "line": 1176, "name": "DONUT_FLOORPIC_DEFAULT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none Implements special effects: Texture animation, height or lighting changes according to adjacent sectors, respective utility functions, etc. ifndef __P_SPEC__ define __P_SPEC__ End-level timer (-TIMER option)", "id": "progs/doomgeneric/p_spec.h", "kind": "module", "label": "p_spec.h", "language": "h", "sha256": "ade229c799b9c2da", "symbol_count": 22, "symbols": [{"kind": "macro", "line": 24, "name": "__P_SPEC__"}, {"kind": "macro", "line": 35, "name": "MO_TELEPORTMAN"}, {"kind": "macro", "line": 171, "name": "GLOWSPEED"}, {"kind": "macro", "line": 174, "name": "STROBEBRIGHT"}, {"kind": "macro", "line": 175, "name": "FASTDARK"}, {"kind": "macro", "line": 176, "name": "SLOWDARK"}, {"kind": "macro", "line": 238, "name": "MAXSWITCHES"}, {"kind": "macro", "line": 241, "name": "MAXBUTTONS"}, {"kind": "macro", "line": 244, "name": "BUTTONTIME"}, {"kind": "macro", "line": 298, "name": "PLATWAIT"}, {"kind": "macro", "line": 302, "name": "PLATSPEED"}, {"kind": "macro", "line": 303, "name": "MAXPLATS"}, {"kind": "macro", "line": 358, "name": "VDOORSPEED"}, {"kind": "macro", "line": 362, "name": "VDOORWAIT"}, {"kind": "macro", "line": 456, "name": "SNUMFRAMES"}, {"kind": "macro", "line": 457, "name": "SDOORWAIT"}, {"kind": "macro", "line": 459, "name": "SWAITTICS"}, {"kind": "macro", "line": 462, "name": "MAXSLIDEDOORS"}, {"kind": "macro", "line": 508, "name": "CEILSPEED"}, {"kind": "macro", "line": 514, "name": "CEILWAIT"}, {"kind": "macro", "line": 515, "name": "MAXCEILINGS"}, {"kind": "macro", "line": 594, "name": "FLOORSPEED"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Switches, buttons. Two-state animation. Exits. include include \"i_system.h\" include \"deh_main.h\" include \"doomdef.h\" include \"p_local.h\" include \"g_game.h\" include \"s_sound.h\"", "id": "progs/doomgeneric/p_switch.c", "kind": "module", "label": "p_switch.c", "language": "c", "sha256": "ddb09f54244cc0a0", "symbol_count": 4, "symbols": [{"doc": "P_InitSwitchList Only called at game initialization.", "kind": "function", "line": 101, "name": "P_InitSwitchList", "signature": "void P_InitSwitchList(void)"}, {"doc": "Start a button counting down till it turns off.", "kind": "function", "line": 148, "name": "P_StartButton", "signature": "void\nP_StartButton\n( line_t*\tline,\n bwhere_e\tw,\n int\t\ttexture,\n int\t\ttime )"}, {"doc": "Function that changes wall texture. Tell it if switch is ok to use again (1=yes, it's a button).", "kind": "function", "line": 194, "name": "P_ChangeSwitchTexture", "signature": "void\nP_ChangeSwitchTexture\n( line_t*\tline,\n int \t\tuseAgain )"}, {"doc": "P_UseSpecialLine Called when a thing uses a special line. Only the front sides of lines are usable.", "kind": "function", "line": 269, "name": "P_UseSpecialLine", "signature": "boolean\nP_UseSpecialLine\n( mobj_t*\tthing,\n line_t*\tline,\n int\t\tside )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Teleportation. include \"doomdef.h\" include \"doomstat.h\" include \"s_sound.h\" include \"p_local.h\" Data.", "id": "progs/doomgeneric/p_telept.c", "kind": "module", "label": "p_telept.c", "language": "c", "sha256": "e7221c20bfb156ce", "symbol_count": 1, "symbols": [{"doc": "TELEPORTATION", "kind": "function", "line": 41, "name": "EV_Teleport", "signature": "int\nEV_Teleport\n( line_t*\tline,\n int\t\tside,\n mobj_t*\tthing )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Archiving: SaveGame I/O. Thinker, Ticker. include \"z_zone.h\" include \"p_local.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/p_tick.c", "kind": "module", "label": "p_tick.c", "language": "c", "sha256": "3a30587883e837d2", "symbol_count": 6, "symbols": [{"doc": "P_InitThinkers", "kind": "function", "line": 46, "name": "P_InitThinkers", "signature": "void P_InitThinkers (void)"}, {"doc": "P_AddThinker Adds a new thinker at the end of the list.", "kind": "function", "line": 58, "name": "P_AddThinker", "signature": "void P_AddThinker (thinker_t* thinker)"}, {"doc": "P_RemoveThinker Deallocation is lazy -- it will not actually be freed until its thinking turn comes up.", "kind": "function", "line": 73, "name": "P_RemoveThinker", "signature": "void P_RemoveThinker (thinker_t* thinker)"}, {"doc": "P_AllocateThinker Allocates memory and adds a new thinker at the end of the list.", "kind": "function", "line": 85, "name": "P_AllocateThinker", "signature": "void P_AllocateThinker (thinker_t*\tthinker)"}, {"doc": "P_RunThinkers", "kind": "function", "line": 94, "name": "P_RunThinkers", "signature": "void P_RunThinkers (void)"}, {"doc": "P_Ticker", "kind": "function", "line": 122, "name": "P_Ticker", "signature": "void P_Ticker (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ? ifndef __P_TICK__ define __P_TICK__ Called by C_Ticker, can call G_PlayerExited. Carries out all thinking of monsters and players.", "id": "progs/doomgeneric/p_tick.h", "kind": "module", "label": "p_tick.h", "language": "h", "sha256": "f507c3ce538d9ecd", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__P_TICK__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Player related stuff. Bobbing POV/weapon, movement. Pending weapon. include \"doomdef.h\" include \"d_event.h\" include \"p_local.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/p_user.c", "kind": "module", "label": "p_user.c", "language": "c", "sha256": "344ca6c3f051a806", "symbol_count": 8, "symbols": [{"doc": "P_Thrust Moves the given origin along a given angle.", "kind": "function", "line": 51, "name": "P_Thrust", "signature": "void\nP_Thrust\n( player_t*\tplayer,\n angle_t\tangle,\n fixed_t\tmove )"}, {"doc": "P_CalcHeight Calculate the walking / running height adjustment", "kind": "function", "line": 70, "name": "P_CalcHeight", "signature": "void P_CalcHeight (player_t* player)"}, {"doc": "P_MovePlayer", "kind": "function", "line": 141, "name": "P_MovePlayer", "signature": "void P_MovePlayer (player_t* player)"}, {"doc": "P_DeathThink Fall on your face when dying. Decrease POV height to floor height. define ANG5 \t(ANG90/18)", "kind": "function", "line": 174, "name": "P_DeathThink", "signature": "void P_DeathThink (player_t* player)"}, {"doc": "P_PlayerThink", "kind": "function", "line": 229, "name": "P_PlayerThink", "signature": "void P_PlayerThink (player_t* player)"}, {"kind": "macro", "line": 34, "name": "INVERSECOLORMAP"}, {"kind": "macro", "line": 42, "name": "MAXBOB"}, {"kind": "macro", "line": 173, "name": "ANG5"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: BSP traversal, handling of LineSegs for rendering. include \"doomdef.h\" include \"m_bbox.h\" include \"i_system.h\" include \"r_main.h\" include \"r_plane.h\" include \"r_things.h\"", "id": "progs/doomgeneric/r_bsp.c", "kind": "module", "label": "r_bsp.c", "language": "c", "sha256": "f3cca21969db9723", "symbol_count": 9, "symbols": [{"doc": "R_ClearDrawSegs", "kind": "function", "line": 61, "name": "R_ClearDrawSegs", "signature": "void R_ClearDrawSegs (void)"}, {"doc": "R_ClipSolidWallSegment Does handle solid walls, e.g. single sided LineDefs (middle texture) that entirely block the view.", "kind": "function", "line": 96, "name": "R_ClipSolidWallSegment", "signature": "void\nR_ClipSolidWallSegment\n( int\t\t\tfirst,\n int\t\t\tlast )"}, {"doc": "R_ClipPassWallSegment Clips the given range of columns, but does not includes it in the clip list. Does handle windows, e.g. LineDefs with upper and lower texture.", "kind": "function", "line": 189, "name": "R_ClipPassWallSegment", "signature": "void\nR_ClipPassWallSegment\n( int\tfirst,\n int\tlast )"}, {"doc": "R_ClearClipSegs", "kind": "function", "line": 238, "name": "R_ClearClipSegs", "signature": "void R_ClearClipSegs (void)"}, {"doc": "R_AddLine Clips the given segment and adds any visible pieces to the line list.", "kind": "function", "line": 252, "name": "R_AddLine", "signature": "void R_AddLine (seg_t*\tline)"}, {"kind": "function", "line": 372, "name": "R_CheckBBox", "signature": "boolean R_CheckBBox (fixed_t*\tbspcoord)"}, {"doc": "R_Subsector Determine floor/ceiling planes. Add sprites of things in sector. Draw one or more line segments.", "kind": "function", "line": 490, "name": "R_Subsector", "signature": "void R_Subsector (int num)"}, {"doc": "RenderBSPNode Renders all subsectors below a given node, traversing subtree recursively. Just call with BSP root.", "kind": "function", "line": 545, "name": "R_RenderBSPNode", "signature": "void R_RenderBSPNode (int bspnum)"}, {"kind": "macro", "line": 79, "name": "MAXSEGS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh module, BSP traversal and handling. ifndef __R_BSP__ define __R_BSP__", "id": "progs/doomgeneric/r_bsp.h", "kind": "module", "label": "r_bsp.h", "language": "h", "sha256": "2b21f039863888ed", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__R_BSP__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Preparation of data for rendering, generation of lookups, caching, retrieval by name. include include \"deh_main.h\" include \"i_swap.h\" include \"i_system.h\" include \"z_zone.h\" include \"w_wad.h\" include \"doomdef.h\"", "id": "progs/doomgeneric/r_data.c", "kind": "module", "label": "r_data.c", "language": "c", "sha256": "1fe2527d5e09951f", "symbol_count": 15, "symbols": [{"kind": "struct", "line": 106, "name": "texture_s"}, {"doc": "R_DrawColumnInCache Clip and draw a column from a patch into a cached post.", "kind": "function", "line": 185, "name": "R_DrawColumnInCache", "signature": "void\nR_DrawColumnInCache\n( column_t*\tpatch,\n byte*\t\tcache,\n int\t\toriginy,\n int\t\tcacheheight )"}, {"doc": "R_GenerateComposite Using the texture definition, the composite texture is created from the patches, and each column is cached.", "kind": "function", "line": 226, "name": "R_GenerateComposite", "signature": "void R_GenerateComposite (int texnum)"}, {"doc": "R_GenerateLookup", "kind": "function", "line": 294, "name": "R_GenerateLookup", "signature": "void R_GenerateLookup (int texnum)"}, {"doc": "R_GetColumn", "kind": "function", "line": 382, "name": "R_GetColumn", "signature": "byte*\nR_GetColumn\n( int\t\ttex,\n int\t\tcol )"}, {"kind": "function", "line": 402, "name": "GenerateTextureHashTable", "signature": "static void GenerateTextureHashTable(void)"}, {"doc": "R_InitTextures Initializes the texture list with the textures from the world map.", "kind": "function", "line": 451, "name": "R_InitTextures", "signature": "void R_InitTextures (void)"}, {"doc": "R_InitFlats", "kind": "function", "line": 633, "name": "R_InitFlats", "signature": "void R_InitFlats (void)"}, {"doc": "R_InitSpriteLumps Finds the width and hoffset of all sprites in the wad, so the sprite does not need to be cached completely just for having the header info ready during rendering.", "kind": "function", "line": 655, "name": "R_InitSpriteLumps", "signature": "void R_InitSpriteLumps (void)"}, {"doc": "R_InitColormaps", "kind": "function", "line": 685, "name": "R_InitColormaps", "signature": "void R_InitColormaps (void)"}, {"doc": "R_InitData Locates all the lumps that will be used by all views Must be called after W_Init.", "kind": "function", "line": 703, "name": "R_InitData", "signature": "void R_InitData (void)"}, {"doc": "R_FlatNumForName Retrieval, get a flat number for a flat name.", "kind": "function", "line": 720, "name": "R_FlatNumForName", "signature": "int R_FlatNumForName (char* name)"}, {"doc": "R_CheckTextureNumForName Check whether texture is available. Filter out NoTexture indicator.", "kind": "function", "line": 744, "name": "R_CheckTextureNumForName", "signature": "int\tR_CheckTextureNumForName (char *name)"}, {"doc": "R_TextureNumForName Calls R_CheckTextureNumForName, aborts with error message.", "kind": "function", "line": 775, "name": "R_TextureNumForName", "signature": "int\tR_TextureNumForName (char* name)"}, {"kind": "function", "line": 799, "name": "R_PrecacheLevel", "signature": "void R_PrecacheLevel (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh module, data I/O, caching, retrieval of graphics by name. ifndef __R_DATA__ define __R_DATA__ include \"r_defs.h\" include \"r_state.h\" Retrieve column data for span blitting.", "id": "progs/doomgeneric/r_data.h", "kind": "module", "label": "r_data.h", "language": "h", "sha256": "3f2d5ed860b88ce8", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "__R_DATA__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh/rendering module, shared data struct definitions. ifndef __R_DEFS__ define __R_DEFS__ Screenwidth. include \"doomdef.h\" Some more or less basic data types we depend on. include \"m_fixed.h\"", "id": "progs/doomgeneric/r_defs.h", "kind": "module", "label": "r_defs.h", "language": "h", "sha256": "c0adc39003b999d0", "symbol_count": 11, "symbols": [{"doc": "Forward of LineDefs, for Sectors.", "kind": "struct", "line": 76, "name": "line_s"}, {"kind": "struct", "line": 175, "name": "line_s"}, {"doc": "A SubSector. References a Sector. Basically, this is a list of LineSegs, indicating the visible walls that define (all or some) sides of a convex BSP leaf.", "kind": "struct", "line": 223, "name": "subsector_s"}, {"doc": "?", "kind": "struct", "line": 306, "name": "drawseg_s"}, {"doc": "A vissprite_t is a thing that will be drawn during a refresh. I.e. a sprite object that is partly visible.", "kind": "struct", "line": 338, "name": "vissprite_s"}, {"kind": "macro", "line": 21, "name": "__R_DEFS__"}, {"kind": "macro", "line": 46, "name": "SIL_NONE"}, {"kind": "macro", "line": 47, "name": "SIL_BOTTOM"}, {"kind": "macro", "line": 48, "name": "SIL_TOP"}, {"kind": "macro", "line": 49, "name": "SIL_BOTH"}, {"kind": "macro", "line": 50, "name": "MAXDRAWSEGS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The actual span/column drawing functions. Here find the main potential for optimization, e.g. inline assembly, different algorithms. include \"doomdef.h\" include \"deh_main.h\" include \"i_system.h\" include \"z_zone.h\" include \"w_wad.h\"", "id": "progs/doomgeneric/r_draw.c", "kind": "module", "label": "r_draw.c", "language": "c", "sha256": "4dd895d535fec9ca", "symbol_count": 20, "symbols": [{"doc": "A column is a vertical slice/span from a wall texture that, given the DOOM style restrictions on the view orientation, will always have constant z depth. Thus a special case loop for very fast rendering can be used. It has also been used with Wolfenstein 3D.", "kind": "function", "line": 102, "name": "R_DrawColumn", "signature": "void R_DrawColumn (void)"}, {"doc": "UNUSED. Loop unrolled. if 0", "kind": "function", "line": 152, "name": "R_DrawColumn", "signature": "void R_DrawColumn (void)"}, {"doc": "endif", "kind": "function", "line": 206, "name": "R_DrawColumnLow", "signature": "void R_DrawColumnLow (void)"}, {"doc": "Framebuffer postprocessing. Creates a fuzzy image by copying pixels from adjacent ones to left and right. Used with an all black colormap, this could create the SHADOW effect, i.e. spectres and invisible players.", "kind": "function", "line": 283, "name": "R_DrawFuzzColumn", "signature": "void R_DrawFuzzColumn (void)"}, {"doc": "low detail mode version", "kind": "function", "line": 341, "name": "R_DrawFuzzColumnLow", "signature": "void R_DrawFuzzColumnLow (void)"}, {"kind": "function", "line": 423, "name": "R_DrawTranslatedColumn", "signature": "void R_DrawTranslatedColumn (void)"}, {"kind": "function", "line": 467, "name": "R_DrawTranslatedColumnLow", "signature": "void R_DrawTranslatedColumnLow (void)"}, {"doc": "R_InitTranslationTables Creates the translation tables to map the green color ramp to gray, brown, red. Assumes a given structure of the PLAYPAL. Could be read from a lump instead.", "kind": "function", "line": 530, "name": "R_InitTranslationTables", "signature": "void R_InitTranslationTables (void)"}, {"doc": "Draws the actual span.", "kind": "function", "line": 590, "name": "R_DrawSpan", "signature": "void R_DrawSpan (void)"}, {"doc": "UNUSED. Loop unrolled by 4. if 0", "kind": "function", "line": 646, "name": "R_DrawSpan", "signature": "void R_DrawSpan (void)"}, {"doc": "Again..", "kind": "function", "line": 719, "name": "R_DrawSpanLow", "signature": "void R_DrawSpanLow (void)"}, {"doc": "R_InitBuffer Creats lookup tables that avoid multiplies and other hazzles for getting the framebuffer address of a pixel to draw.", "kind": "function", "line": 776, "name": "R_InitBuffer", "signature": "void\nR_InitBuffer\n( int\t\twidth,\n int\t\theight )"}, {"doc": "R_FillBackScreen Fills the back screen with a pattern for variable screen sizes Also draws a beveled edge.", "kind": "function", "line": 812, "name": "R_FillBackScreen", "signature": "void R_FillBackScreen (void)"}, {"doc": "Copy a screen buffer.", "kind": "function", "line": 918, "name": "R_VideoErase", "signature": "void\nR_VideoErase\n( unsigned\tofs,\n int\t\tcount )"}, {"doc": "R_DrawViewBorder Draws the border around the view for different size windows?", "kind": "function", "line": 941, "name": "R_DrawViewBorder", "signature": "void R_DrawViewBorder (void)"}, {"kind": "macro", "line": 41, "name": "MAXWIDTH"}, {"kind": "macro", "line": 42, "name": "MAXHEIGHT"}, {"kind": "macro", "line": 45, "name": "SBARHEIGHT"}, {"kind": "macro", "line": 257, "name": "FUZZTABLE"}, {"kind": "macro", "line": 258, "name": "FUZZOFF"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __R_DRAW__ define __R_DRAW__", "id": "progs/doomgeneric/r_draw.h", "kind": "module", "label": "r_draw.h", "language": "h", "sha256": "ae74309c90e0e5a7", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__R_DRAW__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh (R_*) module, global header. All the rendering/drawing stuff is here. ifndef __R_LOCAL__ define __R_LOCAL__ Binary Angles, sine/cosine/atan lookups. include \"tables.h\" Screen size related parameters. include \"doomdef.h\" Include the refresh/render data structs. include \"r_data.h\"", "id": "progs/doomgeneric/r_local.h", "kind": "module", "label": "r_local.h", "language": "h", "sha256": "e957f7e74dcbff58", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__R_LOCAL__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Rendering main loop and setup functions, utility functions (BSP, geometry, trigonometry). See tables.c, too. include include include \"doomdef.h\" include \"d_loop.h\"", "id": "progs/doomgeneric/r_main.c", "kind": "module", "label": "r_main.c", "language": "c", "sha256": "ba9b91175144c619", "symbol_count": 19, "symbols": [{"doc": "R_AddPointToBox Expand a given bbox so that it encloses a given point.", "kind": "function", "line": 122, "name": "R_AddPointToBox", "signature": "void\nR_AddPointToBox\n( int\t\tx,\n int\t\ty,\n fixed_t*\tbox )"}, {"doc": "R_PointOnSide Traverse BSP (sub) tree, check point against partition plane. Returns side 0 (front) or 1 (back).", "kind": "function", "line": 145, "name": "R_PointOnSide", "signature": "int\nR_PointOnSide\n( fixed_t\tx,\n fixed_t\ty,\n node_t*\tnode )"}, {"kind": "function", "line": 196, "name": "R_PointOnSegSide", "signature": "int\nR_PointOnSegSide\n( fixed_t\tx,\n fixed_t\ty,\n seg_t*\tline )"}, {"kind": "function", "line": 271, "name": "R_PointToAngle", "signature": "angle_t\nR_PointToAngle\n( fixed_t\tx,\n fixed_t\ty )"}, {"kind": "function", "line": 359, "name": "R_PointToAngle2", "signature": "angle_t\nR_PointToAngle2\n( fixed_t\tx1,\n fixed_t\ty1,\n fixed_t\tx2,\n fixed_t\ty2 )"}, {"kind": "function", "line": 373, "name": "R_PointToDist", "signature": "fixed_t\nR_PointToDist\n( fixed_t\tx,\n fixed_t\ty )"}, {"doc": "R_InitPointToAngle", "kind": "function", "line": 422, "name": "R_InitPointToAngle", "signature": "void R_InitPointToAngle (void)"}, {"doc": "R_ScaleFromGlobalAngle Returns the texture mapping scale for the current line (horizontal span) at the given angle. rw_distance must be calculated first.", "kind": "function", "line": 449, "name": "R_ScaleFromGlobalAngle", "signature": "fixed_t R_ScaleFromGlobalAngle (angle_t visangle)"}, {"doc": "R_InitTables", "kind": "function", "line": 505, "name": "R_InitTables", "signature": "void R_InitTables (void)"}, {"doc": "R_InitTextureMapping", "kind": "function", "line": 540, "name": "R_InitTextureMapping", "signature": "void R_InitTextureMapping (void)"}, {"doc": "R_InitLightTables Only inits the zlight table, because the scalelight table changes with view size. define DISTMAP\t\t2", "kind": "function", "line": 609, "name": "R_InitLightTables", "signature": "void R_InitLightTables (void)"}, {"kind": "function", "line": 651, "name": "R_SetViewSize", "signature": "void\nR_SetViewSize\n( int\t\tblocks,\n int\t\tdetail )"}, {"doc": "R_ExecuteSetViewSize", "kind": "function", "line": 667, "name": "R_ExecuteSetViewSize", "signature": "void R_ExecuteSetViewSize (void)"}, {"doc": "R_Init", "kind": "function", "line": 764, "name": "R_Init", "signature": "void R_Init (void)"}, {"doc": "R_PointInSubsector", "kind": "function", "line": 793, "name": "R_PointInSubsector", "signature": "subsector_t*\nR_PointInSubsector\n( fixed_t\tx,\n fixed_t\ty )"}, {"doc": "R_SetupFrame", "kind": "function", "line": 823, "name": "R_SetupFrame", "signature": "void R_SetupFrame (player_t* player)"}, {"doc": "R_RenderView", "kind": "function", "line": 863, "name": "R_RenderPlayerView", "signature": "void R_RenderPlayerView (player_t* player)"}, {"kind": "macro", "line": 43, "name": "FIELDOFVIEW"}, {"kind": "macro", "line": 608, "name": "DISTMAP"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __R_MAIN__ define __R_MAIN__ include \"d_player.h\" include \"r_data.h\" POV related.", "id": "progs/doomgeneric/r_main.h", "kind": "module", "label": "r_main.h", "language": "h", "sha256": "7f3fc133ec079dce", "symbol_count": 8, "symbols": [{"kind": "macro", "line": 21, "name": "__R_MAIN__"}, {"kind": "macro", "line": 61, "name": "LIGHTLEVELS"}, {"kind": "macro", "line": 62, "name": "LIGHTSEGSHIFT"}, {"kind": "macro", "line": 63, "name": "MAXLIGHTSCALE"}, {"kind": "macro", "line": 65, "name": "LIGHTSCALESHIFT"}, {"kind": "macro", "line": 66, "name": "MAXLIGHTZ"}, {"kind": "macro", "line": 67, "name": "LIGHTZSHIFT"}, {"kind": "macro", "line": 79, "name": "NUMCOLORMAPS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Here is a core component: drawing the floors and ceilings, while maintaining a per column clipping list only. Moreover, the sky areas have to be determined. include include include \"i_system.h\" include \"z_zone.h\" include \"w_wad.h\" include \"doomdef.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/r_plane.c", "kind": "module", "label": "r_plane.c", "language": "c", "sha256": "0491f8aba11f68d3", "symbol_count": 9, "symbols": [{"doc": "R_InitPlanes Only at game startup.", "kind": "function", "line": 94, "name": "R_InitPlanes", "signature": "void R_InitPlanes (void)"}, {"doc": "R_MapPlane Uses global vars: planeheight ds_source basexscale baseyscale viewx viewy BASIC PRIMITIVE", "kind": "function", "line": 113, "name": "R_MapPlane", "signature": "void\nR_MapPlane\n( int\t\ty,\n int\t\tx1,\n int\t\tx2 )"}, {"doc": "R_ClearPlanes At begining of frame.", "kind": "function", "line": 178, "name": "R_ClearPlanes", "signature": "void R_ClearPlanes (void)"}, {"doc": "R_FindPlane", "kind": "function", "line": 210, "name": "R_FindPlane", "signature": "visplane_t*\nR_FindPlane\n( fixed_t\theight,\n int\t\tpicnum,\n int\t\tlightlevel )"}, {"doc": "R_CheckPlane", "kind": "function", "line": 258, "name": "R_CheckPlane", "signature": "visplane_t*\nR_CheckPlane\n( visplane_t*\tpl,\n int\t\tstart,\n int\t\tstop )"}, {"doc": "R_MakeSpans", "kind": "function", "line": 323, "name": "R_MakeSpans", "signature": "void\nR_MakeSpans\n( int\t\tx,\n int\t\tt1,\n int\t\tb1,\n int\t\tt2,\n int\t\tb2 )"}, {"doc": "R_DrawPlanes At the end of each frame.", "kind": "function", "line": 360, "name": "R_DrawPlanes", "signature": "void R_DrawPlanes (void)"}, {"kind": "macro", "line": 45, "name": "MAXVISPLANES"}, {"kind": "macro", "line": 52, "name": "MAXOPENINGS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh, visplane stuff (floor, ceilings). ifndef __R_PLANE__ define __R_PLANE__ include \"r_data.h\" Visplane related.", "id": "progs/doomgeneric/r_plane.h", "kind": "module", "label": "r_plane.h", "language": "h", "sha256": "5504155916606261", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__R_PLANE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: All the clipping: columns, horizontal spans, sky columns. include include include \"i_system.h\" include \"doomdef.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/r_segs.c", "kind": "module", "label": "r_segs.c", "language": "c", "sha256": "b5ca495e19c756e0", "symbol_count": 5, "symbols": [{"doc": "R_RenderMaskedSegRange", "kind": "function", "line": 95, "name": "R_RenderMaskedSegRange", "signature": "void\nR_RenderMaskedSegRange\n( drawseg_t*\tds,\n int\t\tx1,\n int\t\tx2 )"}, {"doc": "R_RenderSegLoop Draws zero, one, or two textures (and possibly a masked texture) for walls. Can draw or mark the starting pixel of floor and ceiling textures. CALLED: CORE LOOPING ROUTINE. define HEIGHTBITS\t\t12 define HEIGHTUNIT\t\t(1< include include \"deh_main.h\" include \"doomdef.h\" include \"i_swap.h\" include \"i_system.h\"", "id": "progs/doomgeneric/r_things.c", "kind": "module", "label": "r_things.c", "language": "c", "sha256": "c61d74050f6eb59f", "symbol_count": 16, "symbols": [{"doc": "R_InstallSpriteLump Local function for R_InitSprites.", "kind": "function", "line": 99, "name": "R_InstallSpriteLump", "signature": "void\nR_InstallSpriteLump\n( int\t\tlump,\n unsigned\tframe,\n unsigned\trotation,\n boolean\tflipped )"}, {"doc": "R_InitSpriteDefs Pass a null terminated list of sprite names (4 chars exactly) to be used. Builds the sprite rotation matrixes to account for horizontally flipped sprites. Will report an error if the lumps are inconsistant. Only called at startup. Sprite lump names are 4 characters for the actor, a letter for the frame, and a number for the rotation. A sprite that is flippable will have an additional letter/number appended. The rotation character can be 0 to signify no rotations.", "kind": "function", "line": 171, "name": "R_InitSpriteDefs", "signature": "void R_InitSpriteDefs (char** namelist)"}, {"doc": "R_InitSprites Called at program start.", "kind": "function", "line": 291, "name": "R_InitSprites", "signature": "void R_InitSprites (char** namelist)"}, {"doc": "R_ClearSprites Called at frame start.", "kind": "function", "line": 309, "name": "R_ClearSprites", "signature": "void R_ClearSprites (void)"}, {"kind": "function", "line": 319, "name": "R_NewVisSprite", "signature": "vissprite_t* R_NewVisSprite (void)"}, {"kind": "function", "line": 342, "name": "R_DrawMaskedColumn", "signature": "void R_DrawMaskedColumn (column_t* column)"}, {"doc": "R_DrawVisSprite mfloorclip and mceilingclip should also be set.", "kind": "function", "line": 388, "name": "R_DrawVisSprite", "signature": "void\nR_DrawVisSprite\n( vissprite_t*\t\tvis,\n int\t\t\tx1,\n int\t\t\tx2 )"}, {"doc": "R_ProjectSprite Generates a vissprite for a thing if it might be visible.", "kind": "function", "line": 444, "name": "R_ProjectSprite", "signature": "void R_ProjectSprite (mobj_t* thing)"}, {"doc": "R_AddSprites During BSP traversal, this adds sprites by sector.", "kind": "function", "line": 605, "name": "R_AddSprites", "signature": "void R_AddSprites (sector_t* sec)"}, {"doc": "R_DrawPSprite", "kind": "function", "line": 638, "name": "R_DrawPSprite", "signature": "void R_DrawPSprite (pspdef_t* psp)"}, {"doc": "R_DrawPlayerSprites", "kind": "function", "line": 738, "name": "R_DrawPlayerSprites", "signature": "void R_DrawPlayerSprites (void)"}, {"kind": "function", "line": 777, "name": "R_SortVisSprites", "signature": "void R_SortVisSprites (void)"}, {"kind": "function", "line": 837, "name": "R_DrawSprite", "signature": "void R_DrawSprite (vissprite_t* spr)"}, {"doc": "R_DrawMasked", "kind": "function", "line": 951, "name": "R_DrawMasked", "signature": "void R_DrawMasked (void)"}, {"kind": "macro", "line": 37, "name": "MINZ"}, {"kind": "macro", "line": 41, "name": "BASEYCENTER"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Rendering of moving objects, sprites. ifndef __R_THINGS__ define __R_THINGS__ define MAXVISSPRITES \t128", "id": "progs/doomgeneric/r_things.h", "kind": "module", "label": "r_things.h", "language": "h", "sha256": "3628a47c278f0940", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 21, "name": "__R_THINGS__"}, {"kind": "macro", "line": 22, "name": "MAXVISSPRITES"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none include include include \"i_sound.h\" include \"i_system.h\" include \"doomfeatures.h\" include \"deh_str.h\" include \"doomstat.h\" include \"doomtype.h\" include \"sounds.h\"", "id": "progs/doomgeneric/s_sound.c", "kind": "module", "label": "s_sound.c", "language": "c", "sha256": "d2124f7ccb1e8590", "symbol_count": 24, "symbols": [{"doc": "Initializes sound stuff, including volume Sets channels, SFX and music volume, allocates channel buffer, sets S_sfx lookup.", "kind": "function", "line": 113, "name": "S_Init", "signature": "void S_Init(int sfxVolume, int musicVolume)"}, {"kind": "function", "line": 145, "name": "S_Shutdown", "signature": "void S_Shutdown(void)"}, {"kind": "function", "line": 151, "name": "S_StopChannel", "signature": "static void S_StopChannel(int cnum)"}, {"doc": "Per level startup code. Kills playing sounds at start of level, determines music if any, changes music.", "kind": "function", "line": 190, "name": "S_Start", "signature": "void S_Start(void)"}, {"kind": "function", "line": 242, "name": "S_StopSound", "signature": "void S_StopSound(mobj_t *origin)"}, {"doc": "S_GetChannel : If none available, return -1. Otherwise channel #.", "kind": "function", "line": 261, "name": "S_GetChannel", "signature": "static int S_GetChannel(mobj_t *origin, sfxinfo_t *sfxinfo)"}, {"doc": "Changes volume and stereo-separation variables from the norm of a sound effect to be played. If the sound is not audible, returns a 0. Otherwise, modifies parameters and returns 1.", "kind": "function", "line": 322, "name": "S_AdjustSoundParams", "signature": "static int S_AdjustSoundParams(mobj_t *listener, mobj_t *source,\n i..."}, {"kind": "function", "line": 390, "name": "S_StartSound", "signature": "void S_StartSound(void *origin_p, int sfx_id)"}, {"doc": "Stop and resume music, during game PAUSE.", "kind": "function", "line": 481, "name": "S_PauseSound", "signature": "void S_PauseSound(void)"}, {"kind": "function", "line": 490, "name": "S_ResumeSound", "signature": "void S_ResumeSound(void)"}, {"doc": "Updates music & sounds", "kind": "function", "line": 503, "name": "S_UpdateSounds", "signature": "void S_UpdateSounds(mobj_t *listener)"}, {"kind": "function", "line": 570, "name": "S_SetMusicVolume", "signature": "void S_SetMusicVolume(int volume)"}, {"kind": "function", "line": 581, "name": "S_SetSfxVolume", "signature": "void S_SetSfxVolume(int volume)"}, {"doc": "Starts some music with the music id found in sounds.h.", "kind": "function", "line": 595, "name": "S_StartMusic", "signature": "void S_StartMusic(int m_id)"}, {"kind": "function", "line": 600, "name": "S_ChangeMusic", "signature": "void S_ChangeMusic(int musicnum, int looping)"}, {"kind": "function", "line": 648, "name": "S_MusicPlaying", "signature": "boolean S_MusicPlaying(void)"}, {"kind": "function", "line": 653, "name": "S_StopMusic", "signature": "void S_StopMusic(void)"}, {"kind": "macro", "line": 43, "name": "S_CLIPPING_DIST"}, {"kind": "macro", "line": 51, "name": "S_CLOSE_DIST"}, {"kind": "macro", "line": 55, "name": "S_ATTENUATOR"}, {"kind": "macro", "line": 59, "name": "S_STEREO_SWING"}, {"kind": "macro", "line": 61, "name": "NORM_PITCH"}, {"kind": "macro", "line": 63, "name": "NORM_PRIORITY"}, {"kind": "macro", "line": 64, "name": "NORM_SEP"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The not so system specific sound interface. ifndef __S_SOUND__ define __S_SOUND__ include \"p_mobj.h\" include \"sounds.h\" Initializes sound stuff, including volume Sets channels, SFX and music volume, allocates channel buffer, sets S_sfx lookup.", "id": "progs/doomgeneric/s_sound.h", "kind": "module", "label": "s_sound.h", "language": "h", "sha256": "6017183cd13e0af8", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__S_SOUND__"}]}, {"doc": "sha1.c - SHA1 hash function", "id": "progs/doomgeneric/sha1.c", "kind": "module", "label": "sha1.c", "language": "c", "sha256": "7710f6a55bd9906a", "symbol_count": 19, "symbols": [{"doc": "include \"i_swap.h\" include \"sha1.h\"", "kind": "function", "line": 39, "name": "SHA1_Init", "signature": "void SHA1_Init(sha1_context_t *hd)"}, {"doc": "Transform the message X which consists of 16 32-bit-words", "kind": "function", "line": 55, "name": "Transform", "signature": "static void Transform(sha1_context_t *hd, byte *data)"}, {"doc": "Update the message digest with the contents of INBUF with length INLEN.", "kind": "function", "line": 198, "name": "SHA1_Update", "signature": "void SHA1_Update(sha1_context_t *hd, byte *inbuf, size_t inlen)"}, {"doc": "The routine final terminates the computation and returns the digest. The handle is prepared for a new cycle, but adding bytes to the handle will the destroy the returned buffer. Returns: 20 bytes representing the digest.", "kind": "function", "line": 237, "name": "SHA1_Final", "signature": "void SHA1_Final(sha1_digest_t digest, sha1_context_t *hd)"}, {"kind": "function", "line": 302, "name": "SHA1_UpdateInt32", "signature": "void SHA1_UpdateInt32(sha1_context_t *context, unsigned int val)"}, {"kind": "function", "line": 314, "name": "SHA1_UpdateString", "signature": "void SHA1_UpdateString(sha1_context_t *context, char *str)"}, {"kind": "macro", "line": 82, "name": "K1"}, {"kind": "macro", "line": 85, "name": "K2"}, {"kind": "macro", "line": 86, "name": "K3"}, {"kind": "macro", "line": 87, "name": "K4"}, {"kind": "macro", "line": 88, "name": "F1"}, {"kind": "macro", "line": 89, "name": "F2"}, {"kind": "macro", "line": 90, "name": "F3"}, {"kind": "macro", "line": 91, "name": "F4"}, {"kind": "macro", "line": 92, "name": "rol"}, {"kind": "macro", "line": 94, "name": "M"}, {"kind": "macro", "line": 98, "name": "R"}, {"kind": "macro", "line": 288, "name": "X"}, {"kind": "macro", "line": 290, "name": "X"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: SHA-1 digest. ifndef __SHA1_H__ define __SHA1_H__ include \"doomtype.h\"", "id": "progs/doomgeneric/sha1.h", "kind": "module", "label": "sha1.h", "language": "h", "sha256": "7241c811244064ac", "symbol_count": 2, "symbols": [{"kind": "struct", "line": 26, "name": "sha1_context_s"}, {"kind": "macro", "line": 19, "name": "__SHA1_H__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Created by a sound utility. Kept as a sample, DOOM2 sounds. include include \"doomtype.h\" include \"sounds.h\" Information about all the music", "id": "progs/doomgeneric/sounds.c", "kind": "module", "label": "sounds.c", "language": "c", "sha256": "42fd2091c541a304", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 30, "name": "MUSIC"}, {"kind": "macro", "line": 110, "name": "SOUND"}, {"kind": "macro", "line": 113, "name": "SOUND_LINK"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Created by the sound utility written by Dave Taylor. Kept as a sample, DOOM2 sounds. Frozen. ifndef __SOUNDS__ define __SOUNDS__ include \"i_sound.h\" the complete set of sound effects", "id": "progs/doomgeneric/sounds.h", "kind": "module", "label": "sounds.h", "language": "h", "sha256": "37ccad4758ff5456", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__SOUNDS__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The status bar widget code. include include include \"deh_main.h\" include \"doomdef.h\" include \"z_zone.h\" include \"v_video.h\" include \"i_swap.h\" include \"i_system.h\"", "id": "progs/doomgeneric/st_lib.c", "kind": "module", "label": "st_lib.c", "language": "c", "sha256": "5b70f1ae6edf98f6", "symbol_count": 10, "symbols": [{"kind": "function", "line": 50, "name": "STlib_init", "signature": "void STlib_init(void)"}, {"doc": "?", "kind": "function", "line": 58, "name": "STlib_initNum", "signature": "void\nSTlib_initNum\n( st_number_t*\t\tn,\n int\t\t\tx,\n int\t\t\ty,\n patch_t**\t\tpl,\n int*\t\t\tnum,\n bool..."}, {"doc": "A fairly efficient way to draw a number based on differences from the old number. Note: worth the trouble?", "kind": "function", "line": 83, "name": "STlib_drawNum", "signature": "void\nSTlib_drawNum\n( st_number_t*\tn,\n boolean\trefresh )"}, {"kind": "function", "line": 145, "name": "STlib_updateNum", "signature": "void\nSTlib_updateNum\n( st_number_t*\t\tn,\n boolean\t\trefresh )"}, {"kind": "function", "line": 155, "name": "STlib_initPercent", "signature": "void\nSTlib_initPercent\n( st_percent_t*\t\tp,\n int\t\t\tx,\n int\t\t\ty,\n patch_t**\t\tpl,\n int*\t\t\tnum,\n ..."}, {"kind": "function", "line": 168, "name": "STlib_updatePercent", "signature": "void\nSTlib_updatePercent\n( st_percent_t*\t\tper,\n int\t\t\trefresh )"}, {"kind": "function", "line": 182, "name": "STlib_initMultIcon", "signature": "void\nSTlib_initMultIcon\n( st_multicon_t*\ti,\n int\t\t\tx,\n int\t\t\ty,\n patch_t**\t\til,\n int*\t\t\tinum,..."}, {"kind": "function", "line": 201, "name": "STlib_updateMultIcon", "signature": "void\nSTlib_updateMultIcon\n( st_multicon_t*\tmi,\n boolean\t\trefresh )"}, {"kind": "function", "line": 232, "name": "STlib_initBinIcon", "signature": "void\nSTlib_initBinIcon\n( st_binicon_t*\t\tb,\n int\t\t\tx,\n int\t\t\ty,\n patch_t*\t\ti,\n boolean*\t\tval,\n..."}, {"kind": "function", "line": 251, "name": "STlib_updateBinIcon", "signature": "void\nSTlib_updateBinIcon\n( st_binicon_t*\t\tbi,\n boolean\t\trefresh )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The status bar widget code. ifndef __STLIB__ define __STLIB__ We are referring to patches. include \"r_defs.h\" Typedefs of widgets Number widget", "id": "progs/doomgeneric/st_lib.h", "kind": "module", "label": "st_lib.h", "language": "h", "sha256": "da574c940d1ca5a2", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 20, "name": "__STLIB__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Status bar code. Does the face/direction indicator animatin. Does palette indicators as well (red pain/berserk, bright pickup) include include \"i_system.h\" include \"i_video.h\" include \"z_zone.h\" include \"m_misc.h\" include \"m_random.h\" include \"w_wad.h\"", "id": "progs/doomgeneric/st_stuff.c", "kind": "module", "label": "st_stuff.c", "language": "c", "sha256": "6996329b0c886afa", "symbol_count": 137, "symbols": [{"kind": "function", "line": 415, "name": "ST_refreshBackground", "signature": "void ST_refreshBackground(void)"}, {"doc": "Respond to keyboard input events, intercept cheats.", "kind": "function", "line": 438, "name": "ST_Responder", "signature": "boolean\nST_Responder (event_t* ev)"}, {"kind": "function", "line": 662, "name": "ST_calcPainOffset", "signature": "int ST_calcPainOffset(void)"}, {"doc": "This is a not-very-pretty routine which handles the face states and their timing. the precedence of expressions is: dead > evil grin > turned head > straight ahead", "kind": "function", "line": 688, "name": "ST_updateFaceWidget", "signature": "void ST_updateFaceWidget(void)"}, {"kind": "function", "line": 859, "name": "ST_updateWidgets", "signature": "void ST_updateWidgets(void)"}, {"kind": "function", "line": 923, "name": "ST_Ticker", "signature": "void ST_Ticker (void)"}, {"kind": "function", "line": 935, "name": "ST_doPaletteStuff", "signature": "void ST_doPaletteStuff(void)"}, {"kind": "function", "line": 1000, "name": "ST_drawWidgets", "signature": "void ST_drawWidgets(boolean refresh)"}, {"kind": "function", "line": 1035, "name": "ST_doRefresh", "signature": "void ST_doRefresh(void)"}, {"kind": "function", "line": 1048, "name": "ST_diffDraw", "signature": "void ST_diffDraw(void)"}, {"kind": "function", "line": 1054, "name": "ST_Drawer", "signature": "void ST_Drawer (boolean fullscreen, boolean refresh)"}, {"doc": "Iterates through all graphics to be loaded or unloaded, along with the variable they use, invoking the specified callback function.", "kind": "function", "line": 1075, "name": "ST_loadUnloadGraphics", "signature": "static void ST_loadUnloadGraphics(load_callback_t callback)"}, {"kind": "function", "line": 1161, "name": "ST_loadCallback", "signature": "static void ST_loadCallback(char *lumpname, patch_t **variable)"}, {"kind": "function", "line": 1166, "name": "ST_loadGraphics", "signature": "void ST_loadGraphics(void)"}, {"kind": "function", "line": 1171, "name": "ST_loadData", "signature": "void ST_loadData(void)"}, {"kind": "function", "line": 1177, "name": "ST_unloadCallback", "signature": "static void ST_unloadCallback(char *lumpname, patch_t **variable)"}, {"kind": "function", "line": 1183, "name": "ST_unloadGraphics", "signature": "void ST_unloadGraphics(void)"}, {"kind": "function", "line": 1188, "name": "ST_unloadData", "signature": "void ST_unloadData(void)"}, {"kind": "function", "line": 1193, "name": "ST_initData", "signature": "void ST_initData(void)"}, {"kind": "function", "line": 1224, "name": "ST_createWidgets", "signature": "void ST_createWidgets(void)"}, {"kind": "function", "line": 1387, "name": "ST_Start", "signature": "void ST_Start (void)"}, {"kind": "function", "line": 1400, "name": "ST_Stop", "signature": "void ST_Stop (void)"}, {"kind": "function", "line": 1410, "name": "ST_Init", "signature": "void ST_Init (void)"}, {"kind": "macro", "line": 68, "name": "STARTREDPALS"}, {"kind": "macro", "line": 69, "name": "STARTBONUSPALS"}, {"kind": "macro", "line": 70, "name": "NUMREDPALS"}, {"kind": "macro", "line": 71, "name": "NUMBONUSPALS"}, {"kind": "macro", "line": 73, "name": "RADIATIONPAL"}, {"kind": "macro", "line": 77, "name": "ST_FACEPROBABILITY"}, {"kind": "macro", "line": 80, "name": "ST_TOGGLECHAT"}, {"kind": "macro", "line": 83, "name": "ST_X"}, {"kind": "macro", "line": 84, "name": "ST_X2"}, {"kind": "macro", "line": 85, "name": "ST_FX"}, {"kind": "macro", "line": 87, "name": "ST_FY"}, {"kind": "macro", "line": 91, "name": "ST_TALLNUMWIDTH"}, {"kind": "macro", "line": 94, "name": "ST_NUMPAINFACES"}, {"kind": "macro", "line": 95, "name": "ST_NUMSTRAIGHTFACES"}, {"kind": "macro", "line": 96, "name": "ST_NUMTURNFACES"}, {"kind": "macro", "line": 97, "name": "ST_NUMSPECIALFACES"}, {"kind": "macro", "line": 98, "name": "ST_FACESTRIDE"}, {"kind": "macro", "line": 101, "name": "ST_NUMEXTRAFACES"}, {"kind": "macro", "line": 103, "name": "ST_NUMFACES"}, {"kind": "macro", "line": 106, "name": "ST_TURNOFFSET"}, {"kind": "macro", "line": 108, "name": "ST_OUCHOFFSET"}, {"kind": "macro", "line": 109, "name": "ST_EVILGRINOFFSET"}, {"kind": "macro", "line": 110, "name": "ST_RAMPAGEOFFSET"}, {"kind": "macro", "line": 111, "name": "ST_GODFACE"}, {"kind": "macro", "line": 112, "name": "ST_DEADFACE"}, {"kind": "macro", "line": 113, "name": "ST_FACESX"}, {"kind": "macro", "line": 115, "name": "ST_FACESY"}, {"kind": "macro", "line": 116, "name": "ST_EVILGRINCOUNT"}, {"kind": "macro", "line": 118, "name": "ST_STRAIGHTFACECOUNT"}, {"kind": "macro", "line": 119, "name": "ST_TURNCOUNT"}, {"kind": "macro", "line": 120, "name": "ST_OUCHCOUNT"}, {"kind": "macro", "line": 121, "name": "ST_RAMPAGEDELAY"}, {"kind": "macro", "line": 122, "name": "ST_MUCHPAIN"}, {"kind": "macro", "line": 135, "name": "ST_AMMOWIDTH"}, {"kind": "macro", "line": 136, "name": "ST_AMMOX"}, {"kind": "macro", "line": 137, "name": "ST_AMMOY"}, {"kind": "macro", "line": 140, "name": "ST_HEALTHWIDTH"}, {"kind": "macro", "line": 141, "name": "ST_HEALTHX"}, {"kind": "macro", "line": 142, "name": "ST_HEALTHY"}, {"kind": "macro", "line": 145, "name": "ST_ARMSX"}, {"kind": "macro", "line": 146, "name": "ST_ARMSY"}, {"kind": "macro", "line": 147, "name": "ST_ARMSBGX"}, {"kind": "macro", "line": 148, "name": "ST_ARMSBGY"}, {"kind": "macro", "line": 149, "name": "ST_ARMSXSPACE"}, {"kind": "macro", "line": 150, "name": "ST_ARMSYSPACE"}, {"kind": "macro", "line": 153, "name": "ST_FRAGSX"}, {"kind": "macro", "line": 154, "name": "ST_FRAGSY"}, {"kind": "macro", "line": 155, "name": "ST_FRAGSWIDTH"}, {"kind": "macro", "line": 158, "name": "ST_ARMORWIDTH"}, {"kind": "macro", "line": 159, "name": "ST_ARMORX"}, {"kind": "macro", "line": 160, "name": "ST_ARMORY"}, {"kind": "macro", "line": 163, "name": "ST_KEY0WIDTH"}, {"kind": "macro", "line": 164, "name": "ST_KEY0HEIGHT"}, {"kind": "macro", "line": 165, "name": "ST_KEY0X"}, {"kind": "macro", "line": 166, "name": "ST_KEY0Y"}, {"kind": "macro", "line": 167, "name": "ST_KEY1WIDTH"}, {"kind": "macro", "line": 168, "name": "ST_KEY1X"}, {"kind": "macro", "line": 169, "name": "ST_KEY1Y"}, {"kind": "macro", "line": 170, "name": "ST_KEY2WIDTH"}, {"kind": "macro", "line": 171, "name": "ST_KEY2X"}, {"kind": "macro", "line": 172, "name": "ST_KEY2Y"}, {"kind": "macro", "line": 175, "name": "ST_AMMO0WIDTH"}, {"kind": "macro", "line": 176, "name": "ST_AMMO0HEIGHT"}, {"kind": "macro", "line": 177, "name": "ST_AMMO0X"}, {"kind": "macro", "line": 178, "name": "ST_AMMO0Y"}, {"kind": "macro", "line": 179, "name": "ST_AMMO1WIDTH"}, {"kind": "macro", "line": 180, "name": "ST_AMMO1X"}, {"kind": "macro", "line": 181, "name": "ST_AMMO1Y"}, {"kind": "macro", "line": 182, "name": "ST_AMMO2WIDTH"}, {"kind": "macro", "line": 183, "name": "ST_AMMO2X"}, {"kind": "macro", "line": 184, "name": "ST_AMMO2Y"}, {"kind": "macro", "line": 185, "name": "ST_AMMO3WIDTH"}, {"kind": "macro", "line": 186, "name": "ST_AMMO3X"}, {"kind": "macro", "line": 187, "name": "ST_AMMO3Y"}, {"kind": "macro", "line": 191, "name": "ST_MAXAMMO0WIDTH"}, {"kind": "macro", "line": 192, "name": "ST_MAXAMMO0HEIGHT"}, {"kind": "macro", "line": 193, "name": "ST_MAXAMMO0X"}, {"kind": "macro", "line": 194, "name": "ST_MAXAMMO0Y"}, {"kind": "macro", "line": 195, "name": "ST_MAXAMMO1WIDTH"}, {"kind": "macro", "line": 196, "name": "ST_MAXAMMO1X"}, {"kind": "macro", "line": 197, "name": "ST_MAXAMMO1Y"}, {"kind": "macro", "line": 198, "name": "ST_MAXAMMO2WIDTH"}, {"kind": "macro", "line": 199, "name": "ST_MAXAMMO2X"}, {"kind": "macro", "line": 200, "name": "ST_MAXAMMO2Y"}, {"kind": "macro", "line": 201, "name": "ST_MAXAMMO3WIDTH"}, {"kind": "macro", "line": 202, "name": "ST_MAXAMMO3X"}, {"kind": "macro", "line": 203, "name": "ST_MAXAMMO3Y"}, {"kind": "macro", "line": 206, "name": "ST_WEAPON0X"}, {"kind": "macro", "line": 207, "name": "ST_WEAPON0Y"}, {"kind": "macro", "line": 210, "name": "ST_WEAPON1X"}, {"kind": "macro", "line": 211, "name": "ST_WEAPON1Y"}, {"kind": "macro", "line": 214, "name": "ST_WEAPON2X"}, {"kind": "macro", "line": 215, "name": "ST_WEAPON2Y"}, {"kind": "macro", "line": 218, "name": "ST_WEAPON3X"}, {"kind": "macro", "line": 219, "name": "ST_WEAPON3Y"}, {"kind": "macro", "line": 222, "name": "ST_WEAPON4X"}, {"kind": "macro", "line": 223, "name": "ST_WEAPON4Y"}, {"kind": "macro", "line": 226, "name": "ST_WEAPON5X"}, {"kind": "macro", "line": 227, "name": "ST_WEAPON5Y"}, {"kind": "macro", "line": 230, "name": "ST_WPNSX"}, {"kind": "macro", "line": 231, "name": "ST_WPNSY"}, {"kind": "macro", "line": 234, "name": "ST_DETHX"}, {"kind": "macro", "line": 235, "name": "ST_DETHY"}, {"kind": "macro", "line": 241, "name": "ST_MSGTEXTX"}, {"kind": "macro", "line": 242, "name": "ST_MSGTEXTY"}, {"kind": "macro", "line": 244, "name": "ST_MSGWIDTH"}, {"kind": "macro", "line": 246, "name": "ST_MSGHEIGHT"}, {"kind": "macro", "line": 247, "name": "ST_OUTTEXTX"}, {"kind": "macro", "line": 249, "name": "ST_OUTTEXTY"}, {"kind": "macro", "line": 252, "name": "ST_OUTWIDTH"}, {"kind": "macro", "line": 254, "name": "ST_OUTHEIGHT"}, {"kind": "macro", "line": 255, "name": "ST_MAPTITLEX"}, {"kind": "macro", "line": 258, "name": "ST_MAPTITLEY"}, {"kind": "macro", "line": 260, "name": "ST_MAPHEIGHT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Status bar code. Does the face/direction indicator animatin. Does palette indicators as well (red pain/berserk, bright pickup) ifndef __STSTUFF_H__ define __STSTUFF_H__ include \"doomtype.h\" include \"d_event.h\" include \"m_cheat.h\" Size of statusbar. Now sensitive for scaling. define ST_HEIGHT\t32", "id": "progs/doomgeneric/st_stuff.h", "kind": "module", "label": "st_stuff.h", "language": "h", "sha256": "17db201d36cf1f30", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 22, "name": "__STSTUFF_H__"}, {"kind": "macro", "line": 30, "name": "ST_HEIGHT"}, {"kind": "macro", "line": 31, "name": "ST_WIDTH"}, {"kind": "macro", "line": 32, "name": "ST_Y"}]}, {"id": "progs/doomgeneric/statdump.c", "kind": "module", "label": "statdump.c", "language": "c", "sha256": "8fb06b4ebdd1d4a1", "symbol_count": 11, "symbols": [{"doc": "Try to work out whether this is a Doom 1 or Doom 2 game, by looking at the episode and map, and the par times. This is used to decide how to format the level name. Unfortunately, in some cases it is * impossible to determine whether this is Doom 1 or Doom 2.", "kind": "function", "line": 70, "name": "DiscoverGamemode", "signature": "static void DiscoverGamemode(wbstartstruct_t *stats, int num_stats)"}, {"doc": "if (partime != doom1_par_times[level] * TICRATE && partime == doom2_par_times[level] * TICRATE) { discovered_gamemission = doom2; return; } } } #endif #if ORIGCODE /* Returns the number of players active in the given stats buffer.", "kind": "function", "line": 129, "name": "GetNumPlayers", "signature": "static int GetNumPlayers(wbstartstruct_t *stats)"}, {"doc": "if ORIGCODE", "kind": "function", "line": 149, "name": "PrintBanner", "signature": "static void PrintBanner(FILE *stream)"}, {"kind": "function", "line": 154, "name": "PrintPercentage", "signature": "static void PrintPercentage(FILE *stream, int amount, int total)"}, {"doc": "statdump.exe is a 16-bit program, so very occasionally an integer overflow can occur when doing this calculation with a large value. Therefore, cast to short to give the same output. fprintf(stream, \" (%i%%)\", (short) (amount * 100) / total); } } #endif #if ORIGCODE /* Display statistics for a single player.", "kind": "function", "line": 179, "name": "PrintPlayerStats", "signature": "static void PrintPlayerStats(FILE *stream, wbstartstruct_t *stats,\n int player_num)"}, {"doc": "fprintf(stream, \"\\n\"); /* Secrets percentage fprintf(stream, \"\\tSecrets: \"); PrintPercentage(stream, player->ssecret, stats->maxsecret); fprintf(stream, \"\\n\"); } #endif #if ORIGCODE /* Frags table for multiplayer games.", "kind": "function", "line": 212, "name": "PrintFragsTable", "signature": "static void PrintFragsTable(FILE *stream, wbstartstruct_t *stats)"}, {"doc": "} fprintf(stream, \"\\n\"); } fprintf(stream, \"\\t\\t|\\n\"); fprintf(stream, \"\\t KILLERS\\n\"); } #endif #if ORIGCODE /* Displays the level name: MAPxy or ExMy, depending on game mode.", "kind": "function", "line": 271, "name": "PrintLevelName", "signature": "static void PrintLevelName(FILE *stream, int episode, int level)"}, {"doc": "case none: fprintf(stream, \"E%iM%i / MAP%02i\\n\", episode + 1, level + 1, level + 1); break; } PrintBanner(stream); } #endif #if ORIGCODE /* Print details of a statistics buffer to the given file.", "kind": "function", "line": 300, "name": "PrintStats", "signature": "static void PrintStats(FILE *stream, wbstartstruct_t *stats)"}, {"doc": "endif", "kind": "function", "line": 332, "name": "StatCopy", "signature": "void StatCopy(wbstartstruct_t *stats)"}, {"kind": "function", "line": 342, "name": "StatDump", "signature": "void StatDump(void)"}, {"kind": "macro", "line": 55, "name": "MAX_CAPTURES"}]}, {"id": "progs/doomgeneric/statdump.h", "kind": "module", "label": "statdump.h", "language": "h", "sha256": "1c3b72b93018ad17", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 18, "name": "DOOM_STATDUMP_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Lookup tables. Do not try to look them up :-). In the order of appearance: int finetangent[4096]\t- Tangens LUT. Should work with BAM fairly well (12 of 16bit, effectively, by shifting). int finesine[10240]\t\t- Sine lookup. Guess what, serves as cosine, too. Remarkable thing is, how to use BAMs with this? int tantoangle[2049]\t- ArcTan LUT, maps tan(angle) to angle fast. Gotta search.", "id": "progs/doomgeneric/tables.c", "kind": "module", "label": "tables.c", "language": "c", "sha256": "4355b79ded36cdd5", "symbol_count": 1, "symbols": [{"doc": "to get a global angle from cartesian coordinates, the coordinates are flipped until they are in the first octant of the coordinate system, then the y (<=x) is scaled and divided by x to get a tangent (slope) value which is looked up in the tantoangle[] table. The +1 size is to handle the case when x==y without additional checking.", "kind": "function", "line": 40, "name": "SlopeDiv", "signature": "int SlopeDiv(unsigned int num, unsigned int den)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Lookup tables. Do not try to look them up :-). In the order of appearance: int finetangent[4096]\t- Tangens LUT. Should work with BAM fairly well (12 of 16bit, effectively, by shifting). int finesine[10240]\t\t- Sine lookup. Guess what, serves as cosine, too. Remarkable thing is, how to use BAMs with this? int tantoangle[2049]\t- ArcTan LUT, maps tan(angle) to angle fast. Gotta search.", "id": "progs/doomgeneric/tables.h", "kind": "module", "label": "tables.h", "language": "h", "sha256": "3e3c0203d39966a0", "symbol_count": 15, "symbols": [{"kind": "macro", "line": 35, "name": "__TABLES__"}, {"kind": "macro", "line": 40, "name": "FINEANGLES"}, {"kind": "macro", "line": 42, "name": "FINEMASK"}, {"kind": "macro", "line": 46, "name": "ANGLETOFINESHIFT"}, {"kind": "macro", "line": 62, "name": "ANG45"}, {"kind": "macro", "line": 64, "name": "ANG90"}, {"kind": "macro", "line": 65, "name": "ANG180"}, {"kind": "macro", "line": 66, "name": "ANG270"}, {"kind": "macro", "line": 67, "name": "ANG_MAX"}, {"kind": "macro", "line": 68, "name": "ANG1"}, {"kind": "macro", "line": 70, "name": "ANG60"}, {"kind": "macro", "line": 74, "name": "ANG1_X"}, {"kind": "macro", "line": 76, "name": "SLOPERANGE"}, {"kind": "macro", "line": 78, "name": "SLOPEBITS"}, {"kind": "macro", "line": 79, "name": "DBITS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh/rendering module, shared data struct definitions. ifndef V_PATCH_H define V_PATCH_H Patches. A patch holds one or more columns. Patches are used for sprites and all masked pictures, and we compose textures from the TEXTURE1/2 lists of patches.", "id": "progs/doomgeneric/v_patch.h", "kind": "module", "label": "v_patch.h", "language": "h", "sha256": "bc5556262ef515b6", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "V_PATCH_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Gamma correction LUT stuff. Functions to draw patches (by post) directly to screen. Functions to blit a block to the screen. include include include include \"i_system.h\" include \"doomtype.h\" include \"deh_str.h\"", "id": "progs/doomgeneric/v_video.c", "kind": "module", "label": "v_video.c", "language": "c", "sha256": "20d1de514eba60c8", "symbol_count": 30, "symbols": [{"doc": "V_MarkRect", "kind": "function", "line": 69, "name": "V_MarkRect", "signature": "void V_MarkRect(int x, int y, int width, int height)"}, {"doc": "V_CopyRect", "kind": "function", "line": 85, "name": "V_CopyRect", "signature": "void V_CopyRect(int srcx, int srcy, byte *source,\n int width, int height,\n ..."}, {"doc": "V_SetPatchClipCallback haleyjd 08/28/10: Added for Strife support. By calling this function, you can setup runtime error checking for patch clipping. Strife never caused errors by drawing patches partway off-screen. Some versions of vanilla DOOM also behaved differently than the default implementation, so this could possibly be extended to those as well for accurate emulation.", "kind": "function", "line": 129, "name": "V_SetPatchClipCallback", "signature": "void V_SetPatchClipCallback(vpatchclipfunc_t func)"}, {"doc": "V_DrawPatch Masks a column based masked pic to the screen.", "kind": "function", "line": 138, "name": "V_DrawPatch", "signature": "void V_DrawPatch(int x, int y, patch_t *patch)"}, {"doc": "V_DrawPatchFlipped Masks a column based masked pic to the screen. Flips horizontally, e.g. to mirror face.", "kind": "function", "line": 202, "name": "V_DrawPatchFlipped", "signature": "void V_DrawPatchFlipped(int x, int y, patch_t *patch)"}, {"doc": "V_DrawPatchDirect Draws directly to the screen on the pc.", "kind": "function", "line": 267, "name": "V_DrawPatchDirect", "signature": "void V_DrawPatchDirect(int x, int y, patch_t *patch)"}, {"doc": "V_DrawTLPatch Masks a column based translucent masked pic to the screen.", "kind": "function", "line": 278, "name": "V_DrawTLPatch", "signature": "void V_DrawTLPatch(int x, int y, patch_t * patch)"}, {"doc": "V_DrawXlaPatch villsa [STRIFE] Masks a column based translucent masked pic to the screen.", "kind": "function", "line": 328, "name": "V_DrawXlaPatch", "signature": "void V_DrawXlaPatch(int x, int y, patch_t * patch)"}, {"doc": "V_DrawAltTLPatch Masks a column based translucent masked pic to the screen.", "kind": "function", "line": 377, "name": "V_DrawAltTLPatch", "signature": "void V_DrawAltTLPatch(int x, int y, patch_t * patch)"}, {"doc": "V_DrawShadowedPatch Masks a column based masked pic to the screen.", "kind": "function", "line": 427, "name": "V_DrawShadowedPatch", "signature": "void V_DrawShadowedPatch(int x, int y, patch_t *patch)"}, {"doc": "Load tint table from TINTTAB lump.", "kind": "function", "line": 481, "name": "V_LoadTintTable", "signature": "void V_LoadTintTable(void)"}, {"doc": "V_LoadXlaTable villsa [STRIFE] Load xla table from XLATAB lump.", "kind": "function", "line": 492, "name": "V_LoadXlaTable", "signature": "void V_LoadXlaTable(void)"}, {"doc": "V_DrawBlock Draw a linear block of pixels into the view buffer.", "kind": "function", "line": 502, "name": "V_DrawBlock", "signature": "void V_DrawBlock(int x, int y, int width, int height, byte *src)"}, {"kind": "function", "line": 528, "name": "V_DrawFilledBox", "signature": "void V_DrawFilledBox(int x, int y, int w, int h, int c)"}, {"kind": "function", "line": 548, "name": "V_DrawHorizLine", "signature": "void V_DrawHorizLine(int x, int y, int w, int c)"}, {"kind": "function", "line": 561, "name": "V_DrawVertLine", "signature": "void V_DrawVertLine(int x, int y, int h, int c)"}, {"kind": "function", "line": 575, "name": "V_DrawBox", "signature": "void V_DrawBox(int x, int y, int w, int h, int c)"}, {"doc": "Draw a \"raw\" screen (lump containing raw data to blit directly to the screen)", "kind": "function", "line": 588, "name": "V_DrawRawScreen", "signature": "void V_DrawRawScreen(byte *raw)"}, {"doc": "V_Init", "kind": "function", "line": 597, "name": "V_Init", "signature": "void V_Init (void)"}, {"doc": "Set the buffer that the code draws to.", "kind": "function", "line": 605, "name": "V_UseBuffer", "signature": "void V_UseBuffer(byte *buffer)"}, {"doc": "Restore screen buffer to the i_video screen buffer.", "kind": "function", "line": 612, "name": "V_RestoreBuffer", "signature": "void V_RestoreBuffer(void)"}, {"doc": "WritePCXfile", "kind": "function", "line": 652, "name": "WritePCXfile", "signature": "void WritePCXfile(char *filename, byte *data,\n int width, int height,\n ..."}, {"doc": "ifdef HAVE_LIBPNG WritePNGfile", "kind": "function", "line": 710, "name": "error_fn", "signature": "static void error_fn(png_structp p, png_const_charp s)"}, {"kind": "function", "line": 715, "name": "warning_fn", "signature": "static void warning_fn(png_structp p, png_const_charp s)"}, {"kind": "function", "line": 720, "name": "WritePNGfile", "signature": "void WritePNGfile(char *filename, byte *data,\n int width, int height,\n ..."}, {"doc": "V_ScreenShot", "kind": "function", "line": 790, "name": "V_ScreenShot", "signature": "void V_ScreenShot(char *format)"}, {"doc": "define MOUSE_SPEED_BOX_WIDTH 120 define MOUSE_SPEED_BOX_HEIGHT 9", "kind": "function", "line": 845, "name": "V_DrawMouseSpeedBox", "signature": "void V_DrawMouseSpeedBox(int speed)"}, {"kind": "macro", "line": 46, "name": "RANGECHECK"}, {"kind": "macro", "line": 842, "name": "MOUSE_SPEED_BOX_WIDTH"}, {"kind": "macro", "line": 844, "name": "MOUSE_SPEED_BOX_HEIGHT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Gamma correction LUT. Functions to draw patches (by post) directly to screen. Functions to blit a block to the screen. ifndef __V_VIDEO__ define __V_VIDEO__ include \"doomtype.h\" Needed because we are refering to patches. include \"v_patch.h\"", "id": "progs/doomgeneric/v_video.h", "kind": "module", "label": "v_video.h", "language": "h", "sha256": "680211ce9ba59e8c", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 23, "name": "__V_VIDEO__"}, {"kind": "macro", "line": 33, "name": "CENTERY"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Generate a checksum of the WAD directory. include include include include \"m_misc.h\" include \"sha1.h\" include \"w_checksum.h\" include \"w_wad.h\"", "id": "progs/doomgeneric/w_checksum.c", "kind": "module", "label": "w_checksum.c", "language": "c", "sha256": "6ed803f9991900e3", "symbol_count": 3, "symbols": [{"kind": "function", "line": 30, "name": "GetFileNumber", "signature": "static int GetFileNumber(wad_file_t *handle)"}, {"kind": "function", "line": 56, "name": "ChecksumAddLump", "signature": "static void ChecksumAddLump(sha1_context_t *sha1_context, lumpinfo_t *lump)"}, {"kind": "function", "line": 67, "name": "W_Checksum", "signature": "void W_Checksum(sha1_digest_t digest)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Generate a checksum of the WAD directory. ifndef W_CHECKSUM_H define W_CHECKSUM_H include \"doomtype.h\"", "id": "progs/doomgeneric/w_checksum.h", "kind": "module", "label": "w_checksum.h", "language": "h", "sha256": "b96949fd9df7c175", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 20, "name": "W_CHECKSUM_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: WAD I/O functions. include include \"config.h\" include \"doomtype.h\" include \"m_argv.h\" include \"w_file.h\"", "id": "progs/doomgeneric/w_file.c", "kind": "module", "label": "w_file.c", "language": "c", "sha256": "db1e98c8d8b68512", "symbol_count": 3, "symbols": [{"kind": "function", "line": 52, "name": "W_OpenFile", "signature": "wad_file_t *W_OpenFile(char *path)"}, {"kind": "function", "line": 84, "name": "W_CloseFile", "signature": "void W_CloseFile(wad_file_t *wad)"}, {"kind": "function", "line": 89, "name": "W_Read", "signature": "size_t W_Read(wad_file_t *wad, unsigned int offset,\n void *buffer, size_t buffer_len)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: WAD I/O functions. ifndef __W_FILE__ define __W_FILE__ include include \"doomtype.h\"", "id": "progs/doomgeneric/w_file.h", "kind": "module", "label": "w_file.h", "language": "h", "sha256": "5408d364e1011b6c", "symbol_count": 2, "symbols": [{"kind": "struct", "line": 46, "name": "_wad_file_s"}, {"kind": "macro", "line": 21, "name": "__W_FILE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: WAD I/O functions. include include \"m_misc.h\" include \"w_file.h\" include \"z_zone.h\"", "id": "progs/doomgeneric/w_file_stdc.c", "kind": "module", "label": "w_file_stdc.c", "language": "c", "sha256": "c347306624b53b2f", "symbol_count": 3, "symbols": [{"kind": "function", "line": 32, "name": "W_StdC_OpenFile", "signature": "static wad_file_t *W_StdC_OpenFile(char *path)"}, {"kind": "function", "line": 55, "name": "W_StdC_CloseFile", "signature": "static void W_StdC_CloseFile(wad_file_t *wad)"}, {"doc": "Read data from the specified position in the file into the provided buffer. Returns the number of bytes read.", "kind": "function", "line": 68, "name": "W_StdC_Read", "signature": "size_t W_StdC_Read(wad_file_t *wad, unsigned int offset,\n void *buffer, size_t ..."}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Common code to parse command line, identifying WAD files to load. include \"doomfeatures.h\" include \"d_iwad.h\" include \"m_argv.h\" include \"w_main.h\" include \"w_merge.h\" include \"w_wad.h\" include \"z_zone.h\" Parse the command line, merging WAD files that are sppecified. Returns true if at least one file was added.", "id": "progs/doomgeneric/w_main.c", "kind": "module", "label": "w_main.c", "language": "c", "sha256": "da26f30d3b2691e5", "symbol_count": 1, "symbols": [{"doc": "Parse the command line, merging WAD files that are sppecified. Returns true if at least one file was added.", "kind": "function", "line": 29, "name": "W_ParseCommandLine", "signature": "boolean W_ParseCommandLine(void)"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Common code to parse command line, identifying WAD files to load. ifndef W_MAIN_H define W_MAIN_H", "id": "progs/doomgeneric/w_main.h", "kind": "module", "label": "w_main.h", "language": "h", "sha256": "dc99ae306d83540d", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "W_MAIN_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Handles merging of PWADs, similar to deutex's -merge option Ideally this should work exactly the same as in deutex, but trying to read the deutex source code made my brain hurt. ifndef W_MERGE_H define W_MERGE_H define W_NWT_MERGE_SPRITES 0x1 define W_NWT_MERGE_FLATS 0x2 Add a new WAD and merge it into the main directory", "id": "progs/doomgeneric/w_merge.h", "kind": "module", "label": "w_merge.h", "language": "h", "sha256": "b49b2b6aa87e13e6", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 22, "name": "W_MERGE_H"}, {"kind": "macro", "line": 23, "name": "W_NWT_MERGE_SPRITES"}, {"kind": "macro", "line": 25, "name": "W_NWT_MERGE_FLATS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Handles WAD file header, directory, lump I/O. include include include include include \"doomtype.h\" include \"config.h\" include \"d_iwad.h\"", "id": "progs/doomgeneric/w_wad.c", "kind": "module", "label": "w_wad.c", "language": "c", "sha256": "27c6d4e6f043b47b", "symbol_count": 15, "symbols": [{"doc": "Hash function used for lump names.", "kind": "function", "line": 71, "name": "W_LumpNameHash", "signature": "unsigned int W_LumpNameHash(const char *s)"}, {"doc": "Increase the size of the lumpinfo[] array to the specified size.", "kind": "function", "line": 89, "name": "ExtendLumpInfo", "signature": "static void ExtendLumpInfo(int newnumlumps)"}, {"doc": "W_AddFile All files are optional, but at least one file must be found (PWAD, if all required lumps are present). Files with a .wad extension are wadlink files with multiple lumps. Other files are single lumps with the base filename for the lump name.", "kind": "function", "line": 140, "name": "W_AddFile", "signature": "wad_file_t *W_AddFile (char *filename)"}, {"doc": "W_NumLumps", "kind": "function", "line": 246, "name": "W_NumLumps", "signature": "int W_NumLumps (void)"}, {"doc": "W_CheckNumForName Returns -1 if name not found.", "kind": "function", "line": 257, "name": "W_CheckNumForName", "signature": "int W_CheckNumForName (char* name)"}, {"doc": "W_GetNumForName Calls W_CheckNumForName, but bombs out if not found.", "kind": "function", "line": 308, "name": "W_GetNumForName", "signature": "int W_GetNumForName (char* name)"}, {"doc": "W_LumpLength Returns the buffer size needed to load the given lump.", "kind": "function", "line": 327, "name": "W_LumpLength", "signature": "int W_LumpLength (unsigned int lump)"}, {"doc": "W_ReadLump Loads the lump into the given buffer, which must be >= W_LumpLength().", "kind": "function", "line": 344, "name": "W_ReadLump", "signature": "void W_ReadLump(unsigned int lump, void *dest)"}, {"doc": "W_CacheLumpNum Load a lump into memory and return a pointer to a buffer containing the lump data. 'tag' is the type of zone memory buffer to allocate for the lump (usually PU_STATIC or PU_CACHE). If the lump is loaded as PU_STATIC, it should be released back using W_ReleaseLumpNum when no longer needed (do not use Z_ChangeTag).", "kind": "function", "line": 383, "name": "W_CacheLumpNum", "signature": "void *W_CacheLumpNum(int lumpnum, int tag)"}, {"doc": "W_CacheLumpName", "kind": "function", "line": 431, "name": "W_CacheLumpName", "signature": "void *W_CacheLumpName(char *name, int tag)"}, {"doc": "Release a lump back to the cache, so that it can be reused later without having to read from disk again, or alternatively, discarded if we run out of memory. Back in Vanilla Doom, this was just done using Z_ChangeTag directly, but now that we have WAD mmap, things are a bit more complicated ...", "kind": "function", "line": 445, "name": "W_ReleaseLumpNum", "signature": "void W_ReleaseLumpNum(int lumpnum)"}, {"kind": "function", "line": 466, "name": "W_ReleaseLumpName", "signature": "void W_ReleaseLumpName(char *name)"}, {"kind": "function", "line": 479, "name": "W_Profile", "signature": "void W_Profile (void)"}, {"doc": "Generate a hash table for fast lookups", "kind": "function", "line": 540, "name": "W_GenerateHashTable", "signature": "void W_GenerateHashTable(void)"}, {"kind": "function", "line": 587, "name": "W_CheckCorrectIWAD", "signature": "void W_CheckCorrectIWAD(GameMission_t mission)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: WAD I/O functions. ifndef __W_WAD__ define __W_WAD__ include include \"doomtype.h\" include \"d_mode.h\" include \"w_file.h\"", "id": "progs/doomgeneric/w_wad.h", "kind": "module", "label": "w_wad.h", "language": "h", "sha256": "1c8d81fb0dc89600", "symbol_count": 2, "symbols": [{"kind": "struct", "line": 41, "name": "lumpinfo_s"}, {"kind": "macro", "line": 21, "name": "__W_WAD__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Intermission screens. include include \"z_zone.h\" include \"m_misc.h\" include \"m_random.h\" include \"deh_main.h\" include \"i_swap.h\" include \"i_system.h\"", "id": "progs/doomgeneric/wi_stuff.c", "kind": "module", "label": "wi_stuff.c", "language": "c", "sha256": "12414f8e5862d60d", "symbol_count": 66, "symbols": [{"doc": "slam background", "kind": "function", "line": 402, "name": "WI_slamBackground", "signature": "void WI_slamBackground(void)"}, {"doc": "The ticker is used to detect keys because of timing issues in netgames.", "kind": "function", "line": 409, "name": "WI_Responder", "signature": "boolean WI_Responder(event_t* ev)"}, {"doc": "Draws \" Finished!\"", "kind": "function", "line": 416, "name": "WI_drawLF", "signature": "void WI_drawLF(void)"}, {"doc": "Draws \"Entering \"", "kind": "function", "line": 452, "name": "WI_drawEL", "signature": "void WI_drawEL(void)"}, {"kind": "function", "line": 469, "name": "WI_drawOnLnode", "signature": "void\nWI_drawOnLnode\n( int\t\tn,\n patch_t*\tc[] )"}, {"kind": "function", "line": 516, "name": "WI_initAnimatedBack", "signature": "void WI_initAnimatedBack(void)"}, {"kind": "function", "line": 547, "name": "WI_updateAnimatedBack", "signature": "void WI_updateAnimatedBack(void)"}, {"kind": "function", "line": 598, "name": "WI_drawAnimatedBack", "signature": "void WI_drawAnimatedBack(void)"}, {"doc": "Draws a number. If digits > 0, then use that many digits minimum, otherwise only use as many as necessary. Returns new x position.", "kind": "function", "line": 626, "name": "WI_drawNum", "signature": "int\nWI_drawNum\n( int\t\tx,\n int\t\ty,\n int\t\tn,\n int\t\tdigits )"}, {"kind": "function", "line": 683, "name": "WI_drawPercent", "signature": "void\nWI_drawPercent\n( int\t\tx,\n int\t\ty,\n int\t\tp )"}, {"doc": "Display level completion time and par, or \"sucks\" message if overflow.", "kind": "function", "line": 703, "name": "WI_drawTime", "signature": "void\nWI_drawTime\n( int\t\tx,\n int\t\ty,\n int\t\tt )"}, {"kind": "function", "line": 738, "name": "WI_End", "signature": "void WI_End(void)"}, {"kind": "function", "line": 745, "name": "WI_initNoState", "signature": "void WI_initNoState(void)"}, {"kind": "function", "line": 752, "name": "WI_updateNoState", "signature": "void WI_updateNoState(void)"}, {"kind": "function", "line": 770, "name": "WI_initShowNextLoc", "signature": "void WI_initShowNextLoc(void)"}, {"kind": "function", "line": 780, "name": "WI_updateShowNextLoc", "signature": "void WI_updateShowNextLoc(void)"}, {"kind": "function", "line": 790, "name": "WI_drawShowNextLoc", "signature": "void WI_drawShowNextLoc(void)"}, {"kind": "function", "line": 831, "name": "WI_drawNoState", "signature": "void WI_drawNoState(void)"}, {"kind": "function", "line": 837, "name": "WI_fragSum", "signature": "int WI_fragSum(int playernum)"}, {"kind": "function", "line": 866, "name": "WI_initDeathmatchStats", "signature": "void WI_initDeathmatchStats(void)"}, {"kind": "function", "line": 895, "name": "WI_updateDeathmatchStats", "signature": "void WI_updateDeathmatchStats(void)"}, {"kind": "function", "line": 998, "name": "WI_drawDeathmatchStats", "signature": "void WI_drawDeathmatchStats(void)"}, {"kind": "function", "line": 1088, "name": "WI_initNetgameStats", "signature": "void WI_initNetgameStats(void)"}, {"kind": "function", "line": 1114, "name": "WI_updateNetgameStats", "signature": "void WI_updateNetgameStats(void)"}, {"kind": "function", "line": 1269, "name": "WI_drawNetgameStats", "signature": "void WI_drawNetgameStats(void)"}, {"kind": "function", "line": 1328, "name": "WI_initStats", "signature": "void WI_initStats(void)"}, {"kind": "function", "line": 1340, "name": "WI_updateStats", "signature": "void WI_updateStats(void)"}, {"kind": "function", "line": 1446, "name": "WI_drawStats", "signature": "void WI_drawStats(void)"}, {"kind": "function", "line": 1480, "name": "WI_checkForAccelerate", "signature": "void WI_checkForAccelerate(void)"}, {"doc": "Updates stuff each tick", "kind": "function", "line": 1514, "name": "WI_Ticker", "signature": "void WI_Ticker(void)"}, {"doc": "Common load/unload function. Iterates over all the graphics lumps to be loaded/unloaded into memory.", "kind": "function", "line": 1553, "name": "WI_loadUnloadData", "signature": "static void WI_loadUnloadData(load_callback_t callback)"}, {"kind": "function", "line": 1703, "name": "WI_loadCallback", "signature": "static void WI_loadCallback(char *name, patch_t **variable)"}, {"kind": "function", "line": 1708, "name": "WI_loadData", "signature": "void WI_loadData(void)"}, {"kind": "function", "line": 1734, "name": "WI_unloadCallback", "signature": "static void WI_unloadCallback(char *name, patch_t **variable)"}, {"kind": "function", "line": 1740, "name": "WI_unloadData", "signature": "void WI_unloadData(void)"}, {"kind": "function", "line": 1751, "name": "WI_Drawer", "signature": "void WI_Drawer (void)"}, {"kind": "function", "line": 1774, "name": "WI_initVariables", "signature": "void WI_initVariables(wbstartstruct_t* wbstartstruct)"}, {"kind": "function", "line": 1817, "name": "WI_Start", "signature": "void WI_Start(wbstartstruct_t* wbstartstruct)"}, {"kind": "macro", "line": 61, "name": "NUMEPISODES"}, {"kind": "macro", "line": 62, "name": "NUMMAPS"}, {"kind": "macro", "line": 75, "name": "WI_TITLEY"}, {"kind": "macro", "line": 76, "name": "WI_SPACINGY"}, {"kind": "macro", "line": 79, "name": "SP_STATSX"}, {"kind": "macro", "line": 80, "name": "SP_STATSY"}, {"kind": "macro", "line": 81, "name": "SP_TIMEX"}, {"kind": "macro", "line": 83, "name": "SP_TIMEY"}, {"kind": "macro", "line": 87, "name": "NG_STATSY"}, {"kind": "macro", "line": 88, "name": "NG_STATSX"}, {"kind": "macro", "line": 89, "name": "NG_SPACINGX"}, {"kind": "macro", "line": 94, "name": "DM_MATRIXX"}, {"kind": "macro", "line": 95, "name": "DM_MATRIXY"}, {"kind": "macro", "line": 96, "name": "DM_SPACINGX"}, {"kind": "macro", "line": 98, "name": "DM_TOTALSX"}, {"kind": "macro", "line": 100, "name": "DM_KILLERSX"}, {"kind": "macro", "line": 102, "name": "DM_KILLERSY"}, {"kind": "macro", "line": 103, "name": "DM_VICTIMSX"}, {"kind": "macro", "line": 104, "name": "DM_VICTIMSY"}, {"kind": "macro", "line": 221, "name": "ANIM"}, {"kind": "macro", "line": 288, "name": "SP_KILLS"}, {"kind": "macro", "line": 289, "name": "SP_ITEMS"}, {"kind": "macro", "line": 290, "name": "SP_SECRET"}, {"kind": "macro", "line": 291, "name": "SP_FRAGS"}, {"kind": "macro", "line": 292, "name": "SP_TIME"}, {"kind": "macro", "line": 293, "name": "SP_PAR"}, {"kind": "macro", "line": 294, "name": "SP_PAUSE"}, {"kind": "macro", "line": 298, "name": "SHOWNEXTLOCDELAY"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Intermission. ifndef __WI_STUFF__ define __WI_STUFF__ #include \"v_video.h\" include \"doomdef.h\" States for the intermission", "id": "progs/doomgeneric/wi_stuff.h", "kind": "module", "label": "wi_stuff.h", "language": "h", "sha256": "05ac4bf12b82bc75", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 20, "name": "__WI_STUFF__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Zone Memory Allocation. Neat. include \"z_zone.h\" include \"i_system.h\" include \"doomtype.h\" ZONE MEMORY ALLOCATION There is never any space between memblocks, and there will never be two contiguous free memblocks. The rover can be left pointing at a non-empty block.", "id": "progs/doomgeneric/z_zone.c", "kind": "module", "label": "z_zone.c", "language": "c", "sha256": "3f0862d4f6fbef39", "symbol_count": 16, "symbols": [{"kind": "struct", "line": 39, "name": "memblock_s"}, {"doc": "Z_ClearZone", "kind": "function", "line": 71, "name": "Z_ClearZone", "signature": "void Z_ClearZone (memzone_t* zone)"}, {"doc": "Z_Init", "kind": "function", "line": 97, "name": "Z_Init", "signature": "void Z_Init (void)"}, {"doc": "Z_Free", "kind": "function", "line": 126, "name": "Z_Free", "signature": "void Z_Free (void* ptr)"}, {"doc": "Z_Malloc You can pass a NULL user if the tag is < PU_PURGELEVEL. define MINFRAGMENT\t\t64", "kind": "function", "line": 182, "name": "Z_Malloc", "signature": "void*\nZ_Malloc\n( int\t\tsize,\n int\t\ttag,\n void*\t\tuser )"}, {"doc": "Z_FreeTags", "kind": "function", "line": 297, "name": "Z_FreeTags", "signature": "void\nZ_FreeTags\n( int\t\tlowtag,\n int\t\thightag )"}, {"doc": "Z_DumpHeap Note: TFileDumpHeap( stdout ) ?", "kind": "function", "line": 327, "name": "Z_DumpHeap", "signature": "void\nZ_DumpHeap\n( int\t\tlowtag,\n int\t\thightag )"}, {"doc": "Z_FileDumpHeap", "kind": "function", "line": 367, "name": "Z_FileDumpHeap", "signature": "void Z_FileDumpHeap (FILE* f)"}, {"doc": "Z_CheckHeap", "kind": "function", "line": 400, "name": "Z_CheckHeap", "signature": "void Z_CheckHeap (void)"}, {"doc": "Z_ChangeTag", "kind": "function", "line": 429, "name": "Z_ChangeTag2", "signature": "void Z_ChangeTag2(void *ptr, int tag, char *file, int line)"}, {"kind": "function", "line": 445, "name": "Z_ChangeUser", "signature": "void Z_ChangeUser(void *ptr, void **user)"}, {"doc": "Z_FreeMemory", "kind": "function", "line": 466, "name": "Z_FreeMemory", "signature": "int Z_FreeMemory (void)"}, {"kind": "function", "line": 483, "name": "Z_ZoneSize", "signature": "unsigned int Z_ZoneSize(void)"}, {"kind": "macro", "line": 35, "name": "MEM_ALIGN"}, {"kind": "macro", "line": 37, "name": "ZONEID"}, {"kind": "macro", "line": 181, "name": "MINFRAGMENT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Zone Memory Allocation, perhaps NeXT ObjectiveC inspired. Remark: this was the only stuff that, according to John Carmack, might have been useful for Quake. ifndef __Z_ZONE__ define __Z_ZONE__ include ZONE MEMORY", "id": "progs/doomgeneric/z_zone.h", "kind": "module", "label": "z_zone.h", "language": "h", "sha256": "c639f3e98971e718", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 25, "name": "__Z_ZONE__"}, {"kind": "macro", "line": 69, "name": "Z_ChangeTag"}]}, {"id": "progs/lua/lua_main.c", "kind": "module", "label": "lua_main.c", "language": "c", "sha256": "dcb7a8b48b8d4f84", "symbol_count": 6, "symbols": [{"kind": "function", "line": 21, "name": "luaL_require_global", "signature": "static void luaL_require_global(lua_State *L, const char *name,\n l..."}, {"kind": "function", "line": 27, "name": "set_arg_table", "signature": "static void set_arg_table(lua_State *L, int argc, char **argv, int first)"}, {"kind": "function", "line": 40, "name": "docode", "signature": "static int docode(lua_State *L, const char *code)"}, {"kind": "function", "line": 50, "name": "dofile", "signature": "static int dofile(lua_State *L, const char *name)"}, {"kind": "function", "line": 60, "name": "repl", "signature": "static int repl(lua_State *L)"}, {"kind": "function", "line": 104, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"id": "progs/lua/minios.c", "kind": "module", "label": "minios.c", "language": "c", "sha256": "cf9741f37f87dc19", "symbol_count": 17, "symbols": [{"doc": "/* ── raw syscall helpers (x86-64 Linux ABI) ─────────────────────────── static long msys(long n, long a1, long a2, long a3) { long ret; __asm__ volatile( \"syscall\" : \"=a\"(ret) : \"a\"(n), \"D\"(a1), \"S\"(a2), \"d\"(a3) : \"rcx\", \"r11\", \"memory\" ); return ret; } /* 5-argument syscall (SYS_SPAWN needs path, redirect, argc, argv).", "kind": "function", "line": 37, "name": "msys5", "signature": "static long msys5(long n, long a1, long a2, long a3, long a4, long a5)"}, {"doc": "} /* ── MiniOS syscall numbers (canonical table from minios_abi.h) ─────── #include \"minios_abi.h\" #define SYS_TIME_MS MINIOS_SYS_TIME #define SYS_PALETTE MINIOS_SYS_PALETTE #define SYS_PCSPK_INIT MINIOS_SYS_PCSPK_INIT #define SYS_PCSPK_TONE MINIOS_SYS_PCSPK_TONE #define SYS_RTC MINIOS_SYS_RTC #define SYS_FB_INFO MINIOS_SYS_FB_INFO #define SYS_PCSPK_VOL MINIOS_SYS_PCSPK_VOL #define SYS_SPAWN MINIOS_SYS_SPAWN /* ── minios.time_ms() ────────────────────────────────────────────────", "kind": "function", "line": 62, "name": "minios_time_ms", "signature": "static int minios_time_ms(lua_State *L)"}, {"doc": "#define SYS_PCSPK_INIT MINIOS_SYS_PCSPK_INIT #define SYS_PCSPK_TONE MINIOS_SYS_PCSPK_TONE #define SYS_RTC MINIOS_SYS_RTC #define SYS_FB_INFO MINIOS_SYS_FB_INFO #define SYS_PCSPK_VOL MINIOS_SYS_PCSPK_VOL #define SYS_SPAWN MINIOS_SYS_SPAWN /* ── minios.time_ms() ──────────────────────────────────────────────── static int minios_time_ms(lua_State *L) { lua_pushinteger(L, (lua_Integer)msys(SYS_TIME_MS, 0, 0, 0)); return 1; } /* ── minios.rtc() -> hour, minute, second ────────────────────────────", "kind": "function", "line": 68, "name": "minios_rtc", "signature": "static int minios_rtc(lua_State *L)"}, {"doc": "static int minios_rtc(lua_State *L) { int h, m, s; if (msys(SYS_RTC, (long)&h, (long)&m, (long)&s) < 0) { lua_pushnil(L); lua_pushstring(L, \"rtc read failed\"); return 2; } lua_pushinteger(L, h); lua_pushinteger(L, m); lua_pushinteger(L, s); return 3; } /* ── minios.fb_info() -> width, height, pitch ────────────────────────", "kind": "function", "line": 82, "name": "minios_fb_info", "signature": "static int minios_fb_info(lua_State *L)"}, {"doc": "static int minios_fb_info(lua_State *L) { int w, h, p; if (msys(SYS_FB_INFO, (long)&w, (long)&h, (long)&p) < 0) { lua_pushnil(L); lua_pushstring(L, \"fb_info failed\"); return 2; } lua_pushinteger(L, w); lua_pushinteger(L, h); lua_pushinteger(L, p); return 3; } /* ── minios.vol([v]) -> current volume ───────────────────────────────", "kind": "function", "line": 96, "name": "minios_vol", "signature": "static int minios_vol(lua_State *L)"}, {"doc": "/* ── minios.vol([v]) -> current volume ─────────────────────────────── static int minios_vol(lua_State *L) { if (lua_gettop(L) >= 1 && !lua_isnil(L, 1)) { int v = (int)luaL_checkinteger(L, 1); if (v < 0 || v > 100) return luaL_error(L, \"volume must be 0..100\"); lua_pushinteger(L, (lua_Integer)msys(SYS_PCSPK_VOL, v, 0, 0)); } else { lua_pushinteger(L, (lua_Integer)msys(SYS_PCSPK_VOL, -1, 0, 0)); } return 1; } /* ── minios.pal(buf) -- load a 768-byte VGA DAC palette ──────────────", "kind": "function", "line": 109, "name": "minios_pal", "signature": "static int minios_pal(lua_State *L)"}, {"doc": "return 1; } /* ── minios.pal(buf) -- load a 768-byte VGA DAC palette ────────────── static int minios_pal(lua_State *L) { size_t len; const char *buf = luaL_checklstring(L, 1, &len); if (len < 768) return luaL_error(L, \"palette must be 768 bytes\"); msys(SYS_PALETTE, (long)buf, 0, 0); return 0; } /* ── minios.pcspeaker(freq, ms) ──────────────────────────────────────", "kind": "function", "line": 119, "name": "minios_pcspeaker", "signature": "static int minios_pcspeaker(lua_State *L)"}, {"doc": "── minios.run(path[, args][, redirect]) -> exit code ─────────────── Runs a program through SYS_SPAWN (215), preserving the caller (Lua) so it can chain toolchain commands. args is an optional Lua table of strings; * redirect is an optional output file path that captures the console output.", "kind": "function", "line": 136, "name": "minios_run", "signature": "static int minios_run(lua_State *L)"}, {"kind": "function", "line": 191, "name": "luaopen_minios", "signature": "int luaopen_minios(lua_State *L)"}, {"kind": "macro", "line": 52, "name": "SYS_TIME_MS"}, {"kind": "macro", "line": 53, "name": "SYS_PALETTE"}, {"kind": "macro", "line": 54, "name": "SYS_PCSPK_INIT"}, {"kind": "macro", "line": 55, "name": "SYS_PCSPK_TONE"}, {"kind": "macro", "line": 56, "name": "SYS_RTC"}, {"kind": "macro", "line": 57, "name": "SYS_FB_INFO"}, {"kind": "macro", "line": 58, "name": "SYS_PCSPK_VOL"}, {"kind": "macro", "line": 59, "name": "SYS_SPAWN"}]}, {"doc": "MiniOS frozen library package.", "id": "progs/micropython/variants/minios/lib/__init__.py", "kind": "module", "label": "__init__.py", "language": "py", "sha256": "51f3b511a54d6d26", "symbol_count": 0, "symbols": []}, {"doc": "hello.py -- frozen demo: runs at import time as a smoke test.", "id": "progs/micropython/variants/minios/lib/hello.py", "kind": "module", "label": "hello.py", "language": "py", "sha256": "1e22dbf31982b6fd", "symbol_count": 0, "symbols": []}, {"doc": "manifest.py -- frozen modules for the MiniOS MicroPython variant. Scripts listed here are compiled to .mpy by mpy-cross and embedded in the firmware binary, so they are available as frozen imports without touching the filesystem.", "id": "progs/micropython/variants/minios/manifest.py", "kind": "module", "label": "manifest.py", "language": "py", "sha256": "c1e5f0994826444a", "symbol_count": 0, "symbols": []}, {"id": "progs/micropython/variants/minios/minios_module.c", "kind": "module", "label": "minios_module.c", "language": "c", "sha256": "3f05437803eda736", "symbol_count": 15, "symbols": [{"doc": "/* ── raw syscall helper (x86-64 Linux ABI) ─────────────────────────── static long msys(long n, long a1, long a2, long a3) { long ret; __asm__ volatile( \"syscall\" : \"=a\"(ret) : \"a\"(n), \"D\"(a1), \"S\"(a2), \"d\"(a3) : \"rcx\", \"r11\", \"memory\" ); return ret; } /* 5-argument syscall (SYS_SPAWN needs path, redirect, argc, argv, status).", "kind": "function", "line": 26, "name": "msys5", "signature": "static long msys5(long n, long a1, long a2, long a3, long a4, long a5)"}, {"doc": "} /* ── MiniOS syscall numbers (canonical table from minios_abi.h) ─────── #include \"minios_abi.h\" #define SYS_TIME_MS MINIOS_SYS_TIME #define SYS_PALETTE MINIOS_SYS_PALETTE #define SYS_PCSPK_INIT MINIOS_SYS_PCSPK_INIT #define SYS_PCSPK_TONE MINIOS_SYS_PCSPK_TONE #define SYS_RTC MINIOS_SYS_RTC #define SYS_FB_INFO MINIOS_SYS_FB_INFO #define SYS_PCSPK_VOL MINIOS_SYS_PCSPK_VOL #define SYS_SPAWN MINIOS_SYS_SPAWN /* ── minios.time_ms() -> int ─────────────────────────────────────────", "kind": "function", "line": 51, "name": "minios_time_ms", "signature": "static mp_obj_t minios_time_ms(void)"}, {"doc": "#define SYS_PCSPK_TONE MINIOS_SYS_PCSPK_TONE #define SYS_RTC MINIOS_SYS_RTC #define SYS_FB_INFO MINIOS_SYS_FB_INFO #define SYS_PCSPK_VOL MINIOS_SYS_PCSPK_VOL #define SYS_SPAWN MINIOS_SYS_SPAWN /* ── minios.time_ms() -> int ───────────────────────────────────────── static mp_obj_t minios_time_ms(void) { return mp_obj_new_int_from_uint((uint32_t)msys(SYS_TIME_MS, 0, 0, 0)); } static MP_DEFINE_CONST_FUN_OBJ_0(minios_time_ms_obj, minios_time_ms); /* ── minios.rtc() -> (hour, minute, second) ──────────────────────────", "kind": "function", "line": 58, "name": "minios_rtc", "signature": "static mp_obj_t minios_rtc(void)"}, {"doc": "long ret = msys(SYS_RTC, (long)&h, (long)&m, (long)&s); if (ret < 0) { mp_raise_OSError(-ret); } mp_obj_t tuple[3] = { mp_obj_new_int(h), mp_obj_new_int(m), mp_obj_new_int(s), }; return mp_obj_new_tuple(3, tuple); } static MP_DEFINE_CONST_FUN_OBJ_0(minios_rtc_obj, minios_rtc); /* ── minios.fb_info() -> (width, height, pitch) ──────────────────────", "kind": "function", "line": 75, "name": "minios_fb_info", "signature": "static mp_obj_t minios_fb_info(void)"}, {"doc": "static mp_obj_t minios_vol(size_t n_args, const mp_obj_t *args) { if (n_args == 0) { /* get volume: pass -1 to signal \"read\" return mp_obj_new_int((int)msys(SYS_PCSPK_VOL, -1, 0, 0)); } int v = mp_obj_get_int(args[0]); if (v < 0 || v > 100) { mp_raise_ValueError(MP_ERROR_TEXT(\"volume must be 0..100\")); } return mp_obj_new_int((int)msys(SYS_PCSPK_VOL, v, 0, 0)); } static MP_DEFINE_CONST_FUN_OBJ_VAR(minios_vol_obj, 0, minios_vol); /* ── minios.pal(buf) -- load a 768-byte VGA DAC palette ──────────────", "kind": "function", "line": 110, "name": "minios_pal", "signature": "static mp_obj_t minios_pal(mp_obj_t buf_in)"}, {"doc": "mp_buffer_info_t bufinfo; mp_get_buffer_raise(buf_in, &bufinfo, MP_BUFFER_READ); if (bufinfo.len < 768) { mp_raise_ValueError(MP_ERROR_TEXT(\"palette must be 768 bytes\")); } long ret = msys(SYS_PALETTE, (long)bufinfo.buf, 0, 0); if (ret < 0) { mp_raise_OSError(-ret); } return mp_const_none; } static MP_DEFINE_CONST_FUN_OBJ_1(minios_pal_obj, minios_pal); /* ── minios.pcspeaker(freq, ms) -- play a tone for ms milliseconds ──", "kind": "function", "line": 126, "name": "minios_pcspeaker", "signature": "static mp_obj_t minios_pcspeaker(mp_obj_t freq_in, mp_obj_t ms_in)"}, {"doc": "── minios.run(path, args=None, redirect=None) -> exit code ───────── Runs a program through the kernel SYS_SPAWN (215) boundary, which preserves the caller (MicroPython) so it can chain toolchain commands. `args` is an optional list/tuple of argument strings; `redirect` is an optional output file path that captures the program's console output. * Returns the child's exit code, or raises OSError on a kernel fault.", "kind": "function", "line": 148, "name": "minios_run", "signature": "static mp_obj_t minios_run(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args)"}, {"kind": "macro", "line": 41, "name": "SYS_TIME_MS"}, {"kind": "macro", "line": 42, "name": "SYS_PALETTE"}, {"kind": "macro", "line": 43, "name": "SYS_PCSPK_INIT"}, {"kind": "macro", "line": 44, "name": "SYS_PCSPK_TONE"}, {"kind": "macro", "line": 45, "name": "SYS_RTC"}, {"kind": "macro", "line": 46, "name": "SYS_FB_INFO"}, {"kind": "macro", "line": 47, "name": "SYS_PCSPK_VOL"}, {"kind": "macro", "line": 48, "name": "SYS_SPAWN"}]}, {"id": "progs/micropython/variants/minios/mpconfigvariant.h", "kind": "module", "label": "mpconfigvariant.h", "language": "h", "sha256": "6234cc6b5888fb75", "symbol_count": 38, "symbols": [{"kind": "macro", "line": 11, "name": "MICROPY_CONFIG_ROM_LEVEL"}, {"kind": "macro", "line": 14, "name": "MICROPY_FLOAT_IMPL"}, {"kind": "macro", "line": 15, "name": "MICROPY_LONGINT_IMPL"}, {"kind": "macro", "line": 18, "name": "MICROPY_ERROR_REPORTING"}, {"kind": "macro", "line": 19, "name": "MICROPY_WARNINGS"}, {"kind": "macro", "line": 20, "name": "MICROPY_DEBUG_PRINTERS"}, {"kind": "macro", "line": 23, "name": "MICROPY_USE_READLINE"}, {"kind": "macro", "line": 30, "name": "MICROPY_KBD_EXCEPTION"}, {"kind": "macro", "line": 31, "name": "MICROPY_ASYNC_KBD_INTR"}, {"kind": "macro", "line": 34, "name": "MICROPY_HELPER_REPL"}, {"kind": "macro", "line": 35, "name": "MICROPY_PY_SYS_PS1"}, {"kind": "macro", "line": 36, "name": "MICROPY_PY_SYS_PS2"}, {"kind": "macro", "line": 37, "name": "MICROPY_PY_SYS_ATEXIT"}, {"kind": "macro", "line": 38, "name": "MICROPY_PY_SYS_EXC_INFO"}, {"kind": "macro", "line": 39, "name": "MICROPY_PY_SYS_STDFILES"}, {"kind": "macro", "line": 42, "name": "MICROPY_PY_OS"}, {"kind": "macro", "line": 43, "name": "MICROPY_PY_OS_INCLUDEFILE"}, {"kind": "macro", "line": 44, "name": "MICROPY_PY_OS_ERRNO"}, {"kind": "macro", "line": 45, "name": "MICROPY_PY_OS_GETENV_PUTENV_UNSETENV"}, {"kind": "macro", "line": 46, "name": "MICROPY_PY_OS_SYSTEM"}, {"kind": "macro", "line": 47, "name": "MICROPY_PY_OS_URANDOM"}, {"kind": "macro", "line": 50, "name": "MICROPY_PY_TIME"}, {"kind": "macro", "line": 53, "name": "MICROPY_PY_SOCKET"}, {"kind": "macro", "line": 54, "name": "MICROPY_PY_SSL"}, {"kind": "macro", "line": 55, "name": "MICROPY_PY_FFI"}, {"kind": "macro", "line": 56, "name": "MICROPY_PY_THREAD"}, {"kind": "macro", "line": 57, "name": "MICROPY_PY_MACHINE"}, {"kind": "macro", "line": 58, "name": "MICROPY_PY_WEBSOCKET"}, {"kind": "macro", "line": 61, "name": "MICROPY_PERSISTENT_CODE_LOAD"}, {"kind": "macro", "line": 64, "name": "MICROPY_REPL_EMACS_WORDS_MOVE"}, {"kind": "macro", "line": 65, "name": "MICROPY_REPL_EMACS_EXTRA_WORDS_MOVE"}, {"kind": "macro", "line": 66, "name": "MICROPY_USE_READLINE_HISTORY"}, {"kind": "macro", "line": 71, "name": "MICROPY_OPT_COMPUTED_GOTO"}, {"kind": "macro", "line": 74, "name": "MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF"}, {"kind": "macro", "line": 75, "name": "MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE"}, {"kind": "macro", "line": 78, "name": "MICROPY_PY_GC_COLLECT_RETVAL"}, {"kind": "macro", "line": 81, "name": "MICROPY_VFS_ROM"}, {"kind": "macro", "line": 82, "name": "MICROPY_VFS_ROM_IOCTL"}]}, {"doc": "ifndef MINIOS_ABI_H define MINIOS_ABI_H minios_abi.h -- Single source of truth for the MiniOS user-kernel ABI.", "id": "progs/minios_abi.h", "kind": "module", "label": "minios_abi.h", "language": "h", "sha256": "50b591e3a8c93390", "symbol_count": 110, "symbols": [{"kind": "macro", "line": 2, "name": "MINIOS_ABI_H"}, {"kind": "macro", "line": 36, "name": "MINIOS_ABI_VERSION"}, {"kind": "macro", "line": 40, "name": "MINIOS_ABI_CHECKSUM"}, {"kind": "macro", "line": 83, "name": "MINIOS_USER_LOAD_BASE"}, {"kind": "macro", "line": 84, "name": "MINIOS_USER_LOAD_END"}, {"kind": "macro", "line": 85, "name": "MINIOS_USER_STACK_SIZE"}, {"kind": "macro", "line": 86, "name": "MINIOS_USER_STACK_TOP"}, {"kind": "macro", "line": 87, "name": "MINIOS_USER_STACK_BASE"}, {"kind": "macro", "line": 88, "name": "MINIOS_USER_BRK_END"}, {"kind": "macro", "line": 101, "name": "MINIOS_DOOM_BACKBUF_ADDR"}, {"kind": "macro", "line": 102, "name": "MINIOS_DOOM_W"}, {"kind": "macro", "line": 103, "name": "MINIOS_DOOM_H"}, {"kind": "macro", "line": 104, "name": "MINIOS_FB_ADDR"}, {"kind": "macro", "line": 105, "name": "MINIOS_NK_BACKBUF_ADDR"}, {"kind": "macro", "line": 106, "name": "MINIOS_NK_W"}, {"kind": "macro", "line": 107, "name": "MINIOS_NK_H"}, {"kind": "macro", "line": 112, "name": "MINIOS_HEAP_BASE"}, {"kind": "macro", "line": 113, "name": "MINIOS_HEAP_SIZE"}, {"kind": "macro", "line": 118, "name": "MINIOS_FB_WIDTH_MAX"}, {"kind": "macro", "line": 119, "name": "MINIOS_FB_HEIGHT_MAX"}, {"kind": "macro", "line": 137, "name": "MINIOS_SYS_READ"}, {"kind": "macro", "line": 138, "name": "MINIOS_SYS_WRITE"}, {"kind": "macro", "line": 139, "name": "MINIOS_SYS_OPEN"}, {"kind": "macro", "line": 140, "name": "MINIOS_SYS_CLOSE"}, {"kind": "macro", "line": 141, "name": "MINIOS_SYS_FSTAT"}, {"kind": "macro", "line": 142, "name": "MINIOS_SYS_POLL"}, {"kind": "macro", "line": 143, "name": "MINIOS_SYS_LSEEK"}, {"kind": "macro", "line": 144, "name": "MINIOS_SYS_MMAP"}, {"kind": "macro", "line": 145, "name": "MINIOS_SYS_MPROTECT"}, {"kind": "macro", "line": 146, "name": "MINIOS_SYS_MUNMAP"}, {"kind": "macro", "line": 147, "name": "MINIOS_SYS_BRK"}, {"kind": "macro", "line": 148, "name": "MINIOS_SYS_RT_SIGACTION"}, {"kind": "macro", "line": 149, "name": "MINIOS_SYS_RT_SIGPROCMASK"}, {"kind": "macro", "line": 150, "name": "MINIOS_SYS_IOCTL"}, {"kind": "macro", "line": 151, "name": "MINIOS_SYS_WRITEV"}, {"kind": "macro", "line": 152, "name": "MINIOS_SYS_ACCESS"}, {"kind": "macro", "line": 153, "name": "MINIOS_SYS_SCHED_YIELD"}, {"kind": "macro", "line": 154, "name": "MINIOS_SYS_GETPID"}, {"kind": "macro", "line": 155, "name": "MINIOS_SYS_SOCKET"}, {"kind": "macro", "line": 156, "name": "MINIOS_SYS_CONNECT"}, {"kind": "macro", "line": 157, "name": "MINIOS_SYS_SENDTO"}, {"kind": "macro", "line": 158, "name": "MINIOS_SYS_RECVFROM"}, {"kind": "macro", "line": 159, "name": "MINIOS_SYS_SHUTDOWN"}, {"kind": "macro", "line": 160, "name": "MINIOS_SYS_FORK"}, {"kind": "macro", "line": 161, "name": "MINIOS_SYS_VFORK"}, {"kind": "macro", "line": 162, "name": "MINIOS_SYS_EXECVE"}, {"kind": "macro", "line": 163, "name": "MINIOS_SYS_EXIT"}, {"kind": "macro", "line": 164, "name": "MINIOS_SYS_WAIT4"}, {"kind": "macro", "line": 165, "name": "MINIOS_SYS_KILL"}, {"kind": "macro", "line": 166, "name": "MINIOS_SYS_UNLINK"}, {"kind": "macro", "line": 167, "name": "MINIOS_SYS_READLINK"}, {"kind": "macro", "line": 168, "name": "MINIOS_SYS_GETTID"}, {"kind": "macro", "line": 169, "name": "MINIOS_SYS_FLOCK"}, {"kind": "macro", "line": 170, "name": "MINIOS_SYS_GETCWD"}, {"kind": "macro", "line": 171, "name": "MINIOS_SYS_GETTIMEOFDAY"}, {"kind": "macro", "line": 172, "name": "MINIOS_SYS_ARCH_PRCTL"}, {"kind": "macro", "line": 173, "name": "MINIOS_SYS_OPENAT"}, {"kind": "macro", "line": 174, "name": "MINIOS_SYS_NEWFSTATAT"}, {"kind": "macro", "line": 175, "name": "MINIOS_SYS_READLINK"}, {"kind": "macro", "line": 176, "name": "MINIOS_SYS_STATX"}, {"kind": "macro", "line": 177, "name": "MINIOS_SYS_SET_MEMPOLICY"}, {"kind": "macro", "line": 178, "name": "MINIOS_SYS_SET_ROBUST_LIST"}, {"kind": "macro", "line": 179, "name": "MINIOS_SYS_PRLIMIT64"}, {"kind": "macro", "line": 180, "name": "MINIOS_SYS_GETRANDOM"}, {"kind": "macro", "line": 181, "name": "MINIOS_SYS_RSEQ"}, {"kind": "macro", "line": 182, "name": "MINIOS_SYS_EXIT_GROUP"}, {"kind": "macro", "line": 183, "name": "MINIOS_SYS_SET_TID_ADDRESS"}, {"kind": "macro", "line": 184, "name": "MINIOS_SYS_CLOCK_GETTIME"}, {"kind": "macro", "line": 185, "name": "MINIOS_SYS_TGKILL"}, {"kind": "macro", "line": 188, "name": "MINIOS_SYS_DNS"}, {"kind": "macro", "line": 189, "name": "MINIOS_SYS_TLS_HANDSHAKE"}, {"kind": "macro", "line": 190, "name": "MINIOS_SYS_TLS_SEND"}, {"kind": "macro", "line": 191, "name": "MINIOS_SYS_TLS_RECV"}, {"kind": "macro", "line": 192, "name": "MINIOS_SYS_TIME"}, {"kind": "macro", "line": 193, "name": "MINIOS_SYS_KBD"}, {"kind": "macro", "line": 194, "name": "MINIOS_SYS_PALETTE"}, {"kind": "macro", "line": 195, "name": "MINIOS_SYS_KBD_RAW"}, {"kind": "macro", "line": 196, "name": "MINIOS_SYS_VGA_MODE"}, {"kind": "macro", "line": 197, "name": "MINIOS_SYS_PCSPK_INIT"}, {"kind": "macro", "line": 198, "name": "MINIOS_SYS_PCSPK_TONE"}, {"kind": "macro", "line": 199, "name": "MINIOS_SYS_DOOM_FRAME"}, {"kind": "macro", "line": 200, "name": "MINIOS_SYS_RTC"}, {"kind": "macro", "line": 201, "name": "MINIOS_SYS_FB_INFO"}, {"kind": "macro", "line": 202, "name": "MINIOS_SYS_PCSPK_VOL"}, {"kind": "macro", "line": 203, "name": "MINIOS_SYS_SPAWN"}, {"kind": "macro", "line": 204, "name": "MINIOS_SYS_LZ4_COMPRESS"}, {"kind": "macro", "line": 205, "name": "MINIOS_SYS_LZ4_DECOMPRESS"}, {"kind": "macro", "line": 206, "name": "MINIOS_SYS_MOUSE"}, {"kind": "macro", "line": 207, "name": "MINIOS_SYS_NK_FRAME"}, {"kind": "macro", "line": 208, "name": "MINIOS_SYS_SB16_OPEN"}, {"kind": "macro", "line": 209, "name": "MINIOS_SYS_SB16_SUBMIT"}, {"kind": "macro", "line": 210, "name": "MINIOS_SYS_GFX_SET_TITLE"}, {"kind": "macro", "line": 211, "name": "MINIOS_SYS_SB16_PUMP"}, {"kind": "macro", "line": 212, "name": "MINIOS_SYS_SB16_STREAM_OPEN"}, {"kind": "macro", "line": 213, "name": "MINIOS_SYS_SB16_STREAM_CLOSE"}, {"kind": "macro", "line": 214, "name": "MINIOS_SYS_SB16_STREAM_SUBMIT"}, {"kind": "macro", "line": 215, "name": "MINIOS_SYS_SB16_STREAM_VOLUME"}, {"kind": "macro", "line": 216, "name": "MINIOS_SYS_THREAD_SPAWN"}, {"kind": "macro", "line": 217, "name": "MINIOS_SYS_CLONE"}, {"kind": "macro", "line": 221, "name": "SYS_TIME_MS"}, {"kind": "macro", "line": 222, "name": "SYS_PALETTE"}, {"kind": "macro", "line": 223, "name": "SYS_PCSPK_INIT"}, {"kind": "macro", "line": 224, "name": "SYS_PCSPK_TONE"}, {"kind": "macro", "line": 225, "name": "SYS_RTC"}, {"kind": "macro", "line": 226, "name": "SYS_FB_INFO"}, {"kind": "macro", "line": 227, "name": "SYS_PCSPK_VOL"}, {"kind": "macro", "line": 228, "name": "SYS_SPAWN"}, {"kind": "macro", "line": 229, "name": "SYS_TIME"}, {"kind": "macro", "line": 230, "name": "SYS_WRITE"}, {"kind": "macro", "line": 233, "name": "MINIOS_EABI_MISMATCH"}]}, {"doc": "cvm_emit.c — node-graph to CVM bytecode compiler.", "id": "progs/nuklear/cvm_emit.c", "kind": "module", "label": "cvm_emit.c", "language": "c", "sha256": "d3bd8dadab80a4e7", "symbol_count": 30, "symbols": [{"kind": "struct", "line": 50, "name": "codebuf"}, {"kind": "function", "line": 55, "name": "cb_push", "signature": "static int cb_push(struct codebuf *cb, unsigned char c)"}, {"kind": "function", "line": 67, "name": "cb_u32", "signature": "static int cb_u32(struct codebuf *cb, unsigned long v)"}, {"kind": "function", "line": 73, "name": "cb_i64", "signature": "static int cb_i64(struct codebuf *cb, long long v)"}, {"doc": "static int cb_u32(struct codebuf *cb, unsigned long v) { for (int i = 0; i < 4; i++) if (cb_push(cb, (unsigned char)(v >> (8 * i))) < 0) return -1; return 0; } static int cb_i64(struct codebuf *cb, long long v) { for (int i = 0; i < 8; i++) if (cb_push(cb, (unsigned char)(v >> (8 * i))) < 0) return -1; return 0; } /* ---- topological sort (Kahn, stable) ----", "kind": "function", "line": 81, "name": "topo_sort", "signature": "static int topo_sort(const struct cvm_node *nodes, int n,\n int *order, char *..."}, {"kind": "function", "line": 122, "name": "cvm_compile", "signature": "int cvm_compile(const struct cvm_node *nodes, int n,\n unsigned char **out, size_t ..."}, {"doc": "size_t ft = (size_t)nf * CVM_FUNC_ENTRY_SIZE; size_t gt = (size_t)ng * CVM_GLOBAL_ENTRY_SIZE; size_t nt = (size_t)nn * CVM_NATIVE_ENTRY_SIZE; size_t st = (size_t)ns * 8; size_t code_off = CVM_MODULE_HEADER_SIZE + ft + gt + nt + st; size_t total = code_off + (size_t)cs + ds_len + (size_t)sp; unsigned char *mod = (unsigned char *)calloc(1, total); if (!mod) goto oom; mod[0] = CVM_MAGIC_0; mod[1] = CVM_MAGIC_1; mod[2] = CVM_MAGIC_2; mod[3] = CVM_MAGIC_3; mod[4] = (unsigned char)CVM_VERSION_MAJOR; mod[5] = 0; /* minor", "kind": "function", "line": 257, "name": "w32", "signature": "void w32(void *p, unsigned v)"}, {"kind": "macro", "line": 23, "name": "CVM_MAGIC_0"}, {"kind": "macro", "line": 24, "name": "CVM_MAGIC_1"}, {"kind": "macro", "line": 25, "name": "CVM_MAGIC_2"}, {"kind": "macro", "line": 26, "name": "CVM_MAGIC_3"}, {"kind": "macro", "line": 27, "name": "CVM_VERSION_MAJOR"}, {"kind": "macro", "line": 28, "name": "CVM_MODULE_HEADER_SIZE"}, {"kind": "macro", "line": 29, "name": "CVM_FUNC_ENTRY_SIZE"}, {"kind": "macro", "line": 30, "name": "CVM_GLOBAL_ENTRY_SIZE"}, {"kind": "macro", "line": 31, "name": "CVM_NATIVE_ENTRY_SIZE"}, {"kind": "macro", "line": 34, "name": "OP_PUSH_IMM64"}, {"kind": "macro", "line": 35, "name": "OP_PUSH_IMM32"}, {"kind": "macro", "line": 36, "name": "OP_PUSH_IMM8"}, {"kind": "macro", "line": 37, "name": "OP_PUSH_LOCAL"}, {"kind": "macro", "line": 38, "name": "OP_STORE_LOCAL"}, {"kind": "macro", "line": 39, "name": "OP_ADD"}, {"kind": "macro", "line": 40, "name": "OP_SUB"}, {"kind": "macro", "line": 41, "name": "OP_MUL"}, {"kind": "macro", "line": 42, "name": "OP_DIV"}, {"kind": "macro", "line": 43, "name": "OP_NEG"}, {"kind": "macro", "line": 44, "name": "OP_LEA_DATA"}, {"kind": "macro", "line": 45, "name": "OP_CALL_NATIVE"}, {"kind": "macro", "line": 46, "name": "OP_HALT"}, {"kind": "macro", "line": 47, "name": "CVM_MAX_NODES"}]}, {"doc": "ifndef CVM_EMIT_H define CVM_EMIT_H cvm_emit.h — node-graph compiler for CVM (cvm2 module format v2).", "id": "progs/nuklear/cvm_emit.h", "kind": "module", "label": "cvm_emit.h", "language": "h", "sha256": "bd7aa6426fdabcb7", "symbol_count": 2, "symbols": [{"doc": "One node in the graph. Inputs are indices of other nodes; output nodes * (PRINT/EXIT) terminate the compiled program.", "kind": "struct", "line": 29, "name": "cvm_node"}, {"kind": "macro", "line": 2, "name": "CVM_EMIT_H"}]}, {"doc": "node_editor.c — visual node editor that compiles to CVM bytecode.", "id": "progs/nuklear/node_editor.c", "kind": "module", "label": "node_editor.c", "language": "c", "sha256": "d71ef39cbe9e3fc9", "symbol_count": 22, "symbols": [{"kind": "struct", "line": 38, "name": "gnode"}, {"kind": "function", "line": 48, "name": "graph_clear", "signature": "static void graph_clear(void)"}, {"kind": "function", "line": 53, "name": "graph_add", "signature": "static int graph_add(int kind)"}, {"kind": "function", "line": 65, "name": "kind_name", "signature": "static const char *kind_name(int k)"}, {"kind": "function", "line": 79, "name": "node_inputs", "signature": "static int node_inputs(int k)"}, {"doc": "case G_EXIT: return \"Exit\"; } return \"?\"; } static int node_inputs(int k) { switch (k) { case G_ADD: case G_SUB: case G_MUL: case G_DIV: return 2; case G_NEG: case G_PRINT: case G_EXIT: return 1; } return 0; } /* Node colors: distinct hue per type, low saturation for readability.", "kind": "function", "line": 89, "name": "kind_color", "signature": "static struct nk_color kind_color(int k)"}, {"doc": "switch (k) { case G_NUM: return nk_rgb(70, 130, 180); /* steel blue case G_ADD: return nk_rgb(60, 179, 113); /* medium sea green case G_SUB: return nk_rgb(210, 105, 105); /* indian red case G_MUL: return nk_rgb(186, 135, 89); /* peru case G_DIV: return nk_rgb(147, 112, 219); /* medium purple case G_NEG: return nk_rgb(255, 165, 0); /* orange case G_PRINT: return nk_rgb(100, 149, 237); /* cornflower blue case G_EXIT: return nk_rgb(220, 80, 60); /* tomato } return nk_rgb(150, 150, 150); } /* Map the graph into the compiler's node array. Returns node count or <0.", "kind": "function", "line": 104, "name": "graph_to_compiler", "signature": "static int graph_to_compiler(struct cvm_node *out, int cap)"}, {"doc": "(g_nodes[i].kind == G_SUB) ? NODE_SUB : (g_nodes[i].kind == G_MUL) ? NODE_MUL : (g_nodes[i].kind == G_DIV) ? NODE_DIV : (g_nodes[i].kind == G_NEG) ? NODE_NEG : (g_nodes[i].kind == G_PRINT) ? NODE_PRINT : (g_nodes[i].kind == G_EXIT) ? NODE_EXIT : NODE_NUM; out[i].ival = g_nodes[i].ival; out[i].in[0] = g_nodes[i].in[0]; out[i].in[1] = g_nodes[i].in[1]; } return g_count; } /* Compile the current graph to a file. Returns 0 on success.", "kind": "function", "line": 122, "name": "compile_to", "signature": "static int compile_to(const char *path)"}, {"doc": "--- Headless graph text format ---- num a 5 add b a c print b exit b Each line: [value|in1 [in2]]. Inputs are earlier-defined * node names; forward references are rejected.", "kind": "function", "line": 159, "name": "parse_graph_file", "signature": "static int parse_graph_file(const char *path)"}, {"kind": "function", "line": 166, "name": "resolve", "signature": "int resolve(const char *nme, int upto)"}, {"doc": "/* Link-drag state: click an output pin, drag to an input pin. static int linking_active; static int linking_src_node; static int linking_src_slot; /* Node geometry constants. #define NODE_W 130.0f #define TITLE_H 20.0f #define PIN_R 5 #define PIN_DIAM (PIN_R * 2 + 1) #define BEZIER_PAD 50.0f #define GRID_SIZE 32.0f /* Compute the Y positions of input and output pins for a node.", "kind": "function", "line": 234, "name": "pin_y", "signature": "static float pin_y(struct gnode *n, int slot, int is_output)"}, {"kind": "function", "line": 243, "name": "ui_build", "signature": "static void ui_build(struct nk_context *ctx, float win_w, float win_h)"}, {"doc": "circle.x = n->x - PIN_R; circle.y = pin_y(n, k, 0) - PIN_R; circle.w = PIN_DIAM; circle.h = PIN_DIAM; nk_fill_circle(canvas, circle, nk_rgb(100, 100, 100)); } } nk_layout_space_end(ctx); nk_end(ctx); } } /* ---- main loop ----", "kind": "function", "line": 487, "name": "gui_run", "signature": "static void gui_run(void)"}, {"kind": "function", "line": 535, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 32, "name": "MAX_NODES"}, {"kind": "macro", "line": 213, "name": "UI_MEMORY"}, {"kind": "macro", "line": 226, "name": "NODE_W"}, {"kind": "macro", "line": 227, "name": "TITLE_H"}, {"kind": "macro", "line": 228, "name": "PIN_R"}, {"kind": "macro", "line": 229, "name": "PIN_DIAM"}, {"kind": "macro", "line": 230, "name": "BEZIER_PAD"}, {"kind": "macro", "line": 231, "name": "GRID_SIZE"}]}, {"doc": "nuklear_minios.c — MiniOS platform layer for Nuklear.", "id": "progs/nuklear/nuklear_minios.c", "kind": "module", "label": "nuklear_minios.c", "language": "c", "sha256": "8cfbe4d7fe88100c", "symbol_count": 30, "symbols": [{"doc": "wheel. All MiniOS-specific syscalls go through the Linux syscall ABI, so this compiles into a normal static ring-3 ELF. #define NK_IMPLEMENTATION #include \"nuklear.h\" #include #include #include #include \"nuklear_minios.h\" /* ---- MiniOS syscalls (canonical table from minios_abi.h) ----", "kind": "function", "line": 26, "name": "nk_sys_time_ms", "signature": "long nk_sys_time_ms(void)"}, {"kind": "function", "line": 31, "name": "nk_sys_kbd", "signature": "long nk_sys_kbd(void)"}, {"kind": "function", "line": 36, "name": "nk_sys_palette", "signature": "long nk_sys_palette(const unsigned char *pal)"}, {"kind": "function", "line": 41, "name": "nk_sys_kbd_raw", "signature": "long nk_sys_kbd_raw(int on)"}, {"kind": "function", "line": 46, "name": "nk_sys_vga_mode", "signature": "long nk_sys_vga_mode(int on)"}, {"kind": "function", "line": 51, "name": "nk_sys_fb_info", "signature": "long nk_sys_fb_info(int *w, int *h, int *pitch)"}, {"kind": "function", "line": 58, "name": "nk_sys_mouse", "signature": "long nk_sys_mouse(int *xybw)"}, {"kind": "function", "line": 63, "name": "nk_sys_mouse_badptr", "signature": "long nk_sys_mouse_badptr(void)"}, {"kind": "function", "line": 71, "name": "nk_sys_nk_frame", "signature": "long nk_sys_nk_frame(int *origin)"}, {"kind": "function", "line": 143, "name": "pal_prepare", "signature": "static void pal_prepare(void)"}, {"kind": "function", "line": 154, "name": "col_to_idx", "signature": "static int col_to_idx(struct nk_color c)"}, {"kind": "function", "line": 272, "name": "set_clip", "signature": "static void set_clip(int x, int y, int w, int h)"}, {"kind": "function", "line": 282, "name": "px", "signature": "static void px(int x, int y, int c)"}, {"kind": "function", "line": 289, "name": "fill_rect", "signature": "static void fill_rect(int x, int y, int w, int h, int c)"}, {"kind": "function", "line": 296, "name": "draw_line", "signature": "static void draw_line(int x0, int y0, int x1, int y1, int th, int c)"}, {"kind": "function", "line": 314, "name": "fill_circle", "signature": "static void fill_circle(int cx, int cy, int r, int c)"}, {"kind": "function", "line": 320, "name": "stroke_circle", "signature": "static void stroke_circle(int cx, int cy, int r, int th, int c)"}, {"doc": "draw_line(cx + x, cy - y, cx - x, cy - y, th, c); draw_line(cx - x, cy + y, cx - x, cy - y, th, c); draw_line(cx + x, cy + y, cx - x, cy - y, th, c); draw_line(cx - y, cy - x, cx - x, cy - y, th, c); draw_line(cx + y, cy - x, cx - x, cy - y, th, c); draw_line(cx - y, cy + x, cx - x, cy - y, th, c); draw_line(cx + y, cy + x, cx - x, cy - y, th, c); y++; if (err <= 0) { err += 2*y + 1; } if (err > 0) { x--; err -= 2*x + 1; } } } /* Fill a convex polygon (x[], y[]).", "kind": "function", "line": 339, "name": "fill_poly", "signature": "static void fill_poly(int *xs, int *ys, int n, int c)"}, {"kind": "function", "line": 361, "name": "stroke_poly", "signature": "static void stroke_poly(int *xs, int *ys, int n, int th, int c)"}, {"kind": "function", "line": 368, "name": "draw_text", "signature": "static void draw_text(int x, int y, const char *s, int len, int fg, int bg)"}, {"kind": "function", "line": 382, "name": "draw_arc", "signature": "static void draw_arc(int cx, int cy, int r, float a0, float a1,\n int filled, ..."}, {"kind": "function", "line": 403, "name": "nk_rasterize", "signature": "void nk_rasterize(struct nk_context *ctx)"}, {"kind": "function", "line": 408, "name": "nk_foreach", "signature": "nk_foreach(cmd, ctx)"}, {"doc": "if (c->background.a > 0) bg = col_to_idx(c->background); draw_text(c->x, c->y, c->string, c->length, fg, bg); break; } case NK_COMMAND_IMAGE: case NK_COMMAND_CUSTOM: break; default: break; } } } /* ---- Font (8x8 monospace) ----", "kind": "function", "line": 554, "name": "nk_minios_font_width", "signature": "static float nk_minios_font_width(nk_handle handle, float height,\n ..."}, {"kind": "function", "line": 559, "name": "nk_minios_font", "signature": "struct nk_user_font nk_minios_font(void)"}, {"kind": "function", "line": 593, "name": "feed_key", "signature": "static void feed_key(struct nk_context *ctx, enum nk_keys key, int down)"}, {"kind": "function", "line": 597, "name": "handle_scancode", "signature": "static void handle_scancode(struct nk_context *ctx, unsigned char sc)"}, {"kind": "function", "line": 638, "name": "nk_poll_input", "signature": "void nk_poll_input(struct nk_context *ctx)"}, {"kind": "function", "line": 675, "name": "nk_set_window_origin", "signature": "void nk_set_window_origin(int x, int y)"}, {"kind": "macro", "line": 15, "name": "NK_IMPLEMENTATION"}]}, {"doc": "ifndef NUKLEAR_MINIOS_H define NUKLEAR_MINIOS_H nuklear_minios.h — MiniOS platform layer for Nuklear.", "id": "progs/nuklear/nuklear_minios.h", "kind": "module", "label": "nuklear_minios.h", "language": "h", "sha256": "3efc583f82d618c4", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 2, "name": "NUKLEAR_MINIOS_H"}, {"kind": "macro", "line": 17, "name": "NK_W"}, {"kind": "macro", "line": 19, "name": "NK_H"}, {"kind": "macro", "line": 20, "name": "NK_BACKBUF"}]}, {"doc": "piano.c — a Nuklear piano that plays FM sound through the SB16 driver.", "id": "progs/piano/piano.c", "kind": "module", "label": "piano.c", "language": "c", "sha256": "7f8f4fcbf7afd619", "symbol_count": 48, "symbols": [{"doc": "Upper bound on audio rendered per frame, in milliseconds. The kernel-side audio ring absorbs up to ~3 seconds of buffered PCM, so a slow frame can render more without starving the speaker. The clamp is kept conservative * to avoid unbounded per-frame work. define MAX_AUDIO_MS 600", "kind": "function", "line": 63, "name": "sys_pcm_open", "signature": "static long sys_pcm_open(long on)"}, {"kind": "function", "line": 67, "name": "sys_pcm_submit", "signature": "static long sys_pcm_submit(const void *buf, long len)"}, {"kind": "function", "line": 70, "name": "sys_pcm_pump", "signature": "static long sys_pcm_pump(void)"}, {"kind": "function", "line": 85, "name": "o3_op", "signature": "static int o3_op(int ch, int is_car)"}, {"kind": "function", "line": 89, "name": "o3_opreg", "signature": "static void o3_opreg(int ch, int is_car, int regbase, int val)"}, {"kind": "function", "line": 93, "name": "o3_chreg", "signature": "static void o3_chreg(int ch, int regbase, int val)"}, {"kind": "function", "line": 130, "name": "o3_note", "signature": "static void o3_note(int ch, int midi, int on)"}, {"doc": "── Expressive note state: velocity, sustain, octave ───────────────── Voices (MAX_VOICES, the OPL3 channel count) and keys (NKEYS, the UI key count) are different things: key_to_chan maps every key to its sounding channel, so it is sized by NKEYS. Sizing it by MAX_VOICES * wrote past the end for the top keys and left them mute. #define MAX_VOICES 18 static int key_to_chan[NKEYS]; /* key index -> OPL3 channel, -1 = off static int chan_used[MAX_VOICES]; static int chan_sustained[MAX_VOICES];/* key released but pedal holds the voice static int sustain_pedal; static int octave; /* -2..+2, note shifted by 12*octave static int volume; /* 0..100 master, applied on the mix", "kind": "function", "line": 174, "name": "clamp_midi", "signature": "static int clamp_midi(int m)"}, {"doc": "static int chan_used[MAX_VOICES]; static int chan_sustained[MAX_VOICES];/* key released but pedal holds the voice static int sustain_pedal; static int octave; /* -2..+2, note shifted by 12*octave static int volume; /* 0..100 master, applied on the mix static int clamp_midi(int m) { if (m < 0) m = 0; if (m > 127) m = 127; return m; } /* Release every voice the pedal is holding (pedal lifted).", "kind": "function", "line": 182, "name": "pedal_set", "signature": "static void pedal_set(int on)"}, {"kind": "function", "line": 194, "name": "note_off_key", "signature": "static void note_off_key(int key)"}, {"kind": "function", "line": 208, "name": "note_on_key", "signature": "static void note_on_key(int key, int midi, int vel)"}, {"doc": "#define FX_DELAY_CAP (RATE) /* 1 s of delay at 22050 Hz #define FX_DELAY_MAX_MS 800 #define FX_FEEDBACK 0.35f #define FX_WET 0.55f #define FX_TREM_FREQ 5.0f static float fx_delay_buf[FX_DELAY_CAP]; static int fx_delay_len; /* samples, 0 = echo off static int fx_delay_pos; static int fx_tremolo_pct; /* 0..100, 0 = tremolo off static float fx_trem_phase; static int fx_softclip; /* (Re)configure every FX stage; also used by the selftest.", "kind": "function", "line": 250, "name": "fx_configure", "signature": "static void fx_configure(int delay_ms, int tremolo_pct, int clip, int vol)"}, {"kind": "function", "line": 268, "name": "fx_process", "signature": "static float fx_process(float x)"}, {"doc": "Flush a fully-filled buffer to the kernel audio ring. When the ring is full the submit is refused; the buffer is kept in place (fill stays at PCM_BUF) so the next frame retries it, and a drop is counted only when a new submit is blocked by a still-pending buffer, never silently. After a successful submit we call sys_pcm_pump to eagerly drain the kernel ring * into DMA slots, reducing playback latency on the fast path.", "kind": "function", "line": 299, "name": "sb_flush", "signature": "static void sb_flush(void)"}, {"kind": "function", "line": 308, "name": "render_audio", "signature": "static void render_audio(long ms)"}, {"kind": "function", "line": 334, "name": "key_rect", "signature": "static void key_rect(int key, int *x, int *y, int *w, int *h)"}, {"kind": "function", "line": 341, "name": "hit_key", "signature": "static int hit_key(int mx, int my)"}, {"doc": "Velocity 1..100 from the click's vertical position inside a key: the very * top is soft, the bottom is loud.", "kind": "function", "line": 359, "name": "hit_velocity", "signature": "static int hit_velocity(int key, int my)"}, {"doc": "define NCTRLS ((int)(sizeof(ctrls) / sizeof(ctrls[0])))", "kind": "function", "line": 385, "name": "ctrl_hit", "signature": "static int ctrl_hit(int id, int mx, int my)"}, {"kind": "function", "line": 390, "name": "ctrl_active", "signature": "static int ctrl_active(int id)"}, {"kind": "function", "line": 399, "name": "ctrl_press", "signature": "static void ctrl_press(int id)"}, {"doc": "case 1: if (octave < 2) octave++; break; case 2: if (volume > 0) volume -= 5; break; case 3: if (volume < 100) volume += 5; break; case 4: pedal_set(sustain_pedal ? 0 : 1); break; case 5: fx_configure(fx_delay_len > 0 ? 0 : 220, fx_tremolo_pct, fx_softclip, volume); break; case 6: fx_configure(fx_delay_len > 0 ? fx_delay_len * 1000 / (int)RATE : 0, fx_tremolo_pct > 0 ? 0 : 70, fx_softclip, volume); break; case 7: fx_configure(fx_delay_len > 0 ? fx_delay_len * 1000 / (int)RATE : 0, fx_tremolo_pct, fx_softclip ? 0 : 1, volume); break; default: break; } } /* ── UI ───────────────────────────────────────────────────────────────", "kind": "function", "line": 417, "name": "ui_run", "signature": "static void ui_run(int bench_ms)"}, {"doc": "if (audio_on) render_audio(elapsed); } unsigned t0 = (unsigned)nk_sys_time_ms(); while ((unsigned)nk_sys_time_ms() - t0 < 8) __asm__ volatile(\"pause\"); } nk_free(&ctx); nk_sys_kbd_raw(0); nk_sys_vga_mode(0); sys_pcm_open(0); } /* ── Headless selftest (BDD hook) ─────────────────────────────────────", "kind": "function", "line": 556, "name": "run_selftest", "signature": "static int run_selftest(void)"}, {"kind": "function", "line": 666, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 48, "name": "UI_MEMORY"}, {"kind": "macro", "line": 51, "name": "SYS_SB16_OPEN"}, {"kind": "macro", "line": 53, "name": "SYS_SB16_SUBMIT"}, {"kind": "macro", "line": 54, "name": "SYS_SB16_PUMP"}, {"kind": "macro", "line": 55, "name": "RATE"}, {"kind": "macro", "line": 57, "name": "PCM_BUF"}, {"kind": "macro", "line": 62, "name": "MAX_AUDIO_MS"}, {"kind": "macro", "line": 145, "name": "KEY_W"}, {"kind": "macro", "line": 146, "name": "KEY_H"}, {"kind": "macro", "line": 147, "name": "BK_W"}, {"kind": "macro", "line": 148, "name": "BK_H"}, {"kind": "macro", "line": 149, "name": "KEY_Y"}, {"kind": "macro", "line": 159, "name": "NKEYS"}, {"kind": "macro", "line": 166, "name": "MAX_VOICES"}, {"kind": "macro", "line": 235, "name": "FX_DELAY_CAP"}, {"kind": "macro", "line": 237, "name": "FX_DELAY_MAX_MS"}, {"kind": "macro", "line": 238, "name": "FX_FEEDBACK"}, {"kind": "macro", "line": 239, "name": "FX_WET"}, {"kind": "macro", "line": 240, "name": "FX_TREM_FREQ"}, {"kind": "macro", "line": 369, "name": "CTRL_Y"}, {"kind": "macro", "line": 370, "name": "CTRL_H"}, {"kind": "macro", "line": 371, "name": "BTN_W"}, {"kind": "macro", "line": 372, "name": "BTN_GAP"}, {"kind": "macro", "line": 384, "name": "NCTRLS"}]}, {"doc": "fetch.sh - clone the gb-recompiled tool into progs/pokemon/upstream. The upstream project ships the recompiler + runtime, but no ROMs and no pre-generated game code (see its README). You generate a project from a ROM you legally own, then point the MiniOS build at it. See README.md. Usage: ./fetch.sh (safe to re-run; never touches an existing checkout)", "id": "progs/pokemon/fetch.sh", "kind": "module", "label": "fetch.sh", "language": "sh", "sha256": "f799a72d603f6a93", "symbol_count": 0, "symbols": []}, {"doc": "SDL.h stub for MiniOS cross-compilation", "id": "progs/pokemon/minios_stubs/SDL.h", "kind": "module", "label": "SDL.h", "language": "h", "sha256": "1b9561b44c3af590", "symbol_count": 5, "symbols": [{"kind": "function", "line": 10, "name": "SDL_GetPerformanceCounter", "signature": "static inline Uint64 SDL_GetPerformanceCounter(void)"}, {"kind": "function", "line": 12, "name": "SDL_GetPerformanceFrequency", "signature": "static inline Uint64 SDL_GetPerformanceFrequency(void)"}, {"kind": "function", "line": 13, "name": "SDL_GetTicks", "signature": "static inline Uint32 SDL_GetTicks(void)"}, {"kind": "function", "line": 14, "name": "SDL_Delay", "signature": "static inline void SDL_Delay(Uint32 ms)"}, {"kind": "macro", "line": 3, "name": "SDL_H_STUB_MINIOS"}]}, {"id": "progs/pokemon/platform_minios.c", "kind": "module", "label": "platform_minios.c", "language": "c", "sha256": "924ce99d02d2898a", "symbol_count": 70, "symbols": [{"kind": "function", "line": 32, "name": "audible", "signature": "* audible (noise SFX, sweep zaps), the raw mix estimate is played.\n *\n * Debug: heartbeat to stde..."}, {"kind": "function", "line": 61, "name": "sys_kbd", "signature": "static long sys_kbd(void)"}, {"kind": "function", "line": 67, "name": "sys_nk_frame", "signature": "static long sys_nk_frame(void)"}, {"kind": "function", "line": 73, "name": "sys_vga_mode", "signature": "static long sys_vga_mode(int on)"}, {"kind": "function", "line": 79, "name": "sys_kbd_raw", "signature": "static long sys_kbd_raw(int on)"}, {"kind": "function", "line": 85, "name": "sys_palette", "signature": "static long sys_palette(const unsigned char *pal)"}, {"kind": "function", "line": 91, "name": "sys_gfx_title", "signature": "static long sys_gfx_title(const char *t)"}, {"kind": "function", "line": 97, "name": "sys_tone", "signature": "static long sys_tone(unsigned f)"}, {"kind": "function", "line": 137, "name": "gb_platform_set_debug", "signature": "void gb_platform_set_debug(bool enabled)"}, {"kind": "function", "line": 145, "name": "_dl_argv", "signature": "* usable _dl_argv (it bound to unrelated storage and strcmp faulted).\n * DO NOT reintroduce argv ..."}, {"kind": "function", "line": 195, "name": "minios_audio_sample", "signature": "static void minios_audio_sample(GBContext *ctx, int16_t left, int16_t right)"}, {"kind": "function", "line": 226, "name": "gb_voice_in_range", "signature": "static bool gb_voice_in_range(unsigned f)"}, {"kind": "function", "line": 230, "name": "sample_apu_voices", "signature": "static void sample_apu_voices(gb_voice_t *v)"}, {"kind": "function", "line": 250, "name": "hold_tone", "signature": "static void hold_tone(unsigned freq, unsigned ms)"}, {"kind": "function", "line": 258, "name": "minios_audio_play", "signature": "static void minios_audio_play(const gb_voice_t *v, bool pcm_audible,\n ..."}, {"doc": "} if (m2) { mel[nmel++] = v[1].freq; } if (bass) { hold_tone(v[2].freq, MINIOS_ARP_BASS_MS); } if (nmel > 0) { hold_tone(mel[g_arp_index % (unsigned)nmel], MINIOS_ARP_MEL_MS); g_arp_index++; } } /* Called once per rendered frame: a handful of syscalls, max.", "kind": "function", "line": 294, "name": "minios_audio_frame", "signature": "static void minios_audio_frame(void)"}, {"doc": "============================================================================ PS/2 Set 1 scancode -> GB joypad mapping Arrow keys = D-pad Z = A, X = B Enter = Start, Backspace = Select * ========================================================================== static uint8_t g_key_state[128]; /* pressed/released per scancode", "kind": "function", "line": 315, "name": "rebuild_joypad", "signature": "static void rebuild_joypad(void)"}, {"kind": "function", "line": 328, "name": "poll_keyboard", "signature": "static void poll_keyboard(void)"}, {"doc": "3-3-2 RGB palette ramp, pushed ONCE at init (not per frame). * Pixel index = (R & 0xE0) | ((G & 0xE0) >> 3) | ((B & 0xC0) >> 6).", "kind": "function", "line": 368, "name": "push_332_palette", "signature": "static void push_332_palette(void)"}, {"doc": "static void push_332_palette(void) { uint8_t dac[768]; for (int i = 0; i < 256; i++) { uint8_t r = (uint8_t)(i & 0xE0); uint8_t g = (uint8_t)((i & 0x1C) << 3); uint8_t b = (uint8_t)((i & 0x03) << 6); dac[i * 3 + 0] = (uint8_t)(r | (r >> 3) | (r >> 6)); dac[i * 3 + 1] = (uint8_t)(g | (g >> 3) | (g >> 6)); dac[i * 3 + 2] = (uint8_t)(b | (b >> 2) | (b >> 4) | (b >> 6)); } sys_palette(dac); } /* Scale and upload frame to backbuffer (nearest neighbor, exact 2x).", "kind": "function", "line": 382, "name": "upload_frame", "signature": "static void upload_frame(const uint32_t *framebuffer)"}, {"doc": "============================================================================ gb_platform_* interface implementation * ==========================================================================", "kind": "function", "line": 441, "name": "gb_platform_init", "signature": "bool gb_platform_init(int scale)"}, {"doc": "-- Battery + RTC persistence (direct write to MiniFS) --- Paths use minifs bin/: kfopen checks the ramdisk FIRST, but the ramdisk has no bin/ directory, so these always land on persistent MiniFS and survive reboot (ramdisk files do not). Writes are direct (fopen w + fwrite + fclose); there is no rename() on MiniOS yet, so * no atomic temp+rename transaction like the SDL port does.", "kind": "function", "line": 467, "name": "minios_persist_path", "signature": "static void minios_persist_path(char *out, size_t n, const GBContext *ctx,\n ..."}, {"kind": "function", "line": 473, "name": "minios_load_helper", "signature": "static bool minios_load_helper(const char *path, void *data, size_t size,\n ..."}, {"kind": "function", "line": 491, "name": "minios_save_helper", "signature": "static bool minios_save_helper(const char *path, const void *data, size_t size)"}, {"kind": "function", "line": 502, "name": "minios_load_battery_ram", "signature": "static bool minios_load_battery_ram(GBContext *ctx, const char *rom_name,\n ..."}, {"kind": "function", "line": 510, "name": "minios_save_battery_ram", "signature": "static bool minios_save_battery_ram(GBContext *ctx, const char *rom_name,\n ..."}, {"kind": "function", "line": 520, "name": "minios_load_rtc_data", "signature": "static bool minios_load_rtc_data(GBContext *ctx, const char *rom_name,\n ..."}, {"kind": "function", "line": 528, "name": "minios_save_rtc_data", "signature": "static bool minios_save_rtc_data(GBContext *ctx, const char *rom_name,\n ..."}, {"doc": "define MINIOS_AUTOSAVE_MS 60000u", "kind": "function", "line": 550, "name": "minios_state_path", "signature": "static void minios_state_path(char *out, size_t n, const GBContext *ctx)"}, {"kind": "function", "line": 555, "name": "minios_autosave", "signature": "static void minios_autosave(uint32_t now)"}, {"doc": "} static void minios_autosave(uint32_t now) { if (!g_ctx || now - g_last_autosave_ms < MINIOS_AUTOSAVE_MS) { return; } g_last_autosave_ms = now; if (gb_context_save_ram(g_ctx)) { fprintf(stderr, \"[MINIOS] Autosaved battery/RTC\\n\"); fflush(stderr); } } /* PS/2 Set 1: F5 = 0x3F, F8 = 0x42, Ctrl = 0x1D, S = 0x1F", "kind": "function", "line": 568, "name": "poll_hotkeys", "signature": "static void poll_hotkeys(void)"}, {"kind": "function", "line": 597, "name": "gb_platform_register_context", "signature": "void gb_platform_register_context(GBContext *ctx)"}, {"kind": "function", "line": 613, "name": "gb_platform_shutdown", "signature": "void gb_platform_shutdown(void)"}, {"kind": "function", "line": 620, "name": "gb_platform_poll_events", "signature": "bool gb_platform_poll_events(GBContext *ctx)"}, {"kind": "function", "line": 628, "name": "gb_platform_render_frame", "signature": "void gb_platform_render_frame(const uint32_t *framebuffer)"}, {"kind": "function", "line": 655, "name": "gb_platform_present_framebuffer", "signature": "void gb_platform_present_framebuffer(const uint32_t *framebuffer)"}, {"kind": "function", "line": 661, "name": "gb_platform_render_lcd_off_frame", "signature": "void gb_platform_render_lcd_off_frame(void)"}, {"kind": "function", "line": 671, "name": "gb_platform_vsync", "signature": "void gb_platform_vsync(uint32_t frame_cycles)"}, {"kind": "function", "line": 687, "name": "gb_platform_set_benchmark_mode", "signature": "void gb_platform_set_benchmark_mode(bool enabled)"}, {"kind": "function", "line": 691, "name": "gb_platform_set_input_script", "signature": "bool gb_platform_set_input_script(const char *script)"}, {"kind": "function", "line": 697, "name": "gb_platform_set_input_record_file", "signature": "void gb_platform_set_input_record_file(const char *path)"}, {"kind": "function", "line": 702, "name": "gb_platform_set_persistence_dir", "signature": "bool gb_platform_set_persistence_dir(const char *path)"}, {"kind": "function", "line": 711, "name": "gb_platform_set_dump_frames", "signature": "void gb_platform_set_dump_frames(const char *frames)"}, {"kind": "function", "line": 733, "name": "gb_platform_set_dump_present_frames", "signature": "void gb_platform_set_dump_present_frames(const char *frames)"}, {"kind": "function", "line": 754, "name": "gb_platform_set_screenshot_prefix", "signature": "void gb_platform_set_screenshot_prefix(const char *prefix)"}, {"kind": "function", "line": 760, "name": "gb_platform_get_timing_info", "signature": "void gb_platform_get_timing_info(GBPlatformTimingInfo *out)"}, {"kind": "function", "line": 767, "name": "gb_platform_get_joypad", "signature": "uint8_t gb_platform_get_joypad(void)"}, {"kind": "function", "line": 771, "name": "gb_platform_set_title", "signature": "void gb_platform_set_title(const char *title)"}, {"kind": "function", "line": 777, "name": "gb_platform_get_smooth_lcd_transitions", "signature": "bool gb_platform_get_smooth_lcd_transitions(void)"}, {"kind": "function", "line": 781, "name": "gb_platform_set_smooth_lcd_transitions", "signature": "void gb_platform_set_smooth_lcd_transitions(bool enabled)"}, {"kind": "function", "line": 785, "name": "gb_platform_set_launcher_return_enabled", "signature": "void gb_platform_set_launcher_return_enabled(bool enabled)"}, {"kind": "function", "line": 789, "name": "gb_platform_get_exit_action", "signature": "GBPlatformExitAction gb_platform_get_exit_action(void)"}, {"kind": "function", "line": 793, "name": "gb_platform_submit_port_frame", "signature": "void gb_platform_submit_port_frame(void *user, const GBPortFrame *frame)"}, {"doc": "void gb_platform_set_launcher_return_enabled(bool enabled) { (void)enabled; } GBPlatformExitAction gb_platform_get_exit_action(void) { return g_exit_action; } void gb_platform_submit_port_frame(void *user, const GBPortFrame *frame) { (void)user; (void)frame; } /* Test-hook stubs (no-ops on MiniOS)", "kind": "function", "line": 800, "name": "gb_platform_test_audio_concurrency", "signature": "bool gb_platform_test_audio_concurrency(uint32_t frames,\n ..."}, {"kind": "function", "line": 808, "name": "gb_platform_test_inject_persistence_fault", "signature": "void gb_platform_test_inject_persistence_fault(\n GBPersistenceTestTarget target,\n GBPersist..."}, {"kind": "macro", "line": 107, "name": "FB_ADDR"}, {"kind": "macro", "line": 109, "name": "FB_W"}, {"kind": "macro", "line": 110, "name": "FB_H"}, {"kind": "macro", "line": 111, "name": "GB_SCALE"}, {"kind": "macro", "line": 113, "name": "GB_DST_W"}, {"kind": "macro", "line": 114, "name": "GB_DST_H"}, {"kind": "macro", "line": 115, "name": "GB_DST_X0"}, {"kind": "macro", "line": 116, "name": "GB_DST_Y0"}, {"kind": "macro", "line": 180, "name": "MINIOS_AUDIO_RATE"}, {"kind": "macro", "line": 182, "name": "MINIOS_AUDIO_SILENCE_E"}, {"kind": "macro", "line": 183, "name": "MINIOS_AUDIO_MIN_HZ"}, {"kind": "macro", "line": 184, "name": "MINIOS_AUDIO_MAX_HZ"}, {"kind": "macro", "line": 185, "name": "MINIOS_ARP_BASS_MS"}, {"kind": "macro", "line": 186, "name": "MINIOS_ARP_MEL_MS"}, {"kind": "macro", "line": 549, "name": "MINIOS_AUTOSAVE_MS"}]}, {"doc": "q2generic_minios.c - MiniOS platform layer for quake2generic.", "id": "progs/quake2generic/q2generic_minios.c", "kind": "module", "label": "q2generic_minios.c", "language": "c", "sha256": "d980baabe1fbea83", "symbol_count": 28, "symbols": [{"kind": "function", "line": 5, "name": "SYS_DOOM_FRAME", "signature": "* SYS_DOOM_FRAME (211) and the kernel composites the buffer onto the\n * hi-res desktop as a title..."}, {"kind": "function", "line": 28, "name": "sys_kbd", "signature": "static long sys_kbd(void)"}, {"kind": "function", "line": 34, "name": "sys_palette", "signature": "static long sys_palette(const unsigned char *pal)"}, {"kind": "function", "line": 40, "name": "sys_kbd_raw", "signature": "static long sys_kbd_raw(int on)"}, {"kind": "function", "line": 46, "name": "sys_vga_mode", "signature": "static long sys_vga_mode(int on)"}, {"kind": "function", "line": 52, "name": "sys_doom_frame", "signature": "static long sys_doom_frame(void)"}, {"kind": "function", "line": 58, "name": "sys_mouse", "signature": "static long sys_mouse(int *buf)"}, {"kind": "function", "line": 64, "name": "sys_set_title", "signature": "static long sys_set_title(const char *t)"}, {"kind": "function", "line": 86, "name": "q2g_parse_autoframes", "signature": "static void q2g_parse_autoframes(int argc, char **argv)"}, {"kind": "function", "line": 101, "name": "QG_GetMouseDiff", "signature": "void QG_GetMouseDiff(int *dx, int *dy)"}, {"kind": "function", "line": 112, "name": "QG_CaptureMouse", "signature": "void QG_CaptureMouse(void)"}, {"kind": "function", "line": 116, "name": "QG_ReleaseMouse", "signature": "void QG_ReleaseMouse(void)"}, {"kind": "function", "line": 119, "name": "QG_Mkdir", "signature": "void QG_Mkdir(const char *path)"}, {"kind": "function", "line": 123, "name": "scancode_to_q2key", "signature": "static unsigned char scancode_to_q2key(unsigned char raw)"}, {"kind": "function", "line": 206, "name": "extended_to_q2key", "signature": "static unsigned char extended_to_q2key(unsigned char sc)"}, {"kind": "function", "line": 224, "name": "kbd_poll", "signature": "static void kbd_poll(void)"}, {"kind": "function", "line": 254, "name": "SWimp_SetPalette", "signature": "void SWimp_SetPalette(const unsigned char *palette)"}, {"kind": "function", "line": 264, "name": "SWimp_SetMode", "signature": "rserr_t SWimp_SetMode(int *pwidth, int *pheight, int mode, qboolean fullscreen)"}, {"kind": "function", "line": 281, "name": "SWimp_Init", "signature": "int SWimp_Init(void *hInstance, void *wndProc)"}, {"kind": "function", "line": 287, "name": "SWimp_Shutdown", "signature": "void SWimp_Shutdown(void)"}, {"kind": "function", "line": 290, "name": "SWimp_BeginFrame", "signature": "void SWimp_BeginFrame(float camera_separation)"}, {"kind": "function", "line": 293, "name": "SWimp_EndFrame", "signature": "void SWimp_EndFrame(void)"}, {"kind": "function", "line": 312, "name": "SWimp_AppActivate", "signature": "void SWimp_AppActivate(qboolean active)"}, {"kind": "function", "line": 316, "name": "QG_Milliseconds", "signature": "int QG_Milliseconds(void)"}, {"kind": "function", "line": 320, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 19, "name": "Q2G_FB_W"}, {"kind": "macro", "line": 21, "name": "Q2G_FB_H"}, {"kind": "macro", "line": 70, "name": "Q2G_BACKBUF"}]}, {"doc": "aes.c - command path AES-256-CTR encryption tools: aes and unaes.", "id": "progs/src/aes.c", "kind": "module", "label": "aes.c", "language": "c", "sha256": "f1289339228efbf7", "symbol_count": 41, "symbols": [{"kind": "function", "line": 68, "name": "aes_read_all", "signature": "static char *aes_read_all(const char *name, int *len)"}, {"kind": "function", "line": 85, "name": "aes_write_all", "signature": "static int aes_write_all(const char *name, char *data, int len)"}, {"kind": "function", "line": 95, "name": "aes_has", "signature": "static int aes_has(const char *s, const char *needle)"}, {"kind": "function", "line": 109, "name": "hex_val", "signature": "static int hex_val(int c)"}, {"kind": "function", "line": 116, "name": "aes_parse_hex", "signature": "static int aes_parse_hex(const char *s, int want, int *out)"}, {"doc": "static int aes_parse_hex(const char *s, int want, int *out) { int i, hi, lo; if ((int)strlen(s) != want) return 0; for (i = 0; i < want; i += 2) { hi = hex_val(s[i]); lo = hex_val(s[i + 1]); if (hi < 0 || lo < 0) return 0; out[i / 2] = hi * 16 + lo; } return 1; } /* Multiply in GF(2^8) modulo the AES polynomial; both operands are 0..255.", "kind": "function", "line": 130, "name": "aes_gf_mul", "signature": "static int aes_gf_mul(int a, int b)"}, {"kind": "function", "line": 141, "name": "aes_xtime", "signature": "static int aes_xtime(int x)"}, {"kind": "function", "line": 147, "name": "aes_rotl8", "signature": "static int aes_rotl8(int x, int n)"}, {"doc": "Build the S-box from first principles: multiplicative inverse in GF(2^8) composed with the FIPS-197 affine transform. Zero maps straight to the * affine constant because 0 has no inverse.", "kind": "function", "line": 155, "name": "aes_init_tables", "signature": "static void aes_init_tables(void)"}, {"doc": "Expand the 32-byte key into AES_RK_LEN round-key bytes (FIPS-197 for Nk=8, Nr=14: RotWord plus SubWord every Nk words, an extra SubWord pass * every Nk/2 words).", "kind": "function", "line": 174, "name": "aes_key_expand", "signature": "static void aes_key_expand(const int *key)"}, {"kind": "function", "line": 208, "name": "aes_add_round_key", "signature": "static void aes_add_round_key(int round)"}, {"kind": "function", "line": 214, "name": "aes_sub_bytes", "signature": "static void aes_sub_bytes(void)"}, {"kind": "function", "line": 219, "name": "aes_shift_rows", "signature": "static void aes_shift_rows(void)"}, {"kind": "function", "line": 227, "name": "aes_mix_columns", "signature": "static void aes_mix_columns(void)"}, {"kind": "function", "line": 247, "name": "aes_cipher", "signature": "static void aes_cipher(void)"}, {"doc": "int r; aes_add_round_key(0); for (r = 1; r < AES_ROUNDS; r++) { aes_sub_bytes(); aes_shift_rows(); aes_mix_columns(); aes_add_round_key(r); } aes_sub_bytes(); aes_shift_rows(); aes_add_round_key(AES_ROUNDS); } /* Big-endian increment of the whole counter block (SP 800-38A CTR).", "kind": "function", "line": 263, "name": "aes_iv_increment", "signature": "static void aes_iv_increment(void)"}, {"doc": "aes_add_round_key(AES_ROUNDS); } /* Big-endian increment of the whole counter block (SP 800-38A CTR). static void aes_iv_increment(void) { int b; for (b = AES_BLOCK - 1; b >= 0; b--) { aes_iv[b] = aes_iv[b] + 1; if (aes_iv[b] <= 255) break; aes_iv[b] = 0; } } /* XOR data in place with the keystream Cipher(nonce), Cipher(nonce+1)...", "kind": "function", "line": 273, "name": "aes_ctr_crypt", "signature": "static void aes_ctr_crypt(char *data, int len)"}, {"kind": "function", "line": 287, "name": "aes_hdr_put", "signature": "static void aes_hdr_put(char *h, int size)"}, {"kind": "function", "line": 298, "name": "aes_hdr_get", "signature": "static int aes_hdr_get(char *h)"}, {"kind": "function", "line": 306, "name": "aes_tool_name", "signature": "static const char *aes_tool_name(int decode)"}, {"kind": "function", "line": 311, "name": "aes_run", "signature": "static int aes_run(int decode, const char *keyhex, const char *noncehex,\n const..."}, {"kind": "function", "line": 383, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 37, "name": "AES_MAGIC0"}, {"kind": "macro", "line": 39, "name": "AES_MAGIC1"}, {"kind": "macro", "line": 40, "name": "AES_MAGIC2"}, {"kind": "macro", "line": 41, "name": "AES_MAGIC3"}, {"kind": "macro", "line": 42, "name": "AES_HDR_SIZE"}, {"kind": "macro", "line": 43, "name": "AES_BLOCK"}, {"kind": "macro", "line": 45, "name": "AES_KEY_BYTES"}, {"kind": "macro", "line": 46, "name": "AES_NONCE_BYTES"}, {"kind": "macro", "line": 47, "name": "AES_ROUNDS"}, {"kind": "macro", "line": 48, "name": "AES_RK_LEN"}, {"kind": "macro", "line": 49, "name": "AES_SBOX_SIZE"}, {"kind": "macro", "line": 50, "name": "AES_RCON_SIZE"}, {"kind": "macro", "line": 51, "name": "AES_POLY"}, {"kind": "macro", "line": 53, "name": "AES_AFFINE_C"}, {"kind": "macro", "line": 54, "name": "AES_RCON_PAD"}, {"kind": "macro", "line": 55, "name": "HEX_KEY_LEN"}, {"kind": "macro", "line": 57, "name": "HEX_NONCE_LEN"}, {"kind": "macro", "line": 58, "name": "AES_SEEK_END"}, {"kind": "macro", "line": 60, "name": "AES_EXIT_FAIL"}]}, {"doc": "include \"minios_abi.h\"", "id": "progs/src/audio.c", "kind": "module", "label": "audio.c", "language": "c", "sha256": "dea81557f895a548", "symbol_count": 17, "symbols": [{"doc": "include \"minios_abi.h\"", "kind": "function", "line": 2, "name": "syscall1", "signature": "static long syscall1(long n, long a1)"}, {"kind": "function", "line": 8, "name": "syscall2", "signature": "static long syscall2(long n, long a1, long a2)"}, {"kind": "function", "line": 14, "name": "syscall3", "signature": "static long syscall3(long n, long a1, long a2, long a3)"}, {"kind": "function", "line": 20, "name": "syscall0", "signature": "static long syscall0(long n)"}, {"kind": "function", "line": 26, "name": "audio_init", "signature": "int audio_init(void)"}, {"kind": "function", "line": 30, "name": "audio_tone", "signature": "void audio_tone(unsigned freq)"}, {"kind": "function", "line": 34, "name": "audio_pcm_open", "signature": "int audio_pcm_open(unsigned rate, unsigned channels, unsigned format)"}, {"kind": "function", "line": 39, "name": "audio_pcm_submit", "signature": "int audio_pcm_submit(const void *buf, unsigned len)"}, {"kind": "function", "line": 43, "name": "audio_pcm_pump", "signature": "void audio_pcm_pump(void)"}, {"kind": "function", "line": 47, "name": "audio_pcm_close", "signature": "void audio_pcm_close(void)"}, {"kind": "function", "line": 51, "name": "audio_set_volume", "signature": "void audio_set_volume(unsigned volume)"}, {"kind": "function", "line": 55, "name": "audio_get_volume", "signature": "unsigned audio_get_volume(void)"}, {"kind": "function", "line": 59, "name": "audio_sb16_present", "signature": "int audio_sb16_present(void)"}, {"kind": "function", "line": 63, "name": "audio_stream_open", "signature": "int audio_stream_open(void)"}, {"kind": "function", "line": 67, "name": "audio_stream_close", "signature": "void audio_stream_close(int id)"}, {"kind": "function", "line": 71, "name": "audio_stream_submit", "signature": "int audio_stream_submit(int id, const void *buf, unsigned len)"}, {"kind": "function", "line": 75, "name": "audio_stream_volume", "signature": "void audio_stream_volume(int id, unsigned char vol)"}]}, {"id": "progs/src/cp.c", "kind": "module", "label": "cp.c", "language": "c", "sha256": "5df91ae276c2460d", "symbol_count": 3, "symbols": [{"doc": "define CP_BUF_SIZE 4096 define CP_EXIT_FAIL 1", "kind": "function", "line": 9, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 6, "name": "CP_BUF_SIZE"}, {"kind": "macro", "line": 8, "name": "CP_EXIT_FAIL"}]}, {"doc": "Ring-3 privilege probe. Reads the CS selector at runtime and exits with", "id": "progs/src/cpl.c", "kind": "module", "label": "cpl.c", "language": "c", "sha256": "8d7ecbd9bf6d41bc", "symbol_count": 3, "symbols": [{"doc": "Ring-3 privilege probe. Reads the CS selector at runtime and exits with the CPL it is executing at. Under the isolation contract a Linux ELF runs at ring 3, so CS is the user code selector (0x23) and the exit code is 3; a regression to ring-0 execution would report 0. Built as a * static Linux ELF like lxhello.elf and run through the syscall ABI.", "kind": "function", "line": 6, "name": "read_cpl", "signature": "static long read_cpl(void)"}, {"kind": "function", "line": 11, "name": "exit_now", "signature": "static void exit_now(long code)"}, {"kind": "function", "line": 15, "name": "_start", "signature": "void _start(void)"}]}, {"id": "progs/src/fib.c", "kind": "module", "label": "fib.c", "language": "c", "sha256": "208268e3c5570576", "symbol_count": 2, "symbols": [{"kind": "function", "line": 1, "name": "fib", "signature": "int fib(int n)"}, {"kind": "function", "line": 5, "name": "main", "signature": "int main(void)"}]}, {"doc": "freedom - a headless text browser for MiniOS.", "id": "progs/src/freedom.c", "kind": "module", "label": "freedom.c", "language": "c", "sha256": "c9848577324cc4d6", "symbol_count": 41, "symbols": [{"doc": "static char f_dom[FREEDOM_DOM_BUF]; static int f_domlen; static char f_css[FREEDOM_CSS_BUF]; static int f_csslen; static char f_linkhost[FREEDOM_CSS_MAX][64]; static char f_linkpath[FREEDOM_CSS_MAX][128]; static int f_linkn; static int f_cstage; static int f_csize; static int f_crem; static int f_bdone; /* Decimal string to int (the ld stub set has no atol).", "kind": "function", "line": 127, "name": "atoi", "signature": "static int atoi(char *s)"}, {"doc": "Append src to dst at pos; returns the new length or -1 when it does * not fit.", "kind": "function", "line": 140, "name": "append", "signature": "static int append(char *dst, int pos, char *src, int cap)"}, {"kind": "function", "line": 148, "name": "ci_lower", "signature": "static int ci_lower(int c)"}, {"doc": "int n; n = strlen(src); if (pos + n >= cap) return -1; memcpy(dst + pos, src, n); dst[pos + n] = 0; return pos + n; } static int ci_lower(int c) { if (c >= 'A' && c <= 'Z') return c + ('a' - 'A'); return c; } /* Case-insensitive starts-with.", "kind": "function", "line": 155, "name": "ci_starts", "signature": "static int ci_starts(char *s, char *pre)"}, {"doc": "} /* Case-insensitive starts-with. static int ci_starts(char *s, char *pre) { while (*pre) { if (!*s) return 0; if (ci_lower(*s) != ci_lower(*pre)) return 0; s++; pre++; } return 1; } /* Case-insensitive equality.", "kind": "function", "line": 166, "name": "ci_eq", "signature": "static int ci_eq(char *a, char *b)"}, {"doc": "return 1; } /* Case-insensitive equality. static int ci_eq(char *a, char *b) { while (*a && *b) { if (ci_lower(*a) != ci_lower(*b)) return 0; a++; b++; } return *a == 0 && *b == 0; } /* Case-insensitive index of needle in haystack, or -1.", "kind": "function", "line": 176, "name": "ci_index", "signature": "static int ci_index(char *s, char *needle)"}, {"doc": "} return *a == 0 && *b == 0; } /* Case-insensitive index of needle in haystack, or -1. static int ci_index(char *s, char *needle) { int i; for (i = 0; s[i]; i++) { if (ci_starts(s + i, needle)) return i; } return -1; } /* Does the input look like an URL (no spaces, contains a dot)?", "kind": "function", "line": 185, "name": "looks_like_url", "signature": "static int looks_like_url(char *s)"}, {"doc": "Does s begin with \":\" per RFC 3986 (ALPHA *(ALPHA/DIGIT/+/-/.) \":\")? Any such prefix makes the string a scheme, * and the omnibox policy is: only http:// and https:// are executed.", "kind": "function", "line": 199, "name": "has_scheme", "signature": "static int has_scheme(char *s)"}, {"doc": "char c; c = s[0]; if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))) return 0; for (i = 1; s[i]; i++) { c = s[i]; if (c == ':') return 1; if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '+' || c == '-' || c == '.')) return 0; } return 0; } /* Encode a query for the DuckDuckGo HTML endpoint (no-JS).", "kind": "function", "line": 215, "name": "make_search", "signature": "static void make_search(char *out, char *query, int cap)"}, {"doc": "Split an http:// or https:// URL into f_host, f_path, f_port and f_secure. Returns 0 on failure. The input buffer is never modified: the parse is index-only, so it stays valid when the compiler widens * dereferenced stores.", "kind": "function", "line": 239, "name": "split_url", "signature": "static int split_url(char *url)"}, {"doc": "Recompute f_host/f_path/f_port/f_secure from the last Location value. Returns 1 when the chase may continue, 0 when it must stop * (diagnostic already printed).", "kind": "function", "line": 286, "name": "resolve_redirect", "signature": "static int resolve_redirect(void)"}, {"doc": "if (l + 1 >= 128) return 0; f_path[0] = '/'; memcpy(f_path + 1, loc, l); f_path[l + 1] = 0; } else { if (last + 1 + l >= 128) return 0; memcpy(f_path + last + 1, loc, l); f_path[last + 1 + l] = 0; } } return 1; } /* --- HTML filter --------------------------------------------------", "kind": "function", "line": 338, "name": "put_ws", "signature": "static void put_ws(void)"}, {"doc": "Print one text byte through the UTF-8 gate. Remote pages are hostile data: bytes outside a valid UTF-8 sequence (overlong, surrogate, out of range) are replaced with '?' (FreeDom policy). * Sequence state is kept in f_utbuf/f_utlen/f_utrem.", "kind": "function", "line": 350, "name": "put_utf", "signature": "static void put_utf(int c)"}, {"doc": "Print one text byte: whitespace collapses, everything else goes * through the UTF-8 gate. Dump modes suppress the page text.", "kind": "function", "line": 400, "name": "put_text", "signature": "static void put_text(int c)"}, {"doc": "} else if (v >= 2048 && v < 65536) { put_text(224 | (v >> 12)); put_text(128 | ((v >> 6) & 63)); put_text(128 | (v & 63)); } } else { int k; put_text('&'); for (k = 0; e[k]; k++) put_text(e[k]); put_text(';'); } } /* --- dump capture helpers ------------------------------------------", "kind": "function", "line": 455, "name": "css_append", "signature": "static void css_append(char *s, int n)"}, {"kind": "function", "line": 461, "name": "css_line", "signature": "static void css_line(char *s)"}, {"kind": "function", "line": 466, "name": "dom_append", "signature": "static void dom_append(char *s, int n)"}, {"kind": "function", "line": 472, "name": "dom_space", "signature": "static void dom_space(void)"}, {"kind": "function", "line": 476, "name": "dom_nl", "signature": "static void dom_nl(void)"}, {"doc": "int i; for (i = 0; i < n && f_domlen < FREEDOM_DOM_BUF - 1; i++) f_dom[f_domlen++] = s[i]; } static void dom_space(void) { if (f_domlen < FREEDOM_DOM_BUF - 1) f_dom[f_domlen++] = ' '; } static void dom_nl(void) { if (f_domlen < FREEDOM_DOM_BUF - 1) f_dom[f_domlen++] = '\\n'; } /* Record the finished attribute in its place.", "kind": "function", "line": 482, "name": "record_attr", "signature": "static void record_attr(void)"}, {"doc": "f_hreflen = f_vallen < 127 ? f_vallen : 127; memcpy(f_href, f_val, f_hreflen); f_href[f_hreflen] = 0; } else if (ci_eq(f_attr, \"style\")) { f_stylelen = f_vallen < (FREEDOM_ATTR_MAX - 1) ? f_vallen : (FREEDOM_ATTR_MAX - 1); memcpy(f_styleattr, f_val, f_stylelen); f_styleattr[f_stylelen] = 0; } else if (ci_eq(f_attr, \"rel\")) { f_rel_ss = ci_index(f_val, \"stylesheet\") >= 0; } } /* Is tagname a void element (no closing tag, no children)?", "kind": "function", "line": 507, "name": "is_void_tag", "signature": "static int is_void_tag(void)"}, {"doc": "A tag was fully collected into f_tagn (+ attributes). Decide what it * does to the stream and the dumps.", "kind": "function", "line": 519, "name": "classify_tag", "signature": "static void classify_tag(void)"}, {"doc": "} dom_nl(); if (!is_void_tag()) f_depth++; } if (ci_eq(f_tagn, \"br\") || ci_eq(f_tagn, \"p\") || ci_eq(f_tagn, \"div\") || ci_eq(f_tagn, \"h1\") || ci_eq(f_tagn, \"h2\") || ci_eq(f_tagn, \"h3\") || ci_eq(f_tagn, \"h4\") || ci_eq(f_tagn, \"h5\") || ci_eq(f_tagn, \"h6\") || ci_eq(f_tagn, \"li\") || ci_eq(f_tagn, \"tr\")) { if (f_mode == 0) putchar('\\n'); f_ws = 1; } } /* Feed one body byte into the filter.", "kind": "function", "line": 604, "name": "body_byte", "signature": "static void body_byte(int c)"}, {"doc": "f_rel_ss = 0; return; } if (c == '&') { f_entlen = 1; f_ent[0] = 0; return; } put_text(c); } /* --- HTTP ---------------------------------------------------------- /* Classify one header line (NUL-terminated).", "kind": "function", "line": 769, "name": "head_line", "signature": "static void head_line(char *line)"}, {"doc": "Parse the collected header block f_hdr[0..f_hlen-1] (the last four * bytes are the terminating CRLF CRLF).", "kind": "function", "line": 794, "name": "parse_head", "signature": "static void parse_head(void)"}, {"doc": "f_hdr[lend] = 0; if (i == 0) { char *sp; sp = strchr(f_hdr, ' '); if (sp) f_status = atoi(sp + 1); } else if (lend > i) { head_line(f_hdr + i); } f_hdr[lend] = '\\r'; i = lend + 2; } } /* Receive body bytes: TLS for f_secure, plain TCP otherwise.", "kind": "function", "line": 816, "name": "recv_body", "signature": "static int recv_body(int fd, char *buf, int len)"}, {"doc": "head_line(f_hdr + i); } f_hdr[lend] = '\\r'; i = lend + 2; } } /* Receive body bytes: TLS for f_secure, plain TCP otherwise. static int recv_body(int fd, char *buf, int len) { if (f_secure) return tls_recv(fd, buf, len); return recvfrom(fd, buf, len, 0, 0, 0); } /* Send the whole request: TLS for f_secure, plain TCP otherwise.", "kind": "function", "line": 822, "name": "send_all", "signature": "static int send_all(int fd, char *buf, int len)"}, {"doc": "Send one HTTP request and process the response body. Returns the status code, or 0 on transport failure. Sets f_redir when a * Location header was seen.", "kind": "function", "line": 833, "name": "fetch", "signature": "static int fetch(char *host, char *path, int port)"}, {"doc": "Fetch a linked stylesheet and print its raw body (through the UTF-8 * gate). No redirect chasing: the bound is one request.", "kind": "function", "line": 993, "name": "fetch_css", "signature": "static void fetch_css(char *host, char *path)"}, {"doc": "} continue; } f_ws = 0; put_utf(c); got++; } } close(fd); putchar('\\n'); printf(\"freedom: %s (%d bytes)\\n\", host, got); } /* Print the collected CSS dump.", "kind": "function", "line": 1071, "name": "print_css_dump", "signature": "static void print_css_dump(void)"}, {"doc": "putchar('\\n'); printf(\"freedom: %s (%d bytes)\\n\", host, got); } /* Print the collected CSS dump. static void print_css_dump(void) { int i; puts(\"=== freedom css ===\"); for (i = 0; i < f_csslen; i++) put_utf(f_css[i]); if (f_csslen == 0) puts(\"(no css)\"); if (f_linkn > 0) putchar('\\n'); } /* Print the collected DOM outline.", "kind": "function", "line": 1080, "name": "print_dom_dump", "signature": "static void print_dom_dump(void)"}, {"kind": "function", "line": 1086, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 49, "name": "FREEDOM_HOPS_MAX"}, {"kind": "macro", "line": 51, "name": "FREEDOM_HDR_MAX"}, {"kind": "macro", "line": 52, "name": "FREEDOM_BUF"}, {"kind": "macro", "line": 53, "name": "FREEDOM_CHUNK_MAX"}, {"kind": "macro", "line": 54, "name": "FREEDOM_CSS_MAX"}, {"kind": "macro", "line": 55, "name": "FREEDOM_CSS_BUF"}, {"kind": "macro", "line": 56, "name": "FREEDOM_DOM_BUF"}, {"kind": "macro", "line": 57, "name": "FREEDOM_ATTR_MAX"}, {"kind": "macro", "line": 58, "name": "FREEDOM_LINE_MAX"}]}, {"doc": "Exercises the kernel libc surface used by loaded .o programs: fprintf to stdout/stderr, snprintf into a buffer, and exit().", "id": "progs/src/ftest.c", "kind": "module", "label": "ftest.c", "language": "c", "sha256": "1d8e1b6e8deb7dae", "symbol_count": 1, "symbols": [{"kind": "function", "line": 9, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"doc": "MiniOS test program — compiled as relocatable .o, loaded by kernel ELF loader", "id": "progs/src/hello.c", "kind": "module", "label": "hello.c", "language": "c", "sha256": "e93b117083442b2f", "symbol_count": 1, "symbols": [{"kind": "function", "line": 3, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"id": "progs/src/hello.py", "kind": "module", "label": "hello.py", "language": "py", "sha256": "72135c0623db3173", "symbol_count": 0, "symbols": []}, {"doc": "Minimal HTTP/1.0 GET through the Linux socket syscalls.", "id": "progs/src/http.c", "kind": "module", "label": "http.c", "language": "c", "sha256": "730f9ccc002f0237", "symbol_count": 2, "symbols": [{"doc": "int socket(int domain, int type, int proto); int connect(int fd, void *addr, int addrlen); int sendto(int fd, char *buf, int len, int flags, void *to, int tolen); int recvfrom(int fd, char *buf, int len, int flags, void *from, int *fromlen); int shutdown(int fd, int how); int close(int fd); int net_dns_resolve(char *host); int puts(char *s); int printf(char *fmt, ...); int strlen(char *s); int putchar(int c); /* Decimal string to int (the ld stub set has no atol).", "kind": "function", "line": 18, "name": "atoi", "signature": "int atoi(char *s)"}, {"kind": "function", "line": 28, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"doc": "json.c - command path JSON tool: validate, pretty-print and query.", "id": "progs/src/json.c", "kind": "module", "label": "json.c", "language": "c", "sha256": "3e30fcf44abc649a", "symbol_count": 28, "symbols": [{"kind": "function", "line": 57, "name": "js_read_all", "signature": "static char *js_read_all(const char *name, int *len)"}, {"kind": "function", "line": 75, "name": "js_new", "signature": "static int js_new(void)"}, {"kind": "function", "line": 80, "name": "js_skip_ws", "signature": "static void js_skip_ws(void)"}, {"kind": "function", "line": 88, "name": "js_peek", "signature": "static int js_peek(void)"}, {"kind": "function", "line": 96, "name": "js_parse_string", "signature": "static int js_parse_string(void)"}, {"kind": "function", "line": 132, "name": "js_parse_number", "signature": "static int js_parse_number(void)"}, {"kind": "function", "line": 142, "name": "js_key_match", "signature": "static int js_key_match(int child, const char *key)"}, {"kind": "function", "line": 146, "name": "js_parse_object", "signature": "static int js_parse_object(void)"}, {"kind": "function", "line": 181, "name": "js_parse_array", "signature": "static int js_parse_array(void)"}, {"kind": "function", "line": 210, "name": "js_parse_value", "signature": "static int js_parse_value(void)"}, {"doc": "neg = 0; if (c == '-') { neg = 1; js_pos++; } node = js_new(); if (node < 0) return -1; js_type[node] = JS_NUM; js_num[node] = js_parse_number(); if (neg) js_num[node] = 0 - js_num[node]; return node; } js_err = 1; return -1; } /* ---- Output ----", "kind": "function", "line": 280, "name": "js_indent", "signature": "static void js_indent(int n)"}, {"kind": "function", "line": 285, "name": "js_print_str", "signature": "static void js_print_str(const char *s)"}, {"kind": "function", "line": 302, "name": "js_print_value", "signature": "static void js_print_value(int node, int depth)"}, {"doc": "i = 0; while (c >= 0) { js_indent(depth + 1); js_print_value(c, depth + 1); if (i < js_count[node] - 1) putchar(','); putchar('\\n'); i++; c = js_next[c]; } js_indent(depth); putchar(']'); } /* ---- Query (dotted path) ----", "kind": "function", "line": 346, "name": "js_find_member", "signature": "static int js_find_member(int obj, const char *key)"}, {"kind": "function", "line": 356, "name": "js_array_at", "signature": "static int js_array_at(int arr, int idx)"}, {"kind": "function", "line": 368, "name": "js_query", "signature": "static int js_query(int root, const char *path)"}, {"kind": "function", "line": 400, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 26, "name": "JS_MAX_NODES"}, {"kind": "macro", "line": 28, "name": "JS_POOL"}, {"kind": "macro", "line": 29, "name": "JS_NULL"}, {"kind": "macro", "line": 31, "name": "JS_BOOL"}, {"kind": "macro", "line": 32, "name": "JS_NUM"}, {"kind": "macro", "line": 33, "name": "JS_STR"}, {"kind": "macro", "line": 34, "name": "JS_OBJ"}, {"kind": "macro", "line": 35, "name": "JS_ARR"}, {"kind": "macro", "line": 36, "name": "JS_SEEK_END"}, {"kind": "macro", "line": 38, "name": "JS_EXIT_OK"}, {"kind": "macro", "line": 39, "name": "JS_EXIT_FAIL"}]}, {"doc": "Kernel-pointer rejection probe. Passes a supervisor-only address", "id": "progs/src/kmem.c", "kind": "module", "label": "kmem.c", "language": "c", "sha256": "90630858cd295139", "symbol_count": 3, "symbols": [{"doc": "Kernel-pointer rejection probe. Passes a supervisor-only address (0x0C100000, inside the kernel heap at 0x0C000000) to write(2). The hardened syscall boundary must reject it with -EFAULT; the program exits 0 when the write was refused and 1 when the kernel wrongly dereferenced a kernel pointer on its behalf. Built as a static Linux * ELF like lxhello.elf.", "kind": "function", "line": 7, "name": "syscall3", "signature": "static long syscall3(long n, long a1, long a2, long a3)"}, {"kind": "function", "line": 13, "name": "exit_now", "signature": "static void exit_now(long code)"}, {"kind": "function", "line": 17, "name": "_start", "signature": "void _start(void)"}]}, {"id": "progs/src/ldhello.c", "kind": "module", "label": "ldhello.c", "language": "c", "sha256": "e91d56eec84e6fa5", "symbol_count": 1, "symbols": [{"kind": "function", "line": 1, "name": "main", "signature": "int main(void)"}]}, {"id": "progs/src/lxhello.c", "kind": "module", "label": "lxhello.c", "language": "c", "sha256": "eb061563ee3c22ce", "symbol_count": 7, "symbols": [{"doc": "lxhello — a genuine Linux x86-64 ELF executable. Built with `gcc -static -no-pie -nostdlib` so it links as ET_EXEC at 0x400000 with a hand-written _start. It never uses libc: it reads argc/argv straight off the SysV initial stack and talks to the kernel exclusively through the `syscall` instruction. If MiniOS runs this and prints the message, its ELF loader + Linux syscall ABI are working.", "kind": "function", "line": 10, "name": "lx_syscall3", "signature": "static long lx_syscall3(long n, long a1, long a2, long a3)"}, {"doc": "define SYS_write 1 define SYS_exit 60", "kind": "function", "line": 22, "name": "lx_strlen", "signature": "static unsigned long lx_strlen(const char *s)"}, {"kind": "function", "line": 28, "name": "lx_write", "signature": "static void lx_write(const char *s)"}, {"kind": "function", "line": 32, "name": "lx_write_int", "signature": "static void lx_write_int(long v)"}, {"doc": "static void lx_write_int(long v) { char buf[24]; int i = (int)sizeof(buf); int neg = 0; buf[--i] = 0; if (v < 0) { neg = 1; v = -v; } if (v == 0) buf[--i] = '0'; while (v > 0 && i > 0) { buf[--i] = (char)('0' + v % 10); v /= 10; } if (neg && i > 0) buf[--i] = '-'; lx_write(&buf[i]); } /* Entry called by _start with the real argc/argv pulled off the stack.", "kind": "function", "line": 46, "name": "lmain", "signature": "int lmain(long argc, char **argv)"}, {"kind": "macro", "line": 19, "name": "SYS_write"}, {"kind": "macro", "line": 21, "name": "SYS_exit"}]}, {"doc": "lz4.c - command path LZ4 (de)compression tools: lz4 and unlz4.", "id": "progs/src/lz4.c", "kind": "module", "label": "lz4.c", "language": "c", "sha256": "daef69571fca9759", "symbol_count": 12, "symbols": [{"doc": "define LZ4_EXIT_FAIL 1", "kind": "function", "line": 38, "name": "lz4_has", "signature": "static int lz4_has(const char *s, const char *needle)"}, {"kind": "function", "line": 52, "name": "lz4_read_all", "signature": "static char *lz4_read_all(const char *name, int *len)"}, {"kind": "function", "line": 69, "name": "lz4_write_all", "signature": "static int lz4_write_all(const char *name, char *data, int len)"}, {"kind": "function", "line": 79, "name": "lz4_compress_file", "signature": "static int lz4_compress_file(const char *src, const char *dst)"}, {"kind": "function", "line": 116, "name": "lz4_decompress_file", "signature": "static int lz4_decompress_file(const char *src, const char *dst)"}, {"kind": "function", "line": 163, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 29, "name": "LZ4_HDR_SIZE"}, {"kind": "macro", "line": 31, "name": "LZ4_BOUND_DEN"}, {"kind": "macro", "line": 32, "name": "LZ4_BOUND_SLACK"}, {"kind": "macro", "line": 33, "name": "LZ4_MAX_BLOCK"}, {"kind": "macro", "line": 34, "name": "LZ4_SEEK_END"}, {"kind": "macro", "line": 36, "name": "LZ4_EXIT_FAIL"}]}, {"doc": "lzss.c - command path LZSS (de)compression tools: lzss and unlzss.", "id": "progs/src/lzss.c", "kind": "module", "label": "lzss.c", "language": "c", "sha256": "ba08225a991cc9c6", "symbol_count": 36, "symbols": [{"kind": "function", "line": 63, "name": "lz_in_getc", "signature": "static int lz_in_getc(void)"}, {"kind": "function", "line": 68, "name": "lz_out_put", "signature": "static void lz_out_put(int c)"}, {"kind": "function", "line": 73, "name": "lz_putbit1", "signature": "static void lz_putbit1(void)"}, {"kind": "function", "line": 83, "name": "lz_putbit0", "signature": "static void lz_putbit0(void)"}, {"kind": "function", "line": 92, "name": "lz_flush_bits", "signature": "static void lz_flush_bits(void)"}, {"kind": "function", "line": 96, "name": "lz_out_literal", "signature": "static void lz_out_literal(int c)"}, {"kind": "function", "line": 104, "name": "lz_out_pair", "signature": "static void lz_out_pair(int x, int y)"}, {"kind": "function", "line": 115, "name": "lz_encode", "signature": "static int lz_encode(void)"}, {"kind": "function", "line": 160, "name": "lz_getbit", "signature": "static int lz_getbit(int n)"}, {"kind": "function", "line": 176, "name": "lz_decode", "signature": "static int lz_decode(void)"}, {"kind": "function", "line": 205, "name": "lz_hdr_put", "signature": "static void lz_hdr_put(char *h, int size)"}, {"kind": "function", "line": 216, "name": "lz_hdr_get", "signature": "static int lz_hdr_get(char *h)"}, {"kind": "function", "line": 224, "name": "lz_has", "signature": "static int lz_has(const char *s, const char *needle)"}, {"kind": "function", "line": 238, "name": "lz_read_all", "signature": "static char *lz_read_all(const char *name, int *len)"}, {"kind": "function", "line": 255, "name": "lz_write_all", "signature": "static int lz_write_all(const char *name, char *data, int len)"}, {"kind": "function", "line": 265, "name": "lz_compress", "signature": "static int lz_compress(const char *src, const char *dst)"}, {"kind": "function", "line": 312, "name": "lz_decompress", "signature": "static int lz_decompress(const char *src, const char *dst)"}, {"kind": "function", "line": 384, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 25, "name": "LZSS_EI"}, {"kind": "macro", "line": 27, "name": "LZSS_EJ"}, {"kind": "macro", "line": 28, "name": "LZSS_P"}, {"kind": "macro", "line": 29, "name": "LZSS_N"}, {"kind": "macro", "line": 30, "name": "LZSS_F"}, {"kind": "macro", "line": 31, "name": "LZSS_WIN"}, {"kind": "macro", "line": 32, "name": "LZSS_MAGIC0"}, {"kind": "macro", "line": 34, "name": "LZSS_MAGIC1"}, {"kind": "macro", "line": 35, "name": "LZSS_MAGIC2"}, {"kind": "macro", "line": 36, "name": "LZSS_MAGIC3"}, {"kind": "macro", "line": 37, "name": "LZSS_HDR_SIZE"}, {"kind": "macro", "line": 38, "name": "LZSS_ENC_SLACK"}, {"kind": "macro", "line": 40, "name": "LZSS_EXPAND_NUM"}, {"kind": "macro", "line": 41, "name": "LZSS_EXPAND_DEN"}, {"kind": "macro", "line": 42, "name": "LZSS_SEEK_END"}, {"kind": "macro", "line": 44, "name": "LZSS_ERR_NONE"}, {"kind": "macro", "line": 46, "name": "LZSS_ERR_OVERFLOW"}, {"kind": "macro", "line": 47, "name": "LZSS_EXIT_FAIL"}]}, {"doc": "mmap/munmap reclaim stress test. Repeatedly maps and unmaps a large", "id": "progs/src/mmreuse.c", "kind": "module", "label": "mmreuse.c", "language": "c", "sha256": "c4718df5dde9dd23", "symbol_count": 4, "symbols": [{"doc": "mmap/munmap reclaim stress test. Repeatedly maps and unmaps a large region. On a kernel whose munmap never returns address space, the downward mmap cursor drains until a map fails with ENOMEM (-12); with reclaim the freed region is reused and no map ever fails. Exit code 0 = pass, 1 = a map failed (the leak it guards against). Built as a static * Linux ELF like cpl.elf and run through the raw syscall ABI.", "kind": "function", "line": 7, "name": "mmap_anon", "signature": "static long mmap_anon(long len)"}, {"kind": "function", "line": 20, "name": "munmap", "signature": "static long munmap(long addr, long len)"}, {"kind": "function", "line": 30, "name": "exit_now", "signature": "static void exit_now(long code)"}, {"kind": "function", "line": 34, "name": "_start", "signature": "void _start(void)"}]}, {"doc": "mthreads.h -- Minimal pthread-like threads for MiniOS ELFs (roadmap", "id": "progs/src/mthreads.h", "kind": "module", "label": "mthreads.h", "language": "h", "sha256": "b2f73b36ca3d3fbf", "symbol_count": 11, "symbols": [{"kind": "function", "line": 42, "name": "m_syscall6", "signature": "static inline long m_syscall6(long n, long a, long b, long c)"}, {"kind": "function", "line": 51, "name": "myield", "signature": "static inline void myield(void)"}, {"kind": "function", "line": 55, "name": "mmutex_init", "signature": "static inline void mmutex_init(mmutex_t *m)"}, {"kind": "function", "line": 59, "name": "mmutex_lock", "signature": "static inline void mmutex_lock(mmutex_t *m)"}, {"kind": "function", "line": 64, "name": "mmutex_unlock", "signature": "static inline void mmutex_unlock(mmutex_t *m)"}, {"doc": "Thread entry trampoline: runs fn(arg), stores the return, exits 0. * The exit code is always 0; join reads retval from the shared slot.", "kind": "function", "line": 71, "name": "mthread_entry", "signature": "static void mthread_entry(void *p)"}, {"kind": "function", "line": 85, "name": "mthread_create", "signature": "static int mthread_create(mthread_t *t, void *(*fn)(void *), void *arg)"}, {"kind": "function", "line": 108, "name": "mthread_join", "signature": "static int mthread_join(mthread_t t, void **retval)"}, {"kind": "macro", "line": 22, "name": "MTHREADS_H"}, {"kind": "macro", "line": 25, "name": "MTHREAD_STACK_SZ"}, {"kind": "macro", "line": 27, "name": "MTHREAD_MAX"}]}, {"doc": "NX probe. Under the isolation contract every user page starts", "id": "progs/src/nx.c", "kind": "module", "label": "nx.c", "language": "c", "sha256": "36a1205ca139084a", "symbol_count": 3, "symbols": [{"kind": "function", "line": 10, "name": "write_str", "signature": "static long write_str(const char *s, long n)"}, {"kind": "function", "line": 18, "name": "exit_now", "signature": "static void exit_now(long code)"}, {"kind": "function", "line": 22, "name": "_start", "signature": "void _start(void)"}]}, {"id": "progs/src/opl3.c", "kind": "module", "label": "opl3.c", "language": "c", "sha256": "bb6632701073fbb0", "symbol_count": 17, "symbols": [{"doc": "define F_NUM_FACTOR 65536.0 / 49716.0", "kind": "function", "line": 35, "name": "sys_time", "signature": "static long sys_time(void)"}, {"kind": "function", "line": 39, "name": "sys_open", "signature": "static long sys_open(long on)"}, {"kind": "function", "line": 42, "name": "sys_submit", "signature": "static long sys_submit(const void *buf, long len)"}, {"kind": "function", "line": 45, "name": "busy_ms", "signature": "static void busy_ms(long ms)"}, {"doc": "} static long sys_open(long on) { long r; __asm__ volatile(\"syscall\":\"=a\"(r):\"a\"(SYS_SB16_OPEN),\"D\"(on):\"rcx\",\"r11\",\"memory\"); return r; } static long sys_submit(const void *buf, long len) { long r; __asm__ volatile(\"syscall\":\"=a\"(r):\"a\"(SYS_SB16_SUBMIT),\"D\"((long)buf),\"S\"(len):\"rcx\",\"r11\",\"memory\"); return r; } static void busy_ms(long ms) { long t0 = sys_time(); while (sys_time() - t0 < ms) __asm__ volatile(\"pause\"); } /* 2-op FM instrument, channel 0 (modulator op0, carrier op1).", "kind": "function", "line": 52, "name": "opl3_set_instrument", "signature": "static void opl3_set_instrument(opl3_chip *chip)"}, {"kind": "function", "line": 68, "name": "opl3_note", "signature": "static void opl3_note(opl3_chip *chip, unsigned block, unsigned fnum, int on)"}, {"doc": "Render `ms` of the current note and stream it to the SB16. Each submit is one DMA buffer of MONO_BYTES; submissions are paced to real-time audio * (BUF_MS each) so the kernel ring stays full without overflowing.", "kind": "function", "line": 77, "name": "render", "signature": "static void render(opl3_chip *chip, long ms, long *fail)"}, {"kind": "function", "line": 106, "name": "main", "signature": "int main(void)"}, {"kind": "macro", "line": 20, "name": "SYS_TIME"}, {"kind": "macro", "line": 22, "name": "SYS_SB16_OPEN"}, {"kind": "macro", "line": 23, "name": "SYS_SB16_SUBMIT"}, {"kind": "macro", "line": 24, "name": "SYS_WRITE"}, {"kind": "macro", "line": 27, "name": "SAMPLE_RATE"}, {"kind": "macro", "line": 29, "name": "STEREO_FRAMES"}, {"kind": "macro", "line": 30, "name": "MONO_BYTES"}, {"kind": "macro", "line": 31, "name": "BUF_MS"}, {"kind": "macro", "line": 33, "name": "F_NUM_FACTOR"}]}, {"doc": "sbtone.c — headless SB16 diagnostic (ring-3, no GUI).", "id": "progs/src/sbtone.c", "kind": "module", "label": "sbtone.c", "language": "c", "sha256": "6075d31b3a2b6250", "symbol_count": 8, "symbols": [{"kind": "function", "line": 13, "name": "buffers", "signature": "*\n * Exit code is the number of submitted buffers (0 on failure to open).\n */\n\n#include ..."}, {"kind": "function", "line": 35, "name": "main", "signature": "int main(void)"}, {"kind": "macro", "line": 20, "name": "SYS_SB16_OPEN"}, {"kind": "macro", "line": 22, "name": "SYS_SB16_SUBMIT"}, {"kind": "macro", "line": 23, "name": "SYS_TIME"}, {"kind": "macro", "line": 24, "name": "RATE"}, {"kind": "macro", "line": 26, "name": "BUF"}, {"kind": "macro", "line": 27, "name": "WINDOW_MS"}]}, {"doc": "shell.py -- pybash: a Python shell layer on top of MiniOS's C shell. The C shell is untouched. This is an additional capability layer that gives MiniOS pipelines, variables and control flow in Python, so new behaviour no longer requires recompiling kernel.c. The core primitive is minios.run(), which invokes any ramdisk program through SYS_SPAWN while preserving the interpreter, and minios.run(..., redirect=file) to capture a program's console output for composition. Usage (inside MiniOS): micropython src/shell.py", "id": "progs/src/shell.py", "kind": "module", "label": "shell.py", "language": "py", "sha256": "6efe8d3c7a270710", "symbol_count": 3, "symbols": [{"kind": "function", "line": 20, "name": "run_capture", "signature": "def run_capture(cmd, args)"}, {"kind": "function", "line": 30, "name": "expand", "signature": "def expand(line, env)"}, {"kind": "function", "line": 36, "name": "main", "signature": "def main()"}]}, {"id": "progs/src/test.c", "kind": "module", "label": "test.c", "language": "c", "sha256": "6884c669dd0f450d", "symbol_count": 2, "symbols": [{"kind": "function", "line": 1, "name": "add", "signature": "int add(int a, int b)"}, {"kind": "function", "line": 2, "name": "main", "signature": "int main(void)"}]}, {"id": "progs/src/test.lua", "kind": "module", "label": "test.lua", "language": "lua", "sha256": "8cbb472b6e359f60", "symbol_count": 20, "symbols": [{"kind": "function", "line": 12, "name": "check"}, {"kind": "function", "line": 22, "name": "write_file"}, {"kind": "function", "line": 30, "name": "read_file"}, {"kind": "function", "line": 40, "name": "test_module_bindings"}, {"kind": "function", "line": 53, "name": "test_filesystem"}, {"kind": "function", "line": 70, "name": "test_xxhash"}, {"kind": "function", "line": 75, "name": "test_stb"}, {"kind": "function", "line": 80, "name": "test_dlmalloc"}, {"kind": "function", "line": 85, "name": "test_hello"}, {"kind": "function", "line": 90, "name": "test_ftest"}, {"kind": "function", "line": 95, "name": "test_minigcc"}, {"kind": "function", "line": 100, "name": "test_ld"}, {"kind": "function", "line": 112, "name": "test_toolchain_roundtrip"}, {"kind": "function", "line": 122, "name": "test_spawn_preserves_interpreter"}, {"kind": "function", "line": 135, "name": "test_bin_cp"}, {"kind": "function", "line": 141, "name": "test_bin_lz4"}, {"kind": "function", "line": 158, "name": "test_bin_lzss"}, {"kind": "function", "line": 175, "name": "test_bin_aes"}, {"kind": "function", "line": 194, "name": "test_bin_json"}, {"kind": "function", "line": 205, "name": "test_bin_freedom"}]}, {"doc": "test.py -- in-OS test suite for MiniOS, driven by MicroPython. Tests every available binary sorted by size (smallest first). Graphical programs excluded: DOOM, Quake2, Nuklear, Piano, TopoGPT. Usage (inside MiniOS): micropython src/test.py", "id": "progs/src/test.py", "kind": "module", "label": "test.py", "language": "py", "sha256": "c742ae87c3744001", "symbol_count": 20, "symbols": [{"kind": "function", "line": 15, "name": "check", "signature": "def check(name, cond, detail)"}, {"kind": "function", "line": 25, "name": "safe_run", "signature": "def safe_run()"}, {"kind": "function", "line": 38, "name": "test_module_bindings", "signature": "def test_module_bindings()"}, {"kind": "function", "line": 56, "name": "test_filesystem", "signature": "def test_filesystem()"}, {"kind": "function", "line": 72, "name": "test_xxhash", "signature": "def test_xxhash()"}, {"kind": "function", "line": 77, "name": "test_stb", "signature": "def test_stb()"}, {"kind": "function", "line": 82, "name": "test_dlmalloc", "signature": "def test_dlmalloc()"}, {"kind": "function", "line": 87, "name": "test_hello", "signature": "def test_hello()"}, {"kind": "function", "line": 92, "name": "test_ftest", "signature": "def test_ftest()"}, {"kind": "function", "line": 97, "name": "test_minigcc", "signature": "def test_minigcc()"}, {"kind": "function", "line": 102, "name": "test_ld", "signature": "def test_ld()"}, {"kind": "function", "line": 119, "name": "test_toolchain_roundtrip", "signature": "def test_toolchain_roundtrip()"}, {"kind": "function", "line": 134, "name": "test_spawn_preserves_interpreter", "signature": "def test_spawn_preserves_interpreter()"}, {"kind": "function", "line": 148, "name": "test_bin_cp", "signature": "def test_bin_cp()"}, {"kind": "function", "line": 153, "name": "test_bin_lz4", "signature": "def test_bin_lz4()"}, {"kind": "function", "line": 181, "name": "test_bin_lzss", "signature": "def test_bin_lzss()"}, {"kind": "function", "line": 209, "name": "test_bin_aes", "signature": "def test_bin_aes()"}, {"kind": "function", "line": 239, "name": "test_bin_json", "signature": "def test_bin_json()"}, {"kind": "function", "line": 253, "name": "test_bin_freedom", "signature": "def test_bin_freedom()"}, {"kind": "function", "line": 261, "name": "main", "signature": "def main()"}]}, {"doc": "test_all.sh -- comprehensive non-interactive test suite for MiniOS. Run with: sh src/test_all.sh Every test prints a PASS: or FAIL: marker. The host-side runner greps the QEMU serial log for these markers. No interactive commands, no external server dependencies. === HELP & CLEAR ===", "id": "progs/src/test_all.sh", "kind": "module", "label": "test_all.sh", "language": "sh", "sha256": "2949ea79a98379d5", "symbol_count": 0, "symbols": []}, {"doc": "thdemo.c -- Producer-consumer over mthreads (roadmap Phase 1, M1).", "id": "progs/src/thdemo.c", "kind": "module", "label": "thdemo.c", "language": "c", "sha256": "5efdb34c5a50e6e7", "symbol_count": 9, "symbols": [{"kind": "function", "line": 35, "name": "producer", "signature": "static void *producer(void *p)"}, {"kind": "function", "line": 56, "name": "consumer", "signature": "static void *consumer(void *p)"}, {"kind": "function", "line": 81, "name": "main", "signature": "int main(void)"}, {"kind": "macro", "line": 20, "name": "NPROD"}, {"kind": "macro", "line": 22, "name": "NCONS"}, {"kind": "macro", "line": 23, "name": "PER_PROD"}, {"kind": "macro", "line": 24, "name": "BUFSZ"}, {"kind": "macro", "line": 25, "name": "EXPECTED_N"}, {"kind": "macro", "line": 27, "name": "EXPECTED_SUM"}]}, {"id": "progs/src/w1.c", "kind": "module", "label": "w1.c", "language": "c", "sha256": "99edf40b7bdeb928", "symbol_count": 1, "symbols": [{"kind": "function", "line": 2, "name": "main", "signature": "int main(void)"}]}, {"id": "progs/topogpt3/topogpt3.c", "kind": "module", "label": "topogpt3.c", "language": "c", "sha256": "0d543166b3d3e6e8", "symbol_count": 99, "symbols": [{"kind": "function", "line": 113, "name": "tg_exp", "signature": "static float tg_exp(float x)"}, {"kind": "function", "line": 127, "name": "tg_tanh", "signature": "static float tg_tanh(float x)"}, {"kind": "function", "line": 134, "name": "tg_sin", "signature": "static float tg_sin(float x)"}, {"kind": "function", "line": 143, "name": "tg_cos", "signature": "static float tg_cos(float x)"}, {"kind": "function", "line": 147, "name": "tg_fabs", "signature": "static float tg_fabs(float x)"}, {"kind": "function", "line": 151, "name": "tg_log", "signature": "static float tg_log(float x)"}, {"kind": "function", "line": 163, "name": "tg_fmax", "signature": "static float tg_fmax(float a, float b)"}, {"kind": "function", "line": 167, "name": "tg_fmin", "signature": "static float tg_fmin(float a, float b)"}, {"kind": "function", "line": 254, "name": "load_vocab", "signature": "static void load_vocab(const char *path)"}, {"doc": "====================================================================== SECTION 4: TORUS GRAPH BUILDER * ======================================================================", "kind": "function", "line": 295, "name": "build_torus_graph", "signature": "static void build_torus_graph(void)"}, {"doc": "====================================================================== SECTION 5: ROPE PRECOMPUTATION * ======================================================================", "kind": "function", "line": 326, "name": "precompute_rope", "signature": "static void precompute_rope(void)"}, {"doc": "====================================================================== SECTION 6: MATRIX OPERATIONS * ======================================================================", "kind": "function", "line": 358, "name": "matvec", "signature": "static void matvec(const float *W, const float *x, float *y, int rows, int cols)"}, {"kind": "function", "line": 369, "name": "matvec_bias", "signature": "static void matvec_bias(const float *W, const float *b, const float *x, float *y,\n ..."}, {"kind": "function", "line": 381, "name": "rmsnorm", "signature": "static void rmsnorm(const float *x, const float *w, float *y, int d)"}, {"kind": "function", "line": 390, "name": "softmax", "signature": "static void softmax(float *x, int n)"}, {"kind": "function", "line": 399, "name": "gelu", "signature": "static void gelu(float *x, int n)"}, {"kind": "function", "line": 409, "name": "silu", "signature": "static void silu(float *x, int n)"}, {"kind": "function", "line": 417, "name": "swiglu", "signature": "static void swiglu(const float *gate_w, const float *up_w, const float *down_w,\n ..."}, {"doc": "====================================================================== SECTION 7: QUATERNION OPERATIONS * ======================================================================", "kind": "function", "line": 434, "name": "quat_normalize", "signature": "static void quat_normalize(float *q)"}, {"kind": "function", "line": 439, "name": "quat_hamilton", "signature": "static void quat_hamilton(const float *a, const float *b, float *c)"}, {"doc": "static void quat_normalize(float *q) { float n = tg_sqrt(q[0]*q[0] + q[1]*q[1] + q[2]*q[2] + q[3]*q[3]); if (n > 1e-8f) { q[0]/=n; q[1]/=n; q[2]/=n; q[3]/=n; } } static void quat_hamilton(const float *a, const float *b, float *c) { c[0] = a[0]*b[0] - a[1]*b[1] - a[2]*b[2] - a[3]*b[3]; c[1] = a[0]*b[1] + a[1]*b[0] + a[2]*b[3] - a[3]*b[2]; c[2] = a[0]*b[2] - a[1]*b[3] + a[2]*b[0] + a[3]*b[1]; c[3] = a[0]*b[3] + a[1]*b[2] - a[2]*b[1] + a[3]*b[0]; } /* QuaternionLinear: x[w,x,y,z] -> y[w,x,y,z]", "kind": "function", "line": 448, "name": "quat_linear", "signature": "static void quat_linear(const float *Ww, const float *Wx, const float *Wy, const float *Wz,\n ..."}, {"kind": "function", "line": 504, "name": "ifft_radix2", "signature": "static void ifft_radix2(float *real, float *imag, int n)"}, {"doc": "cur_r = nr; } } } } static void ifft_radix2(float *real, float *imag, int n) { int i; for (i = 0; i < n; i++) imag[i] = -imag[i]; fft_radix2(real, imag, n); for (i = 0; i < n; i++) { real[i] /= (float)n; imag[i] = -imag[i] / (float)n; } } /* Real FFT: x[n] -> X[n/2+1] complex", "kind": "function", "line": 513, "name": "rfft", "signature": "static void rfft(const float *x, float *Xr, float *Xi, int n)"}, {"doc": "fft_radix2(real, imag, n); for (i = 0; i < n; i++) { real[i] /= (float)n; imag[i] = -imag[i] / (float)n; } } /* Real FFT: x[n] -> X[n/2+1] complex static void rfft(const float *x, float *Xr, float *Xi, int n) { float re[n], im[n]; int i; for (i = 0; i < n; i++) { re[i] = x[i]; im[i] = 0.0f; } fft_radix2(re, im, n); for (i = 0; i <= n/2; i++) { Xr[i] = re[i]; Xi[i] = im[i]; } } /* Inverse real FFT: X[n/2+1] complex -> x[n]", "kind": "function", "line": 522, "name": "irfft", "signature": "static void irfft(const float *Xr, const float *Xi, float *x, int n)"}, {"doc": "====================================================================== SECTION 9: SPECTRAL 1D FILTER * ======================================================================", "kind": "function", "line": 536, "name": "filter1d", "signature": "static void filter1d(const float *x, const float *kr, const float *ki,\n floa..."}, {"kind": "function", "line": 579, "name": "ifft2d", "signature": "static void ifft2d(float *data_r, float *data_i, int h, int w)"}, {"doc": "ifft_radix2(row_re, row_im, w); for (c = 0; c < w; c++) { re[r*w+c] = row_re[c]; im[r*w+c] = row_im[c]; } } /* IFFT columns float col_re[h], col_im[h]; for (c = 0; c < w; c++) { for (r = 0; r < h; r++) { col_re[r] = re[r*w+c]; col_im[r] = im[r*w+c]; } ifft_radix2(col_re, col_im, h); for (r = 0; r < h; r++) { re[r*w+c] = col_re[r]; im[r*w+c] = col_im[r]; } } for (i = 0; i < h * w; i++) { data_r[i] = re[i]; data_i[i] = im[i]; } } /* RFFT2: 2D real FFT, output is [h][w/2+1] complex", "kind": "function", "line": 602, "name": "rfft2d_real", "signature": "static void rfft2d_real(const float *data, float *out_r, float *out_i,\n i..."}, {"doc": "for (r = 0; r < h; r++) { col_re[r] = re[r*w+c]; col_im[r] = im[r*w+c]; } fft_radix2(col_re, col_im, h); for (r = 0; r < h; r++) { re[r*w+c] = col_re[r]; im[r*w+c] = col_im[r]; } } int fw = w / 2 + 1; for (r = 0; r < h; r++) { for (c = 0; c < fw; c++) { out_r[r * fw + c] = re[r * w + c]; out_i[r * fw + c] = im[r * w + c]; } } } /* IRFFT2: inverse of rfft2d_real", "kind": "function", "line": 629, "name": "irfft2d", "signature": "static void irfft2d(const float *in_r, const float *in_i, float *out,\n int h,..."}, {"doc": "====================================================================== SECTION 11: QUATERNION SPECTRAL LAYER 2D * ====================================================================== /* Complex multiply: (ar+bi)(cr+di) = (ac-bd)+(ad+bc)i", "kind": "function", "line": 664, "name": "cmul", "signature": "static void cmul(float ar, float ai, float cr, float di, float *rr, float *ri)"}, {"doc": "====================================================================== SECTION 11: QUATERNION SPECTRAL LAYER 2D * ====================================================================== /* Complex multiply: (ar+bi)(cr+di) = (ac-bd)+(ad+bc)i static void cmul(float ar, float ai, float cr, float di, float *rr, float *ri) { rr = ar*cr - ai*di; ri = ar*di + ai*cr; } /* Contract: Y[o,h,w] = sum_i W[i,o,h,w] * X[b,i,h,w] (complex)", "kind": "function", "line": 670, "name": "spectral_contract", "signature": "static void spectral_contract(const float *Wr, const float *Wi,\n co..."}, {"kind": "function", "line": 694, "name": "quat_spectral_layer_2d", "signature": "static void quat_spectral_layer_2d(\n const float *x, float *y,\n const float *kr_w, const fl..."}, {"doc": "====================================================================== SECTION 12: SPECTRAL AUTOENCODER FORWARD * ======================================================================", "kind": "function", "line": 784, "name": "spectral_ae_encode", "signature": "static void spectral_ae_encode(const float *x, float *z, const LayerWeights *lw)"}, {"kind": "function", "line": 792, "name": "spectral_ae_decode", "signature": "static void spectral_ae_decode(const float *z, float *x, const LayerWeights *lw)"}, {"kind": "function", "line": 799, "name": "process_torus_grid", "signature": "static void process_torus_grid(const float *grid, float *out, const LayerWeights *lw)"}, {"doc": "====================================================================== SECTION 13: TORUS BRAIN FORWARD * ======================================================================", "kind": "function", "line": 820, "name": "torus_soft_assign", "signature": "static void torus_soft_assign(const float *phi1, const float *phi2,\n ..."}, {"kind": "function", "line": 842, "name": "message_passing", "signature": "static void message_passing(const float *node_feat, float *out,\n cons..."}, {"kind": "function", "line": 887, "name": "torus_brain_forward", "signature": "static void torus_brain_forward(const float *x, float *out, float *recon_loss,\n ..."}, {"doc": "====================================================================== SECTION 14: ATTENTION FORWARD * ======================================================================", "kind": "function", "line": 977, "name": "attention_forward", "signature": "static void attention_forward(const float *x, float *out, int layer_idx, int pos, int total_kv_co..."}, {"doc": "====================================================================== SECTION 15: MoE ROUTING * ======================================================================", "kind": "function", "line": 1077, "name": "moe_forward", "signature": "static void moe_forward(const float *x, float *out, const LayerWeights *lw)"}, {"doc": "====================================================================== SECTION 16: FULL MODEL FORWARD Processes tokens autoregressively through all layers. Each token position goes through ALL layers before the next position. This is the correct order: layer 0 must see all positions before layer 1 can process them. After processing, logits_out holds logits for the LAST position only. * ======================================================================", "kind": "function", "line": 1127, "name": "forward", "signature": "static void forward(const int *token_ids, int seq_len, float *logits_out)"}, {"kind": "function", "line": 1194, "name": "tokenize_string", "signature": "static int tokenize_string(const char *text, int *tokens, int max_tokens)"}, {"doc": "====================================================================== SECTION 18: SAMPLING * ======================================================================", "kind": "function", "line": 1209, "name": "apply_temperature", "signature": "static void apply_temperature(float *logits, int n, float temp)"}, {"kind": "function", "line": 1215, "name": "apply_repetition_penalty", "signature": "static void apply_repetition_penalty(float *logits, int n, const int *tokens,\n ..."}, {"kind": "function", "line": 1228, "name": "apply_top_k", "signature": "static void apply_top_k(float *logits, int n, int k)"}, {"kind": "function", "line": 1247, "name": "sample", "signature": "static int sample(const float *logits, int n)"}, {"doc": "====================================================================== SECTION 19: WEIGHT LOADER Reads the binary file produced by convert_weights.py. The converter writes tensors in a fixed order. We read them in the same order, matching each to its destination buffer by position. No string parsing needed. * ======================================================================", "kind": "function", "line": 1281, "name": "load_weights", "signature": "static int load_weights(const char *path)"}, {"kind": "function", "line": 1451, "name": "load_weights_fp16", "signature": "static int load_weights_fp16(const char *path)"}, {"doc": "printf(\" Layer %d loaded\\n\", i); } READ_TENSOR16(W.final_norm, D_MODEL); #undef SKIP_TENSOR16 #undef READ_TENSOR16 fclose(f); printf(\"Weights loaded successfully (fp16).\\n\"); return 0; } /* Auto-detect format and load weights", "kind": "function", "line": 1583, "name": "load_weights_auto", "signature": "static int load_weights_auto(const char *path)"}, {"doc": "====================================================================== SECTION 20: TIMING * ====================================================================== /* Portable wall-clock timer using rdtsc where available, else microseconds", "kind": "function", "line": 1600, "name": "time_now_ms", "signature": "static double time_now_ms(void)"}, {"doc": "====================================================================== SECTION 21: GENERATION * ======================================================================", "kind": "function", "line": 1613, "name": "decode_token", "signature": "static void decode_token(int tid)"}, {"doc": "if (tid < 256) { /* Map GPT-2 byte-level encoding back to original byte int n = tid; if (n < 94) n += 33; else if (n < 163) n += 161 - 94; else n += 173 - 163; putchar(n); } else { /* Multi-byte token: output placeholder or skip putchar('?'); } } /* Load pre-tokenized binary file (format: \"TKID\" + uint32 count + int32 ids[])", "kind": "function", "line": 1629, "name": "load_token_file", "signature": "static int load_token_file(const char *path, int *out_ids, int max_ids)"}, {"doc": "if (fread(&n, 4, 1, f) != 1) { fclose(f); return 0; } if (n > (unsigned)max_ids) n = max_ids; int count = (int)n; int i; for (i = 0; i < count; i++) { int id; if (fread(&id, 4, 1, f) != 1) break; out_ids[i] = id; } fclose(f); return count; } /* Decode token ID using loaded vocabulary", "kind": "function", "line": 1652, "name": "decode_token_tiktoken", "signature": "static void decode_token_tiktoken(int tid)"}, {"kind": "function", "line": 1660, "name": "generate_tokens", "signature": "static void generate_tokens(int *prompt_tokens, int n_prompt, int max_new_tokens,\n ..."}, {"kind": "function", "line": 1724, "name": "generate", "signature": "static void generate(const char *prompt, int max_new_tokens, float temperature,\n ..."}, {"doc": "====================================================================== SECTION 22: INTERACTIVE MODE * ======================================================================", "kind": "function", "line": 1735, "name": "interactive_mode", "signature": "static void interactive_mode(void)"}, {"doc": "====================================================================== SECTION 23: HELP AND MAIN * ======================================================================", "kind": "function", "line": 1849, "name": "print_help", "signature": "static void print_help(void)"}, {"kind": "function", "line": 1884, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 43, "name": "NULL"}, {"kind": "macro", "line": 44, "name": "SEEK_SET"}, {"kind": "macro", "line": 45, "name": "SEEK_CUR"}, {"kind": "macro", "line": 46, "name": "SEEK_END"}, {"kind": "macro", "line": 64, "name": "VOCAB_SIZE"}, {"kind": "macro", "line": 66, "name": "D_MODEL"}, {"kind": "macro", "line": 67, "name": "N_HEADS"}, {"kind": "macro", "line": 68, "name": "N_KV_HEADS"}, {"kind": "macro", "line": 69, "name": "GQA_GROUPS"}, {"kind": "macro", "line": 70, "name": "D_HEAD"}, {"kind": "macro", "line": 71, "name": "D_QUAT"}, {"kind": "macro", "line": 72, "name": "N_LAYERS"}, {"kind": "macro", "line": 73, "name": "MAX_SEQ_LEN"}, {"kind": "macro", "line": 74, "name": "N_EXPERTS"}, {"kind": "macro", "line": 75, "name": "MOE_TOP_K"}, {"kind": "macro", "line": 76, "name": "N_NODES"}, {"kind": "macro", "line": 77, "name": "N_RADIAL"}, {"kind": "macro", "line": 78, "name": "N_ANGULAR"}, {"kind": "macro", "line": 79, "name": "N_EDGE_TYPES"}, {"kind": "macro", "line": 80, "name": "N_EDGES"}, {"kind": "macro", "line": 81, "name": "SPECTRAL_LATENT_DIM"}, {"kind": "macro", "line": 82, "name": "D_LAT_Q"}, {"kind": "macro", "line": 83, "name": "TORUS_GRID_H"}, {"kind": "macro", "line": 84, "name": "TORUS_GRID_W"}, {"kind": "macro", "line": 85, "name": "FREQ_W"}, {"kind": "macro", "line": 86, "name": "N_SPECTRAL_LAYERS"}, {"kind": "macro", "line": 87, "name": "EXPERT_INNER"}, {"kind": "macro", "line": 88, "name": "READOUT_INNER"}, {"kind": "macro", "line": 89, "name": "EOS_TOKEN"}, {"kind": "macro", "line": 90, "name": "EMBED_INNER"}, {"kind": "macro", "line": 91, "name": "PI"}, {"kind": "macro", "line": 92, "name": "EPS_RMS"}, {"kind": "macro", "line": 93, "name": "TORUS_TEMP"}, {"kind": "macro", "line": 94, "name": "MAX_TOKENS"}, {"kind": "macro", "line": 95, "name": "MAX_PROMPT_LEN"}, {"kind": "macro", "line": 96, "name": "MAX_LINE"}, {"kind": "macro", "line": 97, "name": "TOK_TAB_SIZE"}, {"kind": "macro", "line": 98, "name": "TOK_VOCAB_SIZE"}, {"kind": "macro", "line": 1300, "name": "SKIP_TENSOR"}, {"kind": "macro", "line": 1310, "name": "READ_TENSOR"}, {"kind": "macro", "line": 1470, "name": "SKIP_TENSOR16"}, {"kind": "macro", "line": 1480, "name": "READ_TENSOR16"}]}, {"doc": "MiniOS QEMU guest agent (QGA).", "id": "qga.c", "kind": "module", "label": "qga.c", "language": "c", "sha256": "40c623e5b3d1db52", "symbol_count": 26, "symbols": [{"kind": "struct", "line": 49, "name": "qga_pair"}, {"doc": "================================================================ COM2 UART * ================================================================", "kind": "function", "line": 26, "name": "qga_tx_ready", "signature": "static int qga_tx_ready(void)"}, {"kind": "function", "line": 28, "name": "qga_rx_ready", "signature": "static int qga_rx_ready(void)"}, {"kind": "function", "line": 29, "name": "qga_putc", "signature": "static void qga_putc(char c)"}, {"kind": "function", "line": 34, "name": "qga_init", "signature": "void qga_init(void)"}, {"kind": "function", "line": 55, "name": "qga_ws", "signature": "static int qga_ws(char c)"}, {"doc": "Parse a JSON object whose members are stored flat into out[*count..]: a nested object's members keep the parent key as a prefix (`arguments.id`). Only string/int/null/bool values are accepted; arrays and deeper nesting are rejected fail-closed. Returns 1 on success, 0 on malformed or * overflowing input.", "kind": "function", "line": 65, "name": "qga_parse_object", "signature": "static int qga_parse_object(const char **pp, struct qga_pair *out, int max,\n ..."}, {"doc": "Parse a request line into the flat pair table. Returns the number of pairs, * or -1 on malformed/overflowing input.", "kind": "function", "line": 147, "name": "qga_parse_flat", "signature": "static int qga_parse_flat(const char *s, struct qga_pair *out, int max)"}, {"kind": "function", "line": 157, "name": "qga_get_str", "signature": "static const char *qga_get_str(const struct qga_pair *pairs, int n, const char *key)"}, {"kind": "function", "line": 165, "name": "qga_get_int", "signature": "static int qga_get_int(const struct qga_pair *pairs, int n, const char *key, long *out)"}, {"doc": "================================================================ Response writer * ================================================================ static char qga_resp[QGA_RESP_MAX]; static int qga_resp_len; static int qga_sync_pending; /* guest-sync-delimited: 0xFF first", "kind": "function", "line": 183, "name": "qga_resp_reset", "signature": "static void qga_resp_reset(void)"}, {"kind": "function", "line": 185, "name": "qga_resp_puts", "signature": "static void qga_resp_puts(const char *s)"}, {"kind": "function", "line": 193, "name": "qga_resp_putc_enc", "signature": "static void qga_resp_putc_enc(char c)"}, {"doc": "Append the decimal form of v (a separate helper so no varargs forwarding is * needed; the kernel formatter is not re-entrant with a stored va_list).", "kind": "function", "line": 201, "name": "qga_resp_put_long", "signature": "static void qga_resp_put_long(long v)"}, {"kind": "function", "line": 209, "name": "qga_err", "signature": "static void qga_err(const char *klass, const char *desc)"}, {"kind": "function", "line": 217, "name": "qga_puts_resp", "signature": "static void qga_puts_resp(void)"}, {"kind": "function", "line": 230, "name": "qga_b64_encode", "signature": "static void qga_b64_encode(const unsigned char *in, int n)"}, {"kind": "function", "line": 280, "name": "qga_cmd_get_time", "signature": "static void qga_cmd_get_time(void)"}, {"doc": "guest-exec runs a shell command line; output goes to the console (the `>` redirect still captures it). Queued so the shell executes it at its next * loop top, which raw_blocking_getc forces by returning a newline.", "kind": "function", "line": 306, "name": "qga_cmd_exec", "signature": "static void qga_cmd_exec(const struct qga_pair *pairs, int n)"}, {"kind": "function", "line": 315, "name": "qga_cmd_shutdown", "signature": "static void qga_cmd_shutdown(const struct qga_pair *pairs, int n)"}, {"kind": "function", "line": 328, "name": "qga_file_size", "signature": "static int qga_file_size(const KFILE *f)"}, {"kind": "function", "line": 333, "name": "qga_cmd_file_open", "signature": "static void qga_cmd_file_open(const struct qga_pair *pairs, int n)"}, {"kind": "function", "line": 359, "name": "qga_cmd_file_read", "signature": "static void qga_cmd_file_read(const struct qga_pair *pairs, int n)"}, {"kind": "function", "line": 383, "name": "qga_cmd_file_close", "signature": "static void qga_cmd_file_close(const struct qga_pair *pairs, int n)"}, {"doc": "================================================================ Dispatch + poll * ================================================================", "kind": "function", "line": 400, "name": "qga_dispatch", "signature": "static void qga_dispatch(struct qga_pair *pairs, int n)"}, {"doc": "Accumulate bytes until a complete line, then parse and answer it. Callers * call it once per idle spin of the shell's raw input loop.", "kind": "function", "line": 446, "name": "qga_poll", "signature": "void qga_poll(void)"}]}, {"doc": "ifndef QGA_H define QGA_H ========== QEMU guest agent channel (COM2, ISA 16550) ==========", "id": "qga.h", "kind": "module", "label": "qga.h", "language": "h", "sha256": "85ee2a3943f2e353", "symbol_count": 27, "symbols": [{"kind": "macro", "line": 2, "name": "QGA_H"}, {"kind": "macro", "line": 5, "name": "QGA_COM2_BASE"}, {"kind": "macro", "line": 6, "name": "QGA_COM2_IRQ"}, {"kind": "macro", "line": 9, "name": "QGA_UART_THR"}, {"kind": "macro", "line": 10, "name": "QGA_UART_RBR"}, {"kind": "macro", "line": 11, "name": "QGA_UART_DLL"}, {"kind": "macro", "line": 12, "name": "QGA_UART_DLM"}, {"kind": "macro", "line": 13, "name": "QGA_UART_IER"}, {"kind": "macro", "line": 14, "name": "QGA_UART_FCR"}, {"kind": "macro", "line": 15, "name": "QGA_UART_LCR"}, {"kind": "macro", "line": 16, "name": "QGA_UART_LSR"}, {"kind": "macro", "line": 17, "name": "QGA_UART_MCR"}, {"kind": "macro", "line": 18, "name": "QGA_UART_LSR_TX_RDY"}, {"kind": "macro", "line": 19, "name": "QGA_UART_LSR_RX_RDY"}, {"kind": "macro", "line": 20, "name": "QGA_UART_LCR_DLAB"}, {"kind": "macro", "line": 21, "name": "QGA_UART_LCR_8N1"}, {"kind": "macro", "line": 22, "name": "QGA_UART_FCR_CFG"}, {"kind": "macro", "line": 23, "name": "QGA_UART_MCR_CFG"}, {"kind": "macro", "line": 24, "name": "QGA_BAUD_DIVISOR"}, {"kind": "macro", "line": 30, "name": "QGA_LINE_MAX"}, {"kind": "macro", "line": 31, "name": "QGA_RESP_MAX"}, {"kind": "macro", "line": 34, "name": "QGA_FILE_READ_MAX"}, {"kind": "macro", "line": 37, "name": "QGA_MAX_PAIRS"}, {"kind": "macro", "line": 38, "name": "QGA_KEY_MAX"}, {"kind": "macro", "line": 39, "name": "QGA_STR_MAX"}, {"kind": "macro", "line": 42, "name": "QGA_MAX_DEPTH"}, {"kind": "macro", "line": 46, "name": "QGA_FILE_MAX"}]}, {"doc": "ifndef RTC_H define RTC_H", "id": "rtc.h", "kind": "module", "label": "rtc.h", "language": "h", "sha256": "b081aa21b5c16bef", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 2, "name": "RTC_H"}]}, {"doc": "ifndef SB16_H define SB16_H Sound Blaster 16 DMA audio driver contract.", "id": "sb16.h", "kind": "module", "label": "sb16.h", "language": "h", "sha256": "7eeebfa2536004c3", "symbol_count": 8, "symbols": [{"kind": "macro", "line": 2, "name": "SB16_H"}, {"kind": "macro", "line": 31, "name": "SB16_PCM_BUF"}, {"kind": "macro", "line": 33, "name": "SB16_PCM_RATE"}, {"kind": "macro", "line": 34, "name": "SB16_SLOTS"}, {"kind": "macro", "line": 35, "name": "SB16_RING_CAP"}, {"kind": "macro", "line": 36, "name": "SB16_ARM_PERIOD_MS"}, {"kind": "macro", "line": 42, "name": "SB16_STREAMS"}, {"kind": "macro", "line": 43, "name": "SB16_STREAM_BUF"}]}, {"doc": "ifndef SCHED_H define SCHED_H include include \"spinlock.h\" ---- Process states ----", "id": "sched.h", "kind": "module", "label": "sched.h", "language": "h", "sha256": "324c94b0a2dd335e", "symbol_count": 18, "symbols": [{"doc": "Fields: cpu_id: index into cpus[], 0 for BSP cur_pid: PID of the running process on this CPU syscall_kstack: kernel stack top exchanged on syscall entry kstack_top: per-CPU interrupt stack top last_sched_tick: sys_ticks value of last context switch (Phase 2) lapic_id: APIC ID from hardware is_bsp: 1 for the boot processor, 0 for APs idle: 1 when CPU is in idle loop (Phase 2: idle thread) irq_depth: interrupt nesting count for irqsave (Phase 3) idle_proc: pointer to idle process (Phase 2) run_queue: opaque pointer to per-CPU run queue (Phase 2)", "kind": "struct", "line": 78, "name": "cpu"}, {"doc": "Per-CPU TSS selectors: slot 5 + 2*cpu in the runtime GDT (each TSS descriptor occupies two 8-byte slots). CPU 0 keeps selector 0x28, * exactly as before. #define TSS_SEL(cpu) ((uint16_t)((5 + 2 * (cpu)) * 8)) /* Exported IDTR for APs to load during SMP bring-up.", "kind": "function", "line": 179, "name": "__attribute__", "signature": "typedef struct __attribute__((packed))"}, {"kind": "macro", "line": 2, "name": "SCHED_H"}, {"kind": "macro", "line": 8, "name": "PROC_FREE"}, {"kind": "macro", "line": 9, "name": "PROC_READY"}, {"kind": "macro", "line": 10, "name": "PROC_RUNNING"}, {"kind": "macro", "line": 11, "name": "PROC_BLOCKED"}, {"kind": "macro", "line": 12, "name": "PROC_ZOMBIE"}, {"kind": "macro", "line": 16, "name": "PROC_SWITCHING"}, {"kind": "macro", "line": 19, "name": "MAX_PROCS"}, {"kind": "macro", "line": 20, "name": "PROC_KSTACK_SZ"}, {"kind": "macro", "line": 23, "name": "MAX_CPUS"}, {"kind": "macro", "line": 24, "name": "BOOT_CPU"}, {"kind": "macro", "line": 54, "name": "CLONE_VM"}, {"kind": "macro", "line": 55, "name": "CLONE_FILES"}, {"kind": "macro", "line": 122, "name": "current_pid"}, {"kind": "macro", "line": 126, "name": "DESKTOP_TICK_INTERVAL"}, {"kind": "macro", "line": 176, "name": "TSS_SEL"}]}, {"doc": "ifndef SHELL_H define SHELL_H shell.h -- shared shell constants and the line reader/parser reused by", "id": "shell.h", "kind": "module", "label": "shell.h", "language": "h", "sha256": "aef652cf869730f8", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 2, "name": "SHELL_H"}, {"kind": "macro", "line": 11, "name": "CMD_BUF_SZ"}, {"kind": "macro", "line": 13, "name": "MAX_ARGS"}]}, {"doc": "include \"kernel.h\" include \"bootdefs.h\" include \"smp.h\" include \"sched.h\" include \"ap_stub.h\" include \"arch/x86/msr.h\" SMP application-processor bring-up.", "id": "smp.c", "kind": "module", "label": "smp.c", "language": "c", "sha256": "7a7e28c4b0b835d1", "symbol_count": 34, "symbols": [{"kind": "function", "line": 83, "name": "lapic_read", "signature": "static unsigned lapic_read(unsigned off)"}, {"kind": "function", "line": 87, "name": "lapic_write", "signature": "static void lapic_write(unsigned off, unsigned val)"}, {"doc": "Map the LAPIC so the BSP can program the ICR, and the APs can read their id registers. Extends stage 2's tables: PDPT slot 3 gains a new PD whose * entry covers the LAPIC's 2 MB window as uncached. Returns 1 on success.", "kind": "function", "line": 108, "name": "map_lapic", "signature": "static int map_lapic(void)"}, {"kind": "function", "line": 120, "name": "ap_delay", "signature": "static void ap_delay(void)"}, {"kind": "function", "line": 133, "name": "disabled", "signature": "* disabled (the BSP's smp_init enable covers only the BSP's own unit),\n * and with the SVR off th..."}, {"kind": "function", "line": 244, "name": "smp_init", "signature": "void smp_init(void)"}, {"kind": "macro", "line": 27, "name": "LAPIC_BASE"}, {"kind": "macro", "line": 29, "name": "LAPIC_ID_OFF"}, {"kind": "macro", "line": 30, "name": "LAPIC_SVR_OFF"}, {"kind": "macro", "line": 31, "name": "LAPIC_ICR_HI"}, {"kind": "macro", "line": 32, "name": "LAPIC_ICR_LO"}, {"kind": "macro", "line": 33, "name": "LAPIC_LVT_TIMER"}, {"kind": "macro", "line": 34, "name": "LAPIC_LVT_LINT0"}, {"kind": "macro", "line": 35, "name": "LAPIC_LVT_LINT1"}, {"kind": "macro", "line": 36, "name": "LAPIC_LVT_MASKED"}, {"kind": "macro", "line": 37, "name": "LAPIC_LVT_EXTINT"}, {"kind": "macro", "line": 38, "name": "LAPIC_EOI_OFF"}, {"kind": "macro", "line": 39, "name": "LAPIC_TIMER_DIV"}, {"kind": "macro", "line": 40, "name": "LAPIC_TIMER_INIT"}, {"kind": "macro", "line": 41, "name": "LAPIC_TIMER_CUR"}, {"kind": "macro", "line": 42, "name": "LAPIC_SVR_ENABLE"}, {"kind": "macro", "line": 44, "name": "LAPIC_ICR_BUSY"}, {"kind": "macro", "line": 45, "name": "LAPIC_ICR_INIT"}, {"kind": "macro", "line": 46, "name": "LAPIC_ICR_SIPI"}, {"kind": "macro", "line": 47, "name": "LAPIC_ICR_ALL_EXC"}, {"kind": "macro", "line": 48, "name": "LAPIC_ICR_LEVEL"}, {"kind": "macro", "line": 49, "name": "LAPIC_ICR_TRIGGER"}, {"kind": "macro", "line": 50, "name": "SIPI_VECTOR"}, {"kind": "macro", "line": 54, "name": "PIT_HZ"}, {"kind": "macro", "line": 57, "name": "LAPIC_TIMER_DIVIDE_16"}, {"kind": "macro", "line": 58, "name": "LAPIC_TIMER_PERIODIC"}, {"kind": "macro", "line": 66, "name": "LAPIC_PD_ADDR"}, {"kind": "macro", "line": 67, "name": "LAPIC_PDPT_SLOT"}, {"kind": "macro", "line": 68, "name": "LAPIC_PD_IDX"}]}, {"doc": "ifndef SMP_H define SMP_H include \"spinlock.h\" SMP bring-up: wake the application processors (APs) via the LAPIC INIT/SIPI", "id": "smp.h", "kind": "module", "label": "smp.h", "language": "h", "sha256": "d50f2b40e5a7d7d2", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 2, "name": "SMP_H"}]}, {"doc": "ifndef SPINLOCK_H define SPINLOCK_H spinlock.h -- Lightweight spinlock for MiniOS kernel.", "id": "spinlock.h", "kind": "module", "label": "spinlock.h", "language": "h", "sha256": "b9cb4e56dd249c8e", "symbol_count": 17, "symbols": [{"doc": "define SPINLOCK_INIT { .locked = 0 }", "kind": "function", "line": 44, "name": "spin_init", "signature": "static inline void spin_init(spinlock_t *lock)"}, {"doc": "Host unit-test variants (tests/test_sync.c, `make test-sync`): cli/sti and pushf/popf are privileged and fault in userspace, so the host build spins on the GCC atomics only and treats interrupt state as a dummy value. Kernel builds never define SYNC_HOST_TEST and always take the * real path in the #else branch below.", "kind": "function", "line": 55, "name": "spin_save_irq", "signature": "static inline irqflags_t spin_save_irq(void)"}, {"kind": "function", "line": 56, "name": "spin_restore_irq", "signature": "static inline void spin_restore_irq(irqflags_t flags)"}, {"kind": "function", "line": 57, "name": "spin_lock", "signature": "static inline void spin_lock(spinlock_t *lock)"}, {"kind": "function", "line": 62, "name": "spin_unlock", "signature": "static inline void spin_unlock(spinlock_t *lock)"}, {"kind": "function", "line": 66, "name": "spin_lock_irqsave", "signature": "static inline void spin_lock_irqsave(spinlock_t *lock, irqflags_t *flags)"}, {"kind": "function", "line": 72, "name": "spin_unlock_irqrestore", "signature": "static inline void spin_unlock_irqrestore(spinlock_t *lock, irqflags_t flags)"}, {"kind": "function", "line": 77, "name": "spin_unlock_keep_irq", "signature": "static inline void spin_unlock_keep_irq(spinlock_t *lock)"}, {"kind": "function", "line": 81, "name": "spin_trylock", "signature": "static inline int spin_trylock(spinlock_t *lock)"}, {"doc": "__sync_lock_release(&lock->locked); } static inline void spin_unlock_keep_irq(spinlock_t *lock) { __sync_synchronize(); __sync_lock_release(&lock->locked); } static inline int spin_trylock(spinlock_t *lock) { int was = __sync_lock_test_and_set(&lock->locked, 1); if (!was) __sync_synchronize(); return !was; } #else /* Read RFLAGS and disable interrupts.", "kind": "function", "line": 89, "name": "spin_save_irq", "signature": "static inline irqflags_t spin_save_irq(void)"}, {"doc": "int was = __sync_lock_test_and_set(&lock->locked, 1); if (!was) __sync_synchronize(); return !was; } #else /* Read RFLAGS and disable interrupts. static inline irqflags_t spin_save_irq(void) { irqflags_t flags; __asm__ volatile(\"pushfq; pop %0; cli\" : \"=r\"(flags)); return flags; } /* Restore RFLAGS (including IF) from a saved value.", "kind": "function", "line": 96, "name": "spin_restore_irq", "signature": "static inline void spin_restore_irq(irqflags_t flags)"}, {"doc": "Acquire the lock and disable interrupts. Interrupts are disabled before the CAS loop to prevent ISR re-entry. The memory clobber ensures the compiler does not reorder across the lock. * Use this from ISR context or when a single-level lock is sufficient.", "kind": "function", "line": 104, "name": "spin_lock", "signature": "static inline void spin_lock(spinlock_t *lock)"}, {"doc": "Release the lock and re-enable interrupts. The release uses __sync_lock_release which is a store-release with * the correct memory ordering.", "kind": "function", "line": 114, "name": "spin_unlock", "signature": "static inline void spin_unlock(spinlock_t *lock)"}, {"doc": "Release the lock WITHOUT touching interrupts (IF stays as-is). For context-switch paths: the lock was acquired with interrupts off and they must stay off across the switch, because a timer tick landing between the release and switch_to would park the half-switched state over the incoming thread's ctx. The incoming * context's own rflags decide IF after the switch.", "kind": "function", "line": 126, "name": "spin_unlock_keep_irq", "signature": "static inline void spin_unlock_keep_irq(spinlock_t *lock)"}, {"doc": "Release the lock and restore the saved interrupt state. If the caller's interrupts were enabled before spin_lock_irqsave, * they are re-enabled here. If they were disabled, they stay disabled.", "kind": "function", "line": 145, "name": "spin_unlock_irqrestore", "signature": "static inline void spin_unlock_irqrestore(spinlock_t *lock, irqflags_t flags)"}, {"kind": "macro", "line": 2, "name": "SPINLOCK_H"}, {"kind": "macro", "line": 42, "name": "SPINLOCK_INIT"}]}, {"doc": "ifndef SYNC_H define SYNC_H sync.h -- Blocking synchronization primitives (roadmap Phase 3.1).", "id": "sync.h", "kind": "module", "label": "sync.h", "language": "h", "sha256": "6d2e202d177d4363", "symbol_count": 7, "symbols": [{"kind": "macro", "line": 2, "name": "SYNC_H"}, {"kind": "macro", "line": 38, "name": "WQ_NONE"}, {"kind": "macro", "line": 46, "name": "WAIT_QUEUE_INIT"}, {"kind": "macro", "line": 61, "name": "MUTEX_INIT"}, {"kind": "macro", "line": 74, "name": "SEM_INIT"}, {"kind": "macro", "line": 88, "name": "COND_INIT"}, {"kind": "macro", "line": 103, "name": "RWLOCK_INIT"}]}, {"doc": "BDD suite for MiniOS: boots the disk image in QEMU and drives the shell over the serial console (COM1). Every scenario sends a script of shell commands, then asserts that the expected markers appear in the console log. The guest powers itself off through the ACPI port at the end of each scenario, which makes QEMU exit; the timeout is only a safety net for hangs. A stale-qemu guard prevents image-lock cascades between runs. Environment overrides: QEMU, TMO (per-scenario timeout), KEEP_LOG=1 to keep the console log of the last scenario for inspection.", "id": "test_bdd.sh", "kind": "module", "label": "test_bdd.sh", "language": "sh", "sha256": "f590a7a7d2d5c8d7", "symbol_count": 10, "symbols": [{"kind": "function", "line": 31, "name": "cleanup_stale_qemu"}, {"doc": "scenario